diff --git a/app/Console/Commands/ResetCommand.php b/app/Console/Commands/ResetCommand.php index e21e489d8..dfc795e0b 100755 --- a/app/Console/Commands/ResetCommand.php +++ b/app/Console/Commands/ResetCommand.php @@ -8,7 +8,6 @@ use Illuminate\Console\Command; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Auth; -use Jackiedo\DotenvEditor\Facades\DotenvEditor; class ResetCommand extends Command { diff --git a/app/Console/Commands/SetupCommand.php b/app/Console/Commands/SetupCommand.php index f9e5dcf9a..61920c3bf 100755 --- a/app/Console/Commands/SetupCommand.php +++ b/app/Console/Commands/SetupCommand.php @@ -3,9 +3,7 @@ namespace App\Console\Commands; use App\Services\Setup; -use Exception; use Illuminate\Console\Command; -use Jackiedo\DotenvEditor\Facades\DotenvEditor; class SetupCommand extends Command { diff --git a/app/Crud/CustomerAccountCrud.php b/app/Crud/CustomerAccountCrud.php new file mode 100644 index 000000000..07b427e80 --- /dev/null +++ b/app/Crud/CustomerAccountCrud.php @@ -0,0 +1,474 @@ + 'nexopos.customers.manage-account-history', + 'read' => 'nexopos.customers.manage-account-history', + 'update' => 'nexopos.customers.manage-account-history', + 'delete' => 'nexopos.customers.manage-account-history', + ]; + + /** + * We would like to manually + * save the data from the crud class + */ + public $disablePost = true; + + public $disablePut = false; + + /** + * Adding relation + * Example : [ 'nexopos_users as user', 'user.id', '=', 'nexopos_orders.author' ] + * @param array + */ + public $relations = [ + [ 'nexopos_users as user', 'user.id', '=', 'nexopos_customers_account_history.author' ], + 'leftJoin' => [ + [ 'nexopos_orders as order', 'order.id', '=', 'nexopos_customers_account_history.order_id' ] + ] + ]; + + /** + * all tabs mentionned on the tabs relations + * are ignored on the parent model. + */ + protected $tabsRelations = [ + // 'tab_name' => [ YourRelatedModel::class, 'localkey_on_relatedmodel', 'foreignkey_on_crud_model' ], + ]; + + /** + * Pick + * Restrict columns you retreive from relation. + * Should be an array of associative keys, where + * keys are either the related table or alias name. + * Example : [ + * 'user' => [ 'username' ], // here the relation on the table nexopos_users is using "user" as an alias + * ] + */ + public $pick = [ + 'order' => [ 'code' ], + 'user' => [ 'username' ], + ]; + + /** + * Define where statement + * @var array + **/ + protected $listWhere = []; + + /** + * Define where in statement + * @var array + */ + protected $whereIn = []; + + /** + * Fields which will be filled during post/put + */ + public $fillable = []; + + /** + * @param CustomerService; + */ + protected $customerService; + + /** + * Define Constructor + * @param + */ + public function __construct() + { + parent::__construct(); + + Hook::addFilter( $this->namespace . '-crud-actions', [ $this, 'setActions' ], 10, 2 ); + + /** + * @var CustomerService + */ + $this->customerService = app()->make( CustomerService::class ); + } + + /** + * Return the label used for the crud + * instance + * @return array + **/ + public function getLabels() + { + return [ + 'list_title' => __( 'Customer Accounts List' ), + 'list_description' => __( 'Display all customer accounts.' ), + 'no_entry' => __( 'No customer accounts has been registered' ), + 'create_new' => __( 'Add a new customer account' ), + 'create_title' => __( 'Create a new customer account' ), + 'create_description' => __( 'Register a new customer account and save it.' ), + 'edit_title' => __( 'Edit customer account' ), + 'edit_description' => __( 'Modify Customer Account.' ), + 'back_to_list' => __( 'Return to Customer Accounts' ), + ]; + } + + /** + * Check whether a feature is enabled + * @return boolean + **/ + public function isEnabled( $feature ) + { + return false; // by default + } + + /** + * Fields + * @param object/null + * @return array of field + */ + public function getForm( $entry = null ) + { + return [ + 'main' => [ + 'label' => __( 'Name' ), + // 'name' => 'name', + // 'value' => $entry->name ?? '', + 'description' => __( 'This will be ignored.' ) + ], + 'tabs' => [ + 'general' => [ + 'label' => __( 'General' ), + 'fields' => [ + [ + 'type' => 'text', + 'name' => 'amount', + 'label' => __( 'Amount' ), + 'validation' => 'required', + 'description' => __( 'Define the amount of the transaction' ), + 'value' => $entry->amount ?? '', + ], [ + 'type' => 'select', + 'options' => Helper::kvToJsOptions([ + CustomerAccountHistory::OPERATION_DEDUCT => __( 'Deduct' ), + CustomerAccountHistory::OPERATION_ADD => __( 'Add' ), + ]), + 'description' => __( 'Define what operation will occurs on the customer account.' ), + 'name' => 'operation', + 'validation' => 'required', + 'label' => __( 'Operation' ), + 'value' => $entry->operation ?? '', + ], [ + 'type' => 'textarea', + 'name' => 'description', + 'label' => __( 'Description' ), + 'value' => $entry->description ?? '', + ] + ] + ] + ] + ]; + } + + /** + * Filter POST input fields + * @param array of fields + * @return array of fields + */ + public function filterPostInputs( $inputs ) + { + return $inputs; + } + + /** + * Filter PUT input fields + * @param array of fields + * @return array of fields + */ + public function filterPutInputs( $inputs, CustomerAccountHistory $entry ) + { + return $inputs; + } + + /** + * Before saving a record + * @param Request $request + * @return void + */ + public function beforePost( $request ) + { + if ( $this->permissions[ 'create' ] !== false ) { + ns()->restrict( $this->permissions[ 'create' ] ); + } else { + throw new NotAllowedException; + } + + return $request; + } + + /** + * After saving a record + * @param Request $request + * @param CustomerAccountHistory $entry + * @return void + */ + public function afterPost( $request, CustomerAccountHistory $entry ) + { + return $request; + } + + + /** + * get + * @param string + * @return mixed + */ + public function get( $param ) + { + switch( $param ) { + case 'model' : return $this->model ; break; + } + } + + /** + * Before updating a record + * @param Request $request + * @param object entry + * @return void + */ + public function beforePut( $request, $entry ) + { + if ( $this->permissions[ 'update' ] !== false ) { + ns()->restrict( $this->permissions[ 'update' ] ); + } else { + throw new NotAllowedException; + } + + return $request; + } + + /** + * After updating a record + * @param Request $request + * @param object entry + * @return void + */ + public function afterPut( $request, $entry ) + { + return $request; + } + + /** + * Before Delete + * @return void + */ + public function beforeDelete( $namespace, $id, $model ) { + if ( $namespace == 'ns.customers-account-history' ) { + /** + * Perform an action before deleting an entry + * In case something wrong, this response can be returned + * + * return response([ + * 'status' => 'danger', + * 'message' => __( 'You\re not allowed to do that.' ) + * ], 403 ); + **/ + if ( $this->permissions[ 'delete' ] !== false ) { + ns()->restrict( $this->permissions[ 'delete' ] ); + } else { + throw new NotAllowedException; + } + } + } + + /** + * Define Columns + * @return array of columns configuration + */ + public function getColumns() { + return [ + 'amount' => [ + 'label' => __( 'Amount' ), + '$direction' => '', + '$sort' => false + ], + 'operation' => [ + 'label' => __( 'Operation' ), + '$direction' => '', + '$sort' => false + ], + 'order_code' => [ + 'label' => __( 'Order' ), + '$direction' => '', + '$sort' => false + ], + 'user_username' => [ + 'label' => __( 'Author' ), + '$direction' => '', + '$sort' => false + ], + 'created_at' => [ + 'label' => __( 'Created At' ), + '$direction' => '', + '$sort' => false + ], + ]; + } + + /** + * Define actions + */ + public function setActions( $entry, $namespace ) + { + // Don't overwrite + $entry->{ '$checked' } = false; + $entry->{ '$toggled' } = false; + $entry->{ '$id' } = $entry->id; + + $entry->{ 'order_code' } = $entry->{ 'order_code' } === null ? __( 'N/A' ) : $entry->{ 'order_code' }; + $entry->operation = $this->customerService->getCustomerAccountOperationLabel( $entry->operation ); + $entry->amount = ( string ) ns()->currency->define( $entry->amount ); + + // you can make changes here + $entry->{'$actions'} = [ + [ + 'label' => __( 'Edit' ), + 'namespace' => 'edit', + 'type' => 'GOTO', + 'url' => ns()->url( '/dashboard/' . $this->slug . '/edit/' . $entry->id ) + ], [ + 'label' => __( 'Delete' ), + 'namespace' => 'delete', + 'type' => 'DELETE', + 'url' => ns()->url( '/api/nexopos/v4/crud/ns.customers-account-history/' . $entry->id ), + 'confirm' => [ + 'message' => __( 'Would you like to delete this ?' ), + ] + ] + ]; + + return $entry; + } + + + /** + * Bulk Delete Action + * @param object Request with object + * @return false/array + */ + public function bulkAction( Request $request ) + { + /** + * Deleting licence is only allowed for admin + * and supervisor. + */ + + if ( $request->input( 'action' ) == 'delete_selected' ) { + + /** + * Will control if the user has the permissoin to do that. + */ + if ( $this->permissions[ 'delete' ] !== false ) { + ns()->restrict( $this->permissions[ 'delete' ] ); + } else { + throw new NotAllowedException; + } + + $status = [ + 'success' => 0, + 'failed' => 0 + ]; + + foreach ( $request->input( 'entries' ) as $id ) { + $entity = $this->model::find( $id ); + if ( $entity instanceof CustomerAccountHistory ) { + $entity->delete(); + $status[ 'success' ]++; + } else { + $status[ 'failed' ]++; + } + } + return $status; + } + + return Hook::filter( $this->namespace . '-catch-action', false, $request ); + } + + /** + * get Links + * @return array of links + */ + public function getLinks() + { + return [ + 'list' => ns()->url( 'dashboard/' . 'customers/' . '/account-history' ), + 'create' => ns()->url( 'dashboard/' . 'customers/' . '/account-history/create' ), + 'edit' => ns()->url( 'dashboard/' . 'customers/' . '/account-history/edit/' ), + 'post' => ns()->url( 'api/nexopos/v4/crud/' . 'ns.customers-account-history' ), + 'put' => ns()->url( 'api/nexopos/v4/crud/' . 'ns.customers-account-history/{id}' ), + ]; + } + + /** + * Get Bulk actions + * @return array of actions + **/ + public function getBulkActions() + { + return Hook::filter( $this->namespace . '-bulk', [ + [ + 'label' => __( 'Delete Selected Groups' ), + 'identifier' => 'delete_selected', + 'url' => ns()->route( 'ns.api.crud-bulk-actions', [ + 'namespace' => $this->namespace + ]) + ] + ]); + } + + /** + * get exports + * @return array of export formats + **/ + public function getExports() + { + return []; + } +} \ No newline at end of file diff --git a/app/Crud/CustomerCrud.php b/app/Crud/CustomerCrud.php index cbdf2e51b..511f40ca4 100755 --- a/app/Crud/CustomerCrud.php +++ b/app/Crud/CustomerCrud.php @@ -1,5 +1,9 @@ allowedTo( 'delete' ); + + CustomerBeforeDeletedEvent::dispatch( $customer ); } } @@ -510,6 +520,11 @@ public function setActions( $entry, $namespace ) 'namespace' => 'customers_rewards', 'type' => 'GOTO', 'url' => ns()->url( 'dashboard/customers/' . $entry->id . '/coupons' ) + ], [ + 'label' => __( 'Account History' ), + 'namespace' => 'customers_rewards', + 'type' => 'GOTO', + 'url' => ns()->url( 'dashboard/customers/' . $entry->id . '/account-history' ) ], [ 'label' => __( 'Delete' ), 'namespace' => 'delete', diff --git a/app/Crud/ProcurementCrud.php b/app/Crud/ProcurementCrud.php index 8f5f0214e..874b54f1f 100755 --- a/app/Crud/ProcurementCrud.php +++ b/app/Crud/ProcurementCrud.php @@ -1,12 +1,14 @@ 'nexopos.delete.procurements', ]; + /** + * @var ProviderService + */ + protected $providerService; + /** * Define Constructor * @param @@ -74,6 +81,8 @@ public function __construct() { parent::__construct(); + $this->providerService = app()->make( ProviderService::class ); + Hook::addFilter( $this->namespace . '-crud-actions', [ $this, 'setActions' ], 10, 2 ); } @@ -364,29 +373,8 @@ public function setActions( $entry, $namespace ) $entry->{ '$toggled' } = false; $entry->{ '$id' } = $entry->id; - switch( $entry->delivery_status ) { - case Procurement::PENDING: - $entry->delivery_status = __( 'Pending' ); - break; - case Procurement::DELIVERED: - $entry->delivery_status = __( 'Delivered' ); - break; - case Procurement::STOCKED: - $entry->delivery_status = __( 'Stocked' ); - break; - default: - $entry->delivery_status = Hook::filter( 'ns-delivery-status', $entry->delivery_status ); - break; - } - - switch( $entry->payment_status ) { - case Procurement::PAYMENT_UNPAID: - $entry->payment_status = __( 'Unpaid' ); - break; - case Procurement::PAYMENT_PAID: - $entry->payment_status = __( 'Paid' ); - break; - } + $entry->delivery_status = $this->providerService->getDeliveryStatusLabel( $entry->delivery_status ); + $entry->payment_status = $this->providerService->getPaymentStatusLabel( $entry->payment_status ); $entry->value = ns() ->currency @@ -434,19 +422,17 @@ public function setActions( $entry, $namespace ) */ public function bulkAction( Request $request ) { - /** - * Deleting licence is only allowed for admin - * and supervisor. - */ - $user = app()->make( Users::class ); - if ( ! $user->is([ 'admin', 'supervisor' ]) ) { - return response()->json([ - 'status' => 'failed', - 'message' => __( 'You\'re not allowed to do this operation' ) - ], 403 ); - } - if ( $request->input( 'action' ) == 'delete_selected' ) { + + /** + * Will control if the user has the permissoin to do that. + */ + if ( $this->permissions[ 'delete' ] !== false ) { + ns()->restrict( $this->permissions[ 'delete' ] ); + } else { + throw new NotAllowedException; + } + $status = [ 'success' => 0, 'failed' => 0 diff --git a/app/Crud/ProductCategoryCrud.php b/app/Crud/ProductCategoryCrud.php index 5e301af76..de32c794f 100755 --- a/app/Crud/ProductCategoryCrud.php +++ b/app/Crud/ProductCategoryCrud.php @@ -1,12 +1,13 @@ allowedTo( 'create' ); + return $request; } @@ -210,6 +212,8 @@ public function beforePost( $request ) */ public function afterPost( $request, ProductCategory $entry ) { + ProductCategoryAfterCreatedEvent::dispatch( $entry ); + return $request; } @@ -244,7 +248,7 @@ public function beforePut( $request, $entry ) * @param object entry * @return void */ - public function afterPut( $request, $entry ) + public function afterPut( $request, ProductCategory $entry ) { /** * If the category is not visible on the POS @@ -260,6 +264,8 @@ public function afterPut( $request, $entry ) ]); } + ProductCategoryAfterUpdatedEvent::dispatch( $entry ); + return $request; } @@ -289,6 +295,8 @@ public function canAccess( $fields ) public function beforeDelete( $namespace, $id, $model ) { if ( $namespace == 'ns.products-categories' ) { $this->allowedTo( 'delete' ); + + ProductCategoryBeforeDeletedEvent::dispatch( $model ); } } @@ -352,6 +360,12 @@ public function setActions( $entry, $namespace ) 'type' => 'GOTO', 'index' => 'id', 'url' => ns()->url( '/dashboard/' . 'products/categories' . '/edit/' . $entry->id ) + ], [ + 'label' => __( 'Compute Products' ), + 'namespace' => 'edit', + 'type' => 'GOTO', + 'index' => 'id', + 'url' => ns()->url( '/dashboard/' . 'products/categories' . '/compute-products/' . $entry->id ) ], [ 'label' => __( 'Delete' ), 'namespace' => 'delete', diff --git a/app/Crud/ProductCrud.php b/app/Crud/ProductCrud.php index 259a6c041..90bd2d27e 100755 --- a/app/Crud/ProductCrud.php +++ b/app/Crud/ProductCrud.php @@ -1,19 +1,16 @@ allowedTo( 'create' ); + $this->allowedTo( 'delete' ); } + ProductBeforeDeleteEvent::dispatch( $model ); + $this->deleteProductAttachedRelation( $model ); } diff --git a/app/Crud/ProviderProcurementsCrud.php b/app/Crud/ProviderProcurementsCrud.php new file mode 100644 index 000000000..71b4e4810 --- /dev/null +++ b/app/Crud/ProviderProcurementsCrud.php @@ -0,0 +1,496 @@ + false, + 'read' => true, + 'update' => false, + 'delete' => true, + ]; + + /** + * Adding relation + * Example : [ 'nexopos_users as user', 'user.id', '=', 'nexopos_orders.author' ] + * @param array + */ + public $relations = [ + [ 'nexopos_users as user', 'user.id', '=', 'nexopos_procurements.author' ] + ]; + + /** + * all tabs mentionned on the tabs relations + * are ignored on the parent model. + */ + protected $tabsRelations = [ + // 'tab_name' => [ YourRelatedModel::class, 'localkey_on_relatedmodel', 'foreignkey_on_crud_model' ], + ]; + + /** + * Pick + * Restrict columns you retreive from relation. + * Should be an array of associative keys, where + * keys are either the related table or alias name. + * Example : [ + * 'user' => [ 'username' ], // here the relation on the table nexopos_users is using "user" as an alias + * ] + */ + public $pick = [ + 'user' => [ 'username' ] + ]; + + /** + * Define where statement + * @var array + **/ + protected $listWhere = []; + + /** + * Define where in statement + * @var array + */ + protected $whereIn = []; + + /** + * Fields which will be filled during post/put + */ + public $fillable = []; + + /** + * @var ProviderService + */ + protected $providerService; + + /** + * Define Constructor + * @param + */ + public function __construct() + { + parent::__construct(); + + $this->providerService = app()->make( ProviderService::class ); + + Hook::addFilter( $this->namespace . '-crud-actions', [ $this, 'setActions' ], 10, 2 ); + } + + /** + * Return the label used for the crud + * instance + * @return array + **/ + public function getLabels() + { + return [ + 'list_title' => __( 'Provider Procurements List' ), + 'list_description' => __( 'Display all provider procurements.' ), + 'no_entry' => __( 'No provider procurements has been registered' ), + 'create_new' => __( 'Add a new provider procurement' ), + 'create_title' => __( 'Create a new provider procurement' ), + 'create_description' => __( 'Register a new provider procurement and save it.' ), + 'edit_title' => __( 'Edit provider procurement' ), + 'edit_description' => __( 'Modify Provider Procurement.' ), + 'back_to_list' => __( 'Return to Provider Procurements' ), + ]; + } + + /** + * Check whether a feature is enabled + * @return boolean + **/ + public function isEnabled( $feature ) + { + return false; // by default + } + + /** + * Fields + * @param object/null + * @return array of field + */ + public function getForm( $entry = null ) + { + return [ + 'main' => [ + 'label' => __( 'Name' ), + // 'name' => 'name', + // 'value' => $entry->name ?? '', + 'description' => __( 'Provide a name to the resource.' ) + ], + 'tabs' => [ + 'general' => [ + 'label' => __( 'General' ), + 'fields' => [ + [ + 'type' => 'text', + 'name' => 'name', + 'label' => __( 'Name' ), + 'value' => $entry->name ?? '', + ], [ + 'type' => 'text', + 'name' => 'delivery_status', + 'label' => __( 'Delivery Status' ), + 'value' => $entry->delivery_status ?? '', + ], [ + 'type' => 'text', + 'name' => 'delivery_time', + 'label' => __( 'Delivered On' ), + 'value' => $entry->delivery_time ?? '', + ], [ + 'type' => 'text', + 'name' => 'invoice_reference', + 'label' => __( 'Invoice' ), + 'value' => $entry->invoice_reference ?? '', + ], [ + 'type' => 'text', + 'name' => 'payment_status', + 'label' => __( 'Payment Status' ), + 'value' => $entry->payment_status ?? '', + ], [ + 'type' => 'text', + 'name' => 'tax_value', + 'label' => __( 'Tax' ), + 'value' => $entry->tax_value ?? '', + ], [ + 'type' => 'text', + 'name' => 'total_items', + 'label' => __( 'Total Items' ), + 'value' => $entry->total_items ?? '', + ], [ + 'type' => 'text', + 'name' => 'value', + 'label' => __( 'Value' ), + 'value' => $entry->value ?? '', + ], [ + 'type' => 'text', + 'name' => 'created_at', + 'label' => __( 'Created_at' ), + 'value' => $entry->created_at ?? '', + ] + ] + ] + ] + ]; + } + + /** + * Filter POST input fields + * @param array of fields + * @return array of fields + */ + public function filterPostInputs( $inputs ) + { + return $inputs; + } + + /** + * Filter PUT input fields + * @param array of fields + * @return array of fields + */ + public function filterPutInputs( $inputs, Procurement $entry ) + { + return $inputs; + } + + /** + * Before saving a record + * @param Request $request + * @return void + */ + public function beforePost( $request ) + { + if ( $this->permissions[ 'create' ] !== false ) { + ns()->restrict( $this->permissions[ 'create' ] ); + } else { + throw new NotAllowedException; + } + + return $request; + } + + /** + * After saving a record + * @param Request $request + * @param Procurement $entry + * @return void + */ + public function afterPost( $request, Procurement $entry ) + { + return $request; + } + + + /** + * get + * @param string + * @return mixed + */ + public function get( $param ) + { + switch( $param ) { + case 'model' : return $this->model ; break; + } + } + + /** + * Before updating a record + * @param Request $request + * @param object entry + * @return void + */ + public function beforePut( $request, $entry ) + { + if ( $this->permissions[ 'update' ] !== false ) { + ns()->restrict( $this->permissions[ 'update' ] ); + } else { + throw new NotAllowedException; + } + + return $request; + } + + /** + * After updating a record + * @param Request $request + * @param object entry + * @return void + */ + public function afterPut( $request, $entry ) + { + return $request; + } + + /** + * Before Delete + * @return void + */ + public function beforeDelete( $namespace, $id, $model ) { + if ( $namespace == 'ns.providers-procurements' ) { + /** + * Perform an action before deleting an entry + * In case something wrong, this response can be returned + * + * return response([ + * 'status' => 'danger', + * 'message' => __( 'You\re not allowed to do that.' ) + * ], 403 ); + **/ + if ( $this->permissions[ 'delete' ] !== false ) { + ns()->restrict( $this->permissions[ 'delete' ] ); + } else { + throw new NotAllowedException; + } + } + } + + /** + * Define Columns + * @return array of columns configuration + */ + public function getColumns() { + return [ + 'name' => [ + 'label' => __( 'Name' ), + '$direction' => '', + 'width' => '200px', + '$sort' => false + ], + 'delivery_status' => [ + 'label' => __( 'Delivery' ), + '$direction' => '', + 'width' => '120px', + '$sort' => false + ], + 'payment_status' => [ + 'label' => __( 'Payment' ), + '$direction' => '', + '$sort' => false + ], + 'tax_value' => [ + 'label' => __( 'Tax' ), + '$direction' => '', + 'width' => '100px', + '$sort' => false + ], + 'total_items' => [ + 'label' => __( 'Items' ), + '$direction' => '', + '$sort' => false + ], + 'value' => [ + 'label' => __( 'Value' ), + '$direction' => '', + 'width' => '150px', + '$sort' => false + ], + 'user_username' => [ + 'label' => __( 'By' ), + '$direction' => '', + '$sort' => false + ], + 'created_at' => [ + 'label' => __( 'Created At' ), + 'width' => '200px', + '$direction' => '', + '$sort' => false + ], + ]; + } + + /** + * Define actions + */ + public function setActions( $entry, $namespace ) + { + // Don't overwrite + $entry->{ '$checked' } = false; + $entry->{ '$toggled' } = false; + $entry->{ '$id' } = $entry->id; + $entry->tax_value = ( string ) ns()->currency->define( $entry->tax_value ); + $entry->value = ( string ) ns()->currency->define( $entry->value ); + + $entry->delivery_status = $this->providerService->getDeliveryStatusLabel( $entry->delivery_status ); + $entry->payment_status = $this->providerService->getPaymentStatusLabel( $entry->payment_status ); + + // you can make changes here + $entry->{'$actions'} = [ + [ + 'label' => __( 'Delete' ), + 'namespace' => 'delete', + 'type' => 'DELETE', + 'url' => ns()->url( '/api/nexopos/v4/crud/ns.procurements/' . $entry->id ), + 'confirm' => [ + 'message' => __( 'Would you like to delete this ?' ), + ] + ] + ]; + + return $entry; + } + + + /** + * Bulk Delete Action + * @param object Request with object + * @return false/array + */ + public function bulkAction( Request $request ) + { + /** + * Deleting licence is only allowed for admin + * and supervisor. + */ + + if ( $request->input( 'action' ) == 'delete_selected' ) { + + /** + * Will control if the user has the permissoin to do that. + */ + if ( $this->permissions[ 'delete' ] !== false ) { + ns()->restrict( $this->permissions[ 'delete' ] ); + } else { + throw new NotAllowedException; + } + + $status = [ + 'success' => 0, + 'failed' => 0 + ]; + + foreach ( $request->input( 'entries' ) as $id ) { + $entity = $this->model::find( $id ); + if ( $entity instanceof Procurement ) { + $entity->delete(); + $status[ 'success' ]++; + } else { + $status[ 'failed' ]++; + } + } + return $status; + } + + return Hook::filter( $this->namespace . '-catch-action', false, $request ); + } + + /** + * get Links + * @return array of links + */ + public function getLinks() + { + return [ + 'list' => ns()->url( 'dashboard/' . '/providers/procurements' ), + 'create' => 'javascript:void(0)', + 'edit' => ns()->url( 'dashboard/' . '/providers/procurements/edit/' ), + 'post' => ns()->url( 'api/nexopos/v4/crud/' . 'ns.providers-procurements' ), + 'put' => ns()->url( 'api/nexopos/v4/crud/' . 'ns.providers-procurements/{id}' . '' ), + ]; + } + + /** + * Get Bulk actions + * @return array of actions + **/ + public function getBulkActions() + { + return Hook::filter( $this->namespace . '-bulk', [ + [ + 'label' => __( 'Delete Selected Groups' ), + 'identifier' => 'delete_selected', + 'url' => ns()->route( 'ns.api.crud-bulk-actions', [ + 'namespace' => $this->namespace + ]) + ] + ]); + } + + /** + * get exports + * @return array of export formats + **/ + public function getExports() + { + return []; + } +} \ No newline at end of file diff --git a/app/Events/CustomerAfterCreatedEvent.php b/app/Events/CustomerAfterCreatedEvent.php new file mode 100644 index 000000000..b38a39790 --- /dev/null +++ b/app/Events/CustomerAfterCreatedEvent.php @@ -0,0 +1,37 @@ +customer = $customer; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/CustomerAfterUpdatedEvent.php b/app/Events/CustomerAfterUpdatedEvent.php index 63394a5b7..6c5e5502f 100755 --- a/app/Events/CustomerAfterUpdatedEvent.php +++ b/app/Events/CustomerAfterUpdatedEvent.php @@ -2,6 +2,7 @@ namespace App\Events; +use App\Models\Customer; use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Broadcasting\PresenceChannel; @@ -14,14 +15,16 @@ class CustomerAfterUpdatedEvent { use Dispatchable, InteractsWithSockets, SerializesModels; + public $customer; + /** * Create a new event instance. * * @return void */ - public function __construct() + public function __construct( Customer $customer ) { - // + $this->customer = $customer; } /** diff --git a/app/Events/CustomerBeforeDeletedEvent.php b/app/Events/CustomerBeforeDeletedEvent.php new file mode 100644 index 000000000..edc250cce --- /dev/null +++ b/app/Events/CustomerBeforeDeletedEvent.php @@ -0,0 +1,37 @@ +customer = $customer; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/ProductBeforeDeleteEvent.php b/app/Events/ProductBeforeDeleteEvent.php old mode 100755 new mode 100644 index 633ac2ad6..3675ca7a5 --- a/app/Events/ProductBeforeDeleteEvent.php +++ b/app/Events/ProductBeforeDeleteEvent.php @@ -1,17 +1,39 @@ product = $product; } -} \ No newline at end of file + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/ProductCategoryAfterCreatedEvent.php b/app/Events/ProductCategoryAfterCreatedEvent.php new file mode 100644 index 000000000..4f7fece4b --- /dev/null +++ b/app/Events/ProductCategoryAfterCreatedEvent.php @@ -0,0 +1,39 @@ +category = $category; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/ProductCategoryAfterUpdatedEvent.php b/app/Events/ProductCategoryAfterUpdatedEvent.php new file mode 100644 index 000000000..ca69f80f4 --- /dev/null +++ b/app/Events/ProductCategoryAfterUpdatedEvent.php @@ -0,0 +1,39 @@ +category = $category; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/ProductCategoryBeforeDeletedEvent.php b/app/Events/ProductCategoryBeforeDeletedEvent.php new file mode 100644 index 000000000..7c2e4c4b8 --- /dev/null +++ b/app/Events/ProductCategoryBeforeDeletedEvent.php @@ -0,0 +1,39 @@ +category = $category; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Filters/MenusFilter.php b/app/Filters/MenusFilter.php index 607042ff8..05654c02c 100755 --- a/app/Filters/MenusFilter.php +++ b/app/Filters/MenusFilter.php @@ -35,14 +35,14 @@ public static function injectRegisterMenus( $menus ) 'orders' => [ 'label' => __( 'Orders' ), 'icon' => 'la-list-ol', - 'childrens' => [ - ...$menus[ 'orders' ][ 'childrens' ], - 'instalments' => [ - 'label' => __( 'Instalments' ), - 'permissions' => [ 'nexopos.read.orders-instalments' ], - 'href' => ns()->route( 'ns.dashboard.orders-instalments' ), - ], - ] + 'childrens' => array_merge( + $menus[ 'orders' ][ 'childrens' ], [ + 'instalments' => [ + 'label' => __( 'Instalments' ), + 'permissions' => [ 'nexopos.read.orders-instalments' ], + 'href' => ns()->route( 'ns.dashboard.orders-instalments' ), + ], + ]) ] ]); } diff --git a/app/Http/Controllers/Dashboard/CategoryController.php b/app/Http/Controllers/Dashboard/CategoryController.php index 2b571c91d..b71aba212 100755 --- a/app/Http/Controllers/Dashboard/CategoryController.php +++ b/app/Http/Controllers/Dashboard/CategoryController.php @@ -12,11 +12,24 @@ use Illuminate\Http\Request; use App\Models\ProductCategory; use App\Crud\ProductCategoryCrud; +use App\Services\ProductCategoryService; use Exception; use Illuminate\Support\Facades\Auth; class CategoryController extends DashboardController { + /** + * @param ProductCategoryService + */ + public $categoryService; + + public function __construct( + ProductCategoryService $categoryService + ) + { + $this->categoryService = $categoryService; + } + public function get( $id = null ) { if ( ! empty( $id ) ) { @@ -210,6 +223,14 @@ public function editCategory( ProductCategory $category ) return ProductCategoryCrud::form( $category ); } + public function computeCategoryProducts( ProductCategory $category ) + { + $this->categoryService->computeProducts( $category ); + + return redirect( url()->previous() ) + ->with( 'message', __( 'The category products has been refreshed' ) ); + } + public function getCategories( $id = '0' ) { if ( $id !== '0' ) { @@ -220,7 +241,7 @@ public function getCategories( $id = '0' ) return [ 'products' => $category->products() - ->with( 'galleries' ) + ->with( 'galleries', 'tax_group.taxes' ) ->searchable() ->trackingDisabled() ->get() diff --git a/app/Http/Controllers/Dashboard/CrudController.php b/app/Http/Controllers/Dashboard/CrudController.php index 220cd3762..c52edd399 100755 --- a/app/Http/Controllers/Dashboard/CrudController.php +++ b/app/Http/Controllers/Dashboard/CrudController.php @@ -101,75 +101,82 @@ public function crudPost( String $namespace, CrudPostRequest $request ) $resource->beforePost( $request ); } - foreach ( $inputs as $name => $value ) { - - /** - * If submitted field are part of fillable fields - */ - if ( in_array( $name, $resource->getFillable() ) || count( $resource->getFillable() ) === 0 ) { - - /** - * We might give the capacity to filter fields - * before storing. This can be used to apply specific formating to the field. - */ - if ( method_exists( $resource, 'filterPost' ) ) { - $entry->$name = $resource->filterPost( $value, $name ); - } else { - $entry->$name = $value; - } - } - - /** - * sanitizing input to remove - * all script tags - */ - if ( ! empty( $entry->$name ) ) { - $entry->$name = strip_tags( $entry->$name ); - } - } - /** - * If fillable is empty or if "author" it's explicitely - * mentionned on the fillable array. + * If we would like to handle the PUT request + * by any other handler than the CrudService */ - if ( empty( $resource->getFillable() ) || in_array( 'author', $resource->getFillable() ) ) { - $entry->author = Auth::id(); - } - - $entry->save(); + if ( ! $resource->disablePut ) { - /** - * loop the tabs relations - * and store it - */ - foreach( $resource->getTabsRelations() as $tab => $relationParams ) { - $fields = $request->input( $tab ); - $class = $relationParams[0]; - $localKey = $relationParams[1]; - $foreighKey = $relationParams[2]; - - if ( ! empty( $fields ) ) { - $model = $class::where( $localKey, $entry->$foreighKey )->first(); + foreach ( $inputs as $name => $value ) { /** - * no relation has been found - * so we'll store that. + * If submitted field are part of fillable fields */ - if ( ! $model instanceof $class ) { - $model = new $relationParams[0]; // should be the class; + if ( in_array( $name, $resource->getFillable() ) || count( $resource->getFillable() ) === 0 ) { + + /** + * We might give the capacity to filter fields + * before storing. This can be used to apply specific formating to the field. + */ + if ( method_exists( $resource, 'filterPost' ) ) { + $entry->$name = $resource->filterPost( $value, $name ); + } else { + $entry->$name = $value; + } } /** - * We're saving here all the fields for - * the related model + * sanitizing input to remove + * all script tags */ - foreach( $fields as $name => $value ) { - $model->$name = $value; + if ( ! empty( $entry->$name ) ) { + $entry->$name = strip_tags( $entry->$name ); } + } + + /** + * If fillable is empty or if "author" it's explicitely + * mentionned on the fillable array. + */ + if ( empty( $resource->getFillable() ) || in_array( 'author', $resource->getFillable() ) ) { + $entry->author = Auth::id(); + } - $model->$localKey = $entry->$foreighKey; - $model->author = Auth::id(); - $model->save(); + $entry->save(); + + /** + * loop the tabs relations + * and store it + */ + foreach( $resource->getTabsRelations() as $tab => $relationParams ) { + $fields = $request->input( $tab ); + $class = $relationParams[0]; + $localKey = $relationParams[1]; + $foreighKey = $relationParams[2]; + + if ( ! empty( $fields ) ) { + $model = $class::where( $localKey, $entry->$foreighKey )->first(); + + /** + * no relation has been found + * so we'll store that. + */ + if ( ! $model instanceof $class ) { + $model = new $relationParams[0]; // should be the class; + } + + /** + * We're saving here all the fields for + * the related model + */ + foreach( $fields as $name => $value ) { + $model->$name = $value; + } + + $model->$localKey = $entry->$foreighKey; + $model->author = Auth::id(); + $model->save(); + } } } @@ -224,78 +231,86 @@ public function crudPut( String $namespace, $id, CrudPutRequest $request ) $resource->beforePut( $request, $entry ); } - foreach ( $inputs as $name => $value ) { - - /** - * If submitted field are part of fillable fields - */ - if ( in_array( $name, $resource->getFillable() ) || count( $resource->getFillable() ) === 0 ) { + /** + * If we would like to handle the PUT request + * by any other handler than the CrudService + */ + if ( ! $resource->disablePut ) { + foreach ( $inputs as $name => $value ) { + + /** + * If submitted field are part of fillable fields + */ + if ( in_array( $name, $resource->getFillable() ) || count( $resource->getFillable() ) === 0 ) { + + /** + * We might give the capacity to filter fields + * before storing. This can be used to apply specific formating to the field. + */ + if ( method_exists( $resource, 'filterPut' ) ) { + $entry->$name = $resource->filterPut( $value, $name ); + } else { + $entry->$name = $value; + } + } + /** - * We might give the capacity to filter fields - * before storing. This can be used to apply specific formating to the field. + * sanitizing input to remove + * all script tags */ - if ( method_exists( $resource, 'filterPut' ) ) { - $entry->$name = $resource->filterPut( $value, $name ); - } else { - $entry->$name = $value; + if ( ! empty( $entry->$name ) ) { + $entry->$name = strip_tags( $entry->$name ); } } - + /** - * sanitizing input to remove - * all script tags + * If fillable is empty or if "author" it's explicitely + * mentionned on the fillable array. */ - if ( ! empty( $entry->$name ) ) { - $entry->$name = strip_tags( $entry->$name ); + if ( empty( $resource->getFillable() ) || in_array( 'author', $resource->getFillable() ) ) { + $entry->author = Auth::id(); } - } - - /** - * If fillable is empty or if "author" it's explicitely - * mentionned on the fillable array. - */ - if ( empty( $resource->getFillable() ) || in_array( 'author', $resource->getFillable() ) ) { - $entry->author = Auth::id(); - } - - $entry->save(); - - /** - * loop the tabs relations - * and store it - */ - foreach( $resource->getTabsRelations() as $tab => $relationParams ) { - $fields = $request->input( $tab ); - $class = $relationParams[0]; - $localKey = $relationParams[1]; - $foreighKey = $relationParams[2]; - if ( ! empty( $fields ) ) { - $model = $class::where( $localKey, $entry->$foreighKey )->first(); - - /** - * no relation has been found - * so we'll store that. - */ - if ( ! $model instanceof $class ) { - $model = new $relationParams[0]; // should be the class; - } - - /** - * We're saving here all the fields for - * the related model - */ - foreach( $fields as $name => $value ) { - $model->$name = $value; + $entry->save(); + + /** + * loop the tabs relations + * and store it + */ + foreach( $resource->getTabsRelations() as $tab => $relationParams ) { + $fields = $request->input( $tab ); + $class = $relationParams[0]; + $localKey = $relationParams[1]; + $foreighKey = $relationParams[2]; + + if ( ! empty( $fields ) ) { + $model = $class::where( $localKey, $entry->$foreighKey )->first(); + + /** + * no relation has been found + * so we'll store that. + */ + if ( ! $model instanceof $class ) { + $model = new $relationParams[0]; // should be the class; + } + + /** + * We're saving here all the fields for + * the related model + */ + foreach( $fields as $name => $value ) { + $model->$name = $value; + } + + $model->$localKey = $entry->$foreighKey; + $model->author = Auth::id(); + $model->save(); } - - $model->$localKey = $entry->$foreighKey; - $model->author = Auth::id(); - $model->save(); } + } - + /** * Create an event after crud POST */ @@ -473,7 +488,15 @@ public function getFormConfig( string $namespace, $id = null ) if ( method_exists( $resource, 'getEntries' ) ) { $model = $resource->get( 'model' ); $model = $model::find( $id ); + /** + * @deprecated + */ $form = Hook::filter( 'ns.crud.form', $resource->getForm( $model ), $namespace, compact( 'model', 'namespace', 'id' ) ); + + /** + * @since 4.4.3 + */ + $form = Hook::filter( get_class( $resource )::method( 'getForm' ), $resource->getForm( $model ), compact( 'model' ) ); $config = [ 'form' => $form, 'labels' => $resource->getLabels(), diff --git a/app/Http/Controllers/Dashboard/CustomersController.php b/app/Http/Controllers/Dashboard/CustomersController.php index 4bb040e76..6b0ff2bb8 100755 --- a/app/Http/Controllers/Dashboard/CustomersController.php +++ b/app/Http/Controllers/Dashboard/CustomersController.php @@ -8,6 +8,7 @@ namespace App\Http\Controllers\Dashboard; use App\Crud\CouponCrud; +use App\Crud\CustomerAccountCrud; use App\Crud\CustomerCouponCrud; use App\Crud\CustomerCrud; use App\Crud\CustomerOrderCrud; @@ -136,6 +137,11 @@ public function getOrders( $id ) }); } + /** + * Renders a form for editing a customer + * @param Customer $customer + * @return string + */ public function editCustomer( Customer $customer ) { return CustomerCrud::form( $customer ); @@ -152,6 +158,11 @@ public function getAddresses( $id ) return $this->customerService->getCustomerAddresses( $id ); } + /** + * Deletes a customer using his email + * @param string $email + * @return array + */ public function deleteUsingEmail( $email ) { return $this->customerService->deleteUsingEmail( $email ); @@ -232,6 +243,12 @@ public function getCustomersOrders( Customer $customer ) ]); } + /** + * Returns a crud component table that lists + * all customer rewards + * @param Customer $customer + * @return string + */ public function getCustomersRewards( Customer $customer ) { return CustomerRewardCrud::table([ @@ -241,6 +258,13 @@ public function getCustomersRewards( Customer $customer ) ]); } + /** + * Will render a formf or editing + * a customer reward + * @param Customer $customer + * @param CustomerReward $reward + * @return string + */ public function editCustomerReward( Customer $customer, CustomerReward $reward ) { return CustomerRewardCrud::form( $reward, [ @@ -251,6 +275,11 @@ public function editCustomerReward( Customer $customer, CustomerReward $reward ) ]); } + /** + * Will render the customer coupon table + * @param Customer $customer + * @return string + */ public function getCustomersCoupons( Customer $customer ) { return CustomerCouponCrud::table([ @@ -260,14 +289,78 @@ public function getCustomersCoupons( Customer $customer ) ]); } + /** + * Returns allt he customer coupons + * @param Customer $customer + * @return array + */ public function getCustomerCoupons( Customer $customer ) { - return $customer->coupons; + return $customer->coupons()->with( 'coupon' )->get(); } + /** + * Loads specific customer coupon and return + * as an array + * @param Request $request + * @param string $code + * @return array|string + */ public function loadCoupons( Request $request, $code ) { return $this->customerService->loadCoupon( $code, $request->input( 'customer_id' ) ); } + + /** + * Displays the customer account history + * @param Customer $customer + * @return string + */ + public function getCustomerAccountHistory( Customer $customer ) + { + return CustomerAccountCrud::table([ + 'queryParams' => [ + 'customer_id' => $customer->id + ], + 'createUrl' => ns()->url( '/dashboard/customers/' . $customer->id . '/account-history/create' ), + 'description' => sprintf( + __( 'Displays the customer account history for %s' ), + $customer->name + ), + 'title' => sprintf( + __( 'Account History : %s' ), + $customer->name + ), + ]); + } + + public function createCustomerAccountHistory( Customer $customer ) + { + return CustomerAccountCrud::form( null, [ + 'queryParams' => [ + 'customer_id' => $customer->id + ], + 'returnUrl' => ns()->url( '/dashboard/customers/' . $customer->id . '/account-history' ), + 'submitUrl' => ns()->url( '/api/nexopos/v4/customers/' . $customer->id . '/crud/account-history' ), + 'description' => sprintf( + __( 'Displays the customer account history for %s' ), + $customer->name + ), + 'title' => sprintf( + __( 'Account History : %s' ), + $customer->name + ), + ]); + } + + public function recordAccountHistory( Customer $customer, Request $request ) + { + return $this->customerService->saveTransaction( + $customer, + $request->input( 'general.operation' ), + $request->input( 'general.amount' ), + $request->input( 'general.description' ) + ); + } } diff --git a/app/Http/Controllers/Dashboard/OrdersController.php b/app/Http/Controllers/Dashboard/OrdersController.php index a5af4357e..aad3eb2f9 100755 --- a/app/Http/Controllers/Dashboard/OrdersController.php +++ b/app/Http/Controllers/Dashboard/OrdersController.php @@ -166,6 +166,8 @@ public function showPOS() 'ns_pos_tax_type' => ns()->option->get( 'ns_pos_tax_type', false ), 'ns_pos_printing_gateway' => ns()->option->get( 'ns_pos_printing_gateway', 'default' ), 'ns_pos_show_quantity' => ns()->option->get( 'ns_pos_show_quantity', 'no' ) === 'no' ? false : true, + 'ns_pos_new_item_audio' => ns()->option->get( 'ns_pos_new_item_audio', '' ), + 'ns_pos_complete_sale_audio' => ns()->option->get( 'ns_pos_complete_sale_audio', '' ), ]), 'urls' => [ 'printing_url' => Hook::filter( 'ns-pos-printing-url', ns()->url( '/dashboard/orders/receipt/{id}?dash-visibility=disabled&autoprint=true' ) ), diff --git a/app/Http/Controllers/Dashboard/ProcurementController.php b/app/Http/Controllers/Dashboard/ProcurementController.php index b9db7e7b0..95f50a172 100755 --- a/app/Http/Controllers/Dashboard/ProcurementController.php +++ b/app/Http/Controllers/Dashboard/ProcurementController.php @@ -249,14 +249,15 @@ public function searchProduct( Request $request ) public function searchProcurementProduct( Request $request ) { - $products = Product::query()->orWhere( 'name', 'LIKE', "%{$request->input( 'argument' )}%" ) + $products = Product::query() ->trackingDisabled() ->with( 'unit_quantities.unit' ) ->where( function( $query ) use ( $request ) { $query->where( 'sku', 'LIKE', "%{$request->input( 'argument' )}%" ) + ->orWhere( 'name', 'LIKE', "%{$request->input( 'argument' )}%" ) ->orWhere( 'barcode', 'LIKE', "%{$request->input( 'argument' )}%" ); }) - ->limit( 5 ) + ->limit( 8 ) ->get() ->map( function( $product ) { $units = json_decode( $product->purchase_unit_ids ); diff --git a/app/Http/Controllers/Dashboard/ProvidersController.php b/app/Http/Controllers/Dashboard/ProvidersController.php index 788bfc7d5..fd675ace9 100755 --- a/app/Http/Controllers/Dashboard/ProvidersController.php +++ b/app/Http/Controllers/Dashboard/ProvidersController.php @@ -12,6 +12,7 @@ use Illuminate\Support\Facades\Validator; use App\Fields\ProviderFields; use App\Crud\ProviderCrud; +use App\Crud\ProviderProcurementsCrud; use App\Http\Controllers\DashboardController; use App\Models\Provider; use App\Services\Options; @@ -125,5 +126,24 @@ public function deleteProvider( $id ) { return $this->providerService->delete( $id ); } + + /** + * Will return the list of procurements + * made by the provider + * @param Provider $provider + * @return string + */ + public function listProvidersProcurements( Provider $provider ) + { + return ProviderProcurementsCrud::table([ + 'queryParams' => [ + 'provider_id' => $provider->id + ], + 'title' => sprintf( + __( 'Procurements by "%s"' ), + $provider->name + ) + ]); + } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 1b16b0a7b..7c18176a7 100755 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -22,7 +22,7 @@ class Kernel extends HttpKernel */ protected $middleware = [ // \App\Http\Middleware\TrustHosts::class, - ForceSetSessionDomainMiddleware::class, + // ForceSetSessionDomainMiddleware::class, \App\Http\Middleware\TrustProxies::class, \Fruitcake\Cors\HandleCors::class, \App\Http\Middleware\CheckForMaintenanceMode::class, diff --git a/app/Http/Middleware/CheckApplicationHealthMiddleware.php b/app/Http/Middleware/CheckApplicationHealthMiddleware.php index 3ccd30ee0..81b531fc2 100755 --- a/app/Http/Middleware/CheckApplicationHealthMiddleware.php +++ b/app/Http/Middleware/CheckApplicationHealthMiddleware.php @@ -24,7 +24,7 @@ class CheckApplicationHealthMiddleware */ public function handle(Request $request, Closure $next) { - if ( env( 'NS_CRON_PING', false ) === false ) { + if ( ns()->option->get( 'ns_cron_ping', false ) === false ) { /** * @var NotificationsEnum; */ @@ -41,7 +41,7 @@ public function handle(Request $request, Closure $next) * @var DateService */ $date = app()->make( DateService::class ); - $lastUpdate = Carbon::parse( env( 'NS_CRON_PING' ) ); + $lastUpdate = Carbon::parse( ns()->option->get( 'ns_cron_ping' ) ); if ( $lastUpdate->diffInMinutes( $date->now() ) > 60 ) { $this->emitMisconfigurationNotification(); @@ -51,7 +51,7 @@ public function handle(Request $request, Closure $next) * to force check the tasks status. */ TaskSchedulingPingJob::dispatch()->delay( now() ); - } + } } /** @@ -79,7 +79,7 @@ public function emitMisconfigurationNotification() 'identifier' => NotificationsEnum::NSCRONDISABLED, 'source' => 'system', 'url' => 'https://laravel.com/docs/8.x/scheduling#starting-the-scheduler', - 'description' => __( "NexoPOS is unable to run tasks correctly. This happens if Queues or Tasks Scheduling aren't configured correctly." ) + 'description' => __( "NexoPOS is unable to run tasks correctly. This happens if Queues or Tasks Scheduling aren't configured correctly." ), ])->dispatchForGroup( Role::namespace( 'admin' ) ); } } diff --git a/app/Http/Middleware/ForceSetSessionDomainMiddleware.php b/app/Http/Middleware/ForceSetSessionDomainMiddleware.php index cf87a254b..94495b8db 100755 --- a/app/Http/Middleware/ForceSetSessionDomainMiddleware.php +++ b/app/Http/Middleware/ForceSetSessionDomainMiddleware.php @@ -25,17 +25,17 @@ public function handle(Request $request, Closure $next) $domain = Str::replaceFirst( 'https://', '', $domain ); $domain = explode( ':', $domain )[0]; + DotenvEditor::load(); + if ( ! env( 'SESSION_DOMAIN', false ) ) { - DotenvEditor::load(); DotenvEditor::setKey( 'SESSION_DOMAIN', Str::replaceFirst( 'http://', '', explode( ':', $domain )[0] ) ); - DotenvEditor::save(); } - if ( ! env( 'SANCTUM_STATEFUL_DOMAINS', false ) ) { - DotenvEditor::load(); + if ( ! env( 'SANCTUM_STATEFUL_DOMAINS', false ) ) { DotenvEditor::setKey( 'SANCTUM_STATEFUL_DOMAINS', collect([ $domain, 'localhost', '127.0.0.1' ])->unique()->join(',') ); - DotenvEditor::save(); } + + DotenvEditor::save(); return $next($request); } diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index 0c13b8548..4565c2a1e 100755 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -12,6 +12,6 @@ class VerifyCsrfToken extends Middleware * @var array */ protected $except = [ - // + 'webhook/*' // by default all route pointing to webhooks should have the CSRF disbabled ]; } diff --git a/app/Jobs/ComputeCustomerAccountJob.php b/app/Jobs/ComputeCustomerAccountJob.php index a265eddb8..a2123bbb8 100755 --- a/app/Jobs/ComputeCustomerAccountJob.php +++ b/app/Jobs/ComputeCustomerAccountJob.php @@ -3,12 +3,10 @@ namespace App\Jobs; use App\Events\OrderAfterCreatedEvent; -use App\Events\OrderAfterPaymentCreatedEvent; use App\Events\OrderAfterRefundedEvent; use App\Events\OrderAfterUpdatedEvent; use App\Events\OrderBeforeDeleteEvent; use App\Models\Order; -use App\Models\OrderPayment; use App\Services\CustomerService; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; diff --git a/app/Jobs/TaskSchedulingPingJob.php b/app/Jobs/TaskSchedulingPingJob.php index 6f4fb754d..055d30340 100755 --- a/app/Jobs/TaskSchedulingPingJob.php +++ b/app/Jobs/TaskSchedulingPingJob.php @@ -43,9 +43,7 @@ public function handle() * @var DateService */ $date = app()->make( DateService::class ); - DotenvEditor::load(); - DotenvEditor::autoBackup(false); - DotenvEditor::setKey( 'NS_CRON_PING', $date->toDateTimeString() ); - DotenvEditor::save(); + + ns()->option->set( 'ns_cron_ping', $date->toDateTimeString() ); } } diff --git a/app/Listeners/CoreEventSubscriber.php b/app/Listeners/CoreEventSubscriber.php index b3df5a803..2b26b333d 100755 --- a/app/Listeners/CoreEventSubscriber.php +++ b/app/Listeners/CoreEventSubscriber.php @@ -9,8 +9,6 @@ use App\Jobs\InitializeDailyReportJob; use App\Models\DashboardDay; use App\Services\ReportService; -use Illuminate\Contracts\Queue\ShouldQueue; -use Illuminate\Queue\InteractsWithQueue; class CoreEventSubscriber { @@ -30,23 +28,14 @@ public function __construct( public function subscribe( $event ) { - $event->listen( - AfterAppHealthCheckedEvent::class, - [ CoreEventSubscriber::class, 'initializeJobReport' ] - ); - - $event->listen( - DashboardDayAfterCreatedEvent::class, - [ CoreEventSubscriber::class, 'dispatchMonthReportUpdate' ] - ); - - $event->listen( - DashboardDayAfterUpdatedEvent::class, - [ CoreEventSubscriber::class, 'dispatchMonthReportUpdate' ] - ); + return [ + AfterAppHealthCheckedEvent::class => 'initializeJobReport', + DashboardDayAfterCreatedEvent::class => 'dispatchMonthReportUpdate', + DashboardDayAfterUpdatedEvent::class => 'dispatchMonthReportUpdate', + ]; } - public static function dispatchMonthReportUpdate( $event ) + public function dispatchMonthReportUpdate( $event ) { ComputeDashboardMonthReportJob::dispatch() ->delay( now()->addSeconds(10) ); diff --git a/app/Listeners/NotificationListener.php b/app/Listeners/NotificationListener.php new file mode 100644 index 000000000..d177bd1c6 --- /dev/null +++ b/app/Listeners/NotificationListener.php @@ -0,0 +1,25 @@ +notification->delete(); + } +} diff --git a/app/Listeners/ProductEventsSubscriber.php b/app/Listeners/ProductEventsSubscriber.php index d4bb29b23..5180646de 100755 --- a/app/Listeners/ProductEventsSubscriber.php +++ b/app/Listeners/ProductEventsSubscriber.php @@ -64,6 +64,28 @@ public function subscribe( $events ) ProductAfterUpdatedEvent::class, [ ProductEventsSubscriber::class, 'generateBarcode' ] ); + + $events->listen( + ProductAfterCreatedEvent::class, + [ ProductEventsSubscriber::class, 'updateCategoryProduct' ] + ); + + $events->listen( + ProductBeforeDeleteEvent::class, + [ ProductEventsSubscriber::class, 'deductCategoryProducts' ] + ); + } + + public function deductCategoryProducts( ProductBeforeDeleteEvent $event ) + { + $event->product->category->total_items--; + $event->product->category->save(); + } + + public function updateCategoryProduct( ProductAfterCreatedEvent $event ) + { + $event->product->category->total_items++; + $event->product->category->save(); } public function beforeDeleteProduct( ProductBeforeDeleteEvent $event ) @@ -111,5 +133,6 @@ public function afterStockAdjustment( ProductAfterStockAdjustmentEvent $event ) public function afterDeleteProduct( ProductAfterDeleteEvent $event ) { + // ... } } \ No newline at end of file diff --git a/app/Models/Customer.php b/app/Models/Customer.php index e492cc0a3..f4be70950 100755 --- a/app/Models/Customer.php +++ b/app/Models/Customer.php @@ -25,6 +25,11 @@ public function coupons() return $this->hasMany( CustomerCoupon::class, 'customer_id' ); } + public function rewards() + { + return $this->hasMany( CustomerReward::class, 'customer_id' ); + } + /** * define the relationship * @return Model\RelationShip diff --git a/app/Models/OrderPayment.php b/app/Models/OrderPayment.php index 91a582745..526668df0 100755 --- a/app/Models/OrderPayment.php +++ b/app/Models/OrderPayment.php @@ -25,6 +25,11 @@ public function scopeWithOrder( $query, $order_id ) return $query->where( 'order_id', $order_id ); } + public function type() + { + return $this->hasOne( PaymentType::class, 'identifier', 'identifier' ); + } + public function getPaymentLabelAttribute() { $paymentTypes = Cache::remember( 'nexopos.pos.payments-key', '3600', function() { diff --git a/app/Models/ProductHistory.php b/app/Models/ProductHistory.php index a6b1afb60..25cf3a8c8 100755 --- a/app/Models/ProductHistory.php +++ b/app/Models/ProductHistory.php @@ -54,6 +54,17 @@ class ProductHistory extends NsModel ProductHistory::ACTION_ADJUSTMENT_RETURN, ]; + /** + * alias of scopeFindProduct + * @param QueryBuilder $query + * @param integer $product_id + * @return QueryBuilder + */ + public function scopeWithProduct( $query, $product_id ) + { + return $query->where( 'product_id', $product_id ); + } + public function scopeFindProduct( $query, $id ) { return $query->where( 'product_id', $id ); diff --git a/app/Providers/CrudServiceProvider.php b/app/Providers/CrudServiceProvider.php index a9eea99c0..eb433187e 100755 --- a/app/Providers/CrudServiceProvider.php +++ b/app/Providers/CrudServiceProvider.php @@ -4,6 +4,7 @@ use App\Crud\CashFlowHistoryCrud; use App\Crud\CouponCrud; +use App\Crud\CustomerAccountCrud; use App\Crud\CustomerCouponCrud; use App\Crud\CustomerCrud; use App\Crud\CustomerGroupCrud; @@ -29,6 +30,7 @@ use App\Crud\ProcurementProductCrud; use App\Crud\ProductHistoryCrud; use App\Crud\ProductUnitQuantitiesCrud; +use App\Crud\ProviderProcurementsCrud; use App\Crud\RegisterCrud; use App\Crud\RegisterHistoryCrud; use App\Crud\RolesCrud; @@ -92,6 +94,8 @@ public function boot() case 'ns.procurements': return ProcurementCrud::class; case 'ns.procurements-products': return ProcurementProductCrud::class; case 'ns.roles': return RolesCrud::class; + case 'ns.providers-procurements' : return ProviderProcurementsCrud::class; + case 'ns.customers-account-history' : return CustomerAccountCrud::class; } return $namespace; }); diff --git a/app/Providers/ModulesServiceProvider.php b/app/Providers/ModulesServiceProvider.php index 9d00d8702..49de2e469 100755 --- a/app/Providers/ModulesServiceProvider.php +++ b/app/Providers/ModulesServiceProvider.php @@ -17,24 +17,6 @@ class ModulesServiceProvider extends ServiceProvider */ public function boot( ModulesService $modules ) { - collect( $modules->getEnabled() )->each( fn( $module ) => $modules->boot( $module ) ); - - /** - * trigger register method only for enabled modules - * service providers that extends ModulesServiceProvider. - */ - collect( $modules->getEnabled() )->each( function( $module ) use ( $modules ) { - /** - * register module commands - */ - $this->modulesCommands = array_merge( - $this->modulesCommands, - array_keys( $module[ 'commands' ] ) - ); - - $modules->triggerServiceProviders( $module, 'register', ServiceProvider::class ); - }); - /** * trigger boot method only for enabled modules * service providers that extends ModulesServiceProvider. @@ -63,6 +45,24 @@ public function register() $this->app->singleton( ModulesService::class, function( $app ) { $modules = new ModulesService; $modules->load(); + + collect( $modules->getEnabled() )->each( fn( $module ) => $modules->boot( $module ) ); + + /** + * trigger register method only for enabled modules + * service providers that extends ModulesServiceProvider. + */ + collect( $modules->getEnabled() )->each( function( $module ) use ( $modules ) { + /** + * register module commands + */ + $this->modulesCommands = array_merge( + $this->modulesCommands, + array_keys( $module[ 'commands' ] ) + ); + + $modules->triggerServiceProviders( $module, 'register', ServiceProvider::class ); + }); event( new ModulesLoadedEvent( $modules->get() ) ); diff --git a/app/Services/BarcodeService.php b/app/Services/BarcodeService.php index 46fcdc245..24dd66543 100755 --- a/app/Services/BarcodeService.php +++ b/app/Services/BarcodeService.php @@ -5,9 +5,20 @@ use Exception; use Illuminate\Support\Facades\Storage; use Picqer\Barcode\BarcodeGeneratorPNG; +use Faker\Factory; +use Illuminate\Support\Str; -class BarcodeService +class BarcodeService { + const TYPE_EAN8 = 'ean8'; + const TYPE_EAN13 = 'ean13'; + const TYPE_CODABAR = 'codabar'; + const TYPE_CODE128 = 'code128'; + const TYPE_CODE39 = 'code39'; + const TYPE_CODE11 = 'code11'; + const TYPE_UPCA = 'upca'; + const TYPE_UPCE = 'upce'; + /** * generate barcode using a code and a code type * @param string $barcode @@ -36,7 +47,29 @@ public function generateBarcode( $barcode, $type ) $generator->getBarcode( $barcode, $realType, 3, 30 ) ); } catch( Exception $exception ) { - throw new Exception( __( 'An error has occured while creating a barcode for the product. Make sure the barcode value is correct for the barcode type selected. Additional insight : ' . ( $exception->getMessage() ?: __( 'N/A' ) ) ) ); + throw new Exception( + sprintf( + __( 'An error has occured while creating a barcode "%s" using the type "%s" for the product. Make sure the barcode value is correct for the barcode type selected. Additional insight : ' . ( $exception->getMessage() ?: __( 'N/A' ) ) ), + $barcode, + $realType + ) + ); + } + } + + public function generateBarcodeValue( $type ) + { + $faker = (new Factory)->create(); + + switch( $type ) { + case self::TYPE_CODE39 : return strtoupper( Str::random(10) ); + case self::TYPE_CODE128 : return strtoupper( Str::random(10) ); + case self::TYPE_EAN8 : return $faker->randomNumber(8,true); + case self::TYPE_EAN13 : return $faker->randomNumber(6,true) . $faker->randomNumber(6,true); + case self::TYPE_UPCA : return $faker->randomNumber(5,true) . $faker->randomNumber(6,true); + case self::TYPE_UPCE : return $faker->randomNumber(6,true); + case self::TYPE_CODABAR : return $faker->randomNumber(8,true) . $faker->randomNumber(8,true); + case self::TYPE_CODE11 : return $faker->randomNumber(5,true) . '-' . $faker->randomNumber(4,true); } } } \ No newline at end of file diff --git a/app/Services/CrudService.php b/app/Services/CrudService.php index 602419924..cfc97d809 100755 --- a/app/Services/CrudService.php +++ b/app/Services/CrudService.php @@ -67,6 +67,19 @@ class CrudService */ protected $tabsRelations = []; + /** + * Will ensure every POST request + * aren't persistent while events + * for this request are triggered. + */ + public $disablePost = false; + + /** + * Will ensure every PUT requests aren't persisten + * while the events for that request are triggered. + */ + public $disablePut = false; + /** * Construct Parent */ @@ -531,6 +544,11 @@ public function getCrudInstance( $namespace ) public function extractCrudValidation( $crud, $model = null ) { $form = Hook::filter( 'ns.crud.form', $crud->getForm( $model ), $crud->getNamespace(), compact( 'model' ) ); + + if ( is_subclass_of( $crud, CrudService::class ) ) { + $form = Hook::filter( get_class( $crud )::method( 'getForm' ), $crud->getForm( $model ), compact( 'model' ) ); + } + $rules = []; if ( isset( $form[ 'main' ][ 'validation' ] ) ) { @@ -559,6 +577,11 @@ public function extractCrudValidation( $crud, $model = null ) public function getPlainData( $crud, Request $request, $model = null ) { $form = Hook::filter( 'ns.crud.form', $crud->getForm( $model ), $crud->getNamespace(), compact( 'model' ) ); + + if ( is_subclass_of( $crud, CrudService::class ) ) { + $form = Hook::filter( get_class( $crud )::method( 'getForm' ), $crud->getForm( $model ), compact( 'model' ) ); + } + $data = []; if ( isset( $form[ 'main' ][ 'name' ] ) ) { diff --git a/app/Services/CurrencyService.php b/app/Services/CurrencyService.php index 8a7cd1b67..a2ac225d0 100755 --- a/app/Services/CurrencyService.php +++ b/app/Services/CurrencyService.php @@ -74,7 +74,7 @@ public function __toString() public static function multiply( $first, $second ) { return self::__defineAmount( - bcmul( floatval( trim( $first ) ), floatval( trim( $second ) ), intval( self::$_decimal_precision ) ) + bcmul( floatval( trim( $first ) ), floatval( trim( $second ) ) ) ); } @@ -88,7 +88,7 @@ public static function multiply( $first, $second ) public static function divide( $first, $second ) { return self::__defineAmount( - bcdiv( floatval( trim( $first ) ), floatval( trim( $second ) ), intval( self::$_decimal_precision ) ) + bcdiv( floatval( trim( $first ) ), floatval( trim( $second ) ), 10 ) ); } @@ -101,7 +101,7 @@ public static function divide( $first, $second ) public static function additionate( $left_operand, $right_operand ) { return self::__defineAmount( - bcadd( floatval( $left_operand ), floatval( $right_operand ), intval( self::$_decimal_precision ) ) + bcadd( floatval( $left_operand ), floatval( $right_operand ), 10 ) ); } @@ -187,7 +187,7 @@ public function accuracy( $number ) */ public function multipliedBy( $number ) { - $this->value = bcmul( floatval( $this->value ), floatval( $number ), $this->decimal_precision ); + $this->value = bcmul( floatval( $this->value ), floatval( $number ), 10 ); return $this; } @@ -210,7 +210,7 @@ public function multiplyBy( $number ) */ public function dividedBy( $number ) { - $this->value = bcdiv( floatval( $this->value ), floatval( $number ), $this->decimal_precision ); + $this->value = bcdiv( floatval( $this->value ), floatval( $number ), 10 ); return $this; } @@ -233,7 +233,7 @@ public function divideBy( $number ) */ public function subtractBy( $number ) { - $this->value = bcsub( floatval( $this->value ), floatval( $number ), $this->decimal_precision ); + $this->value = bcsub( floatval( $this->value ), floatval( $number ), 10 ); return $this; } @@ -245,7 +245,7 @@ public function subtractBy( $number ) */ public function additionateBy( $number ) { - $this->value = bcadd( floatval( $this->value ), floatval( $number ), $this->decimal_precision ); + $this->value = bcadd( floatval( $this->value ), floatval( $number ), 10 ); return $this; } diff --git a/app/Services/CustomerService.php b/app/Services/CustomerService.php index 6a8583871..f21c7ae18 100755 --- a/app/Services/CustomerService.php +++ b/app/Services/CustomerService.php @@ -373,7 +373,7 @@ public function applyReward( CustomerReward $customerReward, Customer $customer, * we'll issue a new coupon and update the customer * point counter */ - if ( $customerReward->points - $customerReward->target >= 0 ) { + if ( $customerReward->points >= $customerReward->target ) { $coupon = $reward->coupon; if ( $coupon instanceof Coupon ) { @@ -564,4 +564,20 @@ public function createGroup( $fields, CustomerGroup $group = null ) 'data' => compact( 'group' ) ]; } + + /** + * return the customer account operation label + * @param string $label + * @return string + */ + public function getCustomerAccountOperationLabel( $label ) + { + switch( $label ) { + case CustomerAccountHistory::OPERATION_ADD: return __( 'Crediting' ); break; + case CustomerAccountHistory::OPERATION_DEDUCT: return __( 'Deducting' ); break; + case CustomerAccountHistory::OPERATION_PAYMENT: return __( 'Order Payment' ); break; + case CustomerAccountHistory::OPERATION_REFUND: return __( 'Order Refund' ); break; + default: return __( 'Unknown Operation' ); break; + } + } } \ No newline at end of file diff --git a/app/Services/MenuService.php b/app/Services/MenuService.php index 70f77f35a..7af12a0cf 100755 --- a/app/Services/MenuService.php +++ b/app/Services/MenuService.php @@ -33,11 +33,12 @@ public function buildMenus() 'permissions' => [ 'nexopos.update.orders', 'nexopos.read.orders' ], 'icon' => 'la-list-ol', 'childrens' => [ - [ + 'order-list' => [ 'label' => __( 'Orders List' ), 'href' => ns()->url( '/dashboard/orders' ), 'permissions' => [ 'nexopos.update.orders', 'nexopos.read.orders' ], - ], [ + ], + 'payment-type' => [ 'label' => __( 'Payment Types' ), 'href' => ns()->url( '/dashboard/orders/payments-types' ), 'permissions' => [ 'nexopos.manage-payments-types' ], diff --git a/app/Services/Module.php b/app/Services/Module.php index 945b01f01..22c78d7f0 100755 --- a/app/Services/Module.php +++ b/app/Services/Module.php @@ -9,18 +9,16 @@ class Module { protected $module; + protected $file; public function __construct( $file ) { - $this->modules = app()->make( ModulesService::class ); - - if ( is_array( $file ) ) { - $this->module = $file; - } else { - $this->module = $this->modules->asFile( $file ); - } + $this->file = $file; } + /** + * @deprecated + */ public static function namespace( $namespace ) { /** @@ -44,9 +42,11 @@ public static function namespace( $namespace ) * Include specific module file * @param string $file * @return void + * @deprecated */ public function loadFile( $file ) { - require( Str::finish( $this->module[ 'path' ] . $file, '.php' ) ); + $filePath = Str::finish( $this->module[ 'path' ] . $file, '.php' ); + require( $filePath ); } } \ No newline at end of file diff --git a/app/Services/ModulesService.php b/app/Services/ModulesService.php index 1b455eede..69bf3d303 100755 --- a/app/Services/ModulesService.php +++ b/app/Services/ModulesService.php @@ -43,6 +43,21 @@ public function __construct() Storage::disk( 'ns' )->makeDirectory( 'modules' ); } + + /** + * Will lot a set of files within a specifc module + * @param string $module namespace + * @param string $path to fload + * @return mixed + */ + public static function loadModuleFile( $namespace, $file ) + { + $moduleService = app()->make( self::class ); + $module = $moduleService->get( $namespace ); + $filePath = Str::finish( $module[ 'path' ] . $file, '.php' ); + return require( $filePath ); + } + /** * Load Modules * @param string path to load diff --git a/app/Services/NotificationService.php b/app/Services/NotificationService.php index c6893e45d..0296b58ed 100755 --- a/app/Services/NotificationService.php +++ b/app/Services/NotificationService.php @@ -133,29 +133,24 @@ public function deleteHavingIdentifier( $identifier ) { Notification::identifiedBy( $identifier ) ->get() - ->map( function( $notification ) { + ->each( function( $notification ) { NotificationDeletedEvent::dispatch( $notification ); - $notification->delete(); }); } public function deleteSingleNotification( $id ) { - $notification = Notification::find( $id ); + $notification = Notification::find( $id ); NotificationDeletedEvent::dispatch( $notification ); - - $notification->delete(); } public function deleteNotificationsFor( User $user ) { - Notification::for( $user->id ) ->get() ->each( function( $notification ) { NotificationDeletedEvent::dispatch( $notification ); - $notification->delete(); }); } } \ No newline at end of file diff --git a/app/Services/OrdersService.php b/app/Services/OrdersService.php index 8f0089b26..dd97f2204 100755 --- a/app/Services/OrdersService.php +++ b/app/Services/OrdersService.php @@ -170,11 +170,6 @@ public function create( $fields, Order $order = null ) */ $this->__saveOrderInstalments( $order, $fields[ 'instalments' ] ?? [] ); - /** - * register taxes for the order - */ - $this->__registerTaxes( $order, $fields[ 'taxes' ] ?? [] ); - /** * if we're editing an order. We need to loop the products in order * to recover all the products that has been deleted from the POS and therefore @@ -208,6 +203,11 @@ public function create( $fields, Order $order = null ) */ extract( $this->__saveOrderProducts( $order, $fields[ 'products' ] ) ); + /** + * register taxes for the order + */ + $this->__registerTaxes( $order, $fields[ 'taxes' ] ?? [] ); + /** * compute order total */ @@ -249,6 +249,7 @@ public function __saveOrderInstalments( Order $order, $instalments = [] ) $newInstalment = new OrderInstalment; $newInstalment->amount = $instalment[ 'amount' ]; $newInstalment->order_id = $order->id; + $newInstalment->paid = $instalment[ 'paid' ] ?? false; $newInstalment->date = Carbon::parse( $instalment[ 'date' ] )->toDateTimeString(); $newInstalment->save(); } @@ -405,30 +406,73 @@ public function __saveOrderCoupons( Order $order, $coupons ) } /** - * Assign taxes to the processed order - * @param Order $order - * @param array $taxes - * @return void + * Will compute the taxes assigned to an order + * @return float */ - public function __registerTaxes( Order $order, $taxes ) + public function __saveOrderTaxes( Order $order, $taxes ) { /** * if previous taxes had been registered, * we need to clear them */ OrderTax::where( 'order_id', $order->id )->delete(); + + $taxCollection = collect([]); if ( count( $taxes ) > 0 ) { foreach( $taxes as $tax ) { - $orderTax = new OrderTax; + $orderTax = new OrderTax; $orderTax->tax_name = $tax[ 'tax_name' ]; - $orderTax->tax_value = $tax[ 'tax_value' ]; + + /** + * in case the tax value is not provided, + * we'll compute that using the defined value + */ + $orderTax->tax_value = $tax[ 'tax_value' ] ?? $this->taxService->getComputedTaxValue( + ns()->option->get( 'ns_pos_tax_type', 'inclusive' ), + $tax[ 'rate' ], + $order->subtotal + ); + $orderTax->rate = $tax[ 'rate' ]; $orderTax->tax_id = $tax[ 'tax_id' ]; $orderTax->order_id = $order->id; - $orderTax->save(); + $orderTax->save(); + + $taxCollection->push( $orderTax ); } } + + /** + * we'll increase the tax value and + * update the value on the order tax object + */ + return $taxCollection->map( fn( $tax ) => $tax->tax_value )->sum(); + } + + /** + * Assign taxes to the processed order + * @param Order $order + * @param array $taxes + * @return void + */ + public function __registerTaxes( Order $order, $taxes ) + { + switch( ns()->option->get( 'ns_pos_vat' ) ) { + case 'products_vat'; + case 'products_flat_vat'; + $order->tax_value = $this->getOrderProductsTaxes( $order ); + break; + case 'flat_vat'; + case 'variable_vat'; + $order->tax_value = Currency::raw( $this->__saveOrderTaxes( $order, $taxes ) ); + break; + case 'products_variable_vat': + $order->tax_value = + Currency::raw( $this->__saveOrderTaxes( $order, $taxes ) ) + + $this->getOrderProductsTaxes( $order ); + break; + } } /** @@ -934,11 +978,11 @@ private function __computeOrderTotal($data) */ $order->total = $this->currencyService->define( $order->subtotal ) ->additionateBy( $order->shipping ) + ->additionateBy( $order->tax_type === 'exclusive' ? $order->tax_value : 0 ) // if the tax is exclusive it shouldn't for now be counted ->subtractBy( $order->total_coupons ) ->subtractBy( $order->discount ) ->get(); - $order->tax_value = $taxes; $order->gross_total = $order->total; /** @@ -992,24 +1036,28 @@ private function __saveOrderProducts($order, $products) $orderProduct->unit_name = $product[ 'unit_name' ] ?? Unit::find( $product[ 'unit_id' ] )->name; $orderProduct->unit_id = $product[ 'unit_id' ]; $orderProduct->mode = $product[ 'mode' ]; - $orderProduct->product_id = $product[ 'product' ]->id; - $orderProduct->product_category_id = $product[ 'product' ]->category_id; - $orderProduct->name = $product[ 'product' ]->name; + $orderProduct->product_id = $product[ 'product' ]->id ?? 0; + $orderProduct->product_category_id = $product[ 'product' ]->category_id ?? 0; + $orderProduct->name = $product[ 'product' ]->name ?? $product[ 'name' ] ?? __( 'Unamed Product' ); $orderProduct->quantity = $product[ 'quantity']; /** * We might need to have another consideration * on how we do compute the taxes */ - if ( $product[ 'product' ][ 'tax_type' ] !== 'disabled' && ! empty( $product[ 'product' ]->tax_group_id )) { + if ( $product[ 'product' ] instanceof Product && $product[ 'product' ][ 'tax_type' ] !== 'disabled' && ! empty( $product[ 'product' ]->tax_group_id )) { $orderProduct->tax_group_id = $product[ 'product' ]->tax_group_id; $orderProduct->tax_type = $product[ 'product' ]->tax_type; $orderProduct->tax_value = $product[ 'tax_value' ]; + } else if ( isset( $product[ 'tax_type' ] ) && isset( $product[ 'tax_group_id' ] ) ) { + $orderProduct->tax_group_id = $product[ 'tax_group_id' ]; + $orderProduct->tax_type = $product[ 'tax_type' ]; + $orderProduct->tax_value = $product[ 'tax_value' ]; } $orderProduct->unit_price = $this->currencyService->define( $product[ 'unit_price' ] )->getRaw(); - $orderProduct->net_price = $this->currencyService->define( $product[ 'unitQuantity' ]->incl_tax_sale_price )->getRaw(); - $orderProduct->gross_price = $this->currencyService->define( $product[ 'unitQuantity' ]->excl_tax_sale_price )->getRaw(); + $orderProduct->net_price = $this->currencyService->define( $product[ 'unitQuantity' ]->incl_tax_sale_price ?? 0 )->getRaw(); + $orderProduct->gross_price = $this->currencyService->define( $product[ 'unitQuantity' ]->excl_tax_sale_price ?? 0 )->getRaw(); $orderProduct->discount_type = $product[ 'discount_type' ] ?? 'none'; $orderProduct->discount = $product[ 'discount' ] ?? 0; $orderProduct->discount_percentage = $product[ 'discount_percentage' ] ?? 0; @@ -1036,7 +1084,10 @@ private function __saveOrderProducts($order, $products) ->get(); } - if ( in_array( $order[ 'payment_status' ], [ 'paid', 'partially_paid', 'unpaid' ] ) ) { + if ( + in_array( $order[ 'payment_status' ], [ 'paid', 'partially_paid', 'unpaid' ] ) && + $product[ 'product' ] instanceof Product + ) { /** * storing the product * history as a sale @@ -1066,15 +1117,26 @@ private function __saveOrderProducts($order, $products) private function __buildOrderProducts( $products ) { return collect( $products )->map( function( $orderProduct ) { - $product = Cache::remember( 'store-' . ( $orderProduct['product_id'] ?? $orderProduct['sku'] ), 60, function() use ($orderProduct) { - if (!empty(@$orderProduct['product_id'])) { - return $this->productService->get($orderProduct['product_id']); - } else if (!empty(@$orderProduct['sku'])) { - return $this->productService->getProductUsingSKUOrFail($orderProduct['sku']); - } - }); - $productUnitQuantity = ProductUnitQuantity::findOrFail( $orderProduct[ 'unit_quantity_id' ] ); + /** + * by default, we'll assume a quick + * product is being created. + */ + $product = null; + $productUnitQuantity = null; + + if ( ! empty( $orderProduct[ 'sku' ] ) || ! empty( $orderProduct[ 'product_id' ] ) ) { + + $product = Cache::remember( 'store-' . ( $orderProduct['product_id'] ?? $orderProduct['sku'] ), 60, function() use ($orderProduct) { + if (!empty(@$orderProduct['product_id'])) { + return $this->productService->get($orderProduct['product_id']); + } else if (!empty(@$orderProduct['sku'])) { + return $this->productService->getProductUsingSKUOrFail($orderProduct['sku']); + } + }); + + $productUnitQuantity = ProductUnitQuantity::findOrFail( $orderProduct[ 'unit_quantity_id' ] ); + } $orderProduct = $this->__buildOrderProduct( $orderProduct, @@ -1101,12 +1163,14 @@ private function __checkProductStock( $items ) * so that it can be reused */ $items = collect($items)->map( function ( array $orderProduct ) use ( $session_identifier ) { - $this->checkQuantityAvailability( - $orderProduct[ 'product' ], - $orderProduct[ 'unitQuantity' ], - $orderProduct, - $session_identifier - ); + if ( $orderProduct[ 'product' ] instanceof Product ) { + $this->checkQuantityAvailability( + $orderProduct[ 'product' ], + $orderProduct[ 'unitQuantity' ], + $orderProduct, + $session_identifier + ); + } return $orderProduct; }); @@ -1123,15 +1187,15 @@ private function __checkProductStock( $items ) * @param Product $product * @return array Order Product (updated) */ - public function __buildOrderProduct( array $orderProduct, ProductUnitQuantity $productUnitQuantity, Product $product ) + public function __buildOrderProduct( array $orderProduct, ProductUnitQuantity $productUnitQuantity = null, Product $product = null ) { /** * This will calculate the product default field * when they aren't provided. */ $orderProduct = $this->computeProduct( $orderProduct, $product, $productUnitQuantity ); - $orderProduct[ 'unit_id' ] = $productUnitQuantity->unit->id; - $orderProduct[ 'unit_quantity_id' ] = $productUnitQuantity->id; + $orderProduct[ 'unit_id' ] = $productUnitQuantity->unit->id ?? $orderProduct[ 'unit_id' ] ?? 0; + $orderProduct[ 'unit_quantity_id' ] = $productUnitQuantity->id ?? 0; $orderProduct[ 'total_price' ] = $orderProduct[ 'total_price' ]; $orderProduct[ 'product' ] = $product; $orderProduct[ 'mode' ] = $orderProduct[ 'mode' ] ?? 'normal'; @@ -1191,7 +1255,7 @@ public function checkQuantityAvailability( $product, $productUnitQuantity, $orde } } - public function computeProduct( $fields, Product $product, ProductUnitQuantity $productUnitQuantity ) + public function computeProduct( $fields, Product $product = null, ProductUnitQuantity $productUnitQuantity = null ) { $sale_price = ( $fields[ 'unit_price' ] ?? $productUnitQuantity->sale_price ); @@ -1218,8 +1282,8 @@ public function computeProduct( $fields, Product $product, ProductUnitQuantity $ if ( empty( $fields[ 'tax_value' ] ) ) { $fields[ 'tax_value' ] = $this->currencyService->define( $this->taxService->getComputedTaxGroupValue( - $product->tax_type, - $product->tax_group_id, + $fields[ 'tax_type' ] ?? $product->tax_type, + $fields[ 'tax_group_id' ] ?? $product->tax_group_id, $sale_price ) ) @@ -1238,26 +1302,28 @@ public function computeProduct( $fields, Product $product, ProductUnitQuantity $ ) * floatval( $fields[ 'quantity' ] ); } - /** - * We'll retreive the last defined purchase price - * for the defined item. Won't work for unmaterial item - */ - $procurementProduct = ProcurementProduct::where( 'product_id', $product->id ) - ->where( 'unit_id', $productUnitQuantity->unit_id ) - ->orderBy( 'id', 'desc' ) - ->first(); + if ( $product instanceof Product ) { - /** - * @todo we might check if the barcode provided - * here include a procurement id - */ - if ( $procurementProduct instanceof ProcurementProduct ) { - $fields[ 'total_purchase_price' ] = $this->currencyService->define( $procurementProduct->purchase_price ) - ->multiplyBy( $fields[ 'quantity' ] ) - ->getRaw(); + /** + * We'll retreive the last defined purchase price + * for the defined item. Won't work for unmaterial item + */ + $procurementProduct = ProcurementProduct::where( 'product_id', $product->id ) + ->where( 'unit_id', $productUnitQuantity->unit_id ) + ->orderBy( 'id', 'desc' ) + ->first(); + + /** + * @todo we might check if the barcode provided + * here include a procurement id + */ + if ( $procurementProduct instanceof ProcurementProduct ) { + $fields[ 'total_purchase_price' ] = $this->currencyService->define( $procurementProduct->purchase_price ) + ->multiplyBy( $fields[ 'quantity' ] ) + ->getRaw(); + } } - return $fields; } @@ -1331,7 +1397,7 @@ private function __initOrder( $fields, $paymentStatus, $order ) $order->process_status = 'pending'; $order->author = $fields[ 'author' ] ?? Auth::id(); // the author can now be changed $order->title = $fields[ 'title' ] ?? null; - $order->tax_value = $this->currencyService->getRaw( $fields[ 'tax_value' ] ?? 0 ) ?: $this->computeOrderTaxValue( $fields, $order ); + $order->tax_value = $this->currencyService->getRaw( $fields[ 'tax_value' ] ?? 0 ); $order->code = $order->code ?: ''; // to avoid generating a new code $order->save(); @@ -1411,9 +1477,87 @@ public function computeOrderDiscount( $order, $fields = [] ) } } - public function computeOrderTaxValue( $fields, $order ) + /** + * Will compute a tax value using + * the taxes assigned to an order + * @param Order $order + * @param float $value + * @param string $type + * @return float value + */ + public function computeTaxFromOrderTaxes( Order $order, $value, $type = 'inclusive' ) + { + return $order->taxes->map( function( $tax ) use ( $value, $type ) { + $result = $this->taxService->getVatValue( + $type, $tax->rate, $value + ); + + return $result; + })->sum(); + } + + /** + * Will return the tax values from the order taxes + * @param Order $order + * @param float $value + * @param string $type + * @return float + */ + public function getTaxComputedFromOrderTaxes( Order $order, $value, $type ) { - return $this->currencyService->getRaw( $fields[ 'products' ]->map( fn( $product ) => $product[ 'tax_value' ] )->sum() ); + $rates = $order->taxes->map( function( $tax ) use ( $value, $type ) { + return $tax->rate; + })->sum(); + + return $this->taxService->getComputedTaxValue( + $type, $rates, $value + ); + } + + /** + * will compute the taxes based + * on the configuration and the products + * @param Order $order + */ + public function computeOrderTaxes( Order $order ) + { + $posVat = ns()->option->get( 'ns_pos_vat' ); + $taxValue = 0; + + if( in_array( $posVat, [ + 'products_vat', + 'products_flat_vat', + 'products_variable_vat' + ] ) ) { + $taxValue = $order->products->map(function ($product) { + return floatval($product->tax_value); + })->sum(); + } else if ( in_array( $posVat, [ + 'flat_vat', + 'variable_vat', + ])) { + $taxType = ns()->option->get( 'ns_pos_tax_type' ); + $subTotal = $order->products()->sum( 'total_price' ); + $taxValue = $order->taxes->map( function( $tax ) use ( $taxType, $subTotal ) { + $tax->tax_value = $this->taxService->getComputedTaxValue( $taxType, $tax->rate, $subTotal ); + $tax->save(); + + return $tax->tax_value; + })->sum(); + } + + $order->tax_value = $taxValue; + } + + /** + * return the tax value for the products + * @param array $fields + * @param Order $order + * @return float + */ + public function getOrderProductsTaxes( $order ) + { + return $this->currencyService->getRaw( $order->products->map( fn( $product ) => $product->tax_value )->sum() ); } public function computeTotal( $fields, $order ) @@ -1475,17 +1619,24 @@ public function refundOrder( Order $order, $fields ) * We'll do that here */ $shipping = 0; + if ( isset( $fields[ 'refund_shipping' ] ) && $fields[ 'refund_shipping' ] === true ) { - $shipping = $order->shipping; - $order->shipping = 0; - $order->save(); + $shipping = $order->shipping; + $order->shipping = 0; } + $taxValue = collect( $results )->map( function( $result ) { + $refundProduct = $result[ 'data' ][ 'productRefund' ]; + return $refundProduct->tax_value; + })->sum() ?: 0; + + $orderRefund->tax_value = Currency::raw( $taxValue ); + /** * let's update the order refund total */ $orderRefund->load( 'refunded_products' ); - $orderRefund->total = $orderRefund->refunded_products->sum( 'total_price' ) + $shipping; + $orderRefund->total = Currency::raw( ( $orderRefund->refunded_products->sum( 'total_price' ) + $shipping ) ); // - $orderRefund->tax_value $orderRefund->save(); /** @@ -1542,7 +1693,9 @@ public function refundSingleProduct( Order $order, OrderRefund $orderRefund, Ord */ $orderProduct->status = 'returned'; $orderProduct->quantity -= floatval( $details[ 'quantity' ] ); + $this->computeOrderProduct( $orderProduct ); + $orderProduct->save(); /** @@ -1552,7 +1705,12 @@ public function refundSingleProduct( Order $order, OrderRefund $orderRefund, Ord $productRefund = new OrderProductRefund; $productRefund->condition = $details[ 'condition' ]; $productRefund->description = $details[ 'description' ]; - $productRefund->unit_price = $details[ 'unit_price' ]; + $productRefund->unit_price = $this->getTaxComputedFromOrderTaxes( + $order, + $details[ 'unit_price' ], + ns()->option->get( 'ns_pos_tax_type' ) + ); + $productRefund->unit_id = $orderProduct->unit_id; $productRefund->total_price = $this->currencyService ->getRaw( $productRefund->unit_price * floatval( $details[ 'quantity' ] ) ); @@ -1562,6 +1720,13 @@ public function refundSingleProduct( Order $order, OrderRefund $orderRefund, Ord $productRefund->order_refund_id = $orderRefund->id; $productRefund->order_product_id = $orderProduct->id; $productRefund->product_id = $orderProduct->product_id; + + $productRefund->tax_value = $this->computeTaxFromOrderTaxes( + $order, + Currency::raw( $details[ 'unit_price' ] * $details[ 'quantity' ] ), + ns()->option->get( 'ns_pos_tax_type' ) + ); + $productRefund->save(); event( new OrderAfterProductRefundedEvent( $order, $orderProduct, $productRefund ) ); @@ -1824,16 +1989,7 @@ public function refreshOrder(Order $order) return floatval($product->total_gross_price); })->sum(); - $productsTotalTaxes = $products->map(function ($product) { - if( in_array( ns()->option->get( 'ns_pos_vat' ), [ - 'products_vat', - 'products_flat_vat' - ] ) ) { - return floatval($product->tax_value); - } - - return 0; - })->sum(); + $this->computeOrderTaxes( $order ); $orderShipping = $order->shipping; $totalPayments = $order->payments->map( fn( $payment ) => $payment->value )->sum(); @@ -1845,8 +2001,7 @@ public function refreshOrder(Order $order) $order->subtotal = $productTotal; $order->gross_total = $productGrossTotal; $order->discount = $this->computeOrderDiscount( $order ); - $order->total = ( $productTotal + $orderShipping ) - ( $order->discount + $order->total_coupons ); - $order->tax_value = $productsTotalTaxes; + $order->total = ( $productTotal + $orderShipping + ( $order->tax_type === 'exclusive' ? $order->tax_value : 0 ) ) - ( $order->discount + $order->total_coupons ); $order->change = Currency::raw( $order->tendered - $order->total ); $refunds = $order->refund; @@ -1896,14 +2051,17 @@ public function deleteOrder(Order $order) $order->products->each( function( OrderProduct $product) { /** * we do proceed by doing an initial return + * only if the product is not a quick product/service */ - $this->productService->stockAdjustment( ProductHistory::ACTION_DELETED, [ - 'total_price' => $product->total_price, - 'product_id' => $product->product_id, - 'unit_id' => $product->unit_id, - 'quantity' => $product->quantity, - 'unit_price' => $product->unit_price - ]); + if ( $product->product_id > 0 ) { + $this->productService->stockAdjustment( ProductHistory::ACTION_DELETED, [ + 'total_price' => $product->total_price, + 'product_id' => $product->product_id, + 'unit_id' => $product->unit_id, + 'quantity' => $product->quantity, + 'unit_price' => $product->unit_price + ]); + } $product->delete(); }); diff --git a/app/Services/ProductCategoryService.php b/app/Services/ProductCategoryService.php index 286d8a568..a8fcade07 100755 --- a/app/Services/ProductCategoryService.php +++ b/app/Services/ProductCategoryService.php @@ -1,6 +1,7 @@ displays_on_pos = $data[ 'displays_on_pos' ] ?? true; $category->save(); + ProductCategoryAfterCreatedEvent::dispatch( $category ); + return [ 'status' => 'success', 'message' => __( 'The category has been created' ), 'data' => compact( 'category' ) ]; } + + public function computeProducts( ProductCategory $category ) + { + $category->total_items = $category->products()->count(); + $category->save(); + } } \ No newline at end of file diff --git a/app/Services/ProductService.php b/app/Services/ProductService.php index 4b8a7bd92..08bf466bd 100755 --- a/app/Services/ProductService.php +++ b/app/Services/ProductService.php @@ -237,6 +237,10 @@ public function createVariableProduct( $data ) */ public function createSimpleProduct( $data ) { + if ( empty( $data[ 'barcode' ] ) ) { + $data[ 'barcode' ] = $this->barcodeService->generateBarcodeValue( $data[ 'barcode_type' ] ); + } + if ( $this->getProductUsingBarcode( $data[ 'barcode' ] ) ) { throw new Exception( sprintf( __( 'The provided barcode "%s" is already in use.' ), @@ -244,6 +248,10 @@ public function createSimpleProduct( $data ) ) ); } + if ( empty( $data[ 'sku' ] ) ) { + $data[ 'sku' ] = $data[ 'barcode' ]; + } + /** * search a product using the provided SKU * and throw an error if it's the case @@ -354,6 +362,10 @@ public function updateSimpleProduct( $id, $fields ) $this->releaseProductTaxes( $product ); + if ( empty( $fields[ 'barcode' ] ) ) { + $fields[ 'barcode' ] = $this->barcodeService->generateBarcodeValue( $fields[ 'barcode_type' ] ); + } + if ( $existingProduct = $this->getProductUsingBarcode( $fields[ 'barcode' ] ) ) { if ( $existingProduct->id !== $product->id ) { throw new Exception( __( 'The provided barcode is already in use.' ) ); @@ -370,6 +382,10 @@ public function updateSimpleProduct( $id, $fields ) } } + if ( empty( $fields[ 'sku' ] ) ) { + $fields[ 'sku' ] = $fields[ 'barcode' ]; + } + foreach( $fields as $field => $value ) { $this->__fillProductFields( $product, compact( 'field', 'value', 'mode', 'fields' ) ); } diff --git a/app/Services/ProviderService.php b/app/Services/ProviderService.php index 271a76b48..e53bfd9a8 100755 --- a/app/Services/ProviderService.php +++ b/app/Services/ProviderService.php @@ -1,6 +1,7 @@ currency->define( $value ) - ->dividedBy( $rate + 100 ) - ->multipliedBy( 100 ) - ->getRaw(); + return $this->currency->getRaw( ( $value / ( $rate + 100 ) ) * 100 ); } else if ( $type === 'exclusive' ) { - return $this->currency->define( $value ) - ->dividedBy( 100 ) - ->multipliedBy( $rate + 100 ) - ->getRaw(); + return $this->currency->getRaw( ( $value / 100 ) * ( $rate + 100 ) ); } + + return $value; } public function getVatValue( $type, float $rate, float $value ) @@ -383,7 +379,7 @@ public function getVatValue( $type, float $rate, float $value ) if ( $type === 'inclusive' ) { return $value - $this->getComputedTaxValue( $type, $rate, $value ); } else if ( $type === 'exclusive' ) { - return $value - $this->getComputedTaxValue( $type, $rate, $value ); + return $this->getComputedTaxValue( $type, $rate, $value ) - $value; } } @@ -413,10 +409,7 @@ public function getTaxGroupVatValue( $type, TaxGroup $group, float $value ) */ public function getPercentageOf( $value, $rate ) { - return $this->currency->define( $value ) - ->multiplyBy( $rate ) - ->dividedBy( 100 ) - ->getRaw(); + return $this->currency->getRaw( ( $value * $rate ) / 100 ); } /** diff --git a/app/Settings/pos/layout.php b/app/Settings/pos/layout.php index 5d42fe3ed..a9f8842ef 100755 --- a/app/Settings/pos/layout.php +++ b/app/Settings/pos/layout.php @@ -2,6 +2,14 @@ use App\Services\Helper; +$audios = Helper::kvToJsOptions([ + '' => __( 'Disabled' ), + url( '/audio/bubble.mp3' ) => __( 'Bubble' ), + url( '/audio/ding.mp3' ) => __( 'Ding' ), + url( '/audio/pop.mp3' ) => __( 'Pop' ), + url( '/audio/cash-sound.mp3' ) => __( 'Cash Sound' ), +]); + return [ 'label' => __( 'Layout' ), 'fields' => [ @@ -15,6 +23,20 @@ 'label' => __( 'POS Layout' ), 'type' => 'select', 'description' => __( 'Change the layout of the POS.' ), + ], [ + 'name' => 'ns_pos_complete_sale_audio', + 'value' => $options->get( 'ns_pos_complete_sale_audio' ), + 'options' => $audios, + 'label' => __( 'Sale Complete Sound' ), + 'type' => 'select-audio', + 'description' => __( 'Change the layout of the POS.' ), + ], [ + 'name' => 'ns_pos_new_item_audio', + 'value' => $options->get( 'ns_pos_new_item_audio' ), + 'options' => $audios, + 'label' => __( 'New Item Audio' ), + 'type' => 'select-audio', + 'description' => __( 'The sound that plays when an item is added to the cart.' ), ], ] ]; \ No newline at end of file diff --git a/composer.json b/composer.json index 7d096dce6..22673e96d 100755 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "laravie/parser": "^2.1", "phpoffice/phpspreadsheet": "^1.17", "picqer/php-barcode-generator": "^2.1", - "pusher/pusher-php-server": "^5.0", + "pusher/pusher-php-server": "~3.0", "rct567/dom-query": "^0.8.0", "spatie/laravel-db-snapshots": "^1.7", "tormjens/eventy": "^0.7.0" diff --git a/config/broadcasting.php b/config/broadcasting.php index d6475aa69..5ab58bd8c 100755 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -40,8 +40,8 @@ 'useTLS' => env( 'NS_SOCKET_SECURED', false ) ? true : false, 'host' => env( 'NS_SOCKET_DOMAIN', env( 'SESSION_DOMAIN' ) ), 'port' => env( 'NS_SOCKET_PORT', 6001 ), - 'scheme' => env( 'NS_SOCKET_SCHEME', 'http' ), - 'encrypted' => false, + 'scheme' => env( 'NS_SOCKET_SECURED', false ) ? 'https' : 'http', + 'encrypted' => env( 'NS_SOCKET_SECURED', false ) ? true : false, 'curl_options' => [ CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => 0, diff --git a/config/nexopos.php b/config/nexopos.php index c9134f9b5..d97435127 100755 --- a/config/nexopos.php +++ b/config/nexopos.php @@ -1,6 +1,6 @@ '4.4.2', + 'version' => '4.5.1', 'languages' => [ 'en' => 'English', 'fr' => 'Français', diff --git a/database/migrations/create-tables/0000_00_00_000000_create_websockets_statistics_entries_table.php b/database/migrations/create-tables/0000_00_00_000000_create_websockets_statistics_entries_table.php old mode 100755 new mode 100644 diff --git a/database/migrations/create-tables/2020_06_20_000000_create_expenses_categories_table.php b/database/migrations/create-tables/2020_06_20_000000_create_expenses_categories_table.php index 433e0b717..d374ceb46 100755 --- a/database/migrations/create-tables/2020_06_20_000000_create_expenses_categories_table.php +++ b/database/migrations/create-tables/2020_06_20_000000_create_expenses_categories_table.php @@ -39,9 +39,7 @@ public function up() */ public function down() { - if ( Schema::hasTable( 'nexopos_expenses_categories' ) ) { - Schema::drop( 'nexopos_expenses_categories' ); - } + Schema::dropIfExists( 'nexopos_expenses_categories' ); } } diff --git a/database/migrations/create-tables/2020_06_20_000000_create_expenses_table.php b/database/migrations/create-tables/2020_06_20_000000_create_expenses_table.php index b2e5df9e5..57993882b 100755 --- a/database/migrations/create-tables/2020_06_20_000000_create_expenses_table.php +++ b/database/migrations/create-tables/2020_06_20_000000_create_expenses_table.php @@ -45,9 +45,7 @@ public function up() */ public function down() { - if ( Schema::hasTable( 'nexopos_expenses' ) ) { - Schema::drop( 'nexopos_expenses' ); - } + Schema::dropIfExists( 'nexopos_expenses' ); } } diff --git a/database/migrations/create-tables/2020_06_20_000000_create_products_unit_quantities.php b/database/migrations/create-tables/2020_06_20_000000_create_products_unit_quantities.php index bbaf4d2d1..c221da2bf 100755 --- a/database/migrations/create-tables/2020_06_20_000000_create_products_unit_quantities.php +++ b/database/migrations/create-tables/2020_06_20_000000_create_products_unit_quantities.php @@ -38,6 +38,10 @@ public function up() $table->float( 'incl_tax_wholesale_price', 11, 5 )->default(0); // include tax whole sale price $table->float( 'excl_tax_wholesale_price', 11, 5 )->default(0); // exclude tax whole sale price $table->float( 'wholesale_price_tax', 11, 5 )->default(0); + $table->float( 'custom_price' )->default(0); + $table->float( 'custom_price_edit' )->default(0); + $table->float( 'incl_tax_custom_price' )->default(0); + $table->float( 'excl_tax_custom_price' )->default(0); $table->string( 'uuid' )->nullable(); $table->timestamps(); }); diff --git a/database/migrations/create-tables/2020_10_29_150642_create_nexopos_expenses_history_table.php b/database/migrations/create-tables/2020_10_29_150642_create_nexopos_expenses_history_table.php index 5b6efaa6e..2e4fceb58 100755 --- a/database/migrations/create-tables/2020_10_29_150642_create_nexopos_expenses_history_table.php +++ b/database/migrations/create-tables/2020_10_29_150642_create_nexopos_expenses_history_table.php @@ -42,6 +42,6 @@ public function up() */ public function down() { - Schema::dropIfExists( Hook::filter( 'ns-table-prefix', 'nexopos_cash_flow') ); + Schema::dropIfExists( 'nexopos_cash_flow' ); } } diff --git a/database/migrations/create-tables/2020_11_17_120204_nov17_add_fields_to_nexopos_orders_products_table.php b/database/migrations/create-tables/2020_11_17_120204_nov17_add_fields_to_nexopos_orders_products_table.php index 338d63557..40b6e9214 100755 --- a/database/migrations/create-tables/2020_11_17_120204_nov17_add_fields_to_nexopos_orders_products_table.php +++ b/database/migrations/create-tables/2020_11_17_120204_nov17_add_fields_to_nexopos_orders_products_table.php @@ -19,6 +19,7 @@ public function up() $table->integer( 'order_id' ); $table->integer( 'author' ); $table->float( 'total', 11, 5 ); + $table->float( 'tax_value' )->default(0); $table->float( 'shipping', 11, 5 ); $table->string( 'payment_method' ); $table->timestamps(); @@ -32,6 +33,7 @@ public function up() $table->integer( 'unit_id' ); $table->integer( 'product_id' ); $table->float( 'unit_price', 11, 5 ); + $table->float( 'tax_value' )->default(0); $table->float( 'quantity', 11, 5 ); $table->float( 'total_price', 11, 5 ); $table->string( 'condition' ); // either unspoiled, damaged diff --git a/database/migrations/schema-updates/2020_11_28_171710_nov28_remove_barcodefrom_nexopos_procurements_products_table.php b/database/migrations/schema-updates/2020_11_28_171710_nov28_remove_barcodefrom_nexopos_procurements_products_table.php deleted file mode 100755 index d39b46f05..000000000 --- a/database/migrations/schema-updates/2020_11_28_171710_nov28_remove_barcodefrom_nexopos_procurements_products_table.php +++ /dev/null @@ -1,34 +0,0 @@ -dropColumn( 'barcode' ); - } - }); - } - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - // - } -} diff --git a/database/migrations/schema-updates/2021_03_30_194055_update_order_products_table_mar30.php b/database/migrations/schema-updates/2021_03_30_194055_update_order_products_table_mar30.php index d2712d032..c3c91861a 100755 --- a/database/migrations/schema-updates/2021_03_30_194055_update_order_products_table_mar30.php +++ b/database/migrations/schema-updates/2021_03_30_194055_update_order_products_table_mar30.php @@ -21,7 +21,7 @@ public function up() }); OrderProduct::get()->each( function( $product ) { - $product->product_category_id = $product->product->category->id; + $product->product_category_id = $product->product->category->id ?? 0; $product->save(); }); } diff --git a/database/migrations/schema-updates/2021_08_01_085619_update_add_columns_to_expense_history__aug1.php b/database/migrations/schema-updates/2021_08_01_085619_update_add_columns_to_expense_history__aug1.php index 472f179b1..cdf9e7701 100644 --- a/database/migrations/schema-updates/2021_08_01_085619_update_add_columns_to_expense_history__aug1.php +++ b/database/migrations/schema-updates/2021_08_01_085619_update_add_columns_to_expense_history__aug1.php @@ -135,6 +135,8 @@ public function down() }); } - Schema::rename( 'nexopos_cash_flow', 'nexopos_expense_history' ); + if ( Schema::hasTable( 'nexopos_cash_flow' ) ) { + Schema::rename( 'nexopos_cash_flow', 'nexopos_expense_history' ); + } } } diff --git a/database/migrations/schema-updates/2021_08_12_153954_update_add_taxto_order_refunds_products_aug12.php b/database/migrations/schema-updates/2021_08_12_153954_update_add_taxto_order_refunds_products_aug12.php new file mode 100644 index 000000000..a892e3388 --- /dev/null +++ b/database/migrations/schema-updates/2021_08_12_153954_update_add_taxto_order_refunds_products_aug12.php @@ -0,0 +1,38 @@ +float( 'tax_value' )->default(0); + } + }); + + Schema::table( 'nexopos_orders_refunds', function( Blueprint $table ) { + if ( ! Schema::hasColumn( 'nexopos_orders_refunds', 'tax_value' ) ) { + $table->float( 'tax_value' )->default(0); + } + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/database/migrations/schema-updates/2021_09_01_194454_update_unit_product_quantities_table_sept1_21.php b/database/migrations/schema-updates/2021_09_01_194454_update_unit_product_quantities_table_sept1_21.php new file mode 100644 index 000000000..d50b61722 --- /dev/null +++ b/database/migrations/schema-updates/2021_09_01_194454_update_unit_product_quantities_table_sept1_21.php @@ -0,0 +1,41 @@ +float( 'custom_price' )->default(0); + } + if ( ! Schema::hasColumn( 'nexopos_products_unit_quantities', 'custom_price_edit' ) ) { + $table->float( 'custom_price_edit' )->default(0); + } + if ( ! Schema::hasColumn( 'nexopos_products_unit_quantities', 'incl_tax_custom_price' ) ) { + $table->float( 'incl_tax_custom_price' )->default(0); + } + if ( ! Schema::hasColumn( 'nexopos_products_unit_quantities', 'excl_tax_custom_price' ) ) { + $table->float( 'excl_tax_custom_price' )->default(0); + } + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/package.json b/package.json index 2b4af5e6b..7f6632097 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,8 @@ "@ckeditor/ckeditor5-build-classic": "^29.0.0", "@ckeditor/ckeditor5-vue": "^2.0.1", "@ckeditor/ckeditor5-vue2": "^1.0.5", + "@dicebear/avatars": "^4.9.0", + "@dicebear/avatars-avataaars-sprites": "^4.9.0", "@wordpress/hooks": "^3.0.0", "apexcharts": "^3.22.1", "autoprefixer": "^10.0.4", diff --git a/phpunit.xml b/phpunit.xml index 7dbc775b5..752302f08 100755 --- a/phpunit.xml +++ b/phpunit.xml @@ -42,6 +42,7 @@ + diff --git a/public/audio/bubble.mp3 b/public/audio/bubble.mp3 new file mode 100644 index 000000000..3d241fbd1 Binary files /dev/null and b/public/audio/bubble.mp3 differ diff --git a/public/audio/cash-sound.mp3 b/public/audio/cash-sound.mp3 new file mode 100644 index 000000000..765714b30 Binary files /dev/null and b/public/audio/cash-sound.mp3 differ diff --git a/public/audio/ding.mp3 b/public/audio/ding.mp3 new file mode 100644 index 000000000..2936b83c6 Binary files /dev/null and b/public/audio/ding.mp3 differ diff --git a/public/audio/pop.mp3 b/public/audio/pop.mp3 new file mode 100644 index 000000000..a1ad34acd Binary files /dev/null and b/public/audio/pop.mp3 differ diff --git a/public/css/app.css b/public/css/app.css index 894e187e7..562a96f68 100755 --- a/public/css/app.css +++ b/public/css/app.css @@ -2,6 +2,6 @@ /*! tailwindcss v2.2.7 | MIT License | https://tailwindcss.com*/ -/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-webkit-text-size-adjust:100%;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin:0}hr{color:inherit;height:0}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{border:0 solid;box-sizing:border-box}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{color:inherit;line-height:inherit;padding:0}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none!important}.visible{visibility:visible!important}.static{position:static!important}.absolute{position:absolute!important}.relative{position:relative!important}.inset-y-0{bottom:0!important}.inset-y-0,.top-0{top:0!important}.-top-10{top:-5em!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.z-10{z-index:10!important}.z-30{z-index:30!important}.z-40{z-index:40!important}.z-50{z-index:50!important}.col-span-2{grid-column:span 2/span 2!important}.col-span-3{grid-column:span 3/span 3!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-4{margin:1rem!important}.-m-2{margin:-.5rem!important}.-m-3{margin:-.75rem!important}.-m-4{margin:-1rem!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.-mx-1{margin-left:-.25rem!important;margin-right:-.25rem!important}.-mx-2{margin-left:-.5rem!important;margin-right:-.5rem!important}.-mx-3{margin-left:-.75rem!important;margin-right:-.75rem!important}.-mx-4{margin-left:-1rem!important;margin-right:-1rem!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-3{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-4{margin-bottom:1rem!important;margin-top:1rem!important}.my-5{margin-bottom:1.25rem!important;margin-top:1.25rem!important}.-my-1{margin-bottom:-.25rem!important;margin-top:-.25rem!important}.-my-2{margin-bottom:-.5rem!important;margin-top:-.5rem!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-4{margin-top:1rem!important}.-mt-4{margin-top:-1rem!important}.-mt-8{margin-top:-2rem!important}.mr-1{margin-right:.25rem!important}.mr-2{margin-right:.5rem!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:.75rem!important}.mb-4{margin-bottom:1rem!important}.mb-6{margin-bottom:1.5rem!important}.mb-8{margin-bottom:2rem!important}.-mb-2{margin-bottom:-.5rem!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.5rem!important}.ml-3{margin-left:.75rem!important}.-ml-6{margin-left:-1.5rem!important}.-ml-32{margin-left:-8rem!important}.block{display:block!important}.inline-block{display:inline-block!important}.flex{display:flex!important}.table{display:table!important}.grid{display:grid!important}.hidden{display:none!important}.h-0{height:0!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.h-10{height:2.5rem!important}.h-12{height:3rem!important}.h-16{height:4rem!important}.h-20{height:5rem!important}.h-24{height:6rem!important}.h-28{height:7rem!important}.h-32{height:8rem!important}.h-40{height:10rem!important}.h-56{height:14rem!important}.h-64{height:16rem!important}.h-96{height:24rem!important}.h-120{height:30rem!important}.h-full{height:100%!important}.h-screen{height:100vh!important}.h-6\/7-screen{height:85.71vh!important}.h-5\/7-screen{height:71.42vh!important}.h-3\/5-screen{height:60vh!important}.h-2\/5-screen{height:40vh!important}.h-half{height:50vh!important}.h-95vh{height:95vh!important}.min-h-2\/5-screen{min-height:40vh!important}.w-0{width:0!important}.w-3{width:.75rem!important}.w-6{width:1.5rem!important}.w-8{width:2rem!important}.w-10{width:2.5rem!important}.w-12{width:3rem!important}.w-16{width:4rem!important}.w-24{width:6rem!important}.w-28{width:7rem!important}.w-32{width:8rem!important}.w-36{width:9rem!important}.w-40{width:10rem!important}.w-48{width:12rem!important}.w-56{width:14rem!important}.w-64{width:16rem!important}.w-72{width:18rem!important}.w-1\/2{width:50%!important}.w-1\/3{width:33.333333%!important}.w-1\/4{width:25%!important}.w-3\/4{width:75%!important}.w-3\/5{width:60%!important}.w-1\/6{width:16.666667%!important}.w-11\/12{width:91.666667%!important}.w-full{width:100%!important}.w-screen{width:100vw!important}.w-6\/7-screen{width:85.71vw!important}.w-5\/7-screen{width:71.42vw!important}.w-4\/5-screen{width:80vw!important}.w-3\/4-screen{width:75vw!important}.w-2\/3-screen{width:66.66vw!important}.w-95vw{width:95vw!important}.flex-auto{flex:1 1 auto!important}.flex-shrink-0{flex-shrink:0!important}.origin-bottom-right{transform-origin:bottom right!important}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes bounce{0%,to{-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-spin{-webkit-animation:spin 1s linear infinite!important;animation:spin 1s linear infinite!important}.cursor-pointer{cursor:pointer!important}.cursor-not-allowed{cursor:not-allowed!important}.resize{resize:both!important}.grid-flow-row{grid-auto-flow:row!important}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))!important}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))!important}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))!important}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))!important}.flex-row{flex-direction:row!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-col{flex-direction:column!important}.flex-col-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.items-start{align-items:flex-start!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.gap-0{gap:0!important}.gap-2{gap:.5rem!important}.divide-y-4>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0!important;border-bottom-width:calc(4px*var(--tw-divide-y-reverse))!important;border-top-width:calc(4px*(1 - var(--tw-divide-y-reverse)))!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-scroll{overflow-y:scroll!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.whitespace-pre-wrap{white-space:pre-wrap!important}.rounded{border-radius:.25rem!important}.rounded-md{border-radius:.375rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-full{border-radius:9999px!important}.rounded-t-lg{border-top-left-radius:.5rem!important;border-top-right-radius:.5rem!important}.rounded-tl{border-top-left-radius:.25rem!important}.rounded-tl-lg{border-top-left-radius:.5rem!important}.rounded-tr{border-top-right-radius:.25rem!important}.rounded-tr-lg{border-top-right-radius:.5rem!important}.rounded-br-lg{border-bottom-right-radius:.5rem!important}.rounded-bl-lg{border-bottom-left-radius:.5rem!important}.border-0{border-width:0!important}.border-2{border-width:2px!important}.border-4{border-width:4px!important}.border{border-width:1px!important}.border-t-0{border-top-width:0!important}.border-t{border-top-width:1px!important}.border-r-0{border-right-width:0!important}.border-r{border-right-width:1px!important}.border-b-0{border-bottom-width:0!important}.border-b-2{border-bottom-width:2px!important}.border-b{border-bottom-width:1px!important}.border-l-0{border-left-width:0!important}.border-l-2{border-left-width:2px!important}.border-l-4{border-left-width:4px!important}.border-l-8{border-left-width:8px!important}.border-l{border-left-width:1px!important}.border-dashed{border-style:dashed!important}.border-transparent{border-color:transparent!important}.border-black{border-color:rgba(0,0,0,var(--tw-border-opacity))!important}.border-black,.border-white{--tw-border-opacity:1!important}.border-white{border-color:rgba(255,255,255,var(--tw-border-opacity))!important}.border-gray-100{--tw-border-opacity:1!important;border-color:rgba(243,244,246,var(--tw-border-opacity))!important}.border-gray-200{--tw-border-opacity:1!important;border-color:rgba(229,231,235,var(--tw-border-opacity))!important}.border-gray-300{--tw-border-opacity:1!important;border-color:rgba(209,213,219,var(--tw-border-opacity))!important}.border-gray-400{--tw-border-opacity:1!important;border-color:rgba(156,163,175,var(--tw-border-opacity))!important}.border-gray-500{--tw-border-opacity:1!important;border-color:rgba(107,114,128,var(--tw-border-opacity))!important}.border-gray-600{--tw-border-opacity:1!important;border-color:rgba(75,85,99,var(--tw-border-opacity))!important}.border-gray-700{--tw-border-opacity:1!important;border-color:rgba(55,65,81,var(--tw-border-opacity))!important}.border-gray-800{--tw-border-opacity:1!important;border-color:rgba(31,41,55,var(--tw-border-opacity))!important}.border-red-200{--tw-border-opacity:1!important;border-color:rgba(254,202,202,var(--tw-border-opacity))!important}.border-red-300{--tw-border-opacity:1!important;border-color:rgba(252,165,165,var(--tw-border-opacity))!important}.border-red-400{--tw-border-opacity:1!important;border-color:rgba(248,113,113,var(--tw-border-opacity))!important}.border-red-500{--tw-border-opacity:1!important;border-color:rgba(239,68,68,var(--tw-border-opacity))!important}.border-red-600{--tw-border-opacity:1!important;border-color:rgba(220,38,38,var(--tw-border-opacity))!important}.border-green-200{--tw-border-opacity:1!important;border-color:rgba(167,243,208,var(--tw-border-opacity))!important}.border-green-400{--tw-border-opacity:1!important;border-color:rgba(52,211,153,var(--tw-border-opacity))!important}.border-green-600{--tw-border-opacity:1!important;border-color:rgba(5,150,105,var(--tw-border-opacity))!important}.border-blue-200{--tw-border-opacity:1!important;border-color:rgba(191,219,254,var(--tw-border-opacity))!important}.border-blue-300{--tw-border-opacity:1!important;border-color:rgba(147,197,253,var(--tw-border-opacity))!important}.border-blue-400{--tw-border-opacity:1!important;border-color:rgba(96,165,250,var(--tw-border-opacity))!important}.border-blue-500{--tw-border-opacity:1!important;border-color:rgba(59,130,246,var(--tw-border-opacity))!important}.border-blue-600{--tw-border-opacity:1!important;border-color:rgba(37,99,235,var(--tw-border-opacity))!important}.border-blue-800{--tw-border-opacity:1!important;border-color:rgba(30,64,175,var(--tw-border-opacity))!important}.border-indigo-200{--tw-border-opacity:1!important;border-color:rgba(199,210,254,var(--tw-border-opacity))!important}.border-purple-300{--tw-border-opacity:1!important;border-color:rgba(196,181,253,var(--tw-border-opacity))!important}.border-teal-200{--tw-border-opacity:1!important;border-color:rgba(153,246,228,var(--tw-border-opacity))!important}.border-orange-300{--tw-border-opacity:1!important;border-color:rgba(253,186,116,var(--tw-border-opacity))!important}.hover\:border-transparent:hover{border-color:transparent!important}.hover\:border-red-400:hover{--tw-border-opacity:1!important;border-color:rgba(248,113,113,var(--tw-border-opacity))!important}.hover\:border-red-500:hover{--tw-border-opacity:1!important;border-color:rgba(239,68,68,var(--tw-border-opacity))!important}.hover\:border-red-600:hover{--tw-border-opacity:1!important;border-color:rgba(220,38,38,var(--tw-border-opacity))!important}.hover\:border-green-600:hover{--tw-border-opacity:1!important;border-color:rgba(5,150,105,var(--tw-border-opacity))!important}.hover\:border-blue-400:hover{--tw-border-opacity:1!important;border-color:rgba(96,165,250,var(--tw-border-opacity))!important}.hover\:border-blue-600:hover{--tw-border-opacity:1!important;border-color:rgba(37,99,235,var(--tw-border-opacity))!important}.focus\:border-blue-400:focus{--tw-border-opacity:1!important;border-color:rgba(96,165,250,var(--tw-border-opacity))!important}.hover\:border-opacity-0:hover{--tw-border-opacity:0!important}.bg-transparent{background-color:transparent!important}.bg-white{background-color:rgba(255,255,255,var(--tw-bg-opacity))!important}.bg-gray-50,.bg-white{--tw-bg-opacity:1!important}.bg-gray-50{background-color:rgba(249,250,251,var(--tw-bg-opacity))!important}.bg-gray-100{background-color:rgba(243,244,246,var(--tw-bg-opacity))!important}.bg-gray-100,.bg-gray-200{--tw-bg-opacity:1!important}.bg-gray-200{background-color:rgba(229,231,235,var(--tw-bg-opacity))!important}.bg-gray-300{background-color:rgba(209,213,219,var(--tw-bg-opacity))!important}.bg-gray-300,.bg-gray-400{--tw-bg-opacity:1!important}.bg-gray-400{background-color:rgba(156,163,175,var(--tw-bg-opacity))!important}.bg-gray-500{background-color:rgba(107,114,128,var(--tw-bg-opacity))!important}.bg-gray-500,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgba(75,85,99,var(--tw-bg-opacity))!important}.bg-gray-700{background-color:rgba(55,65,81,var(--tw-bg-opacity))!important}.bg-gray-700,.bg-gray-800{--tw-bg-opacity:1!important}.bg-gray-800{background-color:rgba(31,41,55,var(--tw-bg-opacity))!important}.bg-gray-900{background-color:rgba(17,24,39,var(--tw-bg-opacity))!important}.bg-gray-900,.bg-red-50{--tw-bg-opacity:1!important}.bg-red-50{background-color:rgba(254,242,242,var(--tw-bg-opacity))!important}.bg-red-100{background-color:rgba(254,226,226,var(--tw-bg-opacity))!important}.bg-red-100,.bg-red-200{--tw-bg-opacity:1!important}.bg-red-200{background-color:rgba(254,202,202,var(--tw-bg-opacity))!important}.bg-red-400{background-color:rgba(248,113,113,var(--tw-bg-opacity))!important}.bg-red-400,.bg-red-500{--tw-bg-opacity:1!important}.bg-red-500{background-color:rgba(239,68,68,var(--tw-bg-opacity))!important}.bg-red-600{background-color:rgba(220,38,38,var(--tw-bg-opacity))!important}.bg-red-600,.bg-yellow-400{--tw-bg-opacity:1!important}.bg-yellow-400{background-color:rgba(251,191,36,var(--tw-bg-opacity))!important}.bg-green-50{background-color:rgba(236,253,245,var(--tw-bg-opacity))!important}.bg-green-50,.bg-green-100{--tw-bg-opacity:1!important}.bg-green-100{background-color:rgba(209,250,229,var(--tw-bg-opacity))!important}.bg-green-200{--tw-bg-opacity:1!important;background-color:rgba(167,243,208,var(--tw-bg-opacity))!important}.bg-green-400{--tw-bg-opacity:1!important;background-color:rgba(52,211,153,var(--tw-bg-opacity))!important}.bg-green-500{background-color:rgba(16,185,129,var(--tw-bg-opacity))!important}.bg-blue-100,.bg-green-500{--tw-bg-opacity:1!important}.bg-blue-100{background-color:rgba(219,234,254,var(--tw-bg-opacity))!important}.bg-blue-200{background-color:rgba(191,219,254,var(--tw-bg-opacity))!important}.bg-blue-200,.bg-blue-300{--tw-bg-opacity:1!important}.bg-blue-300{background-color:rgba(147,197,253,var(--tw-bg-opacity))!important}.bg-blue-400{background-color:rgba(96,165,250,var(--tw-bg-opacity))!important}.bg-blue-400,.bg-blue-500{--tw-bg-opacity:1!important}.bg-blue-500{background-color:rgba(59,130,246,var(--tw-bg-opacity))!important}.bg-blue-800{--tw-bg-opacity:1!important;background-color:rgba(30,64,175,var(--tw-bg-opacity))!important}.bg-indigo-100{--tw-bg-opacity:1!important;background-color:rgba(224,231,255,var(--tw-bg-opacity))!important}.bg-indigo-400{--tw-bg-opacity:1!important;background-color:rgba(129,140,248,var(--tw-bg-opacity))!important}.bg-purple-200{--tw-bg-opacity:1!important;background-color:rgba(221,214,254,var(--tw-bg-opacity))!important}.bg-teal-100{background-color:rgba(204,251,241,var(--tw-bg-opacity))!important}.bg-teal-100,.bg-teal-200{--tw-bg-opacity:1!important}.bg-teal-200{background-color:rgba(153,246,228,var(--tw-bg-opacity))!important}.bg-teal-400{background-color:rgba(45,212,191,var(--tw-bg-opacity))!important}.bg-teal-400,.bg-teal-500{--tw-bg-opacity:1!important}.bg-teal-500{background-color:rgba(20,184,166,var(--tw-bg-opacity))!important}.bg-orange-200{--tw-bg-opacity:1!important;background-color:rgba(254,215,170,var(--tw-bg-opacity))!important}.bg-orange-400{--tw-bg-opacity:1!important;background-color:rgba(251,146,60,var(--tw-bg-opacity))!important}.hover\:bg-white:hover{--tw-bg-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important}.hover\:bg-gray-100:hover{--tw-bg-opacity:1!important;background-color:rgba(243,244,246,var(--tw-bg-opacity))!important}.hover\:bg-gray-200:hover{--tw-bg-opacity:1!important;background-color:rgba(229,231,235,var(--tw-bg-opacity))!important}.hover\:bg-gray-300:hover{--tw-bg-opacity:1!important;background-color:rgba(209,213,219,var(--tw-bg-opacity))!important}.hover\:bg-gray-400:hover{--tw-bg-opacity:1!important;background-color:rgba(156,163,175,var(--tw-bg-opacity))!important}.hover\:bg-gray-700:hover{--tw-bg-opacity:1!important;background-color:rgba(55,65,81,var(--tw-bg-opacity))!important}.hover\:bg-red-100:hover{--tw-bg-opacity:1!important;background-color:rgba(254,226,226,var(--tw-bg-opacity))!important}.hover\:bg-red-200:hover{--tw-bg-opacity:1!important;background-color:rgba(254,202,202,var(--tw-bg-opacity))!important}.hover\:bg-red-400:hover{--tw-bg-opacity:1!important;background-color:rgba(248,113,113,var(--tw-bg-opacity))!important}.hover\:bg-red-500:hover{--tw-bg-opacity:1!important;background-color:rgba(239,68,68,var(--tw-bg-opacity))!important}.hover\:bg-red-600:hover{--tw-bg-opacity:1!important;background-color:rgba(220,38,38,var(--tw-bg-opacity))!important}.hover\:bg-green-100:hover{--tw-bg-opacity:1!important;background-color:rgba(209,250,229,var(--tw-bg-opacity))!important}.hover\:bg-green-500:hover{--tw-bg-opacity:1!important;background-color:rgba(16,185,129,var(--tw-bg-opacity))!important}.hover\:bg-green-600:hover{--tw-bg-opacity:1!important;background-color:rgba(5,150,105,var(--tw-bg-opacity))!important}.hover\:bg-blue-50:hover{--tw-bg-opacity:1!important;background-color:rgba(239,246,255,var(--tw-bg-opacity))!important}.hover\:bg-blue-100:hover{--tw-bg-opacity:1!important;background-color:rgba(219,234,254,var(--tw-bg-opacity))!important}.hover\:bg-blue-200:hover{--tw-bg-opacity:1!important;background-color:rgba(191,219,254,var(--tw-bg-opacity))!important}.hover\:bg-blue-400:hover{--tw-bg-opacity:1!important;background-color:rgba(96,165,250,var(--tw-bg-opacity))!important}.hover\:bg-blue-500:hover{--tw-bg-opacity:1!important;background-color:rgba(59,130,246,var(--tw-bg-opacity))!important}.hover\:bg-blue-600:hover{--tw-bg-opacity:1!important;background-color:rgba(37,99,235,var(--tw-bg-opacity))!important}.hover\:bg-indigo-100:hover{--tw-bg-opacity:1!important;background-color:rgba(224,231,255,var(--tw-bg-opacity))!important}.hover\:bg-teal-100:hover{--tw-bg-opacity:1!important;background-color:rgba(204,251,241,var(--tw-bg-opacity))!important}.focus\:bg-gray-100:focus{--tw-bg-opacity:1!important;background-color:rgba(243,244,246,var(--tw-bg-opacity))!important}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))!important}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))!important}.bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--tw-gradient-stops))!important}.from-red-300{--tw-gradient-from:#fca5a5!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,hsla(0,94%,82%,0))!important}.from-red-400{--tw-gradient-from:#f87171!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,hsla(0,91%,71%,0))!important}.from-red-500{--tw-gradient-from:#ef4444!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(239,68,68,0))!important}.from-green-400{--tw-gradient-from:#34d399!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(52,211,153,0))!important}.from-blue-200{--tw-gradient-from:#bfdbfe!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(191,219,254,0))!important}.from-blue-400{--tw-gradient-from:#60a5fa!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(96,165,250,0))!important}.from-blue-500{--tw-gradient-from:#3b82f6!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(59,130,246,0))!important}.from-indigo-400{--tw-gradient-from:#818cf8!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(129,140,248,0))!important}.from-purple-400{--tw-gradient-from:#a78bfa!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(167,139,250,0))!important}.from-purple-500{--tw-gradient-from:#8b5cf6!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(139,92,246,0))!important}.from-pink-400{--tw-gradient-from:#f472b6!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(244,114,182,0))!important}.via-red-400{--tw-gradient-stops:var(--tw-gradient-from),#f87171,var(--tw-gradient-to,hsla(0,91%,71%,0))!important}.to-red-500{--tw-gradient-to:#ef4444!important}.to-red-600{--tw-gradient-to:#dc2626!important}.to-red-700{--tw-gradient-to:#b91c1c!important}.to-green-600{--tw-gradient-to:#059669!important}.to-green-700{--tw-gradient-to:#047857!important}.to-blue-400{--tw-gradient-to:#60a5fa!important}.to-blue-600{--tw-gradient-to:#2563eb!important}.to-blue-700{--tw-gradient-to:#1d4ed8!important}.to-indigo-400{--tw-gradient-to:#818cf8!important}.to-indigo-500{--tw-gradient-to:#6366f1!important}.to-indigo-600{--tw-gradient-to:#4f46e5!important}.to-purple-600{--tw-gradient-to:#7c3aed!important}.to-pink-500{--tw-gradient-to:#ec4899!important}.to-teal-500{--tw-gradient-to:#14b8a6!important}.bg-clip-text{-webkit-background-clip:text!important;background-clip:text!important}.object-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-cover{-o-object-fit:cover!important;object-fit:cover!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:.75rem!important}.p-4{padding:1rem!important}.p-8{padding:2rem!important}.p-10{padding:2.5rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-3{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.py-5{padding-bottom:1.25rem!important;padding-top:1.25rem!important}.py-6{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-10{padding-bottom:2.5rem!important;padding-top:2.5rem!important}.pt-2{padding-top:.5rem!important}.pt-6{padding-top:1.5rem!important}.pr-1{padding-right:.25rem!important}.pr-2{padding-right:.5rem!important}.pr-8{padding-right:2rem!important}.pr-12{padding-right:3rem!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-4{padding-bottom:1rem!important}.pb-10{padding-bottom:2.5rem!important}.pl-1{padding-left:.25rem!important}.pl-2{padding-left:.5rem!important}.pl-3{padding-left:.75rem!important}.pl-7{padding-left:1.75rem!important}.pl-8{padding-left:2rem!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.font-body{font-family:Graphik,sans-serif!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-lg{font-size:1.125rem!important}.text-lg,.text-xl{line-height:1.75rem!important}.text-xl{font-size:1.25rem!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important}.text-5xl,.text-6xl{line-height:1!important}.text-6xl{font-size:3.75rem!important}.font-medium{font-weight:500!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.font-black{font-weight:900!important}.uppercase{text-transform:uppercase!important}.leading-5{line-height:1.25rem!important}.text-transparent{color:transparent!important}.text-white{color:rgba(255,255,255,var(--tw-text-opacity))!important}.text-gray-100,.text-white{--tw-text-opacity:1!important}.text-gray-100{color:rgba(243,244,246,var(--tw-text-opacity))!important}.text-gray-200{--tw-text-opacity:1!important;color:rgba(229,231,235,var(--tw-text-opacity))!important}.text-gray-400{--tw-text-opacity:1!important;color:rgba(156,163,175,var(--tw-text-opacity))!important}.text-gray-500{--tw-text-opacity:1!important;color:rgba(107,114,128,var(--tw-text-opacity))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgba(75,85,99,var(--tw-text-opacity))!important}.text-gray-700{--tw-text-opacity:1!important;color:rgba(55,65,81,var(--tw-text-opacity))!important}.text-gray-800{--tw-text-opacity:1!important;color:rgba(31,41,55,var(--tw-text-opacity))!important}.text-gray-900{color:rgba(17,24,39,var(--tw-text-opacity))!important}.text-gray-900,.text-red-400{--tw-text-opacity:1!important}.text-red-400{color:rgba(248,113,113,var(--tw-text-opacity))!important}.text-red-500{color:rgba(239,68,68,var(--tw-text-opacity))!important}.text-red-500,.text-red-600{--tw-text-opacity:1!important}.text-red-600{color:rgba(220,38,38,var(--tw-text-opacity))!important}.text-red-700{color:rgba(185,28,28,var(--tw-text-opacity))!important}.text-red-700,.text-red-800{--tw-text-opacity:1!important}.text-red-800{color:rgba(153,27,27,var(--tw-text-opacity))!important}.text-green-500{--tw-text-opacity:1!important;color:rgba(16,185,129,var(--tw-text-opacity))!important}.text-green-600{--tw-text-opacity:1!important;color:rgba(5,150,105,var(--tw-text-opacity))!important}.text-green-700{--tw-text-opacity:1!important;color:rgba(4,120,87,var(--tw-text-opacity))!important}.text-blue-500{--tw-text-opacity:1!important;color:rgba(59,130,246,var(--tw-text-opacity))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgba(37,99,235,var(--tw-text-opacity))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgba(29,78,216,var(--tw-text-opacity))!important}.hover\:text-white:hover{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}.hover\:text-gray-700:hover{--tw-text-opacity:1!important;color:rgba(55,65,81,var(--tw-text-opacity))!important}.hover\:text-gray-800:hover{--tw-text-opacity:1!important;color:rgba(31,41,55,var(--tw-text-opacity))!important}.hover\:text-gray-900:hover{--tw-text-opacity:1!important;color:rgba(17,24,39,var(--tw-text-opacity))!important}.hover\:text-red-400:hover{--tw-text-opacity:1!important;color:rgba(248,113,113,var(--tw-text-opacity))!important}.hover\:text-red-500:hover{--tw-text-opacity:1!important;color:rgba(239,68,68,var(--tw-text-opacity))!important}.hover\:text-green-700:hover{--tw-text-opacity:1!important;color:rgba(4,120,87,var(--tw-text-opacity))!important}.hover\:text-blue-400:hover{--tw-text-opacity:1!important;color:rgba(96,165,250,var(--tw-text-opacity))!important}.hover\:text-blue-600:hover{--tw-text-opacity:1!important;color:rgba(37,99,235,var(--tw-text-opacity))!important}.focus\:text-gray-900:focus{--tw-text-opacity:1!important;color:rgba(17,24,39,var(--tw-text-opacity))!important}.hover\:underline:hover,.underline{text-decoration:underline!important}*,:after,:before{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)!important}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)!important}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)!important}.shadow-lg,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)!important}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,0.06)!important}.hover\:shadow-lg:hover,.shadow-inner{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)!important}.focus\:shadow-sm:focus{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.focus\:outline-none:focus,.outline-none{outline:2px solid transparent!important;outline-offset:2px!important}*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.ring-blue-500{--tw-ring-opacity:1!important;--tw-ring-color:rgba(59,130,246,var(--tw-ring-opacity))!important}.ring-opacity-50{--tw-ring-opacity:0.5!important}.filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/)!important;--tw-brightness:var(--tw-empty,/*!*/ /*!*/)!important;--tw-contrast:var(--tw-empty,/*!*/ /*!*/)!important;--tw-grayscale:var(--tw-empty,/*!*/ /*!*/)!important;--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-invert:var(--tw-empty,/*!*/ /*!*/)!important;--tw-saturate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-sepia:var(--tw-empty,/*!*/ /*!*/)!important;--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/)!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.blur{--tw-blur:blur(8px)!important}.transition-all{transition-duration:.15s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.duration-100{transition-duration:.1s!important}.ease-linear{transition-timing-function:linear!important}@-webkit-keyframes ZoomOutEntrance{0%{opacity:0;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes ZoomOutEntrance{0%{opacity:0;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes ZoomInEntrance{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes ZoomInEntrance{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes ZoomOutExit{0%{opacity:0;transform:scale(1)}to{opacity:1;transform:scale(.9)}}@keyframes ZoomOutExit{0%{opacity:0;transform:scale(1)}to{opacity:1;transform:scale(.9)}}@-webkit-keyframes ZoomInExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}@keyframes ZoomInExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}@-webkit-keyframes FadeInEntrance{0%{opacity:0}70%{opacity:.5}to{opacity:1}}@keyframes FadeInEntrance{0%{opacity:0}70%{opacity:.5}to{opacity:1}}@-webkit-keyframes FadeOutExit{0%{opacity:1}70%{opacity:.5}to{opacity:0}}@keyframes FadeOutExit{0%{opacity:1}70%{opacity:.5}to{opacity:0}}.zoom-out-entrance{-webkit-animation:ZoomOutEntrance .5s;animation:ZoomOutEntrance .5s}.zoom-in-entrance{-webkit-animation:ZoomInEntrance;animation:ZoomInEntrance}.zoom-in-exit{-webkit-animation:ZoomInExit .3s;animation:ZoomInExit .3s}.zoom-out-exit{-webkit-animation:ZoomOutExit;animation:ZoomOutExit}.fade-in-entrance{-webkit-animation:FadeInEntrance;animation:FadeInEntrance}.fade-out-exit{-webkit-animation:FadeOutExit;animation:FadeOutExit}.anim-duration-100{-webkit-animation-duration:.1s;animation-duration:.1s}.anim-duration-101{-webkit-animation-duration:101ms;animation-duration:101ms}.anim-duration-102{-webkit-animation-duration:102ms;animation-duration:102ms}.anim-duration-103{-webkit-animation-duration:103ms;animation-duration:103ms}.anim-duration-104{-webkit-animation-duration:104ms;animation-duration:104ms}.anim-duration-105{-webkit-animation-duration:105ms;animation-duration:105ms}.anim-duration-106{-webkit-animation-duration:106ms;animation-duration:106ms}.anim-duration-107{-webkit-animation-duration:107ms;animation-duration:107ms}.anim-duration-108{-webkit-animation-duration:108ms;animation-duration:108ms}.anim-duration-109{-webkit-animation-duration:109ms;animation-duration:109ms}.anim-duration-110{-webkit-animation-duration:.11s;animation-duration:.11s}.anim-duration-111{-webkit-animation-duration:111ms;animation-duration:111ms}.anim-duration-112{-webkit-animation-duration:112ms;animation-duration:112ms}.anim-duration-113{-webkit-animation-duration:113ms;animation-duration:113ms}.anim-duration-114{-webkit-animation-duration:114ms;animation-duration:114ms}.anim-duration-115{-webkit-animation-duration:115ms;animation-duration:115ms}.anim-duration-116{-webkit-animation-duration:116ms;animation-duration:116ms}.anim-duration-117{-webkit-animation-duration:117ms;animation-duration:117ms}.anim-duration-118{-webkit-animation-duration:118ms;animation-duration:118ms}.anim-duration-119{-webkit-animation-duration:119ms;animation-duration:119ms}.anim-duration-120{-webkit-animation-duration:.12s;animation-duration:.12s}.anim-duration-121{-webkit-animation-duration:121ms;animation-duration:121ms}.anim-duration-122{-webkit-animation-duration:122ms;animation-duration:122ms}.anim-duration-123{-webkit-animation-duration:123ms;animation-duration:123ms}.anim-duration-124{-webkit-animation-duration:124ms;animation-duration:124ms}.anim-duration-125{-webkit-animation-duration:125ms;animation-duration:125ms}.anim-duration-126{-webkit-animation-duration:126ms;animation-duration:126ms}.anim-duration-127{-webkit-animation-duration:127ms;animation-duration:127ms}.anim-duration-128{-webkit-animation-duration:128ms;animation-duration:128ms}.anim-duration-129{-webkit-animation-duration:129ms;animation-duration:129ms}.anim-duration-130{-webkit-animation-duration:.13s;animation-duration:.13s}.anim-duration-131{-webkit-animation-duration:131ms;animation-duration:131ms}.anim-duration-132{-webkit-animation-duration:132ms;animation-duration:132ms}.anim-duration-133{-webkit-animation-duration:133ms;animation-duration:133ms}.anim-duration-134{-webkit-animation-duration:134ms;animation-duration:134ms}.anim-duration-135{-webkit-animation-duration:135ms;animation-duration:135ms}.anim-duration-136{-webkit-animation-duration:136ms;animation-duration:136ms}.anim-duration-137{-webkit-animation-duration:137ms;animation-duration:137ms}.anim-duration-138{-webkit-animation-duration:138ms;animation-duration:138ms}.anim-duration-139{-webkit-animation-duration:139ms;animation-duration:139ms}.anim-duration-140{-webkit-animation-duration:.14s;animation-duration:.14s}.anim-duration-141{-webkit-animation-duration:141ms;animation-duration:141ms}.anim-duration-142{-webkit-animation-duration:142ms;animation-duration:142ms}.anim-duration-143{-webkit-animation-duration:143ms;animation-duration:143ms}.anim-duration-144{-webkit-animation-duration:144ms;animation-duration:144ms}.anim-duration-145{-webkit-animation-duration:145ms;animation-duration:145ms}.anim-duration-146{-webkit-animation-duration:146ms;animation-duration:146ms}.anim-duration-147{-webkit-animation-duration:147ms;animation-duration:147ms}.anim-duration-148{-webkit-animation-duration:148ms;animation-duration:148ms}.anim-duration-149{-webkit-animation-duration:149ms;animation-duration:149ms}.anim-duration-150{-webkit-animation-duration:.15s;animation-duration:.15s}.anim-duration-151{-webkit-animation-duration:151ms;animation-duration:151ms}.anim-duration-152{-webkit-animation-duration:152ms;animation-duration:152ms}.anim-duration-153{-webkit-animation-duration:153ms;animation-duration:153ms}.anim-duration-154{-webkit-animation-duration:154ms;animation-duration:154ms}.anim-duration-155{-webkit-animation-duration:155ms;animation-duration:155ms}.anim-duration-156{-webkit-animation-duration:156ms;animation-duration:156ms}.anim-duration-157{-webkit-animation-duration:157ms;animation-duration:157ms}.anim-duration-158{-webkit-animation-duration:158ms;animation-duration:158ms}.anim-duration-159{-webkit-animation-duration:159ms;animation-duration:159ms}.anim-duration-160{-webkit-animation-duration:.16s;animation-duration:.16s}.anim-duration-161{-webkit-animation-duration:161ms;animation-duration:161ms}.anim-duration-162{-webkit-animation-duration:162ms;animation-duration:162ms}.anim-duration-163{-webkit-animation-duration:163ms;animation-duration:163ms}.anim-duration-164{-webkit-animation-duration:164ms;animation-duration:164ms}.anim-duration-165{-webkit-animation-duration:165ms;animation-duration:165ms}.anim-duration-166{-webkit-animation-duration:166ms;animation-duration:166ms}.anim-duration-167{-webkit-animation-duration:167ms;animation-duration:167ms}.anim-duration-168{-webkit-animation-duration:168ms;animation-duration:168ms}.anim-duration-169{-webkit-animation-duration:169ms;animation-duration:169ms}.anim-duration-170{-webkit-animation-duration:.17s;animation-duration:.17s}.anim-duration-171{-webkit-animation-duration:171ms;animation-duration:171ms}.anim-duration-172{-webkit-animation-duration:172ms;animation-duration:172ms}.anim-duration-173{-webkit-animation-duration:173ms;animation-duration:173ms}.anim-duration-174{-webkit-animation-duration:174ms;animation-duration:174ms}.anim-duration-175{-webkit-animation-duration:175ms;animation-duration:175ms}.anim-duration-176{-webkit-animation-duration:176ms;animation-duration:176ms}.anim-duration-177{-webkit-animation-duration:177ms;animation-duration:177ms}.anim-duration-178{-webkit-animation-duration:178ms;animation-duration:178ms}.anim-duration-179{-webkit-animation-duration:179ms;animation-duration:179ms}.anim-duration-180{-webkit-animation-duration:.18s;animation-duration:.18s}.anim-duration-181{-webkit-animation-duration:181ms;animation-duration:181ms}.anim-duration-182{-webkit-animation-duration:182ms;animation-duration:182ms}.anim-duration-183{-webkit-animation-duration:183ms;animation-duration:183ms}.anim-duration-184{-webkit-animation-duration:184ms;animation-duration:184ms}.anim-duration-185{-webkit-animation-duration:185ms;animation-duration:185ms}.anim-duration-186{-webkit-animation-duration:186ms;animation-duration:186ms}.anim-duration-187{-webkit-animation-duration:187ms;animation-duration:187ms}.anim-duration-188{-webkit-animation-duration:188ms;animation-duration:188ms}.anim-duration-189{-webkit-animation-duration:189ms;animation-duration:189ms}.anim-duration-190{-webkit-animation-duration:.19s;animation-duration:.19s}.anim-duration-191{-webkit-animation-duration:191ms;animation-duration:191ms}.anim-duration-192{-webkit-animation-duration:192ms;animation-duration:192ms}.anim-duration-193{-webkit-animation-duration:193ms;animation-duration:193ms}.anim-duration-194{-webkit-animation-duration:194ms;animation-duration:194ms}.anim-duration-195{-webkit-animation-duration:195ms;animation-duration:195ms}.anim-duration-196{-webkit-animation-duration:196ms;animation-duration:196ms}.anim-duration-197{-webkit-animation-duration:197ms;animation-duration:197ms}.anim-duration-198{-webkit-animation-duration:198ms;animation-duration:198ms}.anim-duration-199{-webkit-animation-duration:199ms;animation-duration:199ms}.anim-duration-200{-webkit-animation-duration:.2s;animation-duration:.2s}.anim-duration-201{-webkit-animation-duration:201ms;animation-duration:201ms}.anim-duration-202{-webkit-animation-duration:202ms;animation-duration:202ms}.anim-duration-203{-webkit-animation-duration:203ms;animation-duration:203ms}.anim-duration-204{-webkit-animation-duration:204ms;animation-duration:204ms}.anim-duration-205{-webkit-animation-duration:205ms;animation-duration:205ms}.anim-duration-206{-webkit-animation-duration:206ms;animation-duration:206ms}.anim-duration-207{-webkit-animation-duration:207ms;animation-duration:207ms}.anim-duration-208{-webkit-animation-duration:208ms;animation-duration:208ms}.anim-duration-209{-webkit-animation-duration:209ms;animation-duration:209ms}.anim-duration-210{-webkit-animation-duration:.21s;animation-duration:.21s}.anim-duration-211{-webkit-animation-duration:211ms;animation-duration:211ms}.anim-duration-212{-webkit-animation-duration:212ms;animation-duration:212ms}.anim-duration-213{-webkit-animation-duration:213ms;animation-duration:213ms}.anim-duration-214{-webkit-animation-duration:214ms;animation-duration:214ms}.anim-duration-215{-webkit-animation-duration:215ms;animation-duration:215ms}.anim-duration-216{-webkit-animation-duration:216ms;animation-duration:216ms}.anim-duration-217{-webkit-animation-duration:217ms;animation-duration:217ms}.anim-duration-218{-webkit-animation-duration:218ms;animation-duration:218ms}.anim-duration-219{-webkit-animation-duration:219ms;animation-duration:219ms}.anim-duration-220{-webkit-animation-duration:.22s;animation-duration:.22s}.anim-duration-221{-webkit-animation-duration:221ms;animation-duration:221ms}.anim-duration-222{-webkit-animation-duration:222ms;animation-duration:222ms}.anim-duration-223{-webkit-animation-duration:223ms;animation-duration:223ms}.anim-duration-224{-webkit-animation-duration:224ms;animation-duration:224ms}.anim-duration-225{-webkit-animation-duration:225ms;animation-duration:225ms}.anim-duration-226{-webkit-animation-duration:226ms;animation-duration:226ms}.anim-duration-227{-webkit-animation-duration:227ms;animation-duration:227ms}.anim-duration-228{-webkit-animation-duration:228ms;animation-duration:228ms}.anim-duration-229{-webkit-animation-duration:229ms;animation-duration:229ms}.anim-duration-230{-webkit-animation-duration:.23s;animation-duration:.23s}.anim-duration-231{-webkit-animation-duration:231ms;animation-duration:231ms}.anim-duration-232{-webkit-animation-duration:232ms;animation-duration:232ms}.anim-duration-233{-webkit-animation-duration:233ms;animation-duration:233ms}.anim-duration-234{-webkit-animation-duration:234ms;animation-duration:234ms}.anim-duration-235{-webkit-animation-duration:235ms;animation-duration:235ms}.anim-duration-236{-webkit-animation-duration:236ms;animation-duration:236ms}.anim-duration-237{-webkit-animation-duration:237ms;animation-duration:237ms}.anim-duration-238{-webkit-animation-duration:238ms;animation-duration:238ms}.anim-duration-239{-webkit-animation-duration:239ms;animation-duration:239ms}.anim-duration-240{-webkit-animation-duration:.24s;animation-duration:.24s}.anim-duration-241{-webkit-animation-duration:241ms;animation-duration:241ms}.anim-duration-242{-webkit-animation-duration:242ms;animation-duration:242ms}.anim-duration-243{-webkit-animation-duration:243ms;animation-duration:243ms}.anim-duration-244{-webkit-animation-duration:244ms;animation-duration:244ms}.anim-duration-245{-webkit-animation-duration:245ms;animation-duration:245ms}.anim-duration-246{-webkit-animation-duration:246ms;animation-duration:246ms}.anim-duration-247{-webkit-animation-duration:247ms;animation-duration:247ms}.anim-duration-248{-webkit-animation-duration:248ms;animation-duration:248ms}.anim-duration-249{-webkit-animation-duration:249ms;animation-duration:249ms}.anim-duration-250{-webkit-animation-duration:.25s;animation-duration:.25s}.anim-duration-251{-webkit-animation-duration:251ms;animation-duration:251ms}.anim-duration-252{-webkit-animation-duration:252ms;animation-duration:252ms}.anim-duration-253{-webkit-animation-duration:253ms;animation-duration:253ms}.anim-duration-254{-webkit-animation-duration:254ms;animation-duration:254ms}.anim-duration-255{-webkit-animation-duration:255ms;animation-duration:255ms}.anim-duration-256{-webkit-animation-duration:256ms;animation-duration:256ms}.anim-duration-257{-webkit-animation-duration:257ms;animation-duration:257ms}.anim-duration-258{-webkit-animation-duration:258ms;animation-duration:258ms}.anim-duration-259{-webkit-animation-duration:259ms;animation-duration:259ms}.anim-duration-260{-webkit-animation-duration:.26s;animation-duration:.26s}.anim-duration-261{-webkit-animation-duration:261ms;animation-duration:261ms}.anim-duration-262{-webkit-animation-duration:262ms;animation-duration:262ms}.anim-duration-263{-webkit-animation-duration:263ms;animation-duration:263ms}.anim-duration-264{-webkit-animation-duration:264ms;animation-duration:264ms}.anim-duration-265{-webkit-animation-duration:265ms;animation-duration:265ms}.anim-duration-266{-webkit-animation-duration:266ms;animation-duration:266ms}.anim-duration-267{-webkit-animation-duration:267ms;animation-duration:267ms}.anim-duration-268{-webkit-animation-duration:268ms;animation-duration:268ms}.anim-duration-269{-webkit-animation-duration:269ms;animation-duration:269ms}.anim-duration-270{-webkit-animation-duration:.27s;animation-duration:.27s}.anim-duration-271{-webkit-animation-duration:271ms;animation-duration:271ms}.anim-duration-272{-webkit-animation-duration:272ms;animation-duration:272ms}.anim-duration-273{-webkit-animation-duration:273ms;animation-duration:273ms}.anim-duration-274{-webkit-animation-duration:274ms;animation-duration:274ms}.anim-duration-275{-webkit-animation-duration:275ms;animation-duration:275ms}.anim-duration-276{-webkit-animation-duration:276ms;animation-duration:276ms}.anim-duration-277{-webkit-animation-duration:277ms;animation-duration:277ms}.anim-duration-278{-webkit-animation-duration:278ms;animation-duration:278ms}.anim-duration-279{-webkit-animation-duration:279ms;animation-duration:279ms}.anim-duration-280{-webkit-animation-duration:.28s;animation-duration:.28s}.anim-duration-281{-webkit-animation-duration:281ms;animation-duration:281ms}.anim-duration-282{-webkit-animation-duration:282ms;animation-duration:282ms}.anim-duration-283{-webkit-animation-duration:283ms;animation-duration:283ms}.anim-duration-284{-webkit-animation-duration:284ms;animation-duration:284ms}.anim-duration-285{-webkit-animation-duration:285ms;animation-duration:285ms}.anim-duration-286{-webkit-animation-duration:286ms;animation-duration:286ms}.anim-duration-287{-webkit-animation-duration:287ms;animation-duration:287ms}.anim-duration-288{-webkit-animation-duration:288ms;animation-duration:288ms}.anim-duration-289{-webkit-animation-duration:289ms;animation-duration:289ms}.anim-duration-290{-webkit-animation-duration:.29s;animation-duration:.29s}.anim-duration-291{-webkit-animation-duration:291ms;animation-duration:291ms}.anim-duration-292{-webkit-animation-duration:292ms;animation-duration:292ms}.anim-duration-293{-webkit-animation-duration:293ms;animation-duration:293ms}.anim-duration-294{-webkit-animation-duration:294ms;animation-duration:294ms}.anim-duration-295{-webkit-animation-duration:295ms;animation-duration:295ms}.anim-duration-296{-webkit-animation-duration:296ms;animation-duration:296ms}.anim-duration-297{-webkit-animation-duration:297ms;animation-duration:297ms}.anim-duration-298{-webkit-animation-duration:298ms;animation-duration:298ms}.anim-duration-299{-webkit-animation-duration:299ms;animation-duration:299ms}.anim-duration-300{-webkit-animation-duration:.3s;animation-duration:.3s}.anim-duration-301{-webkit-animation-duration:301ms;animation-duration:301ms}.anim-duration-302{-webkit-animation-duration:302ms;animation-duration:302ms}.anim-duration-303{-webkit-animation-duration:303ms;animation-duration:303ms}.anim-duration-304{-webkit-animation-duration:304ms;animation-duration:304ms}.anim-duration-305{-webkit-animation-duration:305ms;animation-duration:305ms}.anim-duration-306{-webkit-animation-duration:306ms;animation-duration:306ms}.anim-duration-307{-webkit-animation-duration:307ms;animation-duration:307ms}.anim-duration-308{-webkit-animation-duration:308ms;animation-duration:308ms}.anim-duration-309{-webkit-animation-duration:309ms;animation-duration:309ms}.anim-duration-310{-webkit-animation-duration:.31s;animation-duration:.31s}.anim-duration-311{-webkit-animation-duration:311ms;animation-duration:311ms}.anim-duration-312{-webkit-animation-duration:312ms;animation-duration:312ms}.anim-duration-313{-webkit-animation-duration:313ms;animation-duration:313ms}.anim-duration-314{-webkit-animation-duration:314ms;animation-duration:314ms}.anim-duration-315{-webkit-animation-duration:315ms;animation-duration:315ms}.anim-duration-316{-webkit-animation-duration:316ms;animation-duration:316ms}.anim-duration-317{-webkit-animation-duration:317ms;animation-duration:317ms}.anim-duration-318{-webkit-animation-duration:318ms;animation-duration:318ms}.anim-duration-319{-webkit-animation-duration:319ms;animation-duration:319ms}.anim-duration-320{-webkit-animation-duration:.32s;animation-duration:.32s}.anim-duration-321{-webkit-animation-duration:321ms;animation-duration:321ms}.anim-duration-322{-webkit-animation-duration:322ms;animation-duration:322ms}.anim-duration-323{-webkit-animation-duration:323ms;animation-duration:323ms}.anim-duration-324{-webkit-animation-duration:324ms;animation-duration:324ms}.anim-duration-325{-webkit-animation-duration:325ms;animation-duration:325ms}.anim-duration-326{-webkit-animation-duration:326ms;animation-duration:326ms}.anim-duration-327{-webkit-animation-duration:327ms;animation-duration:327ms}.anim-duration-328{-webkit-animation-duration:328ms;animation-duration:328ms}.anim-duration-329{-webkit-animation-duration:329ms;animation-duration:329ms}.anim-duration-330{-webkit-animation-duration:.33s;animation-duration:.33s}.anim-duration-331{-webkit-animation-duration:331ms;animation-duration:331ms}.anim-duration-332{-webkit-animation-duration:332ms;animation-duration:332ms}.anim-duration-333{-webkit-animation-duration:333ms;animation-duration:333ms}.anim-duration-334{-webkit-animation-duration:334ms;animation-duration:334ms}.anim-duration-335{-webkit-animation-duration:335ms;animation-duration:335ms}.anim-duration-336{-webkit-animation-duration:336ms;animation-duration:336ms}.anim-duration-337{-webkit-animation-duration:337ms;animation-duration:337ms}.anim-duration-338{-webkit-animation-duration:338ms;animation-duration:338ms}.anim-duration-339{-webkit-animation-duration:339ms;animation-duration:339ms}.anim-duration-340{-webkit-animation-duration:.34s;animation-duration:.34s}.anim-duration-341{-webkit-animation-duration:341ms;animation-duration:341ms}.anim-duration-342{-webkit-animation-duration:342ms;animation-duration:342ms}.anim-duration-343{-webkit-animation-duration:343ms;animation-duration:343ms}.anim-duration-344{-webkit-animation-duration:344ms;animation-duration:344ms}.anim-duration-345{-webkit-animation-duration:345ms;animation-duration:345ms}.anim-duration-346{-webkit-animation-duration:346ms;animation-duration:346ms}.anim-duration-347{-webkit-animation-duration:347ms;animation-duration:347ms}.anim-duration-348{-webkit-animation-duration:348ms;animation-duration:348ms}.anim-duration-349{-webkit-animation-duration:349ms;animation-duration:349ms}.anim-duration-350{-webkit-animation-duration:.35s;animation-duration:.35s}.anim-duration-351{-webkit-animation-duration:351ms;animation-duration:351ms}.anim-duration-352{-webkit-animation-duration:352ms;animation-duration:352ms}.anim-duration-353{-webkit-animation-duration:353ms;animation-duration:353ms}.anim-duration-354{-webkit-animation-duration:354ms;animation-duration:354ms}.anim-duration-355{-webkit-animation-duration:355ms;animation-duration:355ms}.anim-duration-356{-webkit-animation-duration:356ms;animation-duration:356ms}.anim-duration-357{-webkit-animation-duration:357ms;animation-duration:357ms}.anim-duration-358{-webkit-animation-duration:358ms;animation-duration:358ms}.anim-duration-359{-webkit-animation-duration:359ms;animation-duration:359ms}.anim-duration-360{-webkit-animation-duration:.36s;animation-duration:.36s}.anim-duration-361{-webkit-animation-duration:361ms;animation-duration:361ms}.anim-duration-362{-webkit-animation-duration:362ms;animation-duration:362ms}.anim-duration-363{-webkit-animation-duration:363ms;animation-duration:363ms}.anim-duration-364{-webkit-animation-duration:364ms;animation-duration:364ms}.anim-duration-365{-webkit-animation-duration:365ms;animation-duration:365ms}.anim-duration-366{-webkit-animation-duration:366ms;animation-duration:366ms}.anim-duration-367{-webkit-animation-duration:367ms;animation-duration:367ms}.anim-duration-368{-webkit-animation-duration:368ms;animation-duration:368ms}.anim-duration-369{-webkit-animation-duration:369ms;animation-duration:369ms}.anim-duration-370{-webkit-animation-duration:.37s;animation-duration:.37s}.anim-duration-371{-webkit-animation-duration:371ms;animation-duration:371ms}.anim-duration-372{-webkit-animation-duration:372ms;animation-duration:372ms}.anim-duration-373{-webkit-animation-duration:373ms;animation-duration:373ms}.anim-duration-374{-webkit-animation-duration:374ms;animation-duration:374ms}.anim-duration-375{-webkit-animation-duration:375ms;animation-duration:375ms}.anim-duration-376{-webkit-animation-duration:376ms;animation-duration:376ms}.anim-duration-377{-webkit-animation-duration:377ms;animation-duration:377ms}.anim-duration-378{-webkit-animation-duration:378ms;animation-duration:378ms}.anim-duration-379{-webkit-animation-duration:379ms;animation-duration:379ms}.anim-duration-380{-webkit-animation-duration:.38s;animation-duration:.38s}.anim-duration-381{-webkit-animation-duration:381ms;animation-duration:381ms}.anim-duration-382{-webkit-animation-duration:382ms;animation-duration:382ms}.anim-duration-383{-webkit-animation-duration:383ms;animation-duration:383ms}.anim-duration-384{-webkit-animation-duration:384ms;animation-duration:384ms}.anim-duration-385{-webkit-animation-duration:385ms;animation-duration:385ms}.anim-duration-386{-webkit-animation-duration:386ms;animation-duration:386ms}.anim-duration-387{-webkit-animation-duration:387ms;animation-duration:387ms}.anim-duration-388{-webkit-animation-duration:388ms;animation-duration:388ms}.anim-duration-389{-webkit-animation-duration:389ms;animation-duration:389ms}.anim-duration-390{-webkit-animation-duration:.39s;animation-duration:.39s}.anim-duration-391{-webkit-animation-duration:391ms;animation-duration:391ms}.anim-duration-392{-webkit-animation-duration:392ms;animation-duration:392ms}.anim-duration-393{-webkit-animation-duration:393ms;animation-duration:393ms}.anim-duration-394{-webkit-animation-duration:394ms;animation-duration:394ms}.anim-duration-395{-webkit-animation-duration:395ms;animation-duration:395ms}.anim-duration-396{-webkit-animation-duration:396ms;animation-duration:396ms}.anim-duration-397{-webkit-animation-duration:397ms;animation-duration:397ms}.anim-duration-398{-webkit-animation-duration:398ms;animation-duration:398ms}.anim-duration-399{-webkit-animation-duration:399ms;animation-duration:399ms}.anim-duration-400{-webkit-animation-duration:.4s;animation-duration:.4s}.anim-duration-401{-webkit-animation-duration:401ms;animation-duration:401ms}.anim-duration-402{-webkit-animation-duration:402ms;animation-duration:402ms}.anim-duration-403{-webkit-animation-duration:403ms;animation-duration:403ms}.anim-duration-404{-webkit-animation-duration:404ms;animation-duration:404ms}.anim-duration-405{-webkit-animation-duration:405ms;animation-duration:405ms}.anim-duration-406{-webkit-animation-duration:406ms;animation-duration:406ms}.anim-duration-407{-webkit-animation-duration:407ms;animation-duration:407ms}.anim-duration-408{-webkit-animation-duration:408ms;animation-duration:408ms}.anim-duration-409{-webkit-animation-duration:409ms;animation-duration:409ms}.anim-duration-410{-webkit-animation-duration:.41s;animation-duration:.41s}.anim-duration-411{-webkit-animation-duration:411ms;animation-duration:411ms}.anim-duration-412{-webkit-animation-duration:412ms;animation-duration:412ms}.anim-duration-413{-webkit-animation-duration:413ms;animation-duration:413ms}.anim-duration-414{-webkit-animation-duration:414ms;animation-duration:414ms}.anim-duration-415{-webkit-animation-duration:415ms;animation-duration:415ms}.anim-duration-416{-webkit-animation-duration:416ms;animation-duration:416ms}.anim-duration-417{-webkit-animation-duration:417ms;animation-duration:417ms}.anim-duration-418{-webkit-animation-duration:418ms;animation-duration:418ms}.anim-duration-419{-webkit-animation-duration:419ms;animation-duration:419ms}.anim-duration-420{-webkit-animation-duration:.42s;animation-duration:.42s}.anim-duration-421{-webkit-animation-duration:421ms;animation-duration:421ms}.anim-duration-422{-webkit-animation-duration:422ms;animation-duration:422ms}.anim-duration-423{-webkit-animation-duration:423ms;animation-duration:423ms}.anim-duration-424{-webkit-animation-duration:424ms;animation-duration:424ms}.anim-duration-425{-webkit-animation-duration:425ms;animation-duration:425ms}.anim-duration-426{-webkit-animation-duration:426ms;animation-duration:426ms}.anim-duration-427{-webkit-animation-duration:427ms;animation-duration:427ms}.anim-duration-428{-webkit-animation-duration:428ms;animation-duration:428ms}.anim-duration-429{-webkit-animation-duration:429ms;animation-duration:429ms}.anim-duration-430{-webkit-animation-duration:.43s;animation-duration:.43s}.anim-duration-431{-webkit-animation-duration:431ms;animation-duration:431ms}.anim-duration-432{-webkit-animation-duration:432ms;animation-duration:432ms}.anim-duration-433{-webkit-animation-duration:433ms;animation-duration:433ms}.anim-duration-434{-webkit-animation-duration:434ms;animation-duration:434ms}.anim-duration-435{-webkit-animation-duration:435ms;animation-duration:435ms}.anim-duration-436{-webkit-animation-duration:436ms;animation-duration:436ms}.anim-duration-437{-webkit-animation-duration:437ms;animation-duration:437ms}.anim-duration-438{-webkit-animation-duration:438ms;animation-duration:438ms}.anim-duration-439{-webkit-animation-duration:439ms;animation-duration:439ms}.anim-duration-440{-webkit-animation-duration:.44s;animation-duration:.44s}.anim-duration-441{-webkit-animation-duration:441ms;animation-duration:441ms}.anim-duration-442{-webkit-animation-duration:442ms;animation-duration:442ms}.anim-duration-443{-webkit-animation-duration:443ms;animation-duration:443ms}.anim-duration-444{-webkit-animation-duration:444ms;animation-duration:444ms}.anim-duration-445{-webkit-animation-duration:445ms;animation-duration:445ms}.anim-duration-446{-webkit-animation-duration:446ms;animation-duration:446ms}.anim-duration-447{-webkit-animation-duration:447ms;animation-duration:447ms}.anim-duration-448{-webkit-animation-duration:448ms;animation-duration:448ms}.anim-duration-449{-webkit-animation-duration:449ms;animation-duration:449ms}.anim-duration-450{-webkit-animation-duration:.45s;animation-duration:.45s}.anim-duration-451{-webkit-animation-duration:451ms;animation-duration:451ms}.anim-duration-452{-webkit-animation-duration:452ms;animation-duration:452ms}.anim-duration-453{-webkit-animation-duration:453ms;animation-duration:453ms}.anim-duration-454{-webkit-animation-duration:454ms;animation-duration:454ms}.anim-duration-455{-webkit-animation-duration:455ms;animation-duration:455ms}.anim-duration-456{-webkit-animation-duration:456ms;animation-duration:456ms}.anim-duration-457{-webkit-animation-duration:457ms;animation-duration:457ms}.anim-duration-458{-webkit-animation-duration:458ms;animation-duration:458ms}.anim-duration-459{-webkit-animation-duration:459ms;animation-duration:459ms}.anim-duration-460{-webkit-animation-duration:.46s;animation-duration:.46s}.anim-duration-461{-webkit-animation-duration:461ms;animation-duration:461ms}.anim-duration-462{-webkit-animation-duration:462ms;animation-duration:462ms}.anim-duration-463{-webkit-animation-duration:463ms;animation-duration:463ms}.anim-duration-464{-webkit-animation-duration:464ms;animation-duration:464ms}.anim-duration-465{-webkit-animation-duration:465ms;animation-duration:465ms}.anim-duration-466{-webkit-animation-duration:466ms;animation-duration:466ms}.anim-duration-467{-webkit-animation-duration:467ms;animation-duration:467ms}.anim-duration-468{-webkit-animation-duration:468ms;animation-duration:468ms}.anim-duration-469{-webkit-animation-duration:469ms;animation-duration:469ms}.anim-duration-470{-webkit-animation-duration:.47s;animation-duration:.47s}.anim-duration-471{-webkit-animation-duration:471ms;animation-duration:471ms}.anim-duration-472{-webkit-animation-duration:472ms;animation-duration:472ms}.anim-duration-473{-webkit-animation-duration:473ms;animation-duration:473ms}.anim-duration-474{-webkit-animation-duration:474ms;animation-duration:474ms}.anim-duration-475{-webkit-animation-duration:475ms;animation-duration:475ms}.anim-duration-476{-webkit-animation-duration:476ms;animation-duration:476ms}.anim-duration-477{-webkit-animation-duration:477ms;animation-duration:477ms}.anim-duration-478{-webkit-animation-duration:478ms;animation-duration:478ms}.anim-duration-479{-webkit-animation-duration:479ms;animation-duration:479ms}.anim-duration-480{-webkit-animation-duration:.48s;animation-duration:.48s}.anim-duration-481{-webkit-animation-duration:481ms;animation-duration:481ms}.anim-duration-482{-webkit-animation-duration:482ms;animation-duration:482ms}.anim-duration-483{-webkit-animation-duration:483ms;animation-duration:483ms}.anim-duration-484{-webkit-animation-duration:484ms;animation-duration:484ms}.anim-duration-485{-webkit-animation-duration:485ms;animation-duration:485ms}.anim-duration-486{-webkit-animation-duration:486ms;animation-duration:486ms}.anim-duration-487{-webkit-animation-duration:487ms;animation-duration:487ms}.anim-duration-488{-webkit-animation-duration:488ms;animation-duration:488ms}.anim-duration-489{-webkit-animation-duration:489ms;animation-duration:489ms}.anim-duration-490{-webkit-animation-duration:.49s;animation-duration:.49s}.anim-duration-491{-webkit-animation-duration:491ms;animation-duration:491ms}.anim-duration-492{-webkit-animation-duration:492ms;animation-duration:492ms}.anim-duration-493{-webkit-animation-duration:493ms;animation-duration:493ms}.anim-duration-494{-webkit-animation-duration:494ms;animation-duration:494ms}.anim-duration-495{-webkit-animation-duration:495ms;animation-duration:495ms}.anim-duration-496{-webkit-animation-duration:496ms;animation-duration:496ms}.anim-duration-497{-webkit-animation-duration:497ms;animation-duration:497ms}.anim-duration-498{-webkit-animation-duration:498ms;animation-duration:498ms}.anim-duration-499{-webkit-animation-duration:499ms;animation-duration:499ms}.anim-duration-500{-webkit-animation-duration:.5s;animation-duration:.5s}.anim-duration-501{-webkit-animation-duration:501ms;animation-duration:501ms}.anim-duration-502{-webkit-animation-duration:502ms;animation-duration:502ms}.anim-duration-503{-webkit-animation-duration:503ms;animation-duration:503ms}.anim-duration-504{-webkit-animation-duration:504ms;animation-duration:504ms}.anim-duration-505{-webkit-animation-duration:505ms;animation-duration:505ms}.anim-duration-506{-webkit-animation-duration:506ms;animation-duration:506ms}.anim-duration-507{-webkit-animation-duration:507ms;animation-duration:507ms}.anim-duration-508{-webkit-animation-duration:508ms;animation-duration:508ms}.anim-duration-509{-webkit-animation-duration:509ms;animation-duration:509ms}.anim-duration-510{-webkit-animation-duration:.51s;animation-duration:.51s}.anim-duration-511{-webkit-animation-duration:511ms;animation-duration:511ms}.anim-duration-512{-webkit-animation-duration:512ms;animation-duration:512ms}.anim-duration-513{-webkit-animation-duration:513ms;animation-duration:513ms}.anim-duration-514{-webkit-animation-duration:514ms;animation-duration:514ms}.anim-duration-515{-webkit-animation-duration:515ms;animation-duration:515ms}.anim-duration-516{-webkit-animation-duration:516ms;animation-duration:516ms}.anim-duration-517{-webkit-animation-duration:517ms;animation-duration:517ms}.anim-duration-518{-webkit-animation-duration:518ms;animation-duration:518ms}.anim-duration-519{-webkit-animation-duration:519ms;animation-duration:519ms}.anim-duration-520{-webkit-animation-duration:.52s;animation-duration:.52s}.anim-duration-521{-webkit-animation-duration:521ms;animation-duration:521ms}.anim-duration-522{-webkit-animation-duration:522ms;animation-duration:522ms}.anim-duration-523{-webkit-animation-duration:523ms;animation-duration:523ms}.anim-duration-524{-webkit-animation-duration:524ms;animation-duration:524ms}.anim-duration-525{-webkit-animation-duration:525ms;animation-duration:525ms}.anim-duration-526{-webkit-animation-duration:526ms;animation-duration:526ms}.anim-duration-527{-webkit-animation-duration:527ms;animation-duration:527ms}.anim-duration-528{-webkit-animation-duration:528ms;animation-duration:528ms}.anim-duration-529{-webkit-animation-duration:529ms;animation-duration:529ms}.anim-duration-530{-webkit-animation-duration:.53s;animation-duration:.53s}.anim-duration-531{-webkit-animation-duration:531ms;animation-duration:531ms}.anim-duration-532{-webkit-animation-duration:532ms;animation-duration:532ms}.anim-duration-533{-webkit-animation-duration:533ms;animation-duration:533ms}.anim-duration-534{-webkit-animation-duration:534ms;animation-duration:534ms}.anim-duration-535{-webkit-animation-duration:535ms;animation-duration:535ms}.anim-duration-536{-webkit-animation-duration:536ms;animation-duration:536ms}.anim-duration-537{-webkit-animation-duration:537ms;animation-duration:537ms}.anim-duration-538{-webkit-animation-duration:538ms;animation-duration:538ms}.anim-duration-539{-webkit-animation-duration:539ms;animation-duration:539ms}.anim-duration-540{-webkit-animation-duration:.54s;animation-duration:.54s}.anim-duration-541{-webkit-animation-duration:541ms;animation-duration:541ms}.anim-duration-542{-webkit-animation-duration:542ms;animation-duration:542ms}.anim-duration-543{-webkit-animation-duration:543ms;animation-duration:543ms}.anim-duration-544{-webkit-animation-duration:544ms;animation-duration:544ms}.anim-duration-545{-webkit-animation-duration:545ms;animation-duration:545ms}.anim-duration-546{-webkit-animation-duration:546ms;animation-duration:546ms}.anim-duration-547{-webkit-animation-duration:547ms;animation-duration:547ms}.anim-duration-548{-webkit-animation-duration:548ms;animation-duration:548ms}.anim-duration-549{-webkit-animation-duration:549ms;animation-duration:549ms}.anim-duration-550{-webkit-animation-duration:.55s;animation-duration:.55s}.anim-duration-551{-webkit-animation-duration:551ms;animation-duration:551ms}.anim-duration-552{-webkit-animation-duration:552ms;animation-duration:552ms}.anim-duration-553{-webkit-animation-duration:553ms;animation-duration:553ms}.anim-duration-554{-webkit-animation-duration:554ms;animation-duration:554ms}.anim-duration-555{-webkit-animation-duration:555ms;animation-duration:555ms}.anim-duration-556{-webkit-animation-duration:556ms;animation-duration:556ms}.anim-duration-557{-webkit-animation-duration:557ms;animation-duration:557ms}.anim-duration-558{-webkit-animation-duration:558ms;animation-duration:558ms}.anim-duration-559{-webkit-animation-duration:559ms;animation-duration:559ms}.anim-duration-560{-webkit-animation-duration:.56s;animation-duration:.56s}.anim-duration-561{-webkit-animation-duration:561ms;animation-duration:561ms}.anim-duration-562{-webkit-animation-duration:562ms;animation-duration:562ms}.anim-duration-563{-webkit-animation-duration:563ms;animation-duration:563ms}.anim-duration-564{-webkit-animation-duration:564ms;animation-duration:564ms}.anim-duration-565{-webkit-animation-duration:565ms;animation-duration:565ms}.anim-duration-566{-webkit-animation-duration:566ms;animation-duration:566ms}.anim-duration-567{-webkit-animation-duration:567ms;animation-duration:567ms}.anim-duration-568{-webkit-animation-duration:568ms;animation-duration:568ms}.anim-duration-569{-webkit-animation-duration:569ms;animation-duration:569ms}.anim-duration-570{-webkit-animation-duration:.57s;animation-duration:.57s}.anim-duration-571{-webkit-animation-duration:571ms;animation-duration:571ms}.anim-duration-572{-webkit-animation-duration:572ms;animation-duration:572ms}.anim-duration-573{-webkit-animation-duration:573ms;animation-duration:573ms}.anim-duration-574{-webkit-animation-duration:574ms;animation-duration:574ms}.anim-duration-575{-webkit-animation-duration:575ms;animation-duration:575ms}.anim-duration-576{-webkit-animation-duration:576ms;animation-duration:576ms}.anim-duration-577{-webkit-animation-duration:577ms;animation-duration:577ms}.anim-duration-578{-webkit-animation-duration:578ms;animation-duration:578ms}.anim-duration-579{-webkit-animation-duration:579ms;animation-duration:579ms}.anim-duration-580{-webkit-animation-duration:.58s;animation-duration:.58s}.anim-duration-581{-webkit-animation-duration:581ms;animation-duration:581ms}.anim-duration-582{-webkit-animation-duration:582ms;animation-duration:582ms}.anim-duration-583{-webkit-animation-duration:583ms;animation-duration:583ms}.anim-duration-584{-webkit-animation-duration:584ms;animation-duration:584ms}.anim-duration-585{-webkit-animation-duration:585ms;animation-duration:585ms}.anim-duration-586{-webkit-animation-duration:586ms;animation-duration:586ms}.anim-duration-587{-webkit-animation-duration:587ms;animation-duration:587ms}.anim-duration-588{-webkit-animation-duration:588ms;animation-duration:588ms}.anim-duration-589{-webkit-animation-duration:589ms;animation-duration:589ms}.anim-duration-590{-webkit-animation-duration:.59s;animation-duration:.59s}.anim-duration-591{-webkit-animation-duration:591ms;animation-duration:591ms}.anim-duration-592{-webkit-animation-duration:592ms;animation-duration:592ms}.anim-duration-593{-webkit-animation-duration:593ms;animation-duration:593ms}.anim-duration-594{-webkit-animation-duration:594ms;animation-duration:594ms}.anim-duration-595{-webkit-animation-duration:595ms;animation-duration:595ms}.anim-duration-596{-webkit-animation-duration:596ms;animation-duration:596ms}.anim-duration-597{-webkit-animation-duration:597ms;animation-duration:597ms}.anim-duration-598{-webkit-animation-duration:598ms;animation-duration:598ms}.anim-duration-599{-webkit-animation-duration:599ms;animation-duration:599ms}.anim-duration-600{-webkit-animation-duration:.6s;animation-duration:.6s}.anim-duration-601{-webkit-animation-duration:601ms;animation-duration:601ms}.anim-duration-602{-webkit-animation-duration:602ms;animation-duration:602ms}.anim-duration-603{-webkit-animation-duration:603ms;animation-duration:603ms}.anim-duration-604{-webkit-animation-duration:604ms;animation-duration:604ms}.anim-duration-605{-webkit-animation-duration:605ms;animation-duration:605ms}.anim-duration-606{-webkit-animation-duration:606ms;animation-duration:606ms}.anim-duration-607{-webkit-animation-duration:607ms;animation-duration:607ms}.anim-duration-608{-webkit-animation-duration:608ms;animation-duration:608ms}.anim-duration-609{-webkit-animation-duration:609ms;animation-duration:609ms}.anim-duration-610{-webkit-animation-duration:.61s;animation-duration:.61s}.anim-duration-611{-webkit-animation-duration:611ms;animation-duration:611ms}.anim-duration-612{-webkit-animation-duration:612ms;animation-duration:612ms}.anim-duration-613{-webkit-animation-duration:613ms;animation-duration:613ms}.anim-duration-614{-webkit-animation-duration:614ms;animation-duration:614ms}.anim-duration-615{-webkit-animation-duration:615ms;animation-duration:615ms}.anim-duration-616{-webkit-animation-duration:616ms;animation-duration:616ms}.anim-duration-617{-webkit-animation-duration:617ms;animation-duration:617ms}.anim-duration-618{-webkit-animation-duration:618ms;animation-duration:618ms}.anim-duration-619{-webkit-animation-duration:619ms;animation-duration:619ms}.anim-duration-620{-webkit-animation-duration:.62s;animation-duration:.62s}.anim-duration-621{-webkit-animation-duration:621ms;animation-duration:621ms}.anim-duration-622{-webkit-animation-duration:622ms;animation-duration:622ms}.anim-duration-623{-webkit-animation-duration:623ms;animation-duration:623ms}.anim-duration-624{-webkit-animation-duration:624ms;animation-duration:624ms}.anim-duration-625{-webkit-animation-duration:625ms;animation-duration:625ms}.anim-duration-626{-webkit-animation-duration:626ms;animation-duration:626ms}.anim-duration-627{-webkit-animation-duration:627ms;animation-duration:627ms}.anim-duration-628{-webkit-animation-duration:628ms;animation-duration:628ms}.anim-duration-629{-webkit-animation-duration:629ms;animation-duration:629ms}.anim-duration-630{-webkit-animation-duration:.63s;animation-duration:.63s}.anim-duration-631{-webkit-animation-duration:631ms;animation-duration:631ms}.anim-duration-632{-webkit-animation-duration:632ms;animation-duration:632ms}.anim-duration-633{-webkit-animation-duration:633ms;animation-duration:633ms}.anim-duration-634{-webkit-animation-duration:634ms;animation-duration:634ms}.anim-duration-635{-webkit-animation-duration:635ms;animation-duration:635ms}.anim-duration-636{-webkit-animation-duration:636ms;animation-duration:636ms}.anim-duration-637{-webkit-animation-duration:637ms;animation-duration:637ms}.anim-duration-638{-webkit-animation-duration:638ms;animation-duration:638ms}.anim-duration-639{-webkit-animation-duration:639ms;animation-duration:639ms}.anim-duration-640{-webkit-animation-duration:.64s;animation-duration:.64s}.anim-duration-641{-webkit-animation-duration:641ms;animation-duration:641ms}.anim-duration-642{-webkit-animation-duration:642ms;animation-duration:642ms}.anim-duration-643{-webkit-animation-duration:643ms;animation-duration:643ms}.anim-duration-644{-webkit-animation-duration:644ms;animation-duration:644ms}.anim-duration-645{-webkit-animation-duration:645ms;animation-duration:645ms}.anim-duration-646{-webkit-animation-duration:646ms;animation-duration:646ms}.anim-duration-647{-webkit-animation-duration:647ms;animation-duration:647ms}.anim-duration-648{-webkit-animation-duration:648ms;animation-duration:648ms}.anim-duration-649{-webkit-animation-duration:649ms;animation-duration:649ms}.anim-duration-650{-webkit-animation-duration:.65s;animation-duration:.65s}.anim-duration-651{-webkit-animation-duration:651ms;animation-duration:651ms}.anim-duration-652{-webkit-animation-duration:652ms;animation-duration:652ms}.anim-duration-653{-webkit-animation-duration:653ms;animation-duration:653ms}.anim-duration-654{-webkit-animation-duration:654ms;animation-duration:654ms}.anim-duration-655{-webkit-animation-duration:655ms;animation-duration:655ms}.anim-duration-656{-webkit-animation-duration:656ms;animation-duration:656ms}.anim-duration-657{-webkit-animation-duration:657ms;animation-duration:657ms}.anim-duration-658{-webkit-animation-duration:658ms;animation-duration:658ms}.anim-duration-659{-webkit-animation-duration:659ms;animation-duration:659ms}.anim-duration-660{-webkit-animation-duration:.66s;animation-duration:.66s}.anim-duration-661{-webkit-animation-duration:661ms;animation-duration:661ms}.anim-duration-662{-webkit-animation-duration:662ms;animation-duration:662ms}.anim-duration-663{-webkit-animation-duration:663ms;animation-duration:663ms}.anim-duration-664{-webkit-animation-duration:664ms;animation-duration:664ms}.anim-duration-665{-webkit-animation-duration:665ms;animation-duration:665ms}.anim-duration-666{-webkit-animation-duration:666ms;animation-duration:666ms}.anim-duration-667{-webkit-animation-duration:667ms;animation-duration:667ms}.anim-duration-668{-webkit-animation-duration:668ms;animation-duration:668ms}.anim-duration-669{-webkit-animation-duration:669ms;animation-duration:669ms}.anim-duration-670{-webkit-animation-duration:.67s;animation-duration:.67s}.anim-duration-671{-webkit-animation-duration:671ms;animation-duration:671ms}.anim-duration-672{-webkit-animation-duration:672ms;animation-duration:672ms}.anim-duration-673{-webkit-animation-duration:673ms;animation-duration:673ms}.anim-duration-674{-webkit-animation-duration:674ms;animation-duration:674ms}.anim-duration-675{-webkit-animation-duration:675ms;animation-duration:675ms}.anim-duration-676{-webkit-animation-duration:676ms;animation-duration:676ms}.anim-duration-677{-webkit-animation-duration:677ms;animation-duration:677ms}.anim-duration-678{-webkit-animation-duration:678ms;animation-duration:678ms}.anim-duration-679{-webkit-animation-duration:679ms;animation-duration:679ms}.anim-duration-680{-webkit-animation-duration:.68s;animation-duration:.68s}.anim-duration-681{-webkit-animation-duration:681ms;animation-duration:681ms}.anim-duration-682{-webkit-animation-duration:682ms;animation-duration:682ms}.anim-duration-683{-webkit-animation-duration:683ms;animation-duration:683ms}.anim-duration-684{-webkit-animation-duration:684ms;animation-duration:684ms}.anim-duration-685{-webkit-animation-duration:685ms;animation-duration:685ms}.anim-duration-686{-webkit-animation-duration:686ms;animation-duration:686ms}.anim-duration-687{-webkit-animation-duration:687ms;animation-duration:687ms}.anim-duration-688{-webkit-animation-duration:688ms;animation-duration:688ms}.anim-duration-689{-webkit-animation-duration:689ms;animation-duration:689ms}.anim-duration-690{-webkit-animation-duration:.69s;animation-duration:.69s}.anim-duration-691{-webkit-animation-duration:691ms;animation-duration:691ms}.anim-duration-692{-webkit-animation-duration:692ms;animation-duration:692ms}.anim-duration-693{-webkit-animation-duration:693ms;animation-duration:693ms}.anim-duration-694{-webkit-animation-duration:694ms;animation-duration:694ms}.anim-duration-695{-webkit-animation-duration:695ms;animation-duration:695ms}.anim-duration-696{-webkit-animation-duration:696ms;animation-duration:696ms}.anim-duration-697{-webkit-animation-duration:697ms;animation-duration:697ms}.anim-duration-698{-webkit-animation-duration:698ms;animation-duration:698ms}.anim-duration-699{-webkit-animation-duration:699ms;animation-duration:699ms}.anim-duration-700{-webkit-animation-duration:.7s;animation-duration:.7s}.anim-duration-701{-webkit-animation-duration:701ms;animation-duration:701ms}.anim-duration-702{-webkit-animation-duration:702ms;animation-duration:702ms}.anim-duration-703{-webkit-animation-duration:703ms;animation-duration:703ms}.anim-duration-704{-webkit-animation-duration:704ms;animation-duration:704ms}.anim-duration-705{-webkit-animation-duration:705ms;animation-duration:705ms}.anim-duration-706{-webkit-animation-duration:706ms;animation-duration:706ms}.anim-duration-707{-webkit-animation-duration:707ms;animation-duration:707ms}.anim-duration-708{-webkit-animation-duration:708ms;animation-duration:708ms}.anim-duration-709{-webkit-animation-duration:709ms;animation-duration:709ms}.anim-duration-710{-webkit-animation-duration:.71s;animation-duration:.71s}.anim-duration-711{-webkit-animation-duration:711ms;animation-duration:711ms}.anim-duration-712{-webkit-animation-duration:712ms;animation-duration:712ms}.anim-duration-713{-webkit-animation-duration:713ms;animation-duration:713ms}.anim-duration-714{-webkit-animation-duration:714ms;animation-duration:714ms}.anim-duration-715{-webkit-animation-duration:715ms;animation-duration:715ms}.anim-duration-716{-webkit-animation-duration:716ms;animation-duration:716ms}.anim-duration-717{-webkit-animation-duration:717ms;animation-duration:717ms}.anim-duration-718{-webkit-animation-duration:718ms;animation-duration:718ms}.anim-duration-719{-webkit-animation-duration:719ms;animation-duration:719ms}.anim-duration-720{-webkit-animation-duration:.72s;animation-duration:.72s}.anim-duration-721{-webkit-animation-duration:721ms;animation-duration:721ms}.anim-duration-722{-webkit-animation-duration:722ms;animation-duration:722ms}.anim-duration-723{-webkit-animation-duration:723ms;animation-duration:723ms}.anim-duration-724{-webkit-animation-duration:724ms;animation-duration:724ms}.anim-duration-725{-webkit-animation-duration:725ms;animation-duration:725ms}.anim-duration-726{-webkit-animation-duration:726ms;animation-duration:726ms}.anim-duration-727{-webkit-animation-duration:727ms;animation-duration:727ms}.anim-duration-728{-webkit-animation-duration:728ms;animation-duration:728ms}.anim-duration-729{-webkit-animation-duration:729ms;animation-duration:729ms}.anim-duration-730{-webkit-animation-duration:.73s;animation-duration:.73s}.anim-duration-731{-webkit-animation-duration:731ms;animation-duration:731ms}.anim-duration-732{-webkit-animation-duration:732ms;animation-duration:732ms}.anim-duration-733{-webkit-animation-duration:733ms;animation-duration:733ms}.anim-duration-734{-webkit-animation-duration:734ms;animation-duration:734ms}.anim-duration-735{-webkit-animation-duration:735ms;animation-duration:735ms}.anim-duration-736{-webkit-animation-duration:736ms;animation-duration:736ms}.anim-duration-737{-webkit-animation-duration:737ms;animation-duration:737ms}.anim-duration-738{-webkit-animation-duration:738ms;animation-duration:738ms}.anim-duration-739{-webkit-animation-duration:739ms;animation-duration:739ms}.anim-duration-740{-webkit-animation-duration:.74s;animation-duration:.74s}.anim-duration-741{-webkit-animation-duration:741ms;animation-duration:741ms}.anim-duration-742{-webkit-animation-duration:742ms;animation-duration:742ms}.anim-duration-743{-webkit-animation-duration:743ms;animation-duration:743ms}.anim-duration-744{-webkit-animation-duration:744ms;animation-duration:744ms}.anim-duration-745{-webkit-animation-duration:745ms;animation-duration:745ms}.anim-duration-746{-webkit-animation-duration:746ms;animation-duration:746ms}.anim-duration-747{-webkit-animation-duration:747ms;animation-duration:747ms}.anim-duration-748{-webkit-animation-duration:748ms;animation-duration:748ms}.anim-duration-749{-webkit-animation-duration:749ms;animation-duration:749ms}.anim-duration-750{-webkit-animation-duration:.75s;animation-duration:.75s}.anim-duration-751{-webkit-animation-duration:751ms;animation-duration:751ms}.anim-duration-752{-webkit-animation-duration:752ms;animation-duration:752ms}.anim-duration-753{-webkit-animation-duration:753ms;animation-duration:753ms}.anim-duration-754{-webkit-animation-duration:754ms;animation-duration:754ms}.anim-duration-755{-webkit-animation-duration:755ms;animation-duration:755ms}.anim-duration-756{-webkit-animation-duration:756ms;animation-duration:756ms}.anim-duration-757{-webkit-animation-duration:757ms;animation-duration:757ms}.anim-duration-758{-webkit-animation-duration:758ms;animation-duration:758ms}.anim-duration-759{-webkit-animation-duration:759ms;animation-duration:759ms}.anim-duration-760{-webkit-animation-duration:.76s;animation-duration:.76s}.anim-duration-761{-webkit-animation-duration:761ms;animation-duration:761ms}.anim-duration-762{-webkit-animation-duration:762ms;animation-duration:762ms}.anim-duration-763{-webkit-animation-duration:763ms;animation-duration:763ms}.anim-duration-764{-webkit-animation-duration:764ms;animation-duration:764ms}.anim-duration-765{-webkit-animation-duration:765ms;animation-duration:765ms}.anim-duration-766{-webkit-animation-duration:766ms;animation-duration:766ms}.anim-duration-767{-webkit-animation-duration:767ms;animation-duration:767ms}.anim-duration-768{-webkit-animation-duration:768ms;animation-duration:768ms}.anim-duration-769{-webkit-animation-duration:769ms;animation-duration:769ms}.anim-duration-770{-webkit-animation-duration:.77s;animation-duration:.77s}.anim-duration-771{-webkit-animation-duration:771ms;animation-duration:771ms}.anim-duration-772{-webkit-animation-duration:772ms;animation-duration:772ms}.anim-duration-773{-webkit-animation-duration:773ms;animation-duration:773ms}.anim-duration-774{-webkit-animation-duration:774ms;animation-duration:774ms}.anim-duration-775{-webkit-animation-duration:775ms;animation-duration:775ms}.anim-duration-776{-webkit-animation-duration:776ms;animation-duration:776ms}.anim-duration-777{-webkit-animation-duration:777ms;animation-duration:777ms}.anim-duration-778{-webkit-animation-duration:778ms;animation-duration:778ms}.anim-duration-779{-webkit-animation-duration:779ms;animation-duration:779ms}.anim-duration-780{-webkit-animation-duration:.78s;animation-duration:.78s}.anim-duration-781{-webkit-animation-duration:781ms;animation-duration:781ms}.anim-duration-782{-webkit-animation-duration:782ms;animation-duration:782ms}.anim-duration-783{-webkit-animation-duration:783ms;animation-duration:783ms}.anim-duration-784{-webkit-animation-duration:784ms;animation-duration:784ms}.anim-duration-785{-webkit-animation-duration:785ms;animation-duration:785ms}.anim-duration-786{-webkit-animation-duration:786ms;animation-duration:786ms}.anim-duration-787{-webkit-animation-duration:787ms;animation-duration:787ms}.anim-duration-788{-webkit-animation-duration:788ms;animation-duration:788ms}.anim-duration-789{-webkit-animation-duration:789ms;animation-duration:789ms}.anim-duration-790{-webkit-animation-duration:.79s;animation-duration:.79s}.anim-duration-791{-webkit-animation-duration:791ms;animation-duration:791ms}.anim-duration-792{-webkit-animation-duration:792ms;animation-duration:792ms}.anim-duration-793{-webkit-animation-duration:793ms;animation-duration:793ms}.anim-duration-794{-webkit-animation-duration:794ms;animation-duration:794ms}.anim-duration-795{-webkit-animation-duration:795ms;animation-duration:795ms}.anim-duration-796{-webkit-animation-duration:796ms;animation-duration:796ms}.anim-duration-797{-webkit-animation-duration:797ms;animation-duration:797ms}.anim-duration-798{-webkit-animation-duration:798ms;animation-duration:798ms}.anim-duration-799{-webkit-animation-duration:799ms;animation-duration:799ms}.anim-duration-800{-webkit-animation-duration:.8s;animation-duration:.8s}.anim-duration-801{-webkit-animation-duration:801ms;animation-duration:801ms}.anim-duration-802{-webkit-animation-duration:802ms;animation-duration:802ms}.anim-duration-803{-webkit-animation-duration:803ms;animation-duration:803ms}.anim-duration-804{-webkit-animation-duration:804ms;animation-duration:804ms}.anim-duration-805{-webkit-animation-duration:805ms;animation-duration:805ms}.anim-duration-806{-webkit-animation-duration:806ms;animation-duration:806ms}.anim-duration-807{-webkit-animation-duration:807ms;animation-duration:807ms}.anim-duration-808{-webkit-animation-duration:808ms;animation-duration:808ms}.anim-duration-809{-webkit-animation-duration:809ms;animation-duration:809ms}.anim-duration-810{-webkit-animation-duration:.81s;animation-duration:.81s}.anim-duration-811{-webkit-animation-duration:811ms;animation-duration:811ms}.anim-duration-812{-webkit-animation-duration:812ms;animation-duration:812ms}.anim-duration-813{-webkit-animation-duration:813ms;animation-duration:813ms}.anim-duration-814{-webkit-animation-duration:814ms;animation-duration:814ms}.anim-duration-815{-webkit-animation-duration:815ms;animation-duration:815ms}.anim-duration-816{-webkit-animation-duration:816ms;animation-duration:816ms}.anim-duration-817{-webkit-animation-duration:817ms;animation-duration:817ms}.anim-duration-818{-webkit-animation-duration:818ms;animation-duration:818ms}.anim-duration-819{-webkit-animation-duration:819ms;animation-duration:819ms}.anim-duration-820{-webkit-animation-duration:.82s;animation-duration:.82s}.anim-duration-821{-webkit-animation-duration:821ms;animation-duration:821ms}.anim-duration-822{-webkit-animation-duration:822ms;animation-duration:822ms}.anim-duration-823{-webkit-animation-duration:823ms;animation-duration:823ms}.anim-duration-824{-webkit-animation-duration:824ms;animation-duration:824ms}.anim-duration-825{-webkit-animation-duration:825ms;animation-duration:825ms}.anim-duration-826{-webkit-animation-duration:826ms;animation-duration:826ms}.anim-duration-827{-webkit-animation-duration:827ms;animation-duration:827ms}.anim-duration-828{-webkit-animation-duration:828ms;animation-duration:828ms}.anim-duration-829{-webkit-animation-duration:829ms;animation-duration:829ms}.anim-duration-830{-webkit-animation-duration:.83s;animation-duration:.83s}.anim-duration-831{-webkit-animation-duration:831ms;animation-duration:831ms}.anim-duration-832{-webkit-animation-duration:832ms;animation-duration:832ms}.anim-duration-833{-webkit-animation-duration:833ms;animation-duration:833ms}.anim-duration-834{-webkit-animation-duration:834ms;animation-duration:834ms}.anim-duration-835{-webkit-animation-duration:835ms;animation-duration:835ms}.anim-duration-836{-webkit-animation-duration:836ms;animation-duration:836ms}.anim-duration-837{-webkit-animation-duration:837ms;animation-duration:837ms}.anim-duration-838{-webkit-animation-duration:838ms;animation-duration:838ms}.anim-duration-839{-webkit-animation-duration:839ms;animation-duration:839ms}.anim-duration-840{-webkit-animation-duration:.84s;animation-duration:.84s}.anim-duration-841{-webkit-animation-duration:841ms;animation-duration:841ms}.anim-duration-842{-webkit-animation-duration:842ms;animation-duration:842ms}.anim-duration-843{-webkit-animation-duration:843ms;animation-duration:843ms}.anim-duration-844{-webkit-animation-duration:844ms;animation-duration:844ms}.anim-duration-845{-webkit-animation-duration:845ms;animation-duration:845ms}.anim-duration-846{-webkit-animation-duration:846ms;animation-duration:846ms}.anim-duration-847{-webkit-animation-duration:847ms;animation-duration:847ms}.anim-duration-848{-webkit-animation-duration:848ms;animation-duration:848ms}.anim-duration-849{-webkit-animation-duration:849ms;animation-duration:849ms}.anim-duration-850{-webkit-animation-duration:.85s;animation-duration:.85s}.anim-duration-851{-webkit-animation-duration:851ms;animation-duration:851ms}.anim-duration-852{-webkit-animation-duration:852ms;animation-duration:852ms}.anim-duration-853{-webkit-animation-duration:853ms;animation-duration:853ms}.anim-duration-854{-webkit-animation-duration:854ms;animation-duration:854ms}.anim-duration-855{-webkit-animation-duration:855ms;animation-duration:855ms}.anim-duration-856{-webkit-animation-duration:856ms;animation-duration:856ms}.anim-duration-857{-webkit-animation-duration:857ms;animation-duration:857ms}.anim-duration-858{-webkit-animation-duration:858ms;animation-duration:858ms}.anim-duration-859{-webkit-animation-duration:859ms;animation-duration:859ms}.anim-duration-860{-webkit-animation-duration:.86s;animation-duration:.86s}.anim-duration-861{-webkit-animation-duration:861ms;animation-duration:861ms}.anim-duration-862{-webkit-animation-duration:862ms;animation-duration:862ms}.anim-duration-863{-webkit-animation-duration:863ms;animation-duration:863ms}.anim-duration-864{-webkit-animation-duration:864ms;animation-duration:864ms}.anim-duration-865{-webkit-animation-duration:865ms;animation-duration:865ms}.anim-duration-866{-webkit-animation-duration:866ms;animation-duration:866ms}.anim-duration-867{-webkit-animation-duration:867ms;animation-duration:867ms}.anim-duration-868{-webkit-animation-duration:868ms;animation-duration:868ms}.anim-duration-869{-webkit-animation-duration:869ms;animation-duration:869ms}.anim-duration-870{-webkit-animation-duration:.87s;animation-duration:.87s}.anim-duration-871{-webkit-animation-duration:871ms;animation-duration:871ms}.anim-duration-872{-webkit-animation-duration:872ms;animation-duration:872ms}.anim-duration-873{-webkit-animation-duration:873ms;animation-duration:873ms}.anim-duration-874{-webkit-animation-duration:874ms;animation-duration:874ms}.anim-duration-875{-webkit-animation-duration:875ms;animation-duration:875ms}.anim-duration-876{-webkit-animation-duration:876ms;animation-duration:876ms}.anim-duration-877{-webkit-animation-duration:877ms;animation-duration:877ms}.anim-duration-878{-webkit-animation-duration:878ms;animation-duration:878ms}.anim-duration-879{-webkit-animation-duration:879ms;animation-duration:879ms}.anim-duration-880{-webkit-animation-duration:.88s;animation-duration:.88s}.anim-duration-881{-webkit-animation-duration:881ms;animation-duration:881ms}.anim-duration-882{-webkit-animation-duration:882ms;animation-duration:882ms}.anim-duration-883{-webkit-animation-duration:883ms;animation-duration:883ms}.anim-duration-884{-webkit-animation-duration:884ms;animation-duration:884ms}.anim-duration-885{-webkit-animation-duration:885ms;animation-duration:885ms}.anim-duration-886{-webkit-animation-duration:886ms;animation-duration:886ms}.anim-duration-887{-webkit-animation-duration:887ms;animation-duration:887ms}.anim-duration-888{-webkit-animation-duration:888ms;animation-duration:888ms}.anim-duration-889{-webkit-animation-duration:889ms;animation-duration:889ms}.anim-duration-890{-webkit-animation-duration:.89s;animation-duration:.89s}.anim-duration-891{-webkit-animation-duration:891ms;animation-duration:891ms}.anim-duration-892{-webkit-animation-duration:892ms;animation-duration:892ms}.anim-duration-893{-webkit-animation-duration:893ms;animation-duration:893ms}.anim-duration-894{-webkit-animation-duration:894ms;animation-duration:894ms}.anim-duration-895{-webkit-animation-duration:895ms;animation-duration:895ms}.anim-duration-896{-webkit-animation-duration:896ms;animation-duration:896ms}.anim-duration-897{-webkit-animation-duration:897ms;animation-duration:897ms}.anim-duration-898{-webkit-animation-duration:898ms;animation-duration:898ms}.anim-duration-899{-webkit-animation-duration:899ms;animation-duration:899ms}.anim-duration-900{-webkit-animation-duration:.9s;animation-duration:.9s}.anim-duration-901{-webkit-animation-duration:901ms;animation-duration:901ms}.anim-duration-902{-webkit-animation-duration:902ms;animation-duration:902ms}.anim-duration-903{-webkit-animation-duration:903ms;animation-duration:903ms}.anim-duration-904{-webkit-animation-duration:904ms;animation-duration:904ms}.anim-duration-905{-webkit-animation-duration:905ms;animation-duration:905ms}.anim-duration-906{-webkit-animation-duration:906ms;animation-duration:906ms}.anim-duration-907{-webkit-animation-duration:907ms;animation-duration:907ms}.anim-duration-908{-webkit-animation-duration:908ms;animation-duration:908ms}.anim-duration-909{-webkit-animation-duration:909ms;animation-duration:909ms}.anim-duration-910{-webkit-animation-duration:.91s;animation-duration:.91s}.anim-duration-911{-webkit-animation-duration:911ms;animation-duration:911ms}.anim-duration-912{-webkit-animation-duration:912ms;animation-duration:912ms}.anim-duration-913{-webkit-animation-duration:913ms;animation-duration:913ms}.anim-duration-914{-webkit-animation-duration:914ms;animation-duration:914ms}.anim-duration-915{-webkit-animation-duration:915ms;animation-duration:915ms}.anim-duration-916{-webkit-animation-duration:916ms;animation-duration:916ms}.anim-duration-917{-webkit-animation-duration:917ms;animation-duration:917ms}.anim-duration-918{-webkit-animation-duration:918ms;animation-duration:918ms}.anim-duration-919{-webkit-animation-duration:919ms;animation-duration:919ms}.anim-duration-920{-webkit-animation-duration:.92s;animation-duration:.92s}.anim-duration-921{-webkit-animation-duration:921ms;animation-duration:921ms}.anim-duration-922{-webkit-animation-duration:922ms;animation-duration:922ms}.anim-duration-923{-webkit-animation-duration:923ms;animation-duration:923ms}.anim-duration-924{-webkit-animation-duration:924ms;animation-duration:924ms}.anim-duration-925{-webkit-animation-duration:925ms;animation-duration:925ms}.anim-duration-926{-webkit-animation-duration:926ms;animation-duration:926ms}.anim-duration-927{-webkit-animation-duration:927ms;animation-duration:927ms}.anim-duration-928{-webkit-animation-duration:928ms;animation-duration:928ms}.anim-duration-929{-webkit-animation-duration:929ms;animation-duration:929ms}.anim-duration-930{-webkit-animation-duration:.93s;animation-duration:.93s}.anim-duration-931{-webkit-animation-duration:931ms;animation-duration:931ms}.anim-duration-932{-webkit-animation-duration:932ms;animation-duration:932ms}.anim-duration-933{-webkit-animation-duration:933ms;animation-duration:933ms}.anim-duration-934{-webkit-animation-duration:934ms;animation-duration:934ms}.anim-duration-935{-webkit-animation-duration:935ms;animation-duration:935ms}.anim-duration-936{-webkit-animation-duration:936ms;animation-duration:936ms}.anim-duration-937{-webkit-animation-duration:937ms;animation-duration:937ms}.anim-duration-938{-webkit-animation-duration:938ms;animation-duration:938ms}.anim-duration-939{-webkit-animation-duration:939ms;animation-duration:939ms}.anim-duration-940{-webkit-animation-duration:.94s;animation-duration:.94s}.anim-duration-941{-webkit-animation-duration:941ms;animation-duration:941ms}.anim-duration-942{-webkit-animation-duration:942ms;animation-duration:942ms}.anim-duration-943{-webkit-animation-duration:943ms;animation-duration:943ms}.anim-duration-944{-webkit-animation-duration:944ms;animation-duration:944ms}.anim-duration-945{-webkit-animation-duration:945ms;animation-duration:945ms}.anim-duration-946{-webkit-animation-duration:946ms;animation-duration:946ms}.anim-duration-947{-webkit-animation-duration:947ms;animation-duration:947ms}.anim-duration-948{-webkit-animation-duration:948ms;animation-duration:948ms}.anim-duration-949{-webkit-animation-duration:949ms;animation-duration:949ms}.anim-duration-950{-webkit-animation-duration:.95s;animation-duration:.95s}.anim-duration-951{-webkit-animation-duration:951ms;animation-duration:951ms}.anim-duration-952{-webkit-animation-duration:952ms;animation-duration:952ms}.anim-duration-953{-webkit-animation-duration:953ms;animation-duration:953ms}.anim-duration-954{-webkit-animation-duration:954ms;animation-duration:954ms}.anim-duration-955{-webkit-animation-duration:955ms;animation-duration:955ms}.anim-duration-956{-webkit-animation-duration:956ms;animation-duration:956ms}.anim-duration-957{-webkit-animation-duration:957ms;animation-duration:957ms}.anim-duration-958{-webkit-animation-duration:958ms;animation-duration:958ms}.anim-duration-959{-webkit-animation-duration:959ms;animation-duration:959ms}.anim-duration-960{-webkit-animation-duration:.96s;animation-duration:.96s}.anim-duration-961{-webkit-animation-duration:961ms;animation-duration:961ms}.anim-duration-962{-webkit-animation-duration:962ms;animation-duration:962ms}.anim-duration-963{-webkit-animation-duration:963ms;animation-duration:963ms}.anim-duration-964{-webkit-animation-duration:964ms;animation-duration:964ms}.anim-duration-965{-webkit-animation-duration:965ms;animation-duration:965ms}.anim-duration-966{-webkit-animation-duration:966ms;animation-duration:966ms}.anim-duration-967{-webkit-animation-duration:967ms;animation-duration:967ms}.anim-duration-968{-webkit-animation-duration:968ms;animation-duration:968ms}.anim-duration-969{-webkit-animation-duration:969ms;animation-duration:969ms}.anim-duration-970{-webkit-animation-duration:.97s;animation-duration:.97s}.anim-duration-971{-webkit-animation-duration:971ms;animation-duration:971ms}.anim-duration-972{-webkit-animation-duration:972ms;animation-duration:972ms}.anim-duration-973{-webkit-animation-duration:973ms;animation-duration:973ms}.anim-duration-974{-webkit-animation-duration:974ms;animation-duration:974ms}.anim-duration-975{-webkit-animation-duration:975ms;animation-duration:975ms}.anim-duration-976{-webkit-animation-duration:976ms;animation-duration:976ms}.anim-duration-977{-webkit-animation-duration:977ms;animation-duration:977ms}.anim-duration-978{-webkit-animation-duration:978ms;animation-duration:978ms}.anim-duration-979{-webkit-animation-duration:979ms;animation-duration:979ms}.anim-duration-980{-webkit-animation-duration:.98s;animation-duration:.98s}.anim-duration-981{-webkit-animation-duration:981ms;animation-duration:981ms}.anim-duration-982{-webkit-animation-duration:982ms;animation-duration:982ms}.anim-duration-983{-webkit-animation-duration:983ms;animation-duration:983ms}.anim-duration-984{-webkit-animation-duration:984ms;animation-duration:984ms}.anim-duration-985{-webkit-animation-duration:985ms;animation-duration:985ms}.anim-duration-986{-webkit-animation-duration:986ms;animation-duration:986ms}.anim-duration-987{-webkit-animation-duration:987ms;animation-duration:987ms}.anim-duration-988{-webkit-animation-duration:988ms;animation-duration:988ms}.anim-duration-989{-webkit-animation-duration:989ms;animation-duration:989ms}.anim-duration-990{-webkit-animation-duration:.99s;animation-duration:.99s}.anim-duration-991{-webkit-animation-duration:991ms;animation-duration:991ms}.anim-duration-992{-webkit-animation-duration:992ms;animation-duration:992ms}.anim-duration-993{-webkit-animation-duration:993ms;animation-duration:993ms}.anim-duration-994{-webkit-animation-duration:994ms;animation-duration:994ms}.anim-duration-995{-webkit-animation-duration:995ms;animation-duration:995ms}.anim-duration-996{-webkit-animation-duration:996ms;animation-duration:996ms}.anim-duration-997{-webkit-animation-duration:997ms;animation-duration:997ms}.anim-duration-998{-webkit-animation-duration:998ms;animation-duration:998ms}.anim-duration-999{-webkit-animation-duration:999ms;animation-duration:999ms}.anim-duration-1000{-webkit-animation-duration:1s;animation-duration:1s}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:100;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:100;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:100;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:200;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:200;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:200;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:300;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:300;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:300;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:400;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:400;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:400;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:500;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:500;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:500;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:600;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:600;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:600;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:700;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:700;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:700;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:800;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:800;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:800;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:900;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:900;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:900;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:100;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:100;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:100;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:200;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:200;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:200;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:300;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:300;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:300;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:400;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:400;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:400;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:500;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:500;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:500;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:600;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:600;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:600;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:700;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:700;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:700;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:800;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:800;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:800;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:900;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:900;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:900;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}.lab,.lar,.las{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;display:inline-block;font-style:normal;font-variant:normal;line-height:1}@font-face{font-display:auto;font-family:Line Awesome Brands;font-style:normal;font-weight:400;src:url(../fonts/la-brands-400.eot);src:url(../fonts/la-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/la-brands-400.woff2) format("woff2"),url(../fonts/la-brands-400.woff) format("woff"),url(../fonts/la-brands-400.ttf) format("truetype"),url(../fonts/la-brands-400.svg#lineawesome) format("svg")}.lab{font-family:Line Awesome Brands}@font-face{font-display:auto;font-family:Line Awesome Free;font-style:normal;font-weight:400;src:url(../fonts/la-regular-400.eot);src:url(../fonts/la-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/la-regular-400.woff2) format("woff2"),url(../fonts/la-regular-400.woff) format("woff"),url(../fonts/la-regular-400.ttf) format("truetype"),url(../fonts/la-regular-400.svg#lineawesome) format("svg")}.lab,.lar{font-weight:400}@font-face{font-display:auto;font-family:Line Awesome Free;font-style:normal;font-weight:900;src:url(../fonts/la-solid-900.eot);src:url(../fonts/la-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/la-solid-900.woff2) format("woff2"),url(../fonts/la-solid-900.woff) format("woff"),url(../fonts/la-solid-900.ttf) format("truetype"),url(../fonts/la-solid-900.svg#lineawesome) format("svg")}.lar,.las{font-family:Line Awesome Free}.las{font-weight:900}.la-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.la-xs{font-size:.75em}.la-2x{font-size:1em;font-size:2em}.la-3x{font-size:3em}.la-4x{font-size:4em}.la-5x{font-size:5em}.la-6x{font-size:6em}.la-7x{font-size:7em}.la-8x{font-size:8em}.la-9x{font-size:9em}.la-10x{font-size:10em}.la-fw{text-align:center;width:1.25em}.la-ul{list-style-type:none;margin-left:1.4285714286em;padding-left:0}.la-ul>li{position:relative}.la-li{left:-2em;line-height:inherit;position:absolute;text-align:center;width:1.4285714286em}.la-li.la-lg{left:-1.1428571429em}.la-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.la.la-pull-left{margin-right:.3em}.la.la-pull-right{margin-left:.3em}.la.pull-left{margin-right:.3em}.la.pull-right{margin-left:.3em}.la-pull-left{float:left}.la-pull-right{float:right}.la.la-pull-left,.lab.la-pull-left,.lal.la-pull-left,.lar.la-pull-left,.las.la-pull-left{margin-right:.3em}.la.la-pull-right,.lab.la-pull-right,.lal.la-pull-right,.lar.la-pull-right,.las.la-pull-right{margin-left:.3em}.la-spin{-webkit-animation:la-spin 2s linear infinite;animation:la-spin 2s linear infinite}.la-pulse{-webkit-animation:la-spin 1s steps(8) infinite;animation:la-spin 1s steps(8) infinite}@-webkit-keyframes la-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes la-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.la-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.la-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.la-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.la-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.la-flip-vertical{transform:scaleY(-1)}.la-flip-both,.la-flip-horizontal.la-flip-vertical,.la-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.la-flip-both,.la-flip-horizontal.la-flip-vertical{transform:scale(-1)}:root .la-flip-both,:root .la-flip-horizontal,:root .la-flip-vertical,:root .la-rotate-90,:root .la-rotate-180,:root .la-rotate-270{filter:none}.la-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.la-stack-1x,.la-stack-2x{left:0;position:absolute;text-align:center;width:100%}.la-stack-1x{line-height:inherit}.la-stack-2x{font-size:2em}.la-inverse{color:#fff}.la-500px:before{content:""}.la-accessible-icon:before{content:""}.la-accusoft:before{content:""}.la-acquisitions-incorporated:before{content:""}.la-ad:before{content:""}.la-address-book:before{content:""}.la-address-card:before{content:""}.la-adjust:before{content:""}.la-adn:before{content:""}.la-adobe:before{content:""}.la-adversal:before{content:""}.la-affiliatetheme:before{content:""}.la-air-freshener:before{content:""}.la-airbnb:before{content:""}.la-algolia:before{content:""}.la-align-center:before{content:""}.la-align-justify:before{content:""}.la-align-left:before{content:""}.la-align-right:before{content:""}.la-alipay:before{content:""}.la-allergies:before{content:""}.la-amazon:before{content:""}.la-amazon-pay:before{content:""}.la-ambulance:before{content:""}.la-american-sign-language-interpreting:before{content:""}.la-amilia:before{content:""}.la-anchor:before{content:""}.la-android:before{content:""}.la-angellist:before{content:""}.la-angle-double-down:before{content:""}.la-angle-double-left:before{content:""}.la-angle-double-right:before{content:""}.la-angle-double-up:before{content:""}.la-angle-down:before{content:""}.la-angle-left:before{content:""}.la-angle-right:before{content:""}.la-angle-up:before{content:""}.la-angry:before{content:""}.la-angrycreative:before{content:""}.la-angular:before{content:""}.la-ankh:before{content:""}.la-app-store:before{content:""}.la-app-store-ios:before{content:""}.la-apper:before{content:""}.la-apple:before{content:""}.la-apple-alt:before{content:""}.la-apple-pay:before{content:""}.la-archive:before{content:""}.la-archway:before{content:""}.la-arrow-alt-circle-down:before{content:""}.la-arrow-alt-circle-left:before{content:""}.la-arrow-alt-circle-right:before{content:""}.la-arrow-alt-circle-up:before{content:""}.la-arrow-circle-down:before{content:""}.la-arrow-circle-left:before{content:""}.la-arrow-circle-right:before{content:""}.la-arrow-circle-up:before{content:""}.la-arrow-down:before{content:""}.la-arrow-left:before{content:""}.la-arrow-right:before{content:""}.la-arrow-up:before{content:""}.la-arrows-alt:before{content:""}.la-arrows-alt-h:before{content:""}.la-arrows-alt-v:before{content:""}.la-artstation:before{content:""}.la-assistive-listening-systems:before{content:""}.la-asterisk:before{content:""}.la-asymmetrik:before{content:""}.la-at:before{content:""}.la-atlas:before{content:""}.la-atlassian:before{content:""}.la-atom:before{content:""}.la-audible:before{content:""}.la-audio-description:before{content:""}.la-autoprefixer:before{content:""}.la-avianex:before{content:""}.la-aviato:before{content:""}.la-award:before{content:""}.la-aws:before{content:""}.la-baby:before{content:""}.la-baby-carriage:before{content:""}.la-backspace:before{content:""}.la-backward:before{content:""}.la-bacon:before{content:""}.la-balance-scale:before{content:""}.la-balance-scale-left:before{content:""}.la-balance-scale-right:before{content:""}.la-ban:before{content:""}.la-band-aid:before{content:""}.la-bandcamp:before{content:""}.la-barcode:before{content:""}.la-bars:before{content:""}.la-baseball-ball:before{content:""}.la-basketball-ball:before{content:""}.la-bath:before{content:""}.la-battery-empty:before{content:""}.la-battery-full:before{content:""}.la-battery-half:before{content:""}.la-battery-quarter:before{content:""}.la-battery-three-quarters:before{content:""}.la-battle-net:before{content:""}.la-bed:before{content:""}.la-beer:before{content:""}.la-behance:before{content:""}.la-behance-square:before{content:""}.la-bell:before{content:""}.la-bell-slash:before{content:""}.la-bezier-curve:before{content:""}.la-bible:before{content:""}.la-bicycle:before{content:""}.la-biking:before{content:""}.la-bimobject:before{content:""}.la-binoculars:before{content:""}.la-biohazard:before{content:""}.la-birthday-cake:before{content:""}.la-bitbucket:before{content:""}.la-bitcoin:before{content:""}.la-bity:before{content:""}.la-black-tie:before{content:""}.la-blackberry:before{content:""}.la-blender:before{content:""}.la-blender-phone:before{content:""}.la-blind:before{content:""}.la-blog:before{content:""}.la-blogger:before{content:""}.la-blogger-b:before{content:""}.la-bluetooth:before{content:""}.la-bluetooth-b:before{content:""}.la-bold:before{content:""}.la-bolt:before{content:""}.la-bomb:before{content:""}.la-bone:before{content:""}.la-bong:before{content:""}.la-book:before{content:""}.la-book-dead:before{content:""}.la-book-medical:before{content:""}.la-book-open:before{content:""}.la-book-reader:before{content:""}.la-bookmark:before{content:""}.la-bootstrap:before{content:""}.la-border-all:before{content:""}.la-border-none:before{content:""}.la-border-style:before{content:""}.la-bowling-ball:before{content:""}.la-box:before{content:""}.la-box-open:before{content:""}.la-boxes:before{content:""}.la-braille:before{content:""}.la-brain:before{content:""}.la-bread-slice:before{content:""}.la-briefcase:before{content:""}.la-briefcase-medical:before{content:""}.la-broadcast-tower:before{content:""}.la-broom:before{content:""}.la-brush:before{content:""}.la-btc:before{content:""}.la-buffer:before{content:""}.la-bug:before{content:""}.la-building:before{content:""}.la-bullhorn:before{content:""}.la-bullseye:before{content:""}.la-burn:before{content:""}.la-buromobelexperte:before{content:""}.la-bus:before{content:""}.la-bus-alt:before{content:""}.la-business-time:before{content:""}.la-buysellads:before{content:""}.la-calculator:before{content:""}.la-calendar:before{content:""}.la-calendar-alt:before{content:""}.la-calendar-check:before{content:""}.la-calendar-day:before{content:""}.la-calendar-minus:before{content:""}.la-calendar-plus:before{content:""}.la-calendar-times:before{content:""}.la-calendar-week:before{content:""}.la-camera:before{content:""}.la-camera-retro:before{content:""}.la-campground:before{content:""}.la-canadian-maple-leaf:before{content:""}.la-candy-cane:before{content:""}.la-cannabis:before{content:""}.la-capsules:before{content:""}.la-car:before{content:""}.la-car-alt:before{content:""}.la-car-battery:before{content:""}.la-car-crash:before{content:""}.la-car-side:before{content:""}.la-caret-down:before{content:""}.la-caret-left:before{content:""}.la-caret-right:before{content:""}.la-caret-square-down:before{content:""}.la-caret-square-left:before{content:""}.la-caret-square-right:before{content:""}.la-caret-square-up:before{content:""}.la-caret-up:before{content:""}.la-carrot:before{content:""}.la-cart-arrow-down:before{content:""}.la-cart-plus:before{content:""}.la-cash-register:before{content:""}.la-cat:before{content:""}.la-cc-amazon-pay:before{content:""}.la-cc-amex:before{content:""}.la-cc-apple-pay:before{content:""}.la-cc-diners-club:before{content:""}.la-cc-discover:before{content:""}.la-cc-jcb:before{content:""}.la-cc-mastercard:before{content:""}.la-cc-paypal:before{content:""}.la-cc-stripe:before{content:""}.la-cc-visa:before{content:""}.la-centercode:before{content:""}.la-centos:before{content:""}.la-certificate:before{content:""}.la-chair:before{content:""}.la-chalkboard:before{content:""}.la-chalkboard-teacher:before{content:""}.la-charging-station:before{content:""}.la-chart-area:before{content:""}.la-chart-bar:before{content:""}.la-chart-line:before{content:""}.la-chart-pie:before{content:""}.la-check:before{content:""}.la-check-circle:before{content:""}.la-check-double:before{content:""}.la-check-square:before{content:""}.la-cheese:before{content:""}.la-chess:before{content:""}.la-chess-bishop:before{content:""}.la-chess-board:before{content:""}.la-chess-king:before{content:""}.la-chess-knight:before{content:""}.la-chess-pawn:before{content:""}.la-chess-queen:before{content:""}.la-chess-rook:before{content:""}.la-chevron-circle-down:before{content:""}.la-chevron-circle-left:before{content:""}.la-chevron-circle-right:before{content:""}.la-chevron-circle-up:before{content:""}.la-chevron-down:before{content:""}.la-chevron-left:before{content:""}.la-chevron-right:before{content:""}.la-chevron-up:before{content:""}.la-child:before{content:""}.la-chrome:before{content:""}.la-chromecast:before{content:""}.la-church:before{content:""}.la-circle:before{content:""}.la-circle-notch:before{content:""}.la-city:before{content:""}.la-clinic-medical:before{content:""}.la-clipboard:before{content:""}.la-clipboard-check:before{content:""}.la-clipboard-list:before{content:""}.la-clock:before{content:""}.la-clone:before{content:""}.la-closed-captioning:before{content:""}.la-cloud:before{content:""}.la-cloud-download-alt:before{content:""}.la-cloud-meatball:before{content:""}.la-cloud-moon:before{content:""}.la-cloud-moon-rain:before{content:""}.la-cloud-rain:before{content:""}.la-cloud-showers-heavy:before{content:""}.la-cloud-sun:before{content:""}.la-cloud-sun-rain:before{content:""}.la-cloud-upload-alt:before{content:""}.la-cloudscale:before{content:""}.la-cloudsmith:before{content:""}.la-cloudversify:before{content:""}.la-cocktail:before{content:""}.la-code:before{content:""}.la-code-branch:before{content:""}.la-codepen:before{content:""}.la-codiepie:before{content:""}.la-coffee:before{content:""}.la-cog:before{content:""}.la-cogs:before{content:""}.la-coins:before{content:""}.la-columns:before{content:""}.la-comment:before{content:""}.la-comment-alt:before{content:""}.la-comment-dollar:before{content:""}.la-comment-dots:before{content:""}.la-comment-medical:before{content:""}.la-comment-slash:before{content:""}.la-comments:before{content:""}.la-comments-dollar:before{content:""}.la-compact-disc:before{content:""}.la-compass:before{content:""}.la-compress:before{content:""}.la-compress-arrows-alt:before{content:""}.la-concierge-bell:before{content:""}.la-confluence:before{content:""}.la-connectdevelop:before{content:""}.la-contao:before{content:""}.la-cookie:before{content:""}.la-cookie-bite:before{content:""}.la-copy:before{content:""}.la-copyright:before{content:""}.la-cotton-bureau:before{content:""}.la-couch:before{content:""}.la-cpanel:before{content:""}.la-creative-commons:before{content:""}.la-creative-commons-by:before{content:""}.la-creative-commons-nc:before{content:""}.la-creative-commons-nc-eu:before{content:""}.la-creative-commons-nc-jp:before{content:""}.la-creative-commons-nd:before{content:""}.la-creative-commons-pd:before{content:""}.la-creative-commons-pd-alt:before{content:""}.la-creative-commons-remix:before{content:""}.la-creative-commons-sa:before{content:""}.la-creative-commons-sampling:before{content:""}.la-creative-commons-sampling-plus:before{content:""}.la-creative-commons-share:before{content:""}.la-creative-commons-zero:before{content:""}.la-credit-card:before{content:""}.la-critical-role:before{content:""}.la-crop:before{content:""}.la-crop-alt:before{content:""}.la-cross:before{content:""}.la-crosshairs:before{content:""}.la-crow:before{content:""}.la-crown:before{content:""}.la-crutch:before{content:""}.la-css3:before{content:""}.la-css3-alt:before{content:""}.la-cube:before{content:""}.la-cubes:before{content:""}.la-cut:before{content:""}.la-cuttlefish:before{content:""}.la-d-and-d:before{content:""}.la-d-and-d-beyond:before{content:""}.la-dashcube:before{content:""}.la-database:before{content:""}.la-deaf:before{content:""}.la-delicious:before{content:""}.la-democrat:before{content:""}.la-deploydog:before{content:""}.la-deskpro:before{content:""}.la-desktop:before{content:""}.la-dev:before{content:""}.la-deviantart:before{content:""}.la-dharmachakra:before{content:""}.la-dhl:before{content:""}.la-diagnoses:before{content:""}.la-diaspora:before{content:""}.la-dice:before{content:""}.la-dice-d20:before{content:""}.la-dice-d6:before{content:""}.la-dice-five:before{content:""}.la-dice-four:before{content:""}.la-dice-one:before{content:""}.la-dice-six:before{content:""}.la-dice-three:before{content:""}.la-dice-two:before{content:""}.la-digg:before{content:""}.la-digital-ocean:before{content:""}.la-digital-tachograph:before{content:""}.la-directions:before{content:""}.la-discord:before{content:""}.la-discourse:before{content:""}.la-divide:before{content:""}.la-dizzy:before{content:""}.la-dna:before{content:""}.la-dochub:before{content:""}.la-docker:before{content:""}.la-dog:before{content:""}.la-dollar-sign:before{content:""}.la-dolly:before{content:""}.la-dolly-flatbed:before{content:""}.la-donate:before{content:""}.la-door-closed:before{content:""}.la-door-open:before{content:""}.la-dot-circle:before{content:""}.la-dove:before{content:""}.la-download:before{content:""}.la-draft2digital:before{content:""}.la-drafting-compass:before{content:""}.la-dragon:before{content:""}.la-draw-polygon:before{content:""}.la-dribbble:before{content:""}.la-dribbble-square:before{content:""}.la-dropbox:before{content:""}.la-drum:before{content:""}.la-drum-steelpan:before{content:""}.la-drumstick-bite:before{content:""}.la-drupal:before{content:""}.la-dumbbell:before{content:""}.la-dumpster:before{content:""}.la-dumpster-fire:before{content:""}.la-dungeon:before{content:""}.la-dyalog:before{content:""}.la-earlybirds:before{content:""}.la-ebay:before{content:""}.la-edge:before{content:""}.la-edit:before{content:""}.la-egg:before{content:""}.la-eject:before{content:""}.la-elementor:before{content:""}.la-ellipsis-h:before{content:""}.la-ellipsis-v:before{content:""}.la-ello:before{content:""}.la-ember:before{content:""}.la-empire:before{content:""}.la-envelope:before{content:""}.la-envelope-open:before{content:""}.la-envelope-open-text:before{content:""}.la-envelope-square:before{content:""}.la-envira:before{content:""}.la-equals:before{content:""}.la-eraser:before{content:""}.la-erlang:before{content:""}.la-ethereum:before{content:""}.la-ethernet:before{content:""}.la-etsy:before{content:""}.la-euro-sign:before{content:""}.la-evernote:before{content:""}.la-exchange-alt:before{content:""}.la-exclamation:before{content:""}.la-exclamation-circle:before{content:""}.la-exclamation-triangle:before{content:""}.la-expand:before{content:""}.la-expand-arrows-alt:before{content:""}.la-expeditedssl:before{content:""}.la-external-link-alt:before{content:""}.la-external-link-square-alt:before{content:""}.la-eye:before{content:""}.la-eye-dropper:before{content:""}.la-eye-slash:before{content:""}.la-facebook:before{content:""}.la-facebook-f:before{content:""}.la-facebook-messenger:before{content:""}.la-facebook-square:before{content:""}.la-fan:before{content:""}.la-fantasy-flight-games:before{content:""}.la-fast-backward:before{content:""}.la-fast-forward:before{content:""}.la-fax:before{content:""}.la-feather:before{content:""}.la-feather-alt:before{content:""}.la-fedex:before{content:""}.la-fedora:before{content:""}.la-female:before{content:""}.la-fighter-jet:before{content:""}.la-figma:before{content:""}.la-file:before{content:""}.la-file-alt:before{content:""}.la-file-archive:before{content:""}.la-file-audio:before{content:""}.la-file-code:before{content:""}.la-file-contract:before{content:""}.la-file-csv:before{content:""}.la-file-download:before{content:""}.la-file-excel:before{content:""}.la-file-export:before{content:""}.la-file-image:before{content:""}.la-file-import:before{content:""}.la-file-invoice:before{content:""}.la-file-invoice-dollar:before{content:""}.la-file-medical:before{content:""}.la-file-medical-alt:before{content:""}.la-file-pdf:before{content:""}.la-file-powerpoint:before{content:""}.la-file-prescription:before{content:""}.la-file-signature:before{content:""}.la-file-upload:before{content:""}.la-file-video:before{content:""}.la-file-word:before{content:""}.la-fill:before{content:""}.la-fill-drip:before{content:""}.la-film:before{content:""}.la-filter:before{content:""}.la-fingerprint:before{content:""}.la-fire:before{content:""}.la-fire-alt:before{content:""}.la-fire-extinguisher:before{content:""}.la-firefox:before{content:""}.la-first-aid:before{content:""}.la-first-order:before{content:""}.la-first-order-alt:before{content:""}.la-firstdraft:before{content:""}.la-fish:before{content:""}.la-fist-raised:before{content:""}.la-flag:before{content:""}.la-flag-checkered:before{content:""}.la-flag-usa:before{content:""}.la-flask:before{content:""}.la-flickr:before{content:""}.la-flipboard:before{content:""}.la-flushed:before{content:""}.la-fly:before{content:""}.la-folder:before{content:""}.la-folder-minus:before{content:""}.la-folder-open:before{content:""}.la-folder-plus:before{content:""}.la-font:before{content:""}.la-font-awesome:before{content:""}.la-font-awesome-alt:before{content:""}.la-font-awesome-flag:before{content:""}.la-fonticons:before{content:""}.la-fonticons-fi:before{content:""}.la-football-ball:before{content:""}.la-fort-awesome:before{content:""}.la-fort-awesome-alt:before{content:""}.la-forumbee:before{content:""}.la-forward:before{content:""}.la-foursquare:before{content:""}.la-free-code-camp:before{content:""}.la-freebsd:before{content:""}.la-frog:before{content:""}.la-frown:before{content:""}.la-frown-open:before{content:""}.la-fulcrum:before{content:""}.la-funnel-dollar:before{content:""}.la-futbol:before{content:""}.la-galactic-republic:before{content:""}.la-galactic-senate:before{content:""}.la-gamepad:before{content:""}.la-gas-pump:before{content:""}.la-gavel:before{content:""}.la-gem:before{content:""}.la-genderless:before{content:""}.la-get-pocket:before{content:""}.la-gg:before{content:""}.la-gg-circle:before{content:""}.la-ghost:before{content:""}.la-gift:before{content:""}.la-gifts:before{content:""}.la-git:before{content:""}.la-git-alt:before{content:""}.la-git-square:before{content:""}.la-github:before{content:""}.la-github-alt:before{content:""}.la-github-square:before{content:""}.la-gitkraken:before{content:""}.la-gitlab:before{content:""}.la-gitter:before{content:""}.la-glass-cheers:before{content:""}.la-glass-martini:before{content:""}.la-glass-martini-alt:before{content:""}.la-glass-whiskey:before{content:""}.la-glasses:before{content:""}.la-glide:before{content:""}.la-glide-g:before{content:""}.la-globe:before{content:""}.la-globe-africa:before{content:""}.la-globe-americas:before{content:""}.la-globe-asia:before{content:""}.la-globe-europe:before{content:""}.la-gofore:before{content:""}.la-golf-ball:before{content:""}.la-goodreads:before{content:""}.la-goodreads-g:before{content:""}.la-google:before{content:""}.la-google-drive:before{content:""}.la-google-play:before{content:""}.la-google-plus:before{content:""}.la-google-plus-g:before{content:""}.la-google-plus-square:before{content:""}.la-google-wallet:before{content:""}.la-gopuram:before{content:""}.la-graduation-cap:before{content:""}.la-gratipay:before{content:""}.la-grav:before{content:""}.la-greater-than:before{content:""}.la-greater-than-equal:before{content:""}.la-grimace:before{content:""}.la-grin:before{content:""}.la-grin-alt:before{content:""}.la-grin-beam:before{content:""}.la-grin-beam-sweat:before{content:""}.la-grin-hearts:before{content:""}.la-grin-squint:before{content:""}.la-grin-squint-tears:before{content:""}.la-grin-stars:before{content:""}.la-grin-tears:before{content:""}.la-grin-tongue:before{content:""}.la-grin-tongue-squint:before{content:""}.la-grin-tongue-wink:before{content:""}.la-grin-wink:before{content:""}.la-grip-horizontal:before{content:""}.la-grip-lines:before{content:""}.la-grip-lines-vertical:before{content:""}.la-grip-vertical:before{content:""}.la-gripfire:before{content:""}.la-grunt:before{content:""}.la-guitar:before{content:""}.la-gulp:before{content:""}.la-h-square:before{content:""}.la-hacker-news:before{content:""}.la-hacker-news-square:before{content:""}.la-hackerrank:before{content:""}.la-hamburger:before{content:""}.la-hammer:before{content:""}.la-hamsa:before{content:""}.la-hand-holding:before{content:""}.la-hand-holding-heart:before{content:""}.la-hand-holding-usd:before{content:""}.la-hand-lizard:before{content:""}.la-hand-middle-finger:before{content:""}.la-hand-paper:before{content:""}.la-hand-peace:before{content:""}.la-hand-point-down:before{content:""}.la-hand-point-left:before{content:""}.la-hand-point-right:before{content:""}.la-hand-point-up:before{content:""}.la-hand-pointer:before{content:""}.la-hand-rock:before{content:""}.la-hand-scissors:before{content:""}.la-hand-spock:before{content:""}.la-hands:before{content:""}.la-hands-helping:before{content:""}.la-handshake:before{content:""}.la-hanukiah:before{content:""}.la-hard-hat:before{content:""}.la-hashtag:before{content:""}.la-hat-wizard:before{content:""}.la-haykal:before{content:""}.la-hdd:before{content:""}.la-heading:before{content:""}.la-headphones:before{content:""}.la-headphones-alt:before{content:""}.la-headset:before{content:""}.la-heart:before{content:""}.la-heart-broken:before{content:""}.la-heartbeat:before{content:""}.la-helicopter:before{content:""}.la-highlighter:before{content:""}.la-hiking:before{content:""}.la-hippo:before{content:""}.la-hips:before{content:""}.la-hire-a-helper:before{content:""}.la-history:before{content:""}.la-hockey-puck:before{content:""}.la-holly-berry:before{content:""}.la-home:before{content:""}.la-hooli:before{content:""}.la-hornbill:before{content:""}.la-horse:before{content:""}.la-horse-head:before{content:""}.la-hospital:before{content:""}.la-hospital-alt:before{content:""}.la-hospital-symbol:before{content:""}.la-hot-tub:before{content:""}.la-hotdog:before{content:""}.la-hotel:before{content:""}.la-hotjar:before{content:""}.la-hourglass:before{content:""}.la-hourglass-end:before{content:""}.la-hourglass-half:before{content:""}.la-hourglass-start:before{content:""}.la-house-damage:before{content:""}.la-houzz:before{content:""}.la-hryvnia:before{content:""}.la-html5:before{content:""}.la-hubspot:before{content:""}.la-i-cursor:before{content:""}.la-ice-cream:before{content:""}.la-icicles:before{content:""}.la-icons:before{content:""}.la-id-badge:before{content:""}.la-id-card:before{content:""}.la-id-card-alt:before{content:""}.la-igloo:before{content:""}.la-image:before{content:""}.la-images:before{content:""}.la-imdb:before{content:""}.la-inbox:before{content:""}.la-indent:before{content:""}.la-industry:before{content:""}.la-infinity:before{content:""}.la-info:before{content:""}.la-info-circle:before{content:""}.la-instagram:before{content:""}.la-intercom:before{content:""}.la-internet-explorer:before{content:""}.la-invision:before{content:""}.la-ioxhost:before{content:""}.la-italic:before{content:""}.la-itch-io:before{content:""}.la-itunes:before{content:""}.la-itunes-note:before{content:""}.la-java:before{content:""}.la-jedi:before{content:""}.la-jedi-order:before{content:""}.la-jenkins:before{content:""}.la-jira:before{content:""}.la-joget:before{content:""}.la-joint:before{content:""}.la-joomla:before{content:""}.la-journal-whills:before{content:""}.la-js:before{content:""}.la-js-square:before{content:""}.la-jsfiddle:before{content:""}.la-kaaba:before{content:""}.la-kaggle:before{content:""}.la-key:before{content:""}.la-keybase:before{content:""}.la-keyboard:before{content:""}.la-keycdn:before{content:""}.la-khanda:before{content:""}.la-kickstarter:before{content:""}.la-kickstarter-k:before{content:""}.la-kiss:before{content:""}.la-kiss-beam:before{content:""}.la-kiss-wink-heart:before{content:""}.la-kiwi-bird:before{content:""}.la-korvue:before{content:""}.la-landmark:before{content:""}.la-language:before{content:""}.la-laptop:before{content:""}.la-laptop-code:before{content:""}.la-laptop-medical:before{content:""}.la-laravel:before{content:""}.la-lastfm:before{content:""}.la-lastfm-square:before{content:""}.la-laugh:before{content:""}.la-laugh-beam:before{content:""}.la-laugh-squint:before{content:""}.la-laugh-wink:before{content:""}.la-layer-group:before{content:""}.la-leaf:before{content:""}.la-leanpub:before{content:""}.la-lemon:before{content:""}.la-less:before{content:""}.la-less-than:before{content:""}.la-less-than-equal:before{content:""}.la-level-down-alt:before{content:""}.la-level-up-alt:before{content:""}.la-life-ring:before{content:""}.la-lightbulb:before{content:""}.la-line:before{content:""}.la-link:before{content:""}.la-linkedin:before{content:""}.la-linkedin-in:before{content:""}.la-linode:before{content:""}.la-linux:before{content:""}.la-lira-sign:before{content:""}.la-list:before{content:""}.la-list-alt:before{content:""}.la-list-ol:before{content:""}.la-list-ul:before{content:""}.la-location-arrow:before{content:""}.la-lock:before{content:""}.la-lock-open:before{content:""}.la-long-arrow-alt-down:before{content:""}.la-long-arrow-alt-left:before{content:""}.la-long-arrow-alt-right:before{content:""}.la-long-arrow-alt-up:before{content:""}.la-low-vision:before{content:""}.la-luggage-cart:before{content:""}.la-lyft:before{content:""}.la-magento:before{content:""}.la-magic:before{content:""}.la-magnet:before{content:""}.la-mail-bulk:before{content:""}.la-mailchimp:before{content:""}.la-male:before{content:""}.la-mandalorian:before{content:""}.la-map:before{content:""}.la-map-marked:before{content:""}.la-map-marked-alt:before{content:""}.la-map-marker:before{content:""}.la-map-marker-alt:before{content:""}.la-map-pin:before{content:""}.la-map-signs:before{content:""}.la-markdown:before{content:""}.la-marker:before{content:""}.la-mars:before{content:""}.la-mars-double:before{content:""}.la-mars-stroke:before{content:""}.la-mars-stroke-h:before{content:""}.la-mars-stroke-v:before{content:""}.la-mask:before{content:""}.la-mastodon:before{content:""}.la-maxcdn:before{content:""}.la-medal:before{content:""}.la-medapps:before{content:""}.la-medium:before{content:""}.la-medium-m:before{content:""}.la-medkit:before{content:""}.la-medrt:before{content:""}.la-meetup:before{content:""}.la-megaport:before{content:""}.la-meh:before{content:""}.la-meh-blank:before{content:""}.la-meh-rolling-eyes:before{content:""}.la-memory:before{content:""}.la-mendeley:before{content:""}.la-menorah:before{content:""}.la-mercury:before{content:""}.la-meteor:before{content:""}.la-microchip:before{content:""}.la-microphone:before{content:""}.la-microphone-alt:before{content:""}.la-microphone-alt-slash:before{content:""}.la-microphone-slash:before{content:""}.la-microscope:before{content:""}.la-microsoft:before{content:""}.la-minus:before{content:""}.la-minus-circle:before{content:""}.la-minus-square:before{content:""}.la-mitten:before{content:""}.la-mix:before{content:""}.la-mixcloud:before{content:""}.la-mizuni:before{content:""}.la-mobile:before{content:""}.la-mobile-alt:before{content:""}.la-modx:before{content:""}.la-monero:before{content:""}.la-money-bill:before{content:""}.la-money-bill-alt:before{content:""}.la-money-bill-wave:before{content:""}.la-money-bill-wave-alt:before{content:""}.la-money-check:before{content:""}.la-money-check-alt:before{content:""}.la-monument:before{content:""}.la-moon:before{content:""}.la-mortar-pestle:before{content:""}.la-mosque:before{content:""}.la-motorcycle:before{content:""}.la-mountain:before{content:""}.la-mouse-pointer:before{content:""}.la-mug-hot:before{content:""}.la-music:before{content:""}.la-napster:before{content:""}.la-neos:before{content:""}.la-network-wired:before{content:""}.la-neuter:before{content:""}.la-newspaper:before{content:""}.la-nimblr:before{content:""}.la-node:before{content:""}.la-node-js:before{content:""}.la-not-equal:before{content:""}.la-notes-medical:before{content:""}.la-npm:before{content:""}.la-ns8:before{content:""}.la-nutritionix:before{content:""}.la-object-group:before{content:""}.la-object-ungroup:before{content:""}.la-odnoklassniki:before{content:""}.la-odnoklassniki-square:before{content:""}.la-oil-can:before{content:""}.la-old-republic:before{content:""}.la-om:before{content:""}.la-opencart:before{content:""}.la-openid:before{content:""}.la-opera:before{content:""}.la-optin-monster:before{content:""}.la-osi:before{content:""}.la-otter:before{content:""}.la-outdent:before{content:""}.la-page4:before{content:""}.la-pagelines:before{content:""}.la-pager:before{content:""}.la-paint-brush:before{content:""}.la-paint-roller:before{content:""}.la-palette:before{content:""}.la-palfed:before{content:""}.la-pallet:before{content:""}.la-paper-plane:before{content:""}.la-paperclip:before{content:""}.la-parachute-box:before{content:""}.la-paragraph:before{content:""}.la-parking:before{content:""}.la-passport:before{content:""}.la-pastafarianism:before{content:""}.la-paste:before{content:""}.la-patreon:before{content:""}.la-pause:before{content:""}.la-pause-circle:before{content:""}.la-paw:before{content:""}.la-paypal:before{content:""}.la-peace:before{content:""}.la-pen:before{content:""}.la-pen-alt:before{content:""}.la-pen-fancy:before{content:""}.la-pen-nib:before{content:""}.la-pen-square:before{content:""}.la-pencil-alt:before{content:""}.la-pencil-ruler:before{content:""}.la-penny-arcade:before{content:""}.la-people-carry:before{content:""}.la-pepper-hot:before{content:""}.la-percent:before{content:""}.la-percentage:before{content:""}.la-periscope:before{content:""}.la-person-booth:before{content:""}.la-phabricator:before{content:""}.la-phoenix-framework:before{content:""}.la-phoenix-squadron:before{content:""}.la-phone:before{content:""}.la-phone-alt:before{content:""}.la-phone-slash:before{content:""}.la-phone-square:before{content:""}.la-phone-square-alt:before{content:""}.la-phone-volume:before{content:""}.la-photo-video:before{content:""}.la-php:before{content:""}.la-pied-piper:before{content:""}.la-pied-piper-alt:before{content:""}.la-pied-piper-hat:before{content:""}.la-pied-piper-pp:before{content:""}.la-piggy-bank:before{content:""}.la-pills:before{content:""}.la-pinterest:before{content:""}.la-pinterest-p:before{content:""}.la-pinterest-square:before{content:""}.la-pizza-slice:before{content:""}.la-place-of-worship:before{content:""}.la-plane:before{content:""}.la-plane-arrival:before{content:""}.la-plane-departure:before{content:""}.la-play:before{content:""}.la-play-circle:before{content:""}.la-playstation:before{content:""}.la-plug:before{content:""}.la-plus:before{content:""}.la-plus-circle:before{content:""}.la-plus-square:before{content:""}.la-podcast:before{content:""}.la-poll:before{content:""}.la-poll-h:before{content:""}.la-poo:before{content:""}.la-poo-storm:before{content:""}.la-poop:before{content:""}.la-portrait:before{content:""}.la-pound-sign:before{content:""}.la-power-off:before{content:""}.la-pray:before{content:""}.la-praying-hands:before{content:""}.la-prescription:before{content:""}.la-prescription-bottle:before{content:""}.la-prescription-bottle-alt:before{content:""}.la-print:before{content:""}.la-procedures:before{content:""}.la-product-hunt:before{content:""}.la-project-diagram:before{content:""}.la-pushed:before{content:""}.la-puzzle-piece:before{content:""}.la-python:before{content:""}.la-qq:before{content:""}.la-qrcode:before{content:""}.la-question:before{content:""}.la-question-circle:before{content:""}.la-quidditch:before{content:""}.la-quinscape:before{content:""}.la-quora:before{content:""}.la-quote-left:before{content:""}.la-quote-right:before{content:""}.la-quran:before{content:""}.la-r-project:before{content:""}.la-radiation:before{content:""}.la-radiation-alt:before{content:""}.la-rainbow:before{content:""}.la-random:before{content:""}.la-raspberry-pi:before{content:""}.la-ravelry:before{content:""}.la-react:before{content:""}.la-reacteurope:before{content:""}.la-readme:before{content:""}.la-rebel:before{content:""}.la-receipt:before{content:""}.la-recycle:before{content:""}.la-red-river:before{content:""}.la-reddit:before{content:""}.la-reddit-alien:before{content:""}.la-reddit-square:before{content:""}.la-redhat:before{content:""}.la-redo:before{content:""}.la-redo-alt:before{content:""}.la-registered:before{content:""}.la-remove-format:before{content:""}.la-renren:before{content:""}.la-reply:before{content:""}.la-reply-all:before{content:""}.la-replyd:before{content:""}.la-republican:before{content:""}.la-researchgate:before{content:""}.la-resolving:before{content:""}.la-restroom:before{content:""}.la-retweet:before{content:""}.la-rev:before{content:""}.la-ribbon:before{content:""}.la-ring:before{content:""}.la-road:before{content:""}.la-robot:before{content:""}.la-rocket:before{content:""}.la-rocketchat:before{content:""}.la-rockrms:before{content:""}.la-route:before{content:""}.la-rss:before{content:""}.la-rss-square:before{content:""}.la-ruble-sign:before{content:""}.la-ruler:before{content:""}.la-ruler-combined:before{content:""}.la-ruler-horizontal:before{content:""}.la-ruler-vertical:before{content:""}.la-running:before{content:""}.la-rupee-sign:before{content:""}.la-sad-cry:before{content:""}.la-sad-tear:before{content:""}.la-safari:before{content:""}.la-salesforce:before{content:""}.la-sass:before{content:""}.la-satellite:before{content:""}.la-satellite-dish:before{content:""}.la-save:before{content:""}.la-schlix:before{content:""}.la-school:before{content:""}.la-screwdriver:before{content:""}.la-scribd:before{content:""}.la-scroll:before{content:""}.la-sd-card:before{content:""}.la-search:before{content:""}.la-search-dollar:before{content:""}.la-search-location:before{content:""}.la-search-minus:before{content:""}.la-search-plus:before{content:""}.la-searchengin:before{content:""}.la-seedling:before{content:""}.la-sellcast:before{content:""}.la-sellsy:before{content:""}.la-server:before{content:""}.la-servicestack:before{content:""}.la-shapes:before{content:""}.la-share:before{content:""}.la-share-alt:before{content:""}.la-share-alt-square:before{content:""}.la-share-square:before{content:""}.la-shekel-sign:before{content:""}.la-shield-alt:before{content:""}.la-ship:before{content:""}.la-shipping-fast:before{content:""}.la-shirtsinbulk:before{content:""}.la-shoe-prints:before{content:""}.la-shopping-bag:before{content:""}.la-shopping-basket:before{content:""}.la-shopping-cart:before{content:""}.la-shopware:before{content:""}.la-shower:before{content:""}.la-shuttle-van:before{content:""}.la-sign:before{content:""}.la-sign-in-alt:before{content:""}.la-sign-language:before{content:""}.la-sign-out-alt:before{content:""}.la-signal:before{content:""}.la-signature:before{content:""}.la-sim-card:before{content:""}.la-simplybuilt:before{content:""}.la-sistrix:before{content:""}.la-sitemap:before{content:""}.la-sith:before{content:""}.la-skating:before{content:""}.la-sketch:before{content:""}.la-skiing:before{content:""}.la-skiing-nordic:before{content:""}.la-skull:before{content:""}.la-skull-crossbones:before{content:""}.la-skyatlas:before{content:""}.la-skype:before{content:""}.la-slack:before{content:""}.la-slack-hash:before{content:""}.la-slash:before{content:""}.la-sleigh:before{content:""}.la-sliders-h:before{content:""}.la-slideshare:before{content:""}.la-smile:before{content:""}.la-smile-beam:before{content:""}.la-smile-wink:before{content:""}.la-smog:before{content:""}.la-smoking:before{content:""}.la-smoking-ban:before{content:""}.la-sms:before{content:""}.la-snapchat:before{content:""}.la-snapchat-ghost:before{content:""}.la-snapchat-square:before{content:""}.la-snowboarding:before{content:""}.la-snowflake:before{content:""}.la-snowman:before{content:""}.la-snowplow:before{content:""}.la-socks:before{content:""}.la-solar-panel:before{content:""}.la-sort:before{content:""}.la-sort-alpha-down:before{content:""}.la-sort-alpha-down-alt:before{content:""}.la-sort-alpha-up:before{content:""}.la-sort-alpha-up-alt:before{content:""}.la-sort-amount-down:before{content:""}.la-sort-amount-down-alt:before{content:""}.la-sort-amount-up:before{content:""}.la-sort-amount-up-alt:before{content:""}.la-sort-down:before{content:""}.la-sort-numeric-down:before{content:""}.la-sort-numeric-down-alt:before{content:""}.la-sort-numeric-up:before{content:""}.la-sort-numeric-up-alt:before{content:""}.la-sort-up:before{content:""}.la-soundcloud:before{content:""}.la-sourcetree:before{content:""}.la-spa:before{content:""}.la-space-shuttle:before{content:""}.la-speakap:before{content:""}.la-speaker-deck:before{content:""}.la-spell-check:before{content:""}.la-spider:before{content:""}.la-spinner:before{content:""}.la-splotch:before{content:""}.la-spotify:before{content:""}.la-spray-can:before{content:""}.la-square:before{content:""}.la-square-full:before{content:""}.la-square-root-alt:before{content:""}.la-squarespace:before{content:""}.la-stack-exchange:before{content:""}.la-stack-overflow:before{content:""}.la-stackpath:before{content:""}.la-stamp:before{content:""}.la-star:before{content:""}.la-star-and-crescent:before{content:""}.la-star-half:before{content:""}.la-star-half-alt:before{content:""}.la-star-of-david:before{content:""}.la-star-of-life:before{content:""}.la-staylinked:before{content:""}.la-steam:before{content:""}.la-steam-square:before{content:""}.la-steam-symbol:before{content:""}.la-step-backward:before{content:""}.la-step-forward:before{content:""}.la-stethoscope:before{content:""}.la-sticker-mule:before{content:""}.la-sticky-note:before{content:""}.la-stop:before{content:""}.la-stop-circle:before{content:""}.la-stopwatch:before{content:""}.la-store:before{content:""}.la-store-alt:before{content:""}.la-strava:before{content:""}.la-stream:before{content:""}.la-street-view:before{content:""}.la-strikethrough:before{content:""}.la-stripe:before{content:""}.la-stripe-s:before{content:""}.la-stroopwafel:before{content:""}.la-studiovinari:before{content:""}.la-stumbleupon:before{content:""}.la-stumbleupon-circle:before{content:""}.la-subscript:before{content:""}.la-subway:before{content:""}.la-suitcase:before{content:""}.la-suitcase-rolling:before{content:""}.la-sun:before{content:""}.la-superpowers:before{content:""}.la-superscript:before{content:""}.la-supple:before{content:""}.la-surprise:before{content:""}.la-suse:before{content:""}.la-swatchbook:before{content:""}.la-swimmer:before{content:""}.la-swimming-pool:before{content:""}.la-symfony:before{content:""}.la-synagogue:before{content:""}.la-sync:before{content:""}.la-sync-alt:before{content:""}.la-syringe:before{content:""}.la-table:before{content:""}.la-table-tennis:before{content:""}.la-tablet:before{content:""}.la-tablet-alt:before{content:""}.la-tablets:before{content:""}.la-tachometer-alt:before{content:""}.la-tag:before{content:""}.la-tags:before{content:""}.la-tape:before{content:""}.la-tasks:before{content:""}.la-taxi:before{content:""}.la-teamspeak:before{content:""}.la-teeth:before{content:""}.la-teeth-open:before{content:""}.la-telegram:before{content:""}.la-telegram-plane:before{content:""}.la-temperature-high:before{content:""}.la-temperature-low:before{content:""}.la-tencent-weibo:before{content:""}.la-tenge:before{content:""}.la-terminal:before{content:""}.la-text-height:before{content:""}.la-text-width:before{content:""}.la-th:before{content:""}.la-th-large:before{content:""}.la-th-list:before{content:""}.la-the-red-yeti:before{content:""}.la-theater-masks:before{content:""}.la-themeco:before{content:""}.la-themeisle:before{content:""}.la-thermometer:before{content:""}.la-thermometer-empty:before{content:""}.la-thermometer-full:before{content:""}.la-thermometer-half:before{content:""}.la-thermometer-quarter:before{content:""}.la-thermometer-three-quarters:before{content:""}.la-think-peaks:before{content:""}.la-thumbs-down:before{content:""}.la-thumbs-up:before{content:""}.la-thumbtack:before{content:""}.la-ticket-alt:before{content:""}.la-times:before{content:""}.la-times-circle:before{content:""}.la-tint:before{content:""}.la-tint-slash:before{content:""}.la-tired:before{content:""}.la-toggle-off:before{content:""}.la-toggle-on:before{content:""}.la-toilet:before{content:""}.la-toilet-paper:before{content:""}.la-toolbox:before{content:""}.la-tools:before{content:""}.la-tooth:before{content:""}.la-torah:before{content:""}.la-torii-gate:before{content:""}.la-tractor:before{content:""}.la-trade-federation:before{content:""}.la-trademark:before{content:""}.la-traffic-light:before{content:""}.la-train:before{content:""}.la-tram:before{content:""}.la-transgender:before{content:""}.la-transgender-alt:before{content:""}.la-trash:before{content:""}.la-trash-alt:before{content:""}.la-trash-restore:before{content:""}.la-trash-restore-alt:before{content:""}.la-tree:before{content:""}.la-trello:before{content:""}.la-tripadvisor:before{content:""}.la-trophy:before{content:""}.la-truck:before{content:""}.la-truck-loading:before{content:""}.la-truck-monster:before{content:""}.la-truck-moving:before{content:""}.la-truck-pickup:before{content:""}.la-tshirt:before{content:""}.la-tty:before{content:""}.la-tumblr:before{content:""}.la-tumblr-square:before{content:""}.la-tv:before{content:""}.la-twitch:before{content:""}.la-twitter:before{content:""}.la-twitter-square:before{content:""}.la-typo3:before{content:""}.la-uber:before{content:""}.la-ubuntu:before{content:""}.la-uikit:before{content:""}.la-umbrella:before{content:""}.la-umbrella-beach:before{content:""}.la-underline:before{content:""}.la-undo:before{content:""}.la-undo-alt:before{content:""}.la-uniregistry:before{content:""}.la-universal-access:before{content:""}.la-university:before{content:""}.la-unlink:before{content:""}.la-unlock:before{content:""}.la-unlock-alt:before{content:""}.la-untappd:before{content:""}.la-upload:before{content:""}.la-ups:before{content:""}.la-usb:before{content:""}.la-user:before{content:""}.la-user-alt:before{content:""}.la-user-alt-slash:before{content:""}.la-user-astronaut:before{content:""}.la-user-check:before{content:""}.la-user-circle:before{content:""}.la-user-clock:before{content:""}.la-user-cog:before{content:""}.la-user-edit:before{content:""}.la-user-friends:before{content:""}.la-user-graduate:before{content:""}.la-user-injured:before{content:""}.la-user-lock:before{content:""}.la-user-md:before{content:""}.la-user-minus:before{content:""}.la-user-ninja:before{content:""}.la-user-nurse:before{content:""}.la-user-plus:before{content:""}.la-user-secret:before{content:""}.la-user-shield:before{content:""}.la-user-slash:before{content:""}.la-user-tag:before{content:""}.la-user-tie:before{content:""}.la-user-times:before{content:""}.la-users:before{content:""}.la-users-cog:before{content:""}.la-usps:before{content:""}.la-ussunnah:before{content:""}.la-utensil-spoon:before{content:""}.la-utensils:before{content:""}.la-vaadin:before{content:""}.la-vector-square:before{content:""}.la-venus:before{content:""}.la-venus-double:before{content:""}.la-venus-mars:before{content:""}.la-viacoin:before{content:""}.la-viadeo:before{content:""}.la-viadeo-square:before{content:""}.la-vial:before{content:""}.la-vials:before{content:""}.la-viber:before{content:""}.la-video:before{content:""}.la-video-slash:before{content:""}.la-vihara:before{content:""}.la-vimeo:before{content:""}.la-vimeo-square:before{content:""}.la-vimeo-v:before{content:""}.la-vine:before{content:""}.la-vk:before{content:""}.la-vnv:before{content:""}.la-voicemail:before{content:""}.la-volleyball-ball:before{content:""}.la-volume-down:before{content:""}.la-volume-mute:before{content:""}.la-volume-off:before{content:""}.la-volume-up:before{content:""}.la-vote-yea:before{content:""}.la-vr-cardboard:before{content:""}.la-vuejs:before{content:""}.la-walking:before{content:""}.la-wallet:before{content:""}.la-warehouse:before{content:""}.la-water:before{content:""}.la-wave-square:before{content:""}.la-waze:before{content:""}.la-weebly:before{content:""}.la-weibo:before{content:""}.la-weight:before{content:""}.la-weight-hanging:before{content:""}.la-weixin:before{content:""}.la-whatsapp:before{content:""}.la-whatsapp-square:before{content:""}.la-wheelchair:before{content:""}.la-whmcs:before{content:""}.la-wifi:before{content:""}.la-wikipedia-w:before{content:""}.la-wind:before{content:""}.la-window-close:before{content:""}.la-window-maximize:before{content:""}.la-window-minimize:before{content:""}.la-window-restore:before{content:""}.la-windows:before{content:""}.la-wine-bottle:before{content:""}.la-wine-glass:before{content:""}.la-wine-glass-alt:before{content:""}.la-wix:before{content:""}.la-wizards-of-the-coast:before{content:""}.la-wolf-pack-battalion:before{content:""}.la-won-sign:before{content:""}.la-wordpress:before{content:""}.la-wordpress-simple:before{content:""}.la-wpbeginner:before{content:""}.la-wpexplorer:before{content:""}.la-wpforms:before{content:""}.la-wpressr:before{content:""}.la-wrench:before{content:""}.la-x-ray:before{content:""}.la-xbox:before{content:""}.la-xing:before{content:""}.la-xing-square:before{content:""}.la-y-combinator:before{content:""}.la-yahoo:before{content:""}.la-yammer:before{content:""}.la-yandex:before{content:""}.la-yandex-international:before{content:""}.la-yarn:before{content:""}.la-yelp:before{content:""}.la-yen-sign:before{content:""}.la-yin-yang:before{content:""}.la-yoast:before{content:""}.la-youtube:before{content:""}.la-youtube-square:before{content:""}.la-zhihu:before{content:""}.la-hat-cowboy:before{content:""}.la-hat-cowboy-side:before{content:""}.la-mdb:before{content:""}.la-mouse:before{content:""}.la-orcid:before{content:""}.la-record-vinyl:before{content:""}.la-swift:before{content:""}.la-umbraco:before{content:""}.la-buy-n-large:before{content:""}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}body,html{font-family:Jost;height:100%;width:100%}.bg-overlay{background:rgba(51,51,51,.26)}[v-cloak]>*{display:none}.loader{border-top-color:#3498db!important}.loader.slow{-webkit-animation:spinner 1.5s linear infinite;animation:spinner 1.5s linear infinite}.loader.fast{-webkit-animation:spinner .7s linear infinite;animation:spinner .7s linear infinite}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.form-input label{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity));font-weight:600;padding-bottom:.5rem;padding-top:.5rem}.form-input input{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(219,234,254,var(--tw-bg-opacity));border-color:rgba(191,219,254,var(--tw-border-opacity));border-radius:.25rem;border-width:2px;padding:.5rem;width:100%}.form-input input[disabled]{--tw-bg-opacity:1;background-color:rgba(209,213,219,var(--tw-bg-opacity))}.form-input p{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity));font-size:.75rem;line-height:1rem;padding-bottom:.25rem;padding-top:.25rem}.form-input-invalid label{--tw-text-opacity:1;color:rgba(239,68,68,var(--tw-text-opacity));font-weight:600;padding-bottom:.5rem;padding-top:.5rem}.form-input-invalid input{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(254,226,226,var(--tw-bg-opacity));border-color:rgba(248,113,113,var(--tw-border-opacity));border-radius:.25rem;border-width:2px;padding:.5rem;width:100%}.form-input-invalid p{--tw-text-opacity:1;color:rgba(239,68,68,var(--tw-text-opacity));font-size:.75rem;line-height:1rem;padding-bottom:.25rem;padding-top:.25rem}.btn{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06);border-radius:.25rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding:.5rem .75rem;text-align:center}.btn-blue{background-color:rgba(37,99,235,var(--tw-bg-opacity));border-color:rgba(37,99,235,var(--tw-border-opacity))}.btn-blue,.btn-red{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.btn-red{background-color:rgba(220,38,38,var(--tw-bg-opacity));border-color:rgba(220,38,38,var(--tw-border-opacity))}.pos-button-clicked{box-shadow:inset 0 0 5px 0 #a4a5a7}.ns-table{width:100%}.ns-table thead th{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity));border-color:rgba(209,213,219,var(--tw-border-opacity));border-width:1px;color:rgba(55,65,81,var(--tw-text-opacity));padding:.5rem}.ns-table tbody td,.ns-table tfoot td{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity));border-width:1px;color:rgba(55,65,81,var(--tw-text-opacity));padding:.5rem}.ns-table tbody>tr.info{--tw-bg-opacity:1;background-color:rgba(191,219,254,var(--tw-bg-opacity))}.ns-table tbody>tr.danger{--tw-bg-opacity:1;background-color:rgba(254,202,202,var(--tw-bg-opacity))}.ns-table tbody>tr.success{--tw-bg-opacity:1;background-color:rgba(167,243,208,var(--tw-bg-opacity))}.ns-table tbody>tr.green{--tw-bg-opacity:1;background-color:rgba(253,230,138,var(--tw-bg-opacity))}#editor h1{font-size:3rem;font-weight:700;line-height:1}#editor h2{font-size:2.25rem;font-weight:700;line-height:2.5rem}#editor h3{font-size:1.875rem;font-weight:700;line-height:2.25rem}#editor h4{font-size:1.5rem;font-weight:700;line-height:2rem}#editor h5{font-size:1.25rem;font-weight:700;line-height:1.75rem}#grid-items .vue-recycle-scroller__item-wrapper{display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr));overflow-y:auto}@media (min-width:768px){#grid-items .vue-recycle-scroller__item-wrapper{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){#grid-items .vue-recycle-scroller__item-wrapper{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1280px){#grid-items .vue-recycle-scroller__item-wrapper{grid-template-columns:repeat(5,minmax(0,1fr))}}#grid-items .vue-recycle-scroller__item-view{--tw-border-opacity:1;align-items:center;border-color:rgba(229,231,235,var(--tw-border-opacity));border-width:1px;cursor:pointer;display:flex;flex-direction:column;height:8rem;justify-content:center;overflow:hidden}@media (min-width:1024px){#grid-items .vue-recycle-scroller__item-view{height:10rem}}#grid-items .vue-recycle-scroller__item-view:hover{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.popup-heading{align-items:center;display:flex;justify-content:space-between;padding:.5rem}.popup-heading h3{font-weight:600}@media (min-width:640px){.sm\:relative{position:relative!important}.sm\:mx-auto{margin-left:auto!important;margin-right:auto!important}.sm\:hidden{display:none!important}.sm\:h-108{height:27rem!important}.sm\:w-64{width:16rem!important}.sm\:rounded-lg{border-radius:.5rem!important}.sm\:text-sm{font-size:.875rem!important}.sm\:leading-5,.sm\:text-sm{line-height:1.25rem!important}}@media (min-width:768px){.md\:visible{visibility:visible!important}.md\:static{position:static!important}.md\:mx-auto{margin-left:auto!important;margin-right:auto!important}.md\:-mx-2{margin-left:-.5rem!important;margin-right:-.5rem!important}.md\:my-0{margin-bottom:0!important;margin-top:0!important}.md\:my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.md\:mt-0{margin-top:0!important}.md\:mt-2{margin-top:.5rem!important}.md\:mb-0{margin-bottom:0!important}.md\:inline-block{display:inline-block!important}.md\:inline{display:inline!important}.md\:hidden{display:none!important}.md\:h-6\/7-screen{height:85.71vh!important}.md\:h-5\/7-screen{height:71.42vh!important}.md\:h-5\/6-screen{height:83.33vh!important}.md\:h-4\/5-screen{height:80vh!important}.md\:h-3\/5-screen{height:60vh!important}.md\:h-2\/3-screen{height:66.66vh!important}.md\:w-16{width:4rem!important}.md\:w-24{width:6rem!important}.md\:w-56{width:14rem!important}.md\:w-72{width:18rem!important}.md\:w-auto{width:auto!important}.md\:w-1\/2{width:50%!important}.md\:w-1\/3{width:33.333333%!important}.md\:w-2\/3{width:66.666667%!important}.md\:w-2\/5{width:40%!important}.md\:w-3\/5{width:60%!important}.md\:w-full{width:100%!important}.md\:w-6\/7-screen{width:85.71vw!important}.md\:w-5\/7-screen{width:71.42vw!important}.md\:w-4\/7-screen{width:57.14vw!important}.md\:w-3\/7-screen{width:42.85vw!important}.md\:w-4\/6-screen{width:66.66vw!important}.md\:w-3\/6-screen{width:50vw!important}.md\:w-4\/5-screen{width:80vw!important}.md\:w-3\/5-screen{width:60vw!important}.md\:w-2\/5-screen{width:40vw!important}.md\:w-2\/4-screen{width:50vw!important}.md\:w-2\/3-screen{width:66.66vw!important}.md\:flex-auto{flex:1 1 auto!important}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.md\:flex-row{flex-direction:row!important}.md\:flex-col{flex-direction:column!important}.md\:items-start{align-items:flex-start!important}.md\:justify-end{justify-content:flex-end!important}.md\:rounded-lg{border-radius:.5rem!important}.md\:border-l{border-left-width:1px!important}.md\:p-0{padding:0!important}.md\:text-base{font-size:1rem!important;line-height:1.5rem!important}.md\:text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}}@media (min-width:1024px){.lg\:my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.lg\:my-8{margin-bottom:2rem!important;margin-top:2rem!important}.lg\:block{display:block!important}.lg\:flex{display:flex!important}.lg\:hidden{display:none!important}.lg\:h-full{height:100%!important}.lg\:h-5\/7-screen{height:71.42vh!important}.lg\:h-3\/7-screen{height:42.85vh!important}.lg\:h-5\/6-screen{height:83.33vh!important}.lg\:h-4\/5-screen{height:80vh!important}.lg\:h-2\/3-screen{height:66.66vh!important}.lg\:w-56{width:14rem!important}.lg\:w-auto{width:auto!important}.lg\:w-1\/2{width:50%!important}.lg\:w-1\/3{width:33.333333%!important}.lg\:w-2\/3{width:66.666667%!important}.lg\:w-1\/4{width:25%!important}.lg\:w-2\/4{width:50%!important}.lg\:w-2\/5{width:40%!important}.lg\:w-1\/6{width:16.666667%!important}.lg\:w-4\/6{width:66.666667%!important}.lg\:w-full{width:100%!important}.lg\:w-4\/7-screen{width:57.14vw!important}.lg\:w-3\/7-screen{width:42.85vw!important}.lg\:w-2\/7-screen{width:28.57vw!important}.lg\:w-3\/6-screen{width:50vw!important}.lg\:w-2\/6-screen{width:33.33vw!important}.lg\:w-3\/5-screen{width:60vw!important}.lg\:w-2\/5-screen{width:40vw!important}.lg\:w-2\/4-screen{width:50vw!important}.lg\:w-1\/3-screen{width:33.33vw!important}.lg\:w-half{width:50vw!important}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.lg\:flex-row{flex-direction:row!important}.lg\:items-start{align-items:flex-start!important}.lg\:border-t{border-top-width:1px!important}.lg\:border-b{border-bottom-width:1px!important}.lg\:px-0{padding-left:0!important;padding-right:0!important}.lg\:py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.lg\:text-lg{font-size:1.125rem!important}.lg\:text-lg,.lg\:text-xl{line-height:1.75rem!important}.lg\:text-xl{font-size:1.25rem!important}.lg\:text-2xl{font-size:1.5rem!important;line-height:2rem!important}.lg\:text-5xl{font-size:3rem!important;line-height:1!important}}@media (min-width:1280px){.xl\:h-2\/5-screen{height:40vh!important}.xl\:w-108{width:27rem!important}.xl\:w-1\/2{width:50%!important}.xl\:w-1\/4{width:25%!important}.xl\:w-2\/4{width:50%!important}.xl\:w-2\/6-screen{width:33.33vw!important}.xl\:w-2\/5-screen{width:40vw!important}.xl\:w-1\/3-screen{width:33.33vw!important}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))!important}.xl\:border-none{border-style:none!important}.xl\:text-xl{font-size:1.25rem!important;line-height:1.75rem!important}}@media print{.print\:w-1\/2{width:50%!important}.print\:w-1\/3{width:33.333333%!important}} +/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-webkit-text-size-adjust:100%;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin:0}hr{color:inherit;height:0}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{border:0 solid;box-sizing:border-box}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{color:inherit;line-height:inherit;padding:0}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.static{position:static!important}.fixed{position:fixed!important}.absolute{position:absolute!important}.relative{position:relative!important}.inset-y-0{bottom:0!important}.inset-y-0,.top-0{top:0!important}.top-4{top:1rem!important}.-top-10{top:-5em!important}.right-4{right:1rem!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.isolate{isolation:isolate!important}.z-10{z-index:10!important}.z-30{z-index:30!important}.z-40{z-index:40!important}.z-50{z-index:50!important}.col-span-2{grid-column:span 2/span 2!important}.col-span-3{grid-column:span 3/span 3!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-4{margin:1rem!important}.-m-2{margin:-.5rem!important}.-m-3{margin:-.75rem!important}.-m-4{margin:-1rem!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.-mx-1{margin-left:-.25rem!important;margin-right:-.25rem!important}.-mx-2{margin-left:-.5rem!important;margin-right:-.5rem!important}.-mx-3{margin-left:-.75rem!important;margin-right:-.75rem!important}.-mx-4{margin-left:-1rem!important;margin-right:-1rem!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-3{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-4{margin-bottom:1rem!important;margin-top:1rem!important}.my-5{margin-bottom:1.25rem!important;margin-top:1.25rem!important}.-my-1{margin-bottom:-.25rem!important;margin-top:-.25rem!important}.-my-2{margin-bottom:-.5rem!important;margin-top:-.5rem!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-4{margin-top:1rem!important}.-mt-4{margin-top:-1rem!important}.-mt-8{margin-top:-2rem!important}.mr-1{margin-right:.25rem!important}.mr-2{margin-right:.5rem!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:.75rem!important}.mb-4{margin-bottom:1rem!important}.mb-6{margin-bottom:1.5rem!important}.mb-8{margin-bottom:2rem!important}.-mb-2{margin-bottom:-.5rem!important}.-mb-6{margin-bottom:-1.5rem!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.5rem!important}.ml-3{margin-left:.75rem!important}.-ml-6{margin-left:-1.5rem!important}.-ml-32{margin-left:-8rem!important}.block{display:block!important}.inline-block{display:inline-block!important}.inline{display:inline!important}.flex{display:flex!important}.table{display:table!important}.grid{display:grid!important}.contents{display:contents!important}.hidden{display:none!important}.h-0{height:0!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.h-10{height:2.5rem!important}.h-12{height:3rem!important}.h-14{height:3.5rem!important}.h-16{height:4rem!important}.h-20{height:5rem!important}.h-24{height:6rem!important}.h-28{height:7rem!important}.h-32{height:8rem!important}.h-36{height:9rem!important}.h-40{height:10rem!important}.h-44{height:11rem!important}.h-48{height:12rem!important}.h-52{height:13rem!important}.h-56{height:14rem!important}.h-64{height:16rem!important}.h-72{height:18rem!important}.h-84{height:21rem!important}.h-96{height:24rem!important}.h-120{height:30rem!important}.h-full{height:100%!important}.h-screen{height:100vh!important}.h-6\/7-screen{height:85.71vh!important}.h-5\/7-screen{height:71.42vh!important}.h-3\/5-screen{height:60vh!important}.h-2\/5-screen{height:40vh!important}.h-half{height:50vh!important}.h-95vh{height:95vh!important}.min-h-2\/5-screen{min-height:40vh!important}.w-0{width:0!important}.w-3{width:.75rem!important}.w-6{width:1.5rem!important}.w-8{width:2rem!important}.w-10{width:2.5rem!important}.w-12{width:3rem!important}.w-14{width:3.5rem!important}.w-16{width:4rem!important}.w-24{width:6rem!important}.w-28{width:7rem!important}.w-32{width:8rem!important}.w-36{width:9rem!important}.w-40{width:10rem!important}.w-48{width:12rem!important}.w-56{width:14rem!important}.w-64{width:16rem!important}.w-72{width:18rem!important}.w-1\/2{width:50%!important}.w-1\/3{width:33.333333%!important}.w-1\/4{width:25%!important}.w-3\/4{width:75%!important}.w-3\/5{width:60%!important}.w-1\/6{width:16.666667%!important}.w-11\/12{width:91.666667%!important}.w-full{width:100%!important}.w-screen{width:100vw!important}.w-6\/7-screen{width:85.71vw!important}.w-5\/7-screen{width:71.42vw!important}.w-4\/5-screen{width:80vw!important}.w-3\/4-screen{width:75vw!important}.w-2\/3-screen{width:66.66vw!important}.w-95vw{width:95vw!important}.flex-auto{flex:1 1 auto!important}.flex-shrink-0{flex-shrink:0!important}.origin-bottom-right{transform-origin:bottom right!important}.transform{--tw-translate-x:0!important;--tw-translate-y:0!important;--tw-rotate:0!important;--tw-skew-x:0!important;--tw-skew-y:0!important;--tw-scale-x:1!important;--tw-scale-y:1!important;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes bounce{0%,to{-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-spin{-webkit-animation:spin 1s linear infinite!important;animation:spin 1s linear infinite!important}.cursor-pointer{cursor:pointer!important}.cursor-not-allowed{cursor:not-allowed!important}.resize{resize:both!important}.grid-flow-row{grid-auto-flow:row!important}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))!important}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))!important}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))!important}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))!important}.flex-row{flex-direction:row!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-col{flex-direction:column!important}.flex-col-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.items-start{align-items:flex-start!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.gap-0{gap:0!important}.gap-2{gap:.5rem!important}.divide-y-4>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0!important;border-bottom-width:calc(4px*var(--tw-divide-y-reverse))!important;border-top-width:calc(4px*(1 - var(--tw-divide-y-reverse)))!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-scroll{overflow-y:scroll!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.whitespace-pre-wrap{white-space:pre-wrap!important}.rounded{border-radius:.25rem!important}.rounded-md{border-radius:.375rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-full{border-radius:9999px!important}.rounded-t-lg{border-top-left-radius:.5rem!important;border-top-right-radius:.5rem!important}.rounded-tl{border-top-left-radius:.25rem!important}.rounded-tl-lg{border-top-left-radius:.5rem!important}.rounded-tr{border-top-right-radius:.25rem!important}.rounded-tr-lg{border-top-right-radius:.5rem!important}.rounded-br-lg{border-bottom-right-radius:.5rem!important}.rounded-bl-lg{border-bottom-left-radius:.5rem!important}.border-0{border-width:0!important}.border-2{border-width:2px!important}.border-4{border-width:4px!important}.border{border-width:1px!important}.border-t-0{border-top-width:0!important}.border-t-2{border-top-width:2px!important}.border-t{border-top-width:1px!important}.border-r-0{border-right-width:0!important}.border-r-2{border-right-width:2px!important}.border-r{border-right-width:1px!important}.border-b-0{border-bottom-width:0!important}.border-b-2{border-bottom-width:2px!important}.border-b{border-bottom-width:1px!important}.border-l-0{border-left-width:0!important}.border-l-2{border-left-width:2px!important}.border-l-4{border-left-width:4px!important}.border-l-8{border-left-width:8px!important}.border-l{border-left-width:1px!important}.border-dashed{border-style:dashed!important}.border-transparent{border-color:transparent!important}.border-black{border-color:rgba(0,0,0,var(--tw-border-opacity))!important}.border-black,.border-white{--tw-border-opacity:1!important}.border-white{border-color:rgba(255,255,255,var(--tw-border-opacity))!important}.border-gray-100{--tw-border-opacity:1!important;border-color:rgba(243,244,246,var(--tw-border-opacity))!important}.border-gray-200{--tw-border-opacity:1!important;border-color:rgba(229,231,235,var(--tw-border-opacity))!important}.border-gray-300{--tw-border-opacity:1!important;border-color:rgba(209,213,219,var(--tw-border-opacity))!important}.border-gray-400{--tw-border-opacity:1!important;border-color:rgba(156,163,175,var(--tw-border-opacity))!important}.border-gray-500{--tw-border-opacity:1!important;border-color:rgba(107,114,128,var(--tw-border-opacity))!important}.border-gray-600{--tw-border-opacity:1!important;border-color:rgba(75,85,99,var(--tw-border-opacity))!important}.border-gray-700{--tw-border-opacity:1!important;border-color:rgba(55,65,81,var(--tw-border-opacity))!important}.border-gray-800{--tw-border-opacity:1!important;border-color:rgba(31,41,55,var(--tw-border-opacity))!important}.border-red-200{--tw-border-opacity:1!important;border-color:rgba(254,202,202,var(--tw-border-opacity))!important}.border-red-300{--tw-border-opacity:1!important;border-color:rgba(252,165,165,var(--tw-border-opacity))!important}.border-red-400{--tw-border-opacity:1!important;border-color:rgba(248,113,113,var(--tw-border-opacity))!important}.border-red-500{--tw-border-opacity:1!important;border-color:rgba(239,68,68,var(--tw-border-opacity))!important}.border-red-600{--tw-border-opacity:1!important;border-color:rgba(220,38,38,var(--tw-border-opacity))!important}.border-green-200{--tw-border-opacity:1!important;border-color:rgba(167,243,208,var(--tw-border-opacity))!important}.border-green-400{--tw-border-opacity:1!important;border-color:rgba(52,211,153,var(--tw-border-opacity))!important}.border-green-600{--tw-border-opacity:1!important;border-color:rgba(5,150,105,var(--tw-border-opacity))!important}.border-blue-200{--tw-border-opacity:1!important;border-color:rgba(191,219,254,var(--tw-border-opacity))!important}.border-blue-300{--tw-border-opacity:1!important;border-color:rgba(147,197,253,var(--tw-border-opacity))!important}.border-blue-400{--tw-border-opacity:1!important;border-color:rgba(96,165,250,var(--tw-border-opacity))!important}.border-blue-500{--tw-border-opacity:1!important;border-color:rgba(59,130,246,var(--tw-border-opacity))!important}.border-blue-600{--tw-border-opacity:1!important;border-color:rgba(37,99,235,var(--tw-border-opacity))!important}.border-blue-800{--tw-border-opacity:1!important;border-color:rgba(30,64,175,var(--tw-border-opacity))!important}.border-indigo-200{--tw-border-opacity:1!important;border-color:rgba(199,210,254,var(--tw-border-opacity))!important}.border-indigo-400{--tw-border-opacity:1!important;border-color:rgba(129,140,248,var(--tw-border-opacity))!important}.border-purple-300{--tw-border-opacity:1!important;border-color:rgba(196,181,253,var(--tw-border-opacity))!important}.border-teal-200{--tw-border-opacity:1!important;border-color:rgba(153,246,228,var(--tw-border-opacity))!important}.border-orange-300{--tw-border-opacity:1!important;border-color:rgba(253,186,116,var(--tw-border-opacity))!important}.hover\:border-transparent:hover{border-color:transparent!important}.hover\:border-red-400:hover{--tw-border-opacity:1!important;border-color:rgba(248,113,113,var(--tw-border-opacity))!important}.hover\:border-red-500:hover{--tw-border-opacity:1!important;border-color:rgba(239,68,68,var(--tw-border-opacity))!important}.hover\:border-red-600:hover{--tw-border-opacity:1!important;border-color:rgba(220,38,38,var(--tw-border-opacity))!important}.hover\:border-green-500:hover{--tw-border-opacity:1!important;border-color:rgba(16,185,129,var(--tw-border-opacity))!important}.hover\:border-green-600:hover{--tw-border-opacity:1!important;border-color:rgba(5,150,105,var(--tw-border-opacity))!important}.hover\:border-blue-400:hover{--tw-border-opacity:1!important;border-color:rgba(96,165,250,var(--tw-border-opacity))!important}.hover\:border-blue-500:hover{--tw-border-opacity:1!important;border-color:rgba(59,130,246,var(--tw-border-opacity))!important}.hover\:border-blue-600:hover{--tw-border-opacity:1!important;border-color:rgba(37,99,235,var(--tw-border-opacity))!important}.hover\:border-teal-500:hover{--tw-border-opacity:1!important;border-color:rgba(20,184,166,var(--tw-border-opacity))!important}.focus\:border-blue-400:focus{--tw-border-opacity:1!important;border-color:rgba(96,165,250,var(--tw-border-opacity))!important}.hover\:border-opacity-0:hover{--tw-border-opacity:0!important}.bg-transparent{background-color:transparent!important}.bg-black{background-color:rgba(0,0,0,var(--tw-bg-opacity))!important}.bg-black,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgba(255,255,255,var(--tw-bg-opacity))!important}.bg-gray-50{background-color:rgba(249,250,251,var(--tw-bg-opacity))!important}.bg-gray-50,.bg-gray-100{--tw-bg-opacity:1!important}.bg-gray-100{background-color:rgba(243,244,246,var(--tw-bg-opacity))!important}.bg-gray-200{background-color:rgba(229,231,235,var(--tw-bg-opacity))!important}.bg-gray-200,.bg-gray-300{--tw-bg-opacity:1!important}.bg-gray-300{background-color:rgba(209,213,219,var(--tw-bg-opacity))!important}.bg-gray-400{background-color:rgba(156,163,175,var(--tw-bg-opacity))!important}.bg-gray-400,.bg-gray-500{--tw-bg-opacity:1!important}.bg-gray-500{background-color:rgba(107,114,128,var(--tw-bg-opacity))!important}.bg-gray-600{background-color:rgba(75,85,99,var(--tw-bg-opacity))!important}.bg-gray-600,.bg-gray-700{--tw-bg-opacity:1!important}.bg-gray-700{background-color:rgba(55,65,81,var(--tw-bg-opacity))!important}.bg-gray-800{background-color:rgba(31,41,55,var(--tw-bg-opacity))!important}.bg-gray-800,.bg-gray-900{--tw-bg-opacity:1!important}.bg-gray-900{background-color:rgba(17,24,39,var(--tw-bg-opacity))!important}.bg-red-50{background-color:rgba(254,242,242,var(--tw-bg-opacity))!important}.bg-red-50,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgba(254,226,226,var(--tw-bg-opacity))!important}.bg-red-200{background-color:rgba(254,202,202,var(--tw-bg-opacity))!important}.bg-red-200,.bg-red-400{--tw-bg-opacity:1!important}.bg-red-400{background-color:rgba(248,113,113,var(--tw-bg-opacity))!important}.bg-red-500{background-color:rgba(239,68,68,var(--tw-bg-opacity))!important}.bg-red-500,.bg-red-600{--tw-bg-opacity:1!important}.bg-red-600{background-color:rgba(220,38,38,var(--tw-bg-opacity))!important}.bg-yellow-100{--tw-bg-opacity:1!important;background-color:rgba(254,243,199,var(--tw-bg-opacity))!important}.bg-yellow-200{--tw-bg-opacity:1!important;background-color:rgba(253,230,138,var(--tw-bg-opacity))!important}.bg-yellow-400{--tw-bg-opacity:1!important;background-color:rgba(251,191,36,var(--tw-bg-opacity))!important}.bg-yellow-500{--tw-bg-opacity:1!important;background-color:rgba(245,158,11,var(--tw-bg-opacity))!important}.bg-green-50{background-color:rgba(236,253,245,var(--tw-bg-opacity))!important}.bg-green-50,.bg-green-100{--tw-bg-opacity:1!important}.bg-green-100{background-color:rgba(209,250,229,var(--tw-bg-opacity))!important}.bg-green-200{--tw-bg-opacity:1!important;background-color:rgba(167,243,208,var(--tw-bg-opacity))!important}.bg-green-400{--tw-bg-opacity:1!important;background-color:rgba(52,211,153,var(--tw-bg-opacity))!important}.bg-green-500{background-color:rgba(16,185,129,var(--tw-bg-opacity))!important}.bg-blue-50,.bg-green-500{--tw-bg-opacity:1!important}.bg-blue-50{background-color:rgba(239,246,255,var(--tw-bg-opacity))!important}.bg-blue-100{background-color:rgba(219,234,254,var(--tw-bg-opacity))!important}.bg-blue-100,.bg-blue-200{--tw-bg-opacity:1!important}.bg-blue-200{background-color:rgba(191,219,254,var(--tw-bg-opacity))!important}.bg-blue-300{background-color:rgba(147,197,253,var(--tw-bg-opacity))!important}.bg-blue-300,.bg-blue-400{--tw-bg-opacity:1!important}.bg-blue-400{background-color:rgba(96,165,250,var(--tw-bg-opacity))!important}.bg-blue-500{background-color:rgba(59,130,246,var(--tw-bg-opacity))!important}.bg-blue-500,.bg-blue-800{--tw-bg-opacity:1!important}.bg-blue-800{background-color:rgba(30,64,175,var(--tw-bg-opacity))!important}.bg-indigo-100{--tw-bg-opacity:1!important;background-color:rgba(224,231,255,var(--tw-bg-opacity))!important}.bg-indigo-400{--tw-bg-opacity:1!important;background-color:rgba(129,140,248,var(--tw-bg-opacity))!important}.bg-purple-200{--tw-bg-opacity:1!important;background-color:rgba(221,214,254,var(--tw-bg-opacity))!important}.bg-purple-400{--tw-bg-opacity:1!important;background-color:rgba(167,139,250,var(--tw-bg-opacity))!important}.bg-teal-100{background-color:rgba(204,251,241,var(--tw-bg-opacity))!important}.bg-teal-100,.bg-teal-200{--tw-bg-opacity:1!important}.bg-teal-200{background-color:rgba(153,246,228,var(--tw-bg-opacity))!important}.bg-teal-400{background-color:rgba(45,212,191,var(--tw-bg-opacity))!important}.bg-teal-400,.bg-teal-500{--tw-bg-opacity:1!important}.bg-teal-500{background-color:rgba(20,184,166,var(--tw-bg-opacity))!important}.bg-orange-200{--tw-bg-opacity:1!important;background-color:rgba(254,215,170,var(--tw-bg-opacity))!important}.bg-orange-400{--tw-bg-opacity:1!important;background-color:rgba(251,146,60,var(--tw-bg-opacity))!important}.hover\:bg-white:hover{--tw-bg-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important}.hover\:bg-gray-100:hover{--tw-bg-opacity:1!important;background-color:rgba(243,244,246,var(--tw-bg-opacity))!important}.hover\:bg-gray-200:hover{--tw-bg-opacity:1!important;background-color:rgba(229,231,235,var(--tw-bg-opacity))!important}.hover\:bg-gray-300:hover{--tw-bg-opacity:1!important;background-color:rgba(209,213,219,var(--tw-bg-opacity))!important}.hover\:bg-gray-400:hover{--tw-bg-opacity:1!important;background-color:rgba(156,163,175,var(--tw-bg-opacity))!important}.hover\:bg-gray-700:hover{--tw-bg-opacity:1!important;background-color:rgba(55,65,81,var(--tw-bg-opacity))!important}.hover\:bg-red-100:hover{--tw-bg-opacity:1!important;background-color:rgba(254,226,226,var(--tw-bg-opacity))!important}.hover\:bg-red-200:hover{--tw-bg-opacity:1!important;background-color:rgba(254,202,202,var(--tw-bg-opacity))!important}.hover\:bg-red-400:hover{--tw-bg-opacity:1!important;background-color:rgba(248,113,113,var(--tw-bg-opacity))!important}.hover\:bg-red-500:hover{--tw-bg-opacity:1!important;background-color:rgba(239,68,68,var(--tw-bg-opacity))!important}.hover\:bg-red-600:hover{--tw-bg-opacity:1!important;background-color:rgba(220,38,38,var(--tw-bg-opacity))!important}.hover\:bg-green-100:hover{--tw-bg-opacity:1!important;background-color:rgba(209,250,229,var(--tw-bg-opacity))!important}.hover\:bg-green-500:hover{--tw-bg-opacity:1!important;background-color:rgba(16,185,129,var(--tw-bg-opacity))!important}.hover\:bg-green-600:hover{--tw-bg-opacity:1!important;background-color:rgba(5,150,105,var(--tw-bg-opacity))!important}.hover\:bg-blue-50:hover{--tw-bg-opacity:1!important;background-color:rgba(239,246,255,var(--tw-bg-opacity))!important}.hover\:bg-blue-100:hover{--tw-bg-opacity:1!important;background-color:rgba(219,234,254,var(--tw-bg-opacity))!important}.hover\:bg-blue-200:hover{--tw-bg-opacity:1!important;background-color:rgba(191,219,254,var(--tw-bg-opacity))!important}.hover\:bg-blue-400:hover{--tw-bg-opacity:1!important;background-color:rgba(96,165,250,var(--tw-bg-opacity))!important}.hover\:bg-blue-500:hover{--tw-bg-opacity:1!important;background-color:rgba(59,130,246,var(--tw-bg-opacity))!important}.hover\:bg-blue-600:hover{--tw-bg-opacity:1!important;background-color:rgba(37,99,235,var(--tw-bg-opacity))!important}.hover\:bg-indigo-100:hover{--tw-bg-opacity:1!important;background-color:rgba(224,231,255,var(--tw-bg-opacity))!important}.hover\:bg-teal-100:hover{--tw-bg-opacity:1!important;background-color:rgba(204,251,241,var(--tw-bg-opacity))!important}.hover\:bg-teal-500:hover{--tw-bg-opacity:1!important;background-color:rgba(20,184,166,var(--tw-bg-opacity))!important}.focus\:bg-gray-100:focus{--tw-bg-opacity:1!important;background-color:rgba(243,244,246,var(--tw-bg-opacity))!important}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))!important}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))!important}.bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--tw-gradient-stops))!important}.from-red-300{--tw-gradient-from:#fca5a5!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,hsla(0,94%,82%,0))!important}.from-red-400{--tw-gradient-from:#f87171!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,hsla(0,91%,71%,0))!important}.from-red-500{--tw-gradient-from:#ef4444!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(239,68,68,0))!important}.from-green-400{--tw-gradient-from:#34d399!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(52,211,153,0))!important}.from-blue-200{--tw-gradient-from:#bfdbfe!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(191,219,254,0))!important}.from-blue-400{--tw-gradient-from:#60a5fa!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(96,165,250,0))!important}.from-blue-500{--tw-gradient-from:#3b82f6!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(59,130,246,0))!important}.from-indigo-400{--tw-gradient-from:#818cf8!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(129,140,248,0))!important}.from-purple-400{--tw-gradient-from:#a78bfa!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(167,139,250,0))!important}.from-purple-500{--tw-gradient-from:#8b5cf6!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(139,92,246,0))!important}.from-pink-400{--tw-gradient-from:#f472b6!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(244,114,182,0))!important}.via-red-400{--tw-gradient-stops:var(--tw-gradient-from),#f87171,var(--tw-gradient-to,hsla(0,91%,71%,0))!important}.to-red-500{--tw-gradient-to:#ef4444!important}.to-red-600{--tw-gradient-to:#dc2626!important}.to-red-700{--tw-gradient-to:#b91c1c!important}.to-green-600{--tw-gradient-to:#059669!important}.to-green-700{--tw-gradient-to:#047857!important}.to-blue-400{--tw-gradient-to:#60a5fa!important}.to-blue-600{--tw-gradient-to:#2563eb!important}.to-blue-700{--tw-gradient-to:#1d4ed8!important}.to-indigo-400{--tw-gradient-to:#818cf8!important}.to-indigo-500{--tw-gradient-to:#6366f1!important}.to-indigo-600{--tw-gradient-to:#4f46e5!important}.to-purple-600{--tw-gradient-to:#7c3aed!important}.to-pink-500{--tw-gradient-to:#ec4899!important}.to-teal-500{--tw-gradient-to:#14b8a6!important}.bg-clip-text{-webkit-background-clip:text!important;background-clip:text!important}.object-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-cover{-o-object-fit:cover!important;object-fit:cover!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:.75rem!important}.p-4{padding:1rem!important}.p-8{padding:2rem!important}.p-10{padding:2.5rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-3{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.py-5{padding-bottom:1.25rem!important;padding-top:1.25rem!important}.py-6{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-10{padding-bottom:2.5rem!important;padding-top:2.5rem!important}.pt-2{padding-top:.5rem!important}.pt-6{padding-top:1.5rem!important}.pr-1{padding-right:.25rem!important}.pr-2{padding-right:.5rem!important}.pr-8{padding-right:2rem!important}.pr-12{padding-right:3rem!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-4{padding-bottom:1rem!important}.pb-10{padding-bottom:2.5rem!important}.pl-1{padding-left:.25rem!important}.pl-2{padding-left:.5rem!important}.pl-3{padding-left:.75rem!important}.pl-7{padding-left:1.75rem!important}.pl-8{padding-left:2rem!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.font-body{font-family:Graphik,sans-serif!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-lg{font-size:1.125rem!important}.text-lg,.text-xl{line-height:1.75rem!important}.text-xl{font-size:1.25rem!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important}.text-5xl,.text-6xl{line-height:1!important}.text-6xl{font-size:3.75rem!important}.text-8xl{font-size:6rem!important}.text-8xl,.text-9xl{line-height:1!important}.text-9xl{font-size:8rem!important}.font-medium{font-weight:500!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.font-black{font-weight:900!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.italic{font-style:italic!important}.leading-5{line-height:1.25rem!important}.text-transparent{color:transparent!important}.text-white{color:rgba(255,255,255,var(--tw-text-opacity))!important}.text-gray-100,.text-white{--tw-text-opacity:1!important}.text-gray-100{color:rgba(243,244,246,var(--tw-text-opacity))!important}.text-gray-200{--tw-text-opacity:1!important;color:rgba(229,231,235,var(--tw-text-opacity))!important}.text-gray-300{--tw-text-opacity:1!important;color:rgba(209,213,219,var(--tw-text-opacity))!important}.text-gray-400{--tw-text-opacity:1!important;color:rgba(156,163,175,var(--tw-text-opacity))!important}.text-gray-500{--tw-text-opacity:1!important;color:rgba(107,114,128,var(--tw-text-opacity))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgba(75,85,99,var(--tw-text-opacity))!important}.text-gray-700{--tw-text-opacity:1!important;color:rgba(55,65,81,var(--tw-text-opacity))!important}.text-gray-800{--tw-text-opacity:1!important;color:rgba(31,41,55,var(--tw-text-opacity))!important}.text-gray-900{color:rgba(17,24,39,var(--tw-text-opacity))!important}.text-gray-900,.text-red-400{--tw-text-opacity:1!important}.text-red-400{color:rgba(248,113,113,var(--tw-text-opacity))!important}.text-red-500{color:rgba(239,68,68,var(--tw-text-opacity))!important}.text-red-500,.text-red-600{--tw-text-opacity:1!important}.text-red-600{color:rgba(220,38,38,var(--tw-text-opacity))!important}.text-red-700{color:rgba(185,28,28,var(--tw-text-opacity))!important}.text-red-700,.text-red-800{--tw-text-opacity:1!important}.text-red-800{color:rgba(153,27,27,var(--tw-text-opacity))!important}.text-green-500{--tw-text-opacity:1!important;color:rgba(16,185,129,var(--tw-text-opacity))!important}.text-green-600{--tw-text-opacity:1!important;color:rgba(5,150,105,var(--tw-text-opacity))!important}.text-green-700{--tw-text-opacity:1!important;color:rgba(4,120,87,var(--tw-text-opacity))!important}.text-blue-500{--tw-text-opacity:1!important;color:rgba(59,130,246,var(--tw-text-opacity))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgba(37,99,235,var(--tw-text-opacity))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgba(29,78,216,var(--tw-text-opacity))!important}.hover\:text-white:hover{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}.hover\:text-gray-700:hover{--tw-text-opacity:1!important;color:rgba(55,65,81,var(--tw-text-opacity))!important}.hover\:text-gray-800:hover{--tw-text-opacity:1!important;color:rgba(31,41,55,var(--tw-text-opacity))!important}.hover\:text-gray-900:hover{--tw-text-opacity:1!important;color:rgba(17,24,39,var(--tw-text-opacity))!important}.hover\:text-red-400:hover{--tw-text-opacity:1!important;color:rgba(248,113,113,var(--tw-text-opacity))!important}.hover\:text-red-500:hover{--tw-text-opacity:1!important;color:rgba(239,68,68,var(--tw-text-opacity))!important}.hover\:text-green-700:hover{--tw-text-opacity:1!important;color:rgba(4,120,87,var(--tw-text-opacity))!important}.hover\:text-blue-400:hover{--tw-text-opacity:1!important;color:rgba(96,165,250,var(--tw-text-opacity))!important}.hover\:text-blue-600:hover{--tw-text-opacity:1!important;color:rgba(37,99,235,var(--tw-text-opacity))!important}.focus\:text-gray-900:focus{--tw-text-opacity:1!important;color:rgba(17,24,39,var(--tw-text-opacity))!important}.hover\:underline:hover,.underline{text-decoration:underline!important}.opacity-0{opacity:0!important}*,:after,:before{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)!important}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)!important}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)!important}.shadow-lg,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)!important}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,0.06)!important}.hover\:shadow-lg:hover,.shadow-inner{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)!important}.hover\:shadow-none:hover{--tw-shadow:0 0 #0000!important}.focus\:shadow-sm:focus,.hover\:shadow-none:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.focus\:shadow-sm:focus{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)!important}.focus\:outline-none:focus,.outline-none{outline:2px solid transparent!important;outline-offset:2px!important}*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.ring-blue-500{--tw-ring-opacity:1!important;--tw-ring-color:rgba(59,130,246,var(--tw-ring-opacity))!important}.ring-opacity-50{--tw-ring-opacity:0.5!important}.filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/)!important;--tw-brightness:var(--tw-empty,/*!*/ /*!*/)!important;--tw-contrast:var(--tw-empty,/*!*/ /*!*/)!important;--tw-grayscale:var(--tw-empty,/*!*/ /*!*/)!important;--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-invert:var(--tw-empty,/*!*/ /*!*/)!important;--tw-saturate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-sepia:var(--tw-empty,/*!*/ /*!*/)!important;--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/)!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.blur{--tw-blur:blur(8px)!important}.transition-all{transition-duration:.15s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.transition{transition-duration:.15s!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.duration-100{transition-duration:.1s!important}.ease-linear{transition-timing-function:linear!important}@-webkit-keyframes ZoomOutEntrance{0%{opacity:0;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes ZoomOutEntrance{0%{opacity:0;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes ZoomInEntrance{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes ZoomInEntrance{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes ZoomOutExit{0%{opacity:0;transform:scale(1)}to{opacity:1;transform:scale(.9)}}@keyframes ZoomOutExit{0%{opacity:0;transform:scale(1)}to{opacity:1;transform:scale(.9)}}@-webkit-keyframes ZoomInExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}@keyframes ZoomInExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}@-webkit-keyframes FadeInEntrance{0%{opacity:0}70%{opacity:.5}to{opacity:1}}@keyframes FadeInEntrance{0%{opacity:0}70%{opacity:.5}to{opacity:1}}@-webkit-keyframes FadeOutExit{0%{opacity:1}70%{opacity:.5}to{opacity:0}}@keyframes FadeOutExit{0%{opacity:1}70%{opacity:.5}to{opacity:0}}.zoom-out-entrance{-webkit-animation:ZoomOutEntrance .5s;animation:ZoomOutEntrance .5s}.zoom-in-entrance{-webkit-animation:ZoomInEntrance;animation:ZoomInEntrance}.zoom-in-exit{-webkit-animation:ZoomInExit .3s;animation:ZoomInExit .3s}.zoom-out-exit{-webkit-animation:ZoomOutExit;animation:ZoomOutExit}.fade-in-entrance{-webkit-animation:FadeInEntrance;animation:FadeInEntrance}.fade-out-exit{-webkit-animation:FadeOutExit;animation:FadeOutExit}.anim-duration-100{-webkit-animation-duration:.1s;animation-duration:.1s}.anim-duration-101{-webkit-animation-duration:101ms;animation-duration:101ms}.anim-duration-102{-webkit-animation-duration:102ms;animation-duration:102ms}.anim-duration-103{-webkit-animation-duration:103ms;animation-duration:103ms}.anim-duration-104{-webkit-animation-duration:104ms;animation-duration:104ms}.anim-duration-105{-webkit-animation-duration:105ms;animation-duration:105ms}.anim-duration-106{-webkit-animation-duration:106ms;animation-duration:106ms}.anim-duration-107{-webkit-animation-duration:107ms;animation-duration:107ms}.anim-duration-108{-webkit-animation-duration:108ms;animation-duration:108ms}.anim-duration-109{-webkit-animation-duration:109ms;animation-duration:109ms}.anim-duration-110{-webkit-animation-duration:.11s;animation-duration:.11s}.anim-duration-111{-webkit-animation-duration:111ms;animation-duration:111ms}.anim-duration-112{-webkit-animation-duration:112ms;animation-duration:112ms}.anim-duration-113{-webkit-animation-duration:113ms;animation-duration:113ms}.anim-duration-114{-webkit-animation-duration:114ms;animation-duration:114ms}.anim-duration-115{-webkit-animation-duration:115ms;animation-duration:115ms}.anim-duration-116{-webkit-animation-duration:116ms;animation-duration:116ms}.anim-duration-117{-webkit-animation-duration:117ms;animation-duration:117ms}.anim-duration-118{-webkit-animation-duration:118ms;animation-duration:118ms}.anim-duration-119{-webkit-animation-duration:119ms;animation-duration:119ms}.anim-duration-120{-webkit-animation-duration:.12s;animation-duration:.12s}.anim-duration-121{-webkit-animation-duration:121ms;animation-duration:121ms}.anim-duration-122{-webkit-animation-duration:122ms;animation-duration:122ms}.anim-duration-123{-webkit-animation-duration:123ms;animation-duration:123ms}.anim-duration-124{-webkit-animation-duration:124ms;animation-duration:124ms}.anim-duration-125{-webkit-animation-duration:125ms;animation-duration:125ms}.anim-duration-126{-webkit-animation-duration:126ms;animation-duration:126ms}.anim-duration-127{-webkit-animation-duration:127ms;animation-duration:127ms}.anim-duration-128{-webkit-animation-duration:128ms;animation-duration:128ms}.anim-duration-129{-webkit-animation-duration:129ms;animation-duration:129ms}.anim-duration-130{-webkit-animation-duration:.13s;animation-duration:.13s}.anim-duration-131{-webkit-animation-duration:131ms;animation-duration:131ms}.anim-duration-132{-webkit-animation-duration:132ms;animation-duration:132ms}.anim-duration-133{-webkit-animation-duration:133ms;animation-duration:133ms}.anim-duration-134{-webkit-animation-duration:134ms;animation-duration:134ms}.anim-duration-135{-webkit-animation-duration:135ms;animation-duration:135ms}.anim-duration-136{-webkit-animation-duration:136ms;animation-duration:136ms}.anim-duration-137{-webkit-animation-duration:137ms;animation-duration:137ms}.anim-duration-138{-webkit-animation-duration:138ms;animation-duration:138ms}.anim-duration-139{-webkit-animation-duration:139ms;animation-duration:139ms}.anim-duration-140{-webkit-animation-duration:.14s;animation-duration:.14s}.anim-duration-141{-webkit-animation-duration:141ms;animation-duration:141ms}.anim-duration-142{-webkit-animation-duration:142ms;animation-duration:142ms}.anim-duration-143{-webkit-animation-duration:143ms;animation-duration:143ms}.anim-duration-144{-webkit-animation-duration:144ms;animation-duration:144ms}.anim-duration-145{-webkit-animation-duration:145ms;animation-duration:145ms}.anim-duration-146{-webkit-animation-duration:146ms;animation-duration:146ms}.anim-duration-147{-webkit-animation-duration:147ms;animation-duration:147ms}.anim-duration-148{-webkit-animation-duration:148ms;animation-duration:148ms}.anim-duration-149{-webkit-animation-duration:149ms;animation-duration:149ms}.anim-duration-150{-webkit-animation-duration:.15s;animation-duration:.15s}.anim-duration-151{-webkit-animation-duration:151ms;animation-duration:151ms}.anim-duration-152{-webkit-animation-duration:152ms;animation-duration:152ms}.anim-duration-153{-webkit-animation-duration:153ms;animation-duration:153ms}.anim-duration-154{-webkit-animation-duration:154ms;animation-duration:154ms}.anim-duration-155{-webkit-animation-duration:155ms;animation-duration:155ms}.anim-duration-156{-webkit-animation-duration:156ms;animation-duration:156ms}.anim-duration-157{-webkit-animation-duration:157ms;animation-duration:157ms}.anim-duration-158{-webkit-animation-duration:158ms;animation-duration:158ms}.anim-duration-159{-webkit-animation-duration:159ms;animation-duration:159ms}.anim-duration-160{-webkit-animation-duration:.16s;animation-duration:.16s}.anim-duration-161{-webkit-animation-duration:161ms;animation-duration:161ms}.anim-duration-162{-webkit-animation-duration:162ms;animation-duration:162ms}.anim-duration-163{-webkit-animation-duration:163ms;animation-duration:163ms}.anim-duration-164{-webkit-animation-duration:164ms;animation-duration:164ms}.anim-duration-165{-webkit-animation-duration:165ms;animation-duration:165ms}.anim-duration-166{-webkit-animation-duration:166ms;animation-duration:166ms}.anim-duration-167{-webkit-animation-duration:167ms;animation-duration:167ms}.anim-duration-168{-webkit-animation-duration:168ms;animation-duration:168ms}.anim-duration-169{-webkit-animation-duration:169ms;animation-duration:169ms}.anim-duration-170{-webkit-animation-duration:.17s;animation-duration:.17s}.anim-duration-171{-webkit-animation-duration:171ms;animation-duration:171ms}.anim-duration-172{-webkit-animation-duration:172ms;animation-duration:172ms}.anim-duration-173{-webkit-animation-duration:173ms;animation-duration:173ms}.anim-duration-174{-webkit-animation-duration:174ms;animation-duration:174ms}.anim-duration-175{-webkit-animation-duration:175ms;animation-duration:175ms}.anim-duration-176{-webkit-animation-duration:176ms;animation-duration:176ms}.anim-duration-177{-webkit-animation-duration:177ms;animation-duration:177ms}.anim-duration-178{-webkit-animation-duration:178ms;animation-duration:178ms}.anim-duration-179{-webkit-animation-duration:179ms;animation-duration:179ms}.anim-duration-180{-webkit-animation-duration:.18s;animation-duration:.18s}.anim-duration-181{-webkit-animation-duration:181ms;animation-duration:181ms}.anim-duration-182{-webkit-animation-duration:182ms;animation-duration:182ms}.anim-duration-183{-webkit-animation-duration:183ms;animation-duration:183ms}.anim-duration-184{-webkit-animation-duration:184ms;animation-duration:184ms}.anim-duration-185{-webkit-animation-duration:185ms;animation-duration:185ms}.anim-duration-186{-webkit-animation-duration:186ms;animation-duration:186ms}.anim-duration-187{-webkit-animation-duration:187ms;animation-duration:187ms}.anim-duration-188{-webkit-animation-duration:188ms;animation-duration:188ms}.anim-duration-189{-webkit-animation-duration:189ms;animation-duration:189ms}.anim-duration-190{-webkit-animation-duration:.19s;animation-duration:.19s}.anim-duration-191{-webkit-animation-duration:191ms;animation-duration:191ms}.anim-duration-192{-webkit-animation-duration:192ms;animation-duration:192ms}.anim-duration-193{-webkit-animation-duration:193ms;animation-duration:193ms}.anim-duration-194{-webkit-animation-duration:194ms;animation-duration:194ms}.anim-duration-195{-webkit-animation-duration:195ms;animation-duration:195ms}.anim-duration-196{-webkit-animation-duration:196ms;animation-duration:196ms}.anim-duration-197{-webkit-animation-duration:197ms;animation-duration:197ms}.anim-duration-198{-webkit-animation-duration:198ms;animation-duration:198ms}.anim-duration-199{-webkit-animation-duration:199ms;animation-duration:199ms}.anim-duration-200{-webkit-animation-duration:.2s;animation-duration:.2s}.anim-duration-201{-webkit-animation-duration:201ms;animation-duration:201ms}.anim-duration-202{-webkit-animation-duration:202ms;animation-duration:202ms}.anim-duration-203{-webkit-animation-duration:203ms;animation-duration:203ms}.anim-duration-204{-webkit-animation-duration:204ms;animation-duration:204ms}.anim-duration-205{-webkit-animation-duration:205ms;animation-duration:205ms}.anim-duration-206{-webkit-animation-duration:206ms;animation-duration:206ms}.anim-duration-207{-webkit-animation-duration:207ms;animation-duration:207ms}.anim-duration-208{-webkit-animation-duration:208ms;animation-duration:208ms}.anim-duration-209{-webkit-animation-duration:209ms;animation-duration:209ms}.anim-duration-210{-webkit-animation-duration:.21s;animation-duration:.21s}.anim-duration-211{-webkit-animation-duration:211ms;animation-duration:211ms}.anim-duration-212{-webkit-animation-duration:212ms;animation-duration:212ms}.anim-duration-213{-webkit-animation-duration:213ms;animation-duration:213ms}.anim-duration-214{-webkit-animation-duration:214ms;animation-duration:214ms}.anim-duration-215{-webkit-animation-duration:215ms;animation-duration:215ms}.anim-duration-216{-webkit-animation-duration:216ms;animation-duration:216ms}.anim-duration-217{-webkit-animation-duration:217ms;animation-duration:217ms}.anim-duration-218{-webkit-animation-duration:218ms;animation-duration:218ms}.anim-duration-219{-webkit-animation-duration:219ms;animation-duration:219ms}.anim-duration-220{-webkit-animation-duration:.22s;animation-duration:.22s}.anim-duration-221{-webkit-animation-duration:221ms;animation-duration:221ms}.anim-duration-222{-webkit-animation-duration:222ms;animation-duration:222ms}.anim-duration-223{-webkit-animation-duration:223ms;animation-duration:223ms}.anim-duration-224{-webkit-animation-duration:224ms;animation-duration:224ms}.anim-duration-225{-webkit-animation-duration:225ms;animation-duration:225ms}.anim-duration-226{-webkit-animation-duration:226ms;animation-duration:226ms}.anim-duration-227{-webkit-animation-duration:227ms;animation-duration:227ms}.anim-duration-228{-webkit-animation-duration:228ms;animation-duration:228ms}.anim-duration-229{-webkit-animation-duration:229ms;animation-duration:229ms}.anim-duration-230{-webkit-animation-duration:.23s;animation-duration:.23s}.anim-duration-231{-webkit-animation-duration:231ms;animation-duration:231ms}.anim-duration-232{-webkit-animation-duration:232ms;animation-duration:232ms}.anim-duration-233{-webkit-animation-duration:233ms;animation-duration:233ms}.anim-duration-234{-webkit-animation-duration:234ms;animation-duration:234ms}.anim-duration-235{-webkit-animation-duration:235ms;animation-duration:235ms}.anim-duration-236{-webkit-animation-duration:236ms;animation-duration:236ms}.anim-duration-237{-webkit-animation-duration:237ms;animation-duration:237ms}.anim-duration-238{-webkit-animation-duration:238ms;animation-duration:238ms}.anim-duration-239{-webkit-animation-duration:239ms;animation-duration:239ms}.anim-duration-240{-webkit-animation-duration:.24s;animation-duration:.24s}.anim-duration-241{-webkit-animation-duration:241ms;animation-duration:241ms}.anim-duration-242{-webkit-animation-duration:242ms;animation-duration:242ms}.anim-duration-243{-webkit-animation-duration:243ms;animation-duration:243ms}.anim-duration-244{-webkit-animation-duration:244ms;animation-duration:244ms}.anim-duration-245{-webkit-animation-duration:245ms;animation-duration:245ms}.anim-duration-246{-webkit-animation-duration:246ms;animation-duration:246ms}.anim-duration-247{-webkit-animation-duration:247ms;animation-duration:247ms}.anim-duration-248{-webkit-animation-duration:248ms;animation-duration:248ms}.anim-duration-249{-webkit-animation-duration:249ms;animation-duration:249ms}.anim-duration-250{-webkit-animation-duration:.25s;animation-duration:.25s}.anim-duration-251{-webkit-animation-duration:251ms;animation-duration:251ms}.anim-duration-252{-webkit-animation-duration:252ms;animation-duration:252ms}.anim-duration-253{-webkit-animation-duration:253ms;animation-duration:253ms}.anim-duration-254{-webkit-animation-duration:254ms;animation-duration:254ms}.anim-duration-255{-webkit-animation-duration:255ms;animation-duration:255ms}.anim-duration-256{-webkit-animation-duration:256ms;animation-duration:256ms}.anim-duration-257{-webkit-animation-duration:257ms;animation-duration:257ms}.anim-duration-258{-webkit-animation-duration:258ms;animation-duration:258ms}.anim-duration-259{-webkit-animation-duration:259ms;animation-duration:259ms}.anim-duration-260{-webkit-animation-duration:.26s;animation-duration:.26s}.anim-duration-261{-webkit-animation-duration:261ms;animation-duration:261ms}.anim-duration-262{-webkit-animation-duration:262ms;animation-duration:262ms}.anim-duration-263{-webkit-animation-duration:263ms;animation-duration:263ms}.anim-duration-264{-webkit-animation-duration:264ms;animation-duration:264ms}.anim-duration-265{-webkit-animation-duration:265ms;animation-duration:265ms}.anim-duration-266{-webkit-animation-duration:266ms;animation-duration:266ms}.anim-duration-267{-webkit-animation-duration:267ms;animation-duration:267ms}.anim-duration-268{-webkit-animation-duration:268ms;animation-duration:268ms}.anim-duration-269{-webkit-animation-duration:269ms;animation-duration:269ms}.anim-duration-270{-webkit-animation-duration:.27s;animation-duration:.27s}.anim-duration-271{-webkit-animation-duration:271ms;animation-duration:271ms}.anim-duration-272{-webkit-animation-duration:272ms;animation-duration:272ms}.anim-duration-273{-webkit-animation-duration:273ms;animation-duration:273ms}.anim-duration-274{-webkit-animation-duration:274ms;animation-duration:274ms}.anim-duration-275{-webkit-animation-duration:275ms;animation-duration:275ms}.anim-duration-276{-webkit-animation-duration:276ms;animation-duration:276ms}.anim-duration-277{-webkit-animation-duration:277ms;animation-duration:277ms}.anim-duration-278{-webkit-animation-duration:278ms;animation-duration:278ms}.anim-duration-279{-webkit-animation-duration:279ms;animation-duration:279ms}.anim-duration-280{-webkit-animation-duration:.28s;animation-duration:.28s}.anim-duration-281{-webkit-animation-duration:281ms;animation-duration:281ms}.anim-duration-282{-webkit-animation-duration:282ms;animation-duration:282ms}.anim-duration-283{-webkit-animation-duration:283ms;animation-duration:283ms}.anim-duration-284{-webkit-animation-duration:284ms;animation-duration:284ms}.anim-duration-285{-webkit-animation-duration:285ms;animation-duration:285ms}.anim-duration-286{-webkit-animation-duration:286ms;animation-duration:286ms}.anim-duration-287{-webkit-animation-duration:287ms;animation-duration:287ms}.anim-duration-288{-webkit-animation-duration:288ms;animation-duration:288ms}.anim-duration-289{-webkit-animation-duration:289ms;animation-duration:289ms}.anim-duration-290{-webkit-animation-duration:.29s;animation-duration:.29s}.anim-duration-291{-webkit-animation-duration:291ms;animation-duration:291ms}.anim-duration-292{-webkit-animation-duration:292ms;animation-duration:292ms}.anim-duration-293{-webkit-animation-duration:293ms;animation-duration:293ms}.anim-duration-294{-webkit-animation-duration:294ms;animation-duration:294ms}.anim-duration-295{-webkit-animation-duration:295ms;animation-duration:295ms}.anim-duration-296{-webkit-animation-duration:296ms;animation-duration:296ms}.anim-duration-297{-webkit-animation-duration:297ms;animation-duration:297ms}.anim-duration-298{-webkit-animation-duration:298ms;animation-duration:298ms}.anim-duration-299{-webkit-animation-duration:299ms;animation-duration:299ms}.anim-duration-300{-webkit-animation-duration:.3s;animation-duration:.3s}.anim-duration-301{-webkit-animation-duration:301ms;animation-duration:301ms}.anim-duration-302{-webkit-animation-duration:302ms;animation-duration:302ms}.anim-duration-303{-webkit-animation-duration:303ms;animation-duration:303ms}.anim-duration-304{-webkit-animation-duration:304ms;animation-duration:304ms}.anim-duration-305{-webkit-animation-duration:305ms;animation-duration:305ms}.anim-duration-306{-webkit-animation-duration:306ms;animation-duration:306ms}.anim-duration-307{-webkit-animation-duration:307ms;animation-duration:307ms}.anim-duration-308{-webkit-animation-duration:308ms;animation-duration:308ms}.anim-duration-309{-webkit-animation-duration:309ms;animation-duration:309ms}.anim-duration-310{-webkit-animation-duration:.31s;animation-duration:.31s}.anim-duration-311{-webkit-animation-duration:311ms;animation-duration:311ms}.anim-duration-312{-webkit-animation-duration:312ms;animation-duration:312ms}.anim-duration-313{-webkit-animation-duration:313ms;animation-duration:313ms}.anim-duration-314{-webkit-animation-duration:314ms;animation-duration:314ms}.anim-duration-315{-webkit-animation-duration:315ms;animation-duration:315ms}.anim-duration-316{-webkit-animation-duration:316ms;animation-duration:316ms}.anim-duration-317{-webkit-animation-duration:317ms;animation-duration:317ms}.anim-duration-318{-webkit-animation-duration:318ms;animation-duration:318ms}.anim-duration-319{-webkit-animation-duration:319ms;animation-duration:319ms}.anim-duration-320{-webkit-animation-duration:.32s;animation-duration:.32s}.anim-duration-321{-webkit-animation-duration:321ms;animation-duration:321ms}.anim-duration-322{-webkit-animation-duration:322ms;animation-duration:322ms}.anim-duration-323{-webkit-animation-duration:323ms;animation-duration:323ms}.anim-duration-324{-webkit-animation-duration:324ms;animation-duration:324ms}.anim-duration-325{-webkit-animation-duration:325ms;animation-duration:325ms}.anim-duration-326{-webkit-animation-duration:326ms;animation-duration:326ms}.anim-duration-327{-webkit-animation-duration:327ms;animation-duration:327ms}.anim-duration-328{-webkit-animation-duration:328ms;animation-duration:328ms}.anim-duration-329{-webkit-animation-duration:329ms;animation-duration:329ms}.anim-duration-330{-webkit-animation-duration:.33s;animation-duration:.33s}.anim-duration-331{-webkit-animation-duration:331ms;animation-duration:331ms}.anim-duration-332{-webkit-animation-duration:332ms;animation-duration:332ms}.anim-duration-333{-webkit-animation-duration:333ms;animation-duration:333ms}.anim-duration-334{-webkit-animation-duration:334ms;animation-duration:334ms}.anim-duration-335{-webkit-animation-duration:335ms;animation-duration:335ms}.anim-duration-336{-webkit-animation-duration:336ms;animation-duration:336ms}.anim-duration-337{-webkit-animation-duration:337ms;animation-duration:337ms}.anim-duration-338{-webkit-animation-duration:338ms;animation-duration:338ms}.anim-duration-339{-webkit-animation-duration:339ms;animation-duration:339ms}.anim-duration-340{-webkit-animation-duration:.34s;animation-duration:.34s}.anim-duration-341{-webkit-animation-duration:341ms;animation-duration:341ms}.anim-duration-342{-webkit-animation-duration:342ms;animation-duration:342ms}.anim-duration-343{-webkit-animation-duration:343ms;animation-duration:343ms}.anim-duration-344{-webkit-animation-duration:344ms;animation-duration:344ms}.anim-duration-345{-webkit-animation-duration:345ms;animation-duration:345ms}.anim-duration-346{-webkit-animation-duration:346ms;animation-duration:346ms}.anim-duration-347{-webkit-animation-duration:347ms;animation-duration:347ms}.anim-duration-348{-webkit-animation-duration:348ms;animation-duration:348ms}.anim-duration-349{-webkit-animation-duration:349ms;animation-duration:349ms}.anim-duration-350{-webkit-animation-duration:.35s;animation-duration:.35s}.anim-duration-351{-webkit-animation-duration:351ms;animation-duration:351ms}.anim-duration-352{-webkit-animation-duration:352ms;animation-duration:352ms}.anim-duration-353{-webkit-animation-duration:353ms;animation-duration:353ms}.anim-duration-354{-webkit-animation-duration:354ms;animation-duration:354ms}.anim-duration-355{-webkit-animation-duration:355ms;animation-duration:355ms}.anim-duration-356{-webkit-animation-duration:356ms;animation-duration:356ms}.anim-duration-357{-webkit-animation-duration:357ms;animation-duration:357ms}.anim-duration-358{-webkit-animation-duration:358ms;animation-duration:358ms}.anim-duration-359{-webkit-animation-duration:359ms;animation-duration:359ms}.anim-duration-360{-webkit-animation-duration:.36s;animation-duration:.36s}.anim-duration-361{-webkit-animation-duration:361ms;animation-duration:361ms}.anim-duration-362{-webkit-animation-duration:362ms;animation-duration:362ms}.anim-duration-363{-webkit-animation-duration:363ms;animation-duration:363ms}.anim-duration-364{-webkit-animation-duration:364ms;animation-duration:364ms}.anim-duration-365{-webkit-animation-duration:365ms;animation-duration:365ms}.anim-duration-366{-webkit-animation-duration:366ms;animation-duration:366ms}.anim-duration-367{-webkit-animation-duration:367ms;animation-duration:367ms}.anim-duration-368{-webkit-animation-duration:368ms;animation-duration:368ms}.anim-duration-369{-webkit-animation-duration:369ms;animation-duration:369ms}.anim-duration-370{-webkit-animation-duration:.37s;animation-duration:.37s}.anim-duration-371{-webkit-animation-duration:371ms;animation-duration:371ms}.anim-duration-372{-webkit-animation-duration:372ms;animation-duration:372ms}.anim-duration-373{-webkit-animation-duration:373ms;animation-duration:373ms}.anim-duration-374{-webkit-animation-duration:374ms;animation-duration:374ms}.anim-duration-375{-webkit-animation-duration:375ms;animation-duration:375ms}.anim-duration-376{-webkit-animation-duration:376ms;animation-duration:376ms}.anim-duration-377{-webkit-animation-duration:377ms;animation-duration:377ms}.anim-duration-378{-webkit-animation-duration:378ms;animation-duration:378ms}.anim-duration-379{-webkit-animation-duration:379ms;animation-duration:379ms}.anim-duration-380{-webkit-animation-duration:.38s;animation-duration:.38s}.anim-duration-381{-webkit-animation-duration:381ms;animation-duration:381ms}.anim-duration-382{-webkit-animation-duration:382ms;animation-duration:382ms}.anim-duration-383{-webkit-animation-duration:383ms;animation-duration:383ms}.anim-duration-384{-webkit-animation-duration:384ms;animation-duration:384ms}.anim-duration-385{-webkit-animation-duration:385ms;animation-duration:385ms}.anim-duration-386{-webkit-animation-duration:386ms;animation-duration:386ms}.anim-duration-387{-webkit-animation-duration:387ms;animation-duration:387ms}.anim-duration-388{-webkit-animation-duration:388ms;animation-duration:388ms}.anim-duration-389{-webkit-animation-duration:389ms;animation-duration:389ms}.anim-duration-390{-webkit-animation-duration:.39s;animation-duration:.39s}.anim-duration-391{-webkit-animation-duration:391ms;animation-duration:391ms}.anim-duration-392{-webkit-animation-duration:392ms;animation-duration:392ms}.anim-duration-393{-webkit-animation-duration:393ms;animation-duration:393ms}.anim-duration-394{-webkit-animation-duration:394ms;animation-duration:394ms}.anim-duration-395{-webkit-animation-duration:395ms;animation-duration:395ms}.anim-duration-396{-webkit-animation-duration:396ms;animation-duration:396ms}.anim-duration-397{-webkit-animation-duration:397ms;animation-duration:397ms}.anim-duration-398{-webkit-animation-duration:398ms;animation-duration:398ms}.anim-duration-399{-webkit-animation-duration:399ms;animation-duration:399ms}.anim-duration-400{-webkit-animation-duration:.4s;animation-duration:.4s}.anim-duration-401{-webkit-animation-duration:401ms;animation-duration:401ms}.anim-duration-402{-webkit-animation-duration:402ms;animation-duration:402ms}.anim-duration-403{-webkit-animation-duration:403ms;animation-duration:403ms}.anim-duration-404{-webkit-animation-duration:404ms;animation-duration:404ms}.anim-duration-405{-webkit-animation-duration:405ms;animation-duration:405ms}.anim-duration-406{-webkit-animation-duration:406ms;animation-duration:406ms}.anim-duration-407{-webkit-animation-duration:407ms;animation-duration:407ms}.anim-duration-408{-webkit-animation-duration:408ms;animation-duration:408ms}.anim-duration-409{-webkit-animation-duration:409ms;animation-duration:409ms}.anim-duration-410{-webkit-animation-duration:.41s;animation-duration:.41s}.anim-duration-411{-webkit-animation-duration:411ms;animation-duration:411ms}.anim-duration-412{-webkit-animation-duration:412ms;animation-duration:412ms}.anim-duration-413{-webkit-animation-duration:413ms;animation-duration:413ms}.anim-duration-414{-webkit-animation-duration:414ms;animation-duration:414ms}.anim-duration-415{-webkit-animation-duration:415ms;animation-duration:415ms}.anim-duration-416{-webkit-animation-duration:416ms;animation-duration:416ms}.anim-duration-417{-webkit-animation-duration:417ms;animation-duration:417ms}.anim-duration-418{-webkit-animation-duration:418ms;animation-duration:418ms}.anim-duration-419{-webkit-animation-duration:419ms;animation-duration:419ms}.anim-duration-420{-webkit-animation-duration:.42s;animation-duration:.42s}.anim-duration-421{-webkit-animation-duration:421ms;animation-duration:421ms}.anim-duration-422{-webkit-animation-duration:422ms;animation-duration:422ms}.anim-duration-423{-webkit-animation-duration:423ms;animation-duration:423ms}.anim-duration-424{-webkit-animation-duration:424ms;animation-duration:424ms}.anim-duration-425{-webkit-animation-duration:425ms;animation-duration:425ms}.anim-duration-426{-webkit-animation-duration:426ms;animation-duration:426ms}.anim-duration-427{-webkit-animation-duration:427ms;animation-duration:427ms}.anim-duration-428{-webkit-animation-duration:428ms;animation-duration:428ms}.anim-duration-429{-webkit-animation-duration:429ms;animation-duration:429ms}.anim-duration-430{-webkit-animation-duration:.43s;animation-duration:.43s}.anim-duration-431{-webkit-animation-duration:431ms;animation-duration:431ms}.anim-duration-432{-webkit-animation-duration:432ms;animation-duration:432ms}.anim-duration-433{-webkit-animation-duration:433ms;animation-duration:433ms}.anim-duration-434{-webkit-animation-duration:434ms;animation-duration:434ms}.anim-duration-435{-webkit-animation-duration:435ms;animation-duration:435ms}.anim-duration-436{-webkit-animation-duration:436ms;animation-duration:436ms}.anim-duration-437{-webkit-animation-duration:437ms;animation-duration:437ms}.anim-duration-438{-webkit-animation-duration:438ms;animation-duration:438ms}.anim-duration-439{-webkit-animation-duration:439ms;animation-duration:439ms}.anim-duration-440{-webkit-animation-duration:.44s;animation-duration:.44s}.anim-duration-441{-webkit-animation-duration:441ms;animation-duration:441ms}.anim-duration-442{-webkit-animation-duration:442ms;animation-duration:442ms}.anim-duration-443{-webkit-animation-duration:443ms;animation-duration:443ms}.anim-duration-444{-webkit-animation-duration:444ms;animation-duration:444ms}.anim-duration-445{-webkit-animation-duration:445ms;animation-duration:445ms}.anim-duration-446{-webkit-animation-duration:446ms;animation-duration:446ms}.anim-duration-447{-webkit-animation-duration:447ms;animation-duration:447ms}.anim-duration-448{-webkit-animation-duration:448ms;animation-duration:448ms}.anim-duration-449{-webkit-animation-duration:449ms;animation-duration:449ms}.anim-duration-450{-webkit-animation-duration:.45s;animation-duration:.45s}.anim-duration-451{-webkit-animation-duration:451ms;animation-duration:451ms}.anim-duration-452{-webkit-animation-duration:452ms;animation-duration:452ms}.anim-duration-453{-webkit-animation-duration:453ms;animation-duration:453ms}.anim-duration-454{-webkit-animation-duration:454ms;animation-duration:454ms}.anim-duration-455{-webkit-animation-duration:455ms;animation-duration:455ms}.anim-duration-456{-webkit-animation-duration:456ms;animation-duration:456ms}.anim-duration-457{-webkit-animation-duration:457ms;animation-duration:457ms}.anim-duration-458{-webkit-animation-duration:458ms;animation-duration:458ms}.anim-duration-459{-webkit-animation-duration:459ms;animation-duration:459ms}.anim-duration-460{-webkit-animation-duration:.46s;animation-duration:.46s}.anim-duration-461{-webkit-animation-duration:461ms;animation-duration:461ms}.anim-duration-462{-webkit-animation-duration:462ms;animation-duration:462ms}.anim-duration-463{-webkit-animation-duration:463ms;animation-duration:463ms}.anim-duration-464{-webkit-animation-duration:464ms;animation-duration:464ms}.anim-duration-465{-webkit-animation-duration:465ms;animation-duration:465ms}.anim-duration-466{-webkit-animation-duration:466ms;animation-duration:466ms}.anim-duration-467{-webkit-animation-duration:467ms;animation-duration:467ms}.anim-duration-468{-webkit-animation-duration:468ms;animation-duration:468ms}.anim-duration-469{-webkit-animation-duration:469ms;animation-duration:469ms}.anim-duration-470{-webkit-animation-duration:.47s;animation-duration:.47s}.anim-duration-471{-webkit-animation-duration:471ms;animation-duration:471ms}.anim-duration-472{-webkit-animation-duration:472ms;animation-duration:472ms}.anim-duration-473{-webkit-animation-duration:473ms;animation-duration:473ms}.anim-duration-474{-webkit-animation-duration:474ms;animation-duration:474ms}.anim-duration-475{-webkit-animation-duration:475ms;animation-duration:475ms}.anim-duration-476{-webkit-animation-duration:476ms;animation-duration:476ms}.anim-duration-477{-webkit-animation-duration:477ms;animation-duration:477ms}.anim-duration-478{-webkit-animation-duration:478ms;animation-duration:478ms}.anim-duration-479{-webkit-animation-duration:479ms;animation-duration:479ms}.anim-duration-480{-webkit-animation-duration:.48s;animation-duration:.48s}.anim-duration-481{-webkit-animation-duration:481ms;animation-duration:481ms}.anim-duration-482{-webkit-animation-duration:482ms;animation-duration:482ms}.anim-duration-483{-webkit-animation-duration:483ms;animation-duration:483ms}.anim-duration-484{-webkit-animation-duration:484ms;animation-duration:484ms}.anim-duration-485{-webkit-animation-duration:485ms;animation-duration:485ms}.anim-duration-486{-webkit-animation-duration:486ms;animation-duration:486ms}.anim-duration-487{-webkit-animation-duration:487ms;animation-duration:487ms}.anim-duration-488{-webkit-animation-duration:488ms;animation-duration:488ms}.anim-duration-489{-webkit-animation-duration:489ms;animation-duration:489ms}.anim-duration-490{-webkit-animation-duration:.49s;animation-duration:.49s}.anim-duration-491{-webkit-animation-duration:491ms;animation-duration:491ms}.anim-duration-492{-webkit-animation-duration:492ms;animation-duration:492ms}.anim-duration-493{-webkit-animation-duration:493ms;animation-duration:493ms}.anim-duration-494{-webkit-animation-duration:494ms;animation-duration:494ms}.anim-duration-495{-webkit-animation-duration:495ms;animation-duration:495ms}.anim-duration-496{-webkit-animation-duration:496ms;animation-duration:496ms}.anim-duration-497{-webkit-animation-duration:497ms;animation-duration:497ms}.anim-duration-498{-webkit-animation-duration:498ms;animation-duration:498ms}.anim-duration-499{-webkit-animation-duration:499ms;animation-duration:499ms}.anim-duration-500{-webkit-animation-duration:.5s;animation-duration:.5s}.anim-duration-501{-webkit-animation-duration:501ms;animation-duration:501ms}.anim-duration-502{-webkit-animation-duration:502ms;animation-duration:502ms}.anim-duration-503{-webkit-animation-duration:503ms;animation-duration:503ms}.anim-duration-504{-webkit-animation-duration:504ms;animation-duration:504ms}.anim-duration-505{-webkit-animation-duration:505ms;animation-duration:505ms}.anim-duration-506{-webkit-animation-duration:506ms;animation-duration:506ms}.anim-duration-507{-webkit-animation-duration:507ms;animation-duration:507ms}.anim-duration-508{-webkit-animation-duration:508ms;animation-duration:508ms}.anim-duration-509{-webkit-animation-duration:509ms;animation-duration:509ms}.anim-duration-510{-webkit-animation-duration:.51s;animation-duration:.51s}.anim-duration-511{-webkit-animation-duration:511ms;animation-duration:511ms}.anim-duration-512{-webkit-animation-duration:512ms;animation-duration:512ms}.anim-duration-513{-webkit-animation-duration:513ms;animation-duration:513ms}.anim-duration-514{-webkit-animation-duration:514ms;animation-duration:514ms}.anim-duration-515{-webkit-animation-duration:515ms;animation-duration:515ms}.anim-duration-516{-webkit-animation-duration:516ms;animation-duration:516ms}.anim-duration-517{-webkit-animation-duration:517ms;animation-duration:517ms}.anim-duration-518{-webkit-animation-duration:518ms;animation-duration:518ms}.anim-duration-519{-webkit-animation-duration:519ms;animation-duration:519ms}.anim-duration-520{-webkit-animation-duration:.52s;animation-duration:.52s}.anim-duration-521{-webkit-animation-duration:521ms;animation-duration:521ms}.anim-duration-522{-webkit-animation-duration:522ms;animation-duration:522ms}.anim-duration-523{-webkit-animation-duration:523ms;animation-duration:523ms}.anim-duration-524{-webkit-animation-duration:524ms;animation-duration:524ms}.anim-duration-525{-webkit-animation-duration:525ms;animation-duration:525ms}.anim-duration-526{-webkit-animation-duration:526ms;animation-duration:526ms}.anim-duration-527{-webkit-animation-duration:527ms;animation-duration:527ms}.anim-duration-528{-webkit-animation-duration:528ms;animation-duration:528ms}.anim-duration-529{-webkit-animation-duration:529ms;animation-duration:529ms}.anim-duration-530{-webkit-animation-duration:.53s;animation-duration:.53s}.anim-duration-531{-webkit-animation-duration:531ms;animation-duration:531ms}.anim-duration-532{-webkit-animation-duration:532ms;animation-duration:532ms}.anim-duration-533{-webkit-animation-duration:533ms;animation-duration:533ms}.anim-duration-534{-webkit-animation-duration:534ms;animation-duration:534ms}.anim-duration-535{-webkit-animation-duration:535ms;animation-duration:535ms}.anim-duration-536{-webkit-animation-duration:536ms;animation-duration:536ms}.anim-duration-537{-webkit-animation-duration:537ms;animation-duration:537ms}.anim-duration-538{-webkit-animation-duration:538ms;animation-duration:538ms}.anim-duration-539{-webkit-animation-duration:539ms;animation-duration:539ms}.anim-duration-540{-webkit-animation-duration:.54s;animation-duration:.54s}.anim-duration-541{-webkit-animation-duration:541ms;animation-duration:541ms}.anim-duration-542{-webkit-animation-duration:542ms;animation-duration:542ms}.anim-duration-543{-webkit-animation-duration:543ms;animation-duration:543ms}.anim-duration-544{-webkit-animation-duration:544ms;animation-duration:544ms}.anim-duration-545{-webkit-animation-duration:545ms;animation-duration:545ms}.anim-duration-546{-webkit-animation-duration:546ms;animation-duration:546ms}.anim-duration-547{-webkit-animation-duration:547ms;animation-duration:547ms}.anim-duration-548{-webkit-animation-duration:548ms;animation-duration:548ms}.anim-duration-549{-webkit-animation-duration:549ms;animation-duration:549ms}.anim-duration-550{-webkit-animation-duration:.55s;animation-duration:.55s}.anim-duration-551{-webkit-animation-duration:551ms;animation-duration:551ms}.anim-duration-552{-webkit-animation-duration:552ms;animation-duration:552ms}.anim-duration-553{-webkit-animation-duration:553ms;animation-duration:553ms}.anim-duration-554{-webkit-animation-duration:554ms;animation-duration:554ms}.anim-duration-555{-webkit-animation-duration:555ms;animation-duration:555ms}.anim-duration-556{-webkit-animation-duration:556ms;animation-duration:556ms}.anim-duration-557{-webkit-animation-duration:557ms;animation-duration:557ms}.anim-duration-558{-webkit-animation-duration:558ms;animation-duration:558ms}.anim-duration-559{-webkit-animation-duration:559ms;animation-duration:559ms}.anim-duration-560{-webkit-animation-duration:.56s;animation-duration:.56s}.anim-duration-561{-webkit-animation-duration:561ms;animation-duration:561ms}.anim-duration-562{-webkit-animation-duration:562ms;animation-duration:562ms}.anim-duration-563{-webkit-animation-duration:563ms;animation-duration:563ms}.anim-duration-564{-webkit-animation-duration:564ms;animation-duration:564ms}.anim-duration-565{-webkit-animation-duration:565ms;animation-duration:565ms}.anim-duration-566{-webkit-animation-duration:566ms;animation-duration:566ms}.anim-duration-567{-webkit-animation-duration:567ms;animation-duration:567ms}.anim-duration-568{-webkit-animation-duration:568ms;animation-duration:568ms}.anim-duration-569{-webkit-animation-duration:569ms;animation-duration:569ms}.anim-duration-570{-webkit-animation-duration:.57s;animation-duration:.57s}.anim-duration-571{-webkit-animation-duration:571ms;animation-duration:571ms}.anim-duration-572{-webkit-animation-duration:572ms;animation-duration:572ms}.anim-duration-573{-webkit-animation-duration:573ms;animation-duration:573ms}.anim-duration-574{-webkit-animation-duration:574ms;animation-duration:574ms}.anim-duration-575{-webkit-animation-duration:575ms;animation-duration:575ms}.anim-duration-576{-webkit-animation-duration:576ms;animation-duration:576ms}.anim-duration-577{-webkit-animation-duration:577ms;animation-duration:577ms}.anim-duration-578{-webkit-animation-duration:578ms;animation-duration:578ms}.anim-duration-579{-webkit-animation-duration:579ms;animation-duration:579ms}.anim-duration-580{-webkit-animation-duration:.58s;animation-duration:.58s}.anim-duration-581{-webkit-animation-duration:581ms;animation-duration:581ms}.anim-duration-582{-webkit-animation-duration:582ms;animation-duration:582ms}.anim-duration-583{-webkit-animation-duration:583ms;animation-duration:583ms}.anim-duration-584{-webkit-animation-duration:584ms;animation-duration:584ms}.anim-duration-585{-webkit-animation-duration:585ms;animation-duration:585ms}.anim-duration-586{-webkit-animation-duration:586ms;animation-duration:586ms}.anim-duration-587{-webkit-animation-duration:587ms;animation-duration:587ms}.anim-duration-588{-webkit-animation-duration:588ms;animation-duration:588ms}.anim-duration-589{-webkit-animation-duration:589ms;animation-duration:589ms}.anim-duration-590{-webkit-animation-duration:.59s;animation-duration:.59s}.anim-duration-591{-webkit-animation-duration:591ms;animation-duration:591ms}.anim-duration-592{-webkit-animation-duration:592ms;animation-duration:592ms}.anim-duration-593{-webkit-animation-duration:593ms;animation-duration:593ms}.anim-duration-594{-webkit-animation-duration:594ms;animation-duration:594ms}.anim-duration-595{-webkit-animation-duration:595ms;animation-duration:595ms}.anim-duration-596{-webkit-animation-duration:596ms;animation-duration:596ms}.anim-duration-597{-webkit-animation-duration:597ms;animation-duration:597ms}.anim-duration-598{-webkit-animation-duration:598ms;animation-duration:598ms}.anim-duration-599{-webkit-animation-duration:599ms;animation-duration:599ms}.anim-duration-600{-webkit-animation-duration:.6s;animation-duration:.6s}.anim-duration-601{-webkit-animation-duration:601ms;animation-duration:601ms}.anim-duration-602{-webkit-animation-duration:602ms;animation-duration:602ms}.anim-duration-603{-webkit-animation-duration:603ms;animation-duration:603ms}.anim-duration-604{-webkit-animation-duration:604ms;animation-duration:604ms}.anim-duration-605{-webkit-animation-duration:605ms;animation-duration:605ms}.anim-duration-606{-webkit-animation-duration:606ms;animation-duration:606ms}.anim-duration-607{-webkit-animation-duration:607ms;animation-duration:607ms}.anim-duration-608{-webkit-animation-duration:608ms;animation-duration:608ms}.anim-duration-609{-webkit-animation-duration:609ms;animation-duration:609ms}.anim-duration-610{-webkit-animation-duration:.61s;animation-duration:.61s}.anim-duration-611{-webkit-animation-duration:611ms;animation-duration:611ms}.anim-duration-612{-webkit-animation-duration:612ms;animation-duration:612ms}.anim-duration-613{-webkit-animation-duration:613ms;animation-duration:613ms}.anim-duration-614{-webkit-animation-duration:614ms;animation-duration:614ms}.anim-duration-615{-webkit-animation-duration:615ms;animation-duration:615ms}.anim-duration-616{-webkit-animation-duration:616ms;animation-duration:616ms}.anim-duration-617{-webkit-animation-duration:617ms;animation-duration:617ms}.anim-duration-618{-webkit-animation-duration:618ms;animation-duration:618ms}.anim-duration-619{-webkit-animation-duration:619ms;animation-duration:619ms}.anim-duration-620{-webkit-animation-duration:.62s;animation-duration:.62s}.anim-duration-621{-webkit-animation-duration:621ms;animation-duration:621ms}.anim-duration-622{-webkit-animation-duration:622ms;animation-duration:622ms}.anim-duration-623{-webkit-animation-duration:623ms;animation-duration:623ms}.anim-duration-624{-webkit-animation-duration:624ms;animation-duration:624ms}.anim-duration-625{-webkit-animation-duration:625ms;animation-duration:625ms}.anim-duration-626{-webkit-animation-duration:626ms;animation-duration:626ms}.anim-duration-627{-webkit-animation-duration:627ms;animation-duration:627ms}.anim-duration-628{-webkit-animation-duration:628ms;animation-duration:628ms}.anim-duration-629{-webkit-animation-duration:629ms;animation-duration:629ms}.anim-duration-630{-webkit-animation-duration:.63s;animation-duration:.63s}.anim-duration-631{-webkit-animation-duration:631ms;animation-duration:631ms}.anim-duration-632{-webkit-animation-duration:632ms;animation-duration:632ms}.anim-duration-633{-webkit-animation-duration:633ms;animation-duration:633ms}.anim-duration-634{-webkit-animation-duration:634ms;animation-duration:634ms}.anim-duration-635{-webkit-animation-duration:635ms;animation-duration:635ms}.anim-duration-636{-webkit-animation-duration:636ms;animation-duration:636ms}.anim-duration-637{-webkit-animation-duration:637ms;animation-duration:637ms}.anim-duration-638{-webkit-animation-duration:638ms;animation-duration:638ms}.anim-duration-639{-webkit-animation-duration:639ms;animation-duration:639ms}.anim-duration-640{-webkit-animation-duration:.64s;animation-duration:.64s}.anim-duration-641{-webkit-animation-duration:641ms;animation-duration:641ms}.anim-duration-642{-webkit-animation-duration:642ms;animation-duration:642ms}.anim-duration-643{-webkit-animation-duration:643ms;animation-duration:643ms}.anim-duration-644{-webkit-animation-duration:644ms;animation-duration:644ms}.anim-duration-645{-webkit-animation-duration:645ms;animation-duration:645ms}.anim-duration-646{-webkit-animation-duration:646ms;animation-duration:646ms}.anim-duration-647{-webkit-animation-duration:647ms;animation-duration:647ms}.anim-duration-648{-webkit-animation-duration:648ms;animation-duration:648ms}.anim-duration-649{-webkit-animation-duration:649ms;animation-duration:649ms}.anim-duration-650{-webkit-animation-duration:.65s;animation-duration:.65s}.anim-duration-651{-webkit-animation-duration:651ms;animation-duration:651ms}.anim-duration-652{-webkit-animation-duration:652ms;animation-duration:652ms}.anim-duration-653{-webkit-animation-duration:653ms;animation-duration:653ms}.anim-duration-654{-webkit-animation-duration:654ms;animation-duration:654ms}.anim-duration-655{-webkit-animation-duration:655ms;animation-duration:655ms}.anim-duration-656{-webkit-animation-duration:656ms;animation-duration:656ms}.anim-duration-657{-webkit-animation-duration:657ms;animation-duration:657ms}.anim-duration-658{-webkit-animation-duration:658ms;animation-duration:658ms}.anim-duration-659{-webkit-animation-duration:659ms;animation-duration:659ms}.anim-duration-660{-webkit-animation-duration:.66s;animation-duration:.66s}.anim-duration-661{-webkit-animation-duration:661ms;animation-duration:661ms}.anim-duration-662{-webkit-animation-duration:662ms;animation-duration:662ms}.anim-duration-663{-webkit-animation-duration:663ms;animation-duration:663ms}.anim-duration-664{-webkit-animation-duration:664ms;animation-duration:664ms}.anim-duration-665{-webkit-animation-duration:665ms;animation-duration:665ms}.anim-duration-666{-webkit-animation-duration:666ms;animation-duration:666ms}.anim-duration-667{-webkit-animation-duration:667ms;animation-duration:667ms}.anim-duration-668{-webkit-animation-duration:668ms;animation-duration:668ms}.anim-duration-669{-webkit-animation-duration:669ms;animation-duration:669ms}.anim-duration-670{-webkit-animation-duration:.67s;animation-duration:.67s}.anim-duration-671{-webkit-animation-duration:671ms;animation-duration:671ms}.anim-duration-672{-webkit-animation-duration:672ms;animation-duration:672ms}.anim-duration-673{-webkit-animation-duration:673ms;animation-duration:673ms}.anim-duration-674{-webkit-animation-duration:674ms;animation-duration:674ms}.anim-duration-675{-webkit-animation-duration:675ms;animation-duration:675ms}.anim-duration-676{-webkit-animation-duration:676ms;animation-duration:676ms}.anim-duration-677{-webkit-animation-duration:677ms;animation-duration:677ms}.anim-duration-678{-webkit-animation-duration:678ms;animation-duration:678ms}.anim-duration-679{-webkit-animation-duration:679ms;animation-duration:679ms}.anim-duration-680{-webkit-animation-duration:.68s;animation-duration:.68s}.anim-duration-681{-webkit-animation-duration:681ms;animation-duration:681ms}.anim-duration-682{-webkit-animation-duration:682ms;animation-duration:682ms}.anim-duration-683{-webkit-animation-duration:683ms;animation-duration:683ms}.anim-duration-684{-webkit-animation-duration:684ms;animation-duration:684ms}.anim-duration-685{-webkit-animation-duration:685ms;animation-duration:685ms}.anim-duration-686{-webkit-animation-duration:686ms;animation-duration:686ms}.anim-duration-687{-webkit-animation-duration:687ms;animation-duration:687ms}.anim-duration-688{-webkit-animation-duration:688ms;animation-duration:688ms}.anim-duration-689{-webkit-animation-duration:689ms;animation-duration:689ms}.anim-duration-690{-webkit-animation-duration:.69s;animation-duration:.69s}.anim-duration-691{-webkit-animation-duration:691ms;animation-duration:691ms}.anim-duration-692{-webkit-animation-duration:692ms;animation-duration:692ms}.anim-duration-693{-webkit-animation-duration:693ms;animation-duration:693ms}.anim-duration-694{-webkit-animation-duration:694ms;animation-duration:694ms}.anim-duration-695{-webkit-animation-duration:695ms;animation-duration:695ms}.anim-duration-696{-webkit-animation-duration:696ms;animation-duration:696ms}.anim-duration-697{-webkit-animation-duration:697ms;animation-duration:697ms}.anim-duration-698{-webkit-animation-duration:698ms;animation-duration:698ms}.anim-duration-699{-webkit-animation-duration:699ms;animation-duration:699ms}.anim-duration-700{-webkit-animation-duration:.7s;animation-duration:.7s}.anim-duration-701{-webkit-animation-duration:701ms;animation-duration:701ms}.anim-duration-702{-webkit-animation-duration:702ms;animation-duration:702ms}.anim-duration-703{-webkit-animation-duration:703ms;animation-duration:703ms}.anim-duration-704{-webkit-animation-duration:704ms;animation-duration:704ms}.anim-duration-705{-webkit-animation-duration:705ms;animation-duration:705ms}.anim-duration-706{-webkit-animation-duration:706ms;animation-duration:706ms}.anim-duration-707{-webkit-animation-duration:707ms;animation-duration:707ms}.anim-duration-708{-webkit-animation-duration:708ms;animation-duration:708ms}.anim-duration-709{-webkit-animation-duration:709ms;animation-duration:709ms}.anim-duration-710{-webkit-animation-duration:.71s;animation-duration:.71s}.anim-duration-711{-webkit-animation-duration:711ms;animation-duration:711ms}.anim-duration-712{-webkit-animation-duration:712ms;animation-duration:712ms}.anim-duration-713{-webkit-animation-duration:713ms;animation-duration:713ms}.anim-duration-714{-webkit-animation-duration:714ms;animation-duration:714ms}.anim-duration-715{-webkit-animation-duration:715ms;animation-duration:715ms}.anim-duration-716{-webkit-animation-duration:716ms;animation-duration:716ms}.anim-duration-717{-webkit-animation-duration:717ms;animation-duration:717ms}.anim-duration-718{-webkit-animation-duration:718ms;animation-duration:718ms}.anim-duration-719{-webkit-animation-duration:719ms;animation-duration:719ms}.anim-duration-720{-webkit-animation-duration:.72s;animation-duration:.72s}.anim-duration-721{-webkit-animation-duration:721ms;animation-duration:721ms}.anim-duration-722{-webkit-animation-duration:722ms;animation-duration:722ms}.anim-duration-723{-webkit-animation-duration:723ms;animation-duration:723ms}.anim-duration-724{-webkit-animation-duration:724ms;animation-duration:724ms}.anim-duration-725{-webkit-animation-duration:725ms;animation-duration:725ms}.anim-duration-726{-webkit-animation-duration:726ms;animation-duration:726ms}.anim-duration-727{-webkit-animation-duration:727ms;animation-duration:727ms}.anim-duration-728{-webkit-animation-duration:728ms;animation-duration:728ms}.anim-duration-729{-webkit-animation-duration:729ms;animation-duration:729ms}.anim-duration-730{-webkit-animation-duration:.73s;animation-duration:.73s}.anim-duration-731{-webkit-animation-duration:731ms;animation-duration:731ms}.anim-duration-732{-webkit-animation-duration:732ms;animation-duration:732ms}.anim-duration-733{-webkit-animation-duration:733ms;animation-duration:733ms}.anim-duration-734{-webkit-animation-duration:734ms;animation-duration:734ms}.anim-duration-735{-webkit-animation-duration:735ms;animation-duration:735ms}.anim-duration-736{-webkit-animation-duration:736ms;animation-duration:736ms}.anim-duration-737{-webkit-animation-duration:737ms;animation-duration:737ms}.anim-duration-738{-webkit-animation-duration:738ms;animation-duration:738ms}.anim-duration-739{-webkit-animation-duration:739ms;animation-duration:739ms}.anim-duration-740{-webkit-animation-duration:.74s;animation-duration:.74s}.anim-duration-741{-webkit-animation-duration:741ms;animation-duration:741ms}.anim-duration-742{-webkit-animation-duration:742ms;animation-duration:742ms}.anim-duration-743{-webkit-animation-duration:743ms;animation-duration:743ms}.anim-duration-744{-webkit-animation-duration:744ms;animation-duration:744ms}.anim-duration-745{-webkit-animation-duration:745ms;animation-duration:745ms}.anim-duration-746{-webkit-animation-duration:746ms;animation-duration:746ms}.anim-duration-747{-webkit-animation-duration:747ms;animation-duration:747ms}.anim-duration-748{-webkit-animation-duration:748ms;animation-duration:748ms}.anim-duration-749{-webkit-animation-duration:749ms;animation-duration:749ms}.anim-duration-750{-webkit-animation-duration:.75s;animation-duration:.75s}.anim-duration-751{-webkit-animation-duration:751ms;animation-duration:751ms}.anim-duration-752{-webkit-animation-duration:752ms;animation-duration:752ms}.anim-duration-753{-webkit-animation-duration:753ms;animation-duration:753ms}.anim-duration-754{-webkit-animation-duration:754ms;animation-duration:754ms}.anim-duration-755{-webkit-animation-duration:755ms;animation-duration:755ms}.anim-duration-756{-webkit-animation-duration:756ms;animation-duration:756ms}.anim-duration-757{-webkit-animation-duration:757ms;animation-duration:757ms}.anim-duration-758{-webkit-animation-duration:758ms;animation-duration:758ms}.anim-duration-759{-webkit-animation-duration:759ms;animation-duration:759ms}.anim-duration-760{-webkit-animation-duration:.76s;animation-duration:.76s}.anim-duration-761{-webkit-animation-duration:761ms;animation-duration:761ms}.anim-duration-762{-webkit-animation-duration:762ms;animation-duration:762ms}.anim-duration-763{-webkit-animation-duration:763ms;animation-duration:763ms}.anim-duration-764{-webkit-animation-duration:764ms;animation-duration:764ms}.anim-duration-765{-webkit-animation-duration:765ms;animation-duration:765ms}.anim-duration-766{-webkit-animation-duration:766ms;animation-duration:766ms}.anim-duration-767{-webkit-animation-duration:767ms;animation-duration:767ms}.anim-duration-768{-webkit-animation-duration:768ms;animation-duration:768ms}.anim-duration-769{-webkit-animation-duration:769ms;animation-duration:769ms}.anim-duration-770{-webkit-animation-duration:.77s;animation-duration:.77s}.anim-duration-771{-webkit-animation-duration:771ms;animation-duration:771ms}.anim-duration-772{-webkit-animation-duration:772ms;animation-duration:772ms}.anim-duration-773{-webkit-animation-duration:773ms;animation-duration:773ms}.anim-duration-774{-webkit-animation-duration:774ms;animation-duration:774ms}.anim-duration-775{-webkit-animation-duration:775ms;animation-duration:775ms}.anim-duration-776{-webkit-animation-duration:776ms;animation-duration:776ms}.anim-duration-777{-webkit-animation-duration:777ms;animation-duration:777ms}.anim-duration-778{-webkit-animation-duration:778ms;animation-duration:778ms}.anim-duration-779{-webkit-animation-duration:779ms;animation-duration:779ms}.anim-duration-780{-webkit-animation-duration:.78s;animation-duration:.78s}.anim-duration-781{-webkit-animation-duration:781ms;animation-duration:781ms}.anim-duration-782{-webkit-animation-duration:782ms;animation-duration:782ms}.anim-duration-783{-webkit-animation-duration:783ms;animation-duration:783ms}.anim-duration-784{-webkit-animation-duration:784ms;animation-duration:784ms}.anim-duration-785{-webkit-animation-duration:785ms;animation-duration:785ms}.anim-duration-786{-webkit-animation-duration:786ms;animation-duration:786ms}.anim-duration-787{-webkit-animation-duration:787ms;animation-duration:787ms}.anim-duration-788{-webkit-animation-duration:788ms;animation-duration:788ms}.anim-duration-789{-webkit-animation-duration:789ms;animation-duration:789ms}.anim-duration-790{-webkit-animation-duration:.79s;animation-duration:.79s}.anim-duration-791{-webkit-animation-duration:791ms;animation-duration:791ms}.anim-duration-792{-webkit-animation-duration:792ms;animation-duration:792ms}.anim-duration-793{-webkit-animation-duration:793ms;animation-duration:793ms}.anim-duration-794{-webkit-animation-duration:794ms;animation-duration:794ms}.anim-duration-795{-webkit-animation-duration:795ms;animation-duration:795ms}.anim-duration-796{-webkit-animation-duration:796ms;animation-duration:796ms}.anim-duration-797{-webkit-animation-duration:797ms;animation-duration:797ms}.anim-duration-798{-webkit-animation-duration:798ms;animation-duration:798ms}.anim-duration-799{-webkit-animation-duration:799ms;animation-duration:799ms}.anim-duration-800{-webkit-animation-duration:.8s;animation-duration:.8s}.anim-duration-801{-webkit-animation-duration:801ms;animation-duration:801ms}.anim-duration-802{-webkit-animation-duration:802ms;animation-duration:802ms}.anim-duration-803{-webkit-animation-duration:803ms;animation-duration:803ms}.anim-duration-804{-webkit-animation-duration:804ms;animation-duration:804ms}.anim-duration-805{-webkit-animation-duration:805ms;animation-duration:805ms}.anim-duration-806{-webkit-animation-duration:806ms;animation-duration:806ms}.anim-duration-807{-webkit-animation-duration:807ms;animation-duration:807ms}.anim-duration-808{-webkit-animation-duration:808ms;animation-duration:808ms}.anim-duration-809{-webkit-animation-duration:809ms;animation-duration:809ms}.anim-duration-810{-webkit-animation-duration:.81s;animation-duration:.81s}.anim-duration-811{-webkit-animation-duration:811ms;animation-duration:811ms}.anim-duration-812{-webkit-animation-duration:812ms;animation-duration:812ms}.anim-duration-813{-webkit-animation-duration:813ms;animation-duration:813ms}.anim-duration-814{-webkit-animation-duration:814ms;animation-duration:814ms}.anim-duration-815{-webkit-animation-duration:815ms;animation-duration:815ms}.anim-duration-816{-webkit-animation-duration:816ms;animation-duration:816ms}.anim-duration-817{-webkit-animation-duration:817ms;animation-duration:817ms}.anim-duration-818{-webkit-animation-duration:818ms;animation-duration:818ms}.anim-duration-819{-webkit-animation-duration:819ms;animation-duration:819ms}.anim-duration-820{-webkit-animation-duration:.82s;animation-duration:.82s}.anim-duration-821{-webkit-animation-duration:821ms;animation-duration:821ms}.anim-duration-822{-webkit-animation-duration:822ms;animation-duration:822ms}.anim-duration-823{-webkit-animation-duration:823ms;animation-duration:823ms}.anim-duration-824{-webkit-animation-duration:824ms;animation-duration:824ms}.anim-duration-825{-webkit-animation-duration:825ms;animation-duration:825ms}.anim-duration-826{-webkit-animation-duration:826ms;animation-duration:826ms}.anim-duration-827{-webkit-animation-duration:827ms;animation-duration:827ms}.anim-duration-828{-webkit-animation-duration:828ms;animation-duration:828ms}.anim-duration-829{-webkit-animation-duration:829ms;animation-duration:829ms}.anim-duration-830{-webkit-animation-duration:.83s;animation-duration:.83s}.anim-duration-831{-webkit-animation-duration:831ms;animation-duration:831ms}.anim-duration-832{-webkit-animation-duration:832ms;animation-duration:832ms}.anim-duration-833{-webkit-animation-duration:833ms;animation-duration:833ms}.anim-duration-834{-webkit-animation-duration:834ms;animation-duration:834ms}.anim-duration-835{-webkit-animation-duration:835ms;animation-duration:835ms}.anim-duration-836{-webkit-animation-duration:836ms;animation-duration:836ms}.anim-duration-837{-webkit-animation-duration:837ms;animation-duration:837ms}.anim-duration-838{-webkit-animation-duration:838ms;animation-duration:838ms}.anim-duration-839{-webkit-animation-duration:839ms;animation-duration:839ms}.anim-duration-840{-webkit-animation-duration:.84s;animation-duration:.84s}.anim-duration-841{-webkit-animation-duration:841ms;animation-duration:841ms}.anim-duration-842{-webkit-animation-duration:842ms;animation-duration:842ms}.anim-duration-843{-webkit-animation-duration:843ms;animation-duration:843ms}.anim-duration-844{-webkit-animation-duration:844ms;animation-duration:844ms}.anim-duration-845{-webkit-animation-duration:845ms;animation-duration:845ms}.anim-duration-846{-webkit-animation-duration:846ms;animation-duration:846ms}.anim-duration-847{-webkit-animation-duration:847ms;animation-duration:847ms}.anim-duration-848{-webkit-animation-duration:848ms;animation-duration:848ms}.anim-duration-849{-webkit-animation-duration:849ms;animation-duration:849ms}.anim-duration-850{-webkit-animation-duration:.85s;animation-duration:.85s}.anim-duration-851{-webkit-animation-duration:851ms;animation-duration:851ms}.anim-duration-852{-webkit-animation-duration:852ms;animation-duration:852ms}.anim-duration-853{-webkit-animation-duration:853ms;animation-duration:853ms}.anim-duration-854{-webkit-animation-duration:854ms;animation-duration:854ms}.anim-duration-855{-webkit-animation-duration:855ms;animation-duration:855ms}.anim-duration-856{-webkit-animation-duration:856ms;animation-duration:856ms}.anim-duration-857{-webkit-animation-duration:857ms;animation-duration:857ms}.anim-duration-858{-webkit-animation-duration:858ms;animation-duration:858ms}.anim-duration-859{-webkit-animation-duration:859ms;animation-duration:859ms}.anim-duration-860{-webkit-animation-duration:.86s;animation-duration:.86s}.anim-duration-861{-webkit-animation-duration:861ms;animation-duration:861ms}.anim-duration-862{-webkit-animation-duration:862ms;animation-duration:862ms}.anim-duration-863{-webkit-animation-duration:863ms;animation-duration:863ms}.anim-duration-864{-webkit-animation-duration:864ms;animation-duration:864ms}.anim-duration-865{-webkit-animation-duration:865ms;animation-duration:865ms}.anim-duration-866{-webkit-animation-duration:866ms;animation-duration:866ms}.anim-duration-867{-webkit-animation-duration:867ms;animation-duration:867ms}.anim-duration-868{-webkit-animation-duration:868ms;animation-duration:868ms}.anim-duration-869{-webkit-animation-duration:869ms;animation-duration:869ms}.anim-duration-870{-webkit-animation-duration:.87s;animation-duration:.87s}.anim-duration-871{-webkit-animation-duration:871ms;animation-duration:871ms}.anim-duration-872{-webkit-animation-duration:872ms;animation-duration:872ms}.anim-duration-873{-webkit-animation-duration:873ms;animation-duration:873ms}.anim-duration-874{-webkit-animation-duration:874ms;animation-duration:874ms}.anim-duration-875{-webkit-animation-duration:875ms;animation-duration:875ms}.anim-duration-876{-webkit-animation-duration:876ms;animation-duration:876ms}.anim-duration-877{-webkit-animation-duration:877ms;animation-duration:877ms}.anim-duration-878{-webkit-animation-duration:878ms;animation-duration:878ms}.anim-duration-879{-webkit-animation-duration:879ms;animation-duration:879ms}.anim-duration-880{-webkit-animation-duration:.88s;animation-duration:.88s}.anim-duration-881{-webkit-animation-duration:881ms;animation-duration:881ms}.anim-duration-882{-webkit-animation-duration:882ms;animation-duration:882ms}.anim-duration-883{-webkit-animation-duration:883ms;animation-duration:883ms}.anim-duration-884{-webkit-animation-duration:884ms;animation-duration:884ms}.anim-duration-885{-webkit-animation-duration:885ms;animation-duration:885ms}.anim-duration-886{-webkit-animation-duration:886ms;animation-duration:886ms}.anim-duration-887{-webkit-animation-duration:887ms;animation-duration:887ms}.anim-duration-888{-webkit-animation-duration:888ms;animation-duration:888ms}.anim-duration-889{-webkit-animation-duration:889ms;animation-duration:889ms}.anim-duration-890{-webkit-animation-duration:.89s;animation-duration:.89s}.anim-duration-891{-webkit-animation-duration:891ms;animation-duration:891ms}.anim-duration-892{-webkit-animation-duration:892ms;animation-duration:892ms}.anim-duration-893{-webkit-animation-duration:893ms;animation-duration:893ms}.anim-duration-894{-webkit-animation-duration:894ms;animation-duration:894ms}.anim-duration-895{-webkit-animation-duration:895ms;animation-duration:895ms}.anim-duration-896{-webkit-animation-duration:896ms;animation-duration:896ms}.anim-duration-897{-webkit-animation-duration:897ms;animation-duration:897ms}.anim-duration-898{-webkit-animation-duration:898ms;animation-duration:898ms}.anim-duration-899{-webkit-animation-duration:899ms;animation-duration:899ms}.anim-duration-900{-webkit-animation-duration:.9s;animation-duration:.9s}.anim-duration-901{-webkit-animation-duration:901ms;animation-duration:901ms}.anim-duration-902{-webkit-animation-duration:902ms;animation-duration:902ms}.anim-duration-903{-webkit-animation-duration:903ms;animation-duration:903ms}.anim-duration-904{-webkit-animation-duration:904ms;animation-duration:904ms}.anim-duration-905{-webkit-animation-duration:905ms;animation-duration:905ms}.anim-duration-906{-webkit-animation-duration:906ms;animation-duration:906ms}.anim-duration-907{-webkit-animation-duration:907ms;animation-duration:907ms}.anim-duration-908{-webkit-animation-duration:908ms;animation-duration:908ms}.anim-duration-909{-webkit-animation-duration:909ms;animation-duration:909ms}.anim-duration-910{-webkit-animation-duration:.91s;animation-duration:.91s}.anim-duration-911{-webkit-animation-duration:911ms;animation-duration:911ms}.anim-duration-912{-webkit-animation-duration:912ms;animation-duration:912ms}.anim-duration-913{-webkit-animation-duration:913ms;animation-duration:913ms}.anim-duration-914{-webkit-animation-duration:914ms;animation-duration:914ms}.anim-duration-915{-webkit-animation-duration:915ms;animation-duration:915ms}.anim-duration-916{-webkit-animation-duration:916ms;animation-duration:916ms}.anim-duration-917{-webkit-animation-duration:917ms;animation-duration:917ms}.anim-duration-918{-webkit-animation-duration:918ms;animation-duration:918ms}.anim-duration-919{-webkit-animation-duration:919ms;animation-duration:919ms}.anim-duration-920{-webkit-animation-duration:.92s;animation-duration:.92s}.anim-duration-921{-webkit-animation-duration:921ms;animation-duration:921ms}.anim-duration-922{-webkit-animation-duration:922ms;animation-duration:922ms}.anim-duration-923{-webkit-animation-duration:923ms;animation-duration:923ms}.anim-duration-924{-webkit-animation-duration:924ms;animation-duration:924ms}.anim-duration-925{-webkit-animation-duration:925ms;animation-duration:925ms}.anim-duration-926{-webkit-animation-duration:926ms;animation-duration:926ms}.anim-duration-927{-webkit-animation-duration:927ms;animation-duration:927ms}.anim-duration-928{-webkit-animation-duration:928ms;animation-duration:928ms}.anim-duration-929{-webkit-animation-duration:929ms;animation-duration:929ms}.anim-duration-930{-webkit-animation-duration:.93s;animation-duration:.93s}.anim-duration-931{-webkit-animation-duration:931ms;animation-duration:931ms}.anim-duration-932{-webkit-animation-duration:932ms;animation-duration:932ms}.anim-duration-933{-webkit-animation-duration:933ms;animation-duration:933ms}.anim-duration-934{-webkit-animation-duration:934ms;animation-duration:934ms}.anim-duration-935{-webkit-animation-duration:935ms;animation-duration:935ms}.anim-duration-936{-webkit-animation-duration:936ms;animation-duration:936ms}.anim-duration-937{-webkit-animation-duration:937ms;animation-duration:937ms}.anim-duration-938{-webkit-animation-duration:938ms;animation-duration:938ms}.anim-duration-939{-webkit-animation-duration:939ms;animation-duration:939ms}.anim-duration-940{-webkit-animation-duration:.94s;animation-duration:.94s}.anim-duration-941{-webkit-animation-duration:941ms;animation-duration:941ms}.anim-duration-942{-webkit-animation-duration:942ms;animation-duration:942ms}.anim-duration-943{-webkit-animation-duration:943ms;animation-duration:943ms}.anim-duration-944{-webkit-animation-duration:944ms;animation-duration:944ms}.anim-duration-945{-webkit-animation-duration:945ms;animation-duration:945ms}.anim-duration-946{-webkit-animation-duration:946ms;animation-duration:946ms}.anim-duration-947{-webkit-animation-duration:947ms;animation-duration:947ms}.anim-duration-948{-webkit-animation-duration:948ms;animation-duration:948ms}.anim-duration-949{-webkit-animation-duration:949ms;animation-duration:949ms}.anim-duration-950{-webkit-animation-duration:.95s;animation-duration:.95s}.anim-duration-951{-webkit-animation-duration:951ms;animation-duration:951ms}.anim-duration-952{-webkit-animation-duration:952ms;animation-duration:952ms}.anim-duration-953{-webkit-animation-duration:953ms;animation-duration:953ms}.anim-duration-954{-webkit-animation-duration:954ms;animation-duration:954ms}.anim-duration-955{-webkit-animation-duration:955ms;animation-duration:955ms}.anim-duration-956{-webkit-animation-duration:956ms;animation-duration:956ms}.anim-duration-957{-webkit-animation-duration:957ms;animation-duration:957ms}.anim-duration-958{-webkit-animation-duration:958ms;animation-duration:958ms}.anim-duration-959{-webkit-animation-duration:959ms;animation-duration:959ms}.anim-duration-960{-webkit-animation-duration:.96s;animation-duration:.96s}.anim-duration-961{-webkit-animation-duration:961ms;animation-duration:961ms}.anim-duration-962{-webkit-animation-duration:962ms;animation-duration:962ms}.anim-duration-963{-webkit-animation-duration:963ms;animation-duration:963ms}.anim-duration-964{-webkit-animation-duration:964ms;animation-duration:964ms}.anim-duration-965{-webkit-animation-duration:965ms;animation-duration:965ms}.anim-duration-966{-webkit-animation-duration:966ms;animation-duration:966ms}.anim-duration-967{-webkit-animation-duration:967ms;animation-duration:967ms}.anim-duration-968{-webkit-animation-duration:968ms;animation-duration:968ms}.anim-duration-969{-webkit-animation-duration:969ms;animation-duration:969ms}.anim-duration-970{-webkit-animation-duration:.97s;animation-duration:.97s}.anim-duration-971{-webkit-animation-duration:971ms;animation-duration:971ms}.anim-duration-972{-webkit-animation-duration:972ms;animation-duration:972ms}.anim-duration-973{-webkit-animation-duration:973ms;animation-duration:973ms}.anim-duration-974{-webkit-animation-duration:974ms;animation-duration:974ms}.anim-duration-975{-webkit-animation-duration:975ms;animation-duration:975ms}.anim-duration-976{-webkit-animation-duration:976ms;animation-duration:976ms}.anim-duration-977{-webkit-animation-duration:977ms;animation-duration:977ms}.anim-duration-978{-webkit-animation-duration:978ms;animation-duration:978ms}.anim-duration-979{-webkit-animation-duration:979ms;animation-duration:979ms}.anim-duration-980{-webkit-animation-duration:.98s;animation-duration:.98s}.anim-duration-981{-webkit-animation-duration:981ms;animation-duration:981ms}.anim-duration-982{-webkit-animation-duration:982ms;animation-duration:982ms}.anim-duration-983{-webkit-animation-duration:983ms;animation-duration:983ms}.anim-duration-984{-webkit-animation-duration:984ms;animation-duration:984ms}.anim-duration-985{-webkit-animation-duration:985ms;animation-duration:985ms}.anim-duration-986{-webkit-animation-duration:986ms;animation-duration:986ms}.anim-duration-987{-webkit-animation-duration:987ms;animation-duration:987ms}.anim-duration-988{-webkit-animation-duration:988ms;animation-duration:988ms}.anim-duration-989{-webkit-animation-duration:989ms;animation-duration:989ms}.anim-duration-990{-webkit-animation-duration:.99s;animation-duration:.99s}.anim-duration-991{-webkit-animation-duration:991ms;animation-duration:991ms}.anim-duration-992{-webkit-animation-duration:992ms;animation-duration:992ms}.anim-duration-993{-webkit-animation-duration:993ms;animation-duration:993ms}.anim-duration-994{-webkit-animation-duration:994ms;animation-duration:994ms}.anim-duration-995{-webkit-animation-duration:995ms;animation-duration:995ms}.anim-duration-996{-webkit-animation-duration:996ms;animation-duration:996ms}.anim-duration-997{-webkit-animation-duration:997ms;animation-duration:997ms}.anim-duration-998{-webkit-animation-duration:998ms;animation-duration:998ms}.anim-duration-999{-webkit-animation-duration:999ms;animation-duration:999ms}.anim-duration-1000{-webkit-animation-duration:1s;animation-duration:1s}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:100;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:100;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:100;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:200;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:200;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:200;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:300;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:300;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:300;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:400;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:400;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:400;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:500;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:500;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:500;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:600;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:600;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:600;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:700;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:700;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:700;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:800;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:800;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:800;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:900;src:url(/fonts/92zUtBhPNqw73oHt5D4hTxM.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:900;src:url(/fonts/92zUtBhPNqw73oHt7j4hTxM.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:italic;font-weight:900;src:url(/fonts/92zUtBhPNqw73oHt4D4h.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:100;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:100;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:100;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:200;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:200;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:200;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:300;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:300;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:300;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:400;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:400;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:400;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:500;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:500;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:500;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:600;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:600;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:600;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:700;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:700;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:700;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:800;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:800;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:800;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:900;src:url(/fonts/92zatBhPNqw73oDd4iYl.woff2) format("woff2");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:900;src:url(/fonts/92zatBhPNqw73ord4iYl.woff2) format("woff2");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Jost;font-style:normal;font-weight:900;src:url(/fonts/92zatBhPNqw73oTd4g.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}.lab,.lar,.las{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;display:inline-block;font-style:normal;font-variant:normal;line-height:1}@font-face{font-display:auto;font-family:Line Awesome Brands;font-style:normal;font-weight:400;src:url(../fonts/la-brands-400.eot);src:url(../fonts/la-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/la-brands-400.woff2) format("woff2"),url(../fonts/la-brands-400.woff) format("woff"),url(../fonts/la-brands-400.ttf) format("truetype"),url(../fonts/la-brands-400.svg#lineawesome) format("svg")}.lab{font-family:Line Awesome Brands}@font-face{font-display:auto;font-family:Line Awesome Free;font-style:normal;font-weight:400;src:url(../fonts/la-regular-400.eot);src:url(../fonts/la-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/la-regular-400.woff2) format("woff2"),url(../fonts/la-regular-400.woff) format("woff"),url(../fonts/la-regular-400.ttf) format("truetype"),url(../fonts/la-regular-400.svg#lineawesome) format("svg")}.lab,.lar{font-weight:400}@font-face{font-display:auto;font-family:Line Awesome Free;font-style:normal;font-weight:900;src:url(../fonts/la-solid-900.eot);src:url(../fonts/la-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/la-solid-900.woff2) format("woff2"),url(../fonts/la-solid-900.woff) format("woff"),url(../fonts/la-solid-900.ttf) format("truetype"),url(../fonts/la-solid-900.svg#lineawesome) format("svg")}.lar,.las{font-family:Line Awesome Free}.las{font-weight:900}.la-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.la-xs{font-size:.75em}.la-2x{font-size:1em;font-size:2em}.la-3x{font-size:3em}.la-4x{font-size:4em}.la-5x{font-size:5em}.la-6x{font-size:6em}.la-7x{font-size:7em}.la-8x{font-size:8em}.la-9x{font-size:9em}.la-10x{font-size:10em}.la-fw{text-align:center;width:1.25em}.la-ul{list-style-type:none;margin-left:1.4285714286em;padding-left:0}.la-ul>li{position:relative}.la-li{left:-2em;line-height:inherit;position:absolute;text-align:center;width:1.4285714286em}.la-li.la-lg{left:-1.1428571429em}.la-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.la.la-pull-left{margin-right:.3em}.la.la-pull-right{margin-left:.3em}.la.pull-left{margin-right:.3em}.la.pull-right{margin-left:.3em}.la-pull-left{float:left}.la-pull-right{float:right}.la.la-pull-left,.lab.la-pull-left,.lal.la-pull-left,.lar.la-pull-left,.las.la-pull-left{margin-right:.3em}.la.la-pull-right,.lab.la-pull-right,.lal.la-pull-right,.lar.la-pull-right,.las.la-pull-right{margin-left:.3em}.la-spin{-webkit-animation:la-spin 2s linear infinite;animation:la-spin 2s linear infinite}.la-pulse{-webkit-animation:la-spin 1s steps(8) infinite;animation:la-spin 1s steps(8) infinite}@-webkit-keyframes la-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes la-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.la-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.la-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.la-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.la-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.la-flip-vertical{transform:scaleY(-1)}.la-flip-both,.la-flip-horizontal.la-flip-vertical,.la-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.la-flip-both,.la-flip-horizontal.la-flip-vertical{transform:scale(-1)}:root .la-flip-both,:root .la-flip-horizontal,:root .la-flip-vertical,:root .la-rotate-90,:root .la-rotate-180,:root .la-rotate-270{filter:none}.la-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.la-stack-1x,.la-stack-2x{left:0;position:absolute;text-align:center;width:100%}.la-stack-1x{line-height:inherit}.la-stack-2x{font-size:2em}.la-inverse{color:#fff}.la-500px:before{content:""}.la-accessible-icon:before{content:""}.la-accusoft:before{content:""}.la-acquisitions-incorporated:before{content:""}.la-ad:before{content:""}.la-address-book:before{content:""}.la-address-card:before{content:""}.la-adjust:before{content:""}.la-adn:before{content:""}.la-adobe:before{content:""}.la-adversal:before{content:""}.la-affiliatetheme:before{content:""}.la-air-freshener:before{content:""}.la-airbnb:before{content:""}.la-algolia:before{content:""}.la-align-center:before{content:""}.la-align-justify:before{content:""}.la-align-left:before{content:""}.la-align-right:before{content:""}.la-alipay:before{content:""}.la-allergies:before{content:""}.la-amazon:before{content:""}.la-amazon-pay:before{content:""}.la-ambulance:before{content:""}.la-american-sign-language-interpreting:before{content:""}.la-amilia:before{content:""}.la-anchor:before{content:""}.la-android:before{content:""}.la-angellist:before{content:""}.la-angle-double-down:before{content:""}.la-angle-double-left:before{content:""}.la-angle-double-right:before{content:""}.la-angle-double-up:before{content:""}.la-angle-down:before{content:""}.la-angle-left:before{content:""}.la-angle-right:before{content:""}.la-angle-up:before{content:""}.la-angry:before{content:""}.la-angrycreative:before{content:""}.la-angular:before{content:""}.la-ankh:before{content:""}.la-app-store:before{content:""}.la-app-store-ios:before{content:""}.la-apper:before{content:""}.la-apple:before{content:""}.la-apple-alt:before{content:""}.la-apple-pay:before{content:""}.la-archive:before{content:""}.la-archway:before{content:""}.la-arrow-alt-circle-down:before{content:""}.la-arrow-alt-circle-left:before{content:""}.la-arrow-alt-circle-right:before{content:""}.la-arrow-alt-circle-up:before{content:""}.la-arrow-circle-down:before{content:""}.la-arrow-circle-left:before{content:""}.la-arrow-circle-right:before{content:""}.la-arrow-circle-up:before{content:""}.la-arrow-down:before{content:""}.la-arrow-left:before{content:""}.la-arrow-right:before{content:""}.la-arrow-up:before{content:""}.la-arrows-alt:before{content:""}.la-arrows-alt-h:before{content:""}.la-arrows-alt-v:before{content:""}.la-artstation:before{content:""}.la-assistive-listening-systems:before{content:""}.la-asterisk:before{content:""}.la-asymmetrik:before{content:""}.la-at:before{content:""}.la-atlas:before{content:""}.la-atlassian:before{content:""}.la-atom:before{content:""}.la-audible:before{content:""}.la-audio-description:before{content:""}.la-autoprefixer:before{content:""}.la-avianex:before{content:""}.la-aviato:before{content:""}.la-award:before{content:""}.la-aws:before{content:""}.la-baby:before{content:""}.la-baby-carriage:before{content:""}.la-backspace:before{content:""}.la-backward:before{content:""}.la-bacon:before{content:""}.la-balance-scale:before{content:""}.la-balance-scale-left:before{content:""}.la-balance-scale-right:before{content:""}.la-ban:before{content:""}.la-band-aid:before{content:""}.la-bandcamp:before{content:""}.la-barcode:before{content:""}.la-bars:before{content:""}.la-baseball-ball:before{content:""}.la-basketball-ball:before{content:""}.la-bath:before{content:""}.la-battery-empty:before{content:""}.la-battery-full:before{content:""}.la-battery-half:before{content:""}.la-battery-quarter:before{content:""}.la-battery-three-quarters:before{content:""}.la-battle-net:before{content:""}.la-bed:before{content:""}.la-beer:before{content:""}.la-behance:before{content:""}.la-behance-square:before{content:""}.la-bell:before{content:""}.la-bell-slash:before{content:""}.la-bezier-curve:before{content:""}.la-bible:before{content:""}.la-bicycle:before{content:""}.la-biking:before{content:""}.la-bimobject:before{content:""}.la-binoculars:before{content:""}.la-biohazard:before{content:""}.la-birthday-cake:before{content:""}.la-bitbucket:before{content:""}.la-bitcoin:before{content:""}.la-bity:before{content:""}.la-black-tie:before{content:""}.la-blackberry:before{content:""}.la-blender:before{content:""}.la-blender-phone:before{content:""}.la-blind:before{content:""}.la-blog:before{content:""}.la-blogger:before{content:""}.la-blogger-b:before{content:""}.la-bluetooth:before{content:""}.la-bluetooth-b:before{content:""}.la-bold:before{content:""}.la-bolt:before{content:""}.la-bomb:before{content:""}.la-bone:before{content:""}.la-bong:before{content:""}.la-book:before{content:""}.la-book-dead:before{content:""}.la-book-medical:before{content:""}.la-book-open:before{content:""}.la-book-reader:before{content:""}.la-bookmark:before{content:""}.la-bootstrap:before{content:""}.la-border-all:before{content:""}.la-border-none:before{content:""}.la-border-style:before{content:""}.la-bowling-ball:before{content:""}.la-box:before{content:""}.la-box-open:before{content:""}.la-boxes:before{content:""}.la-braille:before{content:""}.la-brain:before{content:""}.la-bread-slice:before{content:""}.la-briefcase:before{content:""}.la-briefcase-medical:before{content:""}.la-broadcast-tower:before{content:""}.la-broom:before{content:""}.la-brush:before{content:""}.la-btc:before{content:""}.la-buffer:before{content:""}.la-bug:before{content:""}.la-building:before{content:""}.la-bullhorn:before{content:""}.la-bullseye:before{content:""}.la-burn:before{content:""}.la-buromobelexperte:before{content:""}.la-bus:before{content:""}.la-bus-alt:before{content:""}.la-business-time:before{content:""}.la-buysellads:before{content:""}.la-calculator:before{content:""}.la-calendar:before{content:""}.la-calendar-alt:before{content:""}.la-calendar-check:before{content:""}.la-calendar-day:before{content:""}.la-calendar-minus:before{content:""}.la-calendar-plus:before{content:""}.la-calendar-times:before{content:""}.la-calendar-week:before{content:""}.la-camera:before{content:""}.la-camera-retro:before{content:""}.la-campground:before{content:""}.la-canadian-maple-leaf:before{content:""}.la-candy-cane:before{content:""}.la-cannabis:before{content:""}.la-capsules:before{content:""}.la-car:before{content:""}.la-car-alt:before{content:""}.la-car-battery:before{content:""}.la-car-crash:before{content:""}.la-car-side:before{content:""}.la-caret-down:before{content:""}.la-caret-left:before{content:""}.la-caret-right:before{content:""}.la-caret-square-down:before{content:""}.la-caret-square-left:before{content:""}.la-caret-square-right:before{content:""}.la-caret-square-up:before{content:""}.la-caret-up:before{content:""}.la-carrot:before{content:""}.la-cart-arrow-down:before{content:""}.la-cart-plus:before{content:""}.la-cash-register:before{content:""}.la-cat:before{content:""}.la-cc-amazon-pay:before{content:""}.la-cc-amex:before{content:""}.la-cc-apple-pay:before{content:""}.la-cc-diners-club:before{content:""}.la-cc-discover:before{content:""}.la-cc-jcb:before{content:""}.la-cc-mastercard:before{content:""}.la-cc-paypal:before{content:""}.la-cc-stripe:before{content:""}.la-cc-visa:before{content:""}.la-centercode:before{content:""}.la-centos:before{content:""}.la-certificate:before{content:""}.la-chair:before{content:""}.la-chalkboard:before{content:""}.la-chalkboard-teacher:before{content:""}.la-charging-station:before{content:""}.la-chart-area:before{content:""}.la-chart-bar:before{content:""}.la-chart-line:before{content:""}.la-chart-pie:before{content:""}.la-check:before{content:""}.la-check-circle:before{content:""}.la-check-double:before{content:""}.la-check-square:before{content:""}.la-cheese:before{content:""}.la-chess:before{content:""}.la-chess-bishop:before{content:""}.la-chess-board:before{content:""}.la-chess-king:before{content:""}.la-chess-knight:before{content:""}.la-chess-pawn:before{content:""}.la-chess-queen:before{content:""}.la-chess-rook:before{content:""}.la-chevron-circle-down:before{content:""}.la-chevron-circle-left:before{content:""}.la-chevron-circle-right:before{content:""}.la-chevron-circle-up:before{content:""}.la-chevron-down:before{content:""}.la-chevron-left:before{content:""}.la-chevron-right:before{content:""}.la-chevron-up:before{content:""}.la-child:before{content:""}.la-chrome:before{content:""}.la-chromecast:before{content:""}.la-church:before{content:""}.la-circle:before{content:""}.la-circle-notch:before{content:""}.la-city:before{content:""}.la-clinic-medical:before{content:""}.la-clipboard:before{content:""}.la-clipboard-check:before{content:""}.la-clipboard-list:before{content:""}.la-clock:before{content:""}.la-clone:before{content:""}.la-closed-captioning:before{content:""}.la-cloud:before{content:""}.la-cloud-download-alt:before{content:""}.la-cloud-meatball:before{content:""}.la-cloud-moon:before{content:""}.la-cloud-moon-rain:before{content:""}.la-cloud-rain:before{content:""}.la-cloud-showers-heavy:before{content:""}.la-cloud-sun:before{content:""}.la-cloud-sun-rain:before{content:""}.la-cloud-upload-alt:before{content:""}.la-cloudscale:before{content:""}.la-cloudsmith:before{content:""}.la-cloudversify:before{content:""}.la-cocktail:before{content:""}.la-code:before{content:""}.la-code-branch:before{content:""}.la-codepen:before{content:""}.la-codiepie:before{content:""}.la-coffee:before{content:""}.la-cog:before{content:""}.la-cogs:before{content:""}.la-coins:before{content:""}.la-columns:before{content:""}.la-comment:before{content:""}.la-comment-alt:before{content:""}.la-comment-dollar:before{content:""}.la-comment-dots:before{content:""}.la-comment-medical:before{content:""}.la-comment-slash:before{content:""}.la-comments:before{content:""}.la-comments-dollar:before{content:""}.la-compact-disc:before{content:""}.la-compass:before{content:""}.la-compress:before{content:""}.la-compress-arrows-alt:before{content:""}.la-concierge-bell:before{content:""}.la-confluence:before{content:""}.la-connectdevelop:before{content:""}.la-contao:before{content:""}.la-cookie:before{content:""}.la-cookie-bite:before{content:""}.la-copy:before{content:""}.la-copyright:before{content:""}.la-cotton-bureau:before{content:""}.la-couch:before{content:""}.la-cpanel:before{content:""}.la-creative-commons:before{content:""}.la-creative-commons-by:before{content:""}.la-creative-commons-nc:before{content:""}.la-creative-commons-nc-eu:before{content:""}.la-creative-commons-nc-jp:before{content:""}.la-creative-commons-nd:before{content:""}.la-creative-commons-pd:before{content:""}.la-creative-commons-pd-alt:before{content:""}.la-creative-commons-remix:before{content:""}.la-creative-commons-sa:before{content:""}.la-creative-commons-sampling:before{content:""}.la-creative-commons-sampling-plus:before{content:""}.la-creative-commons-share:before{content:""}.la-creative-commons-zero:before{content:""}.la-credit-card:before{content:""}.la-critical-role:before{content:""}.la-crop:before{content:""}.la-crop-alt:before{content:""}.la-cross:before{content:""}.la-crosshairs:before{content:""}.la-crow:before{content:""}.la-crown:before{content:""}.la-crutch:before{content:""}.la-css3:before{content:""}.la-css3-alt:before{content:""}.la-cube:before{content:""}.la-cubes:before{content:""}.la-cut:before{content:""}.la-cuttlefish:before{content:""}.la-d-and-d:before{content:""}.la-d-and-d-beyond:before{content:""}.la-dashcube:before{content:""}.la-database:before{content:""}.la-deaf:before{content:""}.la-delicious:before{content:""}.la-democrat:before{content:""}.la-deploydog:before{content:""}.la-deskpro:before{content:""}.la-desktop:before{content:""}.la-dev:before{content:""}.la-deviantart:before{content:""}.la-dharmachakra:before{content:""}.la-dhl:before{content:""}.la-diagnoses:before{content:""}.la-diaspora:before{content:""}.la-dice:before{content:""}.la-dice-d20:before{content:""}.la-dice-d6:before{content:""}.la-dice-five:before{content:""}.la-dice-four:before{content:""}.la-dice-one:before{content:""}.la-dice-six:before{content:""}.la-dice-three:before{content:""}.la-dice-two:before{content:""}.la-digg:before{content:""}.la-digital-ocean:before{content:""}.la-digital-tachograph:before{content:""}.la-directions:before{content:""}.la-discord:before{content:""}.la-discourse:before{content:""}.la-divide:before{content:""}.la-dizzy:before{content:""}.la-dna:before{content:""}.la-dochub:before{content:""}.la-docker:before{content:""}.la-dog:before{content:""}.la-dollar-sign:before{content:""}.la-dolly:before{content:""}.la-dolly-flatbed:before{content:""}.la-donate:before{content:""}.la-door-closed:before{content:""}.la-door-open:before{content:""}.la-dot-circle:before{content:""}.la-dove:before{content:""}.la-download:before{content:""}.la-draft2digital:before{content:""}.la-drafting-compass:before{content:""}.la-dragon:before{content:""}.la-draw-polygon:before{content:""}.la-dribbble:before{content:""}.la-dribbble-square:before{content:""}.la-dropbox:before{content:""}.la-drum:before{content:""}.la-drum-steelpan:before{content:""}.la-drumstick-bite:before{content:""}.la-drupal:before{content:""}.la-dumbbell:before{content:""}.la-dumpster:before{content:""}.la-dumpster-fire:before{content:""}.la-dungeon:before{content:""}.la-dyalog:before{content:""}.la-earlybirds:before{content:""}.la-ebay:before{content:""}.la-edge:before{content:""}.la-edit:before{content:""}.la-egg:before{content:""}.la-eject:before{content:""}.la-elementor:before{content:""}.la-ellipsis-h:before{content:""}.la-ellipsis-v:before{content:""}.la-ello:before{content:""}.la-ember:before{content:""}.la-empire:before{content:""}.la-envelope:before{content:""}.la-envelope-open:before{content:""}.la-envelope-open-text:before{content:""}.la-envelope-square:before{content:""}.la-envira:before{content:""}.la-equals:before{content:""}.la-eraser:before{content:""}.la-erlang:before{content:""}.la-ethereum:before{content:""}.la-ethernet:before{content:""}.la-etsy:before{content:""}.la-euro-sign:before{content:""}.la-evernote:before{content:""}.la-exchange-alt:before{content:""}.la-exclamation:before{content:""}.la-exclamation-circle:before{content:""}.la-exclamation-triangle:before{content:""}.la-expand:before{content:""}.la-expand-arrows-alt:before{content:""}.la-expeditedssl:before{content:""}.la-external-link-alt:before{content:""}.la-external-link-square-alt:before{content:""}.la-eye:before{content:""}.la-eye-dropper:before{content:""}.la-eye-slash:before{content:""}.la-facebook:before{content:""}.la-facebook-f:before{content:""}.la-facebook-messenger:before{content:""}.la-facebook-square:before{content:""}.la-fan:before{content:""}.la-fantasy-flight-games:before{content:""}.la-fast-backward:before{content:""}.la-fast-forward:before{content:""}.la-fax:before{content:""}.la-feather:before{content:""}.la-feather-alt:before{content:""}.la-fedex:before{content:""}.la-fedora:before{content:""}.la-female:before{content:""}.la-fighter-jet:before{content:""}.la-figma:before{content:""}.la-file:before{content:""}.la-file-alt:before{content:""}.la-file-archive:before{content:""}.la-file-audio:before{content:""}.la-file-code:before{content:""}.la-file-contract:before{content:""}.la-file-csv:before{content:""}.la-file-download:before{content:""}.la-file-excel:before{content:""}.la-file-export:before{content:""}.la-file-image:before{content:""}.la-file-import:before{content:""}.la-file-invoice:before{content:""}.la-file-invoice-dollar:before{content:""}.la-file-medical:before{content:""}.la-file-medical-alt:before{content:""}.la-file-pdf:before{content:""}.la-file-powerpoint:before{content:""}.la-file-prescription:before{content:""}.la-file-signature:before{content:""}.la-file-upload:before{content:""}.la-file-video:before{content:""}.la-file-word:before{content:""}.la-fill:before{content:""}.la-fill-drip:before{content:""}.la-film:before{content:""}.la-filter:before{content:""}.la-fingerprint:before{content:""}.la-fire:before{content:""}.la-fire-alt:before{content:""}.la-fire-extinguisher:before{content:""}.la-firefox:before{content:""}.la-first-aid:before{content:""}.la-first-order:before{content:""}.la-first-order-alt:before{content:""}.la-firstdraft:before{content:""}.la-fish:before{content:""}.la-fist-raised:before{content:""}.la-flag:before{content:""}.la-flag-checkered:before{content:""}.la-flag-usa:before{content:""}.la-flask:before{content:""}.la-flickr:before{content:""}.la-flipboard:before{content:""}.la-flushed:before{content:""}.la-fly:before{content:""}.la-folder:before{content:""}.la-folder-minus:before{content:""}.la-folder-open:before{content:""}.la-folder-plus:before{content:""}.la-font:before{content:""}.la-font-awesome:before{content:""}.la-font-awesome-alt:before{content:""}.la-font-awesome-flag:before{content:""}.la-fonticons:before{content:""}.la-fonticons-fi:before{content:""}.la-football-ball:before{content:""}.la-fort-awesome:before{content:""}.la-fort-awesome-alt:before{content:""}.la-forumbee:before{content:""}.la-forward:before{content:""}.la-foursquare:before{content:""}.la-free-code-camp:before{content:""}.la-freebsd:before{content:""}.la-frog:before{content:""}.la-frown:before{content:""}.la-frown-open:before{content:""}.la-fulcrum:before{content:""}.la-funnel-dollar:before{content:""}.la-futbol:before{content:""}.la-galactic-republic:before{content:""}.la-galactic-senate:before{content:""}.la-gamepad:before{content:""}.la-gas-pump:before{content:""}.la-gavel:before{content:""}.la-gem:before{content:""}.la-genderless:before{content:""}.la-get-pocket:before{content:""}.la-gg:before{content:""}.la-gg-circle:before{content:""}.la-ghost:before{content:""}.la-gift:before{content:""}.la-gifts:before{content:""}.la-git:before{content:""}.la-git-alt:before{content:""}.la-git-square:before{content:""}.la-github:before{content:""}.la-github-alt:before{content:""}.la-github-square:before{content:""}.la-gitkraken:before{content:""}.la-gitlab:before{content:""}.la-gitter:before{content:""}.la-glass-cheers:before{content:""}.la-glass-martini:before{content:""}.la-glass-martini-alt:before{content:""}.la-glass-whiskey:before{content:""}.la-glasses:before{content:""}.la-glide:before{content:""}.la-glide-g:before{content:""}.la-globe:before{content:""}.la-globe-africa:before{content:""}.la-globe-americas:before{content:""}.la-globe-asia:before{content:""}.la-globe-europe:before{content:""}.la-gofore:before{content:""}.la-golf-ball:before{content:""}.la-goodreads:before{content:""}.la-goodreads-g:before{content:""}.la-google:before{content:""}.la-google-drive:before{content:""}.la-google-play:before{content:""}.la-google-plus:before{content:""}.la-google-plus-g:before{content:""}.la-google-plus-square:before{content:""}.la-google-wallet:before{content:""}.la-gopuram:before{content:""}.la-graduation-cap:before{content:""}.la-gratipay:before{content:""}.la-grav:before{content:""}.la-greater-than:before{content:""}.la-greater-than-equal:before{content:""}.la-grimace:before{content:""}.la-grin:before{content:""}.la-grin-alt:before{content:""}.la-grin-beam:before{content:""}.la-grin-beam-sweat:before{content:""}.la-grin-hearts:before{content:""}.la-grin-squint:before{content:""}.la-grin-squint-tears:before{content:""}.la-grin-stars:before{content:""}.la-grin-tears:before{content:""}.la-grin-tongue:before{content:""}.la-grin-tongue-squint:before{content:""}.la-grin-tongue-wink:before{content:""}.la-grin-wink:before{content:""}.la-grip-horizontal:before{content:""}.la-grip-lines:before{content:""}.la-grip-lines-vertical:before{content:""}.la-grip-vertical:before{content:""}.la-gripfire:before{content:""}.la-grunt:before{content:""}.la-guitar:before{content:""}.la-gulp:before{content:""}.la-h-square:before{content:""}.la-hacker-news:before{content:""}.la-hacker-news-square:before{content:""}.la-hackerrank:before{content:""}.la-hamburger:before{content:""}.la-hammer:before{content:""}.la-hamsa:before{content:""}.la-hand-holding:before{content:""}.la-hand-holding-heart:before{content:""}.la-hand-holding-usd:before{content:""}.la-hand-lizard:before{content:""}.la-hand-middle-finger:before{content:""}.la-hand-paper:before{content:""}.la-hand-peace:before{content:""}.la-hand-point-down:before{content:""}.la-hand-point-left:before{content:""}.la-hand-point-right:before{content:""}.la-hand-point-up:before{content:""}.la-hand-pointer:before{content:""}.la-hand-rock:before{content:""}.la-hand-scissors:before{content:""}.la-hand-spock:before{content:""}.la-hands:before{content:""}.la-hands-helping:before{content:""}.la-handshake:before{content:""}.la-hanukiah:before{content:""}.la-hard-hat:before{content:""}.la-hashtag:before{content:""}.la-hat-wizard:before{content:""}.la-haykal:before{content:""}.la-hdd:before{content:""}.la-heading:before{content:""}.la-headphones:before{content:""}.la-headphones-alt:before{content:""}.la-headset:before{content:""}.la-heart:before{content:""}.la-heart-broken:before{content:""}.la-heartbeat:before{content:""}.la-helicopter:before{content:""}.la-highlighter:before{content:""}.la-hiking:before{content:""}.la-hippo:before{content:""}.la-hips:before{content:""}.la-hire-a-helper:before{content:""}.la-history:before{content:""}.la-hockey-puck:before{content:""}.la-holly-berry:before{content:""}.la-home:before{content:""}.la-hooli:before{content:""}.la-hornbill:before{content:""}.la-horse:before{content:""}.la-horse-head:before{content:""}.la-hospital:before{content:""}.la-hospital-alt:before{content:""}.la-hospital-symbol:before{content:""}.la-hot-tub:before{content:""}.la-hotdog:before{content:""}.la-hotel:before{content:""}.la-hotjar:before{content:""}.la-hourglass:before{content:""}.la-hourglass-end:before{content:""}.la-hourglass-half:before{content:""}.la-hourglass-start:before{content:""}.la-house-damage:before{content:""}.la-houzz:before{content:""}.la-hryvnia:before{content:""}.la-html5:before{content:""}.la-hubspot:before{content:""}.la-i-cursor:before{content:""}.la-ice-cream:before{content:""}.la-icicles:before{content:""}.la-icons:before{content:""}.la-id-badge:before{content:""}.la-id-card:before{content:""}.la-id-card-alt:before{content:""}.la-igloo:before{content:""}.la-image:before{content:""}.la-images:before{content:""}.la-imdb:before{content:""}.la-inbox:before{content:""}.la-indent:before{content:""}.la-industry:before{content:""}.la-infinity:before{content:""}.la-info:before{content:""}.la-info-circle:before{content:""}.la-instagram:before{content:""}.la-intercom:before{content:""}.la-internet-explorer:before{content:""}.la-invision:before{content:""}.la-ioxhost:before{content:""}.la-italic:before{content:""}.la-itch-io:before{content:""}.la-itunes:before{content:""}.la-itunes-note:before{content:""}.la-java:before{content:""}.la-jedi:before{content:""}.la-jedi-order:before{content:""}.la-jenkins:before{content:""}.la-jira:before{content:""}.la-joget:before{content:""}.la-joint:before{content:""}.la-joomla:before{content:""}.la-journal-whills:before{content:""}.la-js:before{content:""}.la-js-square:before{content:""}.la-jsfiddle:before{content:""}.la-kaaba:before{content:""}.la-kaggle:before{content:""}.la-key:before{content:""}.la-keybase:before{content:""}.la-keyboard:before{content:""}.la-keycdn:before{content:""}.la-khanda:before{content:""}.la-kickstarter:before{content:""}.la-kickstarter-k:before{content:""}.la-kiss:before{content:""}.la-kiss-beam:before{content:""}.la-kiss-wink-heart:before{content:""}.la-kiwi-bird:before{content:""}.la-korvue:before{content:""}.la-landmark:before{content:""}.la-language:before{content:""}.la-laptop:before{content:""}.la-laptop-code:before{content:""}.la-laptop-medical:before{content:""}.la-laravel:before{content:""}.la-lastfm:before{content:""}.la-lastfm-square:before{content:""}.la-laugh:before{content:""}.la-laugh-beam:before{content:""}.la-laugh-squint:before{content:""}.la-laugh-wink:before{content:""}.la-layer-group:before{content:""}.la-leaf:before{content:""}.la-leanpub:before{content:""}.la-lemon:before{content:""}.la-less:before{content:""}.la-less-than:before{content:""}.la-less-than-equal:before{content:""}.la-level-down-alt:before{content:""}.la-level-up-alt:before{content:""}.la-life-ring:before{content:""}.la-lightbulb:before{content:""}.la-line:before{content:""}.la-link:before{content:""}.la-linkedin:before{content:""}.la-linkedin-in:before{content:""}.la-linode:before{content:""}.la-linux:before{content:""}.la-lira-sign:before{content:""}.la-list:before{content:""}.la-list-alt:before{content:""}.la-list-ol:before{content:""}.la-list-ul:before{content:""}.la-location-arrow:before{content:""}.la-lock:before{content:""}.la-lock-open:before{content:""}.la-long-arrow-alt-down:before{content:""}.la-long-arrow-alt-left:before{content:""}.la-long-arrow-alt-right:before{content:""}.la-long-arrow-alt-up:before{content:""}.la-low-vision:before{content:""}.la-luggage-cart:before{content:""}.la-lyft:before{content:""}.la-magento:before{content:""}.la-magic:before{content:""}.la-magnet:before{content:""}.la-mail-bulk:before{content:""}.la-mailchimp:before{content:""}.la-male:before{content:""}.la-mandalorian:before{content:""}.la-map:before{content:""}.la-map-marked:before{content:""}.la-map-marked-alt:before{content:""}.la-map-marker:before{content:""}.la-map-marker-alt:before{content:""}.la-map-pin:before{content:""}.la-map-signs:before{content:""}.la-markdown:before{content:""}.la-marker:before{content:""}.la-mars:before{content:""}.la-mars-double:before{content:""}.la-mars-stroke:before{content:""}.la-mars-stroke-h:before{content:""}.la-mars-stroke-v:before{content:""}.la-mask:before{content:""}.la-mastodon:before{content:""}.la-maxcdn:before{content:""}.la-medal:before{content:""}.la-medapps:before{content:""}.la-medium:before{content:""}.la-medium-m:before{content:""}.la-medkit:before{content:""}.la-medrt:before{content:""}.la-meetup:before{content:""}.la-megaport:before{content:""}.la-meh:before{content:""}.la-meh-blank:before{content:""}.la-meh-rolling-eyes:before{content:""}.la-memory:before{content:""}.la-mendeley:before{content:""}.la-menorah:before{content:""}.la-mercury:before{content:""}.la-meteor:before{content:""}.la-microchip:before{content:""}.la-microphone:before{content:""}.la-microphone-alt:before{content:""}.la-microphone-alt-slash:before{content:""}.la-microphone-slash:before{content:""}.la-microscope:before{content:""}.la-microsoft:before{content:""}.la-minus:before{content:""}.la-minus-circle:before{content:""}.la-minus-square:before{content:""}.la-mitten:before{content:""}.la-mix:before{content:""}.la-mixcloud:before{content:""}.la-mizuni:before{content:""}.la-mobile:before{content:""}.la-mobile-alt:before{content:""}.la-modx:before{content:""}.la-monero:before{content:""}.la-money-bill:before{content:""}.la-money-bill-alt:before{content:""}.la-money-bill-wave:before{content:""}.la-money-bill-wave-alt:before{content:""}.la-money-check:before{content:""}.la-money-check-alt:before{content:""}.la-monument:before{content:""}.la-moon:before{content:""}.la-mortar-pestle:before{content:""}.la-mosque:before{content:""}.la-motorcycle:before{content:""}.la-mountain:before{content:""}.la-mouse-pointer:before{content:""}.la-mug-hot:before{content:""}.la-music:before{content:""}.la-napster:before{content:""}.la-neos:before{content:""}.la-network-wired:before{content:""}.la-neuter:before{content:""}.la-newspaper:before{content:""}.la-nimblr:before{content:""}.la-node:before{content:""}.la-node-js:before{content:""}.la-not-equal:before{content:""}.la-notes-medical:before{content:""}.la-npm:before{content:""}.la-ns8:before{content:""}.la-nutritionix:before{content:""}.la-object-group:before{content:""}.la-object-ungroup:before{content:""}.la-odnoklassniki:before{content:""}.la-odnoklassniki-square:before{content:""}.la-oil-can:before{content:""}.la-old-republic:before{content:""}.la-om:before{content:""}.la-opencart:before{content:""}.la-openid:before{content:""}.la-opera:before{content:""}.la-optin-monster:before{content:""}.la-osi:before{content:""}.la-otter:before{content:""}.la-outdent:before{content:""}.la-page4:before{content:""}.la-pagelines:before{content:""}.la-pager:before{content:""}.la-paint-brush:before{content:""}.la-paint-roller:before{content:""}.la-palette:before{content:""}.la-palfed:before{content:""}.la-pallet:before{content:""}.la-paper-plane:before{content:""}.la-paperclip:before{content:""}.la-parachute-box:before{content:""}.la-paragraph:before{content:""}.la-parking:before{content:""}.la-passport:before{content:""}.la-pastafarianism:before{content:""}.la-paste:before{content:""}.la-patreon:before{content:""}.la-pause:before{content:""}.la-pause-circle:before{content:""}.la-paw:before{content:""}.la-paypal:before{content:""}.la-peace:before{content:""}.la-pen:before{content:""}.la-pen-alt:before{content:""}.la-pen-fancy:before{content:""}.la-pen-nib:before{content:""}.la-pen-square:before{content:""}.la-pencil-alt:before{content:""}.la-pencil-ruler:before{content:""}.la-penny-arcade:before{content:""}.la-people-carry:before{content:""}.la-pepper-hot:before{content:""}.la-percent:before{content:""}.la-percentage:before{content:""}.la-periscope:before{content:""}.la-person-booth:before{content:""}.la-phabricator:before{content:""}.la-phoenix-framework:before{content:""}.la-phoenix-squadron:before{content:""}.la-phone:before{content:""}.la-phone-alt:before{content:""}.la-phone-slash:before{content:""}.la-phone-square:before{content:""}.la-phone-square-alt:before{content:""}.la-phone-volume:before{content:""}.la-photo-video:before{content:""}.la-php:before{content:""}.la-pied-piper:before{content:""}.la-pied-piper-alt:before{content:""}.la-pied-piper-hat:before{content:""}.la-pied-piper-pp:before{content:""}.la-piggy-bank:before{content:""}.la-pills:before{content:""}.la-pinterest:before{content:""}.la-pinterest-p:before{content:""}.la-pinterest-square:before{content:""}.la-pizza-slice:before{content:""}.la-place-of-worship:before{content:""}.la-plane:before{content:""}.la-plane-arrival:before{content:""}.la-plane-departure:before{content:""}.la-play:before{content:""}.la-play-circle:before{content:""}.la-playstation:before{content:""}.la-plug:before{content:""}.la-plus:before{content:""}.la-plus-circle:before{content:""}.la-plus-square:before{content:""}.la-podcast:before{content:""}.la-poll:before{content:""}.la-poll-h:before{content:""}.la-poo:before{content:""}.la-poo-storm:before{content:""}.la-poop:before{content:""}.la-portrait:before{content:""}.la-pound-sign:before{content:""}.la-power-off:before{content:""}.la-pray:before{content:""}.la-praying-hands:before{content:""}.la-prescription:before{content:""}.la-prescription-bottle:before{content:""}.la-prescription-bottle-alt:before{content:""}.la-print:before{content:""}.la-procedures:before{content:""}.la-product-hunt:before{content:""}.la-project-diagram:before{content:""}.la-pushed:before{content:""}.la-puzzle-piece:before{content:""}.la-python:before{content:""}.la-qq:before{content:""}.la-qrcode:before{content:""}.la-question:before{content:""}.la-question-circle:before{content:""}.la-quidditch:before{content:""}.la-quinscape:before{content:""}.la-quora:before{content:""}.la-quote-left:before{content:""}.la-quote-right:before{content:""}.la-quran:before{content:""}.la-r-project:before{content:""}.la-radiation:before{content:""}.la-radiation-alt:before{content:""}.la-rainbow:before{content:""}.la-random:before{content:""}.la-raspberry-pi:before{content:""}.la-ravelry:before{content:""}.la-react:before{content:""}.la-reacteurope:before{content:""}.la-readme:before{content:""}.la-rebel:before{content:""}.la-receipt:before{content:""}.la-recycle:before{content:""}.la-red-river:before{content:""}.la-reddit:before{content:""}.la-reddit-alien:before{content:""}.la-reddit-square:before{content:""}.la-redhat:before{content:""}.la-redo:before{content:""}.la-redo-alt:before{content:""}.la-registered:before{content:""}.la-remove-format:before{content:""}.la-renren:before{content:""}.la-reply:before{content:""}.la-reply-all:before{content:""}.la-replyd:before{content:""}.la-republican:before{content:""}.la-researchgate:before{content:""}.la-resolving:before{content:""}.la-restroom:before{content:""}.la-retweet:before{content:""}.la-rev:before{content:""}.la-ribbon:before{content:""}.la-ring:before{content:""}.la-road:before{content:""}.la-robot:before{content:""}.la-rocket:before{content:""}.la-rocketchat:before{content:""}.la-rockrms:before{content:""}.la-route:before{content:""}.la-rss:before{content:""}.la-rss-square:before{content:""}.la-ruble-sign:before{content:""}.la-ruler:before{content:""}.la-ruler-combined:before{content:""}.la-ruler-horizontal:before{content:""}.la-ruler-vertical:before{content:""}.la-running:before{content:""}.la-rupee-sign:before{content:""}.la-sad-cry:before{content:""}.la-sad-tear:before{content:""}.la-safari:before{content:""}.la-salesforce:before{content:""}.la-sass:before{content:""}.la-satellite:before{content:""}.la-satellite-dish:before{content:""}.la-save:before{content:""}.la-schlix:before{content:""}.la-school:before{content:""}.la-screwdriver:before{content:""}.la-scribd:before{content:""}.la-scroll:before{content:""}.la-sd-card:before{content:""}.la-search:before{content:""}.la-search-dollar:before{content:""}.la-search-location:before{content:""}.la-search-minus:before{content:""}.la-search-plus:before{content:""}.la-searchengin:before{content:""}.la-seedling:before{content:""}.la-sellcast:before{content:""}.la-sellsy:before{content:""}.la-server:before{content:""}.la-servicestack:before{content:""}.la-shapes:before{content:""}.la-share:before{content:""}.la-share-alt:before{content:""}.la-share-alt-square:before{content:""}.la-share-square:before{content:""}.la-shekel-sign:before{content:""}.la-shield-alt:before{content:""}.la-ship:before{content:""}.la-shipping-fast:before{content:""}.la-shirtsinbulk:before{content:""}.la-shoe-prints:before{content:""}.la-shopping-bag:before{content:""}.la-shopping-basket:before{content:""}.la-shopping-cart:before{content:""}.la-shopware:before{content:""}.la-shower:before{content:""}.la-shuttle-van:before{content:""}.la-sign:before{content:""}.la-sign-in-alt:before{content:""}.la-sign-language:before{content:""}.la-sign-out-alt:before{content:""}.la-signal:before{content:""}.la-signature:before{content:""}.la-sim-card:before{content:""}.la-simplybuilt:before{content:""}.la-sistrix:before{content:""}.la-sitemap:before{content:""}.la-sith:before{content:""}.la-skating:before{content:""}.la-sketch:before{content:""}.la-skiing:before{content:""}.la-skiing-nordic:before{content:""}.la-skull:before{content:""}.la-skull-crossbones:before{content:""}.la-skyatlas:before{content:""}.la-skype:before{content:""}.la-slack:before{content:""}.la-slack-hash:before{content:""}.la-slash:before{content:""}.la-sleigh:before{content:""}.la-sliders-h:before{content:""}.la-slideshare:before{content:""}.la-smile:before{content:""}.la-smile-beam:before{content:""}.la-smile-wink:before{content:""}.la-smog:before{content:""}.la-smoking:before{content:""}.la-smoking-ban:before{content:""}.la-sms:before{content:""}.la-snapchat:before{content:""}.la-snapchat-ghost:before{content:""}.la-snapchat-square:before{content:""}.la-snowboarding:before{content:""}.la-snowflake:before{content:""}.la-snowman:before{content:""}.la-snowplow:before{content:""}.la-socks:before{content:""}.la-solar-panel:before{content:""}.la-sort:before{content:""}.la-sort-alpha-down:before{content:""}.la-sort-alpha-down-alt:before{content:""}.la-sort-alpha-up:before{content:""}.la-sort-alpha-up-alt:before{content:""}.la-sort-amount-down:before{content:""}.la-sort-amount-down-alt:before{content:""}.la-sort-amount-up:before{content:""}.la-sort-amount-up-alt:before{content:""}.la-sort-down:before{content:""}.la-sort-numeric-down:before{content:""}.la-sort-numeric-down-alt:before{content:""}.la-sort-numeric-up:before{content:""}.la-sort-numeric-up-alt:before{content:""}.la-sort-up:before{content:""}.la-soundcloud:before{content:""}.la-sourcetree:before{content:""}.la-spa:before{content:""}.la-space-shuttle:before{content:""}.la-speakap:before{content:""}.la-speaker-deck:before{content:""}.la-spell-check:before{content:""}.la-spider:before{content:""}.la-spinner:before{content:""}.la-splotch:before{content:""}.la-spotify:before{content:""}.la-spray-can:before{content:""}.la-square:before{content:""}.la-square-full:before{content:""}.la-square-root-alt:before{content:""}.la-squarespace:before{content:""}.la-stack-exchange:before{content:""}.la-stack-overflow:before{content:""}.la-stackpath:before{content:""}.la-stamp:before{content:""}.la-star:before{content:""}.la-star-and-crescent:before{content:""}.la-star-half:before{content:""}.la-star-half-alt:before{content:""}.la-star-of-david:before{content:""}.la-star-of-life:before{content:""}.la-staylinked:before{content:""}.la-steam:before{content:""}.la-steam-square:before{content:""}.la-steam-symbol:before{content:""}.la-step-backward:before{content:""}.la-step-forward:before{content:""}.la-stethoscope:before{content:""}.la-sticker-mule:before{content:""}.la-sticky-note:before{content:""}.la-stop:before{content:""}.la-stop-circle:before{content:""}.la-stopwatch:before{content:""}.la-store:before{content:""}.la-store-alt:before{content:""}.la-strava:before{content:""}.la-stream:before{content:""}.la-street-view:before{content:""}.la-strikethrough:before{content:""}.la-stripe:before{content:""}.la-stripe-s:before{content:""}.la-stroopwafel:before{content:""}.la-studiovinari:before{content:""}.la-stumbleupon:before{content:""}.la-stumbleupon-circle:before{content:""}.la-subscript:before{content:""}.la-subway:before{content:""}.la-suitcase:before{content:""}.la-suitcase-rolling:before{content:""}.la-sun:before{content:""}.la-superpowers:before{content:""}.la-superscript:before{content:""}.la-supple:before{content:""}.la-surprise:before{content:""}.la-suse:before{content:""}.la-swatchbook:before{content:""}.la-swimmer:before{content:""}.la-swimming-pool:before{content:""}.la-symfony:before{content:""}.la-synagogue:before{content:""}.la-sync:before{content:""}.la-sync-alt:before{content:""}.la-syringe:before{content:""}.la-table:before{content:""}.la-table-tennis:before{content:""}.la-tablet:before{content:""}.la-tablet-alt:before{content:""}.la-tablets:before{content:""}.la-tachometer-alt:before{content:""}.la-tag:before{content:""}.la-tags:before{content:""}.la-tape:before{content:""}.la-tasks:before{content:""}.la-taxi:before{content:""}.la-teamspeak:before{content:""}.la-teeth:before{content:""}.la-teeth-open:before{content:""}.la-telegram:before{content:""}.la-telegram-plane:before{content:""}.la-temperature-high:before{content:""}.la-temperature-low:before{content:""}.la-tencent-weibo:before{content:""}.la-tenge:before{content:""}.la-terminal:before{content:""}.la-text-height:before{content:""}.la-text-width:before{content:""}.la-th:before{content:""}.la-th-large:before{content:""}.la-th-list:before{content:""}.la-the-red-yeti:before{content:""}.la-theater-masks:before{content:""}.la-themeco:before{content:""}.la-themeisle:before{content:""}.la-thermometer:before{content:""}.la-thermometer-empty:before{content:""}.la-thermometer-full:before{content:""}.la-thermometer-half:before{content:""}.la-thermometer-quarter:before{content:""}.la-thermometer-three-quarters:before{content:""}.la-think-peaks:before{content:""}.la-thumbs-down:before{content:""}.la-thumbs-up:before{content:""}.la-thumbtack:before{content:""}.la-ticket-alt:before{content:""}.la-times:before{content:""}.la-times-circle:before{content:""}.la-tint:before{content:""}.la-tint-slash:before{content:""}.la-tired:before{content:""}.la-toggle-off:before{content:""}.la-toggle-on:before{content:""}.la-toilet:before{content:""}.la-toilet-paper:before{content:""}.la-toolbox:before{content:""}.la-tools:before{content:""}.la-tooth:before{content:""}.la-torah:before{content:""}.la-torii-gate:before{content:""}.la-tractor:before{content:""}.la-trade-federation:before{content:""}.la-trademark:before{content:""}.la-traffic-light:before{content:""}.la-train:before{content:""}.la-tram:before{content:""}.la-transgender:before{content:""}.la-transgender-alt:before{content:""}.la-trash:before{content:""}.la-trash-alt:before{content:""}.la-trash-restore:before{content:""}.la-trash-restore-alt:before{content:""}.la-tree:before{content:""}.la-trello:before{content:""}.la-tripadvisor:before{content:""}.la-trophy:before{content:""}.la-truck:before{content:""}.la-truck-loading:before{content:""}.la-truck-monster:before{content:""}.la-truck-moving:before{content:""}.la-truck-pickup:before{content:""}.la-tshirt:before{content:""}.la-tty:before{content:""}.la-tumblr:before{content:""}.la-tumblr-square:before{content:""}.la-tv:before{content:""}.la-twitch:before{content:""}.la-twitter:before{content:""}.la-twitter-square:before{content:""}.la-typo3:before{content:""}.la-uber:before{content:""}.la-ubuntu:before{content:""}.la-uikit:before{content:""}.la-umbrella:before{content:""}.la-umbrella-beach:before{content:""}.la-underline:before{content:""}.la-undo:before{content:""}.la-undo-alt:before{content:""}.la-uniregistry:before{content:""}.la-universal-access:before{content:""}.la-university:before{content:""}.la-unlink:before{content:""}.la-unlock:before{content:""}.la-unlock-alt:before{content:""}.la-untappd:before{content:""}.la-upload:before{content:""}.la-ups:before{content:""}.la-usb:before{content:""}.la-user:before{content:""}.la-user-alt:before{content:""}.la-user-alt-slash:before{content:""}.la-user-astronaut:before{content:""}.la-user-check:before{content:""}.la-user-circle:before{content:""}.la-user-clock:before{content:""}.la-user-cog:before{content:""}.la-user-edit:before{content:""}.la-user-friends:before{content:""}.la-user-graduate:before{content:""}.la-user-injured:before{content:""}.la-user-lock:before{content:""}.la-user-md:before{content:""}.la-user-minus:before{content:""}.la-user-ninja:before{content:""}.la-user-nurse:before{content:""}.la-user-plus:before{content:""}.la-user-secret:before{content:""}.la-user-shield:before{content:""}.la-user-slash:before{content:""}.la-user-tag:before{content:""}.la-user-tie:before{content:""}.la-user-times:before{content:""}.la-users:before{content:""}.la-users-cog:before{content:""}.la-usps:before{content:""}.la-ussunnah:before{content:""}.la-utensil-spoon:before{content:""}.la-utensils:before{content:""}.la-vaadin:before{content:""}.la-vector-square:before{content:""}.la-venus:before{content:""}.la-venus-double:before{content:""}.la-venus-mars:before{content:""}.la-viacoin:before{content:""}.la-viadeo:before{content:""}.la-viadeo-square:before{content:""}.la-vial:before{content:""}.la-vials:before{content:""}.la-viber:before{content:""}.la-video:before{content:""}.la-video-slash:before{content:""}.la-vihara:before{content:""}.la-vimeo:before{content:""}.la-vimeo-square:before{content:""}.la-vimeo-v:before{content:""}.la-vine:before{content:""}.la-vk:before{content:""}.la-vnv:before{content:""}.la-voicemail:before{content:""}.la-volleyball-ball:before{content:""}.la-volume-down:before{content:""}.la-volume-mute:before{content:""}.la-volume-off:before{content:""}.la-volume-up:before{content:""}.la-vote-yea:before{content:""}.la-vr-cardboard:before{content:""}.la-vuejs:before{content:""}.la-walking:before{content:""}.la-wallet:before{content:""}.la-warehouse:before{content:""}.la-water:before{content:""}.la-wave-square:before{content:""}.la-waze:before{content:""}.la-weebly:before{content:""}.la-weibo:before{content:""}.la-weight:before{content:""}.la-weight-hanging:before{content:""}.la-weixin:before{content:""}.la-whatsapp:before{content:""}.la-whatsapp-square:before{content:""}.la-wheelchair:before{content:""}.la-whmcs:before{content:""}.la-wifi:before{content:""}.la-wikipedia-w:before{content:""}.la-wind:before{content:""}.la-window-close:before{content:""}.la-window-maximize:before{content:""}.la-window-minimize:before{content:""}.la-window-restore:before{content:""}.la-windows:before{content:""}.la-wine-bottle:before{content:""}.la-wine-glass:before{content:""}.la-wine-glass-alt:before{content:""}.la-wix:before{content:""}.la-wizards-of-the-coast:before{content:""}.la-wolf-pack-battalion:before{content:""}.la-won-sign:before{content:""}.la-wordpress:before{content:""}.la-wordpress-simple:before{content:""}.la-wpbeginner:before{content:""}.la-wpexplorer:before{content:""}.la-wpforms:before{content:""}.la-wpressr:before{content:""}.la-wrench:before{content:""}.la-x-ray:before{content:""}.la-xbox:before{content:""}.la-xing:before{content:""}.la-xing-square:before{content:""}.la-y-combinator:before{content:""}.la-yahoo:before{content:""}.la-yammer:before{content:""}.la-yandex:before{content:""}.la-yandex-international:before{content:""}.la-yarn:before{content:""}.la-yelp:before{content:""}.la-yen-sign:before{content:""}.la-yin-yang:before{content:""}.la-yoast:before{content:""}.la-youtube:before{content:""}.la-youtube-square:before{content:""}.la-zhihu:before{content:""}.la-hat-cowboy:before{content:""}.la-hat-cowboy-side:before{content:""}.la-mdb:before{content:""}.la-mouse:before{content:""}.la-orcid:before{content:""}.la-record-vinyl:before{content:""}.la-swift:before{content:""}.la-umbraco:before{content:""}.la-buy-n-large:before{content:""}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}body,html{font-family:Jost;height:100%;width:100%}.bg-overlay{background:rgba(51,51,51,.26)}[v-cloak]>*{display:none}.loader{border-top-color:#3498db!important}.loader.slow{-webkit-animation:spinner 1.5s linear infinite;animation:spinner 1.5s linear infinite}.loader.fast{-webkit-animation:spinner .7s linear infinite;animation:spinner .7s linear infinite}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.form-input label{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity));font-weight:600;padding-bottom:.5rem;padding-top:.5rem}.form-input input{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(219,234,254,var(--tw-bg-opacity));border-color:rgba(191,219,254,var(--tw-border-opacity));border-radius:.25rem;border-width:2px;padding:.5rem;width:100%}.form-input input[disabled]{--tw-bg-opacity:1;background-color:rgba(209,213,219,var(--tw-bg-opacity))}.form-input p{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity));font-size:.75rem;line-height:1rem;padding-bottom:.25rem;padding-top:.25rem}.form-input-invalid label{--tw-text-opacity:1;color:rgba(239,68,68,var(--tw-text-opacity));font-weight:600;padding-bottom:.5rem;padding-top:.5rem}.form-input-invalid input{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(254,226,226,var(--tw-bg-opacity));border-color:rgba(248,113,113,var(--tw-border-opacity));border-radius:.25rem;border-width:2px;padding:.5rem;width:100%}.form-input-invalid p{--tw-text-opacity:1;color:rgba(239,68,68,var(--tw-text-opacity));font-size:.75rem;line-height:1rem;padding-bottom:.25rem;padding-top:.25rem}.btn{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06);border-radius:.25rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding:.5rem .75rem;text-align:center}.btn-blue{background-color:rgba(37,99,235,var(--tw-bg-opacity));border-color:rgba(37,99,235,var(--tw-border-opacity))}.btn-blue,.btn-red{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.btn-red{background-color:rgba(220,38,38,var(--tw-bg-opacity));border-color:rgba(220,38,38,var(--tw-border-opacity))}.pos-button-clicked{box-shadow:inset 0 0 5px 0 #a4a5a7}.ns-table{width:100%}.ns-table thead th{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity));border-color:rgba(209,213,219,var(--tw-border-opacity));border-width:1px;color:rgba(55,65,81,var(--tw-text-opacity));padding:.5rem}.ns-table tbody td,.ns-table tfoot td{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity));border-width:1px;color:rgba(55,65,81,var(--tw-text-opacity));padding:.5rem}.ns-table tbody>tr.info{--tw-bg-opacity:1;background-color:rgba(191,219,254,var(--tw-bg-opacity))}.ns-table tbody>tr.danger{--tw-bg-opacity:1;background-color:rgba(254,202,202,var(--tw-bg-opacity))}.ns-table tbody>tr.success{--tw-bg-opacity:1;background-color:rgba(167,243,208,var(--tw-bg-opacity))}.ns-table tbody>tr.green{--tw-bg-opacity:1;background-color:rgba(253,230,138,var(--tw-bg-opacity))}#editor h1{font-size:3rem;font-weight:700;line-height:1}#editor h2{font-size:2.25rem;font-weight:700;line-height:2.5rem}#editor h3{font-size:1.875rem;font-weight:700;line-height:2.25rem}#editor h4{font-size:1.5rem;font-weight:700;line-height:2rem}#editor h5{font-size:1.25rem;font-weight:700;line-height:1.75rem}#grid-items .vue-recycle-scroller__item-wrapper{display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr));overflow-y:auto}@media (min-width:768px){#grid-items .vue-recycle-scroller__item-wrapper{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){#grid-items .vue-recycle-scroller__item-wrapper{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1280px){#grid-items .vue-recycle-scroller__item-wrapper{grid-template-columns:repeat(5,minmax(0,1fr))}}#grid-items .vue-recycle-scroller__item-view{--tw-border-opacity:1;align-items:center;border-color:rgba(229,231,235,var(--tw-border-opacity));border-width:1px;cursor:pointer;display:flex;flex-direction:column;height:8rem;justify-content:center;overflow:hidden}@media (min-width:1024px){#grid-items .vue-recycle-scroller__item-view{height:10rem}}#grid-items .vue-recycle-scroller__item-view:hover{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.popup-heading{align-items:center;display:flex;justify-content:space-between;padding:.5rem}.popup-heading h3{font-weight:600}@media (min-width:640px){.sm\:relative{position:relative!important}.sm\:mx-auto{margin-left:auto!important;margin-right:auto!important}.sm\:hidden{display:none!important}.sm\:h-108{height:27rem!important}.sm\:w-64{width:16rem!important}.sm\:rounded-lg{border-radius:.5rem!important}.sm\:text-sm{font-size:.875rem!important}.sm\:leading-5,.sm\:text-sm{line-height:1.25rem!important}}@media (min-width:768px){.md\:visible{visibility:visible!important}.md\:static{position:static!important}.md\:m-0{margin:0!important}.md\:mx-auto{margin-left:auto!important;margin-right:auto!important}.md\:-mx-2{margin-left:-.5rem!important;margin-right:-.5rem!important}.md\:-mx-4{margin-left:-1rem!important;margin-right:-1rem!important}.md\:my-0{margin-bottom:0!important;margin-top:0!important}.md\:my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.md\:mt-0{margin-top:0!important}.md\:mt-2{margin-top:.5rem!important}.md\:mb-0{margin-bottom:0!important}.md\:inline-block{display:inline-block!important}.md\:inline{display:inline!important}.md\:hidden{display:none!important}.md\:h-56{height:14rem!important}.md\:h-full{height:100%!important}.md\:h-6\/7-screen{height:85.71vh!important}.md\:h-5\/7-screen{height:71.42vh!important}.md\:h-5\/6-screen{height:83.33vh!important}.md\:h-4\/5-screen{height:80vh!important}.md\:h-3\/5-screen{height:60vh!important}.md\:h-2\/3-screen{height:66.66vh!important}.md\:h-half{height:50vh!important}.md\:w-16{width:4rem!important}.md\:w-24{width:6rem!important}.md\:w-56{width:14rem!important}.md\:w-72{width:18rem!important}.md\:w-auto{width:auto!important}.md\:w-1\/2{width:50%!important}.md\:w-1\/3{width:33.333333%!important}.md\:w-2\/3{width:66.666667%!important}.md\:w-2\/5{width:40%!important}.md\:w-3\/5{width:60%!important}.md\:w-full{width:100%!important}.md\:w-6\/7-screen{width:85.71vw!important}.md\:w-5\/7-screen{width:71.42vw!important}.md\:w-4\/7-screen{width:57.14vw!important}.md\:w-3\/7-screen{width:42.85vw!important}.md\:w-4\/6-screen{width:66.66vw!important}.md\:w-3\/6-screen{width:50vw!important}.md\:w-4\/5-screen{width:80vw!important}.md\:w-3\/5-screen{width:60vw!important}.md\:w-2\/5-screen{width:40vw!important}.md\:w-3\/4-screen{width:75vw!important}.md\:w-2\/4-screen{width:50vw!important}.md\:w-2\/3-screen{width:66.66vw!important}.md\:w-1\/3-screen{width:33.33vw!important}.md\:flex-auto{flex:1 1 auto!important}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.md\:flex-row{flex-direction:row!important}.md\:flex-col{flex-direction:column!important}.md\:flex-nowrap{flex-wrap:nowrap!important}.md\:items-start{align-items:flex-start!important}.md\:justify-end{justify-content:flex-end!important}.md\:overflow-hidden{overflow:hidden!important}.md\:overflow-y-auto{overflow-y:auto!important}.md\:rounded-lg{border-radius:.5rem!important}.md\:border-l{border-left-width:1px!important}.md\:p-0{padding:0!important}.md\:px-4{padding-left:1rem!important;padding-right:1rem!important}.md\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\:text-base{font-size:1rem!important;line-height:1.5rem!important}.md\:text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.md\:text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}}@media (min-width:1024px){.lg\:my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.lg\:my-8{margin-bottom:2rem!important;margin-top:2rem!important}.lg\:block{display:block!important}.lg\:flex{display:flex!important}.lg\:hidden{display:none!important}.lg\:h-full{height:100%!important}.lg\:h-5\/7-screen{height:71.42vh!important}.lg\:h-3\/7-screen{height:42.85vh!important}.lg\:h-5\/6-screen{height:83.33vh!important}.lg\:h-4\/5-screen{height:80vh!important}.lg\:h-2\/3-screen{height:66.66vh!important}.lg\:w-56{width:14rem!important}.lg\:w-auto{width:auto!important}.lg\:w-1\/2{width:50%!important}.lg\:w-1\/3{width:33.333333%!important}.lg\:w-2\/3{width:66.666667%!important}.lg\:w-1\/4{width:25%!important}.lg\:w-2\/4{width:50%!important}.lg\:w-2\/5{width:40%!important}.lg\:w-1\/6{width:16.666667%!important}.lg\:w-2\/6{width:33.333333%!important}.lg\:w-4\/6{width:66.666667%!important}.lg\:w-full{width:100%!important}.lg\:w-4\/7-screen{width:57.14vw!important}.lg\:w-3\/7-screen{width:42.85vw!important}.lg\:w-2\/7-screen{width:28.57vw!important}.lg\:w-4\/6-screen{width:66.66vw!important}.lg\:w-3\/6-screen{width:50vw!important}.lg\:w-2\/6-screen{width:33.33vw!important}.lg\:w-3\/5-screen{width:60vw!important}.lg\:w-2\/5-screen{width:40vw!important}.lg\:w-2\/4-screen{width:50vw!important}.lg\:w-2\/3-screen{width:66.66vw!important}.lg\:w-1\/3-screen{width:33.33vw!important}.lg\:w-half{width:50vw!important}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.lg\:flex-row{flex-direction:row!important}.lg\:items-start{align-items:flex-start!important}.lg\:border-t{border-top-width:1px!important}.lg\:border-b{border-bottom-width:1px!important}.lg\:px-0{padding-left:0!important;padding-right:0!important}.lg\:py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.lg\:text-lg{font-size:1.125rem!important}.lg\:text-lg,.lg\:text-xl{line-height:1.75rem!important}.lg\:text-xl{font-size:1.25rem!important}.lg\:text-2xl{font-size:1.5rem!important;line-height:2rem!important}.lg\:text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.lg\:text-5xl{font-size:3rem!important;line-height:1!important}}@media (min-width:1280px){.xl\:h-2\/5-screen{height:40vh!important}.xl\:w-108{width:27rem!important}.xl\:w-1\/2{width:50%!important}.xl\:w-1\/4{width:25%!important}.xl\:w-2\/4{width:50%!important}.xl\:w-2\/6-screen{width:33.33vw!important}.xl\:w-2\/5-screen{width:40vw!important}.xl\:w-1\/3-screen{width:33.33vw!important}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))!important}.xl\:border-none{border-style:none!important}.xl\:text-xl{font-size:1.25rem!important;line-height:1.75rem!important}}@media print{.print\:w-1\/2{width:50%!important}.print\:w-1\/3{width:33.333333%!important}} /*# sourceMappingURL=app.css.map*/ \ No newline at end of file diff --git a/public/js/app.min.js b/public/js/app.min.js index 6fcbf7106..4d923edd9 100644 --- a/public/js/app.min.js +++ b/public/js/app.min.js @@ -1,2 +1,2 @@ -(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[219],{1683:(e,t,s)=>{"use strict";var r=s(538),i=s(8202),n=(s(824),s(7266)),a=s(162),o=s(7389);function l(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function c(e){for(var t=1;t=0)&&"hidden"!==e.type})).length>0})).length>0)return a.kX.error(this.$slots["error-no-valid-rules"]?this.$slots["error-no-valid-rules"]:(0,o.__)("No valid run were provided.")).subscribe();if(this.formValidation.validateForm(this.form).length>0)return a.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:(0,o.__)("Unable to proceed, the form is invalid."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();if(this.formValidation.disableForm(this.form),void 0===this.submitUrl)return a.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:(0,o.__)("Unable to proceed, no valid submit URL is defined."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();var t=c(c({},this.formValidation.extractForm(this.form)),{},{rules:this.form.rules.map((function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}))});a.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,t).subscribe((function(t){if("success"===t.status)return document.location=e.returnUrl;e.formValidation.enableForm(e.form)}),(function(t){e.formValidation.triggerError(e.form,t.response.data),e.formValidation.enableForm(e.form),a.kX.error(t.data.message||(0,o.__)("An unexpected error has occured"),void 0,{duration:5e3}).subscribe()}))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;a.ih.get("".concat(this.src)).subscribe((function(t){e.form=e.parseForm(t.form)}))},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var s in e.tabs)0===t&&(e.tabs[s].active=!0),e.tabs[s].active=void 0!==e.tabs[s].active&&e.tabs[s].active,e.tabs[s].fields=this.formValidation.createFields(e.tabs[s].fields),t++;return e},getRuleForm:function(){return JSON.parse(JSON.stringify(this.form.ruleForm))},addRule:function(){this.form.rules.push(this.getRuleForm())},removeRule:function(e){this.form.rules.splice(e,1)}}};var f=s(1900);const p=(0,f.Z)(u,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"form flex-auto flex flex-col",attrs:{id:"crud-form"}},[0===Object.values(e.form).length?s("div",{staticClass:"flex items-center justify-center flex-auto"},[s("ns-spinner")],1):e._e(),e._v(" "),Object.values(e.form).length>0?[s("div",{staticClass:"flex flex-col"},[s("div",{staticClass:"flex justify-between items-center"},[s("label",{staticClass:"font-bold my-2 text-gray-700",attrs:{for:"title"}},[e._t("title",(function(){return[e._v(e._s(e.__("No title Provided")))]}))],2),e._v(" "),s("div",{staticClass:"text-sm my-2 text-gray-700",attrs:{for:"title"}},[e.returnUrl?s("a",{staticClass:"rounded-full border border-gray-400 hover:bg-red-600 hover:text-white bg-white px-2 py-1",attrs:{href:e.returnUrl}},[e._v("Return")]):e._e()])]),e._v(" "),s("div",{staticClass:"flex border-2 rounded overflow-hidden",class:e.form.main.disabled?"border-gray-500":e.form.main.errors.length>0?"border-red-600":"border-blue-500"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.form.main.value,expression:"form.main.value"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",class:e.form.main.disabled?"bg-gray-400":"",attrs:{disabled:e.form.main.disabled,type:"text"},domProps:{value:e.form.main.value},on:{blur:function(t){return e.formValidation.checkField(e.form.main)},change:function(t){return e.formValidation.checkField(e.form.main)},input:function(t){t.target.composing||e.$set(e.form.main,"value",t.target.value)}}}),e._v(" "),s("button",{staticClass:"outline-none px-4 h-10 text-white border-l border-gray-400",class:e.form.main.disabled?"bg-gray-500":e.form.main.errors.length>0?"bg-red-500":"bg-blue-500",attrs:{disabled:e.form.main.disabled},on:{click:function(t){return e.submit()}}},[e._t("save",(function(){return[e._v(e._s(e.__("Save")))]}))],2)]),e._v(" "),e.form.main.description&&0===e.form.main.errors.length?s("p",{staticClass:"text-xs text-gray-600 py-1"},[e._v(e._s(e.form.main.description))]):e._e(),e._v(" "),e._l(e.form.main.errors,(function(t,r){return s("p",{key:r,staticClass:"text-xs py-1 text-red-500"},[s("span",[e._t("error-required",(function(){return[e._v(e._s(t.identifier))]}))],2)])}))],2),e._v(" "),s("div",{staticClass:"flex -mx-4 mt-4",attrs:{id:"points-wrapper"}},[s("div",{staticClass:"w-full md:w-1/3 lg:1/4 px-4"},[s("div",{staticClass:"bg-white rounded shadow"},[s("div",{staticClass:"header border-b border-gray-200 p-2"},[e._v(e._s(e.__("General")))]),e._v(" "),s("div",{staticClass:"body p-2"},e._l(e.form.tabs.general.fields,(function(e,t){return s("ns-field",{key:t,staticClass:"mb-2",attrs:{field:e}})})),1)]),e._v(" "),s("div",{staticClass:"rounded bg-gray-100 border border-gray-400 p-2 flex justify-between items-center my-3"},[e._t("add",(function(){return[s("span",{staticClass:"text-gray-700"},[e._v(e._s(e.__("Add Rule")))])]})),e._v(" "),s("button",{staticClass:"rounded bg-blue-500 text-white font-semibold flex items-center justify-center h-10 w-10",on:{click:function(t){return e.addRule()}}},[s("i",{staticClass:"las la-plus"})])],2)]),e._v(" "),s("div",{staticClass:"w-full md:w-2/3 lg:3/4 px-4 -m-3 flex flex-wrap items-start justify-start"},e._l(e.form.rules,(function(t,r){return s("div",{key:r,staticClass:"w-full md:w-1/2 p-3"},[s("div",{staticClass:"rounded shadow bg-white flex-auto"},[s("div",{staticClass:"body p-2"},e._l(t,(function(e,t){return s("ns-field",{key:t,staticClass:"mb-2",attrs:{field:e}})})),1),e._v(" "),s("div",{staticClass:"header border-t border-gray-200 p-2 flex justify-end"},[s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.removeRule(r)}}},[s("i",{staticClass:"las la-times"})])],1)])])})),0)])]:e._e()],2)}),[],!1,null,null,null).exports;function h(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function m(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const v={name:"ns-create-coupons",mounted:function(){this.loadForm()},computed:{validTabs:function(){if(this.form){var e=[];for(var t in this.form.tabs)["selected_products","selected_categories"].includes(t)&&e.push(this.form.tabs[t]);return e}return[]},activeValidTab:function(){return this.validTabs.filter((function(e){return e.active}))[0]},generalTab:function(){var e=[];for(var t in this.form.tabs)["general"].includes(t)&&e.push(this.form.tabs[t]);return e}},data:function(){return{formValidation:new n.Z,form:{},nsSnackBar:a.kX,nsHttpClient:a.ih,options:new Array(40).fill("").map((function(e,t){return{label:"Foo"+t,value:"bar"+t}}))}},props:["submit-method","submit-url","return-url","src","rules"],methods:{setTabActive:function(e){this.validTabs.forEach((function(e){return e.active=!1})),e.active=!0},submit:function(){var e=this;if(this.formValidation.validateForm(this.form).length>0)return a.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe();if(void 0===this.submitUrl)return a.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe();this.formValidation.disableForm(this.form);var t=function(e){for(var t=1;t=0&&(this.options[t].selected=!this.options[t].selected)},removeOption:function(e){var t=e.option;e.index;t.selected=!1},getRuleForm:function(){return this.form.ruleForm},addRule:function(){this.form.rules.push(this.getRuleForm())},removeRule:function(e){this.form.rules.splice(e,1)}}};const b=(0,f.Z)(v,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"form flex-auto flex flex-col",attrs:{id:"crud-form"}},[0===Object.values(e.form).length?s("div",{staticClass:"flex items-center justify-center flex-auto"},[s("ns-spinner")],1):e._e(),e._v(" "),Object.values(e.form).length>0?[s("div",{staticClass:"flex flex-col"},[s("div",{staticClass:"flex justify-between items-center"},[s("label",{staticClass:"font-bold my-2 text-gray-700",attrs:{for:"title"}},[e._t("title",(function(){return[e._v("No title Provided")]}))],2),e._v(" "),s("div",{staticClass:"text-sm my-2 text-gray-700",attrs:{for:"title"}},[e.returnUrl?s("a",{staticClass:"rounded-full border border-gray-400 hover:bg-red-600 hover:text-white bg-white px-2 py-1",attrs:{href:e.returnUrl}},[e._v("Return")]):e._e()])]),e._v(" "),s("div",{staticClass:"flex border-2 rounded overflow-hidden",class:e.form.main.disabled?"border-gray-500":e.form.main.errors.length>0?"border-red-600":"border-blue-500"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.form.main.value,expression:"form.main.value"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",class:e.form.main.disabled?"bg-gray-400":"",attrs:{disabled:e.form.main.disabled,type:"text"},domProps:{value:e.form.main.value},on:{blur:function(t){return e.formValidation.checkField(e.form.main)},change:function(t){return e.formValidation.checkField(e.form.main)},input:function(t){t.target.composing||e.$set(e.form.main,"value",t.target.value)}}}),e._v(" "),s("button",{staticClass:"outline-none px-4 h-10 text-white border-l border-gray-400",class:e.form.main.disabled?"bg-gray-500":e.form.main.errors.length>0?"bg-red-500":"bg-blue-500",attrs:{disabled:e.form.main.disabled},on:{click:function(t){return e.submit()}}},[e._t("save",(function(){return[e._v("Save")]}))],2)]),e._v(" "),e.form.main.description&&0===e.form.main.errors.length?s("p",{staticClass:"text-xs text-gray-600 py-1"},[e._v(e._s(e.form.main.description))]):e._e(),e._v(" "),e._l(e.form.main.errors,(function(t,r){return s("p",{key:r,staticClass:"text-xs py-1 text-red-500"},[s("span",[e._t("error-required",(function(){return[e._v(e._s(t.identifier))]}))],2)])}))],2),e._v(" "),s("div",{staticClass:"-mx-4 flex flex-wrap mt-4",attrs:{id:"form-container"}},[s("div",{staticClass:"px-4 w-full md:w-1/2"},e._l(e.generalTab,(function(t,r){return s("div",{key:r,staticClass:"rounded bg-white shadow p-2"},e._l(t.fields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1)})),0),e._v(" "),s("div",{staticClass:"px-4 w-full md:w-1/2"},[s("div",{attrs:{id:"tabbed-card"}},[s("div",{staticClass:"flex flex-wrap",attrs:{id:"card-header"}},e._l(e.validTabs,(function(t,r){return s("div",{key:r,staticClass:"cursor-pointer px-4 py-2 rounded-tl-lg rounded-tr-lg",class:t.active?"bg-white":"bg-gray-100",on:{click:function(s){return e.setTabActive(t)}}},[e._v("\n "+e._s(t.label)+"\n ")])})),0),e._v(" "),s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow p-2"},e._l(e.activeValidTab.fields,(function(e,t){return s("div",{key:t,staticClass:"flex flex-col"},[s("ns-field",{attrs:{field:e}})],1)})),0)])])])]:e._e()],2)}),[],!1,null,null,null).exports;const _={name:"ns-settings",props:["url"],data:function(){return{validation:new n.Z,form:{},test:""}},computed:{formDefined:function(){return Object.values(this.form).length>0},activeTab:function(){for(var e in this.form.tabs)if(!0===this.form.tabs[e].active)return this.form.tabs[e]}},mounted:function(){this.loadSettingsForm()},methods:{__:o.__,loadComponent:function(e){return nsExtraComponents[e]},submitForm:function(){var e=this;if(0===this.validation.validateForm(this.form).length)return this.validation.disableForm(this.form),a.ih.post(this.url,this.validation.extractForm(this.form)).subscribe((function(t){e.validation.enableForm(e.form),e.loadSettingsForm(),t.data&&t.data.results&&t.data.results.forEach((function(e){"failed"===e.status?a.kX.error(e.message).subscribe():a.kX.success(e.message).subscribe()})),a.kq.doAction("ns-settings-saved",{result:t,instance:e}),a.kX.success(t.message).subscribe()}),(function(t){e.validation.enableForm(e.form),e.validation.triggerFieldsErrors(e.form,t),a.kq.doAction("ns-settings-failed",{error:t,instance:e}),a.kX.error(t.message||(0,o.__)("Unable to proceed the form is not valid.")).subscribe()}));a.kX.error(this.$slots["error-form-invalid"][0].text||(0,o.__)("Unable to proceed the form is not valid.")).subscribe()},setActive:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;e.active=!0,a.kq.doAction("ns-settings-change-tab",{tab:e,instance:this})},loadSettingsForm:function(){var e=this;a.ih.get(this.url).subscribe((function(t){var s=0;Object.values(t.tabs).filter((function(e){return e.active})).length;for(var r in t.tabs)e.formDefined?t.tabs[r].active=e.form.tabs[r].active:(t.tabs[r].active=!1,0===s&&(t.tabs[r].active=!0)),s++;e.form=e.validation.createForm(t),a.kq.doAction("ns-settings-loaded",e),a.kq.doAction("ns-settings-change-tab",{tab:e.activeTab,instance:e})}))}}};const g=(0,f.Z)(_,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.formDefined?s("div",{attrs:{id:"tabbed-card"}},[s("div",{staticClass:"flex flex-wrap",attrs:{id:"card-header"}},e._l(e.form.tabs,(function(t,r){return s("div",{key:r,staticClass:"text-gray-700 cursor-pointer flex items-center px-4 py-2 rounded-tl-lg rounded-tr-lg",class:t.active?"bg-white":"bg-gray-300",on:{click:function(s){return e.setActive(t)}}},[s("span",[e._v(e._s(t.label))]),e._v(" "),t.errors.length>0?s("span",{staticClass:"ml-2 rounded-full bg-red-400 text-white text-sm h-6 w-6 flex items-center justify-center"},[e._v(e._s(t.errors.length))]):e._e()])})),0),e._v(" "),s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow"},[s("div",{staticClass:"-mx-4 flex flex-wrap p-2"},[e.activeTab.fields?e._l(e.activeTab.fields,(function(e,t){return s("div",{key:t,staticClass:"w-full px-4 md:w-1/2 lg:w-1/3"},[s("div",{staticClass:"flex flex-col my-2"},[s("ns-field",{attrs:{field:e}})],1)])})):e._e(),e._v(" "),e.activeTab.component?s("div",{staticClass:"w-full px-4"},[s(e.loadComponent(e.activeTab.component),{tag:"component"})],1):e._e()],2),e._v(" "),e.activeTab.fields?s("div",{staticClass:"border-t border-gray-400 p-2 flex justify-end"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.submitForm()}}},[e._t("submit-button",(function(){return[e._v(e._s(e.__("Save Settings")))]}))],2)],1):e._e()])]):e._e()}),[],!1,null,null,null).exports;const x={name:"ns-reset",props:["url"],methods:{__:o.__,submit:function(){if(!this.validation.validateFields(this.fields))return this.$forceUpdate(),a.kX.error(this.$slots["error-form-invalid"]?this.$slots["error-form-invalid"][0].text:"Invalid Form").subscribe();var e=this.validation.getValue(this.fields);confirm(this.$slots["confirm-message"]?this.$slots["confirm-message"][0].text:(0,o.__)("Would you like to proceed ?"))&&a.ih.post("/api/nexopos/v4/reset",e).subscribe((function(e){a.kX.success(e.message).subscribe()}),(function(e){a.kX.error(e.message).subscribe()}))}},data:function(){return{validation:new n.Z,fields:[{label:"Choose Option",name:"mode",description:(0,o.__)("Will apply various reset method on the system."),type:"select",options:[{label:(0,o.__)("Wipe Everything"),value:"wipe_all"},{label:(0,o.__)("Wipe + Grocery Demo"),value:"wipe_plus_grocery"}],validation:"required"}]}}};const y=(0,f.Z)(x,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{attrs:{id:"reset-app"}},[e._m(0),e._v(" "),s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow"},[s("div",{staticClass:"-mx-4 flex flex-wrap p-2"},e._l(e.fields,(function(e,t){return s("div",{key:t,staticClass:"px-4"},[s("ns-field",{attrs:{field:e}})],1)})),0),e._v(" "),s("div",{staticClass:"card-body border-t border-gray-400 p-2 flex"},[s("div",[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.submit()}}},[e._v(e._s(e.__("Proceed")))])],1)])])])}),[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-wrap",attrs:{id:"card-header"}},[s("div",{staticClass:"text-gray-700 bg-white cursor-pointer px-4 py-2 rounded-tl-lg rounded-tr-lg"},[e._v("\n Reset\n ")])])}],!1,null,null,null).exports;var w=s(7757),C=s.n(w),k=s(9127);function j(e,t,s,r,i,n,a){try{var o=e[n](a),l=o.value}catch(e){return void s(e)}o.done?t(l):Promise.resolve(l).then(r,i)}function $(e){return function(){var t=this,s=arguments;return new Promise((function(r,i){var n=e.apply(t,s);function a(e){j(n,r,i,a,o,"next",e)}function o(e){j(n,r,i,a,o,"throw",e)}a(void 0)}))}}var P;const S={name:"ns-modules",props:["url","upload"],data:function(){return{modules:[],total_enabled:0,total_disabled:0}},mounted:function(){this.loadModules().subscribe()},computed:{noModules:function(){return 0===Object.values(this.modules).length},noModuleMessage:function(){return this.$slots["no-modules-message"]?this.$slots["no-modules-message"][0].text:(0,o.__)("No module has been updated yet.")}},methods:{__:o.__,download:function(e){document.location="/dashboard/modules/download/"+e.namespace},performMigration:(P=$(C().mark((function e(t,s){var r,i,n,o;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=function(){var e=$(C().mark((function e(s,r){return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,i){a.ih.post("/api/nexopos/v4/modules/".concat(t.namespace,"/migrate"),{file:s,version:r}).subscribe((function(t){e(!0)}),(function(e){return a.kX.error(e.message,null,{duration:4e3}).subscribe()}))})));case 1:case"end":return e.stop()}}),e)})));return function(t,s){return e.apply(this,arguments)}}(),!(s=s||t.migrations)){e.next=19;break}t.migrating=!0,e.t0=C().keys(s);case 5:if((e.t1=e.t0()).done){e.next=17;break}i=e.t1.value,n=0;case 8:if(!(n0,name:e.namespace,label:null}})),t}))}))}}};const F=(0,f.Z)(T,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{attrs:{id:"permission-wrapper"}},[s("div",{staticClass:"rounded shadow bg-white flex"},[s("div",{staticClass:"w- bg-gray-800 flex-shrink-0",attrs:{id:"permissions"}},[s("div",{staticClass:"py-4 px-2 border-b border-gray-700 text-gray-100 flex justify-between items-center"},[e.toggled?e._e():s("span",[e._v(e._s(e.__("Permissions")))]),e._v(" "),s("div",[e.toggled?e._e():s("button",{staticClass:"rounded-full bg-white text-gray-700 h-6 w-6 flex items-center justify-center",on:{click:function(t){e.toggled=!e.toggled}}},[s("i",{staticClass:"las la-expand"})]),e._v(" "),e.toggled?s("button",{staticClass:"rounded-full bg-white text-gray-700 h-6 w-6 flex items-center justify-center",on:{click:function(t){e.toggled=!e.toggled}}},[s("i",{staticClass:"las la-compress"})]):e._e()])]),e._v(" "),e._l(e.permissions,(function(t){return s("div",{key:t.id,staticClass:"p-2 border-b border-gray-700 text-gray-100",class:e.toggled?"w-24":"w-54"},[s("a",{attrs:{href:"javascript:void(0)",title:t.namespace}},[e.toggled?e._e():s("span",[e._v(e._s(t.name))]),e._v(" "),e.toggled?s("span",[e._v(e._s(e._f("truncate")(t.name,5)))]):e._e()])])}))],2),e._v(" "),s("div",{staticClass:"flex flex-auto overflow-hidden"},[s("div",{staticClass:"overflow-y-auto"},[s("div",{staticClass:"text-gray-700 flex"},e._l(e.roles,(function(t){return s("div",{key:t.id,staticClass:"py-4 px-2 w-56 items-center border-b justify-center flex role flex-shrink-0 border-r border-gray-200"},[s("p",{staticClass:"mx-1"},[s("span",[e._v(e._s(t.name))])]),e._v(" "),s("span",{staticClass:"mx-1"},[s("ns-checkbox",{attrs:{field:t.field},on:{change:function(s){return e.selectAllPermissions(t)}}})],1)])})),0),e._v(" "),e._l(e.permissions,(function(t){return s("div",{key:t.id,staticClass:"permission flex"},e._l(e.roles,(function(r){return s("div",{key:r.id,staticClass:"border-b border-gray-200 w-56 flex-shrink-0 p-2 flex items-center justify-center border-r"},[s("ns-checkbox",{attrs:{field:r.fields[t.namespace]},on:{change:function(s){return e.submitPermissions(r,r.fields[t.namespace])}}})],1)})),0)}))],2)])])])}),[],!1,null,null,null).exports;var A=s(419);function V(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function q(e){for(var t=1;t0?t[0]:0},removeUnitPriceGroup:function(e,t){var s=this,r=e.filter((function(e){return"id"===e.name&&void 0!==e.value}));Popup.show(A.Z,{title:(0,o.__)("Confirm Your Action"),message:(0,o.__)("Would you like to delete this group ?"),onAction:function(i){if(i)if(r.length>0)s.confirmUnitQuantityDeletion({group_fields:e,group:t});else{var n=t.indexOf(e);t.splice(n,1)}}})},confirmUnitQuantityDeletion:function(e){var t=e.group_fields,s=e.group;Popup.show(A.Z,{title:(0,o.__)("Your Attention Is Required"),size:"w-3/4-screen h-2/5-screen",message:(0,o.__)("The current unit you're about to delete has a reference on the database and it might have already procured stock. Deleting that reference will remove procured stock. Would you proceed ?"),onAction:function(e){if(e){var r=t.filter((function(e){return"id"===e.name})).map((function(e){return e.value}))[0];a.ih.delete("/api/nexopos/v4/products/units/quantity/".concat(r)).subscribe((function(e){var r=s.indexOf(t);s.splice(r,1),a.kX.success(e.message).subscribe()}),(function(e){nsSnackbar.error(e.message).subscribe()}))}}})},addUnitGroup:function(e){if(0===e.options.length)return a.kX.error((0,o.__)("Please select at least one unit group before you proceed.")).subscribe();e.options.length>e.groups.length?e.groups.push(JSON.parse(JSON.stringify(e.fields))):a.kX.error((0,o.__)("There shoulnd't be more option than there are units.")).subscribe()},loadAvailableUnits:function(e){var t=this;a.ih.get(this.unitsUrl.replace("{id}",e.fields.filter((function(e){return"unit_group"===e.name}))[0].value)).subscribe((function(s){e.fields.forEach((function(e){"group"===e.type&&(e.options=s,e.fields.forEach((function(e){"unit_id"===e.name&&(console.log(e),e.options=s.map((function(e){return{label:e.name,value:e.id}})))})))})),t.$forceUpdate()}))},loadOptionsFor:function(e,t,s){var r=this;a.ih.get(this.unitsUrl.replace("{id}",t)).subscribe((function(t){r.form.variations[s].tabs.units.fields.forEach((function(s){s.name===e&&(s.options=t.map((function(e){return{label:e.name,value:e.id,selected:!1}})))})),r.$forceUpdate()}))},submit:function(){var e=this;if(this.formValidation.validateFields([this.form.main]),this.form.variations.map((function(t){return e.formValidation.validateForm(t)})).filter((function(e){return e.length>0})).length>0||Object.values(this.form.main.errors).length>0)return a.kX.error(this.$slots["error-form-invalid"]?this.$slots["error-form-invalid"][0].text:(0,o.__)("Unable to proceed the form is not valid.")).subscribe();var t=this.form.variations.map((function(e,t){return e.tabs.images.groups.filter((function(e){return e.filter((function(e){return"primary"===e.name&&1===e.value})).length>0}))}));if(t[0]&&t[0].length>1)return a.kX.error(this.$slots["error-multiple-primary"]?this.$slots["error-multiple-primary"][0].text:(0,o.__)("Unable to proceed, more than one product is set as primary")).subscribe();var s=[];if(this.form.variations.map((function(t,r){return t.tabs.units.fields.filter((function(e){return"group"===e.type})).forEach((function(t){new Object;t.groups.forEach((function(t){s.push(e.formValidation.validateFields(t))}))}))})),0===s.length)return a.kX.error(this.$slots["error-no-units-groups"]?this.$slots["error-no-units-groups"][0].text:(0,o.__)("Either Selling or Purchase unit isn't defined. Unable to proceed.")).subscribe();if(s.filter((function(e){return!1===e})).length>0)return this.$forceUpdate(),a.kX.error(this.$slots["error-invalid-unit-group"]?this.$slots["error-invalid-unit-group"][0].text:(0,o.__)("Unable to proceed as one of the unit group field is invalid")).subscribe();var r=q(q({},this.formValidation.extractForm(this.form)),{},{variations:this.form.variations.map((function(t,s){var r=e.formValidation.extractForm(t);0===s&&(r.$primary=!0),r.images=t.tabs.images.groups.map((function(t){return e.formValidation.extractFields(t)}));var i=new Object;return t.tabs.units.fields.filter((function(e){return"group"===e.type})).forEach((function(t){i[t.name]=t.groups.map((function(t){return e.formValidation.extractFields(t)}))})),r.units=q(q({},r.units),i),r}))});a.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,r).subscribe((function(t){if("success"===t.status){if(!1!==e.returnUrl)return document.location=e.returnUrl;e.$emit("save")}e.formValidation.enableForm(e.form)}),(function(t){a.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t.response.data),e.formValidation.enableForm(e.form)}))},deleteVariation:function(e){confirm(this.$slots["delete-variation"]?this.$slots["delete-variation"][0].text:(0,o.__)("Would you like to delete this variation ?"))&&this.form.variations.splice(e,1)},setTabActive:function(e,t){for(var s in t)s!==e&&(t[s].active=!1);t[e].active=!0,"units"===e&&this.loadAvailableUnits(t[e])},duplicate:function(e){this.form.variations.push(Object.assign({},e))},newVariation:function(){this.form.variations.push(this.defaultVariation)},getActiveTab:function(e){for(var t in e)if(e[t].active)return e[t];return!1},getActiveTabKey:function(e){for(var t in e)if(e[t].active)return t;return!1},parseForm:function(e){var t=this;return e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0],e.variations.forEach((function(e,s){var r=0;for(var i in e.tabs)0===r&&void 0===e.tabs[i].active?(e.tabs[i].active=!0,t._sampleVariation=Object.assign({},e),e.tabs[i].fields&&(e.tabs[i].fields=t.formValidation.createFields(e.tabs[i].fields.filter((function(e){return"name"!==e.name}))))):e.tabs[i].fields&&(e.tabs[i].fields=t.formValidation.createFields(e.tabs[i].fields)),e.tabs[i].active=void 0!==e.tabs[i].active&&e.tabs[i].active,r++})),e},loadForm:function(){var e=this;a.ih.get("".concat(this.src)).subscribe((function(t){e.form=e.parseForm(t.form)}))},addImage:function(e){e.tabs.images.groups.push(this.formValidation.createFields(JSON.parse(JSON.stringify(e.tabs.images.fields))))}},mounted:function(){this.loadForm()},name:"ns-manage-products"};const U=(0,f.Z)(M,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"form flex-auto",attrs:{id:"crud-form"}},[0===Object.values(e.form).length?s("div",{staticClass:"flex items-center h-full justify-center flex-auto"},[s("ns-spinner")],1):e._e(),e._v(" "),Object.values(e.form).length>0?[s("div",{staticClass:"flex flex-col"},[s("div",{staticClass:"flex justify-between items-center"},[s("label",{staticClass:"font-bold my-2 text-gray-700",attrs:{for:"title"}},[e._v(e._s(e.form.main.label))]),e._v(" "),s("div",{staticClass:"text-sm my-2 text-gray-700",attrs:{for:"title"}},[e.returnUrl?s("a",{staticClass:"rounded-full border border-gray-400 hover:bg-red-600 hover:text-white bg-white px-2 py-1",attrs:{href:e.returnUrl}},[e._v("Return")]):e._e()])]),e._v(" "),s("div",{staticClass:"flex border-2 rounded overflow-hidden",class:e.form.main.disabled?"border-gray-500":e.form.main.errors.length>0?"border-red-600":"border-blue-500"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.form.main.value,expression:"form.main.value"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",class:e.form.main.disabled?"bg-gray-400":"",attrs:{disabled:e.form.main.disabled,type:"text"},domProps:{value:e.form.main.value},on:{blur:function(t){return e.formValidation.checkField(e.form.main)},change:function(t){return e.formValidation.checkField(e.form.main)},input:function(t){t.target.composing||e.$set(e.form.main,"value",t.target.value)}}}),e._v(" "),s("button",{staticClass:"outline-none px-4 h-10 text-white border-l border-gray-400",class:e.form.main.disabled?"bg-gray-500":e.form.main.errors.length>0?"bg-red-500":"bg-blue-500",attrs:{disabled:e.form.main.disabled},on:{click:function(t){return e.submit()}}},[e._t("save",(function(){return[e._v(e._s(e.__("Save")))]}))],2)]),e._v(" "),e.form.main.description&&0===e.form.main.errors.length?s("p",{staticClass:"text-xs text-gray-600 py-1"},[e._v(e._s(e.form.main.description))]):e._e(),e._v(" "),e._l(e.form.main.errors,(function(t,r){return s("p",{key:r,staticClass:"text-xs py-1 text-red-500"},[s("span",[e._t("error-required",(function(){return[e._v(e._s(t.identifier))]}))],2)])}))],2),e._v(" "),s("div",{staticClass:"-mx-4 flex flex-wrap mt-4",attrs:{id:"form-container"}},[s("div",{staticClass:"px-4 w-full"},e._l(e.form.variations,(function(t,r){return s("div",{key:r,staticClass:"mb-8",attrs:{id:"tabbed-card"}},[s("div",{staticClass:"flex flex-wrap justify-between",attrs:{id:"card-header"}},[s("div",{staticClass:"flex flex-wrap"},e._l(t.tabs,(function(r,i){return s("div",{key:i,staticClass:"cursor-pointer text-gray-700 px-4 py-2 rounded-tl-lg rounded-tr-lg flex justify-between",class:r.active?"bg-white":"bg-gray-100",on:{click:function(s){return e.setTabActive(i,t.tabs)}}},[s("span",{staticClass:"block mr-2"},[e._v(e._s(r.label))]),e._v(" "),r.errors&&r.errors.length>0?s("span",{staticClass:"rounded-full bg-red-400 text-white h-6 w-6 flex font-semibold items-center justify-center"},[e._v(e._s(r.errors.length))]):e._e()])})),0),e._v(" "),s("div",{staticClass:"flex items-center justify-center -mx-1"})]),e._v(" "),s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow p-2"},[["images","units"].includes(e.getActiveTabKey(t.tabs))?e._e():s("div",{staticClass:"-mx-4 flex flex-wrap"},[e._l(e.getActiveTab(t.tabs).fields,(function(e,t){return[s("div",{key:t,staticClass:"flex flex-col px-4 w-full md:w-1/2 lg:w-1/3"},[s("ns-field",{attrs:{field:e}})],1)]}))],2),e._v(" "),"images"===e.getActiveTabKey(t.tabs)?s("div",{staticClass:"-mx-4 flex flex-wrap"},[s("div",{staticClass:"flex flex-col px-4 w-full md:w-1/2 lg:w-1/3"},[s("div",{staticClass:"rounded border flex bg-white justify-between p-2 items-center"},[s("span",[e._v(e._s(e.__("Add Images")))]),e._v(" "),s("button",{staticClass:"rounded-full border flex items-center justify-center w-8 h-8 bg-white hover:bg-blue-400 hover:text-white",on:{click:function(s){return e.addImage(t)}}},[s("i",{staticClass:"las la-plus-circle"})])])]),e._v(" "),e._l(e.getActiveTab(t.tabs).groups,(function(t,r){return s("div",{key:r,staticClass:"flex flex-col px-4 w-full md:w-1/2 lg:w-1/3 mb-4"},[s("div",{staticClass:"rounded border flex flex-col bg-white p-2"},e._l(t,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1)])}))],2):e._e(),e._v(" "),"units"===e.getActiveTabKey(t.tabs)?s("div",{staticClass:"-mx-4 flex flex-wrap"},[s("div",{staticClass:"px-4 w-full md:w-1/2 lg:w-1/3"},[s("ns-field",{attrs:{field:e.getActiveTab(t.tabs).fields[0]},on:{change:function(s){e.loadAvailableUnits(e.getActiveTab(t.tabs))}}}),e._v(" "),s("ns-field",{attrs:{field:e.getActiveTab(t.tabs).fields[1]},on:{change:function(s){e.loadAvailableUnits(e.getActiveTab(t.tabs))}}})],1),e._v(" "),e._l(e.getActiveTab(t.tabs).fields,(function(t,r){return["group"===t.type?s("div",{key:r,staticClass:"px-4 w-full lg:w-2/3"},[s("div",{staticClass:"mb-2"},[s("label",{staticClass:"font-medium text-gray-700"},[e._v(e._s(t.label))]),e._v(" "),s("p",{staticClass:"py-1 text-sm text-gray-600"},[e._v(e._s(t.description))])]),e._v(" "),s("div",{staticClass:"mb-2"},[s("div",{staticClass:"border-dashed border-2 border-gray-200 p-1 bg-gray-100 flex justify-between items-center text-gray-700 cursor-pointer rounded-lg",on:{click:function(s){return e.addUnitGroup(t)}}},[e._m(0,!0),e._v(" "),s("span",[e._v(e._s(e.__("New Group")))])])]),e._v(" "),s("div",{staticClass:"-mx-4 flex flex-wrap"},e._l(t.groups,(function(r,i){return s("div",{key:i,staticClass:"px-4 w-full md:w-1/2 mb-4"},[s("div",{staticClass:"shadow rounded overflow-hidden"},[s("div",{staticClass:"border-b text-sm bg-blue-400 text-white border-blue-300 p-2 flex justify-between"},[s("span",[e._v(e._s(e.__("Available Quantity")))]),e._v(" "),s("span",[e._v(e._s(e.getUnitQuantity(r)))])]),e._v(" "),s("div",{staticClass:"p-2 mb-2"},e._l(r,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1),e._v(" "),s("div",{staticClass:"p-1 text-red-800 hover:bg-red-200 border-t border-red-200 flex items-center justify-center cursor-pointer font-medium",on:{click:function(s){return e.removeUnitPriceGroup(r,t.groups)}}},[e._v("\n "+e._s(e.__("Delete"))+"\n ")])])])})),0)]):e._e()]}))],2):e._e()])])})),0)])]:e._e()],2)}),[function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"rounded-full border-2 border-gray-300 bg-white h-8 w-8 flex items-center justify-center"},[t("i",{staticClass:"las la-plus-circle"})])}],!1,null,null,null).exports;function R(e,t){for(var s=0;s0&&this.validTabs.filter((function(e){return e.active}))[0]}},data:function(){return{totalTaxValues:0,totalPurchasePrice:0,formValidation:new n.Z,form:{},nsSnackBar:a.kX,fields:[],searchResult:[],searchValue:"",debounceSearch:null,nsHttpClient:a.ih,taxes:[],validTabs:[{label:(0,o.__)("Details"),identifier:"details",active:!0},{label:(0,o.__)("Products"),identifier:"products",active:!1}],reloading:!1}},watch:{searchValue:function(e){var t=this;e&&(clearTimeout(this.debounceSearch),this.debounceSearch=setTimeout((function(){t.doSearch(e)}),500))}},components:{NsManageProducts:U},props:["submit-method","submit-url","return-url","src","rules"],methods:{__:o.__,computeTotal:function(){this.totalTaxValues=0,this.form.products.length>0&&(this.totalTaxValues=this.form.products.map((function(e){return e.procurement.tax_value})).reduce((function(e,t){return e+t}))),this.totalPurchasePrice=0,this.form.products.length>0&&(this.totalPurchasePrice=this.form.products.map((function(e){return parseFloat(e.procurement.total_purchase_price)})).reduce((function(e,t){return e+t})))},updateLine:function(e){var t=this.form.products[e],s=this.taxes.filter((function(e){return e.id===t.procurement.tax_group_id}));if(parseFloat(t.procurement.purchase_price_edit)>0&&parseFloat(t.procurement.quantity)>0){if(s.length>0){var r=s[0].taxes.map((function(e){return X.getTaxValue(t.procurement.tax_type,t.procurement.purchase_price_edit,parseFloat(e.rate))}));t.procurement.tax_value=r.reduce((function(e,t){return e+t})),"inclusive"===t.procurement.tax_type?(t.procurement.net_purchase_price=parseFloat(t.procurement.purchase_price_edit)-t.procurement.tax_value,t.procurement.gross_purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.purchase_price=parseFloat(t.procurement.gross_purchase_price)):(t.procurement.gross_purchase_price=parseFloat(t.procurement.purchase_price_edit)+t.procurement.tax_value,t.procurement.net_purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.purchase_price=parseFloat(t.procurement.gross_purchase_price))}else t.procurement.gross_purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.net_purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.tax_value=0;t.procurement.tax_value=t.procurement.tax_value*parseFloat(t.procurement.quantity),t.procurement.total_purchase_price=t.procurement.purchase_price*parseFloat(t.procurement.quantity)}this.computeTotal(),this.$forceUpdate()},switchTaxType:function(e,t){e.procurement.tax_type="inclusive"===e.procurement.tax_type?"exclusive":"inclusive",this.updateLine(t)},doSearch:function(e){var t=this;a.ih.post("/api/nexopos/v4/procurements/products/search-product",{search:e}).subscribe((function(e){1===e.length?t.addProductList(e[0]):t.searchResult=e}))},reloadEntities:function(){var e=this;this.reloading=!0,(0,E.D)([a.ih.get("/api/nexopos/v4/categories"),a.ih.get("/api/nexopos/v4/products"),a.ih.get(this.src),a.ih.get("/api/nexopos/v4/taxes/groups")]).subscribe((function(t){e.reloading=!1,e.categories=t[0],e.products=t[1],e.taxes=t[3],e.form.general&&t[2].tabs.general.fieds.forEach((function(t,s){t.value=e.form.tabs.general.fields[s].value||""})),e.form=Object.assign(JSON.parse(JSON.stringify(t[2])),e.form),e.form=e.formValidation.createForm(e.form),e.form.tabs&&e.form.tabs.general.fields.forEach((function(e,s){e.options&&(e.options=t[2].tabs.general.fields[s].options)})),0===e.form.products.length&&(e.form.products=e.form.products.map((function(e){return["gross_purchase_price","purchase_price_edit","tax_value","net_purchase_price","purchase_price","total_price","total_purchase_price","quantity","tax_group_id"].forEach((function(t){void 0===e[t]&&(e[t]=void 0===e[t]?0:e[t])})),e.$invalid=e.$invalid||!1,e.purchase_price_edit=e.purchase_price,{name:e.name,purchase_units:e.purchase_units,procurement:e,unit_quantities:e.unit_quantities||[]}}))),e.$forceUpdate()}))},setTabActive:function(e){this.validTabs.forEach((function(e){return e.active=!1})),this.$forceUpdate(),this.$nextTick().then((function(){e.active=!0}))},addProductList:function(e){if(void 0===e.unit_quantities)return a.kX.error((0,o.__)("Unable to add product which doesn't unit quantities defined.")).subscribe();e.procurement=new Object,e.procurement.gross_purchase_price=0,e.procurement.purchase_price_edit=0,e.procurement.tax_value=0,e.procurement.net_purchase_price=0,e.procurement.purchase_price=0,e.procurement.total_price=0,e.procurement.total_purchase_price=0,e.procurement.quantity=1,e.procurement.expiration_date=null,e.procurement.tax_group_id=0,e.procurement.tax_type="inclusive",e.procurement.unit_id=0,e.procurement.product_id=e.id,e.procurement.procurement_id=null,e.procurement.$invalid=!1,this.searchResult=[],this.searchValue="",this.form.products.push(e)},submit:function(){var e=this;if(0===this.form.products.length)return a.kX.error(this.$slots["error-no-products"]?this.$slots["error-no-products"][0].text:(0,o.__)("Unable to proceed, no product were provided."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();if(this.form.products.forEach((function(e){!parseFloat(e.procurement.quantity)>=1||0===e.procurement.unit_id?e.procurement.$invalid=!0:e.procurement.$invalid=!1})),this.form.products.filter((function(e){return e.procurement.$invalid})).length>0)return a.kX.error(this.$slots["error-invalid-products"]?this.$slots["error-invalid-products"][0].text:(0,o.__)("Unable to proceed, one or more product has incorrect values."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();if(this.formValidation.validateForm(this.form).length>0)return this.setTabActive(this.activeTab),a.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:(0,o.__)("Unable to proceed, the procurement form is not valid."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();if(void 0===this.submitUrl)return a.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:(0,o.__)("Unable to submit, no valid submit URL were provided."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();this.formValidation.disableForm(this.form);var t=I(I({},this.formValidation.extractForm(this.form)),{products:this.form.products.map((function(e){return e.procurement}))});a.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,t).subscribe((function(t){if("success"===t.status)return document.location=e.returnUrl;e.formValidation.enableForm(e.form)}),(function(t){a.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.enableForm(e.form),t.errors&&e.formValidation.triggerError(e.form,t.errors)}))},deleteProduct:function(e){this.form.products.splice(e,1),this.$forceUpdate()},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},setProductOptions:function(e){var t=this;new Promise((function(s,r){Popup.show(L,{product:t.form.products[e],resolve:s,reject:r})})).then((function(s){for(var r in s)t.form.products[e].procurement[r]=s[r];t.updateLine(e)}))}}};const B=(0,f.Z)(Y,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"form flex-auto flex flex-col",attrs:{id:"crud-form"}},[e.form.main?[s("div",{staticClass:"flex flex-col"},[s("div",{staticClass:"flex justify-between items-center"},[s("label",{staticClass:"font-bold my-2 text-gray-700",attrs:{for:"title"}},[e._t("title",(function(){return[e._v(e._s(e.__("No title is provided")))]}))],2),e._v(" "),s("div",{staticClass:"text-sm my-2 text-gray-700",attrs:{for:"title"}},[e.returnUrl?s("a",{staticClass:"rounded-full border border-gray-400 hover:bg-red-600 hover:text-white bg-white px-2 py-1",attrs:{href:e.returnUrl}},[e._v(e._s(e.__("Return")))]):e._e()])]),e._v(" "),s("div",{staticClass:"flex border-2 rounded overflow-hidden",class:e.form.main.disabled?"border-gray-500":e.form.main.errors.length>0?"border-red-600":"border-blue-500"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.form.main.value,expression:"form.main.value"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",class:e.form.main.disabled?"bg-gray-400":"",attrs:{disabled:e.form.main.disabled,type:"text"},domProps:{value:e.form.main.value},on:{blur:function(t){return e.formValidation.checkField(e.form.main)},change:function(t){return e.formValidation.checkField(e.form.main)},input:function(t){t.target.composing||e.$set(e.form.main,"value",t.target.value)}}}),e._v(" "),s("button",{staticClass:"outline-none px-4 h-10 text-white border-l border-gray-400",class:e.form.main.disabled?"bg-gray-500":e.form.main.errors.length>0?"bg-red-500":"bg-blue-500",attrs:{disabled:e.form.main.disabled},on:{click:function(t){return e.submit()}}},[e._t("save",(function(){return[e._v(e._s(e.__("Save")))]}))],2),e._v(" "),s("button",{staticClass:"bg-white text-gray-700 outline-none px-4 h-10 border-gray-400",on:{click:function(t){return e.reloadEntities()}}},[s("i",{staticClass:"las la-sync",class:e.reloading?"animate animate-spin":""})])]),e._v(" "),e.form.main.description&&0===e.form.main.errors.length?s("p",{staticClass:"text-xs text-gray-600 py-1"},[e._v(e._s(e.form.main.description))]):e._e(),e._v(" "),e._l(e.form.main.errors,(function(t,r){return s("p",{key:r,staticClass:"text-xs py-1 text-red-500"},[s("span",[e._t("error-required",(function(){return[e._v(e._s(t.identifier))]}))],2)])}))],2),e._v(" "),s("div",{staticClass:"-mx-4 flex flex-wrap mt-4",attrs:{id:"form-container"}},[s("div",{staticClass:"px-4 w-full"},[s("div",{attrs:{id:"tabbed-card"}},[s("div",{staticClass:"flex flex-wrap",attrs:{id:"card-header"}},e._l(e.validTabs,(function(t,r){return s("div",{key:r,staticClass:"cursor-pointer px-4 py-2 rounded-tl-lg rounded-tr-lg text-gray-700",class:t.active?"bg-white":"bg-gray-100",on:{click:function(s){return e.setTabActive(t)}}},[e._v("\n "+e._s(t.label)+"\n ")])})),0),e._v(" "),"details"===e.activeTab.identifier?s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow p-2"},[e.form.tabs?s("div",{staticClass:"-mx-4 flex flex-wrap"},e._l(e.form.tabs.general.fields,(function(e,t){return s("div",{key:t,staticClass:"flex px-4 w-full md:w-1/2 lg:w-1/3"},[s("ns-field",{attrs:{field:e}})],1)})),0):e._e()]):e._e(),e._v(" "),"products"===e.activeTab.identifier?s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow p-2 "},[s("div",{staticClass:"mb-2"},[s("div",{staticClass:"border-blue-500 flex border-2 rounded overflow-hidden"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.searchValue,expression:"searchValue"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",attrs:{type:"text",placeholder:e.$slots["search-placeholder"]?e.$slots["search-placeholder"][0].text:"SKU, Barcode, Name"},domProps:{value:e.searchValue},on:{input:function(t){t.target.composing||(e.searchValue=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"h-0"},[s("div",{staticClass:"shadow bg-white relative z-10"},e._l(e.searchResult,(function(t,r){return s("div",{key:r,staticClass:"cursor-pointer border border-b border-gray-300 p-2 text-gray-700",on:{click:function(s){return e.addProductList(t)}}},[s("span",{staticClass:"block font-bold text-gray-700"},[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"block text-sm text-gray-600"},[e._v(e._s(e.__("SKU"))+" : "+e._s(t.sku))]),e._v(" "),s("span",{staticClass:"block text-sm text-gray-600"},[e._v(e._s(e.__("Barcode"))+" : "+e._s(t.barcode))])])})),0)])]),e._v(" "),s("div",{staticClass:"overflow-x-auto"},[s("table",{staticClass:"w-full"},[s("thead",[s("tr",e._l(e.form.columns,(function(t,r){return s("td",{key:r,staticClass:"text-gray-700 p-2 border border-gray-300 bg-gray-200",attrs:{width:"200"}},[e._v(e._s(t.label))])})),0)]),e._v(" "),s("tbody",[e._l(e.form.products,(function(t,r){return s("tr",{key:r,class:t.procurement.$invalid?"bg-red-200 border-2 border-red-500":"bg-gray-100"},[e._l(e.form.columns,(function(i,n){return["name"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(t.name))]),e._v(" "),s("div",{staticClass:"flex justify-between"},[s("div",{staticClass:"flex -mx-1 flex-col"},[s("div",{staticClass:"px-1"},[s("span",{staticClass:"text-xs text-red-500 cursor-pointer underline px-1",on:{click:function(t){return e.deleteProduct(r)}}},[e._v(e._s(e.__("Delete")))])])]),e._v(" "),s("div",{staticClass:"flex -mx-1 flex-col"},[s("div",{staticClass:"px-1"},[s("span",{staticClass:"text-xs text-red-500 cursor-pointer underline px-1",on:{click:function(t){return e.setProductOptions(r)}}},[e._v(e._s(e.__("Options")))])])])])]):e._e(),e._v(" "),"text"===i.type?s("td",{key:n,staticClass:"p-2 w-3 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.procurement[n],expression:"product.procurement[ key ]"}],staticClass:"w-24 border-2 p-2 border-blue-400 rounded",attrs:{type:"text"},domProps:{value:t.procurement[n]},on:{change:function(t){return e.updateLine(r)},input:function(s){s.target.composing||e.$set(t.procurement,n,s.target.value)}}})])]):e._e(),e._v(" "),"tax_group_id"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.procurement.tax_group_id,expression:"product.procurement.tax_group_id"}],staticClass:"rounded border-blue-500 border-2 p-2",on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t.procurement,"tax_group_id",s.target.multiple?r:r[0])},function(t){return e.updateLine(r)}]}},e._l(e.taxes,(function(t){return s("option",{key:t.id,domProps:{value:t.id}},[e._v(e._s(t.name))])})),0)])]):e._e(),e._v(" "),"custom_select"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.procurement[n],expression:"product.procurement[ key ]"}],staticClass:"rounded border-blue-500 border-2 p-2",on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t.procurement,n,s.target.multiple?r:r[0])},function(t){return e.updateLine(r)}]}},e._l(i.options,(function(t){return s("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0)])]):e._e(),e._v(" "),"currency"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start flex-col justify-end"},[s("span",{staticClass:"text-sm text-gray-600"},[e._v(e._s(e._f("currency")(t.procurement[n])))])])]):e._e(),e._v(" "),"unit_quantities"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.procurement.unit_id,expression:"product.procurement.unit_id"}],staticClass:"rounded border-blue-500 border-2 p-2 w-32",on:{change:function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t.procurement,"unit_id",s.target.multiple?r:r[0])}}},e._l(t.unit_quantities,(function(t){return s("option",{key:t.id,domProps:{value:t.unit.id}},[e._v(e._s(t.unit.name))])})),0)])]):e._e()]}))],2)})),e._v(" "),s("tr",{staticClass:"bg-gray-100"},[s("td",{staticClass:"p-2 text-gray-600 border border-gray-300",attrs:{colspan:Object.keys(e.form.columns).indexOf("tax_value")}}),e._v(" "),s("td",{staticClass:"p-2 text-gray-600 border border-gray-300"},[e._v(e._s(e._f("currency")(e.totalTaxValues)))]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600 border border-gray-300",attrs:{colspan:Object.keys(e.form.columns).indexOf("total_purchase_price")-(Object.keys(e.form.columns).indexOf("tax_value")+1)}}),e._v(" "),s("td",{staticClass:"p-2 text-gray-600 border border-gray-300"},[e._v(e._s(e._f("currency")(e.totalPurchasePrice)))])])],2)])])]):e._e()])])])]:e._e()],2)}),[],!1,null,null,null).exports,H={template:"#ns-procurement-invoice",methods:{printInvoice:function(){this.$htmlToPaper("printable-container")}}};const G=(0,f.Z)(H,undefined,undefined,!1,null,null,null).exports;const Q={name:"ns-notifications",data:function(){return{notifications:[],visible:!1,interval:null}},mounted:function(){var e=this;document.addEventListener("click",this.checkClickedItem),ns.websocket.enabled?Echo.private("ns.private-channel").listen("App\\Events\\NotificationDispatchedEvent",(function(t){e.pushNotificationIfNew(t.notification)})).listen("App\\Events\\NotificationDeletedEvent",(function(t){e.deleteNotificationIfExists(t.notification)})):this.interval=setInterval((function(){e.loadNotifications()}),15e3),this.loadNotifications()},destroyed:function(){clearInterval(this.interval)},methods:{__:o.__,pushNotificationIfNew:function(e){var t=this.notifications.filter((function(t){return t.id===e.id})).length>0;console.log(e),t||this.notifications.push(e)},deleteNotificationIfExists:function(e){var t=this.notifications.filter((function(t){return t.id===e.id}));if(t.length>0){var s=this.notifications.indexOf(t[0]);this.notifications.splice(s,1)}},deleteAll:function(){Popup.show(A.Z,{title:(0,o.__)("Confirm Your Action"),message:(0,o.__)("Would you like to clear all the notifications ?"),onAction:function(e){e&&a.ih.delete("/api/nexopos/v4/notifications/all").subscribe((function(e){a.kX.success(e.message).subscribe()}))}})},checkClickedItem:function(e){var t;t=!!document.getElementById("notification-center")&&document.getElementById("notification-center").contains(e.srcElement);var s=document.getElementById("notification-button").contains(e.srcElement);t||s||!this.visible||(this.visible=!1)},loadNotifications:function(){var e=this;a.ih.get("/api/nexopos/v4/notifications").subscribe((function(t){e.notifications=t}))},triggerLink:function(e){if("url"!==e.url)return window.open(e.url,"_blank")},closeNotice:function(e,t){var s=this;a.ih.delete("/api/nexopos/v4/notifications/".concat(t.id)).subscribe((function(e){s.loadNotifications()})),e.stopPropagation()}}};const K=(0,f.Z)(Q,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"hover:bg-white hover:text-gray-700 hover:shadow-lg hover:border-opacity-0 rounded-full h-12 w-12 cursor-pointer font-bold text-2xl justify-center items-center flex text-gray-800",class:e.visible?"bg-white border-0 shadow-lg":"border border-gray-400",attrs:{id:"notification-button"},on:{click:function(t){e.visible=!e.visible}}},[e.notifications.length>0?s("div",{staticClass:"relative float-right"},[s("div",{staticClass:"absolute -ml-6 -mt-8"},[s("div",{staticClass:"bg-blue-400 text-white w-8 h-8 rounded-full text-xs flex items-center justify-center"},[e._v(e._s(e._f("abbreviate")(e.notifications.length)))])])]):e._e(),e._v(" "),s("i",{staticClass:"las la-bell"})]),e._v(" "),e.visible?s("div",{staticClass:"h-0 w-0",attrs:{id:"notification-center"}},[s("div",{staticClass:"absolute left-0 top-0 sm:relative w-screen zoom-out-entrance anim-duration-300 h-5/7-screen sm:w-64 sm:h-108 flex flex-row-reverse"},[s("div",{staticClass:"z-50 sm:rounded-lg shadow-lg h-full w-full bg-white md:mt-2 overflow-y-hidden flex flex-col"},[s("div",{staticClass:"sm:hidden p-2 cursor-pointer flex items-center justify-center border-b border-gray-200",on:{click:function(t){e.visible=!1}}},[s("h3",{staticClass:"font-semibold hover:text-blue-400"},[e._v("Close")])]),e._v(" "),s("div",{staticClass:"overflow-y-auto flex flex-col flex-auto"},[e._l(e.notifications,(function(t){return s("div",{key:t.id,staticClass:"notice border-b border-gray-200"},[s("div",{staticClass:"p-2 cursor-pointer",on:{click:function(s){return e.triggerLink(t)}}},[s("div",{staticClass:"flex items-center justify-between"},[s("h1",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(t.title))]),e._v(" "),s("ns-close-button",{on:{click:function(s){return e.closeNotice(s,t)}}})],1),e._v(" "),s("p",{staticClass:"py-1 text-gray-600 text-sm"},[e._v(e._s(t.description))])])])})),e._v(" "),0===e.notifications.length?s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("div",{staticClass:"flex flex-col items-center"},[s("i",{staticClass:"las la-laugh-wink text-5xl text-gray-800"}),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(e.__("Nothing to care about !")))])])]):e._e()],2),e._v(" "),s("div",{staticClass:"cursor-pointer"},[s("h3",{staticClass:"text-sm p-2 flex items-center justify-center hover:bg-red-100 w-full text-red-400 font-semibold hover:text-red-500",on:{click:function(t){return e.deleteAll()}}},[e._v(e._s(e.__("Clear All")))])])])])]):e._e()])}),[],!1,null,null,null).exports;var J=s(9576),ee=s(381),te=s.n(ee),se=s(6598);const re={name:"ns-sale-report",data:function(){return{startDate:te()(),endDate:te()(),orders:[],field:{type:"datetimepicker",value:"2021-02-07",name:"date"}}},components:{nsDatepicker:se.Z},computed:{totalDiscounts:function(){return this.orders.length>0?this.orders.map((function(e){return e.discount})).reduce((function(e,t){return e+t})):0},totalTaxes:function(){return this.orders.length>0?this.orders.map((function(e){return e.tax_value})).reduce((function(e,t){return e+t})):0},totalOrders:function(){return this.orders.length>0?this.orders.map((function(e){return e.total})).reduce((function(e,t){return e+t})):0}},methods:{printSaleReport:function(){this.$htmlToPaper("sale-report")},setStartDate:function(e){this.startDate=e.format(),console.log(this.startDate)},loadReport:function(){var e=this;if(null===this.startDate||null===this.endDate)return a.kX.error((0,o.__)("Unable to proceed. Select a correct time range.")).subscribe();var t=te()(this.startDate);if(te()(this.endDate).isBefore(t))return a.kX.error((0,o.__)("Unable to proceed. The current time range is not valid.")).subscribe();a.ih.post("/api/nexopos/v4/reports/sale-report",{startDate:this.startDate,endDate:this.endDate}).subscribe((function(t){e.orders=t}),(function(e){a.kX.error(e.message).subscribe()}))},setEndDate:function(e){this.endDate=e.format()}}};const ie=(0,f.Z)(re,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports;const ne={name:"ns-sold-stock-report",data:function(){return{startDate:te()(),endDate:te()(),products:[]}},components:{nsDatepicker:se.Z},computed:{totalQuantity:function(){return this.products.length>0?this.products.map((function(e){return e.quantity})).reduce((function(e,t){return e+t})):0},totalTaxes:function(){return this.products.length>0?this.products.map((function(e){return e.tax_value})).reduce((function(e,t){return e+t})):0},totalPrice:function(){return console.log(this.products),this.products.length>0?this.products.map((function(e){return e.total_price})).reduce((function(e,t){return e+t})):0}},methods:{printSaleReport:function(){this.$htmlToPaper("report-printable")},setStartDate:function(e){this.startDate=e.format()},loadReport:function(){var e=this;if(null===this.startDate||null===this.endDate)return a.kX.error((0,o.__)("Unable to proceed. Select a correct time range.")).subscribe();var t=te()(this.startDate);if(te()(this.endDate).isBefore(t))return a.kX.error((0,o.__)("Unable to proceed. The current time range is not valid.")).subscribe();a.ih.post("/api/nexopos/v4/reports/sold-stock-report",{startDate:this.startDate,endDate:this.endDate}).subscribe((function(t){e.products=t}),(function(e){a.kX.error(e.message).subscribe()}))},setEndDate:function(e){this.endDate=e.format()}}};const ae=(0,f.Z)(ne,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports;const oe={name:"ns-profit-report",data:function(){return{startDate:te()(),endDate:te()(),products:[]}},components:{nsDatepicker:se.Z},computed:{totalQuantities:function(){return this.products.length>0?this.products.map((function(e){return e.quantity})).reduce((function(e,t){return e+t})):0},totalPurchasePrice:function(){return this.products.length>0?this.products.map((function(e){return e.total_purchase_price})).reduce((function(e,t){return e+t})):0},totalSalePrice:function(){return this.products.length>0?this.products.map((function(e){return e.total_price})).reduce((function(e,t){return e+t})):0},totalProfit:function(){return this.products.length>0?this.products.map((function(e){return e.total_price-e.total_purchase_price})).reduce((function(e,t){return e+t})):0},totalTax:function(){return this.products.length>0?this.products.map((function(e){return e.tax_value})).reduce((function(e,t){return e+t})):0}},methods:{printSaleReport:function(){this.$htmlToPaper("profit-report")},setStartDate:function(e){this.startDate=e.format(),console.log(this.startDate)},loadReport:function(){var e=this;if(null===this.startDate||null===this.endDate)return a.kX.error((0,o.__)("Unable to proceed. Select a correct time range.")).subscribe();var t=te()(this.startDate);if(te()(this.endDate).isBefore(t))return a.kX.error((0,o.__)("Unable to proceed. The current time range is not valid.")).subscribe();a.ih.post("/api/nexopos/v4/reports/profit-report",{startDate:this.startDate,endDate:this.endDate}).subscribe((function(t){e.products=t}),(function(e){a.kX.error(e.message).subscribe()}))},setEndDate:function(e){this.endDate=e.format()}}};const le=(0,f.Z)(oe,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports,ce={name:"ns-cash-flow",mounted:function(){},components:{nsDatepicker:se.Z},data:function(){return{startDate:te()(),endDate:te()(),report:[]}},computed:{totalDebit:function(){return 0},totalCredit:function(){return 0}},methods:{setStartDate:function(e){this.startDate=e.format()},setEndDate:function(e){this.endDate=e.format()},loadReport:function(){var e=this,t=te()(this.startDate),s=te()(this.endDate);a.ih.post("/api/nexopos/v4/reports/cash-flow",{startDate:t,endDate:s}).subscribe((function(t){e.report=t,console.log(e.report)}),(function(e){a.kX.error(e.message).subscribe()}))}}};const de=(0,f.Z)(ce,undefined,undefined,!1,null,null,null).exports,ue={name:"ns-yearly-report",mounted:function(){this.loadReport()},components:{nsDatepicker:se.Z},data:function(){return{startDate:te()(),endDate:te()(),report:{},year:ns.date.getMoment().format("Y"),labels:["month_paid_orders","month_taxes","month_expenses","month_income"]}},computed:{totalDebit:function(){return 0},totalCredit:function(){return 0}},methods:{setStartDate:function(e){this.startDate=e.format()},setEndDate:function(e){this.endDate=e.format()},printSaleReport:function(){this.$htmlToPaper("annual-report")},sumOf:function(e){return Object.values(this.report).length>0?Object.values(this.report).map((function(t){return parseFloat(t[e])||0})).reduce((function(e,t){return e+t})):0},recomputeForSpecificYear:function(){var e=this;Popup.show(A.Z,{title:__("Would you like to proceed ?"),message:__("The report will be computed for the current year, a job will be dispatched and you'll be informed once it's completed."),onAction:function(t){t&&a.ih.post("/api/nexopos/v4/reports/compute/yearly",{year:e.year}).subscribe((function(e){a.kX.success(e.message).subscribe()}),(function(e){a.kX.success(e.message||__("An unexpected error has occured.")).subscribe()}))}})},getReportForMonth:function(e){return console.log(this.report,e),this.report[e]},loadReport:function(){var e=this,t=this.year;a.ih.post("/api/nexopos/v4/reports/annual-report",{year:t}).subscribe((function(t){e.report=t}),(function(e){a.kX.error(e.message).subscribe()}))}}};const fe=(0,f.Z)(ue,undefined,undefined,!1,null,null,null).exports,pe={name:"ns-best-products-report",mounted:function(){},components:{nsDatepicker:se.Z},data:function(){return{startDate:te()(),endDate:te()(),report:null,sort:""}},computed:{totalDebit:function(){return 0},totalCredit:function(){return 0}},methods:{setStartDate:function(e){this.startDate=e.format()},setEndDate:function(e){this.endDate=e.format()},printSaleReport:function(){this.$htmlToPaper("best-products-report")},loadReport:function(){var e=this,t=te()(this.startDate),s=te()(this.endDate);a.ih.post("/api/nexopos/v4/reports/products-report",{startDate:t.format("YYYY/MM/DD HH:mm"),endDate:s.format("YYYY/MM/DD HH:mm"),sort:this.sort}).subscribe((function(t){t.current.products=Object.values(t.current.products),e.report=t,console.log(e.report)}),(function(e){a.kX.error(e.message).subscribe()}))}}};const he=(0,f.Z)(pe,undefined,undefined,!1,null,null,null).exports;var me=s(8655);const ve={name:"ns-payment-types-report",data:function(){return{startDate:te()(),endDate:te()(),report:[],field:{type:"datetimepicker",value:"2021-02-07",name:"date"}}},components:{nsDatepicker:se.Z,nsDateTimePicker:me.V},computed:{},mounted:function(){},methods:{printSaleReport:function(){this.$htmlToPaper("sale-report")},setStartDate:function(e){console.log(e),this.startDate=e.format()},loadReport:function(){var e=this;if(null===this.startDate||null===this.endDate)return a.kX.error((0,o.__)("Unable to proceed. Select a correct time range.")).subscribe();var t=te()(this.startDate);if(te()(this.endDate).isBefore(t))return a.kX.error((0,o.__)("Unable to proceed. The current time range is not valid.")).subscribe();a.ih.post("/api/nexopos/v4/reports/payment-types",{startDate:this.startDate,endDate:this.endDate}).subscribe((function(t){e.report=t}),(function(e){a.kX.error(e.message).subscribe()}))},setEndDate:function(e){console.log(e),this.endDate=e.format()}}};const be=(0,f.Z)(ve,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports;const _e={name:"ns-dashboard-cards",data:function(){return{report:{}}},mounted:function(){this.loadReport(),console.log(nsLanguage.getEntries())},methods:{__:o.__,loadReport:function(){var e=this;a.ih.get("/api/nexopos/v4/dashboard/day").subscribe((function(t){e.report=t}))}}};const ge=(0,f.Z)(_e,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"-m-4 flex flex-wrap"},[s("div",{staticClass:"p-4 w-full md:w-1/2 lg:w-1/4"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-blue-400 to-blue-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Total Sales")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_paid_orders||0,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Total Sales")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.day_paid_orders||0))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"p-4 w-full md:w-1/2 lg:w-1/4"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-green-400 to-green-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Incomplete Orders")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_partially_paid_orders+e.report.total_unpaid_orders||0,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Incomplete Orders")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.day_unpaid_orders+e.report.day_partially_paid_orders||0))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"p-4 w-full md:w-1/2 lg:w-1/4"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-red-300 via-red-400 to-red-500 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Wasted Goods")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_wasted_goods||0,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Wasted Goods")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.day_wasted_goods||0))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"p-4 w-full md:w-1/2 lg:w-1/4"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-indigo-400 to-indigo-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Expenses")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_expenses||0,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Expenses")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.day_expenses||0))+" "+e._s(e.__("Today")))])])])])])])}),[],!1,null,null,null).exports;const xe={name:"ns-best-customers",mounted:function(){var e=this;this.hasLoaded=!1,this.subscription=Dashboard.bestCustomers.subscribe((function(t){e.hasLoaded=!0,e.customers=t}))},methods:{__:o.__},data:function(){return{customers:[],subscription:null,hasLoaded:!1}},destroyed:function(){this.subscription.unsubscribe()}};const ye=(0,f.Z)(xe,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col shadow rounded-lg overflow-hidden"},[s("div",{staticClass:"head bg-white flex-auto"},[s("div",{staticClass:"head text-center border-b border-gray-200 text-gray-700 w-full py-2"},[s("h5",[e._v(e._s(e.__("Best Customers")))])]),e._v(" "),s("div",{staticClass:"body"},[e.hasLoaded?e._e():s("div",{staticClass:"h-56 w-full flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"12",border:"4"}})],1),e._v(" "),e.hasLoaded&&0===e.customers.length?s("div",{staticClass:"h-56 flex items-center justify-center flex-col"},[s("i",{staticClass:"las la-grin-beam-sweat text-6xl text-gray-700"}),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(e.__("Well.. nothing to show for the meantime")))])]):e._e(),e._v(" "),e.customers.length>0?s("table",{staticClass:"table w-full"},[s("thead",e._l(e.customers,(function(t){return s("tr",{key:t.id,staticClass:"border-gray-300 border-b text-sm"},[s("th",{staticClass:"p-2"},[s("div",{staticClass:"-mx-1 flex justify-start items-center"},[e._m(0,!0),e._v(" "),s("div",{staticClass:"px-1 justify-center"},[s("h3",{staticClass:"font-semibold text-gray-600 items-center"},[e._v(e._s(t.name))])])])]),e._v(" "),s("th",{staticClass:"flex justify-end text-green-700 p-2"},[e._v(e._s(e._f("currency")(t.purchases_amount)))])])})),0)]):e._e()])])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"px-1"},[t("div",{staticClass:"rounded-full bg-gray-200 h-6 w-6 "},[t("img",{attrs:{src:"/images/user.png"}})])])}],!1,null,null,null).exports;const we={name:"ns-best-customers",data:function(){return{subscription:null,cashiers:[],hasLoaded:!1}},mounted:function(){var e=this;this.hasLoaded=!1,this.subscription=Dashboard.bestCashiers.subscribe((function(t){e.hasLoaded=!0,e.cashiers=t}))},methods:{__:o.__},destroyed:function(){this.subscription.unsubscribe()}};const Ce=(0,f.Z)(we,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col shadow rounded-lg overflow-hidden"},[s("div",{staticClass:"head bg-white flex-auto"},[s("div",{staticClass:"head text-center border-b border-gray-200 text-gray-700 w-full py-2"},[s("h5",[e._v(e._s(e.__("Best Cashiers")))])]),e._v(" "),s("div",{staticClass:"body"},[e.cashiers.length>0?s("table",{staticClass:"table w-full"},[s("thead",[e._l(e.cashiers,(function(t){return s("tr",{key:t.id,staticClass:"border-gray-300 border-b text-sm"},[s("th",{staticClass:"p-2"},[s("div",{staticClass:"-mx-1 flex justify-start items-center"},[e._m(0,!0),e._v(" "),s("div",{staticClass:"px-1 justify-center"},[s("h3",{staticClass:"font-semibold text-gray-600 items-center"},[e._v(e._s(t.username))])])])]),e._v(" "),s("th",{staticClass:"flex justify-end text-green-700 p-2"},[e._v(e._s(e._f("currency")(t.total_sales,"abbreviate")))])])})),e._v(" "),0===e.cashiers.length?s("tr",[s("th",{attrs:{colspan:"2"}},[e._v(e._s(e.__("No result to display.")))])]):e._e()],2)]):e._e(),e._v(" "),e.hasLoaded?e._e():s("div",{staticClass:"h-56 flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"8",border:"4"}})],1),e._v(" "),e.hasLoaded&&0===e.cashiers.length?s("div",{staticClass:"h-56 flex items-center justify-center flex-col"},[s("i",{staticClass:"las la-grin-beam-sweat text-6xl text-gray-700"}),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(e.__("Well.. nothing to show for the meantime.")))])]):e._e()])])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"px-1"},[t("div",{staticClass:"rounded-full bg-gray-200 h-6 w-6 "},[t("img",{attrs:{src:"/images/user.png"}})])])}],!1,null,null,null).exports;const ke={name:"ns-orders-summary",data:function(){return{orders:[],subscription:null,hasLoaded:!1}},mounted:function(){var e=this;this.hasLoaded=!1,this.subscription=Dashboard.recentOrders.subscribe((function(t){e.hasLoaded=!0,e.orders=t}))},methods:{__:o.__},destroyed:function(){this.subscription.unsubscribe()}};const je=(0,f.Z)(ke,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col shadow rounded-lg overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between bg-white border-b"},[s("h3",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Recents Orders")))]),e._v(" "),s("div",{})]),e._v(" "),s("div",{staticClass:"head bg-gray-100 flex-auto flex-col flex h-56 overflow-y-auto"},[e.hasLoaded?e._e():s("div",{staticClass:"h-full flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"8",border:"4"}})],1),e._v(" "),e.hasLoaded&&0===e.orders.length?s("div",{staticClass:"h-full flex items-center justify-center flex-col"},[s("i",{staticClass:"las la-grin-beam-sweat text-6xl text-gray-700"}),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(e.__("Well.. nothing to show for the meantime.")))])]):e._e(),e._v(" "),e._l(e.orders,(function(t){return s("div",{key:t.id,staticClass:"border-b border-gray-200 p-2 flex justify-between",class:"paid"===t.payment_status?"bg-green-50":"bg-white"},[s("div",[s("h3",{staticClass:"text-lg font-semibold text-gray-600"},[e._v(e._s(e.__("Order"))+" : "+e._s(t.code))]),e._v(" "),s("div",{staticClass:"flex -mx-2"},[s("div",{staticClass:"px-1"},[s("h4",{staticClass:"text-semibold text-xs text-gray-500"},[s("i",{staticClass:"lar la-user-circle"}),e._v(" "),s("span",[e._v(e._s(t.user.username))])])]),e._v(" "),s("div",{staticClass:"divide-y-4"}),e._v(" "),s("div",{staticClass:"px-1"},[s("h4",{staticClass:"text-semibold text-xs text-gray-600"},[s("i",{staticClass:"las la-clock"}),e._v(" "),s("span",[e._v(e._s(t.created_at))])])])])]),e._v(" "),s("div",[s("h2",{staticClass:"text-xl font-bold",class:"paid"===t.payment_status?"text-green-600":"text-gray-700"},[e._v(e._s(e._f("currency")(t.total)))])])])}))],2)])}),[],!1,null,null,null).exports;const $e={name:"ns-orders-chart",data:function(){return{totalWeeklySales:0,totalWeekTaxes:0,totalWeekExpenses:0,totalWeekIncome:0,chartOptions:{chart:{id:"vuechart-example",width:"100%",height:"100%"},stroke:{curve:"smooth",dashArray:[0,8]},xaxis:{categories:[]},colors:["#5f83f3","#AAA"]},series:[{name:(0,o.__)("Current Week"),data:[]},{name:(0,o.__)("Previous Week"),data:[]}],reportSubscription:null,report:null}},methods:{__:o.__},mounted:function(){var e=this;this.reportSubscription=Dashboard.weeksSummary.subscribe((function(t){void 0!==t.result&&(e.chartOptions.xaxis.categories=t.result.map((function(e){return e.label})),e.report=t,e.totalWeeklySales=0,e.totalWeekIncome=0,e.totalWeekExpenses=0,e.totalWeekTaxes=0,e.report.result.forEach((function(t,s){if(void 0!==t.current){var r=t.current.entries.map((function(e){return e.day_paid_orders})),i=0;r.length>0&&(i=r.reduce((function(e,t){return e+t})),e.totalWeekExpenses+=t.current.entries.map((function(e){return e.day_expenses})),e.totalWeekTaxes+=t.current.entries.map((function(e){return e.day_taxes})),e.totalWeekIncome+=t.current.entries.map((function(e){return e.day_income}))),e.series[0].data.push(i)}else e.series[0].data.push(0);if(void 0!==t.previous){var n=t.previous.entries.map((function(e){return e.day_paid_orders})),a=0;n.length>0&&(a=n.reduce((function(e,t){return e+t}))),e.series[1].data.push(a)}else e.series[1].data.push(0)})),e.totalWeeklySales=e.series[0].data.reduce((function(e,t){return e+t})))}))}};const Pe=(0,f.Z)($e,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col shadow rounded-lg overflow-hidden"},[s("div",{staticClass:"head bg-white flex-auto flex h-56"},[s("div",{staticClass:"w-full h-full pt-2"},[e.report?s("vue-apex-charts",{attrs:{height:"100%",type:"area",options:e.chartOptions,series:e.series}}):e._e()],1)]),e._v(" "),s("div",{staticClass:"p-2 bg-white -mx-4 flex flex-wrap"},[s("div",{staticClass:"flex w-full md:w-1/2 lg:w-full xl:w-1/2 lg:border-b lg:border-t xl:border-none border-gray-200 lg:py-1 lg:my-1"},[s("div",{staticClass:"px-4 w-1/2 lg:w-1/2 flex flex-col items-center justify-center"},[s("span",{staticClass:"text-xs text-gray-600"},[e._v(e._s(e.__("Weekly Sales")))]),e._v(" "),s("h2",{staticClass:"text-lg xl:text-xl text-gray-700 font-bold"},[e._v(e._s(e._f("currency")(e.totalWeeklySales,"abbreviate")))])]),e._v(" "),s("div",{staticClass:"px-4 w-1/2 lg:w-1/2 flex flex-col items-center justify-center"},[s("span",{staticClass:"text-xs text-gray-600"},[e._v(e._s(e.__("Week Taxes")))]),e._v(" "),s("h2",{staticClass:"text-lg xl:text-xl text-gray-700 font-bold"},[e._v(e._s(e._f("currency")(e.totalWeekTaxes,"abbreviate")))])])]),e._v(" "),s("div",{staticClass:"flex w-full md:w-1/2 lg:w-full xl:w-1/2"},[s("div",{staticClass:"px-4 w-full lg:w-1/2 flex flex-col items-center justify-center"},[s("span",{staticClass:"text-xs text-gray-600"},[e._v(e._s(e.__("Net Income")))]),e._v(" "),s("h2",{staticClass:"text-lg xl:text-xl text-gray-700 font-bold"},[e._v(e._s(e._f("currency")(e.totalWeekIncome,"abbreviate")))])]),e._v(" "),s("div",{staticClass:"px-4 w-full lg:w-1/2 flex flex-col items-center justify-center"},[s("span",{staticClass:"text-xs text-gray-600"},[e._v(e._s(e.__("Week Expenses")))]),e._v(" "),s("h2",{staticClass:"text-lg xl:text-xl text-gray-700 font-bold"},[e._v(e._s(e._f("currency")(e.totalWeekExpenses,"abbreviate")))])])])])])}),[],!1,null,null,null).exports;const Se={name:"ns-cashier-dashboard",props:["showCommission"],data:function(){return{report:{}}},methods:{__,refreshReport:function(){Cashier.refreshReport()},getOrderStatus:function(e){switch(e){case"paid":return __("Paid");case"partially_paid":return __("Partially Paid");case"unpaid":return __("Unpaid");case"hold":return __("Hold");case"order_void":return __("Void");case"refunded":return __("Refunded");case"partially_refunded":return __("Partially Refunded");default:return $status}}},mounted:function(){var e=this;Cashier.mysales.subscribe((function(t){e.report=t}));var t=document.createRange().createContextualFragment('
\n
\n
\n \n
\n
\n
');document.querySelector(".top-tools-side").prepend(t),document.querySelector("#refresh-button").addEventListener("click",(function(){return e.refreshReport()}))}};const De=(0,f.Z)(Se,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"flex -mx-4 flex-wrap"},[s("div",{staticClass:"px-4 w-full mb-6",class:e.showCommission?"md:w-1/2 lg:w-1/4":"md:w-1/3"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-purple-400 to-purple-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Total Sales")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_sales_amount,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Total Sales")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.total_sales_amount))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"px-4 w-full mb-6",class:e.showCommission?"md:w-1/2 lg:w-1/4":"md:w-1/3"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-red-400 to-red-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Total Refunds")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_refunds_amount,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Total Refunds")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.today_refunds_amount))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"px-4 w-full mb-6",class:e.showCommission?"md:w-1/2 lg:w-1/4":"md:w-1/3"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-blue-400 to-blue-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Clients Registered")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e.report.total_customers)+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Clients Registered")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e.report.today_customers)+" "+e._s(e.__("Today")))])])])])]),e._v(" "),e.showCommission?s("div",{staticClass:"px-4 w-full mb-6",class:e.showCommission?"md:w-1/2 lg:w-1/4":"md:w-1/3"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-green-400 to-green-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Commissions")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_commissions))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Commissions")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.today_commissions))+" "+e._s(e.__("Today")))])])])])]):e._e()]),e._v(" "),s("div",{staticClass:"py-4"},[e.report.today_orders&&e.report.today_orders.length>0?s("ul",{staticClass:"bg-white shadow-lg rounded overflow-hidden"},e._l(e.report.today_orders,(function(t){return s("li",{key:t.id,staticClass:"p-2 border-b-2 border-blue-400"},[s("h3",{staticClass:"font-semibold text-lg flex justify-between"},[s("span",[e._v(e._s(e.__("Total"))+" : "+e._s(e._f("currency")(t.total)))]),e._v(" "),s("span",[e._v(e._s(t.code))])]),e._v(" "),s("ul",{staticClass:"pt-2 flex -mx-1 text-sm text-gray-700"},[s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Discount"))+" : "+e._s(e._f("currency")(t.discount)))]),e._v(" "),s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Status"))+" : "+e._s(e.getOrderStatus(t.payment_status)))])])])})),0):e._e(),e._v(" "),e.report.today_orders&&0===e.report.today_orders.length?s("div",{staticClass:"flex items-center justify-center"},[s("i",{staticClass:"las la-frown"})]):e._e()])])}),[],!1,null,null,null).exports;var Oe=s(2242),Ee=s(7096),Te=s(1596);const Fe={name:"ns-stock-adjustment",props:["actions"],data:function(){return{search:"",timeout:null,suggestions:[],products:[]}},mounted:function(){console.log(this.actions)},methods:{__:o.__,searchProduct:function(e){var t=this;e.length>0&&a.ih.post("/api/nexopos/v4/procurements/products/search-procurement-product",{search:e}).subscribe((function(e){if("products"===e.from){if(!(e.products.length>0))return t.closeSearch(),a.kX.error((0,o.__)("Looks like no products matched the searched term.")).subscribe();1===e.products.length?t.addSuggestion(e.products[0]):t.suggestions=e.products}else if("procurements"===e.from){if(null===e.product)return t.closeSearch(),a.kX.error((0,o.__)("Looks like no products matched the searched term.")).subscribe();t.addProductToList(e.product)}}))},addProductToList:function(e){if(this.products.filter((function(t){return t.procurement_product_id===e.id})).length>0)return this.closeSearch(),a.kX.error((0,o.__)("The product already exists on the table.")).subscribe();var t=new Object;e.unit_quantity.unit=e.unit,t.quantities=[e.unit_quantity],t.name=e.name,t.adjust_unit=e.unit_quantity,t.adjust_quantity=1,t.adjust_action="",t.adjust_reason="",t.adjust_value=0,t.id=e.product_id,t.accurate_tracking=1,t.available_quantity=e.available_quantity,t.procurement_product_id=e.id,t.procurement_history=[{label:"".concat(e.procurement.name," (").concat(e.available_quantity,")"),value:e.id}],this.products.push(t),this.closeSearch()},addSuggestion:function(e){var t=this;(0,E.D)([a.ih.get("/api/nexopos/v4/products/".concat(e.id,"/units/quantities"))]).subscribe((function(s){if(!(s[0].length>0))return a.kX.error((0,o.__)("This product does't have any stock to adjust.")).subscribe();e.quantities=s[0],e.adjust_quantity=1,e.adjust_action="",e.adjust_reason="",e.adjust_unit="",e.adjust_value=0,e.procurement_product_id=0,t.products.push(e),t.closeSearch(),e.accurate_tracking}))},closeSearch:function(){this.search="",this.suggestions=[]},recalculateProduct:function(e){""!==e.adjust_unit&&(["deleted","defective","lost"].includes(e.adjust_action)?e.adjust_value=-e.adjust_quantity*e.adjust_unit.sale_price:e.adjust_value=e.adjust_quantity*e.adjust_unit.sale_price),this.$forceUpdate()},openQuantityPopup:function(e){var t=this;e.quantity;new Promise((function(t,s){Oe.G.show(Ee.Z,{resolve:t,reject:s,quantity:e.adjust_quantity})})).then((function(s){if(!["added"].includes(e.adjust_action)){if(void 0!==e.accurate_tracking&&s.quantity>e.available_quantity)return a.kX.error((0,o.__)("The specified quantity exceed the available quantity.")).subscribe();if(s.quantity>e.adjust_unit.quantity)return a.kX.error((0,o.__)("The specified quantity exceed the available quantity.")).subscribe()}e.adjust_quantity=s.quantity,t.recalculateProduct(e)}))},proceedStockAdjustment:function(){var e=this;if(0===this.products.length)return a.kX.error((0,o.__)("Unable to proceed as the table is empty.")).subscribe();Oe.G.show(A.Z,{title:(0,o.__)("Confirm Your Action"),message:(0,o.__)("The stock adjustment is about to be made. Would you like to confirm ?"),onAction:function(t){t&&a.ih.post("/api/nexopos/v4/products/adjustments",{products:e.products}).subscribe((function(t){a.kX.success(t.message).subscribe(),e.products=[]}),(function(e){a.kX.error(e.message).subscribe()}))}})},provideReason:function(e){Oe.G.show(Te.Z,{title:(0,o.__)("More Details"),message:(0,o.__)("Useful to describe better what are the reasons that leaded to this adjustment."),input:e.adjust_reason,onAction:function(t){!1!==t&&(e.adjust_reason=t)}})},removeProduct:function(e){var t=this;Oe.G.show(A.Z,{title:(0,o.__)("Confirm Your Action"),message:(0,o.__)("Would you like to remove this product from the table ?"),onAction:function(s){if(s){var r=t.products.indexOf(e);t.products.splice(r,1)}}})}},watch:{search:function(){var e=this;this.search.length>0?(clearTimeout(this.timeout),this.timeout=setTimeout((function(){e.searchProduct(e.search)}),500)):this.closeSearch()}}};const Ae=(0,f.Z)(Fe,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"input-field flex border-2 border-blue-400 rounded"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.search,expression:"search"}],staticClass:"p-2 bg-white flex-auto outline-none",attrs:{type:"text"},domProps:{value:e.search},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.closeSearch()},input:function(t){t.target.composing||(e.search=t.target.value)}}}),e._v(" "),s("button",{staticClass:"px-3 py-2 bg-blue-400 text-white"},[e._v(e._s(e.__("Search")))])]),e._v(" "),e.suggestions.length>0?s("div",{staticClass:"h-0"},[s("div",{staticClass:"shadow h-96 relative z-10 bg-white text-gray-700 zoom-in-entrance anim-duration-300 overflow-y-auto"},[s("ul",e._l(e.suggestions,(function(t){return s("li",{key:t.id,staticClass:"cursor-pointer hover:bg-gray-100 border-b border-gray-200 p-2 flex justify-between",on:{click:function(s){return e.addSuggestion(t)}}},[s("span",[e._v(e._s(t.name))])])})),0)])]):e._e(),e._v(" "),s("div",{staticClass:"table shadow bg-white my-2 w-full "},[s("table",{staticClass:"table w-full"},[s("thead",{staticClass:"border-b border-gray-400"},[s("tr",[s("td",{staticClass:"p-2 text-gray-700"},[e._v(e._s(e.__("Product")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Unit")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Operation")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Procurement")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Quantity")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Value")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"150"}},[e._v(e._s(e.__("Actions")))])])]),e._v(" "),s("tbody",[0===e.products.length?s("tr",[s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{colspan:"6"}},[e._v(e._s(e.__("Search and add some products")))])]):e._e(),e._v(" "),e._l(e.products,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"p-2 text-gray-600"},[e._v(e._s(t.name)+" ("+e._s((1===t.accurate_tracking?t.available_quantity:t.adjust_unit.quantity)||0)+")")]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.adjust_unit,expression:"product.adjust_unit"}],staticClass:"outline-none p-2 bg-white w-full border-2 border-blue-400",on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t,"adjust_unit",s.target.multiple?r:r[0])},function(s){return e.recalculateProduct(t)}]}},e._l(t.quantities,(function(t){return s("option",{key:t.id,domProps:{value:t}},[e._v(e._s(t.unit.name))])})),0)]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.adjust_action,expression:"product.adjust_action"}],staticClass:"outline-none p-2 bg-white w-full border-2 border-blue-400",attrs:{name:"",id:""},on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t,"adjust_action",s.target.multiple?r:r[0])},function(s){return e.recalculateProduct(t)}]}},e._l(e.actions,(function(t){return s("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0)]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[1===t.accurate_tracking?s("select",{directives:[{name:"model",rawName:"v-model",value:t.procurement_product_id,expression:"product.procurement_product_id"}],staticClass:"outline-none p-2 bg-white w-full border-2 border-blue-400",attrs:{name:"",id:""},on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t,"procurement_product_id",s.target.multiple?r:r[0])},function(s){return e.recalculateProduct(t)}]}},e._l(t.procurement_history,(function(t){return s("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0):e._e()]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600 flex items-center justify-center cursor-pointer",on:{click:function(s){return e.openQuantityPopup(t)}}},[s("span",{staticClass:"border-b border-dashed border-blue-400 py-2 px-4"},[e._v(e._s(t.adjust_quantity))])]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[s("span",{staticClass:"border-b border-dashed border-blue-400 py-2 px-4"},[e._v(e._s(e._f("currency")(t.adjust_value)))])]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[s("div",{staticClass:"-mx-1 flex justify-end"},[s("div",{staticClass:"px-1"},[s("button",{staticClass:"bg-blue-400 text-white outline-none rounded-full shadow h-10 w-10",on:{click:function(s){return e.provideReason(t)}}},[s("i",{staticClass:"las la-comment-dots"})])]),e._v(" "),s("div",{staticClass:"px-1"},[s("button",{staticClass:"bg-red-400 text-white outline-none rounded-full shadow h-10 w-10",on:{click:function(s){return e.removeProduct(t)}}},[s("i",{staticClass:"las la-times"})])])])])])}))],2)]),e._v(" "),s("div",{staticClass:"border-t border-gray-200 p-2 flex justify-end"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.proceedStockAdjustment()}}},[e._v(e._s(e.__("Proceed")))])],1)])])}),[],!1,null,null,null).exports;const Ve={props:["order","billing","shipping"],methods:{__:o.__,printTable:function(){this.$htmlToPaper("invoice-container")}}};const qe=(0,f.Z)(Ve,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow bg-white"},[s("div",{staticClass:"head p-2 bg-gray-100 flex justify-between border-b border-gray-300"},[s("div",{staticClass:"-mx-2 flex flex-wrap"},[s("div",{staticClass:"px-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.printTable()}}},[s("i",{staticClass:"las la-print"}),e._v(" "),s("span",[e._v(e._s(e.__("Print")))])])],1)])]),e._v(" "),s("div",{staticClass:"body flex flex-col px-2",attrs:{id:"invoice-container"}},[s("div",{staticClass:"flex -mx-2 flex-wrap",attrs:{id:"invoice-header"}},[s("div",{staticClass:"w-full print:w-1/3 md:w-1/3 px-2"},[s("div",{staticClass:"p-2"},[s("h3",{staticClass:"font-semibold text-xl text-gray-700 border-b border-blue-400 py-2"},[e._v(e._s(e.__("Store Details")))]),e._v(" "),s("div",{staticClass:"details"},[s("ul",{staticClass:"my-1"},[s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Order Code")))]),e._v(" "),s("span",[e._v(e._s(e.order.code))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Cashier")))]),e._v(" "),s("span",[e._v(e._s(e.order.user.username))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Date")))]),e._v(" "),s("span",[e._v(e._s(e.order.created_at))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Customer")))]),e._v(" "),s("span",[e._v(e._s(e.order.customer.name))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Type")))]),e._v(" "),s("span",[e._v(e._s(e.order.type))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Payment Status")))]),e._v(" "),s("span",[e._v(e._s(e.order.payment_status))])]),e._v(" "),"delivery"===e.order.type?s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Delivery Status")))]),e._v(" "),s("span",[e._v(e._s(e.order.delivery_status))])]):e._e()])])])]),e._v(" "),s("div",{staticClass:"w-full print:w-1/3 md:w-1/3 px-2"},[s("div",{staticClass:"p-2"},[s("h3",{staticClass:"font-semibold text-xl text-gray-700 border-b border-blue-400 py-2"},[e._v(e._s(e.__("Billing Details")))]),e._v(" "),s("div",{staticClass:"details"},[s("ul",{staticClass:"my-1"},e._l(e.billing,(function(t){return s("li",{key:t.id,staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(t.label))]),e._v(" "),s("span",[e._v(e._s(e.order.billing_address[t.name]||"N/A"))])])})),0)])])]),e._v(" "),s("div",{staticClass:"w-full print:w-1/3 md:w-1/3 px-2"},[s("div",{staticClass:"p-2"},[s("h3",{staticClass:"font-semibold text-xl text-gray-700 border-b border-blue-400 py-2"},[e._v(e._s(e.__("Shipping Details")))]),e._v(" "),s("div",{staticClass:"details"},[s("ul",{staticClass:"my-1"},e._l(e.shipping,(function(t){return s("li",{key:t.id,staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(t.label))]),e._v(" "),s("span",[e._v(e._s(e.order.shipping_address[t.name]||"N/A"))])])})),0)])])])]),e._v(" "),s("div",{staticClass:"table w-full my-4"},[s("table",{staticClass:"table w-full"},[s("thead",{staticClass:"text-gray-600 bg-gray-100"},[s("tr",[s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"400"}},[e._v(e._s(e.__("Product")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Unit Price")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Quantity")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Discount")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Tax")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Total Price")))])])]),e._v(" "),s("tbody",e._l(e.order.products,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"p-2 border border-gray-200"},[s("h3",{staticClass:"text-gray-700"},[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"text-sm text-gray-600"},[e._v(e._s(t.unit))])]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700"},[e._v(e._s(e._f("currency")(t.unit_price)))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700"},[e._v(e._s(t.quantity))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700"},[e._v(e._s(e._f("currency")(t.discount)))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700"},[e._v(e._s(e._f("currency")(t.tax_value)))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(t.total_price)))])])})),0),e._v(" "),s("tfoot",{staticClass:"font-semibold bg-gray-100"},[s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"2"}},[["unpaid","partially_paid"].includes(e.order.payment_status)?s("div",{staticClass:"flex justify-between"},[s("span",[e._v("\n "+e._s(e.__("Expiration Date"))+"\n ")]),e._v(" "),s("span",[e._v(e._s(e.order.final_payment_date))])]):e._e()]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"2"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Sub Total")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.subtotal)))])]),e._v(" "),e.order.discount>0?s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Discount")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(-e.order.discount)))])]):e._e(),e._v(" "),e.order.total_coupons>0?s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-left text-gray-700"},[e._v(e._s(e.__("Coupons")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(-e.order.total_coupons)))])]):e._e(),e._v(" "),e.order.shipping>0?s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Shipping")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.shipping)))])]):e._e(),e._v(" "),s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Total")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.total)))])]),e._v(" "),s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Paid")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.tendered)))])]),e._v(" "),["partially_paid","unpaid"].includes(e.order.payment_status)?s("tr",{staticClass:"bg-red-200 border-red-300"},[s("td",{staticClass:"p-2 border border-red-200 text-center text-red-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-red-200 text-red-700 text-left"},[e._v(e._s(e.__("Due")))]),e._v(" "),s("td",{staticClass:"p-2 border border-red-200 text-right text-red-700"},[e._v(e._s(e._f("currency")(e.order.change)))])]):s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Change")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.change)))])])])])])])])}),[],!1,null,null,null).exports;var Ne=s(2329),Me=s(1957),Ue=s(7166),Re=s.n(Ue),Xe=s(5675),Ze=s.n(Xe),Le=window.nsState,ze=window.nsScreen,Ie=window.nsExtraComponents;r.default.use(Ze(),{name:"_blank",specs:["fullscreen=yes","titlebar=yes","scrollbars=yes"],styles:["/css/app.css"]});var We=r.default.component("vue-apex-charts",Re()),Ye=Object.assign(Object.assign({NsModules:D,NsRewardsSystem:p,NsCreateCoupons:b,NsManageProducts:U,NsSettings:g,NsReset:y,NsPermissions:F,NsProcurement:B,NsProcurementInvoice:G,NsMedia:J.Z,NsDashboardCards:ge,NsCashierDashboard:De,NsBestCustomers:ye,NsBestCashiers:Ce,NsOrdersSummary:je,NsOrdersChart:Pe,NsNotifications:K,NsSaleReport:ie,NsSoldStockReport:ae,NsProfitReport:le,NsCashFlowReport:de,NsYearlyReport:fe,NsPaymentTypesReport:be,NsBestProductsReport:he,NsStockAdjustment:Ae,NsPromptPopup:Te.Z,NsAlertPopup:Ne.Z,NsConfirmPopup:A.Z,NsPOSLoadingPopup:Me.Z,NsOrderInvoice:qe,VueApexCharts:We},i),Ie),Be=new r.default({el:"#dashboard-aside",data:{sidebar:"visible"},components:Ye,mounted:function(){var e=this;Le.behaviorState.subscribe((function(t){var s=t.object;e.sidebar=s.sidebar}))}});window.nsDashboardAside=Be,window.nsDashboardOverlay=new r.default({el:"#dashboard-overlay",data:{sidebar:null},components:Ye,mounted:function(){var e=this;Le.behaviorState.subscribe((function(t){var s=t.object;e.sidebar=s.sidebar}))},methods:{closeMenu:function(){Le.setState({sidebar:"hidden"===this.sidebar?"visible":"hidden"})}}}),window.nsDashboardHeader=new r.default({el:"#dashboard-header",data:{menuToggled:!1,sidebar:"visible"},components:Ye,methods:{toggleMenu:function(){this.menuToggled=!this.menuToggled},toggleSideMenu:function(){["lg","xl"].includes(ze.breakpoint),Le.setState({sidebar:"hidden"===this.sidebar?"visible":"hidden"})}},mounted:function(){var e=this;Le.behaviorState.subscribe((function(t){var s=t.object;e.sidebar=s.sidebar}))}}),window.nsComponents=Object.assign(Ye,i),window.nsDashboardContent=new r.default({el:"#dashboard-content",components:Ye})},162:(e,t,s)=>{"use strict";s.d(t,{l:()=>M,kq:()=>L,ih:()=>U,kX:()=>R});var r=s(6486),i=s(9669),n=s(2181),a=s(8345),o=s(9624),l=s(9248),c=s(230);function d(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,s)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,s)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var s=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=L.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:r}),new c.y((function(n){s._client[e](t,r,Object.assign(Object.assign({},s._client.defaults[e]),i)).then((function(e){s._lastRequestData=e,n.next(e.data),n.complete(),s._subject.next({identifier:"async.stop"})})).catch((function(e){var t;n.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),s._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,s=e.value;this._subject.next({identifier:t,value:s})}}])&&d(t.prototype,s),r&&d(t,r),e}(),f=s(3);function p(e,t){for(var s=0;s=1e3){for(var s,r=Math.floor((""+e).length/3),i=2;i>=1;i--){if(((s=parseFloat((0!=r?e/Math.pow(1e3,r):e).toPrecision(i)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}s%1!=0&&(s=s.toFixed(1)),t=s+["","k","m","b","t"][r]}return t})),P=s(1356),S=s(9698);function D(e,t){for(var s=0;s0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&q(t.prototype,s),r&&q(t,r),e}()),I=new b({sidebar:["xs","sm","md"].includes(z.breakpoint)?"hidden":"visible"});U.defineClient(i),window.nsEvent=M,window.nsHttpClient=U,window.nsSnackBar=R,window.nsCurrency=P.W,window.nsTruncate=S.b,window.nsRawCurrency=P.f,window.nsAbbreviate=$,window.nsState=I,window.nsUrl=X,window.nsScreen=z,window.ChartJS=n,window.EventEmitter=h,window.Popup=y.G,window.RxJS=g,window.FormValidation=C.Z,window.nsCrudHandler=Z},8202:(e,t,s)=>{"use strict";s.r(t),s.d(t,{nsButton:()=>o,nsCheckbox:()=>u,nsCkeditor:()=>F,nsCloseButton:()=>P,nsCrud:()=>m,nsCrudForm:()=>g,nsDate:()=>k,nsDateTimePicker:()=>q.V,nsDatepicker:()=>M,nsField:()=>y,nsIconButton:()=>S,nsInput:()=>c,nsLink:()=>l,nsMediaInput:()=>$,nsMenu:()=>n,nsMultiselect:()=>w,nsNumpad:()=>N.Z,nsSelect:()=>d.R,nsSpinner:()=>b,nsSubmenu:()=>a,nsSwitch:()=>C,nsTableRow:()=>v,nsTabs:()=>A,nsTabsItem:()=>V,nsTextarea:()=>x});var r=s(538),i=s(162),n=r.default.component("ns-menu",{data:function(){return{defaultToggledState:!1,_save:0}},props:["href","label","icon","notification","toggled","identifier"],template:'\n \n ',mounted:function(){var e=this;this.defaultToggledState=void 0!==this.toggled?this.toggled:this.defaultToggledState,i.l.subject().subscribe((function(t){t.value!==e.identifier&&(e.defaultToggledState=!1)}))},methods:{toggleEmit:function(){var e=this;this.toggle().then((function(t){t&&i.l.emit({identifier:"side-menu.open",value:e.identifier})}))},toggle:function(){var e=this;return new Promise((function(t,s){0===e.href.length&&(e.defaultToggledState=!e.defaultToggledState,t(e.defaultToggledState))}))}}}),a=r.default.component("ns-submenu",{data:function(){return{}},props:["href","label","active"],mounted:function(){},template:'\n
\n
  • \n \n \n \n
  • \n
    \n '}),o=r.default.component("ns-button",{data:function(){return{clicked:!1,_save:0}},props:["type","disabled","link","href","routerLink","to"],template:'\n
    \n \n \n \n
    \n ',mounted:function(){},computed:{isDisabled:function(){return this.disabled&&(0===this.disabled.length||"disabled"===this.disabled||this.disabled)},buttonclass:function(){var e;switch(this.type){case"info":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-blue-400 text-white");break;case"success":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-green-400 text-white");break;case"danger":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-red-400 text-white");break;case"warning":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-orange-400 text-white");break;default:e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-white text-gray-800")}return e}}}),l=r.default.component("ns-link",{data:function(){return{clicked:!1,_save:0}},props:["type","to","href"],template:'\n
    \n \n \n
    \n ',computed:{buttonclass:function(){switch(this.type){case"info":return"shadow bg-blue-400 text-white";case"success":return"shadow bg-green-400 text-white";case"danger":return"shadow bg-red-400 text-white";case"warning":return"shadow bg-orange-400 text-white";default:return"shadow bg-white text-gray-800"}}}}),c=r.default.component("ns-input",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),d=s(4451),u=r.default.component("ns-checkbox",{data:function(){return{}},props:["checked","field","label"],template:'\n
    \n
    \n \n
    \n {{ label }}\n {{ field.label }}\n
    \n ',computed:{isChecked:function(){return this.field?this.field.value:this.checked}},methods:{toggleIt:function(){void 0!==this.field&&(this.field.value=!this.field.value),this.$emit("change",!this.checked)}}}),f=s(7389),p=s(2242),h=s(419),m=r.default.component("ns-crud",{data:function(){return{isRefreshing:!1,sortColumn:"",searchInput:"",searchQuery:"",page:1,bulkAction:"",bulkActions:[],columns:[],selectedEntries:[],globallyChecked:!1,result:{current_page:null,data:[],first_page_url:null,from:null,last_page:null,last_page_url:null,next_page_url:null,path:null,per_page:null,prev_page_url:null,to:null,total:null}}},mounted:function(){void 0!==this.identifier&&nsCrudHandler.defineInstance(this.identifier,this),this.loadConfig()},props:["src","create-url","mode","identifier","queryParams"],computed:{getParsedSrc:function(){return"".concat(this.src,"?").concat(this.sortColumn).concat(this.searchQuery).concat(this.queryPage).concat(this.getQueryParams()?"&"+this.getQueryParams():"")},getSelectedAction:function(){var e=this,t=this.bulkActions.filter((function(t){return t.identifier===e.bulkAction}));return t.length>0&&t[0]},pagination:function(){return this.result?this.pageNumbers(this.result.last_page,this.result.current_page):[]},queryPage:function(){return this.result?"&page=".concat(this.page):""},resultInfo:function(){return(0,f.__)("displaying {perPage} on {items} items").replace("{perPage}",this.result.total).replace("{items}",this.result.total)}},methods:{__:f.__,getQueryParams:function(){var e=this;return this.queryParams?Object.keys(this.queryParams).map((function(t){return"".concat(t,"=").concat(e.queryParams[t])})).join("&"):""},pageNumbers:function(e,t){var s=[];return t>e-3?s.push(e-2,e-1,e):s.push(t,t+1,t+2,"...",e),s.filter((function(e){return e>0||"string"==typeof e}))},downloadContent:function(){i.ih.post("".concat(this.src,"/export?").concat(this.getQueryParams()),{entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(e){setTimeout((function(){return document.location=e.url}),300),i.kX.success((0,f.__)("The document has been generated.")).subscribe()}),(function(e){i.kX.error(e.message||(0,f.__)("Unexpected error occured.")).subscribe()}))},clearSelectedEntries:function(){var e=this;p.G.show(h.Z,{title:(0,f.__)("Clear Selected Entries ?"),message:(0,f.__)("Would you like to clear all selected entries ?"),onAction:function(t){t&&(e.selectedEntries=[])}})},refreshRow:function(e){if(!0===e.$checked){0===this.selectedEntries.filter((function(t){return t.$id===e.$id})).length&&this.selectedEntries.push(e)}else{var t=this.selectedEntries.filter((function(t){return t.$id===e.$id}));if(t.length>0){var s=this.selectedEntries.indexOf(t[0]);this.selectedEntries.splice(s,1)}}},handleShowOptions:function(e){this.result.data.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},handleGlobalChange:function(e){var t=this;this.globallyChecked=e,this.result.data.forEach((function(s){s.$checked=e,t.refreshRow(s)}))},loadConfig:function(){var e=this;i.ih.get("".concat(this.src,"/config?").concat(this.getQueryParams())).subscribe((function(t){e.columns=t.columns,e.bulkActions=t.bulkActions,e.refresh()}),(function(e){i.kX.error(e.message,"OK",{duration:!1}).subscribe()}))},cancelSearch:function(){this.searchInput="",this.search()},search:function(){this.searchInput?this.searchQuery="&search=".concat(this.searchInput):this.searchQuery="",this.refresh()},sort:function(e){for(var t in this.columns)t!==e&&(this.columns[t].$sorted=!1,this.columns[t].$direction="");switch(this.columns[e].$sorted=!0,this.columns[e].$direction){case"asc":this.columns[e].$direction="desc";break;case"desc":this.columns[e].$direction="";break;case"":this.columns[e].$direction="asc"}["asc","desc"].includes(this.columns[e].$direction)?this.sortColumn="active=".concat(e,"&direction=").concat(this.columns[e].$direction):this.sortColumn="",this.$emit("sort",this.columns[e]),this.refresh()},bulkDo:function(){var e=this;return this.bulkAction?this.selectedEntries.length>0?(console.log(this.getSelectedAction),confirm(this.getSelectedAction.confirm||this.$slots["error-bulk-confirmation"]||(0,f.__)("No bulk confirmation message provided on the CRUD class."))?i.ih.post("".concat(this.src,"/bulk-actions"),{action:this.bulkAction,entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(t){i.kX.info(t.message).subscribe(),e.selectedEntries=[],e.refresh()}),(function(e){i.kX.error(e.message).subscribe()})):void 0):i.kX.error(this.$slots["error-no-selection"]?this.$slots["error-no-selection"][0].text:(0,f.__)("No selection has been made.")).subscribe():i.kX.error(this.$slots["error-no-action"]?this.$slots["error-no-action"][0].text:(0,f.__)("No action has been selected.")).subscribe()},refresh:function(){var e=this;this.globallyChecked=!1,this.isRefreshing=!0,i.ih.get("".concat(this.getParsedSrc)).subscribe((function(t){t.data=t.data.map((function(t){return e.selectedEntries.filter((function(e){return e.$id===t.$id})).length>0&&(t.$checked=!0),t})),e.isRefreshing=!1,e.result=t,e.page=t.current_page}),(function(t){e.isRefreshing=!1,i.kX.error(t.message).subscribe()}))}},template:'\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{ column.label }}\n \n \n \n \n
    \n
    {{ __( \'There is nothing to display...\' ) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ resultInfo }}
    \n \n
    \n
    \n
    \n '}),v=r.default.component("ns-table-row",{props:["options","row","columns"],data:function(){return{optionsToggled:!1}},mounted:function(){},methods:{sanitizeHTML:function(e){var t=document.createElement("div");t.innerHTML=e;for(var s=t.getElementsByTagName("script"),r=s.length;r--;)s[r].parentNode.removeChild(s[r]);return t.innerHTML},getElementOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},toggleMenu:function(e){var t=this;if(this.row.$toggled=!this.row.$toggled,this.$emit("toggled",this.row),this.row.$toggled)setTimeout((function(){var e=t.$el.querySelectorAll(".relative > .absolute")[0],s=t.$el.querySelectorAll(".relative")[0],r=t.getElementOffset(s);e.style.top=r.top+"px",e.style.left=r.left+"px",s.classList.remove("relative"),s.classList.add("dropdown-holder")}),100);else{var s=this.$el.querySelectorAll(".dropdown-holder")[0];s.classList.remove("dropdown-holder"),s.classList.add("relative")}},handleChanged:function(e){this.row.$checked=e,this.$emit("updated",this.row)},triggerAsync:function(e){var t=this;e.confirm?confirm(e.confirm.message)&&i.ih[e.type.toLowerCase()](e.url).subscribe((function(e){i.kX.success(e.message).subscribe(),t.$emit("reload",t.row)}),(function(e){t.toggleMenu(),i.kX.error(e.message).subscribe()})):(i.l.emit({identifier:"ns-table-row-action",value:{action:e,row:this.row,component:this}}),this.toggleMenu())}},template:'\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n '}),b=r.default.component("ns-spinner",{data:function(){return{}},mounted:function(){},computed:{validatedSize:function(){return this.size||24},validatedBorder:function(){return this.border||8},validatedAnimation:function(){return this.animation||"fast"}},props:["color","size","border"],template:"\n
    \n
    \n
    \n "}),_=s(7266),g=r.default.component("ns-crud-form",{data:function(){return{form:{},globallyChecked:!1,formValidation:new _.Z,rows:[]}},mounted:function(){this.loadForm()},props:["src","create-url","field-class","return-url","submit-url","submit-method","disable-tabs"],computed:{activeTabFields:function(){for(var e in this.form.tabs)if(this.form.tabs[e].active)return this.form.tabs[e].fields;return[]}},methods:{toggle:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;this.form.tabs[e].active=!0},handleShowOptions:function(e){this.rows.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},submit:function(){var e=this;return this.formValidation.validateForm(this.form).length>0?i.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():(this.formValidation.disableForm(this.form),void 0===this.submitUrl?i.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():void i.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,this.formValidation.extractForm(this.form)).subscribe((function(t){if("success"===t.status){if(e.returnUrl&&e.returnUrl.length>0)return document.location=e.returnUrl;e.$emit("save",t)}e.formValidation.enableForm(e.form)}),(function(t){i.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t),e.formValidation.enableForm(e.form)})))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;i.ih.get("".concat(this.src)).subscribe((function(t){e.form=e.parseForm(t.form),i.kq.doAction("ns-crud-form-loaded",e),e.$emit("updated",e.form)}),(function(e){i.kX.error(e.message,"OKAY",{duration:0}).subscribe()}))},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var s in e.tabs)0===t&&(e.tabs[s].active=!0),e.tabs[s].active=void 0!==e.tabs[s].active&&e.tabs[s].active,e.tabs[s].fields=this.formValidation.createFields(e.tabs[s].fields),t++;return e}},template:'\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Return\n
    \n
    \n
    \n \n \n
    \n

    {{ form.main.description }}

    \n

    \n {{ error.identifier }}\n {{ error.message }}\n

    \n
    \n
    \n
    \n
    {{ tab.label }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n '}),x=r.default.component("ns-textarea",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),y=r.default.component("ns-field",{data:function(){return{}},mounted:function(){},computed:{isInputField:function(){return["text","password","email","number","tel"].includes(this.field.type)},isDateField:function(){return["date"].includes(this.field.type)},isSelectField:function(){return["select"].includes(this.field.type)},isTextarea:function(){return["textarea"].includes(this.field.type)},isCheckbox:function(){return["checkbox"].includes(this.field.type)},isMultiselect:function(){return["multiselect"].includes(this.field.type)},isSwitch:function(){return["switch"].includes(this.field.type)},isMedia:function(){return["media"].includes(this.field.type)},isCkEditor:function(){return["ckeditor"].includes(this.field.type)},isDateTimePicker:function(){return["datetimepicker"].includes(this.field.type)},isCustom:function(){return["custom"].includes(this.field.type)}},props:["field"],methods:{addOption:function(e){"select"===this.field.type&&this.field.options.forEach((function(e){return e.selected=!1})),e.selected=!0;var t=this.field.options.indexOf(e);this.field.options.splice(t,1),this.field.options.unshift(e),this.refreshMultiselect(),this.$emit("change",{action:"addOption",option:e})},refreshMultiselect:function(){this.field.value=this.field.options.filter((function(e){return e.selected})).map((function(e){return e.value}))},removeOption:function(e){e.selected=!1,this.refreshMultiselect(),this.$emit("change",{action:"removeOption",option:e})}},template:'\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n '}),w=r.default.component("ns-multiselect",{data:function(){return{showPanel:!1,search:""}},props:["field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=void 0!==t.selected&&t.selected,e.field.value&&e.field.value.includes(t.value)&&(t.selected=!0),t}))}},methods:{__:f.__,addOption:function(e){this.field.disabled||(this.$emit("addOption",e),this.$forceUpdate(),setTimeout((function(){}),100))},removeOption:function(e,t){var s=this;if(!this.field.disabled)return t.preventDefault(),t.stopPropagation(),this.$emit("removeOption",e),this.$forceUpdate(),setTimeout((function(){s.search=""}),100),!1}},mounted:function(){var e=this;this.field.value&&this.field.value.reverse().forEach((function(t){var s=e.field.options.filter((function(e){return e.value===t}));s.length>=0&&e.addOption(s[0])}))},template:'\n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ option.label }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n
    \n '}),C=r.default.component("ns-switch",{data:function(){return{}},mounted:function(){},computed:{_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=t.value===e.field.value,t}))},hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":""},sizeClass:function(){return" w-1/".concat(this._options.length<=4?this._options.length:4)},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:f.__,setSelected:function(e){this.field.value=e.value,this._options.forEach((function(e){return e.selected=!1})),e.selected=!0,this.$forceUpdate(),this.$emit("change",e.value)}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n

    \n
    \n '}),k=r.default.component("ns-date",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),j=s(9576),$=r.default.component("ns-media-input",{template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n ',computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},data:function(){return{}},props:["placeholder","leading","type","field"],mounted:function(){},methods:{toggleMedia:function(){var e=this;new Promise((function(t,s){p.G.show(j.Z,Object.assign({resolve:t,reject:s},e.field.data||{}))})).then((function(t){"use-selected"===t.event&&(e.field.data&&"url"!==e.field.data.type?e.field.data&&"model"!==e.field.data.type||(e.field.value=t.value[0]):e.field.value=t.value[0].sizes.original,e.$forceUpdate())}))}}}),P=r.default.component("ns-close-button",{template:'\n \n ',methods:{clicked:function(e){this.$emit("click",e)}}}),S=r.default.component("ns-icon-button",{template:'\n \n ',props:["className","buttonClass"],methods:{clicked:function(e){this.$emit("click",e)}}}),D=s(1272),O=s.n(D),E=s(5234),T=s.n(E),F=r.default.component("ns-ckeditor",{data:function(){return{editor:T()}},components:{ckeditor:O().component},mounted:function(){},methods:{__:f.__},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),A=r.default.component("ns-tabs",{data:function(){return{childrens:[]}},props:["active"],computed:{activeComponent:function(){var e=this.$children.filter((function(e){return e.active}));return e.length>0&&e[0]}},methods:{toggle:function(e){this.$emit("active",e.identifier),this.$emit("changeTab",e.identifier)}},mounted:function(){this.childrens=this.$children},template:'\n
    \n
    \n
    {{ tab.label }}
    \n
    \n \n
    \n '}),V=r.default.component("ns-tabs-item",{data:function(){return{}},mounted:function(){},props:["label","identifier","padding"],template:'\n
    \n \n
    \n '}),q=s(8655),N=s(3968),M=s(6598).Z},8655:(e,t,s)=>{"use strict";s.d(t,{V:()=>o});var r=s(538),i=s(381),n=s.n(i),a=s(7389),o=r.default.component("ns-date-time-picker",{template:'\n
    \n \n
    \n \n \n {{ currentDay.format( \'YYYY/MM/DD HH:mm\' ) }}\n N/A\n \n
    \n

    {{ field.description }}

    \n \n
    \n ',props:["field","date"],data:function(){return{visible:!1,hours:0,minutes:0,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},watch:{visible:function(){var e=this;this.visible&&setTimeout((function(){e.$refs.hours.addEventListener("focus",(function(){this.select()})),e.$refs.minutes.addEventListener("focus",(function(){this.select()}))}),100)}},mounted:function(){var e=this;document.addEventListener("mousedown",(function(t){return e.checkClickedItem(t)})),this.field?this.currentDay=[void 0,null,""].includes(this.field.value)?n()():n()(this.field.value):this.currentDay=[void 0,null,""].includes(this.date)?n()():n()(this.date),this.hours=this.currentDay.format("HH"),this.minutes=this.currentDay.format("mm"),this.build()},methods:{__:a.__,detectHoursChange:function(){parseFloat(this.hours)<0&&(this.hours=0),parseFloat(this.hours)>23&&(this.hours=23),this.updateDateTime()},detectMinuteChange:function(){parseFloat(this.minutes)<0&&(this.minutes=0),parseFloat(this.minutes)>59&&(this.minutes=59),this.updateDateTime()},updateDateTime:function(){this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes),this.selectDate(this.currentDay)},checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes);var t=this.currentDay.format("YYYY/MM/DD HH:mm");this.field?(this.field.value=t,this.$emit("change",this.field)):this.$emit("change",this.currentDay)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var s=this.calendar.length-1;if(this.calendar[s].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(n().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}})},4451:(e,t,s)=>{"use strict";s.d(t,{R:()=>i});var r=s(7389),i=s(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:r.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,s)=>{"use strict";s.d(t,{W:()=>c,f:()=>d});var r=s(538),i=s(2077),n=s.n(i),a=s(6740),o=s.n(a),l=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),c=r.default.filter("currency",(function(e){var t,s,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===r){var i={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};s=o()(e,i).format()}else s=n()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(s).concat("after"===ns.currency.ns_currency_position?t:"")})),d=function(e){var t="0.".concat(l);return parseFloat(n()(e).format(t))}},9698:(e,t,s)=>{"use strict";s.d(t,{b:()=>r});var r=s(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,s)=>{"use strict";function r(e,t){for(var s=0;si});var i=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,s,i;return t=e,(s=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var s in e.tabs){var r=[],i=this.validateFieldsErrors(e.tabs[s].fields);i.length>0&&r.push(i),e.tabs[s].errors=r.flat(),t.push(r.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var s in e)0===t&&(e[s].active=!0),e[s].active=void 0!==e[s].active&&e[s].active,e[s].fields=this.createFields(e[s].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(s){t.fieldPassCheck(e,s)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var s in e.tabs)void 0===t[s]&&(t[s]={}),t[s]=this.extractFields(e.tabs[s].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var s=function(s){var r=s.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===r.length&&e.tabs[r[0]].fields.forEach((function(e){e.name===r[1]&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))})),s===e.main.name&&t.errors[s].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var r in t.errors)s(r)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var s=function(s){e.forEach((function(e){e.name===s&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))}))};for(var r in t.errors)s(r)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){s.identifier===t.identifier&&!0===s.invalid&&e.errors.splice(r,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){!0===s[t.identifier]&&e.errors.splice(r,1)}))}return e}}])&&r(t.prototype,s),i&&r(t,i),e}()},7389:(e,t,s)=>{"use strict";s.d(t,{__:()=>r,c:()=>i});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},i=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,s)=>{"use strict";function r(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}s.d(t,{Z:()=>r})},6386:(e,t,s)=>{"use strict";function r(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}s.d(t,{Z:()=>r})},2242:(e,t,s)=>{"use strict";s.d(t,{G:()=>a});var r=s(9248);function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{};if(i(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var s=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[s-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new r.x}var t,s,a;return t=e,a=[{key:"show",value:function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=new e(r);return i.open(t,s),i}}],(s=[{key:"open",value:function(e){var t,s,r,i=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",a.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){i.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var o=Vue.extend(e);this.instance=new o({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=n,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&n(t.prototype,s),a&&n(t,a),e}()},9624:(e,t,s)=>{"use strict";s.d(t,{S:()=>n});var r=s(3260);function i(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return r.Observable.create((function(r){var n=s.__createSnack({message:e,label:t,type:i.type}),a=n.buttonNode,o=(n.textNode,n.snackWrapper,n.sampleSnack);a.addEventListener("click",(function(e){r.onNext(a),r.onCompleted(),o.remove()})),s.__startTimer(i.duration,o)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var s,r=function(){e>0&&!1!==e&&(s=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(s)})),t.addEventListener("mouseleave",(function(){r()})),r()}},{key:"__createSnack",value:function(e){var t=e.message,s=e.label,r=e.type,i=void 0===r?"info":r,n=document.getElementById("snack-wrapper")||document.createElement("div"),a=document.createElement("div"),o=document.createElement("p"),l=document.createElement("div"),c=document.createElement("button"),d="",u="";switch(i){case"info":d="text-white hover:bg-blue-400 bg-blue-500",u="bg-gray-900 text-white";break;case"error":d="text-red-700 hover:bg-white bg-white",u="bg-red-500 text-white";break;case"success":d="text-green-700 hover:bg-white bg-white",u="bg-green-500 text-white"}return o.textContent=t,s&&(c.textContent=s,c.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(d)),l.appendChild(c)),a.appendChild(o),a.appendChild(l),a.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(u)),n.appendChild(a),null===document.getElementById("snack-wrapper")&&(n.setAttribute("id","snack-wrapper"),n.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(n)),{snackWrapper:n,sampleSnack:a,buttonsWrapper:l,buttonNode:c,textNode:o}}}])&&i(t.prototype,s),n&&i(t,n),e}()},824:(e,t,s)=>{"use strict";var r=s(381),i=s.n(r);ns.date.moment=i()(ns.date.current),ns.date.interval=setInterval((function(){ns.date.moment.add(1,"seconds"),ns.date.current=i()(ns.date.current).add(1,"seconds").format("YYYY-MM-DD HH:mm:ss")}),1e3),ns.date.getNowString=function(){var e=Date.parse((new Date).toLocaleString("en-US",{timeZone:ns.date.timeZone}));return i()(e).format("YYYY-MM-DD HH:mm:ss")},ns.date.getMoment=function(){var e=Date.parse((new Date).toLocaleString("en-US",{timeZone:ns.date.timeZone}));return i()(e)}},6700:(e,t,s)=>{var r={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function i(e){var t=n(e);return s(t)}function n(e){if(!s.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=n,e.exports=i,i.id=6700},6598:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});var r=s(381),i=s.n(r);const n={name:"ns-datepicker",props:["label","date"],data:function(){return{visible:!1,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},mounted:function(){document.addEventListener("click",this.checkClickedItem),this.currentDay=[void 0,null].includes(this.date)?i()():i()(this.date),this.build()},methods:{__:s(7389).__,checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.visible=!1,this.$emit("change",e)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var s=this.calendar.length-1;if(this.calendar[s].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(i().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}};const a=(0,s(1900).Z)(n,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"picker"},[s("div",{staticClass:"rounded cursor-pointer bg-white shadow px-1 py-1 flex items-center text-gray-700",on:{click:function(t){e.visible=!e.visible}}},[s("i",{staticClass:"las la-clock text-2xl"}),e._v(" "),s("span",{staticClass:"mx-1 text-sm"},[s("span",[e._v(e._s(e.label||e.__("Date"))+" : ")]),e._v(" "),e.currentDay?s("span",[e._v(e._s(e.currentDay.format("YYYY/MM/DD")))]):e._e(),e._v(" "),null===e.currentDay?s("span",[e._v(e._s(e.__("N/A")))]):e._e()])]),e._v(" "),e.visible?s("div",{staticClass:"relative h-0 w-0 -mb-2"},[s("div",{staticClass:"w-72 mt-2 shadow rounded bg-white anim-duration-300 zoom-in-entrance flex flex-col"},[s("div",{staticClass:"flex-auto"},[s("div",{staticClass:"p-2 flex items-center"},[s("div",[s("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.subMonth()}}},[s("i",{staticClass:"las la-angle-left"})])]),e._v(" "),s("div",{staticClass:"flex flex-auto font-semibold text-gray-700 justify-center"},[e._v(e._s(e.currentDay.format("MMM"))+" "+e._s(e.currentDay.format("YYYY")))]),e._v(" "),s("div",[s("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.addMonth()}}},[s("i",{staticClass:"las la-angle-right"})])])]),e._v(" "),s("div",{staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},[s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sun")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Mon")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Tue")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Wed")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Thr")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Fri")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sat")))])]),e._v(" "),e._l(e.calendar,(function(t,r){return s("div",{key:r,staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},e._l(e.daysOfWeek,(function(r,i){return s("div",{key:i,staticClass:"h-8 flex justify-center items-center text-sm"},[e._l(t,(function(t,i){return[t.dayOfWeek===r?s("div",{key:i,staticClass:"h-full w-full flex items-center justify-center cursor-pointer",class:t.date.format("DD")===e.currentDay.format("DD")?"bg-blue-400 text-white border border-blue-500":"hover:bg-gray-100 border border-gray-200",on:{click:function(s){return e.selectDate(t.date)}}},[e._v("\n "+e._s(t.date.format("DD"))+"\n ")]):e._e()]}))],2)})),0)}))],2),e._v(" "),s("div")])]):e._e()])}),[],!1,null,null,null).exports},3968:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const a=(0,s(1900).Z)(n,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,r){return s("div",{key:r,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(s){return e.inputValue(t)}}},[void 0!==t.value?s("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?s("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},9576:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});var r=s(162),i=s(8603),n=s(7389);const a={name:"ns-media",props:["popup"],components:{VueUpload:s(2948)},data:function(){return{pages:[{label:(0,n.__)("Upload"),name:"upload",selected:!1},{label:(0,n.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return r.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:i.Z,__:n.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return r.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){r.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){r.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,r.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(s,r){r!==t.response.data.indexOf(e)&&(s.selected=!1)})),e.selected=!e.selected}}};const o=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[s("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[s("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),s("ul",e._l(e.pages,(function(t,r){return s("li",{key:r,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(s){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?s("div",{staticClass:"content w-full overflow-hidden flex"},[s("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[s("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[s("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),s("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[s("ul",e._l(e.files,(function(t,r){return s("li",{key:r,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[s("span",[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?s("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?s("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[s("div"),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),s("div",{staticClass:"flex flex-auto overflow-hidden"},[s("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[s("div",{staticClass:"flex flex-auto"},[s("div",{staticClass:"p-2 overflow-x-auto"},[s("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,r){return s("div",{key:r},[s("div",{staticClass:"p-2"},[s("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(s){return e.selectResource(t)}}},[s("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?s("div",{staticClass:"flex flex-auto items-center justify-center"},[s("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?s("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[s("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[s("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),s("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),s("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),s("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),s("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),s("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[s("div",{staticClass:"flex -mx-2 flex-shrink-0"},[s("div",{staticClass:"px-2 flex-shrink-0 flex"},[s("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?s("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[s("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?s("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[s("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?s("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[s("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),s("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[s("div",{staticClass:"px-2"},[s("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[s("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),s("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?s("div",{staticClass:"px-2"},[s("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},2329:(e,t,s)=>{"use strict";s.d(t,{Z:()=>i});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(void 0!==e.$popupParams.onAction&&e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){void 0!==this.$popupParams.onAction&&this.$popupParams.onAction(e),this.$popup.close()}}};const i=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-6/7-screen md:w-4/7-screen lg:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[e.title?s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]):e._e(),e._v(" "),s("p",{staticClass:"py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700 justify-end items-center p-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))])],1)])}),[],!1,null,null,null).exports},419:(e,t,s)=>{"use strict";s.d(t,{Z:()=>i});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const i=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[s("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports},1957:(e,t,s)=>{"use strict";s.d(t,{Z:()=>i});const r={name:"ns-pos-loading-popup"};const i=(0,s(1900).Z)(r,(function(){var e=this.$createElement;return(this._self._c||e)("ns-spinner")}),[],!1,null,null,null).exports},7096:(e,t,s)=>{"use strict";s.d(t,{Z:()=>l});var r=s(162),i=s(7389);function n(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s{"use strict";s.d(t,{Z:()=>i});const r={data:function(){return{title:"",message:"",input:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.input=this.$popupParams.input||"",this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.reject(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e?this.input:e),this.$popup.close()},reject:function(e){this.$popupParams.reject(e),this.$popup.close()}}};const i=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-5/7-screen md:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-2"},[s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"w-full md:mx-auto md:w-2/3 py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"p-2"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.input,expression:"input"}],staticClass:"text-gray-700 w-full border-2 p-2 border-blue-400",attrs:{name:"",id:"",cols:"30",rows:"10"},domProps:{value:e.input},on:{input:function(t){t.target.composing||(e.input=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.reject(!1)}}},[e._v(e._s(e.__("Cancel")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=1683,e(e.s=t);var t}));e.O()}]); +(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[219],{7948:(e,t,s)=>{"use strict";var r=s(538),i=s(4364),n=(s(824),s(7266)),a=s(162),o=s(7389);function l(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function c(e){for(var t=1;t=0)&&"hidden"!==e.type})).length>0})).length>0)return a.kX.error(this.$slots["error-no-valid-rules"]?this.$slots["error-no-valid-rules"]:(0,o.__)("No valid run were provided.")).subscribe();if(this.formValidation.validateForm(this.form).length>0)return a.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:(0,o.__)("Unable to proceed, the form is invalid."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();if(this.formValidation.disableForm(this.form),void 0===this.submitUrl)return a.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:(0,o.__)("Unable to proceed, no valid submit URL is defined."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();var t=c(c({},this.formValidation.extractForm(this.form)),{},{rules:this.form.rules.map((function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}))});a.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,t).subscribe((function(t){if("success"===t.status)return document.location=e.returnUrl;e.formValidation.enableForm(e.form)}),(function(t){e.formValidation.triggerError(e.form,t.response.data),e.formValidation.enableForm(e.form),a.kX.error(t.data.message||(0,o.__)("An unexpected error has occured"),void 0,{duration:5e3}).subscribe()}))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;a.ih.get("".concat(this.src)).subscribe((function(t){e.form=e.parseForm(t.form)}))},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var s in e.tabs)0===t&&(e.tabs[s].active=!0),e.tabs[s].active=void 0!==e.tabs[s].active&&e.tabs[s].active,e.tabs[s].fields=this.formValidation.createFields(e.tabs[s].fields),t++;return e},getRuleForm:function(){return JSON.parse(JSON.stringify(this.form.ruleForm))},addRule:function(){this.form.rules.push(this.getRuleForm())},removeRule:function(e){this.form.rules.splice(e,1)}}};var f=s(1900);const p=(0,f.Z)(u,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"form flex-auto flex flex-col",attrs:{id:"crud-form"}},[0===Object.values(e.form).length?s("div",{staticClass:"flex items-center justify-center flex-auto"},[s("ns-spinner")],1):e._e(),e._v(" "),Object.values(e.form).length>0?[s("div",{staticClass:"flex flex-col"},[s("div",{staticClass:"flex justify-between items-center"},[s("label",{staticClass:"font-bold my-2 text-gray-700",attrs:{for:"title"}},[e._t("title",(function(){return[e._v(e._s(e.__("No title Provided")))]}))],2),e._v(" "),s("div",{staticClass:"text-sm my-2 text-gray-700",attrs:{for:"title"}},[e.returnUrl?s("a",{staticClass:"rounded-full border border-gray-400 hover:bg-red-600 hover:text-white bg-white px-2 py-1",attrs:{href:e.returnUrl}},[e._v("Return")]):e._e()])]),e._v(" "),s("div",{staticClass:"flex border-2 rounded overflow-hidden",class:e.form.main.disabled?"border-gray-500":e.form.main.errors.length>0?"border-red-600":"border-blue-500"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.form.main.value,expression:"form.main.value"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",class:e.form.main.disabled?"bg-gray-400":"",attrs:{disabled:e.form.main.disabled,type:"text"},domProps:{value:e.form.main.value},on:{blur:function(t){return e.formValidation.checkField(e.form.main)},change:function(t){return e.formValidation.checkField(e.form.main)},input:function(t){t.target.composing||e.$set(e.form.main,"value",t.target.value)}}}),e._v(" "),s("button",{staticClass:"outline-none px-4 h-10 text-white border-l border-gray-400",class:e.form.main.disabled?"bg-gray-500":e.form.main.errors.length>0?"bg-red-500":"bg-blue-500",attrs:{disabled:e.form.main.disabled},on:{click:function(t){return e.submit()}}},[e._t("save",(function(){return[e._v(e._s(e.__("Save")))]}))],2)]),e._v(" "),e.form.main.description&&0===e.form.main.errors.length?s("p",{staticClass:"text-xs text-gray-600 py-1"},[e._v(e._s(e.form.main.description))]):e._e(),e._v(" "),e._l(e.form.main.errors,(function(t,r){return s("p",{key:r,staticClass:"text-xs py-1 text-red-500"},[s("span",[e._t("error-required",(function(){return[e._v(e._s(t.identifier))]}))],2)])}))],2),e._v(" "),s("div",{staticClass:"flex -mx-4 mt-4",attrs:{id:"points-wrapper"}},[s("div",{staticClass:"w-full md:w-1/3 lg:1/4 px-4"},[s("div",{staticClass:"bg-white rounded shadow"},[s("div",{staticClass:"header border-b border-gray-200 p-2"},[e._v(e._s(e.__("General")))]),e._v(" "),s("div",{staticClass:"body p-2"},e._l(e.form.tabs.general.fields,(function(e,t){return s("ns-field",{key:t,staticClass:"mb-2",attrs:{field:e}})})),1)]),e._v(" "),s("div",{staticClass:"rounded bg-gray-100 border border-gray-400 p-2 flex justify-between items-center my-3"},[e._t("add",(function(){return[s("span",{staticClass:"text-gray-700"},[e._v(e._s(e.__("Add Rule")))])]})),e._v(" "),s("button",{staticClass:"rounded bg-blue-500 text-white font-semibold flex items-center justify-center h-10 w-10",on:{click:function(t){return e.addRule()}}},[s("i",{staticClass:"las la-plus"})])],2)]),e._v(" "),s("div",{staticClass:"w-full md:w-2/3 lg:3/4 px-4 -m-3 flex flex-wrap items-start justify-start"},e._l(e.form.rules,(function(t,r){return s("div",{key:r,staticClass:"w-full md:w-1/2 p-3"},[s("div",{staticClass:"rounded shadow bg-white flex-auto"},[s("div",{staticClass:"body p-2"},e._l(t,(function(e,t){return s("ns-field",{key:t,staticClass:"mb-2",attrs:{field:e}})})),1),e._v(" "),s("div",{staticClass:"header border-t border-gray-200 p-2 flex justify-end"},[s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.removeRule(r)}}},[s("i",{staticClass:"las la-times"})])],1)])])})),0)])]:e._e()],2)}),[],!1,null,null,null).exports;function m(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function h(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const v={name:"ns-create-coupons",mounted:function(){this.loadForm()},computed:{validTabs:function(){if(this.form){var e=[];for(var t in this.form.tabs)["selected_products","selected_categories"].includes(t)&&e.push(this.form.tabs[t]);return e}return[]},activeValidTab:function(){return this.validTabs.filter((function(e){return e.active}))[0]},generalTab:function(){var e=[];for(var t in this.form.tabs)["general"].includes(t)&&e.push(this.form.tabs[t]);return e}},data:function(){return{formValidation:new n.Z,form:{},nsSnackBar:a.kX,nsHttpClient:a.ih,options:new Array(40).fill("").map((function(e,t){return{label:"Foo"+t,value:"bar"+t}}))}},props:["submit-method","submit-url","return-url","src","rules"],methods:{setTabActive:function(e){this.validTabs.forEach((function(e){return e.active=!1})),e.active=!0},submit:function(){var e=this;if(this.formValidation.validateForm(this.form).length>0)return a.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe();if(void 0===this.submitUrl)return a.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe();this.formValidation.disableForm(this.form);var t=function(e){for(var t=1;t=0&&(this.options[t].selected=!this.options[t].selected)},removeOption:function(e){var t=e.option;e.index;t.selected=!1},getRuleForm:function(){return this.form.ruleForm},addRule:function(){this.form.rules.push(this.getRuleForm())},removeRule:function(e){this.form.rules.splice(e,1)}}};const b=(0,f.Z)(v,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"form flex-auto flex flex-col",attrs:{id:"crud-form"}},[0===Object.values(e.form).length?s("div",{staticClass:"flex items-center justify-center flex-auto"},[s("ns-spinner")],1):e._e(),e._v(" "),Object.values(e.form).length>0?[s("div",{staticClass:"flex flex-col"},[s("div",{staticClass:"flex justify-between items-center"},[s("label",{staticClass:"font-bold my-2 text-gray-700",attrs:{for:"title"}},[e._t("title",(function(){return[e._v("No title Provided")]}))],2),e._v(" "),s("div",{staticClass:"text-sm my-2 text-gray-700",attrs:{for:"title"}},[e.returnUrl?s("a",{staticClass:"rounded-full border border-gray-400 hover:bg-red-600 hover:text-white bg-white px-2 py-1",attrs:{href:e.returnUrl}},[e._v("Return")]):e._e()])]),e._v(" "),s("div",{staticClass:"flex border-2 rounded overflow-hidden",class:e.form.main.disabled?"border-gray-500":e.form.main.errors.length>0?"border-red-600":"border-blue-500"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.form.main.value,expression:"form.main.value"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",class:e.form.main.disabled?"bg-gray-400":"",attrs:{disabled:e.form.main.disabled,type:"text"},domProps:{value:e.form.main.value},on:{blur:function(t){return e.formValidation.checkField(e.form.main)},change:function(t){return e.formValidation.checkField(e.form.main)},input:function(t){t.target.composing||e.$set(e.form.main,"value",t.target.value)}}}),e._v(" "),s("button",{staticClass:"outline-none px-4 h-10 text-white border-l border-gray-400",class:e.form.main.disabled?"bg-gray-500":e.form.main.errors.length>0?"bg-red-500":"bg-blue-500",attrs:{disabled:e.form.main.disabled},on:{click:function(t){return e.submit()}}},[e._t("save",(function(){return[e._v("Save")]}))],2)]),e._v(" "),e.form.main.description&&0===e.form.main.errors.length?s("p",{staticClass:"text-xs text-gray-600 py-1"},[e._v(e._s(e.form.main.description))]):e._e(),e._v(" "),e._l(e.form.main.errors,(function(t,r){return s("p",{key:r,staticClass:"text-xs py-1 text-red-500"},[s("span",[e._t("error-required",(function(){return[e._v(e._s(t.identifier))]}))],2)])}))],2),e._v(" "),s("div",{staticClass:"-mx-4 flex flex-wrap mt-4",attrs:{id:"form-container"}},[s("div",{staticClass:"px-4 w-full md:w-1/2"},e._l(e.generalTab,(function(t,r){return s("div",{key:r,staticClass:"rounded bg-white shadow p-2"},e._l(t.fields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1)})),0),e._v(" "),s("div",{staticClass:"px-4 w-full md:w-1/2"},[s("div",{attrs:{id:"tabbed-card"}},[s("div",{staticClass:"flex flex-wrap",attrs:{id:"card-header"}},e._l(e.validTabs,(function(t,r){return s("div",{key:r,staticClass:"cursor-pointer px-4 py-2 rounded-tl-lg rounded-tr-lg",class:t.active?"bg-white":"bg-gray-100",on:{click:function(s){return e.setTabActive(t)}}},[e._v("\n "+e._s(t.label)+"\n ")])})),0),e._v(" "),s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow p-2"},e._l(e.activeValidTab.fields,(function(e,t){return s("div",{key:t,staticClass:"flex flex-col"},[s("ns-field",{attrs:{field:e}})],1)})),0)])])])]:e._e()],2)}),[],!1,null,null,null).exports;const _={name:"ns-settings",props:["url"],data:function(){return{validation:new n.Z,form:{},test:""}},computed:{formDefined:function(){return Object.values(this.form).length>0},activeTab:function(){for(var e in this.form.tabs)if(!0===this.form.tabs[e].active)return this.form.tabs[e]}},mounted:function(){this.loadSettingsForm()},methods:{__:o.__,loadComponent:function(e){return nsExtraComponents[e]},submitForm:function(){var e=this;if(0===this.validation.validateForm(this.form).length)return this.validation.disableForm(this.form),a.ih.post(this.url,this.validation.extractForm(this.form)).subscribe((function(t){e.validation.enableForm(e.form),e.loadSettingsForm(),t.data&&t.data.results&&t.data.results.forEach((function(e){"failed"===e.status?a.kX.error(e.message).subscribe():a.kX.success(e.message).subscribe()})),a.kq.doAction("ns-settings-saved",{result:t,instance:e}),a.kX.success(t.message).subscribe()}),(function(t){e.validation.enableForm(e.form),e.validation.triggerFieldsErrors(e.form,t),a.kq.doAction("ns-settings-failed",{error:t,instance:e}),a.kX.error(t.message||(0,o.__)("Unable to proceed the form is not valid.")).subscribe()}));a.kX.error(this.$slots["error-form-invalid"][0].text||(0,o.__)("Unable to proceed the form is not valid.")).subscribe()},setActive:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;e.active=!0,a.kq.doAction("ns-settings-change-tab",{tab:e,instance:this})},loadSettingsForm:function(){var e=this;a.ih.get(this.url).subscribe((function(t){var s=0;Object.values(t.tabs).filter((function(e){return e.active})).length;for(var r in t.tabs)e.formDefined?t.tabs[r].active=e.form.tabs[r].active:(t.tabs[r].active=!1,0===s&&(t.tabs[r].active=!0)),s++;e.form=e.validation.createForm(t),a.kq.doAction("ns-settings-loaded",e),a.kq.doAction("ns-settings-change-tab",{tab:e.activeTab,instance:e})}))}}};const g=(0,f.Z)(_,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.formDefined?s("div",{attrs:{id:"tabbed-card"}},[s("div",{staticClass:"flex flex-wrap",attrs:{id:"card-header"}},e._l(e.form.tabs,(function(t,r){return s("div",{key:r,staticClass:"text-gray-700 cursor-pointer flex items-center px-4 py-2 rounded-tl-lg rounded-tr-lg",class:t.active?"bg-white":"bg-gray-300",on:{click:function(s){return e.setActive(t)}}},[s("span",[e._v(e._s(t.label))]),e._v(" "),t.errors.length>0?s("span",{staticClass:"ml-2 rounded-full bg-red-400 text-white text-sm h-6 w-6 flex items-center justify-center"},[e._v(e._s(t.errors.length))]):e._e()])})),0),e._v(" "),s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow"},[s("div",{staticClass:"-mx-4 flex flex-wrap p-2"},[e.activeTab.fields?e._l(e.activeTab.fields,(function(e,t){return s("div",{key:t,staticClass:"w-full px-4 md:w-1/2 lg:w-1/3"},[s("div",{staticClass:"flex flex-col my-2"},[s("ns-field",{attrs:{field:e}})],1)])})):e._e(),e._v(" "),e.activeTab.component?s("div",{staticClass:"w-full px-4"},[s(e.loadComponent(e.activeTab.component),{tag:"component"})],1):e._e()],2),e._v(" "),e.activeTab.fields?s("div",{staticClass:"border-t border-gray-400 p-2 flex justify-end"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.submitForm()}}},[e._t("submit-button",(function(){return[e._v(e._s(e.__("Save Settings")))]}))],2)],1):e._e()])]):e._e()}),[],!1,null,null,null).exports;const x={name:"ns-reset",props:["url"],methods:{__:o.__,submit:function(){if(!this.validation.validateFields(this.fields))return this.$forceUpdate(),a.kX.error(this.$slots["error-form-invalid"]?this.$slots["error-form-invalid"][0].text:"Invalid Form").subscribe();var e=this.validation.getValue(this.fields);confirm(this.$slots["confirm-message"]?this.$slots["confirm-message"][0].text:(0,o.__)("Would you like to proceed ?"))&&a.ih.post("/api/nexopos/v4/reset",e).subscribe((function(e){a.kX.success(e.message).subscribe()}),(function(e){a.kX.error(e.message).subscribe()}))}},data:function(){return{validation:new n.Z,fields:[{label:"Choose Option",name:"mode",description:(0,o.__)("Will apply various reset method on the system."),type:"select",options:[{label:(0,o.__)("Wipe Everything"),value:"wipe_all"},{label:(0,o.__)("Wipe + Grocery Demo"),value:"wipe_plus_grocery"}],validation:"required"}]}}};const y=(0,f.Z)(x,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{attrs:{id:"reset-app"}},[e._m(0),e._v(" "),s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow"},[s("div",{staticClass:"-mx-4 flex flex-wrap p-2"},e._l(e.fields,(function(e,t){return s("div",{key:t,staticClass:"px-4"},[s("ns-field",{attrs:{field:e}})],1)})),0),e._v(" "),s("div",{staticClass:"card-body border-t border-gray-400 p-2 flex"},[s("div",[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.submit()}}},[e._v(e._s(e.__("Proceed")))])],1)])])])}),[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-wrap",attrs:{id:"card-header"}},[s("div",{staticClass:"text-gray-700 bg-white cursor-pointer px-4 py-2 rounded-tl-lg rounded-tr-lg"},[e._v("\n Reset\n ")])])}],!1,null,null,null).exports;var w=s(7757),C=s.n(w),k=s(9127);function j(e,t,s,r,i,n,a){try{var o=e[n](a),l=o.value}catch(e){return void s(e)}o.done?t(l):Promise.resolve(l).then(r,i)}function $(e){return function(){var t=this,s=arguments;return new Promise((function(r,i){var n=e.apply(t,s);function a(e){j(n,r,i,a,o,"next",e)}function o(e){j(n,r,i,a,o,"throw",e)}a(void 0)}))}}var S;const P={name:"ns-modules",props:["url","upload"],data:function(){return{modules:[],total_enabled:0,total_disabled:0}},mounted:function(){this.loadModules().subscribe()},computed:{noModules:function(){return 0===Object.values(this.modules).length},noModuleMessage:function(){return this.$slots["no-modules-message"]?this.$slots["no-modules-message"][0].text:(0,o.__)("No module has been updated yet.")}},methods:{__:o.__,download:function(e){document.location="/dashboard/modules/download/"+e.namespace},performMigration:(S=$(C().mark((function e(t,s){var r,i,n,o;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=function(){var e=$(C().mark((function e(s,r){return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,i){a.ih.post("/api/nexopos/v4/modules/".concat(t.namespace,"/migrate"),{file:s,version:r}).subscribe((function(t){e(!0)}),(function(e){return a.kX.error(e.message,null,{duration:4e3}).subscribe()}))})));case 1:case"end":return e.stop()}}),e)})));return function(t,s){return e.apply(this,arguments)}}(),!(s=s||t.migrations)){e.next=19;break}t.migrating=!0,e.t0=C().keys(s);case 5:if((e.t1=e.t0()).done){e.next=17;break}i=e.t1.value,n=0;case 8:if(!(n0,name:e.namespace,label:null}})),t}))}))}}};const F=(0,f.Z)(T,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{attrs:{id:"permission-wrapper"}},[s("div",{staticClass:"rounded shadow bg-white flex"},[s("div",{staticClass:"w- bg-gray-800 flex-shrink-0",attrs:{id:"permissions"}},[s("div",{staticClass:"py-4 px-2 border-b border-gray-700 text-gray-100 flex justify-between items-center"},[e.toggled?e._e():s("span",[e._v(e._s(e.__("Permissions")))]),e._v(" "),s("div",[e.toggled?e._e():s("button",{staticClass:"rounded-full bg-white text-gray-700 h-6 w-6 flex items-center justify-center",on:{click:function(t){e.toggled=!e.toggled}}},[s("i",{staticClass:"las la-expand"})]),e._v(" "),e.toggled?s("button",{staticClass:"rounded-full bg-white text-gray-700 h-6 w-6 flex items-center justify-center",on:{click:function(t){e.toggled=!e.toggled}}},[s("i",{staticClass:"las la-compress"})]):e._e()])]),e._v(" "),e._l(e.permissions,(function(t){return s("div",{key:t.id,staticClass:"p-2 border-b border-gray-700 text-gray-100",class:e.toggled?"w-24":"w-54"},[s("a",{attrs:{href:"javascript:void(0)",title:t.namespace}},[e.toggled?e._e():s("span",[e._v(e._s(t.name))]),e._v(" "),e.toggled?s("span",[e._v(e._s(e._f("truncate")(t.name,5)))]):e._e()])])}))],2),e._v(" "),s("div",{staticClass:"flex flex-auto overflow-hidden"},[s("div",{staticClass:"overflow-y-auto"},[s("div",{staticClass:"text-gray-700 flex"},e._l(e.roles,(function(t){return s("div",{key:t.id,staticClass:"py-4 px-2 w-56 items-center border-b justify-center flex role flex-shrink-0 border-r border-gray-200"},[s("p",{staticClass:"mx-1"},[s("span",[e._v(e._s(t.name))])]),e._v(" "),s("span",{staticClass:"mx-1"},[s("ns-checkbox",{attrs:{field:t.field},on:{change:function(s){return e.selectAllPermissions(t)}}})],1)])})),0),e._v(" "),e._l(e.permissions,(function(t){return s("div",{key:t.id,staticClass:"permission flex"},e._l(e.roles,(function(r){return s("div",{key:r.id,staticClass:"border-b border-gray-200 w-56 flex-shrink-0 p-2 flex items-center justify-center border-r"},[s("ns-checkbox",{attrs:{field:r.fields[t.namespace]},on:{change:function(s){return e.submitPermissions(r,r.fields[t.namespace])}}})],1)})),0)}))],2)])])])}),[],!1,null,null,null).exports;var A=s(419);function V(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function q(e){for(var t=1;t0?t[0]:0},removeUnitPriceGroup:function(e,t){var s=this,r=e.filter((function(e){return"id"===e.name&&void 0!==e.value}));Popup.show(A.Z,{title:(0,o.__)("Confirm Your Action"),message:(0,o.__)("Would you like to delete this group ?"),onAction:function(i){if(i)if(r.length>0)s.confirmUnitQuantityDeletion({group_fields:e,group:t});else{var n=t.indexOf(e);t.splice(n,1)}}})},confirmUnitQuantityDeletion:function(e){var t=e.group_fields,s=e.group;Popup.show(A.Z,{title:(0,o.__)("Your Attention Is Required"),size:"w-3/4-screen h-2/5-screen",message:(0,o.__)("The current unit you're about to delete has a reference on the database and it might have already procured stock. Deleting that reference will remove procured stock. Would you proceed ?"),onAction:function(e){if(e){var r=t.filter((function(e){return"id"===e.name})).map((function(e){return e.value}))[0];a.ih.delete("/api/nexopos/v4/products/units/quantity/".concat(r)).subscribe((function(e){var r=s.indexOf(t);s.splice(r,1),a.kX.success(e.message).subscribe()}),(function(e){nsSnackbar.error(e.message).subscribe()}))}}})},addUnitGroup:function(e){if(0===e.options.length)return a.kX.error((0,o.__)("Please select at least one unit group before you proceed.")).subscribe();e.options.length>e.groups.length?e.groups.push(JSON.parse(JSON.stringify(e.fields))):a.kX.error((0,o.__)("There shoulnd't be more option than there are units.")).subscribe()},loadAvailableUnits:function(e){var t=this;a.ih.get(this.unitsUrl.replace("{id}",e.fields.filter((function(e){return"unit_group"===e.name}))[0].value)).subscribe((function(s){e.fields.forEach((function(e){"group"===e.type&&(e.options=s,e.fields.forEach((function(e){"unit_id"===e.name&&(console.log(e),e.options=s.map((function(e){return{label:e.name,value:e.id}})))})))})),t.$forceUpdate()}))},loadOptionsFor:function(e,t,s){var r=this;a.ih.get(this.unitsUrl.replace("{id}",t)).subscribe((function(t){r.form.variations[s].tabs.units.fields.forEach((function(s){s.name===e&&(s.options=t.map((function(e){return{label:e.name,value:e.id,selected:!1}})))})),r.$forceUpdate()}))},submit:function(){var e=this;if(this.formValidation.validateFields([this.form.main]),this.form.variations.map((function(t){return e.formValidation.validateForm(t)})).filter((function(e){return e.length>0})).length>0||Object.values(this.form.main.errors).length>0)return a.kX.error(this.$slots["error-form-invalid"]?this.$slots["error-form-invalid"][0].text:(0,o.__)("Unable to proceed the form is not valid.")).subscribe();var t=this.form.variations.map((function(e,t){return e.tabs.images.groups.filter((function(e){return e.filter((function(e){return"primary"===e.name&&1===e.value})).length>0}))}));if(t[0]&&t[0].length>1)return a.kX.error(this.$slots["error-multiple-primary"]?this.$slots["error-multiple-primary"][0].text:(0,o.__)("Unable to proceed, more than one product is set as primary")).subscribe();var s=[];if(this.form.variations.map((function(t,r){return t.tabs.units.fields.filter((function(e){return"group"===e.type})).forEach((function(t){new Object;t.groups.forEach((function(t){s.push(e.formValidation.validateFields(t))}))}))})),0===s.length)return a.kX.error(this.$slots["error-no-units-groups"]?this.$slots["error-no-units-groups"][0].text:(0,o.__)("Either Selling or Purchase unit isn't defined. Unable to proceed.")).subscribe();if(s.filter((function(e){return!1===e})).length>0)return this.$forceUpdate(),a.kX.error(this.$slots["error-invalid-unit-group"]?this.$slots["error-invalid-unit-group"][0].text:(0,o.__)("Unable to proceed as one of the unit group field is invalid")).subscribe();var r=q(q({},this.formValidation.extractForm(this.form)),{},{variations:this.form.variations.map((function(t,s){var r=e.formValidation.extractForm(t);0===s&&(r.$primary=!0),r.images=t.tabs.images.groups.map((function(t){return e.formValidation.extractFields(t)}));var i=new Object;return t.tabs.units.fields.filter((function(e){return"group"===e.type})).forEach((function(t){i[t.name]=t.groups.map((function(t){return e.formValidation.extractFields(t)}))})),r.units=q(q({},r.units),i),r}))});this.formValidation.disableForm(this.form),a.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,r).subscribe((function(t){if("success"===t.status){if(!1!==e.returnUrl)return document.location=e.returnUrl;e.$emit("save")}e.formValidation.enableForm(e.form)}),(function(t){a.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t.response.data),e.formValidation.enableForm(e.form)}))},deleteVariation:function(e){confirm(this.$slots["delete-variation"]?this.$slots["delete-variation"][0].text:(0,o.__)("Would you like to delete this variation ?"))&&this.form.variations.splice(e,1)},setTabActive:function(e,t){for(var s in t)s!==e&&(t[s].active=!1);t[e].active=!0,"units"===e&&this.loadAvailableUnits(t[e])},duplicate:function(e){this.form.variations.push(Object.assign({},e))},newVariation:function(){this.form.variations.push(this.defaultVariation)},getActiveTab:function(e){for(var t in e)if(e[t].active)return e[t];return!1},getActiveTabKey:function(e){for(var t in e)if(e[t].active)return t;return!1},parseForm:function(e){var t=this;return e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0],e.variations.forEach((function(e,s){var r=0;for(var i in e.tabs)0===r&&void 0===e.tabs[i].active?(e.tabs[i].active=!0,t._sampleVariation=Object.assign({},e),e.tabs[i].fields&&(e.tabs[i].fields=t.formValidation.createFields(e.tabs[i].fields.filter((function(e){return"name"!==e.name}))))):e.tabs[i].fields&&(e.tabs[i].fields=t.formValidation.createFields(e.tabs[i].fields)),e.tabs[i].active=void 0!==e.tabs[i].active&&e.tabs[i].active,r++})),e},loadForm:function(){var e=this;a.ih.get("".concat(this.src)).subscribe((function(t){e.form=e.parseForm(t.form)}))},addImage:function(e){e.tabs.images.groups.push(this.formValidation.createFields(JSON.parse(JSON.stringify(e.tabs.images.fields))))}},mounted:function(){this.loadForm()},name:"ns-manage-products"};const U=(0,f.Z)(M,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"form flex-auto",attrs:{id:"crud-form"}},[0===Object.values(e.form).length?s("div",{staticClass:"flex items-center h-full justify-center flex-auto"},[s("ns-spinner")],1):e._e(),e._v(" "),Object.values(e.form).length>0?[s("div",{staticClass:"flex flex-col"},[s("div",{staticClass:"flex justify-between items-center"},[s("label",{staticClass:"font-bold my-2 text-gray-700",attrs:{for:"title"}},[e._v(e._s(e.form.main.label))]),e._v(" "),s("div",{staticClass:"text-sm my-2 text-gray-700",attrs:{for:"title"}},[e.returnUrl?s("a",{staticClass:"rounded-full border border-gray-400 hover:bg-red-600 hover:text-white bg-white px-2 py-1",attrs:{href:e.returnUrl}},[e._v("Return")]):e._e()])]),e._v(" "),s("div",{staticClass:"flex border-2 rounded overflow-hidden",class:e.form.main.disabled?"border-gray-500":e.form.main.errors.length>0?"border-red-600":"border-blue-500"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.form.main.value,expression:"form.main.value"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",class:e.form.main.disabled?"bg-gray-400":"",attrs:{disabled:e.form.main.disabled,type:"text"},domProps:{value:e.form.main.value},on:{blur:function(t){return e.formValidation.checkField(e.form.main)},change:function(t){return e.formValidation.checkField(e.form.main)},input:function(t){t.target.composing||e.$set(e.form.main,"value",t.target.value)}}}),e._v(" "),s("button",{staticClass:"outline-none px-4 h-10 text-white border-l border-gray-400",class:e.form.main.disabled?"bg-gray-500":e.form.main.errors.length>0?"bg-red-500":"bg-blue-500",attrs:{disabled:e.form.main.disabled},on:{click:function(t){return e.submit()}}},[e._t("save",(function(){return[e._v(e._s(e.__("Save")))]}))],2)]),e._v(" "),e.form.main.description&&0===e.form.main.errors.length?s("p",{staticClass:"text-xs text-gray-600 py-1"},[e._v(e._s(e.form.main.description))]):e._e(),e._v(" "),e._l(e.form.main.errors,(function(t,r){return s("p",{key:r,staticClass:"text-xs py-1 text-red-500"},[s("span",[e._t("error-required",(function(){return[e._v(e._s(t.identifier))]}))],2)])}))],2),e._v(" "),s("div",{staticClass:"-mx-4 flex flex-wrap mt-4",attrs:{id:"form-container"}},[s("div",{staticClass:"px-4 w-full"},e._l(e.form.variations,(function(t,r){return s("div",{key:r,staticClass:"mb-8",attrs:{id:"tabbed-card"}},[s("div",{staticClass:"flex flex-wrap justify-between",attrs:{id:"card-header"}},[s("div",{staticClass:"flex flex-wrap"},e._l(t.tabs,(function(r,i){return s("div",{key:i,staticClass:"cursor-pointer text-gray-700 px-4 py-2 rounded-tl-lg rounded-tr-lg flex justify-between",class:r.active?"bg-white":"bg-gray-100",on:{click:function(s){return e.setTabActive(i,t.tabs)}}},[s("span",{staticClass:"block mr-2"},[e._v(e._s(r.label))]),e._v(" "),r.errors&&r.errors.length>0?s("span",{staticClass:"rounded-full bg-red-400 text-white h-6 w-6 flex font-semibold items-center justify-center"},[e._v(e._s(r.errors.length))]):e._e()])})),0),e._v(" "),s("div",{staticClass:"flex items-center justify-center -mx-1"})]),e._v(" "),s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow p-2"},[["images","units"].includes(e.getActiveTabKey(t.tabs))?e._e():s("div",{staticClass:"-mx-4 flex flex-wrap"},[e._l(e.getActiveTab(t.tabs).fields,(function(e,t){return[s("div",{key:t,staticClass:"flex flex-col px-4 w-full md:w-1/2 lg:w-1/3"},[s("ns-field",{attrs:{field:e}})],1)]}))],2),e._v(" "),"images"===e.getActiveTabKey(t.tabs)?s("div",{staticClass:"-mx-4 flex flex-wrap"},[s("div",{staticClass:"flex flex-col px-4 w-full md:w-1/2 lg:w-1/3"},[s("div",{staticClass:"rounded border flex bg-white justify-between p-2 items-center"},[s("span",[e._v(e._s(e.__("Add Images")))]),e._v(" "),s("button",{staticClass:"rounded-full border flex items-center justify-center w-8 h-8 bg-white hover:bg-blue-400 hover:text-white",on:{click:function(s){return e.addImage(t)}}},[s("i",{staticClass:"las la-plus-circle"})])])]),e._v(" "),e._l(e.getActiveTab(t.tabs).groups,(function(t,r){return s("div",{key:r,staticClass:"flex flex-col px-4 w-full md:w-1/2 lg:w-1/3 mb-4"},[s("div",{staticClass:"rounded border flex flex-col bg-white p-2"},e._l(t,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1)])}))],2):e._e(),e._v(" "),"units"===e.getActiveTabKey(t.tabs)?s("div",{staticClass:"-mx-4 flex flex-wrap"},[s("div",{staticClass:"px-4 w-full md:w-1/2 lg:w-1/3"},[s("ns-field",{attrs:{field:e.getActiveTab(t.tabs).fields[0]},on:{change:function(s){e.loadAvailableUnits(e.getActiveTab(t.tabs))}}}),e._v(" "),s("ns-field",{attrs:{field:e.getActiveTab(t.tabs).fields[1]},on:{change:function(s){e.loadAvailableUnits(e.getActiveTab(t.tabs))}}})],1),e._v(" "),e._l(e.getActiveTab(t.tabs).fields,(function(t,r){return["group"===t.type?s("div",{key:r,staticClass:"px-4 w-full lg:w-2/3"},[s("div",{staticClass:"mb-2"},[s("label",{staticClass:"font-medium text-gray-700"},[e._v(e._s(t.label))]),e._v(" "),s("p",{staticClass:"py-1 text-sm text-gray-600"},[e._v(e._s(t.description))])]),e._v(" "),s("div",{staticClass:"mb-2"},[s("div",{staticClass:"border-dashed border-2 border-gray-200 p-1 bg-gray-100 flex justify-between items-center text-gray-700 cursor-pointer rounded-lg",on:{click:function(s){return e.addUnitGroup(t)}}},[e._m(0,!0),e._v(" "),s("span",[e._v(e._s(e.__("New Group")))])])]),e._v(" "),s("div",{staticClass:"-mx-4 flex flex-wrap"},e._l(t.groups,(function(r,i){return s("div",{key:i,staticClass:"px-4 w-full md:w-1/2 mb-4"},[s("div",{staticClass:"shadow rounded overflow-hidden"},[s("div",{staticClass:"border-b text-sm bg-blue-400 text-white border-blue-300 p-2 flex justify-between"},[s("span",[e._v(e._s(e.__("Available Quantity")))]),e._v(" "),s("span",[e._v(e._s(e.getUnitQuantity(r)))])]),e._v(" "),s("div",{staticClass:"p-2 mb-2"},e._l(r,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1),e._v(" "),s("div",{staticClass:"p-1 text-red-800 hover:bg-red-200 border-t border-red-200 flex items-center justify-center cursor-pointer font-medium",on:{click:function(s){return e.removeUnitPriceGroup(r,t.groups)}}},[e._v("\n "+e._s(e.__("Delete"))+"\n ")])])])})),0)]):e._e()]}))],2):e._e()])])})),0)])]:e._e()],2)}),[function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"rounded-full border-2 border-gray-300 bg-white h-8 w-8 flex items-center justify-center"},[t("i",{staticClass:"las la-plus-circle"})])}],!1,null,null,null).exports;function R(e,t){for(var s=0;s0&&this.validTabs.filter((function(e){return e.active}))[0]}},data:function(){return{totalTaxValues:0,totalPurchasePrice:0,formValidation:new n.Z,form:{},nsSnackBar:a.kX,fields:[],searchResult:[],searchValue:"",debounceSearch:null,nsHttpClient:a.ih,taxes:[],validTabs:[{label:(0,o.__)("Details"),identifier:"details",active:!0},{label:(0,o.__)("Products"),identifier:"products",active:!1}],reloading:!1}},watch:{searchValue:function(e){var t=this;e&&(clearTimeout(this.debounceSearch),this.debounceSearch=setTimeout((function(){t.doSearch(e)}),500))}},components:{NsManageProducts:U},props:["submit-method","submit-url","return-url","src","rules"],methods:{__:o.__,computeTotal:function(){this.totalTaxValues=0,this.form.products.length>0&&(this.totalTaxValues=this.form.products.map((function(e){return e.procurement.tax_value})).reduce((function(e,t){return e+t}))),this.totalPurchasePrice=0,this.form.products.length>0&&(this.totalPurchasePrice=this.form.products.map((function(e){return parseFloat(e.procurement.total_purchase_price)})).reduce((function(e,t){return e+t})))},updateLine:function(e){var t=this.form.products[e],s=this.taxes.filter((function(e){return e.id===t.procurement.tax_group_id}));if(parseFloat(t.procurement.purchase_price_edit)>0&&parseFloat(t.procurement.quantity)>0){if(s.length>0){var r=s[0].taxes.map((function(e){return X.getTaxValue(t.procurement.tax_type,t.procurement.purchase_price_edit,parseFloat(e.rate))}));t.procurement.tax_value=r.reduce((function(e,t){return e+t})),"inclusive"===t.procurement.tax_type?(t.procurement.net_purchase_price=parseFloat(t.procurement.purchase_price_edit)-t.procurement.tax_value,t.procurement.gross_purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.purchase_price=parseFloat(t.procurement.gross_purchase_price)):(t.procurement.gross_purchase_price=parseFloat(t.procurement.purchase_price_edit)+t.procurement.tax_value,t.procurement.net_purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.purchase_price=parseFloat(t.procurement.gross_purchase_price))}else t.procurement.gross_purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.net_purchase_price=parseFloat(t.procurement.purchase_price_edit),t.procurement.tax_value=0;t.procurement.tax_value=t.procurement.tax_value*parseFloat(t.procurement.quantity),t.procurement.total_purchase_price=t.procurement.purchase_price*parseFloat(t.procurement.quantity)}this.computeTotal(),this.$forceUpdate()},switchTaxType:function(e,t){e.procurement.tax_type="inclusive"===e.procurement.tax_type?"exclusive":"inclusive",this.updateLine(t)},doSearch:function(e){var t=this;a.ih.post("/api/nexopos/v4/procurements/products/search-product",{search:e}).subscribe((function(e){1===e.length?t.addProductList(e[0]):t.searchResult=e}))},reloadEntities:function(){var e=this;this.reloading=!0,(0,E.D)([a.ih.get("/api/nexopos/v4/categories"),a.ih.get("/api/nexopos/v4/products"),a.ih.get(this.src),a.ih.get("/api/nexopos/v4/taxes/groups")]).subscribe((function(t){e.reloading=!1,e.categories=t[0],e.products=t[1],e.taxes=t[3],e.form.general&&t[2].tabs.general.fieds.forEach((function(t,s){t.value=e.form.tabs.general.fields[s].value||""})),e.form=Object.assign(JSON.parse(JSON.stringify(t[2])),e.form),e.form=e.formValidation.createForm(e.form),e.form.tabs&&e.form.tabs.general.fields.forEach((function(e,s){e.options&&(e.options=t[2].tabs.general.fields[s].options)})),0===e.form.products.length&&(e.form.products=e.form.products.map((function(e){return["gross_purchase_price","purchase_price_edit","tax_value","net_purchase_price","purchase_price","total_price","total_purchase_price","quantity","tax_group_id"].forEach((function(t){void 0===e[t]&&(e[t]=void 0===e[t]?0:e[t])})),e.$invalid=e.$invalid||!1,e.purchase_price_edit=e.purchase_price,{name:e.name,purchase_units:e.purchase_units,procurement:e,unit_quantities:e.unit_quantities||[]}}))),e.$forceUpdate()}))},setTabActive:function(e){this.validTabs.forEach((function(e){return e.active=!1})),this.$forceUpdate(),this.$nextTick().then((function(){e.active=!0}))},addProductList:function(e){if(void 0===e.unit_quantities)return a.kX.error((0,o.__)("Unable to add product which doesn't unit quantities defined.")).subscribe();e.procurement=new Object,e.procurement.gross_purchase_price=0,e.procurement.purchase_price_edit=0,e.procurement.tax_value=0,e.procurement.net_purchase_price=0,e.procurement.purchase_price=0,e.procurement.total_price=0,e.procurement.total_purchase_price=0,e.procurement.quantity=1,e.procurement.expiration_date=null,e.procurement.tax_group_id=0,e.procurement.tax_type="inclusive",e.procurement.unit_id=0,e.procurement.product_id=e.id,e.procurement.procurement_id=null,e.procurement.$invalid=!1,this.searchResult=[],this.searchValue="",this.form.products.push(e)},submit:function(){var e=this;if(0===this.form.products.length)return a.kX.error(this.$slots["error-no-products"]?this.$slots["error-no-products"][0].text:(0,o.__)("Unable to proceed, no product were provided."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();if(this.form.products.forEach((function(e){!parseFloat(e.procurement.quantity)>=1||0===e.procurement.unit_id?e.procurement.$invalid=!0:e.procurement.$invalid=!1})),this.form.products.filter((function(e){return e.procurement.$invalid})).length>0)return a.kX.error(this.$slots["error-invalid-products"]?this.$slots["error-invalid-products"][0].text:(0,o.__)("Unable to proceed, one or more product has incorrect values."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();if(this.formValidation.validateForm(this.form).length>0)return this.setTabActive(this.activeTab),a.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:(0,o.__)("Unable to proceed, the procurement form is not valid."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();if(void 0===this.submitUrl)return a.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:(0,o.__)("Unable to submit, no valid submit URL were provided."),this.$slots.okay?this.$slots.okay[0].text:(0,o.__)("OK")).subscribe();this.formValidation.disableForm(this.form);var t=I(I({},this.formValidation.extractForm(this.form)),{products:this.form.products.map((function(e){return e.procurement}))});a.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,t).subscribe((function(t){if("success"===t.status)return document.location=e.returnUrl;e.formValidation.enableForm(e.form)}),(function(t){a.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.enableForm(e.form),t.errors&&e.formValidation.triggerError(e.form,t.errors)}))},deleteProduct:function(e){this.form.products.splice(e,1),this.$forceUpdate()},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},setProductOptions:function(e){var t=this;new Promise((function(s,r){Popup.show(L,{product:t.form.products[e],resolve:s,reject:r})})).then((function(s){for(var r in s)t.form.products[e].procurement[r]=s[r];t.updateLine(e)}))}}};const B=(0,f.Z)(Y,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"form flex-auto flex flex-col",attrs:{id:"crud-form"}},[e.form.main?[s("div",{staticClass:"flex flex-col"},[s("div",{staticClass:"flex justify-between items-center"},[s("label",{staticClass:"font-bold my-2 text-gray-700",attrs:{for:"title"}},[e._t("title",(function(){return[e._v(e._s(e.__("No title is provided")))]}))],2),e._v(" "),s("div",{staticClass:"text-sm my-2 text-gray-700",attrs:{for:"title"}},[e.returnUrl?s("a",{staticClass:"rounded-full border border-gray-400 hover:bg-red-600 hover:text-white bg-white px-2 py-1",attrs:{href:e.returnUrl}},[e._v(e._s(e.__("Return")))]):e._e()])]),e._v(" "),s("div",{staticClass:"flex border-2 rounded overflow-hidden",class:e.form.main.disabled?"border-gray-500":e.form.main.errors.length>0?"border-red-600":"border-blue-500"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.form.main.value,expression:"form.main.value"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",class:e.form.main.disabled?"bg-gray-400":"",attrs:{disabled:e.form.main.disabled,type:"text"},domProps:{value:e.form.main.value},on:{blur:function(t){return e.formValidation.checkField(e.form.main)},change:function(t){return e.formValidation.checkField(e.form.main)},input:function(t){t.target.composing||e.$set(e.form.main,"value",t.target.value)}}}),e._v(" "),s("button",{staticClass:"outline-none px-4 h-10 text-white border-l border-gray-400",class:e.form.main.disabled?"bg-gray-500":e.form.main.errors.length>0?"bg-red-500":"bg-blue-500",attrs:{disabled:e.form.main.disabled},on:{click:function(t){return e.submit()}}},[e._t("save",(function(){return[e._v(e._s(e.__("Save")))]}))],2),e._v(" "),s("button",{staticClass:"bg-white text-gray-700 outline-none px-4 h-10 border-gray-400",on:{click:function(t){return e.reloadEntities()}}},[s("i",{staticClass:"las la-sync",class:e.reloading?"animate animate-spin":""})])]),e._v(" "),e.form.main.description&&0===e.form.main.errors.length?s("p",{staticClass:"text-xs text-gray-600 py-1"},[e._v(e._s(e.form.main.description))]):e._e(),e._v(" "),e._l(e.form.main.errors,(function(t,r){return s("p",{key:r,staticClass:"text-xs py-1 text-red-500"},[s("span",[e._t("error-required",(function(){return[e._v(e._s(t.identifier))]}))],2)])}))],2),e._v(" "),s("div",{staticClass:"-mx-4 flex flex-wrap mt-4",attrs:{id:"form-container"}},[s("div",{staticClass:"px-4 w-full"},[s("div",{attrs:{id:"tabbed-card"}},[s("div",{staticClass:"flex flex-wrap",attrs:{id:"card-header"}},e._l(e.validTabs,(function(t,r){return s("div",{key:r,staticClass:"cursor-pointer px-4 py-2 rounded-tl-lg rounded-tr-lg text-gray-700",class:t.active?"bg-white":"bg-gray-100",on:{click:function(s){return e.setTabActive(t)}}},[e._v("\n "+e._s(t.label)+"\n ")])})),0),e._v(" "),"details"===e.activeTab.identifier?s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow p-2"},[e.form.tabs?s("div",{staticClass:"-mx-4 flex flex-wrap"},e._l(e.form.tabs.general.fields,(function(e,t){return s("div",{key:t,staticClass:"flex px-4 w-full md:w-1/2 lg:w-1/3"},[s("ns-field",{attrs:{field:e}})],1)})),0):e._e()]):e._e(),e._v(" "),"products"===e.activeTab.identifier?s("div",{staticClass:"card-body bg-white rounded-br-lg rounded-bl-lg shadow p-2 "},[s("div",{staticClass:"mb-2"},[s("div",{staticClass:"border-blue-500 flex border-2 rounded overflow-hidden"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.searchValue,expression:"searchValue"}],staticClass:"flex-auto text-gray-700 outline-none h-10 px-2",attrs:{type:"text",placeholder:e.$slots["search-placeholder"]?e.$slots["search-placeholder"][0].text:"SKU, Barcode, Name"},domProps:{value:e.searchValue},on:{input:function(t){t.target.composing||(e.searchValue=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"h-0"},[s("div",{staticClass:"shadow bg-white relative z-10"},e._l(e.searchResult,(function(t,r){return s("div",{key:r,staticClass:"cursor-pointer border border-b border-gray-300 p-2 text-gray-700",on:{click:function(s){return e.addProductList(t)}}},[s("span",{staticClass:"block font-bold text-gray-700"},[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"block text-sm text-gray-600"},[e._v(e._s(e.__("SKU"))+" : "+e._s(t.sku))]),e._v(" "),s("span",{staticClass:"block text-sm text-gray-600"},[e._v(e._s(e.__("Barcode"))+" : "+e._s(t.barcode))])])})),0)])]),e._v(" "),s("div",{staticClass:"overflow-x-auto"},[s("table",{staticClass:"w-full"},[s("thead",[s("tr",e._l(e.form.columns,(function(t,r){return s("td",{key:r,staticClass:"text-gray-700 p-2 border border-gray-300 bg-gray-200",attrs:{width:"200"}},[e._v(e._s(t.label))])})),0)]),e._v(" "),s("tbody",[e._l(e.form.products,(function(t,r){return s("tr",{key:r,class:t.procurement.$invalid?"bg-red-200 border-2 border-red-500":"bg-gray-100"},[e._l(e.form.columns,(function(i,n){return["name"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(t.name))]),e._v(" "),s("div",{staticClass:"flex justify-between"},[s("div",{staticClass:"flex -mx-1 flex-col"},[s("div",{staticClass:"px-1"},[s("span",{staticClass:"text-xs text-red-500 cursor-pointer underline px-1",on:{click:function(t){return e.deleteProduct(r)}}},[e._v(e._s(e.__("Delete")))])])]),e._v(" "),s("div",{staticClass:"flex -mx-1 flex-col"},[s("div",{staticClass:"px-1"},[s("span",{staticClass:"text-xs text-red-500 cursor-pointer underline px-1",on:{click:function(t){return e.setProductOptions(r)}}},[e._v(e._s(e.__("Options")))])])])])]):e._e(),e._v(" "),"text"===i.type?s("td",{key:n,staticClass:"p-2 w-3 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.procurement[n],expression:"product.procurement[ key ]"}],staticClass:"w-24 border-2 p-2 border-blue-400 rounded",attrs:{type:"text"},domProps:{value:t.procurement[n]},on:{change:function(t){return e.updateLine(r)},input:function(s){s.target.composing||e.$set(t.procurement,n,s.target.value)}}})])]):e._e(),e._v(" "),"tax_group_id"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.procurement.tax_group_id,expression:"product.procurement.tax_group_id"}],staticClass:"rounded border-blue-500 border-2 p-2",on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t.procurement,"tax_group_id",s.target.multiple?r:r[0])},function(t){return e.updateLine(r)}]}},e._l(e.taxes,(function(t){return s("option",{key:t.id,domProps:{value:t.id}},[e._v(e._s(t.name))])})),0)])]):e._e(),e._v(" "),"custom_select"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.procurement[n],expression:"product.procurement[ key ]"}],staticClass:"rounded border-blue-500 border-2 p-2",on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t.procurement,n,s.target.multiple?r:r[0])},function(t){return e.updateLine(r)}]}},e._l(i.options,(function(t){return s("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0)])]):e._e(),e._v(" "),"currency"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start flex-col justify-end"},[s("span",{staticClass:"text-sm text-gray-600"},[e._v(e._s(e._f("currency")(t.procurement[n])))])])]):e._e(),e._v(" "),"unit_quantities"===i.type?s("td",{key:n,staticClass:"p-2 text-gray-600 border border-gray-300"},[s("div",{staticClass:"flex items-start"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.procurement.unit_id,expression:"product.procurement.unit_id"}],staticClass:"rounded border-blue-500 border-2 p-2 w-32",on:{change:function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t.procurement,"unit_id",s.target.multiple?r:r[0])}}},e._l(t.unit_quantities,(function(t){return s("option",{key:t.id,domProps:{value:t.unit.id}},[e._v(e._s(t.unit.name))])})),0)])]):e._e()]}))],2)})),e._v(" "),s("tr",{staticClass:"bg-gray-100"},[s("td",{staticClass:"p-2 text-gray-600 border border-gray-300",attrs:{colspan:Object.keys(e.form.columns).indexOf("tax_value")}}),e._v(" "),s("td",{staticClass:"p-2 text-gray-600 border border-gray-300"},[e._v(e._s(e._f("currency")(e.totalTaxValues)))]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600 border border-gray-300",attrs:{colspan:Object.keys(e.form.columns).indexOf("total_purchase_price")-(Object.keys(e.form.columns).indexOf("tax_value")+1)}}),e._v(" "),s("td",{staticClass:"p-2 text-gray-600 border border-gray-300"},[e._v(e._s(e._f("currency")(e.totalPurchasePrice)))])])],2)])])]):e._e()])])])]:e._e()],2)}),[],!1,null,null,null).exports,H={template:"#ns-procurement-invoice",methods:{printInvoice:function(){this.$htmlToPaper("printable-container")}}};const G=(0,f.Z)(H,undefined,undefined,!1,null,null,null).exports;const Q={name:"ns-notifications",data:function(){return{notifications:[],visible:!1,interval:null}},mounted:function(){var e=this;document.addEventListener("click",this.checkClickedItem),ns.websocket.enabled?Echo.private("ns.private-channel").listen("App\\Events\\NotificationDispatchedEvent",(function(t){e.pushNotificationIfNew(t.notification)})).listen("App\\Events\\NotificationDeletedEvent",(function(t){e.deleteNotificationIfExists(t.notification)})):this.interval=setInterval((function(){e.loadNotifications()}),15e3),this.loadNotifications()},destroyed:function(){clearInterval(this.interval)},methods:{__:o.__,pushNotificationIfNew:function(e){var t=this.notifications.filter((function(t){return t.id===e.id})).length>0;console.log(e),t||this.notifications.push(e)},deleteNotificationIfExists:function(e){var t=this.notifications.filter((function(t){return t.id===e.id}));if(t.length>0){var s=this.notifications.indexOf(t[0]);this.notifications.splice(s,1)}},deleteAll:function(){Popup.show(A.Z,{title:(0,o.__)("Confirm Your Action"),message:(0,o.__)("Would you like to clear all the notifications ?"),onAction:function(e){e&&a.ih.delete("/api/nexopos/v4/notifications/all").subscribe((function(e){a.kX.success(e.message).subscribe()}))}})},checkClickedItem:function(e){var t;t=!!document.getElementById("notification-center")&&document.getElementById("notification-center").contains(e.srcElement);var s=document.getElementById("notification-button").contains(e.srcElement);t||s||!this.visible||(this.visible=!1)},loadNotifications:function(){var e=this;a.ih.get("/api/nexopos/v4/notifications").subscribe((function(t){e.notifications=t}))},triggerLink:function(e){if("url"!==e.url)return window.open(e.url,"_blank")},closeNotice:function(e,t){var s=this;a.ih.delete("/api/nexopos/v4/notifications/".concat(t.id)).subscribe((function(e){s.loadNotifications()})),e.stopPropagation()}}};const K=(0,f.Z)(Q,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"hover:bg-white hover:text-gray-700 hover:shadow-lg hover:border-opacity-0 rounded-full h-12 w-12 cursor-pointer font-bold text-2xl justify-center items-center flex text-gray-800",class:e.visible?"bg-white border-0 shadow-lg":"border border-gray-400",attrs:{id:"notification-button"},on:{click:function(t){e.visible=!e.visible}}},[e.notifications.length>0?s("div",{staticClass:"relative float-right"},[s("div",{staticClass:"absolute -ml-6 -mt-8"},[s("div",{staticClass:"bg-blue-400 text-white w-8 h-8 rounded-full text-xs flex items-center justify-center"},[e._v(e._s(e._f("abbreviate")(e.notifications.length)))])])]):e._e(),e._v(" "),s("i",{staticClass:"las la-bell"})]),e._v(" "),e.visible?s("div",{staticClass:"h-0 w-0",attrs:{id:"notification-center"}},[s("div",{staticClass:"absolute left-0 top-0 sm:relative w-screen zoom-out-entrance anim-duration-300 h-5/7-screen sm:w-64 sm:h-108 flex flex-row-reverse"},[s("div",{staticClass:"z-50 sm:rounded-lg shadow-lg h-full w-full bg-white md:mt-2 overflow-y-hidden flex flex-col"},[s("div",{staticClass:"sm:hidden p-2 cursor-pointer flex items-center justify-center border-b border-gray-200",on:{click:function(t){e.visible=!1}}},[s("h3",{staticClass:"font-semibold hover:text-blue-400"},[e._v("Close")])]),e._v(" "),s("div",{staticClass:"overflow-y-auto flex flex-col flex-auto"},[e._l(e.notifications,(function(t){return s("div",{key:t.id,staticClass:"notice border-b border-gray-200"},[s("div",{staticClass:"p-2 cursor-pointer",on:{click:function(s){return e.triggerLink(t)}}},[s("div",{staticClass:"flex items-center justify-between"},[s("h1",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(t.title))]),e._v(" "),s("ns-close-button",{on:{click:function(s){return e.closeNotice(s,t)}}})],1),e._v(" "),s("p",{staticClass:"py-1 text-gray-600 text-sm"},[e._v(e._s(t.description))])])])})),e._v(" "),0===e.notifications.length?s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("div",{staticClass:"flex flex-col items-center"},[s("i",{staticClass:"las la-laugh-wink text-5xl text-gray-800"}),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(e.__("Nothing to care about !")))])])]):e._e()],2),e._v(" "),s("div",{staticClass:"cursor-pointer"},[s("h3",{staticClass:"text-sm p-2 flex items-center justify-center hover:bg-red-100 w-full text-red-400 font-semibold hover:text-red-500",on:{click:function(t){return e.deleteAll()}}},[e._v(e._s(e.__("Clear All")))])])])])]):e._e()])}),[],!1,null,null,null).exports;var J=s(9576),ee=s(381),te=s.n(ee),se=s(6598);const re={name:"ns-sale-report",data:function(){return{startDate:te()(),endDate:te()(),orders:[],field:{type:"datetimepicker",value:"2021-02-07",name:"date"}}},components:{nsDatepicker:se.Z},computed:{totalDiscounts:function(){return this.orders.length>0?this.orders.map((function(e){return e.discount})).reduce((function(e,t){return e+t})):0},totalTaxes:function(){return this.orders.length>0?this.orders.map((function(e){return e.tax_value})).reduce((function(e,t){return e+t})):0},totalOrders:function(){return this.orders.length>0?this.orders.map((function(e){return e.total})).reduce((function(e,t){return e+t})):0}},methods:{printSaleReport:function(){this.$htmlToPaper("sale-report")},setStartDate:function(e){this.startDate=e.format(),console.log(this.startDate)},loadReport:function(){var e=this;if(null===this.startDate||null===this.endDate)return a.kX.error((0,o.__)("Unable to proceed. Select a correct time range.")).subscribe();var t=te()(this.startDate);if(te()(this.endDate).isBefore(t))return a.kX.error((0,o.__)("Unable to proceed. The current time range is not valid.")).subscribe();a.ih.post("/api/nexopos/v4/reports/sale-report",{startDate:this.startDate,endDate:this.endDate}).subscribe((function(t){e.orders=t}),(function(e){a.kX.error(e.message).subscribe()}))},setEndDate:function(e){this.endDate=e.format()}}};const ie=(0,f.Z)(re,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports;const ne={name:"ns-sold-stock-report",data:function(){return{startDate:te()(),endDate:te()(),products:[]}},components:{nsDatepicker:se.Z},computed:{totalQuantity:function(){return this.products.length>0?this.products.map((function(e){return e.quantity})).reduce((function(e,t){return e+t})):0},totalTaxes:function(){return this.products.length>0?this.products.map((function(e){return e.tax_value})).reduce((function(e,t){return e+t})):0},totalPrice:function(){return console.log(this.products),this.products.length>0?this.products.map((function(e){return e.total_price})).reduce((function(e,t){return e+t})):0}},methods:{printSaleReport:function(){this.$htmlToPaper("report-printable")},setStartDate:function(e){this.startDate=e.format()},loadReport:function(){var e=this;if(null===this.startDate||null===this.endDate)return a.kX.error((0,o.__)("Unable to proceed. Select a correct time range.")).subscribe();var t=te()(this.startDate);if(te()(this.endDate).isBefore(t))return a.kX.error((0,o.__)("Unable to proceed. The current time range is not valid.")).subscribe();a.ih.post("/api/nexopos/v4/reports/sold-stock-report",{startDate:this.startDate,endDate:this.endDate}).subscribe((function(t){e.products=t}),(function(e){a.kX.error(e.message).subscribe()}))},setEndDate:function(e){this.endDate=e.format()}}};const ae=(0,f.Z)(ne,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports;const oe={name:"ns-profit-report",data:function(){return{startDate:te()(),endDate:te()(),products:[]}},components:{nsDatepicker:se.Z},computed:{totalQuantities:function(){return this.products.length>0?this.products.map((function(e){return e.quantity})).reduce((function(e,t){return e+t})):0},totalPurchasePrice:function(){return this.products.length>0?this.products.map((function(e){return e.total_purchase_price})).reduce((function(e,t){return e+t})):0},totalSalePrice:function(){return this.products.length>0?this.products.map((function(e){return e.total_price})).reduce((function(e,t){return e+t})):0},totalProfit:function(){return this.products.length>0?this.products.map((function(e){return e.total_price-e.total_purchase_price})).reduce((function(e,t){return e+t})):0},totalTax:function(){return this.products.length>0?this.products.map((function(e){return e.tax_value})).reduce((function(e,t){return e+t})):0}},methods:{printSaleReport:function(){this.$htmlToPaper("profit-report")},setStartDate:function(e){this.startDate=e.format(),console.log(this.startDate)},loadReport:function(){var e=this;if(null===this.startDate||null===this.endDate)return a.kX.error((0,o.__)("Unable to proceed. Select a correct time range.")).subscribe();var t=te()(this.startDate);if(te()(this.endDate).isBefore(t))return a.kX.error((0,o.__)("Unable to proceed. The current time range is not valid.")).subscribe();a.ih.post("/api/nexopos/v4/reports/profit-report",{startDate:this.startDate,endDate:this.endDate}).subscribe((function(t){e.products=t}),(function(e){a.kX.error(e.message).subscribe()}))},setEndDate:function(e){this.endDate=e.format()}}};const le=(0,f.Z)(oe,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports,ce={name:"ns-cash-flow",mounted:function(){},components:{nsDatepicker:se.Z},data:function(){return{startDate:te()(),endDate:te()(),report:[]}},computed:{totalDebit:function(){return 0},totalCredit:function(){return 0}},methods:{setStartDate:function(e){this.startDate=e.format()},setEndDate:function(e){this.endDate=e.format()},loadReport:function(){var e=this,t=te()(this.startDate),s=te()(this.endDate);a.ih.post("/api/nexopos/v4/reports/cash-flow",{startDate:t,endDate:s}).subscribe((function(t){e.report=t,console.log(e.report)}),(function(e){a.kX.error(e.message).subscribe()}))}}};const de=(0,f.Z)(ce,undefined,undefined,!1,null,null,null).exports,ue={name:"ns-yearly-report",mounted:function(){this.loadReport()},components:{nsDatepicker:se.Z},data:function(){return{startDate:te()(),endDate:te()(),report:{},year:ns.date.getMoment().format("Y"),labels:["month_paid_orders","month_taxes","month_expenses","month_income"]}},computed:{totalDebit:function(){return 0},totalCredit:function(){return 0}},methods:{setStartDate:function(e){this.startDate=e.format()},setEndDate:function(e){this.endDate=e.format()},printSaleReport:function(){this.$htmlToPaper("annual-report")},sumOf:function(e){return Object.values(this.report).length>0?Object.values(this.report).map((function(t){return parseFloat(t[e])||0})).reduce((function(e,t){return e+t})):0},recomputeForSpecificYear:function(){var e=this;Popup.show(A.Z,{title:__("Would you like to proceed ?"),message:__("The report will be computed for the current year, a job will be dispatched and you'll be informed once it's completed."),onAction:function(t){t&&a.ih.post("/api/nexopos/v4/reports/compute/yearly",{year:e.year}).subscribe((function(e){a.kX.success(e.message).subscribe()}),(function(e){a.kX.success(e.message||__("An unexpected error has occured.")).subscribe()}))}})},getReportForMonth:function(e){return console.log(this.report,e),this.report[e]},loadReport:function(){var e=this,t=this.year;a.ih.post("/api/nexopos/v4/reports/annual-report",{year:t}).subscribe((function(t){e.report=t}),(function(e){a.kX.error(e.message).subscribe()}))}}};const fe=(0,f.Z)(ue,undefined,undefined,!1,null,null,null).exports,pe={name:"ns-best-products-report",mounted:function(){},components:{nsDatepicker:se.Z},data:function(){return{startDate:te()(),endDate:te()(),report:null,sort:""}},computed:{totalDebit:function(){return 0},totalCredit:function(){return 0}},methods:{setStartDate:function(e){this.startDate=e.format()},setEndDate:function(e){this.endDate=e.format()},printSaleReport:function(){this.$htmlToPaper("best-products-report")},loadReport:function(){var e=this,t=te()(this.startDate),s=te()(this.endDate);a.ih.post("/api/nexopos/v4/reports/products-report",{startDate:t.format("YYYY/MM/DD HH:mm"),endDate:s.format("YYYY/MM/DD HH:mm"),sort:this.sort}).subscribe((function(t){t.current.products=Object.values(t.current.products),e.report=t,console.log(e.report)}),(function(e){a.kX.error(e.message).subscribe()}))}}};const me=(0,f.Z)(pe,undefined,undefined,!1,null,null,null).exports;var he=s(8655);const ve={name:"ns-payment-types-report",data:function(){return{startDate:te()(),endDate:te()(),report:[],field:{type:"datetimepicker",value:"2021-02-07",name:"date"}}},components:{nsDatepicker:se.Z,nsDateTimePicker:he.V},computed:{},mounted:function(){},methods:{printSaleReport:function(){this.$htmlToPaper("sale-report")},setStartDate:function(e){console.log(e),this.startDate=e.format()},loadReport:function(){var e=this;if(null===this.startDate||null===this.endDate)return a.kX.error((0,o.__)("Unable to proceed. Select a correct time range.")).subscribe();var t=te()(this.startDate);if(te()(this.endDate).isBefore(t))return a.kX.error((0,o.__)("Unable to proceed. The current time range is not valid.")).subscribe();a.ih.post("/api/nexopos/v4/reports/payment-types",{startDate:this.startDate,endDate:this.endDate}).subscribe((function(t){e.report=t}),(function(e){a.kX.error(e.message).subscribe()}))},setEndDate:function(e){console.log(e),this.endDate=e.format()}}};const be=(0,f.Z)(ve,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports;const _e={name:"ns-dashboard-cards",data:function(){return{report:{}}},mounted:function(){this.loadReport(),console.log(nsLanguage.getEntries())},methods:{__:o.__,loadReport:function(){var e=this;a.ih.get("/api/nexopos/v4/dashboard/day").subscribe((function(t){e.report=t}))}}};const ge=(0,f.Z)(_e,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"-m-4 flex flex-wrap"},[s("div",{staticClass:"p-4 w-full md:w-1/2 lg:w-1/4"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-blue-400 to-blue-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Total Sales")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_paid_orders||0,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Total Sales")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.day_paid_orders||0))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"p-4 w-full md:w-1/2 lg:w-1/4"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-green-400 to-green-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Incomplete Orders")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_partially_paid_orders+e.report.total_unpaid_orders||0,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Incomplete Orders")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.day_unpaid_orders+e.report.day_partially_paid_orders||0))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"p-4 w-full md:w-1/2 lg:w-1/4"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-red-300 via-red-400 to-red-500 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Wasted Goods")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_wasted_goods||0,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Wasted Goods")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.day_wasted_goods||0))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"p-4 w-full md:w-1/2 lg:w-1/4"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-indigo-400 to-indigo-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Expenses")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_expenses||0,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Expenses")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.day_expenses||0))+" "+e._s(e.__("Today")))])])])])])])}),[],!1,null,null,null).exports;const xe={name:"ns-best-customers",mounted:function(){var e=this;this.hasLoaded=!1,this.subscription=Dashboard.bestCustomers.subscribe((function(t){e.hasLoaded=!0,e.customers=t}))},methods:{__:o.__},data:function(){return{customers:[],subscription:null,hasLoaded:!1}},destroyed:function(){this.subscription.unsubscribe()}};const ye=(0,f.Z)(xe,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col shadow rounded-lg overflow-hidden"},[s("div",{staticClass:"head bg-white flex-auto"},[s("div",{staticClass:"head text-center border-b border-gray-200 text-gray-700 w-full py-2"},[s("h5",[e._v(e._s(e.__("Best Customers")))])]),e._v(" "),s("div",{staticClass:"body"},[e.hasLoaded?e._e():s("div",{staticClass:"h-56 w-full flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"12",border:"4"}})],1),e._v(" "),e.hasLoaded&&0===e.customers.length?s("div",{staticClass:"h-56 flex items-center justify-center flex-col"},[s("i",{staticClass:"las la-grin-beam-sweat text-6xl text-gray-700"}),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(e.__("Well.. nothing to show for the meantime")))])]):e._e(),e._v(" "),e.customers.length>0?s("table",{staticClass:"table w-full"},[s("thead",e._l(e.customers,(function(t){return s("tr",{key:t.id,staticClass:"border-gray-300 border-b text-sm"},[s("th",{staticClass:"p-2"},[s("div",{staticClass:"-mx-1 flex justify-start items-center"},[e._m(0,!0),e._v(" "),s("div",{staticClass:"px-1 justify-center"},[s("h3",{staticClass:"font-semibold text-gray-600 items-center"},[e._v(e._s(t.name))])])])]),e._v(" "),s("th",{staticClass:"flex justify-end text-green-700 p-2"},[e._v(e._s(e._f("currency")(t.purchases_amount)))])])})),0)]):e._e()])])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"px-1"},[t("div",{staticClass:"rounded-full bg-gray-200 h-6 w-6 "},[t("img",{attrs:{src:"/images/user.png"}})])])}],!1,null,null,null).exports;const we={name:"ns-best-customers",data:function(){return{subscription:null,cashiers:[],hasLoaded:!1}},mounted:function(){var e=this;this.hasLoaded=!1,this.subscription=Dashboard.bestCashiers.subscribe((function(t){e.hasLoaded=!0,e.cashiers=t}))},methods:{__:o.__},destroyed:function(){this.subscription.unsubscribe()}};const Ce=(0,f.Z)(we,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col shadow rounded-lg overflow-hidden"},[s("div",{staticClass:"head bg-white flex-auto"},[s("div",{staticClass:"head text-center border-b border-gray-200 text-gray-700 w-full py-2"},[s("h5",[e._v(e._s(e.__("Best Cashiers")))])]),e._v(" "),s("div",{staticClass:"body"},[e.cashiers.length>0?s("table",{staticClass:"table w-full"},[s("thead",[e._l(e.cashiers,(function(t){return s("tr",{key:t.id,staticClass:"border-gray-300 border-b text-sm"},[s("th",{staticClass:"p-2"},[s("div",{staticClass:"-mx-1 flex justify-start items-center"},[e._m(0,!0),e._v(" "),s("div",{staticClass:"px-1 justify-center"},[s("h3",{staticClass:"font-semibold text-gray-600 items-center"},[e._v(e._s(t.username))])])])]),e._v(" "),s("th",{staticClass:"flex justify-end text-green-700 p-2"},[e._v(e._s(e._f("currency")(t.total_sales,"abbreviate")))])])})),e._v(" "),0===e.cashiers.length?s("tr",[s("th",{attrs:{colspan:"2"}},[e._v(e._s(e.__("No result to display.")))])]):e._e()],2)]):e._e(),e._v(" "),e.hasLoaded?e._e():s("div",{staticClass:"h-56 flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"8",border:"4"}})],1),e._v(" "),e.hasLoaded&&0===e.cashiers.length?s("div",{staticClass:"h-56 flex items-center justify-center flex-col"},[s("i",{staticClass:"las la-grin-beam-sweat text-6xl text-gray-700"}),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(e.__("Well.. nothing to show for the meantime.")))])]):e._e()])])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"px-1"},[t("div",{staticClass:"rounded-full bg-gray-200 h-6 w-6 "},[t("img",{attrs:{src:"/images/user.png"}})])])}],!1,null,null,null).exports;const ke={name:"ns-orders-summary",data:function(){return{orders:[],subscription:null,hasLoaded:!1}},mounted:function(){var e=this;this.hasLoaded=!1,this.subscription=Dashboard.recentOrders.subscribe((function(t){e.hasLoaded=!0,e.orders=t}))},methods:{__:o.__},destroyed:function(){this.subscription.unsubscribe()}};const je=(0,f.Z)(ke,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col shadow rounded-lg overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between bg-white border-b"},[s("h3",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Recents Orders")))]),e._v(" "),s("div",{})]),e._v(" "),s("div",{staticClass:"head bg-gray-100 flex-auto flex-col flex h-56 overflow-y-auto"},[e.hasLoaded?e._e():s("div",{staticClass:"h-full flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"8",border:"4"}})],1),e._v(" "),e.hasLoaded&&0===e.orders.length?s("div",{staticClass:"h-full flex items-center justify-center flex-col"},[s("i",{staticClass:"las la-grin-beam-sweat text-6xl text-gray-700"}),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(e.__("Well.. nothing to show for the meantime.")))])]):e._e(),e._v(" "),e._l(e.orders,(function(t){return s("div",{key:t.id,staticClass:"border-b border-gray-200 p-2 flex justify-between",class:"paid"===t.payment_status?"bg-green-50":"bg-white"},[s("div",[s("h3",{staticClass:"text-lg font-semibold text-gray-600"},[e._v(e._s(e.__("Order"))+" : "+e._s(t.code))]),e._v(" "),s("div",{staticClass:"flex -mx-2"},[s("div",{staticClass:"px-1"},[s("h4",{staticClass:"text-semibold text-xs text-gray-500"},[s("i",{staticClass:"lar la-user-circle"}),e._v(" "),s("span",[e._v(e._s(t.user.username))])])]),e._v(" "),s("div",{staticClass:"divide-y-4"}),e._v(" "),s("div",{staticClass:"px-1"},[s("h4",{staticClass:"text-semibold text-xs text-gray-600"},[s("i",{staticClass:"las la-clock"}),e._v(" "),s("span",[e._v(e._s(t.created_at))])])])])]),e._v(" "),s("div",[s("h2",{staticClass:"text-xl font-bold",class:"paid"===t.payment_status?"text-green-600":"text-gray-700"},[e._v(e._s(e._f("currency")(t.total)))])])])}))],2)])}),[],!1,null,null,null).exports;const $e={name:"ns-orders-chart",data:function(){return{totalWeeklySales:0,totalWeekTaxes:0,totalWeekExpenses:0,totalWeekIncome:0,chartOptions:{chart:{id:"vuechart-example",width:"100%",height:"100%"},stroke:{curve:"smooth",dashArray:[0,8]},xaxis:{categories:[]},colors:["#5f83f3","#AAA"]},series:[{name:(0,o.__)("Current Week"),data:[]},{name:(0,o.__)("Previous Week"),data:[]}],reportSubscription:null,report:null}},methods:{__:o.__},mounted:function(){var e=this;this.reportSubscription=Dashboard.weeksSummary.subscribe((function(t){void 0!==t.result&&(e.chartOptions.xaxis.categories=t.result.map((function(e){return e.label})),e.report=t,e.totalWeeklySales=0,e.totalWeekIncome=0,e.totalWeekExpenses=0,e.totalWeekTaxes=0,e.report.result.forEach((function(t,s){if(void 0!==t.current){var r=t.current.entries.map((function(e){return e.day_paid_orders})),i=0;r.length>0&&(i=r.reduce((function(e,t){return e+t})),e.totalWeekExpenses+=t.current.entries.map((function(e){return e.day_expenses})),e.totalWeekTaxes+=t.current.entries.map((function(e){return e.day_taxes})),e.totalWeekIncome+=t.current.entries.map((function(e){return e.day_income}))),e.series[0].data.push(i)}else e.series[0].data.push(0);if(void 0!==t.previous){var n=t.previous.entries.map((function(e){return e.day_paid_orders})),a=0;n.length>0&&(a=n.reduce((function(e,t){return e+t}))),e.series[1].data.push(a)}else e.series[1].data.push(0)})),e.totalWeeklySales=e.series[0].data.reduce((function(e,t){return e+t})))}))}};const Se=(0,f.Z)($e,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col shadow rounded-lg overflow-hidden"},[s("div",{staticClass:"head bg-white flex-auto flex h-56"},[s("div",{staticClass:"w-full h-full pt-2"},[e.report?s("vue-apex-charts",{attrs:{height:"100%",type:"area",options:e.chartOptions,series:e.series}}):e._e()],1)]),e._v(" "),s("div",{staticClass:"p-2 bg-white -mx-4 flex flex-wrap"},[s("div",{staticClass:"flex w-full md:w-1/2 lg:w-full xl:w-1/2 lg:border-b lg:border-t xl:border-none border-gray-200 lg:py-1 lg:my-1"},[s("div",{staticClass:"px-4 w-1/2 lg:w-1/2 flex flex-col items-center justify-center"},[s("span",{staticClass:"text-xs text-gray-600"},[e._v(e._s(e.__("Weekly Sales")))]),e._v(" "),s("h2",{staticClass:"text-lg xl:text-xl text-gray-700 font-bold"},[e._v(e._s(e._f("currency")(e.totalWeeklySales,"abbreviate")))])]),e._v(" "),s("div",{staticClass:"px-4 w-1/2 lg:w-1/2 flex flex-col items-center justify-center"},[s("span",{staticClass:"text-xs text-gray-600"},[e._v(e._s(e.__("Week Taxes")))]),e._v(" "),s("h2",{staticClass:"text-lg xl:text-xl text-gray-700 font-bold"},[e._v(e._s(e._f("currency")(e.totalWeekTaxes,"abbreviate")))])])]),e._v(" "),s("div",{staticClass:"flex w-full md:w-1/2 lg:w-full xl:w-1/2"},[s("div",{staticClass:"px-4 w-full lg:w-1/2 flex flex-col items-center justify-center"},[s("span",{staticClass:"text-xs text-gray-600"},[e._v(e._s(e.__("Net Income")))]),e._v(" "),s("h2",{staticClass:"text-lg xl:text-xl text-gray-700 font-bold"},[e._v(e._s(e._f("currency")(e.totalWeekIncome,"abbreviate")))])]),e._v(" "),s("div",{staticClass:"px-4 w-full lg:w-1/2 flex flex-col items-center justify-center"},[s("span",{staticClass:"text-xs text-gray-600"},[e._v(e._s(e.__("Week Expenses")))]),e._v(" "),s("h2",{staticClass:"text-lg xl:text-xl text-gray-700 font-bold"},[e._v(e._s(e._f("currency")(e.totalWeekExpenses,"abbreviate")))])])])])])}),[],!1,null,null,null).exports;const Pe={name:"ns-cashier-dashboard",props:["showCommission"],data:function(){return{report:{}}},methods:{__,refreshReport:function(){Cashier.refreshReport()},getOrderStatus:function(e){switch(e){case"paid":return __("Paid");case"partially_paid":return __("Partially Paid");case"unpaid":return __("Unpaid");case"hold":return __("Hold");case"order_void":return __("Void");case"refunded":return __("Refunded");case"partially_refunded":return __("Partially Refunded");default:return $status}}},mounted:function(){var e=this;Cashier.mysales.subscribe((function(t){e.report=t}));var t=document.createRange().createContextualFragment('
    \n
    \n
    \n \n
    \n
    \n
    ');document.querySelector(".top-tools-side").prepend(t),document.querySelector("#refresh-button").addEventListener("click",(function(){return e.refreshReport()}))}};const De=(0,f.Z)(Pe,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"flex -mx-4 flex-wrap"},[s("div",{staticClass:"px-4 w-full mb-6",class:e.showCommission?"md:w-1/2 lg:w-1/4":"md:w-1/3"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-purple-400 to-purple-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Total Sales")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_sales_amount,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Total Sales")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.total_sales_amount))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"px-4 w-full mb-6",class:e.showCommission?"md:w-1/2 lg:w-1/4":"md:w-1/3"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-red-400 to-red-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Total Refunds")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_refunds_amount,"abbreviate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Total Refunds")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.today_refunds_amount))+" "+e._s(e.__("Today")))])])])])]),e._v(" "),s("div",{staticClass:"px-4 w-full mb-6",class:e.showCommission?"md:w-1/2 lg:w-1/4":"md:w-1/3"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-blue-400 to-blue-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Clients Registered")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e.report.total_customers)+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Clients Registered")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e.report.today_customers)+" "+e._s(e.__("Today")))])])])])]),e._v(" "),e.showCommission?s("div",{staticClass:"px-4 w-full mb-6",class:e.showCommission?"md:w-1/2 lg:w-1/4":"md:w-1/3"},[s("div",{staticClass:"flex flex-auto flex-col rounded-lg shadow-lg bg-gradient-to-br from-green-400 to-green-600 text-white px-3 py-5"},[s("div",{staticClass:"flex flex-row md:flex-col flex-auto"},[s("div",{staticClass:"w-1/2 md:w-full flex md:flex-col md:items-start items-center justify-center"},[s("h6",{staticClass:"font-bold hidden text-right md:inline-block"},[e._v(e._s(e.__("Commissions")))]),e._v(" "),s("h3",{staticClass:"text-2xl font-black"},[e._v("\n "+e._s(e._f("currency")(e.report.total_commissions))+"\n ")])]),e._v(" "),s("div",{staticClass:"w-1/2 md:w-full flex flex-col px-2 justify-end items-end"},[s("h6",{staticClass:"font-bold inline-block text-right md:hidden"},[e._v(e._s(e.__("Commissions")))]),e._v(" "),s("h4",{staticClass:"text-xs text-right"},[e._v("+"+e._s(e._f("currency")(e.report.today_commissions))+" "+e._s(e.__("Today")))])])])])]):e._e()]),e._v(" "),s("div",{staticClass:"py-4"},[e.report.today_orders&&e.report.today_orders.length>0?s("ul",{staticClass:"bg-white shadow-lg rounded overflow-hidden"},e._l(e.report.today_orders,(function(t){return s("li",{key:t.id,staticClass:"p-2 border-b-2 border-blue-400"},[s("h3",{staticClass:"font-semibold text-lg flex justify-between"},[s("span",[e._v(e._s(e.__("Total"))+" : "+e._s(e._f("currency")(t.total)))]),e._v(" "),s("span",[e._v(e._s(t.code))])]),e._v(" "),s("ul",{staticClass:"pt-2 flex -mx-1 text-sm text-gray-700"},[s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Discount"))+" : "+e._s(e._f("currency")(t.discount)))]),e._v(" "),s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Status"))+" : "+e._s(e.getOrderStatus(t.payment_status)))])])])})),0):e._e(),e._v(" "),e.report.today_orders&&0===e.report.today_orders.length?s("div",{staticClass:"flex items-center justify-center"},[s("i",{staticClass:"las la-frown"})]):e._e()])])}),[],!1,null,null,null).exports;var Oe=s(2242),Ee=s(7096),Te=s(1596);const Fe={name:"ns-stock-adjustment",props:["actions"],data:function(){return{search:"",timeout:null,suggestions:[],products:[]}},mounted:function(){console.log(this.actions)},methods:{__:o.__,searchProduct:function(e){var t=this;e.length>0&&a.ih.post("/api/nexopos/v4/procurements/products/search-procurement-product",{argument:e}).subscribe((function(e){if("products"===e.from){if(!(e.products.length>0))return t.closeSearch(),a.kX.error((0,o.__)("Looks like no products matched the searched term.")).subscribe();1===e.products.length?t.addSuggestion(e.products[0]):t.suggestions=e.products}else if("procurements"===e.from){if(null===e.product)return t.closeSearch(),a.kX.error((0,o.__)("Looks like no products matched the searched term.")).subscribe();t.addProductToList(e.product)}}))},addProductToList:function(e){if(this.products.filter((function(t){return t.procurement_product_id===e.id})).length>0)return this.closeSearch(),a.kX.error((0,o.__)("The product already exists on the table.")).subscribe();var t=new Object;e.unit_quantity.unit=e.unit,t.quantities=[e.unit_quantity],t.name=e.name,t.adjust_unit=e.unit_quantity,t.adjust_quantity=1,t.adjust_action="",t.adjust_reason="",t.adjust_value=0,t.id=e.product_id,t.accurate_tracking=1,t.available_quantity=e.available_quantity,t.procurement_product_id=e.id,t.procurement_history=[{label:"".concat(e.procurement.name," (").concat(e.available_quantity,")"),value:e.id}],this.products.push(t),this.closeSearch()},addSuggestion:function(e){var t=this;(0,E.D)([a.ih.get("/api/nexopos/v4/products/".concat(e.id,"/units/quantities"))]).subscribe((function(s){if(!(s[0].length>0))return a.kX.error((0,o.__)("This product does't have any stock to adjust.")).subscribe();e.quantities=s[0],e.adjust_quantity=1,e.adjust_action="",e.adjust_reason="",e.adjust_unit="",e.adjust_value=0,e.procurement_product_id=0,t.products.push(e),t.closeSearch(),e.accurate_tracking}))},closeSearch:function(){this.search="",this.suggestions=[]},recalculateProduct:function(e){""!==e.adjust_unit&&(["deleted","defective","lost"].includes(e.adjust_action)?e.adjust_value=-e.adjust_quantity*e.adjust_unit.sale_price:e.adjust_value=e.adjust_quantity*e.adjust_unit.sale_price),this.$forceUpdate()},openQuantityPopup:function(e){var t=this;e.quantity;new Promise((function(t,s){Oe.G.show(Ee.Z,{resolve:t,reject:s,quantity:e.adjust_quantity})})).then((function(s){if(!["added"].includes(e.adjust_action)){if(void 0!==e.accurate_tracking&&s.quantity>e.available_quantity)return a.kX.error((0,o.__)("The specified quantity exceed the available quantity.")).subscribe();if(s.quantity>e.adjust_unit.quantity)return a.kX.error((0,o.__)("The specified quantity exceed the available quantity.")).subscribe()}e.adjust_quantity=s.quantity,t.recalculateProduct(e)}))},proceedStockAdjustment:function(){var e=this;if(0===this.products.length)return a.kX.error((0,o.__)("Unable to proceed as the table is empty.")).subscribe();Oe.G.show(A.Z,{title:(0,o.__)("Confirm Your Action"),message:(0,o.__)("The stock adjustment is about to be made. Would you like to confirm ?"),onAction:function(t){t&&a.ih.post("/api/nexopos/v4/products/adjustments",{products:e.products}).subscribe((function(t){a.kX.success(t.message).subscribe(),e.products=[]}),(function(e){a.kX.error(e.message).subscribe()}))}})},provideReason:function(e){new Promise((function(t,s){Oe.G.show(Te.Z,{title:(0,o.__)("More Details"),resolve:t,reject:s,message:(0,o.__)("Useful to describe better what are the reasons that leaded to this adjustment."),input:e.adjust_reason,onAction:function(t){!1!==t&&(e.adjust_reason=t)}})})).then((function(e){a.kX.success((0,o.__)("The reason has been updated.")).susbcribe()})).catch((function(e){}))},removeProduct:function(e){var t=this;Oe.G.show(A.Z,{title:(0,o.__)("Confirm Your Action"),message:(0,o.__)("Would you like to remove this product from the table ?"),onAction:function(s){if(s){var r=t.products.indexOf(e);t.products.splice(r,1)}}})}},watch:{search:function(){var e=this;this.search.length>0?(clearTimeout(this.timeout),this.timeout=setTimeout((function(){e.searchProduct(e.search)}),500)):this.closeSearch()}}};const Ae=(0,f.Z)(Fe,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"input-field flex border-2 border-blue-400 rounded"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.search,expression:"search"}],staticClass:"p-2 bg-white flex-auto outline-none",attrs:{type:"text"},domProps:{value:e.search},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.closeSearch()},input:function(t){t.target.composing||(e.search=t.target.value)}}}),e._v(" "),s("button",{staticClass:"px-3 py-2 bg-blue-400 text-white"},[e._v(e._s(e.__("Search")))])]),e._v(" "),e.suggestions.length>0?s("div",{staticClass:"h-0"},[s("div",{staticClass:"shadow h-96 relative z-10 bg-white text-gray-700 zoom-in-entrance anim-duration-300 overflow-y-auto"},[s("ul",e._l(e.suggestions,(function(t){return s("li",{key:t.id,staticClass:"cursor-pointer hover:bg-gray-100 border-b border-gray-200 p-2 flex justify-between",on:{click:function(s){return e.addSuggestion(t)}}},[s("span",[e._v(e._s(t.name))])])})),0)])]):e._e(),e._v(" "),s("div",{staticClass:"table shadow bg-white my-2 w-full "},[s("table",{staticClass:"table w-full"},[s("thead",{staticClass:"border-b border-gray-400"},[s("tr",[s("td",{staticClass:"p-2 text-gray-700"},[e._v(e._s(e.__("Product")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Unit")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Operation")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Procurement")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Quantity")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"120"}},[e._v(e._s(e.__("Value")))]),e._v(" "),s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{width:"150"}},[e._v(e._s(e.__("Actions")))])])]),e._v(" "),s("tbody",[0===e.products.length?s("tr",[s("td",{staticClass:"p-2 text-center text-gray-700",attrs:{colspan:"6"}},[e._v(e._s(e.__("Search and add some products")))])]):e._e(),e._v(" "),e._l(e.products,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"p-2 text-gray-600"},[e._v(e._s(t.name)+" ("+e._s((1===t.accurate_tracking?t.available_quantity:t.adjust_unit.quantity)||0)+")")]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.adjust_unit,expression:"product.adjust_unit"}],staticClass:"outline-none p-2 bg-white w-full border-2 border-blue-400",on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t,"adjust_unit",s.target.multiple?r:r[0])},function(s){return e.recalculateProduct(t)}]}},e._l(t.quantities,(function(t){return s("option",{key:t.id,domProps:{value:t}},[e._v(e._s(t.unit.name))])})),0)]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.adjust_action,expression:"product.adjust_action"}],staticClass:"outline-none p-2 bg-white w-full border-2 border-blue-400",attrs:{name:"",id:""},on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t,"adjust_action",s.target.multiple?r:r[0])},function(s){return e.recalculateProduct(t)}]}},e._l(e.actions,(function(t){return s("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0)]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[1===t.accurate_tracking?s("select",{directives:[{name:"model",rawName:"v-model",value:t.procurement_product_id,expression:"product.procurement_product_id"}],staticClass:"outline-none p-2 bg-white w-full border-2 border-blue-400",attrs:{name:"",id:""},on:{change:[function(s){var r=Array.prototype.filter.call(s.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t,"procurement_product_id",s.target.multiple?r:r[0])},function(s){return e.recalculateProduct(t)}]}},e._l(t.procurement_history,(function(t){return s("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0):e._e()]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600 flex items-center justify-center cursor-pointer",on:{click:function(s){return e.openQuantityPopup(t)}}},[s("span",{staticClass:"border-b border-dashed border-blue-400 py-2 px-4"},[e._v(e._s(t.adjust_quantity))])]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[s("span",{staticClass:"border-b border-dashed border-blue-400 py-2 px-4"},[e._v(e._s(e._f("currency")(t.adjust_value)))])]),e._v(" "),s("td",{staticClass:"p-2 text-gray-600"},[s("div",{staticClass:"-mx-1 flex justify-end"},[s("div",{staticClass:"px-1"},[s("button",{staticClass:"bg-blue-400 text-white outline-none rounded-full shadow h-10 w-10",on:{click:function(s){return e.provideReason(t)}}},[s("i",{staticClass:"las la-comment-dots"})])]),e._v(" "),s("div",{staticClass:"px-1"},[s("button",{staticClass:"bg-red-400 text-white outline-none rounded-full shadow h-10 w-10",on:{click:function(s){return e.removeProduct(t)}}},[s("i",{staticClass:"las la-times"})])])])])])}))],2)]),e._v(" "),s("div",{staticClass:"border-t border-gray-200 p-2 flex justify-end"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.proceedStockAdjustment()}}},[e._v(e._s(e.__("Proceed")))])],1)])])}),[],!1,null,null,null).exports;const Ve={props:["order","billing","shipping"],methods:{__:o.__,printTable:function(){this.$htmlToPaper("invoice-container")}}};const qe=(0,f.Z)(Ve,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow bg-white"},[s("div",{staticClass:"head p-2 bg-gray-100 flex justify-between border-b border-gray-300"},[s("div",{staticClass:"-mx-2 flex flex-wrap"},[s("div",{staticClass:"px-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.printTable()}}},[s("i",{staticClass:"las la-print"}),e._v(" "),s("span",[e._v(e._s(e.__("Print")))])])],1)])]),e._v(" "),s("div",{staticClass:"body flex flex-col px-2",attrs:{id:"invoice-container"}},[s("div",{staticClass:"flex -mx-2 flex-wrap",attrs:{id:"invoice-header"}},[s("div",{staticClass:"w-full print:w-1/3 md:w-1/3 px-2"},[s("div",{staticClass:"p-2"},[s("h3",{staticClass:"font-semibold text-xl text-gray-700 border-b border-blue-400 py-2"},[e._v(e._s(e.__("Store Details")))]),e._v(" "),s("div",{staticClass:"details"},[s("ul",{staticClass:"my-1"},[s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Order Code")))]),e._v(" "),s("span",[e._v(e._s(e.order.code))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Cashier")))]),e._v(" "),s("span",[e._v(e._s(e.order.user.username))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Date")))]),e._v(" "),s("span",[e._v(e._s(e.order.created_at))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Customer")))]),e._v(" "),s("span",[e._v(e._s(e.order.customer.name))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Type")))]),e._v(" "),s("span",[e._v(e._s(e.order.type))])]),e._v(" "),s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Payment Status")))]),e._v(" "),s("span",[e._v(e._s(e.order.payment_status))])]),e._v(" "),"delivery"===e.order.type?s("li",{staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(e.__("Delivery Status")))]),e._v(" "),s("span",[e._v(e._s(e.order.delivery_status))])]):e._e()])])])]),e._v(" "),s("div",{staticClass:"w-full print:w-1/3 md:w-1/3 px-2"},[s("div",{staticClass:"p-2"},[s("h3",{staticClass:"font-semibold text-xl text-gray-700 border-b border-blue-400 py-2"},[e._v(e._s(e.__("Billing Details")))]),e._v(" "),s("div",{staticClass:"details"},[s("ul",{staticClass:"my-1"},e._l(e.billing,(function(t){return s("li",{key:t.id,staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(t.label))]),e._v(" "),s("span",[e._v(e._s(e.order.billing_address[t.name]||"N/A"))])])})),0)])])]),e._v(" "),s("div",{staticClass:"w-full print:w-1/3 md:w-1/3 px-2"},[s("div",{staticClass:"p-2"},[s("h3",{staticClass:"font-semibold text-xl text-gray-700 border-b border-blue-400 py-2"},[e._v(e._s(e.__("Shipping Details")))]),e._v(" "),s("div",{staticClass:"details"},[s("ul",{staticClass:"my-1"},e._l(e.shipping,(function(t){return s("li",{key:t.id,staticClass:"flex justify-between text-gray-600 text-sm mb-1"},[s("span",{staticClass:"font-semibold"},[e._v(e._s(t.label))]),e._v(" "),s("span",[e._v(e._s(e.order.shipping_address[t.name]||"N/A"))])])})),0)])])])]),e._v(" "),s("div",{staticClass:"table w-full my-4"},[s("table",{staticClass:"table w-full"},[s("thead",{staticClass:"text-gray-600 bg-gray-100"},[s("tr",[s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"400"}},[e._v(e._s(e.__("Product")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Unit Price")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Quantity")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Discount")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Tax")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200",attrs:{width:"200"}},[e._v(e._s(e.__("Total Price")))])])]),e._v(" "),s("tbody",e._l(e.order.products,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"p-2 border border-gray-200"},[s("h3",{staticClass:"text-gray-700"},[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"text-sm text-gray-600"},[e._v(e._s(t.unit))])]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700"},[e._v(e._s(e._f("currency")(t.unit_price)))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700"},[e._v(e._s(t.quantity))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700"},[e._v(e._s(e._f("currency")(t.discount)))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700"},[e._v(e._s(e._f("currency")(t.tax_value)))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(t.total_price)))])])})),0),e._v(" "),s("tfoot",{staticClass:"font-semibold bg-gray-100"},[s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"2"}},[["unpaid","partially_paid"].includes(e.order.payment_status)?s("div",{staticClass:"flex justify-between"},[s("span",[e._v("\n "+e._s(e.__("Expiration Date"))+"\n ")]),e._v(" "),s("span",[e._v(e._s(e.order.final_payment_date))])]):e._e()]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"2"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Sub Total")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.subtotal)))])]),e._v(" "),e.order.discount>0?s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Discount")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(-e.order.discount)))])]):e._e(),e._v(" "),e.order.total_coupons>0?s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-left text-gray-700"},[e._v(e._s(e.__("Coupons")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(-e.order.total_coupons)))])]):e._e(),e._v(" "),e.order.shipping>0?s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Shipping")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.shipping)))])]):e._e(),e._v(" "),s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Total")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.total)))])]),e._v(" "),s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Paid")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.tendered)))])]),e._v(" "),["partially_paid","unpaid"].includes(e.order.payment_status)?s("tr",{staticClass:"bg-red-200 border-red-300"},[s("td",{staticClass:"p-2 border border-red-200 text-center text-red-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-red-200 text-red-700 text-left"},[e._v(e._s(e.__("Due")))]),e._v(" "),s("td",{staticClass:"p-2 border border-red-200 text-right text-red-700"},[e._v(e._s(e._f("currency")(e.order.change)))])]):s("tr",[s("td",{staticClass:"p-2 border border-gray-200 text-center text-gray-700",attrs:{colspan:"4"}}),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-gray-700 text-left"},[e._v(e._s(e.__("Change")))]),e._v(" "),s("td",{staticClass:"p-2 border border-gray-200 text-right text-gray-700"},[e._v(e._s(e._f("currency")(e.order.change)))])])])])])])])}),[],!1,null,null,null).exports;var Ne=s(2329),Me=s(1957),Ue=s(7166),Re=s.n(Ue),Xe=s(5675),Ze=s.n(Xe),Le=window.nsState,ze=window.nsScreen,Ie=window.nsExtraComponents;r.default.use(Ze(),{name:"_blank",specs:["fullscreen=yes","titlebar=yes","scrollbars=yes"],styles:["/css/app.css"]});var We=r.default.component("vue-apex-charts",Re()),Ye=Object.assign(Object.assign({NsModules:D,NsRewardsSystem:p,NsCreateCoupons:b,NsManageProducts:U,NsSettings:g,NsReset:y,NsPermissions:F,NsProcurement:B,NsProcurementInvoice:G,NsMedia:J.Z,NsDashboardCards:ge,NsCashierDashboard:De,NsBestCustomers:ye,NsBestCashiers:Ce,NsOrdersSummary:je,NsOrdersChart:Se,NsNotifications:K,NsSaleReport:ie,NsSoldStockReport:ae,NsProfitReport:le,NsCashFlowReport:de,NsYearlyReport:fe,NsPaymentTypesReport:be,NsBestProductsReport:me,NsStockAdjustment:Ae,NsPromptPopup:Te.Z,NsAlertPopup:Ne.Z,NsConfirmPopup:A.Z,NsPOSLoadingPopup:Me.Z,NsOrderInvoice:qe,VueApexCharts:We},i),Ie),Be=new r.default({el:"#dashboard-aside",data:{sidebar:"visible"},components:Ye,mounted:function(){var e=this;Le.behaviorState.subscribe((function(t){var s=t.object;e.sidebar=s.sidebar}))}});window.nsDashboardAside=Be,window.nsDashboardOverlay=new r.default({el:"#dashboard-overlay",data:{sidebar:null},components:Ye,mounted:function(){var e=this;Le.behaviorState.subscribe((function(t){var s=t.object;e.sidebar=s.sidebar}))},methods:{closeMenu:function(){Le.setState({sidebar:"hidden"===this.sidebar?"visible":"hidden"})}}}),window.nsDashboardHeader=new r.default({el:"#dashboard-header",data:{menuToggled:!1,sidebar:"visible"},components:Ye,methods:{toggleMenu:function(){this.menuToggled=!this.menuToggled},toggleSideMenu:function(){["lg","xl"].includes(ze.breakpoint),Le.setState({sidebar:"hidden"===this.sidebar?"visible":"hidden"})}},mounted:function(){var e=this;Le.behaviorState.subscribe((function(t){var s=t.object;e.sidebar=s.sidebar}))}}),window.nsComponents=Object.assign(Ye,i),window.nsDashboardContent=new r.default({el:"#dashboard-content",components:Ye})},162:(e,t,s)=>{"use strict";s.d(t,{l:()=>M,kq:()=>L,ih:()=>U,kX:()=>R});var r=s(6486),i=s(9669),n=s(2181),a=s(8345),o=s(9624),l=s(9248),c=s(230);function d(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,s)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,s)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var s=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=L.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:r}),new c.y((function(n){s._client[e](t,r,Object.assign(Object.assign({},s._client.defaults[e]),i)).then((function(e){s._lastRequestData=e,n.next(e.data),n.complete(),s._subject.next({identifier:"async.stop"})})).catch((function(e){var t;n.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),s._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,s=e.value;this._subject.next({identifier:t,value:s})}}])&&d(t.prototype,s),r&&d(t,r),e}(),f=s(3);function p(e,t){for(var s=0;s=1e3){for(var s,r=Math.floor((""+e).length/3),i=2;i>=1;i--){if(((s=parseFloat((0!=r?e/Math.pow(1e3,r):e).toPrecision(i)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}s%1!=0&&(s=s.toFixed(1)),t=s+["","k","m","b","t"][r]}return t})),S=s(1356),P=s(9698);function D(e,t){for(var s=0;s0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&q(t.prototype,s),r&&q(t,r),e}()),I=new b({sidebar:["xs","sm","md"].includes(z.breakpoint)?"hidden":"visible"});U.defineClient(i),window.nsEvent=M,window.nsHttpClient=U,window.nsSnackBar=R,window.nsCurrency=S.W,window.nsTruncate=P.b,window.nsRawCurrency=S.f,window.nsAbbreviate=$,window.nsState=I,window.nsUrl=X,window.nsScreen=z,window.ChartJS=n,window.EventEmitter=m,window.Popup=y.G,window.RxJS=g,window.FormValidation=C.Z,window.nsCrudHandler=Z},4364:(e,t,s)=>{"use strict";s.r(t),s.d(t,{nsAvatar:()=>Z,nsButton:()=>o,nsCheckbox:()=>p,nsCkeditor:()=>A,nsCloseButton:()=>P,nsCrud:()=>v,nsCrudForm:()=>x,nsDate:()=>j,nsDateTimePicker:()=>N.V,nsDatepicker:()=>L,nsField:()=>w,nsIconButton:()=>D,nsInput:()=>c,nsLink:()=>l,nsMediaInput:()=>S,nsMenu:()=>n,nsMultiselect:()=>C,nsNumpad:()=>M.Z,nsSelect:()=>d.R,nsSelectAudio:()=>f,nsSpinner:()=>_,nsSubmenu:()=>a,nsSwitch:()=>k,nsTableRow:()=>b,nsTabs:()=>V,nsTabsItem:()=>q,nsTextarea:()=>y});var r=s(538),i=s(162),n=r.default.component("ns-menu",{data:function(){return{defaultToggledState:!1,_save:0}},props:["href","label","icon","notification","toggled","identifier"],template:'\n \n ',mounted:function(){var e=this;this.defaultToggledState=void 0!==this.toggled?this.toggled:this.defaultToggledState,i.l.subject().subscribe((function(t){t.value!==e.identifier&&(e.defaultToggledState=!1)}))},methods:{toggleEmit:function(){var e=this;this.toggle().then((function(t){t&&i.l.emit({identifier:"side-menu.open",value:e.identifier})}))},toggle:function(){var e=this;return new Promise((function(t,s){0===e.href.length&&(e.defaultToggledState=!e.defaultToggledState,t(e.defaultToggledState))}))}}}),a=r.default.component("ns-submenu",{data:function(){return{}},props:["href","label","active"],mounted:function(){},template:'\n
    \n
  • \n \n \n \n
  • \n
    \n '}),o=r.default.component("ns-button",{data:function(){return{clicked:!1,_save:0}},props:["type","disabled","link","href","routerLink","to"],template:'\n
    \n \n \n \n
    \n ',mounted:function(){},computed:{isDisabled:function(){return this.disabled&&(0===this.disabled.length||"disabled"===this.disabled||this.disabled)},buttonclass:function(){var e;switch(this.type){case"info":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-blue-400 text-white");break;case"success":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-green-400 text-white");break;case"danger":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-red-400 text-white");break;case"warning":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-orange-400 text-white");break;default:e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-white text-gray-800")}return e}}}),l=r.default.component("ns-link",{data:function(){return{clicked:!1,_save:0}},props:["type","to","href"],template:'\n
    \n \n \n
    \n ',computed:{buttonclass:function(){switch(this.type){case"info":return"shadow bg-blue-400 text-white";case"success":return"shadow bg-green-400 text-white";case"danger":return"shadow bg-red-400 text-white";case"warning":return"shadow bg-orange-400 text-white";default:return"shadow bg-white text-gray-800"}}}}),c=r.default.component("ns-input",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),d=s(4451),u=s(7389),f=r.default.component("ns-select-audio",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:u.__,playSelectedSound:function(){this.field.value.length>0&&new Audio(this.field.value).play()}},template:'\n
    \n \n
    \n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),p=r.default.component("ns-checkbox",{data:function(){return{}},props:["checked","field","label"],template:'\n
    \n
    \n \n
    \n {{ label }}\n {{ field.label }}\n
    \n ',computed:{isChecked:function(){return this.field?this.field.value:this.checked}},methods:{toggleIt:function(){void 0!==this.field&&(this.field.value=!this.field.value),this.$emit("change",!this.checked)}}}),m=s(2242),h=s(419),v=r.default.component("ns-crud",{data:function(){return{isRefreshing:!1,sortColumn:"",searchInput:"",searchQuery:"",page:1,bulkAction:"",bulkActions:[],columns:[],selectedEntries:[],globallyChecked:!1,result:{current_page:null,data:[],first_page_url:null,from:null,last_page:null,last_page_url:null,next_page_url:null,path:null,per_page:null,prev_page_url:null,to:null,total:null}}},mounted:function(){void 0!==this.identifier&&nsCrudHandler.defineInstance(this.identifier,this),this.loadConfig()},props:["src","create-url","mode","identifier","queryParams"],computed:{getParsedSrc:function(){return"".concat(this.src,"?").concat(this.sortColumn).concat(this.searchQuery).concat(this.queryPage).concat(this.getQueryParams()?"&"+this.getQueryParams():"")},getSelectedAction:function(){var e=this,t=this.bulkActions.filter((function(t){return t.identifier===e.bulkAction}));return t.length>0&&t[0]},pagination:function(){return this.result?this.pageNumbers(this.result.last_page,this.result.current_page):[]},queryPage:function(){return this.result?"&page=".concat(this.page):""},resultInfo:function(){return(0,u.__)("displaying {perPage} on {items} items").replace("{perPage}",this.result.total).replace("{items}",this.result.total)}},methods:{__:u.__,getQueryParams:function(){var e=this;return this.queryParams?Object.keys(this.queryParams).map((function(t){return"".concat(t,"=").concat(e.queryParams[t])})).join("&"):""},pageNumbers:function(e,t){var s=[];return t>e-3?s.push(e-2,e-1,e):s.push(t,t+1,t+2,"...",e),s.filter((function(e){return e>0||"string"==typeof e}))},downloadContent:function(){i.ih.post("".concat(this.src,"/export?").concat(this.getQueryParams()),{entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(e){setTimeout((function(){return document.location=e.url}),300),i.kX.success((0,u.__)("The document has been generated.")).subscribe()}),(function(e){i.kX.error(e.message||(0,u.__)("Unexpected error occured.")).subscribe()}))},clearSelectedEntries:function(){var e=this;m.G.show(h.Z,{title:(0,u.__)("Clear Selected Entries ?"),message:(0,u.__)("Would you like to clear all selected entries ?"),onAction:function(t){t&&(e.selectedEntries=[])}})},refreshRow:function(e){if(!0===e.$checked){0===this.selectedEntries.filter((function(t){return t.$id===e.$id})).length&&this.selectedEntries.push(e)}else{var t=this.selectedEntries.filter((function(t){return t.$id===e.$id}));if(t.length>0){var s=this.selectedEntries.indexOf(t[0]);this.selectedEntries.splice(s,1)}}},handleShowOptions:function(e){this.result.data.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},handleGlobalChange:function(e){var t=this;this.globallyChecked=e,this.result.data.forEach((function(s){s.$checked=e,t.refreshRow(s)}))},loadConfig:function(){var e=this;i.ih.get("".concat(this.src,"/config?").concat(this.getQueryParams())).subscribe((function(t){e.columns=t.columns,e.bulkActions=t.bulkActions,e.refresh()}),(function(e){i.kX.error(e.message,"OK",{duration:!1}).subscribe()}))},cancelSearch:function(){this.searchInput="",this.search()},search:function(){this.searchInput?this.searchQuery="&search=".concat(this.searchInput):this.searchQuery="",this.refresh()},sort:function(e){for(var t in this.columns)t!==e&&(this.columns[t].$sorted=!1,this.columns[t].$direction="");switch(this.columns[e].$sorted=!0,this.columns[e].$direction){case"asc":this.columns[e].$direction="desc";break;case"desc":this.columns[e].$direction="";break;case"":this.columns[e].$direction="asc"}["asc","desc"].includes(this.columns[e].$direction)?this.sortColumn="active=".concat(e,"&direction=").concat(this.columns[e].$direction):this.sortColumn="",this.$emit("sort",this.columns[e]),this.refresh()},bulkDo:function(){var e=this;return this.bulkAction?this.selectedEntries.length>0?(console.log(this.getSelectedAction),confirm(this.getSelectedAction.confirm||this.$slots["error-bulk-confirmation"]||(0,u.__)("No bulk confirmation message provided on the CRUD class."))?i.ih.post("".concat(this.src,"/bulk-actions"),{action:this.bulkAction,entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(t){i.kX.info(t.message).subscribe(),e.selectedEntries=[],e.refresh()}),(function(e){i.kX.error(e.message).subscribe()})):void 0):i.kX.error(this.$slots["error-no-selection"]?this.$slots["error-no-selection"][0].text:(0,u.__)("No selection has been made.")).subscribe():i.kX.error(this.$slots["error-no-action"]?this.$slots["error-no-action"][0].text:(0,u.__)("No action has been selected.")).subscribe()},refresh:function(){var e=this;this.globallyChecked=!1,this.isRefreshing=!0,i.ih.get("".concat(this.getParsedSrc)).subscribe((function(t){t.data=t.data.map((function(t){return e.selectedEntries.filter((function(e){return e.$id===t.$id})).length>0&&(t.$checked=!0),t})),e.isRefreshing=!1,e.result=t,e.page=t.current_page}),(function(t){e.isRefreshing=!1,i.kX.error(t.message).subscribe()}))}},template:'\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{ column.label }}\n \n \n \n \n
    \n
    {{ __( \'There is nothing to display...\' ) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ resultInfo }}
    \n \n
    \n
    \n
    \n '}),b=r.default.component("ns-table-row",{props:["options","row","columns"],data:function(){return{optionsToggled:!1}},mounted:function(){},methods:{sanitizeHTML:function(e){var t=document.createElement("div");t.innerHTML=e;for(var s=t.getElementsByTagName("script"),r=s.length;r--;)s[r].parentNode.removeChild(s[r]);return t.innerHTML},getElementOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},toggleMenu:function(e){var t=this;if(this.row.$toggled=!this.row.$toggled,this.$emit("toggled",this.row),this.row.$toggled)setTimeout((function(){var e=t.$el.querySelectorAll(".relative > .absolute")[0],s=t.$el.querySelectorAll(".relative")[0],r=t.getElementOffset(s);e.style.top=r.top+"px",e.style.left=r.left+"px",s.classList.remove("relative"),s.classList.add("dropdown-holder")}),100);else{var s=this.$el.querySelectorAll(".dropdown-holder")[0];s.classList.remove("dropdown-holder"),s.classList.add("relative")}},handleChanged:function(e){this.row.$checked=e,this.$emit("updated",this.row)},triggerAsync:function(e){var t=this;e.confirm?confirm(e.confirm.message)&&i.ih[e.type.toLowerCase()](e.url).subscribe((function(e){i.kX.success(e.message).subscribe(),t.$emit("reload",t.row)}),(function(e){t.toggleMenu(),i.kX.error(e.message).subscribe()})):(i.l.emit({identifier:"ns-table-row-action",value:{action:e,row:this.row,component:this}}),this.toggleMenu())}},template:'\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n '}),_=r.default.component("ns-spinner",{data:function(){return{}},mounted:function(){},computed:{validatedSize:function(){return this.size||24},validatedBorder:function(){return this.border||8},validatedAnimation:function(){return this.animation||"fast"}},props:["color","size","border"],template:"\n
    \n
    \n
    \n "}),g=s(7266),x=r.default.component("ns-crud-form",{data:function(){return{form:{},globallyChecked:!1,formValidation:new g.Z,rows:[]}},mounted:function(){this.loadForm()},props:["src","create-url","field-class","return-url","submit-url","submit-method","disable-tabs"],computed:{activeTabFields:function(){for(var e in this.form.tabs)if(this.form.tabs[e].active)return this.form.tabs[e].fields;return[]}},methods:{toggle:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;this.form.tabs[e].active=!0},handleShowOptions:function(e){this.rows.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},submit:function(){var e=this;return this.formValidation.validateForm(this.form).length>0?i.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():(this.formValidation.disableForm(this.form),void 0===this.submitUrl?i.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():void i.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,this.formValidation.extractForm(this.form)).subscribe((function(t){if("success"===t.status){if(e.returnUrl&&e.returnUrl.length>0)return document.location=e.returnUrl;e.$emit("save",t)}e.formValidation.enableForm(e.form)}),(function(t){i.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t),e.formValidation.enableForm(e.form)})))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;i.ih.get("".concat(this.src)).subscribe({next:function(t){e.form=e.parseForm(t.form),i.kq.doAction("ns-crud-form-loaded",e),e.$emit("updated",e.form)},error:function(e){i.kX.error(e.message,"OKAY",{duration:0}).subscribe()}})},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var s in e.tabs)0===t&&(e.tabs[s].active=!0),e.tabs[s].active=void 0!==e.tabs[s].active&&e.tabs[s].active,e.tabs[s].fields=this.formValidation.createFields(e.tabs[s].fields),t++;return e}},template:'\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Return\n
    \n
    \n \n
    \n
    \n
    \n
    {{ tab.label }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n '}),y=r.default.component("ns-textarea",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),w=r.default.component("ns-field",{data:function(){return{}},mounted:function(){},computed:{isInputField:function(){return["text","password","email","number","tel"].includes(this.field.type)},isDateField:function(){return["date"].includes(this.field.type)},isSelectField:function(){return["select"].includes(this.field.type)},isTextarea:function(){return["textarea"].includes(this.field.type)},isCheckbox:function(){return["checkbox"].includes(this.field.type)},isMultiselect:function(){return["multiselect"].includes(this.field.type)},isSelectAudio:function(){return["select-audio"].includes(this.field.type)},isSwitch:function(){return["switch"].includes(this.field.type)},isMedia:function(){return["media"].includes(this.field.type)},isCkEditor:function(){return["ckeditor"].includes(this.field.type)},isDateTimePicker:function(){return["datetimepicker"].includes(this.field.type)},isCustom:function(){return["custom"].includes(this.field.type)}},props:["field"],methods:{addOption:function(e){"select"===this.field.type&&this.field.options.forEach((function(e){return e.selected=!1})),e.selected=!0;var t=this.field.options.indexOf(e);this.field.options.splice(t,1),this.field.options.unshift(e),this.refreshMultiselect(),this.$emit("change",{action:"addOption",option:e})},refreshMultiselect:function(){this.field.value=this.field.options.filter((function(e){return e.selected})).map((function(e){return e.value}))},removeOption:function(e){e.selected=!1,this.refreshMultiselect(),this.$emit("change",{action:"removeOption",option:e})}},template:'\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n '}),C=r.default.component("ns-multiselect",{data:function(){return{showPanel:!1,search:""}},props:["field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=void 0!==t.selected&&t.selected,e.field.value&&e.field.value.includes(t.value)&&(t.selected=!0),t}))}},methods:{__:u.__,addOption:function(e){this.field.disabled||(this.$emit("addOption",e),this.$forceUpdate(),setTimeout((function(){}),100))},removeOption:function(e,t){var s=this;if(!this.field.disabled)return t.preventDefault(),t.stopPropagation(),this.$emit("removeOption",e),this.$forceUpdate(),setTimeout((function(){s.search=""}),100),!1}},mounted:function(){var e=this;this.field.value&&this.field.value.reverse().forEach((function(t){var s=e.field.options.filter((function(e){return e.value===t}));s.length>=0&&e.addOption(s[0])}))},template:'\n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ option.label }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n
    \n '}),k=r.default.component("ns-switch",{data:function(){return{}},mounted:function(){},computed:{_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=t.value===e.field.value,t}))},hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":""},sizeClass:function(){return" w-1/".concat(this._options.length<=4?this._options.length:4)},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:u.__,setSelected:function(e){this.field.value=e.value,this._options.forEach((function(e){return e.selected=!1})),e.selected=!0,this.$forceUpdate(),this.$emit("change",e.value)}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n

    \n
    \n '}),j=r.default.component("ns-date",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),$=s(9576),S=r.default.component("ns-media-input",{template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n ',computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},data:function(){return{}},props:["placeholder","leading","type","field"],mounted:function(){},methods:{toggleMedia:function(){var e=this;new Promise((function(t,s){m.G.show($.Z,Object.assign({resolve:t,reject:s},e.field.data||{}))})).then((function(t){"use-selected"===t.event&&(e.field.data&&"url"!==e.field.data.type?e.field.data&&"model"!==e.field.data.type||(e.field.value=t.value[0]):e.field.value=t.value[0].sizes.original,e.$forceUpdate())}))}}}),P=r.default.component("ns-close-button",{template:'\n \n ',methods:{clicked:function(e){this.$emit("click",e)}}}),D=r.default.component("ns-icon-button",{template:'\n \n ',props:["className","buttonClass"],methods:{clicked:function(e){this.$emit("click",e)}}}),O=s(1272),E=s.n(O),T=s(5234),F=s.n(T),A=r.default.component("ns-ckeditor",{data:function(){return{editor:F()}},components:{ckeditor:E().component},mounted:function(){},methods:{__:u.__},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),V=r.default.component("ns-tabs",{data:function(){return{childrens:[]}},props:["active"],computed:{activeComponent:function(){var e=this.$children.filter((function(e){return e.active}));return e.length>0&&e[0]}},methods:{toggle:function(e){this.$emit("active",e.identifier),this.$emit("changeTab",e.identifier)}},mounted:function(){this.childrens=this.$children},template:'\n
    \n
    \n
    {{ tab.label }}
    \n
    \n \n
    \n '}),q=r.default.component("ns-tabs-item",{data:function(){return{}},mounted:function(){},props:["label","identifier","padding"],template:'\n
    \n \n
    \n '}),N=s(8655),M=s(3968),U=s(1726),R=s(7259);const X=r.default.extend({methods:{__:u.__},data:function(){return{svg:""}},mounted:function(){this.svg=(0,U.createAvatar)(R,{seed:this.displayName})},computed:{avatarUrl:function(){return 0===this.url.length?"":this.url}},props:["url","display-name"]});const Z=(0,s(1900).Z)(X,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex justify-between items-center flex-shrink-0"},[s("span",{staticClass:"hidden md:inline-block text-gray-600 px-2"},[e._v(e._s(e.__("Howdy, {name}").replace("{name}",this.displayName)))]),e._v(" "),s("span",{staticClass:"md:hidden text-gray-600 px-2"},[e._v(e._s(e.displayName))]),e._v(" "),s("div",{staticClass:"px-2"},[s("div",{staticClass:"w-8 h-8 overflow-hidden rounded-full bg-gray-600"},[""!==e.avatarUrl?s("img",{staticClass:"w-8 h-8 overflow-hidden rounded-full",attrs:{src:e.avatarUrl,alt:e.displayName,srcset:""}}):e._e(),e._v(" "),""===e.avatarUrl?s("div",{domProps:{innerHTML:e._s(e.svg)}}):e._e()])])])}),[],!1,null,null,null).exports;var L=s(6598).Z},8655:(e,t,s)=>{"use strict";s.d(t,{V:()=>o});var r=s(538),i=s(381),n=s.n(i),a=s(7389),o=r.default.component("ns-date-time-picker",{template:'\n
    \n \n
    \n \n \n {{ currentDay.format( \'YYYY/MM/DD HH:mm\' ) }}\n N/A\n \n
    \n

    {{ field.description }}

    \n \n
    \n ',props:["field","date"],data:function(){return{visible:!1,hours:0,minutes:0,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},watch:{visible:function(){var e=this;this.visible&&setTimeout((function(){e.$refs.hours.addEventListener("focus",(function(){this.select()})),e.$refs.minutes.addEventListener("focus",(function(){this.select()}))}),100)}},mounted:function(){var e=this;document.addEventListener("mousedown",(function(t){return e.checkClickedItem(t)})),this.field?this.currentDay=[void 0,null,""].includes(this.field.value)?n()():n()(this.field.value):this.currentDay=[void 0,null,""].includes(this.date)?n()():n()(this.date),this.hours=this.currentDay.format("HH"),this.minutes=this.currentDay.format("mm"),this.build()},methods:{__:a.__,detectHoursChange:function(){parseFloat(this.hours)<0&&(this.hours=0),parseFloat(this.hours)>23&&(this.hours=23),this.updateDateTime()},detectMinuteChange:function(){parseFloat(this.minutes)<0&&(this.minutes=0),parseFloat(this.minutes)>59&&(this.minutes=59),this.updateDateTime()},updateDateTime:function(){this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes),this.selectDate(this.currentDay)},checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes);var t=this.currentDay.format("YYYY/MM/DD HH:mm");this.field?(this.field.value=t,this.$emit("change",this.field)):this.$emit("change",this.currentDay)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var s=this.calendar.length-1;if(this.calendar[s].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(n().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}})},4451:(e,t,s)=>{"use strict";s.d(t,{R:()=>i});var r=s(7389),i=s(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:r.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,s)=>{"use strict";s.d(t,{W:()=>c,f:()=>d});var r=s(538),i=s(2077),n=s.n(i),a=s(6740),o=s.n(a),l=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),c=r.default.filter("currency",(function(e){var t,s,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===r){var i={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};s=o()(e,i).format()}else s=n()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(s).concat("after"===ns.currency.ns_currency_position?t:"")})),d=function(e){var t="0.".concat(l);return parseFloat(n()(e).format(t))}},9698:(e,t,s)=>{"use strict";s.d(t,{b:()=>r});var r=s(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,s)=>{"use strict";function r(e,t){for(var s=0;si});var i=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,s,i;return t=e,(s=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var s in e.tabs){var r=[],i=this.validateFieldsErrors(e.tabs[s].fields);i.length>0&&r.push(i),e.tabs[s].errors=r.flat(),t.push(r.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var s in e)0===t&&(e[s].active=!0),e[s].active=void 0!==e[s].active&&e[s].active,e[s].fields=this.createFields(e[s].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(s){t.fieldPassCheck(e,s)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var s in e.tabs)void 0===t[s]&&(t[s]={}),t[s]=this.extractFields(e.tabs[s].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var s=function(s){var r=s.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===r.length&&e.tabs[r[0]].fields.forEach((function(e){e.name===r[1]&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))})),s===e.main.name&&t.errors[s].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var r in t.errors)s(r)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var s=function(s){e.forEach((function(e){e.name===s&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))}))};for(var r in t.errors)s(r)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){s.identifier===t.identifier&&!0===s.invalid&&e.errors.splice(r,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){!0===s[t.identifier]&&e.errors.splice(r,1)}))}return e}}])&&r(t.prototype,s),i&&r(t,i),e}()},7389:(e,t,s)=>{"use strict";s.d(t,{__:()=>r,c:()=>i});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},i=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,s)=>{"use strict";function r(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}s.d(t,{Z:()=>r})},6386:(e,t,s)=>{"use strict";function r(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}s.d(t,{Z:()=>r})},2242:(e,t,s)=>{"use strict";s.d(t,{G:()=>a});var r=s(9248);function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{};if(i(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var s=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[s-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new r.x}var t,s,a;return t=e,a=[{key:"show",value:function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=new e(r);return i.open(t,s),i}}],(s=[{key:"open",value:function(e){var t,s,r,i=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",a.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){i.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var o=Vue.extend(e);this.instance=new o({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=n,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&n(t.prototype,s),a&&n(t,a),e}()},9624:(e,t,s)=>{"use strict";s.d(t,{S:()=>n});var r=s(3260);function i(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return r.Observable.create((function(r){var n=s.__createSnack({message:e,label:t,type:i.type}),a=n.buttonNode,o=(n.textNode,n.snackWrapper,n.sampleSnack);a.addEventListener("click",(function(e){r.onNext(a),r.onCompleted(),o.remove()})),s.__startTimer(i.duration,o)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var s,r=function(){e>0&&!1!==e&&(s=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(s)})),t.addEventListener("mouseleave",(function(){r()})),r()}},{key:"__createSnack",value:function(e){var t=e.message,s=e.label,r=e.type,i=void 0===r?"info":r,n=document.getElementById("snack-wrapper")||document.createElement("div"),a=document.createElement("div"),o=document.createElement("p"),l=document.createElement("div"),c=document.createElement("button"),d="",u="";switch(i){case"info":d="text-white hover:bg-blue-400 bg-blue-500",u="bg-gray-900 text-white";break;case"error":d="text-red-700 hover:bg-white bg-white",u="bg-red-500 text-white";break;case"success":d="text-green-700 hover:bg-white bg-white",u="bg-green-500 text-white"}return o.textContent=t,s&&(c.textContent=s,c.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(d)),l.appendChild(c)),a.appendChild(o),a.appendChild(l),a.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(u)),n.appendChild(a),null===document.getElementById("snack-wrapper")&&(n.setAttribute("id","snack-wrapper"),n.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(n)),{snackWrapper:n,sampleSnack:a,buttonsWrapper:l,buttonNode:c,textNode:o}}}])&&i(t.prototype,s),n&&i(t,n),e}()},824:(e,t,s)=>{"use strict";var r=s(381),i=s.n(r);ns.date.moment=i()(ns.date.current),ns.date.interval=setInterval((function(){ns.date.moment.add(1,"seconds"),ns.date.current=i()(ns.date.current).add(1,"seconds").format("YYYY-MM-DD HH:mm:ss")}),1e3),ns.date.getNowString=function(){var e=Date.parse((new Date).toLocaleString("en-US",{timeZone:ns.date.timeZone}));return i()(e).format("YYYY-MM-DD HH:mm:ss")},ns.date.getMoment=function(){var e=Date.parse((new Date).toLocaleString("en-US",{timeZone:ns.date.timeZone}));return i()(e)}},6700:(e,t,s)=>{var r={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function i(e){var t=n(e);return s(t)}function n(e){if(!s.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=n,e.exports=i,i.id=6700},6598:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});var r=s(381),i=s.n(r);const n={name:"ns-datepicker",props:["label","date"],data:function(){return{visible:!1,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},mounted:function(){document.addEventListener("click",this.checkClickedItem),this.currentDay=[void 0,null].includes(this.date)?i()():i()(this.date),this.build()},methods:{__:s(7389).__,checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.visible=!1,this.$emit("change",e)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var s=this.calendar.length-1;if(this.calendar[s].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(i().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}};const a=(0,s(1900).Z)(n,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"picker"},[s("div",{staticClass:"rounded cursor-pointer bg-white shadow px-1 py-1 flex items-center text-gray-700",on:{click:function(t){e.visible=!e.visible}}},[s("i",{staticClass:"las la-clock text-2xl"}),e._v(" "),s("span",{staticClass:"mx-1 text-sm"},[s("span",[e._v(e._s(e.label||e.__("Date"))+" : ")]),e._v(" "),e.currentDay?s("span",[e._v(e._s(e.currentDay.format("YYYY/MM/DD")))]):e._e(),e._v(" "),null===e.currentDay?s("span",[e._v(e._s(e.__("N/A")))]):e._e()])]),e._v(" "),e.visible?s("div",{staticClass:"relative h-0 w-0 -mb-2"},[s("div",{staticClass:"w-72 mt-2 shadow rounded bg-white anim-duration-300 zoom-in-entrance flex flex-col"},[s("div",{staticClass:"flex-auto"},[s("div",{staticClass:"p-2 flex items-center"},[s("div",[s("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.subMonth()}}},[s("i",{staticClass:"las la-angle-left"})])]),e._v(" "),s("div",{staticClass:"flex flex-auto font-semibold text-gray-700 justify-center"},[e._v(e._s(e.currentDay.format("MMM"))+" "+e._s(e.currentDay.format("YYYY")))]),e._v(" "),s("div",[s("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.addMonth()}}},[s("i",{staticClass:"las la-angle-right"})])])]),e._v(" "),s("div",{staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},[s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sun")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Mon")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Tue")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Wed")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Thr")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Fri")))]),e._v(" "),s("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sat")))])]),e._v(" "),e._l(e.calendar,(function(t,r){return s("div",{key:r,staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},e._l(e.daysOfWeek,(function(r,i){return s("div",{key:i,staticClass:"h-8 flex justify-center items-center text-sm"},[e._l(t,(function(t,i){return[t.dayOfWeek===r?s("div",{key:i,staticClass:"h-full w-full flex items-center justify-center cursor-pointer",class:t.date.format("DD")===e.currentDay.format("DD")?"bg-blue-400 text-white border border-blue-500":"hover:bg-gray-100 border border-gray-200",on:{click:function(s){return e.selectDate(t.date)}}},[e._v("\n "+e._s(t.date.format("DD"))+"\n ")]):e._e()]}))],2)})),0)}))],2),e._v(" "),s("div")])]):e._e()])}),[],!1,null,null,null).exports},3968:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const a=(0,s(1900).Z)(n,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,r){return s("div",{key:r,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(s){return e.inputValue(t)}}},[void 0!==t.value?s("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?s("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},9576:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});var r=s(162),i=s(8603),n=s(7389);const a={name:"ns-media",props:["popup"],components:{VueUpload:s(2948)},data:function(){return{pages:[{label:(0,n.__)("Upload"),name:"upload",selected:!1},{label:(0,n.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return r.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:i.Z,__:n.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return r.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){r.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){r.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,r.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(s,r){r!==t.response.data.indexOf(e)&&(s.selected=!1)})),e.selected=!e.selected}}};const o=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[s("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[s("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),s("ul",e._l(e.pages,(function(t,r){return s("li",{key:r,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(s){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?s("div",{staticClass:"content w-full overflow-hidden flex"},[s("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[s("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[s("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),s("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[s("ul",e._l(e.files,(function(t,r){return s("li",{key:r,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[s("span",[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?s("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?s("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[s("div"),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),s("div",{staticClass:"flex flex-auto overflow-hidden"},[s("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[s("div",{staticClass:"flex flex-auto"},[s("div",{staticClass:"p-2 overflow-x-auto"},[s("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,r){return s("div",{key:r},[s("div",{staticClass:"p-2"},[s("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(s){return e.selectResource(t)}}},[s("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?s("div",{staticClass:"flex flex-auto items-center justify-center"},[s("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?s("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[s("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[s("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),s("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),s("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),s("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),s("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),s("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[s("div",{staticClass:"flex -mx-2 flex-shrink-0"},[s("div",{staticClass:"px-2 flex-shrink-0 flex"},[s("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?s("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[s("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?s("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[s("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?s("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[s("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),s("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[s("div",{staticClass:"px-2"},[s("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[s("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),s("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?s("div",{staticClass:"px-2"},[s("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},2329:(e,t,s)=>{"use strict";s.d(t,{Z:()=>i});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(void 0!==e.$popupParams.onAction&&e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){void 0!==this.$popupParams.onAction&&this.$popupParams.onAction(e),this.$popup.close()}}};const i=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-6/7-screen md:w-4/7-screen lg:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[e.title?s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]):e._e(),e._v(" "),s("p",{staticClass:"py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700 justify-end items-center p-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))])],1)])}),[],!1,null,null,null).exports},419:(e,t,s)=>{"use strict";s.d(t,{Z:()=>i});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const i=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[s("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports},1957:(e,t,s)=>{"use strict";s.d(t,{Z:()=>i});const r={name:"ns-pos-loading-popup"};const i=(0,s(1900).Z)(r,(function(){var e=this.$createElement;return(this._self._c||e)("ns-spinner")}),[],!1,null,null,null).exports},7096:(e,t,s)=>{"use strict";s.d(t,{Z:()=>l});var r=s(162),i=s(7389);function n(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s{"use strict";s.d(t,{Z:()=>i});const r={data:function(){return{title:"",message:"",input:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.input=this.$popupParams.input||"",this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.reject(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e?this.input:e),this.$popup.close()},reject:function(e){this.$popupParams.reject(e),this.$popup.close()}}};const i=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-5/7-screen md:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-2"},[s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"w-full md:mx-auto md:w-2/3 py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"p-2"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.input,expression:"input"}],staticClass:"text-gray-700 w-full border-2 p-2 border-blue-400",attrs:{name:"",id:"",cols:"30",rows:"10"},domProps:{value:e.input},on:{input:function(t){t.target.composing||(e.input=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.reject(!1)}}},[e._v(e._s(e.__("Cancel")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=7948,e(e.s=t);var t}));e.O()}]); //# sourceMappingURL=app.min.js.map \ No newline at end of file diff --git a/public/js/auth.min.js b/public/js/auth.min.js index 411290b4a..c8ee5d412 100644 --- a/public/js/auth.min.js +++ b/public/js/auth.min.js @@ -1,2 +1,2 @@ -(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[743],{8108:(e,t,n)=>{"use strict";var i=n(538),s=n(8202),r=n(5882).Z,a=n(7486).Z,l=n(5139).Z,o=n(1158).Z,d=(window.nsState,window.nsScreen,window.nsExtraComponents);window.nsComponents=Object.assign(s,d),window.authVueComponent=new i.default({el:"#page-container",components:Object.assign({nsLogin:a,nsRegister:r,nsPasswordLost:l,nsNewPassword:o},d)})},162:(e,t,n)=>{"use strict";n.d(t,{l:()=>M,kq:()=>N,ih:()=>V,kX:()=>R});var i=n(6486),s=n(9669),r=n(2181),a=n(8345),l=n(9624),o=n(9248),d=n(230);function c(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,n)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,n)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=N.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:i}),new d.y((function(r){n._client[e](t,i,Object.assign(Object.assign({},n._client.defaults[e]),s)).then((function(e){n._lastRequestData=e,r.next(e.data),r.complete(),n._subject.next({identifier:"async.stop"})})).catch((function(e){var t;r.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),n._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,n=e.value;this._subject.next({identifier:t,value:n})}}])&&c(t.prototype,n),i&&c(t,i),e}(),f=n(3);function h(e,t){for(var n=0;n=1e3){for(var n,i=Math.floor((""+e).length/3),s=2;s>=1;s--){if(((n=parseFloat((0!=i?e/Math.pow(1e3,i):e).toPrecision(s)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}n%1!=0&&(n=n.toFixed(1)),t=n+["","k","m","b","t"][i]}return t})),S=n(1356),E=n(9698);function T(e,t){for(var n=0;n0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&z(t.prototype,n),i&&z(t,i),e}()),W=new b({sidebar:["xs","sm","md"].includes(Z.breakpoint)?"hidden":"visible"});V.defineClient(s),window.nsEvent=M,window.nsHttpClient=V,window.nsSnackBar=R,window.nsCurrency=S.W,window.nsTruncate=E.b,window.nsRawCurrency=S.f,window.nsAbbreviate=$,window.nsState=W,window.nsUrl=I,window.nsScreen=Z,window.ChartJS=r,window.EventEmitter=p,window.Popup=w.G,window.RxJS=y,window.FormValidation=k.Z,window.nsCrudHandler=L},8202:(e,t,n)=>{"use strict";n.r(t),n.d(t,{nsButton:()=>l,nsCheckbox:()=>u,nsCkeditor:()=>P,nsCloseButton:()=>S,nsCrud:()=>v,nsCrudForm:()=>y,nsDate:()=>j,nsDateTimePicker:()=>z.V,nsDatepicker:()=>M,nsField:()=>w,nsIconButton:()=>E,nsInput:()=>d,nsLink:()=>o,nsMediaInput:()=>$,nsMenu:()=>r,nsMultiselect:()=>_,nsNumpad:()=>X.Z,nsSelect:()=>c.R,nsSpinner:()=>b,nsSubmenu:()=>a,nsSwitch:()=>k,nsTableRow:()=>m,nsTabs:()=>A,nsTabsItem:()=>q,nsTextarea:()=>x});var i=n(538),s=n(162),r=i.default.component("ns-menu",{data:function(){return{defaultToggledState:!1,_save:0}},props:["href","label","icon","notification","toggled","identifier"],template:'\n \n ',mounted:function(){var e=this;this.defaultToggledState=void 0!==this.toggled?this.toggled:this.defaultToggledState,s.l.subject().subscribe((function(t){t.value!==e.identifier&&(e.defaultToggledState=!1)}))},methods:{toggleEmit:function(){var e=this;this.toggle().then((function(t){t&&s.l.emit({identifier:"side-menu.open",value:e.identifier})}))},toggle:function(){var e=this;return new Promise((function(t,n){0===e.href.length&&(e.defaultToggledState=!e.defaultToggledState,t(e.defaultToggledState))}))}}}),a=i.default.component("ns-submenu",{data:function(){return{}},props:["href","label","active"],mounted:function(){},template:'\n
    \n
  • \n \n \n \n
  • \n
    \n '}),l=i.default.component("ns-button",{data:function(){return{clicked:!1,_save:0}},props:["type","disabled","link","href","routerLink","to"],template:'\n
    \n \n \n \n
    \n ',mounted:function(){},computed:{isDisabled:function(){return this.disabled&&(0===this.disabled.length||"disabled"===this.disabled||this.disabled)},buttonclass:function(){var e;switch(this.type){case"info":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-blue-400 text-white");break;case"success":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-green-400 text-white");break;case"danger":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-red-400 text-white");break;case"warning":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-orange-400 text-white");break;default:e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-white text-gray-800")}return e}}}),o=i.default.component("ns-link",{data:function(){return{clicked:!1,_save:0}},props:["type","to","href"],template:'\n
    \n \n \n
    \n ',computed:{buttonclass:function(){switch(this.type){case"info":return"shadow bg-blue-400 text-white";case"success":return"shadow bg-green-400 text-white";case"danger":return"shadow bg-red-400 text-white";case"warning":return"shadow bg-orange-400 text-white";default:return"shadow bg-white text-gray-800"}}}}),d=i.default.component("ns-input",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),c=n(4451),u=i.default.component("ns-checkbox",{data:function(){return{}},props:["checked","field","label"],template:'\n
    \n
    \n \n
    \n {{ label }}\n {{ field.label }}\n
    \n ',computed:{isChecked:function(){return this.field?this.field.value:this.checked}},methods:{toggleIt:function(){void 0!==this.field&&(this.field.value=!this.field.value),this.$emit("change",!this.checked)}}}),f=n(7389),h=n(2242),p=n(419),v=i.default.component("ns-crud",{data:function(){return{isRefreshing:!1,sortColumn:"",searchInput:"",searchQuery:"",page:1,bulkAction:"",bulkActions:[],columns:[],selectedEntries:[],globallyChecked:!1,result:{current_page:null,data:[],first_page_url:null,from:null,last_page:null,last_page_url:null,next_page_url:null,path:null,per_page:null,prev_page_url:null,to:null,total:null}}},mounted:function(){void 0!==this.identifier&&nsCrudHandler.defineInstance(this.identifier,this),this.loadConfig()},props:["src","create-url","mode","identifier","queryParams"],computed:{getParsedSrc:function(){return"".concat(this.src,"?").concat(this.sortColumn).concat(this.searchQuery).concat(this.queryPage).concat(this.getQueryParams()?"&"+this.getQueryParams():"")},getSelectedAction:function(){var e=this,t=this.bulkActions.filter((function(t){return t.identifier===e.bulkAction}));return t.length>0&&t[0]},pagination:function(){return this.result?this.pageNumbers(this.result.last_page,this.result.current_page):[]},queryPage:function(){return this.result?"&page=".concat(this.page):""},resultInfo:function(){return(0,f.__)("displaying {perPage} on {items} items").replace("{perPage}",this.result.total).replace("{items}",this.result.total)}},methods:{__:f.__,getQueryParams:function(){var e=this;return this.queryParams?Object.keys(this.queryParams).map((function(t){return"".concat(t,"=").concat(e.queryParams[t])})).join("&"):""},pageNumbers:function(e,t){var n=[];return t>e-3?n.push(e-2,e-1,e):n.push(t,t+1,t+2,"...",e),n.filter((function(e){return e>0||"string"==typeof e}))},downloadContent:function(){s.ih.post("".concat(this.src,"/export?").concat(this.getQueryParams()),{entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(e){setTimeout((function(){return document.location=e.url}),300),s.kX.success((0,f.__)("The document has been generated.")).subscribe()}),(function(e){s.kX.error(e.message||(0,f.__)("Unexpected error occured.")).subscribe()}))},clearSelectedEntries:function(){var e=this;h.G.show(p.Z,{title:(0,f.__)("Clear Selected Entries ?"),message:(0,f.__)("Would you like to clear all selected entries ?"),onAction:function(t){t&&(e.selectedEntries=[])}})},refreshRow:function(e){if(!0===e.$checked){0===this.selectedEntries.filter((function(t){return t.$id===e.$id})).length&&this.selectedEntries.push(e)}else{var t=this.selectedEntries.filter((function(t){return t.$id===e.$id}));if(t.length>0){var n=this.selectedEntries.indexOf(t[0]);this.selectedEntries.splice(n,1)}}},handleShowOptions:function(e){this.result.data.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},handleGlobalChange:function(e){var t=this;this.globallyChecked=e,this.result.data.forEach((function(n){n.$checked=e,t.refreshRow(n)}))},loadConfig:function(){var e=this;s.ih.get("".concat(this.src,"/config?").concat(this.getQueryParams())).subscribe((function(t){e.columns=t.columns,e.bulkActions=t.bulkActions,e.refresh()}),(function(e){s.kX.error(e.message,"OK",{duration:!1}).subscribe()}))},cancelSearch:function(){this.searchInput="",this.search()},search:function(){this.searchInput?this.searchQuery="&search=".concat(this.searchInput):this.searchQuery="",this.refresh()},sort:function(e){for(var t in this.columns)t!==e&&(this.columns[t].$sorted=!1,this.columns[t].$direction="");switch(this.columns[e].$sorted=!0,this.columns[e].$direction){case"asc":this.columns[e].$direction="desc";break;case"desc":this.columns[e].$direction="";break;case"":this.columns[e].$direction="asc"}["asc","desc"].includes(this.columns[e].$direction)?this.sortColumn="active=".concat(e,"&direction=").concat(this.columns[e].$direction):this.sortColumn="",this.$emit("sort",this.columns[e]),this.refresh()},bulkDo:function(){var e=this;return this.bulkAction?this.selectedEntries.length>0?(console.log(this.getSelectedAction),confirm(this.getSelectedAction.confirm||this.$slots["error-bulk-confirmation"]||(0,f.__)("No bulk confirmation message provided on the CRUD class."))?s.ih.post("".concat(this.src,"/bulk-actions"),{action:this.bulkAction,entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(t){s.kX.info(t.message).subscribe(),e.selectedEntries=[],e.refresh()}),(function(e){s.kX.error(e.message).subscribe()})):void 0):s.kX.error(this.$slots["error-no-selection"]?this.$slots["error-no-selection"][0].text:(0,f.__)("No selection has been made.")).subscribe():s.kX.error(this.$slots["error-no-action"]?this.$slots["error-no-action"][0].text:(0,f.__)("No action has been selected.")).subscribe()},refresh:function(){var e=this;this.globallyChecked=!1,this.isRefreshing=!0,s.ih.get("".concat(this.getParsedSrc)).subscribe((function(t){t.data=t.data.map((function(t){return e.selectedEntries.filter((function(e){return e.$id===t.$id})).length>0&&(t.$checked=!0),t})),e.isRefreshing=!1,e.result=t,e.page=t.current_page}),(function(t){e.isRefreshing=!1,s.kX.error(t.message).subscribe()}))}},template:'\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{ column.label }}\n \n \n \n \n
    \n
    {{ __( \'There is nothing to display...\' ) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ resultInfo }}
    \n \n
    \n
    \n
    \n '}),m=i.default.component("ns-table-row",{props:["options","row","columns"],data:function(){return{optionsToggled:!1}},mounted:function(){},methods:{sanitizeHTML:function(e){var t=document.createElement("div");t.innerHTML=e;for(var n=t.getElementsByTagName("script"),i=n.length;i--;)n[i].parentNode.removeChild(n[i]);return t.innerHTML},getElementOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},toggleMenu:function(e){var t=this;if(this.row.$toggled=!this.row.$toggled,this.$emit("toggled",this.row),this.row.$toggled)setTimeout((function(){var e=t.$el.querySelectorAll(".relative > .absolute")[0],n=t.$el.querySelectorAll(".relative")[0],i=t.getElementOffset(n);e.style.top=i.top+"px",e.style.left=i.left+"px",n.classList.remove("relative"),n.classList.add("dropdown-holder")}),100);else{var n=this.$el.querySelectorAll(".dropdown-holder")[0];n.classList.remove("dropdown-holder"),n.classList.add("relative")}},handleChanged:function(e){this.row.$checked=e,this.$emit("updated",this.row)},triggerAsync:function(e){var t=this;e.confirm?confirm(e.confirm.message)&&s.ih[e.type.toLowerCase()](e.url).subscribe((function(e){s.kX.success(e.message).subscribe(),t.$emit("reload",t.row)}),(function(e){t.toggleMenu(),s.kX.error(e.message).subscribe()})):(s.l.emit({identifier:"ns-table-row-action",value:{action:e,row:this.row,component:this}}),this.toggleMenu())}},template:'\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n '}),b=i.default.component("ns-spinner",{data:function(){return{}},mounted:function(){},computed:{validatedSize:function(){return this.size||24},validatedBorder:function(){return this.border||8},validatedAnimation:function(){return this.animation||"fast"}},props:["color","size","border"],template:"\n
    \n
    \n
    \n "}),g=n(7266),y=i.default.component("ns-crud-form",{data:function(){return{form:{},globallyChecked:!1,formValidation:new g.Z,rows:[]}},mounted:function(){this.loadForm()},props:["src","create-url","field-class","return-url","submit-url","submit-method","disable-tabs"],computed:{activeTabFields:function(){for(var e in this.form.tabs)if(this.form.tabs[e].active)return this.form.tabs[e].fields;return[]}},methods:{toggle:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;this.form.tabs[e].active=!0},handleShowOptions:function(e){this.rows.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},submit:function(){var e=this;return this.formValidation.validateForm(this.form).length>0?s.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():(this.formValidation.disableForm(this.form),void 0===this.submitUrl?s.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():void s.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,this.formValidation.extractForm(this.form)).subscribe((function(t){if("success"===t.status){if(e.returnUrl&&e.returnUrl.length>0)return document.location=e.returnUrl;e.$emit("save",t)}e.formValidation.enableForm(e.form)}),(function(t){s.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t),e.formValidation.enableForm(e.form)})))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;s.ih.get("".concat(this.src)).subscribe((function(t){e.form=e.parseForm(t.form),s.kq.doAction("ns-crud-form-loaded",e),e.$emit("updated",e.form)}),(function(e){s.kX.error(e.message,"OKAY",{duration:0}).subscribe()}))},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var n in e.tabs)0===t&&(e.tabs[n].active=!0),e.tabs[n].active=void 0!==e.tabs[n].active&&e.tabs[n].active,e.tabs[n].fields=this.formValidation.createFields(e.tabs[n].fields),t++;return e}},template:'\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Return\n
    \n
    \n
    \n \n \n
    \n

    {{ form.main.description }}

    \n

    \n {{ error.identifier }}\n {{ error.message }}\n

    \n
    \n
    \n
    \n
    {{ tab.label }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n '}),x=i.default.component("ns-textarea",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),w=i.default.component("ns-field",{data:function(){return{}},mounted:function(){},computed:{isInputField:function(){return["text","password","email","number","tel"].includes(this.field.type)},isDateField:function(){return["date"].includes(this.field.type)},isSelectField:function(){return["select"].includes(this.field.type)},isTextarea:function(){return["textarea"].includes(this.field.type)},isCheckbox:function(){return["checkbox"].includes(this.field.type)},isMultiselect:function(){return["multiselect"].includes(this.field.type)},isSwitch:function(){return["switch"].includes(this.field.type)},isMedia:function(){return["media"].includes(this.field.type)},isCkEditor:function(){return["ckeditor"].includes(this.field.type)},isDateTimePicker:function(){return["datetimepicker"].includes(this.field.type)},isCustom:function(){return["custom"].includes(this.field.type)}},props:["field"],methods:{addOption:function(e){"select"===this.field.type&&this.field.options.forEach((function(e){return e.selected=!1})),e.selected=!0;var t=this.field.options.indexOf(e);this.field.options.splice(t,1),this.field.options.unshift(e),this.refreshMultiselect(),this.$emit("change",{action:"addOption",option:e})},refreshMultiselect:function(){this.field.value=this.field.options.filter((function(e){return e.selected})).map((function(e){return e.value}))},removeOption:function(e){e.selected=!1,this.refreshMultiselect(),this.$emit("change",{action:"removeOption",option:e})}},template:'\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n '}),_=i.default.component("ns-multiselect",{data:function(){return{showPanel:!1,search:""}},props:["field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=void 0!==t.selected&&t.selected,e.field.value&&e.field.value.includes(t.value)&&(t.selected=!0),t}))}},methods:{__:f.__,addOption:function(e){this.field.disabled||(this.$emit("addOption",e),this.$forceUpdate(),setTimeout((function(){}),100))},removeOption:function(e,t){var n=this;if(!this.field.disabled)return t.preventDefault(),t.stopPropagation(),this.$emit("removeOption",e),this.$forceUpdate(),setTimeout((function(){n.search=""}),100),!1}},mounted:function(){var e=this;this.field.value&&this.field.value.reverse().forEach((function(t){var n=e.field.options.filter((function(e){return e.value===t}));n.length>=0&&e.addOption(n[0])}))},template:'\n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ option.label }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n
    \n '}),k=i.default.component("ns-switch",{data:function(){return{}},mounted:function(){},computed:{_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=t.value===e.field.value,t}))},hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":""},sizeClass:function(){return" w-1/".concat(this._options.length<=4?this._options.length:4)},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:f.__,setSelected:function(e){this.field.value=e.value,this._options.forEach((function(e){return e.selected=!1})),e.selected=!0,this.$forceUpdate(),this.$emit("change",e.value)}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n

    \n
    \n '}),j=i.default.component("ns-date",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),C=n(9576),$=i.default.component("ns-media-input",{template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n ',computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},data:function(){return{}},props:["placeholder","leading","type","field"],mounted:function(){},methods:{toggleMedia:function(){var e=this;new Promise((function(t,n){h.G.show(C.Z,Object.assign({resolve:t,reject:n},e.field.data||{}))})).then((function(t){"use-selected"===t.event&&(e.field.data&&"url"!==e.field.data.type?e.field.data&&"model"!==e.field.data.type||(e.field.value=t.value[0]):e.field.value=t.value[0].sizes.original,e.$forceUpdate())}))}}}),S=i.default.component("ns-close-button",{template:'\n \n ',methods:{clicked:function(e){this.$emit("click",e)}}}),E=i.default.component("ns-icon-button",{template:'\n \n ',props:["className","buttonClass"],methods:{clicked:function(e){this.$emit("click",e)}}}),T=n(1272),O=n.n(T),F=n(5234),D=n.n(F),P=i.default.component("ns-ckeditor",{data:function(){return{editor:D()}},components:{ckeditor:O().component},mounted:function(){},methods:{__:f.__},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),A=i.default.component("ns-tabs",{data:function(){return{childrens:[]}},props:["active"],computed:{activeComponent:function(){var e=this.$children.filter((function(e){return e.active}));return e.length>0&&e[0]}},methods:{toggle:function(e){this.$emit("active",e.identifier),this.$emit("changeTab",e.identifier)}},mounted:function(){this.childrens=this.$children},template:'\n
    \n
    \n
    {{ tab.label }}
    \n
    \n \n
    \n '}),q=i.default.component("ns-tabs-item",{data:function(){return{}},mounted:function(){},props:["label","identifier","padding"],template:'\n
    \n \n
    \n '}),z=n(8655),X=n(3968),M=n(6598).Z},8655:(e,t,n)=>{"use strict";n.d(t,{V:()=>l});var i=n(538),s=n(381),r=n.n(s),a=n(7389),l=i.default.component("ns-date-time-picker",{template:'\n
    \n \n
    \n \n \n {{ currentDay.format( \'YYYY/MM/DD HH:mm\' ) }}\n N/A\n \n
    \n

    {{ field.description }}

    \n \n
    \n ',props:["field","date"],data:function(){return{visible:!1,hours:0,minutes:0,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},watch:{visible:function(){var e=this;this.visible&&setTimeout((function(){e.$refs.hours.addEventListener("focus",(function(){this.select()})),e.$refs.minutes.addEventListener("focus",(function(){this.select()}))}),100)}},mounted:function(){var e=this;document.addEventListener("mousedown",(function(t){return e.checkClickedItem(t)})),this.field?this.currentDay=[void 0,null,""].includes(this.field.value)?r()():r()(this.field.value):this.currentDay=[void 0,null,""].includes(this.date)?r()():r()(this.date),this.hours=this.currentDay.format("HH"),this.minutes=this.currentDay.format("mm"),this.build()},methods:{__:a.__,detectHoursChange:function(){parseFloat(this.hours)<0&&(this.hours=0),parseFloat(this.hours)>23&&(this.hours=23),this.updateDateTime()},detectMinuteChange:function(){parseFloat(this.minutes)<0&&(this.minutes=0),parseFloat(this.minutes)>59&&(this.minutes=59),this.updateDateTime()},updateDateTime:function(){this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes),this.selectDate(this.currentDay)},checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes);var t=this.currentDay.format("YYYY/MM/DD HH:mm");this.field?(this.field.value=t,this.$emit("change",this.field)):this.$emit("change",this.currentDay)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var n=this.calendar.length-1;if(this.calendar[n].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(r().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}})},4451:(e,t,n)=>{"use strict";n.d(t,{R:()=>s});var i=n(7389),s=n(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:i.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,n)=>{"use strict";n.d(t,{W:()=>d,f:()=>c});var i=n(538),s=n(2077),r=n.n(s),a=n(6740),l=n.n(a),o=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),d=i.default.filter("currency",(function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===i){var s={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};n=l()(e,s).format()}else n=r()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(n).concat("after"===ns.currency.ns_currency_position?t:"")})),c=function(e){var t="0.".concat(o);return parseFloat(r()(e).format(t))}},9698:(e,t,n)=>{"use strict";n.d(t,{b:()=>i});var i=n(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,n)=>{"use strict";function i(e,t){for(var n=0;ns});var s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,s;return t=e,(n=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var n in e.tabs){var i=[],s=this.validateFieldsErrors(e.tabs[n].fields);s.length>0&&i.push(s),e.tabs[n].errors=i.flat(),t.push(i.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var n in e)0===t&&(e[n].active=!0),e[n].active=void 0!==e[n].active&&e[n].active,e[n].fields=this.createFields(e[n].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(n){t.fieldPassCheck(e,n)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var n in e.tabs)void 0===t[n]&&(t[n]={}),t[n]=this.extractFields(e.tabs[n].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var n=function(n){var i=n.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===i.length&&e.tabs[i[0]].fields.forEach((function(e){e.name===i[1]&&t.errors[n].forEach((function(t){var n={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(n)}))})),n===e.main.name&&t.errors[n].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var i in t.errors)n(i)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var n=function(n){e.forEach((function(e){e.name===n&&t.errors[n].forEach((function(t){var n={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(n)}))}))};for(var i in t.errors)n(i)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(n,i){n.identifier===t.identifier&&!0===n.invalid&&e.errors.splice(i,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(n,i){!0===n[t.identifier]&&e.errors.splice(i,1)}))}return e}}])&&i(t.prototype,n),s&&i(t,s),e}()},7389:(e,t,n)=>{"use strict";n.d(t,{__:()=>i,c:()=>s});var i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},s=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,n)=>{"use strict";function i(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}n.d(t,{Z:()=>i})},6386:(e,t,n)=>{"use strict";function i(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}n.d(t,{Z:()=>i})},2242:(e,t,n)=>{"use strict";n.d(t,{G:()=>a});var i=n(9248);function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};if(s(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var n=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[n-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new i.x}var t,n,a;return t=e,a=[{key:"show",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=new e(i);return s.open(t,n),s}}],(n=[{key:"open",value:function(e){var t,n,i,s=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",a.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){s.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var l=Vue.extend(e);this.instance=new l({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(i=null==e?void 0:e.options)||void 0===i?void 0:i.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=r,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&r(t.prototype,n),a&&r(t,a),e}()},9624:(e,t,n)=>{"use strict";n.d(t,{S:()=>r});var i=n(3260);function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return i.Observable.create((function(i){var r=n.__createSnack({message:e,label:t,type:s.type}),a=r.buttonNode,l=(r.textNode,r.snackWrapper,r.sampleSnack);a.addEventListener("click",(function(e){i.onNext(a),i.onCompleted(),l.remove()})),n.__startTimer(s.duration,l)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var n,i=function(){e>0&&!1!==e&&(n=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(n)})),t.addEventListener("mouseleave",(function(){i()})),i()}},{key:"__createSnack",value:function(e){var t=e.message,n=e.label,i=e.type,s=void 0===i?"info":i,r=document.getElementById("snack-wrapper")||document.createElement("div"),a=document.createElement("div"),l=document.createElement("p"),o=document.createElement("div"),d=document.createElement("button"),c="",u="";switch(s){case"info":c="text-white hover:bg-blue-400 bg-blue-500",u="bg-gray-900 text-white";break;case"error":c="text-red-700 hover:bg-white bg-white",u="bg-red-500 text-white";break;case"success":c="text-green-700 hover:bg-white bg-white",u="bg-green-500 text-white"}return l.textContent=t,n&&(d.textContent=n,d.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(c)),o.appendChild(d)),a.appendChild(l),a.appendChild(o),a.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(u)),r.appendChild(a),null===document.getElementById("snack-wrapper")&&(r.setAttribute("id","snack-wrapper"),r.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(r)),{snackWrapper:r,sampleSnack:a,buttonsWrapper:o,buttonNode:d,textNode:l}}}])&&s(t.prototype,n),r&&s(t,r),e}()},6700:(e,t,n)=>{var i={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function s(e){var t=r(e);return n(t)}function r(e){if(!n.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=r,e.exports=s,s.id=6700},6598:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var i=n(381),s=n.n(i);const r={name:"ns-datepicker",props:["label","date"],data:function(){return{visible:!1,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},mounted:function(){document.addEventListener("click",this.checkClickedItem),this.currentDay=[void 0,null].includes(this.date)?s()():s()(this.date),this.build()},methods:{__:n(7389).__,checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.visible=!1,this.$emit("change",e)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var n=this.calendar.length-1;if(this.calendar[n].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(s().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"picker"},[n("div",{staticClass:"rounded cursor-pointer bg-white shadow px-1 py-1 flex items-center text-gray-700",on:{click:function(t){e.visible=!e.visible}}},[n("i",{staticClass:"las la-clock text-2xl"}),e._v(" "),n("span",{staticClass:"mx-1 text-sm"},[n("span",[e._v(e._s(e.label||e.__("Date"))+" : ")]),e._v(" "),e.currentDay?n("span",[e._v(e._s(e.currentDay.format("YYYY/MM/DD")))]):e._e(),e._v(" "),null===e.currentDay?n("span",[e._v(e._s(e.__("N/A")))]):e._e()])]),e._v(" "),e.visible?n("div",{staticClass:"relative h-0 w-0 -mb-2"},[n("div",{staticClass:"w-72 mt-2 shadow rounded bg-white anim-duration-300 zoom-in-entrance flex flex-col"},[n("div",{staticClass:"flex-auto"},[n("div",{staticClass:"p-2 flex items-center"},[n("div",[n("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.subMonth()}}},[n("i",{staticClass:"las la-angle-left"})])]),e._v(" "),n("div",{staticClass:"flex flex-auto font-semibold text-gray-700 justify-center"},[e._v(e._s(e.currentDay.format("MMM"))+" "+e._s(e.currentDay.format("YYYY")))]),e._v(" "),n("div",[n("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.addMonth()}}},[n("i",{staticClass:"las la-angle-right"})])])]),e._v(" "),n("div",{staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},[n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sun")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Mon")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Tue")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Wed")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Thr")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Fri")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sat")))])]),e._v(" "),e._l(e.calendar,(function(t,i){return n("div",{key:i,staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},e._l(e.daysOfWeek,(function(i,s){return n("div",{key:s,staticClass:"h-8 flex justify-center items-center text-sm"},[e._l(t,(function(t,s){return[t.dayOfWeek===i?n("div",{key:s,staticClass:"h-full w-full flex items-center justify-center cursor-pointer",class:t.date.format("DD")===e.currentDay.format("DD")?"bg-blue-400 text-white border border-blue-500":"hover:bg-gray-100 border border-gray-200",on:{click:function(n){return e.selectDate(t.date)}}},[e._v("\n "+e._s(t.date.format("DD"))+"\n ")]):e._e()]}))],2)})),0)}))],2),e._v(" "),n("div")])]):e._e()])}),[],!1,null,null,null).exports},3968:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});function i(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,i){return n("div",{key:i,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(n){return e.inputValue(t)}}},[void 0!==t.value?n("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?n("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},7486:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var i=n(2277),s=n(7266),r=n(162),a=n(7389);const l={name:"ns-login",props:["showRecoveryLink"],data:function(){return{fields:[],xXsrfToken:null,validation:new s.Z,isSubitting:!1}},mounted:function(){var e=this;(0,i.D)([r.ih.get("/api/nexopos/v4/fields/ns.login"),r.ih.get("/sanctum/csrf-cookie")]).subscribe((function(t){e.fields=e.validation.createFields(t[0]),e.xXsrfToken=r.ih.response.config.headers["X-XSRF-TOKEN"],setTimeout((function(){return r.kq.doAction("ns-login-mounted",e)}),100)}),(function(e){r.kX.error(e.message||(0,a.__)("An unexpected error occured."),(0,a.__)("OK"),{duration:0}).subscribe()}))},methods:{__:a.__,signIn:function(){var e=this;if(!this.validation.validateFields(this.fields))return r.kX.error((0,a.__)("Unable to proceed the form is not valid.")).subscribe();this.validation.disableFields(this.fields),r.kq.applyFilters("ns-login-submit",!0)&&(this.isSubitting=!0,r.ih.post("/auth/sign-in",this.validation.getValue(this.fields),{headers:{"X-XSRF-TOKEN":this.xXsrfToken}}).subscribe((function(e){document.location=e.data.redirectTo}),(function(t){e.isSubitting=!1,e.validation.enableFields(e.fields),t.data&&e.validation.triggerFieldsErrors(e.fields,t.data),r.kX.error(t.message).subscribe()})))}}};const o=(0,n(1900).Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow overflow-hidden transition-all duration-100"},[n("div",{staticClass:"p-3 -my-2"},[e.fields.length>0?n("div",{staticClass:"py-2 fade-in-entrance anim-duration-300"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),0===e.fields.length?n("div",{staticClass:"flex items-center justify-center py-10"},[n("ns-spinner",{attrs:{border:"4",size:"16"}})],1):e._e(),e._v(" "),e.showRecoveryLink?n("div",{staticClass:"flex w-full items-center justify-center py-4"},[n("a",{staticClass:"hover:underline text-blue-600 text-sm",attrs:{href:"/password-lost"}},[e._v(e._s(e.__("Password Forgotten ?")))])]):e._e(),e._v(" "),n("div",{staticClass:"flex justify-between items-center bg-gray-200 p-3"},[n("div",[n("ns-button",{staticClass:"justify-between",attrs:{type:"info"},on:{click:function(t){return e.signIn()}}},[e.isSubitting?n("ns-spinner",{staticClass:"mr-2",attrs:{size:"6",border:"2"}}):e._e(),e._v(" "),n("span",[e._v(e._s(e.__("Sign In")))])],1)],1),e._v(" "),n("div",[n("ns-link",{attrs:{href:"/sign-up",type:"success"}},[e._v(e._s(e.__("Register")))])],1)])])}),[],!1,null,null,null).exports},1158:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var i=n(7389),s=n(2277),r=n(7266),a=n(162);const l={name:"ns-login",props:["token","user"],data:function(){return{fields:[],xXsrfToken:null,validation:new r.Z,isSubitting:!1}},mounted:function(){var e=this;(0,s.D)([a.ih.get("/api/nexopos/v4/fields/ns.new-password"),a.ih.get("/sanctum/csrf-cookie")]).subscribe((function(t){e.fields=e.validation.createFields(t[0]),e.xXsrfToken=a.ih.response.config.headers["X-XSRF-TOKEN"],setTimeout((function(){return a.kq.doAction("ns-login-mounted",e)}),100)}),(function(e){a.kX.error(e.message||(0,i.__)("An unexpected error occured."),(0,i.__)("OK"),{duration:0}).subscribe()}))},methods:{__:i.__,submitNewPassword:function(){var e=this;if(!this.validation.validateFields(this.fields))return a.kX.error((0,i.__)("Unable to proceed the form is not valid.")).subscribe();this.validation.disableFields(this.fields),a.kq.applyFilters("ns-new-password-submit",!0)&&(this.isSubitting=!0,a.ih.post("/auth/new-password/".concat(this.user,"/").concat(this.token),this.validation.getValue(this.fields),{headers:{"X-XSRF-TOKEN":this.xXsrfToken}}).subscribe((function(e){a.kX.success(e.message).subscribe(),setTimeout((function(){document.location=e.data.redirectTo}),500)}),(function(t){e.isSubitting=!1,e.validation.enableFields(e.fields),t.data&&e.validation.triggerFieldsErrors(e.fields,t.data),a.kX.error(t.message).subscribe()})))}}};const o=(0,n(1900).Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow overflow-hidden transition-all duration-100"},[n("div",{staticClass:"p-3 -my-2"},[e.fields.length>0?n("div",{staticClass:"py-2 fade-in-entrance anim-duration-300"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),0===e.fields.length?n("div",{staticClass:"flex items-center justify-center py-10"},[n("ns-spinner",{attrs:{border:"4",size:"16"}})],1):e._e(),e._v(" "),n("div",{staticClass:"flex justify-between items-center bg-gray-200 p-3"},[n("div",[n("ns-button",{staticClass:"justify-between",attrs:{type:"info"},on:{click:function(t){return e.submitNewPassword()}}},[e.isSubitting?n("ns-spinner",{staticClass:"mr-2",attrs:{size:"6",border:"2"}}):e._e(),e._v(" "),n("span",[e._v(e._s(e.__("Save Password")))])],1)],1),e._v(" "),n("div")])])}),[],!1,null,null,null).exports},5139:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var i=n(7389),s=n(2277),r=n(7266),a=n(162);const l={name:"ns-login",data:function(){return{fields:[],xXsrfToken:null,validation:new r.Z,isSubitting:!1}},mounted:function(){var e=this;(0,s.D)([a.ih.get("/api/nexopos/v4/fields/ns.password-lost"),a.ih.get("/sanctum/csrf-cookie")]).subscribe((function(t){e.fields=e.validation.createFields(t[0]),e.xXsrfToken=a.ih.response.config.headers["X-XSRF-TOKEN"],setTimeout((function(){return a.kq.doAction("ns-login-mounted",e)}),100)}),(function(e){a.kX.error(e.message||(0,i.__)("An unexpected error occured."),(0,i.__)("OK"),{duration:0}).subscribe()}))},methods:{__:i.__,requestRecovery:function(){var e=this;if(!this.validation.validateFields(this.fields))return a.kX.error((0,i.__)("Unable to proceed the form is not valid.")).subscribe();this.validation.disableFields(this.fields),a.kq.applyFilters("ns-password-lost-submit",!0)&&(this.isSubitting=!0,a.ih.post("/auth/password-lost",this.validation.getValue(this.fields),{headers:{"X-XSRF-TOKEN":this.xXsrfToken}}).subscribe((function(e){a.kX.success(e.message).subscribe(),setTimeout((function(){document.location=e.data.redirectTo}),500)}),(function(t){e.isSubitting=!1,e.validation.enableFields(e.fields),t.data&&e.validation.triggerFieldsErrors(e.fields,t.data),a.kX.error(t.message).subscribe()})))}}};const o=(0,n(1900).Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow overflow-hidden transition-all duration-100"},[n("div",{staticClass:"p-3 -my-2"},[e.fields.length>0?n("div",{staticClass:"py-2 fade-in-entrance anim-duration-300"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),0===e.fields.length?n("div",{staticClass:"flex items-center justify-center py-10"},[n("ns-spinner",{attrs:{border:"4",size:"16"}})],1):e._e(),e._v(" "),n("div",{staticClass:"flex w-full items-center justify-center py-4"},[n("a",{staticClass:"hover:underline text-blue-600 text-sm",attrs:{href:"/sign-in"}},[e._v(e._s(e.__("Remember Your Password ?")))])]),e._v(" "),n("div",{staticClass:"flex justify-between items-center bg-gray-200 p-3"},[n("div",[n("ns-button",{staticClass:"justify-between",attrs:{type:"info"},on:{click:function(t){return e.requestRecovery()}}},[e.isSubitting?n("ns-spinner",{staticClass:"mr-2",attrs:{size:"6",border:"2"}}):e._e(),e._v(" "),n("span",[e._v(e._s(e.__("Submit")))])],1)],1),e._v(" "),n("div",[n("ns-link",{attrs:{href:"/sign-up",type:"success"}},[e._v(e._s(e.__("Register")))])],1)])])}),[],!1,null,null,null).exports},5882:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var i=n(7266),s=n(162),r=n(2277),a=n(7389);const l={name:"ns-register",data:function(){return{fields:[],xXsrfToken:null,validation:new i.Z}},mounted:function(){var e=this;(0,r.D)([s.ih.get("/api/nexopos/v4/fields/ns.register"),s.ih.get("/sanctum/csrf-cookie")]).subscribe((function(t){e.fields=e.validation.createFields(t[0]),e.xXsrfToken=s.ih.response.config.headers["X-XSRF-TOKEN"],setTimeout((function(){return s.kq.doAction("ns-register-mounted",e)}))}))},methods:{__:a.__,register:function(){var e=this;if(!this.validation.validateFields(this.fields))return s.kX.error((0,a.__)("Unable to proceed the form is not valid.")).subscribe();this.validation.disableFields(this.fields),s.kq.applyFilters("ns-register-submit",!0)&&s.ih.post("/auth/sign-up",this.validation.getValue(this.fields),{headers:{"X-XSRF-TOKEN":this.xXsrfToken}}).subscribe((function(e){s.kX.success(e.message).subscribe(),setTimeout((function(){document.location=e.data.redirectTo}),1500)}),(function(t){e.validation.triggerFieldsErrors(e.fields,t),e.validation.enableFields(e.fields),s.kX.error(t.message).subscribe()}))}}};const o=(0,n(1900).Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow overflow-hidden transition-all duration-100"},[n("div",{staticClass:"p-3 -my-2"},[e.fields.length>0?n("div",{staticClass:"py-2 fade-in-entrance anim-duration-300"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),0===e.fields.length?n("div",{staticClass:"flex items-center justify-center"},[n("ns-spinner")],1):e._e(),e._v(" "),n("div",{staticClass:"flex w-full items-center justify-center py-4"},[n("a",{staticClass:"hover:underline text-blue-600 text-sm",attrs:{href:"/sign-in"}},[e._v(e._s(e.__("Already registered ?")))])]),e._v(" "),n("div",{staticClass:"flex justify-between items-center bg-gray-200 p-3"},[n("div",[n("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.register()}}},[e._v(e._s(e.__("Register")))])],1),e._v(" "),n("div",[n("ns-link",{attrs:{href:"/sign-in",type:"success"}},[e._v(e._s(e.__("Sign In")))])],1)])])}),[],!1,null,null,null).exports},9576:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var i=n(162),s=n(8603),r=n(7389);const a={name:"ns-media",props:["popup"],components:{VueUpload:n(2948)},data:function(){return{pages:[{label:(0,r.__)("Upload"),name:"upload",selected:!1},{label:(0,r.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return i.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:s.Z,__:r.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return i.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){i.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){i.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,i.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(n,i){i!==t.response.data.indexOf(e)&&(n.selected=!1)})),e.selected=!e.selected}}};const l=(0,n(1900).Z)(a,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[n("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[n("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),n("ul",e._l(e.pages,(function(t,i){return n("li",{key:i,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(n){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?n("div",{staticClass:"content w-full overflow-hidden flex"},[n("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[n("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[n("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),n("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[n("ul",e._l(e.files,(function(t,i){return n("li",{key:i,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[n("span",[e._v(e._s(t.name))]),e._v(" "),n("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?n("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?n("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[n("div"),e._v(" "),n("div",[n("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),n("div",{staticClass:"flex flex-auto overflow-hidden"},[n("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[n("div",{staticClass:"flex flex-auto"},[n("div",{staticClass:"p-2 overflow-x-auto"},[n("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,i){return n("div",{key:i},[n("div",{staticClass:"p-2"},[n("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(n){return e.selectResource(t)}}},[n("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?n("div",{staticClass:"flex flex-auto items-center justify-center"},[n("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?n("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[n("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[n("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),n("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),n("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),n("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),n("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),n("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[n("div",{staticClass:"flex -mx-2 flex-shrink-0"},[n("div",{staticClass:"px-2 flex-shrink-0 flex"},[n("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?n("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[n("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?n("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[n("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?n("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[n("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),n("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[n("div",{staticClass:"px-2"},[n("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[n("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),n("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),n("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?n("div",{staticClass:"px-2"},[n("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},419:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});const i={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:n(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const s=(0,n(1900).Z)(i,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[n("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[n("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),n("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),n("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[n("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),n("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),n("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=8108,e(e.s=t);var t}));e.O()}]); +(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[743],{8108:(e,t,n)=>{"use strict";var s=n(538),i=n(4364),r=n(5882).Z,a=n(3923).Z,l=n(5139).Z,o=n(1158).Z,d=(window.nsState,window.nsScreen,window.nsExtraComponents);window.nsComponents=Object.assign(i,d),window.authVueComponent=new s.default({el:"#page-container",components:Object.assign({nsLogin:a,nsRegister:r,nsPasswordLost:l,nsNewPassword:o},d)})},162:(e,t,n)=>{"use strict";n.d(t,{l:()=>M,kq:()=>I,ih:()=>V,kX:()=>R});var s=n(6486),i=n(9669),r=n(2181),a=n(8345),l=n(9624),o=n(9248),d=n(230);function c(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,n)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,n)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var n=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=I.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:s}),new d.y((function(r){n._client[e](t,s,Object.assign(Object.assign({},n._client.defaults[e]),i)).then((function(e){n._lastRequestData=e,r.next(e.data),r.complete(),n._subject.next({identifier:"async.stop"})})).catch((function(e){var t;r.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),n._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,n=e.value;this._subject.next({identifier:t,value:n})}}])&&c(t.prototype,n),s&&c(t,s),e}(),f=n(3);function h(e,t){for(var n=0;n=1e3){for(var n,s=Math.floor((""+e).length/3),i=2;i>=1;i--){if(((n=parseFloat((0!=s?e/Math.pow(1e3,s):e).toPrecision(i)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}n%1!=0&&(n=n.toFixed(1)),t=n+["","k","m","b","t"][s]}return t})),S=n(1356),E=n(9698);function T(e,t){for(var n=0;n0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&z(t.prototype,n),s&&z(t,s),e}()),U=new b({sidebar:["xs","sm","md"].includes(Z.breakpoint)?"hidden":"visible"});V.defineClient(i),window.nsEvent=M,window.nsHttpClient=V,window.nsSnackBar=R,window.nsCurrency=S.W,window.nsTruncate=E.b,window.nsRawCurrency=S.f,window.nsAbbreviate=$,window.nsState=U,window.nsUrl=N,window.nsScreen=Z,window.ChartJS=r,window.EventEmitter=p,window.Popup=w.G,window.RxJS=y,window.FormValidation=k.Z,window.nsCrudHandler=L},4364:(e,t,n)=>{"use strict";n.r(t),n.d(t,{nsAvatar:()=>L,nsButton:()=>l,nsCheckbox:()=>h,nsCkeditor:()=>A,nsCloseButton:()=>E,nsCrud:()=>m,nsCrudForm:()=>x,nsDate:()=>C,nsDateTimePicker:()=>X.V,nsDatepicker:()=>I,nsField:()=>_,nsIconButton:()=>T,nsInput:()=>d,nsLink:()=>o,nsMediaInput:()=>S,nsMenu:()=>r,nsMultiselect:()=>k,nsNumpad:()=>M.Z,nsSelect:()=>c.R,nsSelectAudio:()=>f,nsSpinner:()=>g,nsSubmenu:()=>a,nsSwitch:()=>j,nsTableRow:()=>b,nsTabs:()=>q,nsTabsItem:()=>z,nsTextarea:()=>w});var s=n(538),i=n(162),r=s.default.component("ns-menu",{data:function(){return{defaultToggledState:!1,_save:0}},props:["href","label","icon","notification","toggled","identifier"],template:'\n \n ',mounted:function(){var e=this;this.defaultToggledState=void 0!==this.toggled?this.toggled:this.defaultToggledState,i.l.subject().subscribe((function(t){t.value!==e.identifier&&(e.defaultToggledState=!1)}))},methods:{toggleEmit:function(){var e=this;this.toggle().then((function(t){t&&i.l.emit({identifier:"side-menu.open",value:e.identifier})}))},toggle:function(){var e=this;return new Promise((function(t,n){0===e.href.length&&(e.defaultToggledState=!e.defaultToggledState,t(e.defaultToggledState))}))}}}),a=s.default.component("ns-submenu",{data:function(){return{}},props:["href","label","active"],mounted:function(){},template:'\n
    \n
  • \n \n \n \n
  • \n
    \n '}),l=s.default.component("ns-button",{data:function(){return{clicked:!1,_save:0}},props:["type","disabled","link","href","routerLink","to"],template:'\n
    \n \n \n \n
    \n ',mounted:function(){},computed:{isDisabled:function(){return this.disabled&&(0===this.disabled.length||"disabled"===this.disabled||this.disabled)},buttonclass:function(){var e;switch(this.type){case"info":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-blue-400 text-white");break;case"success":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-green-400 text-white");break;case"danger":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-red-400 text-white");break;case"warning":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-orange-400 text-white");break;default:e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-white text-gray-800")}return e}}}),o=s.default.component("ns-link",{data:function(){return{clicked:!1,_save:0}},props:["type","to","href"],template:'\n
    \n \n \n
    \n ',computed:{buttonclass:function(){switch(this.type){case"info":return"shadow bg-blue-400 text-white";case"success":return"shadow bg-green-400 text-white";case"danger":return"shadow bg-red-400 text-white";case"warning":return"shadow bg-orange-400 text-white";default:return"shadow bg-white text-gray-800"}}}}),d=s.default.component("ns-input",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),c=n(4451),u=n(7389),f=s.default.component("ns-select-audio",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:u.__,playSelectedSound:function(){this.field.value.length>0&&new Audio(this.field.value).play()}},template:'\n
    \n \n
    \n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),h=s.default.component("ns-checkbox",{data:function(){return{}},props:["checked","field","label"],template:'\n
    \n
    \n \n
    \n {{ label }}\n {{ field.label }}\n
    \n ',computed:{isChecked:function(){return this.field?this.field.value:this.checked}},methods:{toggleIt:function(){void 0!==this.field&&(this.field.value=!this.field.value),this.$emit("change",!this.checked)}}}),p=n(2242),v=n(419),m=s.default.component("ns-crud",{data:function(){return{isRefreshing:!1,sortColumn:"",searchInput:"",searchQuery:"",page:1,bulkAction:"",bulkActions:[],columns:[],selectedEntries:[],globallyChecked:!1,result:{current_page:null,data:[],first_page_url:null,from:null,last_page:null,last_page_url:null,next_page_url:null,path:null,per_page:null,prev_page_url:null,to:null,total:null}}},mounted:function(){void 0!==this.identifier&&nsCrudHandler.defineInstance(this.identifier,this),this.loadConfig()},props:["src","create-url","mode","identifier","queryParams"],computed:{getParsedSrc:function(){return"".concat(this.src,"?").concat(this.sortColumn).concat(this.searchQuery).concat(this.queryPage).concat(this.getQueryParams()?"&"+this.getQueryParams():"")},getSelectedAction:function(){var e=this,t=this.bulkActions.filter((function(t){return t.identifier===e.bulkAction}));return t.length>0&&t[0]},pagination:function(){return this.result?this.pageNumbers(this.result.last_page,this.result.current_page):[]},queryPage:function(){return this.result?"&page=".concat(this.page):""},resultInfo:function(){return(0,u.__)("displaying {perPage} on {items} items").replace("{perPage}",this.result.total).replace("{items}",this.result.total)}},methods:{__:u.__,getQueryParams:function(){var e=this;return this.queryParams?Object.keys(this.queryParams).map((function(t){return"".concat(t,"=").concat(e.queryParams[t])})).join("&"):""},pageNumbers:function(e,t){var n=[];return t>e-3?n.push(e-2,e-1,e):n.push(t,t+1,t+2,"...",e),n.filter((function(e){return e>0||"string"==typeof e}))},downloadContent:function(){i.ih.post("".concat(this.src,"/export?").concat(this.getQueryParams()),{entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(e){setTimeout((function(){return document.location=e.url}),300),i.kX.success((0,u.__)("The document has been generated.")).subscribe()}),(function(e){i.kX.error(e.message||(0,u.__)("Unexpected error occured.")).subscribe()}))},clearSelectedEntries:function(){var e=this;p.G.show(v.Z,{title:(0,u.__)("Clear Selected Entries ?"),message:(0,u.__)("Would you like to clear all selected entries ?"),onAction:function(t){t&&(e.selectedEntries=[])}})},refreshRow:function(e){if(!0===e.$checked){0===this.selectedEntries.filter((function(t){return t.$id===e.$id})).length&&this.selectedEntries.push(e)}else{var t=this.selectedEntries.filter((function(t){return t.$id===e.$id}));if(t.length>0){var n=this.selectedEntries.indexOf(t[0]);this.selectedEntries.splice(n,1)}}},handleShowOptions:function(e){this.result.data.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},handleGlobalChange:function(e){var t=this;this.globallyChecked=e,this.result.data.forEach((function(n){n.$checked=e,t.refreshRow(n)}))},loadConfig:function(){var e=this;i.ih.get("".concat(this.src,"/config?").concat(this.getQueryParams())).subscribe((function(t){e.columns=t.columns,e.bulkActions=t.bulkActions,e.refresh()}),(function(e){i.kX.error(e.message,"OK",{duration:!1}).subscribe()}))},cancelSearch:function(){this.searchInput="",this.search()},search:function(){this.searchInput?this.searchQuery="&search=".concat(this.searchInput):this.searchQuery="",this.refresh()},sort:function(e){for(var t in this.columns)t!==e&&(this.columns[t].$sorted=!1,this.columns[t].$direction="");switch(this.columns[e].$sorted=!0,this.columns[e].$direction){case"asc":this.columns[e].$direction="desc";break;case"desc":this.columns[e].$direction="";break;case"":this.columns[e].$direction="asc"}["asc","desc"].includes(this.columns[e].$direction)?this.sortColumn="active=".concat(e,"&direction=").concat(this.columns[e].$direction):this.sortColumn="",this.$emit("sort",this.columns[e]),this.refresh()},bulkDo:function(){var e=this;return this.bulkAction?this.selectedEntries.length>0?(console.log(this.getSelectedAction),confirm(this.getSelectedAction.confirm||this.$slots["error-bulk-confirmation"]||(0,u.__)("No bulk confirmation message provided on the CRUD class."))?i.ih.post("".concat(this.src,"/bulk-actions"),{action:this.bulkAction,entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(t){i.kX.info(t.message).subscribe(),e.selectedEntries=[],e.refresh()}),(function(e){i.kX.error(e.message).subscribe()})):void 0):i.kX.error(this.$slots["error-no-selection"]?this.$slots["error-no-selection"][0].text:(0,u.__)("No selection has been made.")).subscribe():i.kX.error(this.$slots["error-no-action"]?this.$slots["error-no-action"][0].text:(0,u.__)("No action has been selected.")).subscribe()},refresh:function(){var e=this;this.globallyChecked=!1,this.isRefreshing=!0,i.ih.get("".concat(this.getParsedSrc)).subscribe((function(t){t.data=t.data.map((function(t){return e.selectedEntries.filter((function(e){return e.$id===t.$id})).length>0&&(t.$checked=!0),t})),e.isRefreshing=!1,e.result=t,e.page=t.current_page}),(function(t){e.isRefreshing=!1,i.kX.error(t.message).subscribe()}))}},template:'\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{ column.label }}\n \n \n \n \n
    \n
    {{ __( \'There is nothing to display...\' ) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ resultInfo }}
    \n \n
    \n
    \n
    \n '}),b=s.default.component("ns-table-row",{props:["options","row","columns"],data:function(){return{optionsToggled:!1}},mounted:function(){},methods:{sanitizeHTML:function(e){var t=document.createElement("div");t.innerHTML=e;for(var n=t.getElementsByTagName("script"),s=n.length;s--;)n[s].parentNode.removeChild(n[s]);return t.innerHTML},getElementOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},toggleMenu:function(e){var t=this;if(this.row.$toggled=!this.row.$toggled,this.$emit("toggled",this.row),this.row.$toggled)setTimeout((function(){var e=t.$el.querySelectorAll(".relative > .absolute")[0],n=t.$el.querySelectorAll(".relative")[0],s=t.getElementOffset(n);e.style.top=s.top+"px",e.style.left=s.left+"px",n.classList.remove("relative"),n.classList.add("dropdown-holder")}),100);else{var n=this.$el.querySelectorAll(".dropdown-holder")[0];n.classList.remove("dropdown-holder"),n.classList.add("relative")}},handleChanged:function(e){this.row.$checked=e,this.$emit("updated",this.row)},triggerAsync:function(e){var t=this;e.confirm?confirm(e.confirm.message)&&i.ih[e.type.toLowerCase()](e.url).subscribe((function(e){i.kX.success(e.message).subscribe(),t.$emit("reload",t.row)}),(function(e){t.toggleMenu(),i.kX.error(e.message).subscribe()})):(i.l.emit({identifier:"ns-table-row-action",value:{action:e,row:this.row,component:this}}),this.toggleMenu())}},template:'\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n '}),g=s.default.component("ns-spinner",{data:function(){return{}},mounted:function(){},computed:{validatedSize:function(){return this.size||24},validatedBorder:function(){return this.border||8},validatedAnimation:function(){return this.animation||"fast"}},props:["color","size","border"],template:"\n
    \n
    \n
    \n "}),y=n(7266),x=s.default.component("ns-crud-form",{data:function(){return{form:{},globallyChecked:!1,formValidation:new y.Z,rows:[]}},mounted:function(){this.loadForm()},props:["src","create-url","field-class","return-url","submit-url","submit-method","disable-tabs"],computed:{activeTabFields:function(){for(var e in this.form.tabs)if(this.form.tabs[e].active)return this.form.tabs[e].fields;return[]}},methods:{toggle:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;this.form.tabs[e].active=!0},handleShowOptions:function(e){this.rows.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},submit:function(){var e=this;return this.formValidation.validateForm(this.form).length>0?i.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():(this.formValidation.disableForm(this.form),void 0===this.submitUrl?i.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():void i.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,this.formValidation.extractForm(this.form)).subscribe((function(t){if("success"===t.status){if(e.returnUrl&&e.returnUrl.length>0)return document.location=e.returnUrl;e.$emit("save",t)}e.formValidation.enableForm(e.form)}),(function(t){i.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t),e.formValidation.enableForm(e.form)})))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;i.ih.get("".concat(this.src)).subscribe({next:function(t){e.form=e.parseForm(t.form),i.kq.doAction("ns-crud-form-loaded",e),e.$emit("updated",e.form)},error:function(e){i.kX.error(e.message,"OKAY",{duration:0}).subscribe()}})},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var n in e.tabs)0===t&&(e.tabs[n].active=!0),e.tabs[n].active=void 0!==e.tabs[n].active&&e.tabs[n].active,e.tabs[n].fields=this.formValidation.createFields(e.tabs[n].fields),t++;return e}},template:'\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Return\n
    \n
    \n \n
    \n
    \n
    \n
    {{ tab.label }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n '}),w=s.default.component("ns-textarea",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),_=s.default.component("ns-field",{data:function(){return{}},mounted:function(){},computed:{isInputField:function(){return["text","password","email","number","tel"].includes(this.field.type)},isDateField:function(){return["date"].includes(this.field.type)},isSelectField:function(){return["select"].includes(this.field.type)},isTextarea:function(){return["textarea"].includes(this.field.type)},isCheckbox:function(){return["checkbox"].includes(this.field.type)},isMultiselect:function(){return["multiselect"].includes(this.field.type)},isSelectAudio:function(){return["select-audio"].includes(this.field.type)},isSwitch:function(){return["switch"].includes(this.field.type)},isMedia:function(){return["media"].includes(this.field.type)},isCkEditor:function(){return["ckeditor"].includes(this.field.type)},isDateTimePicker:function(){return["datetimepicker"].includes(this.field.type)},isCustom:function(){return["custom"].includes(this.field.type)}},props:["field"],methods:{addOption:function(e){"select"===this.field.type&&this.field.options.forEach((function(e){return e.selected=!1})),e.selected=!0;var t=this.field.options.indexOf(e);this.field.options.splice(t,1),this.field.options.unshift(e),this.refreshMultiselect(),this.$emit("change",{action:"addOption",option:e})},refreshMultiselect:function(){this.field.value=this.field.options.filter((function(e){return e.selected})).map((function(e){return e.value}))},removeOption:function(e){e.selected=!1,this.refreshMultiselect(),this.$emit("change",{action:"removeOption",option:e})}},template:'\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n '}),k=s.default.component("ns-multiselect",{data:function(){return{showPanel:!1,search:""}},props:["field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=void 0!==t.selected&&t.selected,e.field.value&&e.field.value.includes(t.value)&&(t.selected=!0),t}))}},methods:{__:u.__,addOption:function(e){this.field.disabled||(this.$emit("addOption",e),this.$forceUpdate(),setTimeout((function(){}),100))},removeOption:function(e,t){var n=this;if(!this.field.disabled)return t.preventDefault(),t.stopPropagation(),this.$emit("removeOption",e),this.$forceUpdate(),setTimeout((function(){n.search=""}),100),!1}},mounted:function(){var e=this;this.field.value&&this.field.value.reverse().forEach((function(t){var n=e.field.options.filter((function(e){return e.value===t}));n.length>=0&&e.addOption(n[0])}))},template:'\n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ option.label }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n
    \n '}),j=s.default.component("ns-switch",{data:function(){return{}},mounted:function(){},computed:{_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=t.value===e.field.value,t}))},hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":""},sizeClass:function(){return" w-1/".concat(this._options.length<=4?this._options.length:4)},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:u.__,setSelected:function(e){this.field.value=e.value,this._options.forEach((function(e){return e.selected=!1})),e.selected=!0,this.$forceUpdate(),this.$emit("change",e.value)}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n

    \n
    \n '}),C=s.default.component("ns-date",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),$=n(9576),S=s.default.component("ns-media-input",{template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n ',computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},data:function(){return{}},props:["placeholder","leading","type","field"],mounted:function(){},methods:{toggleMedia:function(){var e=this;new Promise((function(t,n){p.G.show($.Z,Object.assign({resolve:t,reject:n},e.field.data||{}))})).then((function(t){"use-selected"===t.event&&(e.field.data&&"url"!==e.field.data.type?e.field.data&&"model"!==e.field.data.type||(e.field.value=t.value[0]):e.field.value=t.value[0].sizes.original,e.$forceUpdate())}))}}}),E=s.default.component("ns-close-button",{template:'\n \n ',methods:{clicked:function(e){this.$emit("click",e)}}}),T=s.default.component("ns-icon-button",{template:'\n \n ',props:["className","buttonClass"],methods:{clicked:function(e){this.$emit("click",e)}}}),O=n(1272),F=n.n(O),D=n(5234),P=n.n(D),A=s.default.component("ns-ckeditor",{data:function(){return{editor:P()}},components:{ckeditor:F().component},mounted:function(){},methods:{__:u.__},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),q=s.default.component("ns-tabs",{data:function(){return{childrens:[]}},props:["active"],computed:{activeComponent:function(){var e=this.$children.filter((function(e){return e.active}));return e.length>0&&e[0]}},methods:{toggle:function(e){this.$emit("active",e.identifier),this.$emit("changeTab",e.identifier)}},mounted:function(){this.childrens=this.$children},template:'\n
    \n
    \n
    {{ tab.label }}
    \n
    \n \n
    \n '}),z=s.default.component("ns-tabs-item",{data:function(){return{}},mounted:function(){},props:["label","identifier","padding"],template:'\n
    \n \n
    \n '}),X=n(8655),M=n(3968),V=n(1726),R=n(7259);const N=s.default.extend({methods:{__:u.__},data:function(){return{svg:""}},mounted:function(){this.svg=(0,V.createAvatar)(R,{seed:this.displayName})},computed:{avatarUrl:function(){return 0===this.url.length?"":this.url}},props:["url","display-name"]});const L=(0,n(1900).Z)(N,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex justify-between items-center flex-shrink-0"},[n("span",{staticClass:"hidden md:inline-block text-gray-600 px-2"},[e._v(e._s(e.__("Howdy, {name}").replace("{name}",this.displayName)))]),e._v(" "),n("span",{staticClass:"md:hidden text-gray-600 px-2"},[e._v(e._s(e.displayName))]),e._v(" "),n("div",{staticClass:"px-2"},[n("div",{staticClass:"w-8 h-8 overflow-hidden rounded-full bg-gray-600"},[""!==e.avatarUrl?n("img",{staticClass:"w-8 h-8 overflow-hidden rounded-full",attrs:{src:e.avatarUrl,alt:e.displayName,srcset:""}}):e._e(),e._v(" "),""===e.avatarUrl?n("div",{domProps:{innerHTML:e._s(e.svg)}}):e._e()])])])}),[],!1,null,null,null).exports;var I=n(6598).Z},8655:(e,t,n)=>{"use strict";n.d(t,{V:()=>l});var s=n(538),i=n(381),r=n.n(i),a=n(7389),l=s.default.component("ns-date-time-picker",{template:'\n
    \n \n
    \n \n \n {{ currentDay.format( \'YYYY/MM/DD HH:mm\' ) }}\n N/A\n \n
    \n

    {{ field.description }}

    \n \n
    \n ',props:["field","date"],data:function(){return{visible:!1,hours:0,minutes:0,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},watch:{visible:function(){var e=this;this.visible&&setTimeout((function(){e.$refs.hours.addEventListener("focus",(function(){this.select()})),e.$refs.minutes.addEventListener("focus",(function(){this.select()}))}),100)}},mounted:function(){var e=this;document.addEventListener("mousedown",(function(t){return e.checkClickedItem(t)})),this.field?this.currentDay=[void 0,null,""].includes(this.field.value)?r()():r()(this.field.value):this.currentDay=[void 0,null,""].includes(this.date)?r()():r()(this.date),this.hours=this.currentDay.format("HH"),this.minutes=this.currentDay.format("mm"),this.build()},methods:{__:a.__,detectHoursChange:function(){parseFloat(this.hours)<0&&(this.hours=0),parseFloat(this.hours)>23&&(this.hours=23),this.updateDateTime()},detectMinuteChange:function(){parseFloat(this.minutes)<0&&(this.minutes=0),parseFloat(this.minutes)>59&&(this.minutes=59),this.updateDateTime()},updateDateTime:function(){this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes),this.selectDate(this.currentDay)},checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes);var t=this.currentDay.format("YYYY/MM/DD HH:mm");this.field?(this.field.value=t,this.$emit("change",this.field)):this.$emit("change",this.currentDay)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var n=this.calendar.length-1;if(this.calendar[n].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(r().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}})},4451:(e,t,n)=>{"use strict";n.d(t,{R:()=>i});var s=n(7389),i=n(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:s.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,n)=>{"use strict";n.d(t,{W:()=>d,f:()=>c});var s=n(538),i=n(2077),r=n.n(i),a=n(6740),l=n.n(a),o=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),d=s.default.filter("currency",(function(e){var t,n,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===s){var i={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};n=l()(e,i).format()}else n=r()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(n).concat("after"===ns.currency.ns_currency_position?t:"")})),c=function(e){var t="0.".concat(o);return parseFloat(r()(e).format(t))}},9698:(e,t,n)=>{"use strict";n.d(t,{b:()=>s});var s=n(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,n)=>{"use strict";function s(e,t){for(var n=0;ni});var i=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,i;return t=e,(n=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var n in e.tabs){var s=[],i=this.validateFieldsErrors(e.tabs[n].fields);i.length>0&&s.push(i),e.tabs[n].errors=s.flat(),t.push(s.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var n in e)0===t&&(e[n].active=!0),e[n].active=void 0!==e[n].active&&e[n].active,e[n].fields=this.createFields(e[n].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(n){t.fieldPassCheck(e,n)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var n in e.tabs)void 0===t[n]&&(t[n]={}),t[n]=this.extractFields(e.tabs[n].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var n=function(n){var s=n.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===s.length&&e.tabs[s[0]].fields.forEach((function(e){e.name===s[1]&&t.errors[n].forEach((function(t){var n={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(n)}))})),n===e.main.name&&t.errors[n].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var s in t.errors)n(s)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var n=function(n){e.forEach((function(e){e.name===n&&t.errors[n].forEach((function(t){var n={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(n)}))}))};for(var s in t.errors)n(s)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(n,s){n.identifier===t.identifier&&!0===n.invalid&&e.errors.splice(s,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(n,s){!0===n[t.identifier]&&e.errors.splice(s,1)}))}return e}}])&&s(t.prototype,n),i&&s(t,i),e}()},7389:(e,t,n)=>{"use strict";n.d(t,{__:()=>s,c:()=>i});var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},i=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,n)=>{"use strict";function s(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}n.d(t,{Z:()=>s})},6386:(e,t,n)=>{"use strict";function s(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}n.d(t,{Z:()=>s})},2242:(e,t,n)=>{"use strict";n.d(t,{G:()=>a});var s=n(9248);function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};if(i(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var n=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[n-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new s.x}var t,n,a;return t=e,a=[{key:"show",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=new e(s);return i.open(t,n),i}}],(n=[{key:"open",value:function(e){var t,n,s,i=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",a.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){i.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var l=Vue.extend(e);this.instance=new l({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=r,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&r(t.prototype,n),a&&r(t,a),e}()},9624:(e,t,n)=>{"use strict";n.d(t,{S:()=>r});var s=n(3260);function i(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return s.Observable.create((function(s){var r=n.__createSnack({message:e,label:t,type:i.type}),a=r.buttonNode,l=(r.textNode,r.snackWrapper,r.sampleSnack);a.addEventListener("click",(function(e){s.onNext(a),s.onCompleted(),l.remove()})),n.__startTimer(i.duration,l)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var n,s=function(){e>0&&!1!==e&&(n=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(n)})),t.addEventListener("mouseleave",(function(){s()})),s()}},{key:"__createSnack",value:function(e){var t=e.message,n=e.label,s=e.type,i=void 0===s?"info":s,r=document.getElementById("snack-wrapper")||document.createElement("div"),a=document.createElement("div"),l=document.createElement("p"),o=document.createElement("div"),d=document.createElement("button"),c="",u="";switch(i){case"info":c="text-white hover:bg-blue-400 bg-blue-500",u="bg-gray-900 text-white";break;case"error":c="text-red-700 hover:bg-white bg-white",u="bg-red-500 text-white";break;case"success":c="text-green-700 hover:bg-white bg-white",u="bg-green-500 text-white"}return l.textContent=t,n&&(d.textContent=n,d.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(c)),o.appendChild(d)),a.appendChild(l),a.appendChild(o),a.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(u)),r.appendChild(a),null===document.getElementById("snack-wrapper")&&(r.setAttribute("id","snack-wrapper"),r.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(r)),{snackWrapper:r,sampleSnack:a,buttonsWrapper:o,buttonNode:d,textNode:l}}}])&&i(t.prototype,n),r&&i(t,r),e}()},6700:(e,t,n)=>{var s={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function i(e){var t=r(e);return n(t)}function r(e){if(!n.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}i.keys=function(){return Object.keys(s)},i.resolve=r,e.exports=i,i.id=6700},6598:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var s=n(381),i=n.n(s);const r={name:"ns-datepicker",props:["label","date"],data:function(){return{visible:!1,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},mounted:function(){document.addEventListener("click",this.checkClickedItem),this.currentDay=[void 0,null].includes(this.date)?i()():i()(this.date),this.build()},methods:{__:n(7389).__,checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.visible=!1,this.$emit("change",e)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var n=this.calendar.length-1;if(this.calendar[n].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(i().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"picker"},[n("div",{staticClass:"rounded cursor-pointer bg-white shadow px-1 py-1 flex items-center text-gray-700",on:{click:function(t){e.visible=!e.visible}}},[n("i",{staticClass:"las la-clock text-2xl"}),e._v(" "),n("span",{staticClass:"mx-1 text-sm"},[n("span",[e._v(e._s(e.label||e.__("Date"))+" : ")]),e._v(" "),e.currentDay?n("span",[e._v(e._s(e.currentDay.format("YYYY/MM/DD")))]):e._e(),e._v(" "),null===e.currentDay?n("span",[e._v(e._s(e.__("N/A")))]):e._e()])]),e._v(" "),e.visible?n("div",{staticClass:"relative h-0 w-0 -mb-2"},[n("div",{staticClass:"w-72 mt-2 shadow rounded bg-white anim-duration-300 zoom-in-entrance flex flex-col"},[n("div",{staticClass:"flex-auto"},[n("div",{staticClass:"p-2 flex items-center"},[n("div",[n("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.subMonth()}}},[n("i",{staticClass:"las la-angle-left"})])]),e._v(" "),n("div",{staticClass:"flex flex-auto font-semibold text-gray-700 justify-center"},[e._v(e._s(e.currentDay.format("MMM"))+" "+e._s(e.currentDay.format("YYYY")))]),e._v(" "),n("div",[n("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.addMonth()}}},[n("i",{staticClass:"las la-angle-right"})])])]),e._v(" "),n("div",{staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},[n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sun")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Mon")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Tue")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Wed")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Thr")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Fri")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sat")))])]),e._v(" "),e._l(e.calendar,(function(t,s){return n("div",{key:s,staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},e._l(e.daysOfWeek,(function(s,i){return n("div",{key:i,staticClass:"h-8 flex justify-center items-center text-sm"},[e._l(t,(function(t,i){return[t.dayOfWeek===s?n("div",{key:i,staticClass:"h-full w-full flex items-center justify-center cursor-pointer",class:t.date.format("DD")===e.currentDay.format("DD")?"bg-blue-400 text-white border border-blue-500":"hover:bg-gray-100 border border-gray-200",on:{click:function(n){return e.selectDate(t.date)}}},[e._v("\n "+e._s(t.date.format("DD"))+"\n ")]):e._e()]}))],2)})),0)}))],2),e._v(" "),n("div")])]):e._e()])}),[],!1,null,null,null).exports},3968:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});function s(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,s=new Array(t);n100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,s){return n("div",{key:s,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(n){return e.inputValue(t)}}},[void 0!==t.value?n("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?n("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},3923:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var s=n(2277),i=n(7266),r=n(162),a=n(7389);const l={name:"ns-login",props:["showRecoveryLink"],data:function(){return{fields:[],xXsrfToken:null,validation:new i.Z,isSubitting:!1}},mounted:function(){var e=this;(0,s.D)([r.ih.get("/api/nexopos/v4/fields/ns.login"),r.ih.get("/sanctum/csrf-cookie")]).subscribe({next:function(t){e.fields=e.validation.createFields(t[0]),e.xXsrfToken=r.ih.response.config.headers["X-XSRF-TOKEN"],setTimeout((function(){return r.kq.doAction("ns-login-mounted",e)}),100)},error:function(e){r.kX.error(e.message||(0,a.__)("An unexpected error occured."),(0,a.__)("OK"),{duration:0}).subscribe()}})},methods:{__:a.__,signIn:function(){var e=this;if(!this.validation.validateFields(this.fields))return r.kX.error((0,a.__)("Unable to proceed the form is not valid.")).subscribe();this.validation.disableFields(this.fields),r.kq.applyFilters("ns-login-submit",!0)&&(this.isSubitting=!0,r.ih.post("/auth/sign-in",this.validation.getValue(this.fields),{headers:{"X-XSRF-TOKEN":this.xXsrfToken}}).subscribe((function(e){document.location=e.data.redirectTo}),(function(t){e.isSubitting=!1,e.validation.enableFields(e.fields),t.data&&e.validation.triggerFieldsErrors(e.fields,t.data),r.kX.error(t.message).subscribe()})))}}};const o=(0,n(1900).Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow overflow-hidden transition-all duration-100"},[n("div",{staticClass:"p-3 -my-2"},[e.fields.length>0?n("div",{staticClass:"py-2 fade-in-entrance anim-duration-300"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),0===e.fields.length?n("div",{staticClass:"flex items-center justify-center py-10"},[n("ns-spinner",{attrs:{border:"4",size:"16"}})],1):e._e(),e._v(" "),e.showRecoveryLink?n("div",{staticClass:"flex w-full items-center justify-center py-4"},[n("a",{staticClass:"hover:underline text-blue-600 text-sm",attrs:{href:"/password-lost"}},[e._v(e._s(e.__("Password Forgotten ?")))])]):e._e(),e._v(" "),n("div",{staticClass:"flex justify-between items-center bg-gray-200 p-3"},[n("div",[n("ns-button",{staticClass:"justify-between",attrs:{type:"info"},on:{click:function(t){return e.signIn()}}},[e.isSubitting?n("ns-spinner",{staticClass:"mr-2",attrs:{size:"6",border:"2"}}):e._e(),e._v(" "),n("span",[e._v(e._s(e.__("Sign In")))])],1)],1),e._v(" "),n("div",[n("ns-link",{attrs:{href:"/sign-up",type:"success"}},[e._v(e._s(e.__("Register")))])],1)])])}),[],!1,null,null,null).exports},1158:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var s=n(7389),i=n(2277),r=n(7266),a=n(162);const l={name:"ns-login",props:["token","user"],data:function(){return{fields:[],xXsrfToken:null,validation:new r.Z,isSubitting:!1}},mounted:function(){var e=this;(0,i.D)([a.ih.get("/api/nexopos/v4/fields/ns.new-password"),a.ih.get("/sanctum/csrf-cookie")]).subscribe((function(t){e.fields=e.validation.createFields(t[0]),e.xXsrfToken=a.ih.response.config.headers["X-XSRF-TOKEN"],setTimeout((function(){return a.kq.doAction("ns-login-mounted",e)}),100)}),(function(e){a.kX.error(e.message||(0,s.__)("An unexpected error occured."),(0,s.__)("OK"),{duration:0}).subscribe()}))},methods:{__:s.__,submitNewPassword:function(){var e=this;if(!this.validation.validateFields(this.fields))return a.kX.error((0,s.__)("Unable to proceed the form is not valid.")).subscribe();this.validation.disableFields(this.fields),a.kq.applyFilters("ns-new-password-submit",!0)&&(this.isSubitting=!0,a.ih.post("/auth/new-password/".concat(this.user,"/").concat(this.token),this.validation.getValue(this.fields),{headers:{"X-XSRF-TOKEN":this.xXsrfToken}}).subscribe((function(e){a.kX.success(e.message).subscribe(),setTimeout((function(){document.location=e.data.redirectTo}),500)}),(function(t){e.isSubitting=!1,e.validation.enableFields(e.fields),t.data&&e.validation.triggerFieldsErrors(e.fields,t.data),a.kX.error(t.message).subscribe()})))}}};const o=(0,n(1900).Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow overflow-hidden transition-all duration-100"},[n("div",{staticClass:"p-3 -my-2"},[e.fields.length>0?n("div",{staticClass:"py-2 fade-in-entrance anim-duration-300"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),0===e.fields.length?n("div",{staticClass:"flex items-center justify-center py-10"},[n("ns-spinner",{attrs:{border:"4",size:"16"}})],1):e._e(),e._v(" "),n("div",{staticClass:"flex justify-between items-center bg-gray-200 p-3"},[n("div",[n("ns-button",{staticClass:"justify-between",attrs:{type:"info"},on:{click:function(t){return e.submitNewPassword()}}},[e.isSubitting?n("ns-spinner",{staticClass:"mr-2",attrs:{size:"6",border:"2"}}):e._e(),e._v(" "),n("span",[e._v(e._s(e.__("Save Password")))])],1)],1),e._v(" "),n("div")])])}),[],!1,null,null,null).exports},5139:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var s=n(7389),i=n(2277),r=n(7266),a=n(162);const l={name:"ns-login",data:function(){return{fields:[],xXsrfToken:null,validation:new r.Z,isSubitting:!1}},mounted:function(){var e=this;(0,i.D)([a.ih.get("/api/nexopos/v4/fields/ns.password-lost"),a.ih.get("/sanctum/csrf-cookie")]).subscribe((function(t){e.fields=e.validation.createFields(t[0]),e.xXsrfToken=a.ih.response.config.headers["X-XSRF-TOKEN"],setTimeout((function(){return a.kq.doAction("ns-login-mounted",e)}),100)}),(function(e){a.kX.error(e.message||(0,s.__)("An unexpected error occured."),(0,s.__)("OK"),{duration:0}).subscribe()}))},methods:{__:s.__,requestRecovery:function(){var e=this;if(!this.validation.validateFields(this.fields))return a.kX.error((0,s.__)("Unable to proceed the form is not valid.")).subscribe();this.validation.disableFields(this.fields),a.kq.applyFilters("ns-password-lost-submit",!0)&&(this.isSubitting=!0,a.ih.post("/auth/password-lost",this.validation.getValue(this.fields),{headers:{"X-XSRF-TOKEN":this.xXsrfToken}}).subscribe((function(e){a.kX.success(e.message).subscribe(),setTimeout((function(){document.location=e.data.redirectTo}),500)}),(function(t){e.isSubitting=!1,e.validation.enableFields(e.fields),t.data&&e.validation.triggerFieldsErrors(e.fields,t.data),a.kX.error(t.message).subscribe()})))}}};const o=(0,n(1900).Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow overflow-hidden transition-all duration-100"},[n("div",{staticClass:"p-3 -my-2"},[e.fields.length>0?n("div",{staticClass:"py-2 fade-in-entrance anim-duration-300"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),0===e.fields.length?n("div",{staticClass:"flex items-center justify-center py-10"},[n("ns-spinner",{attrs:{border:"4",size:"16"}})],1):e._e(),e._v(" "),n("div",{staticClass:"flex w-full items-center justify-center py-4"},[n("a",{staticClass:"hover:underline text-blue-600 text-sm",attrs:{href:"/sign-in"}},[e._v(e._s(e.__("Remember Your Password ?")))])]),e._v(" "),n("div",{staticClass:"flex justify-between items-center bg-gray-200 p-3"},[n("div",[n("ns-button",{staticClass:"justify-between",attrs:{type:"info"},on:{click:function(t){return e.requestRecovery()}}},[e.isSubitting?n("ns-spinner",{staticClass:"mr-2",attrs:{size:"6",border:"2"}}):e._e(),e._v(" "),n("span",[e._v(e._s(e.__("Submit")))])],1)],1),e._v(" "),n("div",[n("ns-link",{attrs:{href:"/sign-up",type:"success"}},[e._v(e._s(e.__("Register")))])],1)])])}),[],!1,null,null,null).exports},5882:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var s=n(7266),i=n(162),r=n(2277),a=n(7389);const l={name:"ns-register",data:function(){return{fields:[],xXsrfToken:null,validation:new s.Z}},mounted:function(){var e=this;(0,r.D)([i.ih.get("/api/nexopos/v4/fields/ns.register"),i.ih.get("/sanctum/csrf-cookie")]).subscribe((function(t){e.fields=e.validation.createFields(t[0]),e.xXsrfToken=i.ih.response.config.headers["X-XSRF-TOKEN"],setTimeout((function(){return i.kq.doAction("ns-register-mounted",e)}))}))},methods:{__:a.__,register:function(){var e=this;if(!this.validation.validateFields(this.fields))return i.kX.error((0,a.__)("Unable to proceed the form is not valid.")).subscribe();this.validation.disableFields(this.fields),i.kq.applyFilters("ns-register-submit",!0)&&i.ih.post("/auth/sign-up",this.validation.getValue(this.fields),{headers:{"X-XSRF-TOKEN":this.xXsrfToken}}).subscribe((function(e){i.kX.success(e.message).subscribe(),setTimeout((function(){document.location=e.data.redirectTo}),1500)}),(function(t){e.validation.triggerFieldsErrors(e.fields,t),e.validation.enableFields(e.fields),i.kX.error(t.message).subscribe()}))}}};const o=(0,n(1900).Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow overflow-hidden transition-all duration-100"},[n("div",{staticClass:"p-3 -my-2"},[e.fields.length>0?n("div",{staticClass:"py-2 fade-in-entrance anim-duration-300"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),0===e.fields.length?n("div",{staticClass:"flex items-center justify-center"},[n("ns-spinner")],1):e._e(),e._v(" "),n("div",{staticClass:"flex w-full items-center justify-center py-4"},[n("a",{staticClass:"hover:underline text-blue-600 text-sm",attrs:{href:"/sign-in"}},[e._v(e._s(e.__("Already registered ?")))])]),e._v(" "),n("div",{staticClass:"flex justify-between items-center bg-gray-200 p-3"},[n("div",[n("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.register()}}},[e._v(e._s(e.__("Register")))])],1),e._v(" "),n("div",[n("ns-link",{attrs:{href:"/sign-in",type:"success"}},[e._v(e._s(e.__("Sign In")))])],1)])])}),[],!1,null,null,null).exports},9576:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var s=n(162),i=n(8603),r=n(7389);const a={name:"ns-media",props:["popup"],components:{VueUpload:n(2948)},data:function(){return{pages:[{label:(0,r.__)("Upload"),name:"upload",selected:!1},{label:(0,r.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return s.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:i.Z,__:r.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return s.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){s.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){s.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,s.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(n,s){s!==t.response.data.indexOf(e)&&(n.selected=!1)})),e.selected=!e.selected}}};const l=(0,n(1900).Z)(a,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[n("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[n("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),n("ul",e._l(e.pages,(function(t,s){return n("li",{key:s,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(n){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?n("div",{staticClass:"content w-full overflow-hidden flex"},[n("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[n("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[n("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),n("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[n("ul",e._l(e.files,(function(t,s){return n("li",{key:s,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[n("span",[e._v(e._s(t.name))]),e._v(" "),n("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?n("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?n("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[n("div"),e._v(" "),n("div",[n("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),n("div",{staticClass:"flex flex-auto overflow-hidden"},[n("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[n("div",{staticClass:"flex flex-auto"},[n("div",{staticClass:"p-2 overflow-x-auto"},[n("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,s){return n("div",{key:s},[n("div",{staticClass:"p-2"},[n("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(n){return e.selectResource(t)}}},[n("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?n("div",{staticClass:"flex flex-auto items-center justify-center"},[n("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?n("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[n("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[n("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),n("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),n("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),n("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),n("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),n("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[n("div",{staticClass:"flex -mx-2 flex-shrink-0"},[n("div",{staticClass:"px-2 flex-shrink-0 flex"},[n("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?n("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[n("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?n("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[n("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?n("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[n("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),n("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[n("div",{staticClass:"px-2"},[n("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[n("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),n("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),n("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?n("div",{staticClass:"px-2"},[n("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},419:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});const s={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:n(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const i=(0,n(1900).Z)(s,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[n("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[n("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),n("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),n("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[n("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),n("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),n("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=8108,e(e.s=t);var t}));e.O()}]); //# sourceMappingURL=auth.min.js.map \ No newline at end of file diff --git a/public/js/popups.min.js b/public/js/popups.min.js index aaab241a1..3a2e4e80c 100644 --- a/public/js/popups.min.js +++ b/public/js/popups.min.js @@ -1,2 +1,2 @@ -(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[820],{162:(e,t,s)=>{"use strict";s.d(t,{l:()=>z,kq:()=>U,ih:()=>I,kX:()=>R});var r=s(6486),n=s(9669),i=s(2181),a=s(8345),o=s(9624),l=s(9248),c=s(230);function u(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,s)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,s)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var s=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=U.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:r}),new c.y((function(i){s._client[e](t,r,Object.assign(Object.assign({},s._client.defaults[e]),n)).then((function(e){s._lastRequestData=e,i.next(e.data),i.complete(),s._subject.next({identifier:"async.stop"})})).catch((function(e){var t;i.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),s._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,s=e.value;this._subject.next({identifier:t,value:s})}}])&&u(t.prototype,s),r&&u(t,r),e}(),p=s(3);function f(e,t){for(var s=0;s=1e3){for(var s,r=Math.floor((""+e).length/3),n=2;n>=1;n--){if(((s=parseFloat((0!=r?e/Math.pow(1e3,r):e).toPrecision(n)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}s%1!=0&&(s=s.toFixed(1)),t=s+["","k","m","b","t"][r]}return t})),S=s(1356),O=s(9698);function $(e,t){for(var s=0;s0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&T(t.prototype,s),r&&T(t,r),e}()),W=new h({sidebar:["xs","sm","md"].includes(N.breakpoint)?"hidden":"visible"});I.defineClient(n),window.nsEvent=z,window.nsHttpClient=I,window.nsSnackBar=R,window.nsCurrency=S.W,window.nsTruncate=O.b,window.nsRawCurrency=S.f,window.nsAbbreviate=P,window.nsState=W,window.nsUrl=X,window.nsScreen=N,window.ChartJS=i,window.EventEmitter=v,window.Popup=x.G,window.RxJS=y,window.FormValidation=C.Z,window.nsCrudHandler=Q},4451:(e,t,s)=>{"use strict";s.d(t,{R:()=>n});var r=s(7389),n=s(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:r.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,s)=>{"use strict";s.d(t,{W:()=>c,f:()=>u});var r=s(538),n=s(2077),i=s.n(n),a=s(6740),o=s.n(a),l=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),c=r.default.filter("currency",(function(e){var t,s,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===r){var n={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};s=o()(e,n).format()}else s=i()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(s).concat("after"===ns.currency.ns_currency_position?t:"")})),u=function(e){var t="0.".concat(l);return parseFloat(i()(e).format(t))}},9698:(e,t,s)=>{"use strict";s.d(t,{b:()=>r});var r=s(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,s)=>{"use strict";function r(e,t){for(var s=0;sn});var n=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,s,n;return t=e,(s=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var s in e.tabs){var r=[],n=this.validateFieldsErrors(e.tabs[s].fields);n.length>0&&r.push(n),e.tabs[s].errors=r.flat(),t.push(r.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var s in e)0===t&&(e[s].active=!0),e[s].active=void 0!==e[s].active&&e[s].active,e[s].fields=this.createFields(e[s].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(s){t.fieldPassCheck(e,s)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var s in e.tabs)void 0===t[s]&&(t[s]={}),t[s]=this.extractFields(e.tabs[s].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var s=function(s){var r=s.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===r.length&&e.tabs[r[0]].fields.forEach((function(e){e.name===r[1]&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))})),s===e.main.name&&t.errors[s].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var r in t.errors)s(r)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var s=function(s){e.forEach((function(e){e.name===s&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))}))};for(var r in t.errors)s(r)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){s.identifier===t.identifier&&!0===s.invalid&&e.errors.splice(r,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){!0===s[t.identifier]&&e.errors.splice(r,1)}))}return e}}])&&r(t.prototype,s),n&&r(t,n),e}()},7389:(e,t,s)=>{"use strict";s.d(t,{__:()=>r,c:()=>n});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},n=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,s)=>{"use strict";function r(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}s.d(t,{Z:()=>r})},6386:(e,t,s)=>{"use strict";function r(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}s.d(t,{Z:()=>r})},2242:(e,t,s)=>{"use strict";s.d(t,{G:()=>a});var r=s(9248);function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{};if(n(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var s=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[s-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new r.x}var t,s,a;return t=e,a=[{key:"show",value:function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=new e(r);return n.open(t,s),n}}],(s=[{key:"open",value:function(e){var t,s,r,n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",a.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){n.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var o=Vue.extend(e);this.instance=new o({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=i,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&i(t.prototype,s),a&&i(t,a),e}()},9624:(e,t,s)=>{"use strict";s.d(t,{S:()=>i});var r=s(3260);function n(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return r.Observable.create((function(r){var i=s.__createSnack({message:e,label:t,type:n.type}),a=i.buttonNode,o=(i.textNode,i.snackWrapper,i.sampleSnack);a.addEventListener("click",(function(e){r.onNext(a),r.onCompleted(),o.remove()})),s.__startTimer(n.duration,o)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var s,r=function(){e>0&&!1!==e&&(s=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(s)})),t.addEventListener("mouseleave",(function(){r()})),r()}},{key:"__createSnack",value:function(e){var t=e.message,s=e.label,r=e.type,n=void 0===r?"info":r,i=document.getElementById("snack-wrapper")||document.createElement("div"),a=document.createElement("div"),o=document.createElement("p"),l=document.createElement("div"),c=document.createElement("button"),u="",d="";switch(n){case"info":u="text-white hover:bg-blue-400 bg-blue-500",d="bg-gray-900 text-white";break;case"error":u="text-red-700 hover:bg-white bg-white",d="bg-red-500 text-white";break;case"success":u="text-green-700 hover:bg-white bg-white",d="bg-green-500 text-white"}return o.textContent=t,s&&(c.textContent=s,c.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(u)),l.appendChild(c)),a.appendChild(o),a.appendChild(l),a.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(d)),i.appendChild(a),null===document.getElementById("snack-wrapper")&&(i.setAttribute("id","snack-wrapper"),i.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(i)),{snackWrapper:i,sampleSnack:a,buttonsWrapper:l,buttonNode:c,textNode:o}}}])&&n(t.prototype,s),i&&n(t,i),e}()},6916:(e,t,s)=>{"use strict";var r=s(162),n=s(1356),i=s(2277),a=s(7266),o=s(8603),l=s(7389);function c(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function u(e){for(var t=1;tthis.availableQuantity)return r.kX.error("Unable to proceed as the quantity provided is exceed the available quantity.").subscribe();this.product.quantity=parseFloat(e),this.$popupParams.resolve(this.product),this.$popup.close()}}};const m=(0,f.Z)(h,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-xl bg-white overflow-hidden w-95vw md:w-4/6-screen lg:w-3/7-screen"},[s("div",{staticClass:"p-2 flex justify-between"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("Quantity")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),e.product?s("div",{staticClass:"border-t border-b border-gray-200 py-2 flex items-center justify-center text-2xl font-semibold"},[s("span",[e._v(e._s(e.seeValue))]),e._v(" "),s("span",{staticClass:"text-gray-600 text-sm"},[e._v("("+e._s(e.availableQuantity)+" available)")])]):e._e(),e._v(" "),e.product?s("div",{staticClass:"flex-auto overflow-y-auto p-2"},[s("ns-numpad",{attrs:{value:e.product.quantity},on:{next:function(t){return e.updateQuantity(t)},changed:function(t){return e.setChangedValue(t)}}})],1):e._e()])}),[],!1,null,null,null).exports;s(4451);const y={data:function(){return{value:[],options:[],label:null,type:"select"}},computed:{},mounted:function(){this.popupCloser(),this.value=this.$popupParams.value||[],this.options=this.$popupParams.options,this.label=this.$popupParams.label,this.type=this.$popupParams.type||this.type,console.log(this.$popupParams)},methods:{popupCloser:o.Z,__:l.__,toggle:function(e){var t=this.value.indexOf(e);-1===t?this.value.unshift(e):this.value.splice(t,1)},isSelected:function(e){return this.value.indexOf(e)>=0},close:function(){this.$popupParams.reject(!1),this.$popup.close()},select:function(e){void 0!==e&&(this.value=[e]),this.$popupParams.resolve(this.value),this.close()}}};const g=(0,f.Z)(y,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-xl bg-white w-6/7-screen md:w-4/7-screen lg:w-3/7-screen overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between border-b border-gray-200"},[s("span",{staticClass:"text-semibold text-gray-700"},[e._v("\n "+e._s(e.label)+"\n ")]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto overflow-y-auto"},[s("ul",["select"===e.type?e._l(e.options,(function(t){return s("li",{key:t.value,staticClass:"p-2 border-b border-gray-200 text-gray-700 cursor-pointer hover:bg-gray-100",on:{click:function(s){return e.select(t)}}},[e._v(e._s(t.label))])})):e._e(),e._v(" "),"multiselect"===e.type?e._l(e.options,(function(t){return s("li",{key:t.value,staticClass:"p-2 border-b text-gray-700 cursor-pointer hover:bg-gray-100",class:e.isSelected(t)?"bg-blue-100 border-blue-200":"border-gray-200",on:{click:function(s){return e.toggle(t)}}},[e._v(e._s(t.label))])})):e._e()],2)]),e._v(" "),"multiselect"===e.type?s("div",{staticClass:"flex justify-between"},[s("div"),e._v(" "),s("div",[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.select()}}},[e._v(e._s(e.__("Select")))])],1)]):e._e()])}),[],!1,null,null,null).exports;var x=s(419),w=s(2242);function C(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function k(e){for(var t=1;t0?this.refundables.map((function(e){return parseFloat(e.unit_price)*parseFloat(e.quantity)})).reduce((function(e,t){return e+t}))+this.shippingFees:0+this.shippingFees},shippingFees:function(){return this.refundShipping?this.order.shipping:0}},data:function(){return{isSubmitting:!1,formValidation:new a.Z,refundables:[],paymentOptions:[],paymentField:[],refundShipping:!1,selectedPaymentGateway:!1,screen:0,selectFields:[{type:"select",options:this.order.products.map((function(e){return{label:"".concat(e.name," - ").concat(e.unit.name," (x").concat(e.quantity,")"),value:e.id}})),validation:"required",name:"product_id",label:(0,l.__)("Product"),description:(0,l.__)("Select the product to perform a refund.")}]}},methods:{__:l.__,updateScreen:function(e){this.screen=e},toggleRefundShipping:function(e){this.refundShipping=e,this.refundShipping},proceedPayment:function(){var e=this;return!1===this.selectedPaymentGateway?r.kX.error((0,l.__)("Please select a payment gateway before proceeding.")).subscribe():0===this.total?r.kX.error((0,l.__)("There is nothing to refund.")).subscribe():0===this.screenValue?r.kX.error((0,l.__)("Please provide a valid payment amount.")).subscribe():void w.G.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("The refund will be made on the current order."),onAction:function(t){t&&e.doProceed()}})},doProceed:function(){var e=this,t={products:this.refundables,total:this.screenValue,payment:this.selectedPaymentGateway,refund_shipping:this.refundShipping};this.isSubmitting=!0,r.ih.post("/api/nexopos/v4/orders/".concat(this.order.id,"/refund"),t).subscribe({next:function(t){e.isSubmitting=!1,e.$emit("changed",!0),r.kX.success(t.message).subscribe()},error:function(t){e.isSubmitting=!1,r.kX.error(t.message).subscribe()}})},addProduct:function(){var e=this;if(this.formValidation.validateFields(this.selectFields),!this.formValidation.fieldsValid(this.selectFields))return r.kX.error((0,l.__)("Please select a product before proceeding.")).subscribe();var t=this.formValidation.extractFields(this.selectFields),s=this.order.products.filter((function(e){return e.id===t.product_id})),n=this.refundables.filter((function(e){return e.id===t.product_id}));if(n.length>0&&n.map((function(e){return parseInt(e.quantity)})).reduce((function(e,t){return e+t}))===s[0].quantity)return r.kX.error((0,l.__)("Not enough quantity to proceed.")).subscribe();if(0===s[0].quantity)return r.kX.error((0,l.__)("Not enough quantity to proceed.")).subscribe();var i=k(k({},s[0]),{condition:"",description:""});new Promise((function(e,t){w.G.show(v,{resolve:e,reject:t,product:i})})).then((function(t){t.quantity=e.getProductOriginalQuantity(t.id)-e.getProductUsedQuantity(t.id),e.refundables.push(t)}),(function(e){return e}))},getProductOriginalQuantity:function(e){var t=this.order.products.filter((function(t){return t.id===e}));return t.length>0?t.map((function(e){return parseFloat(e.quantity)})).reduce((function(e,t){return e+t})):0},getProductUsedQuantity:function(e){var t=this.refundables.filter((function(t){return t.id===e}));return t.length>0?t.map((function(e){return parseFloat(e.quantity)})).reduce((function(e,t){return e+t})):0},openSettings:function(e){var t=this;new Promise((function(t,s){w.G.show(v,{resolve:t,reject:s,product:e})})).then((function(s){var r=t.refundables.indexOf(e);t.$set(t.refundables,r,s)}),(function(e){return e}))},selectPaymentGateway:function(){var e=this;new Promise((function(t,s){w.G.show(g,k({resolve:t,reject:s,value:[e.selectedPaymentOption]},e.paymentField[0]))})).then((function(t){e.selectedPaymentGateway=t[0]}),(function(e){return e}))},changeQuantity:function(e){var t=this;new Promise((function(s,r){var n=t.getProductOriginalQuantity(e.id)-t.getProductUsedQuantity(e.id)+parseFloat(e.quantity);w.G.show(m,{resolve:s,reject:r,product:e,availableQuantity:n})})).then((function(s){if(s.quantity>t.getProductUsedQuantity(e.id)-e.quantity){var r=t.refundables.indexOf(e);t.$set(t.refundables,r,s)}}))},deleteProduct:function(e){var t=this;new Promise((function(s,r){w.G.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to delete this product ?"),onAction:function(s){if(s){var r=t.refundables.indexOf(e);t.refundables.splice(r,1)}}})}))}},mounted:function(){var e=this;this.selectFields=this.formValidation.createFields(this.selectFields),r.ih.get("/api/nexopos/v4/orders/payments").subscribe((function(t){e.paymentField=t}))}};const S=(0,f.Z)(P,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"-m-4 flex-auto flex flex-wrap relative"},[e.isSubmitting?s("div",{staticClass:"bg-overlay h-full w-full flex items-center justify-center absolute z-30"},[s("ns-spinner")],1):e._e(),e._v(" "),s("div",{staticClass:"px-4 w-full lg:w-1/2"},[s("h3",{staticClass:"py-2 border-b-2 text-gray-700 border-blue-400"},[e._v(e._s(e.__("Refund With Products")))]),e._v(" "),s("div",{staticClass:"my-2"},[s("ul",[s("li",{staticClass:"border-b border-blue-400 flex justify-between items-center mb-2"},[s("div",{staticClass:"flex-auto flex-col flex"},[s("div",{staticClass:"p-2 flex"},e._l(e.selectFields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1),e._v(" "),s("div",{staticClass:"flex justify-between p-2"},[s("div",{staticClass:"flex items-center text-gray-700"},[e.order.shipping>0?s("span",{staticClass:"mr-2"},[e._v(e._s(e.__("Refund Shipping")))]):e._e(),e._v(" "),e.order.shipping>0?s("ns-checkbox",{attrs:{checked:e.refundShipping},on:{change:function(t){return e.toggleRefundShipping(t)}}}):e._e()],1),e._v(" "),s("div",[s("button",{staticClass:"border-2 rounded-full border-gray-200 px-2 py-1 hover:bg-blue-400 hover:text-white text-gray-700",on:{click:function(t){return e.addProduct()}}},[e._v(e._s(e.__("Add Product")))])])])])]),e._v(" "),s("li",[s("h4",{staticClass:"py-1 border-b-2 text-gray-700 border-blue-400"},[e._v(e._s(e.__("Products")))])]),e._v(" "),e._l(e.refundables,(function(t){return s("li",{key:t.id,staticClass:"bg-gray-100 border-b border-blue-400 flex justify-between items-center mb-2"},[s("div",{staticClass:"px-2 text-gray-700 flex justify-between flex-auto"},[s("div",{staticClass:"flex flex-col"},[s("p",{staticClass:"py-2"},[s("span",[e._v(e._s(t.name))]),e._v(" "),"damaged"===t.condition?s("span",{staticClass:"rounded-full px-2 py-1 text-xs bg-red-400 mx-2 text-white"},[e._v(e._s(e.__("Damaged")))]):e._e(),e._v(" "),"unspoiled"===t.condition?s("span",{staticClass:"rounded-full px-2 py-1 text-xs bg-green-400 mx-2 text-white"},[e._v(e._s(e.__("Unspoiled")))]):e._e()]),e._v(" "),s("small",[e._v(e._s(t.unit.name))])]),e._v(" "),s("div",{staticClass:"flex items-center justify-center"},[s("span",{staticClass:"py-1 flex items-center cursor-pointer border-b border-dashed border-blue-400"},[e._v(e._s(e._f("currency")(t.unit_price*t.quantity)))])])]),e._v(" "),s("div",{staticClass:"flex"},[s("p",{staticClass:"p-2 border-l border-blue-400 cursor-pointer text-gray-600 hover:bg-blue-100 w-16 h-16 flex items-center justify-center",on:{click:function(s){return e.openSettings(t)}}},[s("i",{staticClass:"las la-cog text-xl"})]),e._v(" "),s("p",{staticClass:"p-2 border-l border-blue-400 cursor-pointer text-gray-600 hover:bg-blue-100 w-16 h-16 flex items-center justify-center",on:{click:function(s){return e.deleteProduct(t)}}},[s("i",{staticClass:"las la-trash"})]),e._v(" "),s("p",{staticClass:"p-2 border-l border-blue-400 cursor-pointer text-gray-600 hover:bg-blue-100 w-16 h-16 flex items-center justify-center",on:{click:function(s){return e.changeQuantity(t)}}},[e._v(e._s(t.quantity))])])])}))],2)])]),e._v(" "),s("div",{staticClass:"px-4 w-full lg:w-1/2"},[s("h3",{staticClass:"py-2 border-b-2 text-gray-700 border-blue-400"},[e._v(e._s(e.__("Summary")))]),e._v(" "),s("div",{staticClass:"py-2"},[s("div",{staticClass:"bg-blue-400 text-white font-semibold flex mb-2 p-2 justify-between"},[s("span",[e._v(e._s(e.__("Total")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.total)))])]),e._v(" "),s("div",{staticClass:"bg-teal-400 text-white font-semibold flex mb-2 p-2 justify-between"},[s("span",[e._v(e._s(e.__("Paid")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.order.tendered)))])]),e._v(" "),s("div",{staticClass:"bg-indigo-400 text-white font-semibold flex mb-2 p-2 justify-between cursor-pointer",on:{click:function(t){return e.selectPaymentGateway()}}},[s("span",[e._v(e._s(e.__("Payment Gateway")))]),e._v(" "),s("span",[e._v(e._s(e.selectedPaymentGateway?e.selectedPaymentGateway.label:"N/A"))])]),e._v(" "),s("div",{staticClass:"bg-gray-300 text-gray-900 font-semibold flex mb-2 p-2 justify-between"},[s("span",[e._v(e._s(e.__("Screen")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.screenValue)))])]),e._v(" "),s("div",[s("ns-numpad",{attrs:{currency:!0,value:e.screen},on:{changed:function(t){return e.updateScreen(t)},next:function(t){return e.proceedPayment(t)}}})],1)])])])}),[],!1,null,null,null).exports;var O=s(1596);function $(e,t){for(var s=0;s0?t[0].label:(0,l.__)("Unknown Status")}},{key:"getDeliveryStatus",value:function(e){var t=deliveryStatuses.filter((function(t){return t.value===e}));return t.length>0?t[0].label:(0,l.__)("Unknown Status")}},{key:"getProcessingStatus",value:function(e){var t=processingStatuses.filter((function(t){return t.value===e}));return t.length>0?t[0].label:(0,l.__)("Unknown Status")}},{key:"getPaymentStatus",value:function(e){var t=paymentLabels.filter((function(t){return t.value===e}));return t.length>0?t[0].label:(0,l.__)("Unknown Status")}}])&&$(t.prototype,s),r&&$(t,r),e}();function E(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function V(e){for(var t=1;t0?s("span",[e._v(e._s(e._f("currency")(e.order.total-e.order.tendered)))]):e._e(),e._v(" "),e.order.total-e.order.tendered<=0?s("span",[e._v(e._s(e._f("currency")(0)))]):e._e()])]),e._v(" "),s("div",{staticClass:"px-2 w-full md:w-1/2"},[s("div",{staticClass:"my-1 h-12 py-1 px-2 flex justify-between items-center bg-teal-400 text-white text-xl font-bold"},[s("span",[e._v(e._s(e.__("Customer Account")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.order.customer.account_amount)))])])])]),e._v(" "),s("div",{staticClass:"flex -mx-4 flex-wrap"},[s("div",{staticClass:"px-2 w-full mb-4 md:w-1/2"},["paid"!==e.order.payment_status?s("div",[s("h3",{staticClass:"font-semibold border-b-2 border-blue-400 py-2"},[e._v("\n "+e._s(e.__("Payment"))+"\n ")]),e._v(" "),s("div",{staticClass:"py-2"},[e._l(e.fields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),e._v(" "),s("div",{staticClass:"my-2 px-2 h-12 flex justify-end items-center bg-gray-200"},[e._v("\n "+e._s(e._f("currency")(e.inputValue))+"\n ")]),e._v(" "),s("ns-numpad",{attrs:{floating:!0,value:e.inputValue},on:{next:function(t){return e.submitPayment(t)},changed:function(t){return e.updateValue(t)}}})],2)]):e._e(),e._v(" "),"paid"===e.order.payment_status?s("div",{staticClass:"flex items-center justify-center h-full"},[s("h3",{staticClass:"text-gray-700 font-semibold"},[e._v(e._s(e.__("No payment possible for paid order.")))])]):e._e()]),e._v(" "),s("div",{staticClass:"px-2 w-full mb-4 md:w-1/2"},[s("h3",{staticClass:"font-semibold border-b-2 border-blue-400 py-2 mb-2"},[e._v("\n "+e._s(e.__("Payment History"))+"\n ")]),e._v(" "),s("ul",e._l(e.order.payments,(function(t){return s("li",{key:t.id,staticClass:"p-2 flex items-center justify-between text-shite bg-gray-300 mb-2"},[s("span",[e._v(e._s(t.identifier))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(t.value)))])])})),0)])])])}),[],!1,null,null,null).exports;const T={props:["order"],data:function(){return{processingStatuses,deliveryStatuses,labels:new A,showProcessingSelect:!1,showDeliverySelect:!1}},mounted:function(){},methods:{__:l.__,submitProcessingChange:function(){var e=this;w.G.show(x.Z,{title:(0,l.__)("Would you proceed ?"),message:(0,l.__)("The processing status of the order will be changed. Please confirm your action."),onAction:function(t){t&&r.ih.post("/api/nexopos/v4/orders/".concat(e.order.id,"/processing"),{process_status:e.order.process_status}).subscribe((function(t){e.showProcessingSelect=!1,r.kX.success(t.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("Unexpected error occured.")).subscribe()}))}})},submitDeliveryStatus:function(){var e=this;w.G.show(x.Z,{title:(0,l.__)("Would you proceed ?"),message:(0,l.__)("The delivery status of the order will be changed. Please confirm your action."),onAction:function(t){t&&r.ih.post("/api/nexopos/v4/orders/".concat(e.order.id,"/delivery"),{delivery_status:e.order.delivery_status}).subscribe((function(t){e.showDeliverySelect=!1,r.kX.success(t.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("Unexpected error occured.")).subscribe()}))}})}}};const D=(0,f.Z)(T,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"-mx-4 flex flex-wrap"},[s("div",{staticClass:"flex-auto"},[s("div",{staticClass:"w-full mb-2 flex-wrap flex"},[s("div",{staticClass:"w-full mb-2 px-4"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Payment Summary")))])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"bg-gray-200 p-2 flex justify-between items-start"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(e.__("Sub Total")))])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e._f("currency")(e.order.subtotal)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-red-400 text-white"},[s("div",[s("h4",{staticClass:"text-semibold"},[s("span",[e._v(e._s(e.__("Discount")))]),e._v(" "),"percentage"===e.order.discount_type?s("span",{staticClass:"ml-1"},[e._v("("+e._s(e.order.discount_percentage)+"%)")]):e._e(),e._v(" "),"flat"===e.order.discount_type?s("span",{staticClass:"ml-1"},[e._v("(Flat)")]):e._e()])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.discount)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-gray-100"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(e.__("Shipping")))])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e._f("currency")(e.order.shipping)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-red-400 text-white"},[s("div",[s("h4",{staticClass:"text-semibold"},[s("span",[e._v(e._s(e.__("Coupons")))])])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.total_coupons)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-blue-400 text-white"},[s("div",[s("h4",{staticClass:"text-semibold"},[e._v(e._s(e.__("Total")))])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.total)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-yellow-400 text-gray-700"},[s("div",[s("h4",{staticClass:"text-semibold "},[e._v(e._s(e.__("Taxes")))])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.tax_value)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start text-gray-700 bg-gray-100"},[s("div",[s("h4",{staticClass:"text-semibold"},[e._v(e._s(e.__("Change")))])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.change)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-teal-500 text-white"},[s("div",[s("h4",{staticClass:"text-semibold"},[e._v(e._s(e.__("Paid")))])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.tendered)))])])])])]),e._v(" "),s("div",{staticClass:"px-4 w-full md:w-1/2 lg:w-2/4 mb-2"},[s("div",{staticClass:"mb-2"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Order Status")))])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex justify-between items-start bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Customer")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e.order.nexopos_customers_name))])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex justify-between items-start bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Type")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e.labels.getTypeLabel(e.order.type)))])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex justify-between items-start bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Delivery Status")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800 mt-2 md:mt-0 w-full md:w-auto"},[s("div",{staticClass:"w-full text-center"},[e.showDeliverySelect?e._e():s("span",{staticClass:"font-semibold text-gray-800 border-b border-blue-400 cursor-pointer border-dashed",on:{click:function(t){e.showDeliverySelect=!0}}},[e._v(e._s(e.labels.getDeliveryStatus(e.order.delivery_status)))])]),e._v(" "),e.showDeliverySelect?s("div",{staticClass:"flex-auto flex"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.order.delivery_status,expression:"order.delivery_status"}],ref:"process_status",staticClass:"flex-auto border-blue-400 rounded-lg",on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.order,"delivery_status",t.target.multiple?s:s[0])}}},e._l(e.deliveryStatuses,(function(t,r){return s("option",{key:r,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0),e._v(" "),s("div",{staticClass:"pl-2 flex"},[s("ns-close-button",{on:{click:function(t){e.showDeliverySelect=!1}}}),e._v(" "),s("button",{staticClass:"bg-green-400 text-white rounded-full px-2 py-1",on:{click:function(t){return e.submitDeliveryStatus(e.order)}}},[e._v(e._s(e.__("Save")))])],1)]):e._e()])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex flex-col md:flex-row justify-between items-center bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Processing Status")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800 mt-2 md:mt-0 w-full md:w-auto"},[s("div",{staticClass:"w-full text-center"},[e.showProcessingSelect?e._e():s("span",{staticClass:"border-b border-blue-400 cursor-pointer border-dashed",on:{click:function(t){e.showProcessingSelect=!0}}},[e._v(e._s(e.labels.getProcessingStatus(e.order.process_status)))])]),e._v(" "),e.showProcessingSelect?s("div",{staticClass:"flex-auto flex"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.order.process_status,expression:"order.process_status"}],ref:"process_status",staticClass:"flex-auto border-blue-400 rounded-lg",on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.order,"process_status",t.target.multiple?s:s[0])}}},e._l(e.processingStatuses,(function(t,r){return s("option",{key:r,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0),e._v(" "),s("div",{staticClass:"pl-2 flex"},[s("ns-close-button",{on:{click:function(t){e.showProcessingSelect=!1}}}),e._v(" "),s("button",{staticClass:"bg-green-400 text-white rounded-full px-2 py-1",on:{click:function(t){return e.submitProcessingChange(e.order)}}},[e._v(e._s(e.__("Save")))])],1)]):e._e()])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex justify-between items-start bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Payment Status")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e.labels.getPaymentStatus(e.order.payment_status)))])])]),e._v(" "),s("div",{staticClass:"px-4 w-full md:w-1/2 lg:w-2/4 mb-2"},[s("div",{staticClass:"mb-2"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Products")))])]),e._v(" "),e._l(e.order.products,(function(t){return s("div",{key:t.id,staticClass:"p-2 flex justify-between items-start bg-gray-200 mb-2"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(t.name)+" (x"+e._s(t.quantity)+")")]),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(t.unit.name||"N/A"))])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e._f("currency")(t.total_price)))])])})),e._v(" "),s("div",{staticClass:"mb-2"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Refunded Products")))])]),e._v(" "),e._l(e.order.refunded_products,(function(t){return s("div",{key:t.id,staticClass:"p-2 flex justify-between items-start bg-gray-200 mb-2"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(t.product.name)+" (x"+e._s(t.quantity)+")")]),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(t.unit.name||"N/A")+" | "),s("span",{staticClass:"rounded-full px-2",class:"damaged"===t.condition?"bg-red-400 text-white":"bg-blue-400 text-white"},[e._v(e._s(t.condition))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e._f("currency")(t.total_price)))])])}))],2)])}),[],!1,null,null,null).exports;const z={props:["order"],name:"ns-order-instalments",data:function(){return{labels:new A,original:[],instalments:[]}},mounted:function(){this.loadInstalments()},computed:{totalInstalments:function(){return this.instalments.length>0?this.instalments.map((function(e){return e.amount})).reduce((function(e,t){return parseFloat(e)+parseFloat(t)})):0}},methods:{__:l.__,loadInstalments:function(){var e=this;r.ih.get("/api/nexopos/v4/orders/".concat(this.order.id,"/instalments")).subscribe((function(t){e.original=t,e.instalments=t.map((function(e){return e.price_clicked=!1,e.date_clicked=!1,e.date=moment(e.date).format("YYYY-MM-DD"),e}))}))},addInstalment:function(){this.instalments.push({date:ns.date.moment.format("YYYY-MM-DD"),amount:this.order.total-this.totalInstalments,paid:!1})},createInstalment:function(e){var t=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to create this instalment ?"),onAction:function(s){s&&r.ih.post("/api/nexopos/v4/orders/".concat(t.order.id,"/instalments"),{instalment:e}).subscribe((function(e){t.loadInstalments(),r.kX.success(e.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("An unexpected error has occured")).subscribe()}))}})},deleteInstalment:function(e){var t=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to delete this instalment ?"),onAction:function(s){s&&r.ih.delete("/api/nexopos/v4/orders/".concat(t.order.id,"/instalments/").concat(e.id)).subscribe((function(s){var n=t.instalments.indexOf(e);t.instalments.splice(n,1),r.kX.success(s.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("An unexpected error has occured")).subscribe()}))}})},markAsPaid:function(e){var t=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to make this as paid ?"),onAction:function(s){s&&r.ih.get("/api/nexopos/v4/orders/".concat(t.order.id,"/instalments/").concat(e.id,"/paid")).subscribe((function(e){t.loadInstalments(),r.kX.success(e.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("An unexpected error has occured")).subscribe()}))}})},togglePriceEdition:function(e){var t=this;e.paid||(e.price_clicked=!e.price_clicked,this.$forceUpdate(),e.price_clicked&&setTimeout((function(){t.$refs.amount[0].select()}),100))},updateInstalment:function(e){var t=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to update that instalment ?"),onAction:function(s){s&&r.ih.put("/api/nexopos/v4/orders/".concat(t.order.id,"/instalments/").concat(e.id),{instalment:e}).subscribe((function(e){r.kX.success(e.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("An unexpected error has occured")).subscribe()}))}})},toggleDateEdition:function(e){var t=this;e.paid||(e.date_clicked=!e.date_clicked,this.$forceUpdate(),e.date_clicked&&setTimeout((function(){t.$refs.date[0].select()}),200))}}};const I=(0,f.Z)(z,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"-mx-4 flex-auto flex flex-wrap"},[s("div",{staticClass:"flex flex-auto"},[s("div",{staticClass:"w-full mb-2 flex-wrap"},[s("div",{staticClass:"w-full mb-2 px-4"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Instalments")))])]),e._v(" "),s("div",{staticClass:"px-4"},[s("ul",{staticClass:"border-gray-400 border-t text-gray-700"},[e._l(e.instalments,(function(t){return s("li",{key:t.id,staticClass:"border-b border-l flex justify-between",class:t.paid?"bg-green-200 border-green-400":"bg-gray-200 border-blue-400"},[s("span",{staticClass:"p-2"},[t.date_clicked?e._e():s("span",{on:{click:function(s){return e.toggleDateEdition(t)}}},[e._v(e._s(t.date))]),e._v(" "),t.date_clicked?s("span",[s("input",{directives:[{name:"model",rawName:"v-model",value:t.date,expression:"instalment.date"}],ref:"date",refInFor:!0,staticClass:"border border-blue-400 rounded",attrs:{type:"date"},domProps:{value:t.date},on:{blur:function(s){return e.toggleDateEdition(t)},input:function(s){s.target.composing||e.$set(t,"date",s.target.value)}}})]):e._e()]),e._v(" "),s("div",{staticClass:"flex items-center"},[s("span",{staticClass:"flex items-center px-2 h-full border-r",class:t.paid?"border-green-400":"border-blue-400"},[t.price_clicked?e._e():s("span",{on:{click:function(s){return e.togglePriceEdition(t)}}},[e._v(e._s(e._f("currency")(t.amount)))]),e._v(" "),t.price_clicked?s("span",[s("input",{directives:[{name:"model",rawName:"v-model",value:t.amount,expression:"instalment.amount"}],ref:"amount",refInFor:!0,staticClass:"border border-blue-400 p-1",attrs:{type:"text"},domProps:{value:t.amount},on:{blur:function(s){return e.togglePriceEdition(t)},input:function(s){s.target.composing||e.$set(t,"amount",s.target.value)}}})]):e._e()]),e._v(" "),!t.paid&&t.id?s("div",{staticClass:"w-36 justify-center flex items-center px-2 h-full border-r",class:t.paid?"border-green-400":"border-blue-400"},[s("div",{staticClass:"px-2"},[s("ns-icon-button",{attrs:{buttonClass:"bg-green-400 hover:bg-green-500 text-white hover:text-white hover:border-green-600",className:"la-money-bill-wave-alt"},on:{click:function(s){return e.markAsPaid(t)}}})],1),e._v(" "),s("div",{staticClass:"px-2"},[s("ns-icon-button",{attrs:{buttonClass:"bg-blue-400 hover:bg-blue-500 text-white hover:text-white hover:border-blue-600",className:"la-save"},on:{click:function(s){return e.updateInstalment(t)}}})],1),e._v(" "),s("div",{staticClass:"px-2"},[s("ns-icon-button",{attrs:{buttonClass:"bg-red-400 text-white hover:border hover:border-blue-400 hover:bg-red-500",className:"la-trash-alt"},on:{click:function(s){return e.deleteInstalment(t)}}})],1)]):e._e(),e._v(" "),t.paid||t.id?e._e():s("div",{staticClass:"w-36 justify-center flex items-center px-2 h-full border-r",class:t.paid?"border-green-400":"border-blue-400"},[s("div",{staticClass:"px-2"},[s("button",{staticClass:"px-3 py-1 rounded-full bg-blue-400 text-white",on:{click:function(s){return e.createInstalment(t)}}},[s("i",{staticClass:"las la-plus"}),e._v("\n "+e._s(e.__("Create"))+"\n ")])])]),e._v(" "),t.paid?s("span",{staticClass:"w-36 border-green-400 justify-center flex items-center px-2 h-full border-r"},[e._v("\n "+e._s(e.__("Paid"))+"\n ")]):e._e()])])})),e._v(" "),s("li",{staticClass:"flex justify-between p-2 bg-gray-200 border-r border-b border-l border-gray-400"},[s("div",{staticClass:"flex items-center justify-center"},[s("span",[e._v("\n "+e._s(e.__("Total :"))+" "+e._s(e._f("currency")(e.order.total))+"\n ")]),e._v(" "),s("span",{staticClass:"ml-1 text-sm"},[e._v("\n ("+e._s(e.__("Remaining :"))+" "+e._s(e._f("currency")(e.order.total-e.totalInstalments))+")\n ")])]),e._v(" "),s("div",{staticClass:"-mx-2 flex flex-wrap items-center"},[s("span",{staticClass:"px-2"},[e._v("\n "+e._s(e.__("Instalments:"))+" "+e._s(e._f("currency")(e.totalInstalments))+"\n ")]),e._v(" "),s("span",{staticClass:"px-2"},[s("button",{staticClass:"rounded-full px-3 py-1 bg-blue-400 text-white",on:{click:function(t){return e.addInstalment()}}},[e._v(e._s(e.__("Add Instalment")))])])])])],2)])])])])}),[],!1,null,null,null).exports;var R={filters:{nsCurrency:n.W},name:"ns-preview-popup",data:function(){return{active:"details",order:new Object,products:[],payments:[]}},components:{nsOrderRefund:S,nsOrderPayment:Z,nsOrderDetails:D,nsOrderInstalments:I},computed:{isVoidable:function(){return["paid","partially_paid","unpaid"].includes(this.order.payment_status)},isDeleteAble:function(){return["hold"].includes(this.order.payment_status)}},methods:{__:l.__,closePopup:function(){this.$popup.close()},setActive:function(e){this.active=e},refresh:function(){this.$popupParams.component.$emit("updated"),this.loadOrderDetails(this.$popupParams.order.id)},printOrder:function(){var e=this.$popupParams.order;r.ih.get("/api/nexopos/v4/orders/".concat(e.id,"/print/receipt")).subscribe((function(e){r.kX.success(e.message).subscribe()}))},loadOrderDetails:function(e){var t=this;(0,i.D)([r.ih.get("/api/nexopos/v4/orders/".concat(e)),r.ih.get("/api/nexopos/v4/orders/".concat(e,"/products")),r.ih.get("/api/nexopos/v4/orders/".concat(e,"/payments"))]).subscribe((function(e){t.order=e[0],t.products=e[1],t.payments=e[2]}))},deleteOrder:function(){var e=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to delete this order"),onAction:function(t){t&&r.ih.delete("/api/nexopos/v4/orders/".concat(e.$popupParams.order.id)).subscribe((function(t){r.kX.success(t.message).subscribe(),e.refreshCrudTable(),e.closePopup()}),(function(e){r.kX.error(e.message).subscribe()}))}})},voidOrder:function(){var e=this;Popup.show(O.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("The current order will be void. This action will be recorded. Consider providing a reason for this operation"),onAction:function(t){!1!==t&&r.ih.post("/api/nexopos/v4/orders/".concat(e.$popupParams.order.id,"/void"),{reason:t}).subscribe((function(t){r.kX.success(t.message).subscribe(),e.refreshCrudTable(),e.closePopup()}),(function(e){r.kX.error(e.message).subscribe()}))}})},refreshCrudTable:function(){this.$popupParams.component.$emit("updated",!0)}},watch:{active:function(){"details"===this.active&&this.loadOrderDetails(this.$popupParams.order.id)}},mounted:function(){var e=this;this.loadOrderDetails(this.$popupParams.order.id),this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.$popup.close()}))}};window.nsOrderPreviewPopup=R;const X=R;const Q=(0,f.Z)(X,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"h-95vh w-95vw md:h-6/7-screen md:w-6/7-screen overflow-hidden shadow-xl bg-white flex flex-col"},[s("div",{staticClass:"border-b border-gray-300 p-3 flex items-center justify-between"},[s("div",[s("h3",[e._v(e._s(e.__("Order Options")))])]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.closePopup()}}})],1)]),e._v(" "),s("div",{staticClass:"p-2 overflow-scroll bg-gray-100 flex flex-auto"},[e.order.id?s("ns-tabs",{attrs:{active:e.active},on:{active:function(t){return e.setActive(t)}}},[s("ns-tabs-item",{staticClass:"overflow-y-auto",attrs:{label:e.__("Details"),identifier:"details"}},[s("ns-order-details",{attrs:{order:e.order}})],1),e._v(" "),["order_void","hold","refunded","partially_refunded"].includes(e.order.payment_status)?e._e():s("ns-tabs-item",{staticClass:"overflow-y-auto",attrs:{label:e.__("Payments"),identifier:"payments"}},[s("ns-order-payment",{attrs:{order:e.order},on:{changed:function(t){return e.refresh()}}})],1),e._v(" "),["order_void","hold","refunded"].includes(e.order.payment_status)?e._e():s("ns-tabs-item",{staticClass:"flex overflow-y-auto",attrs:{label:e.__("Refund & Return"),identifier:"refund"}},[s("ns-order-refund",{attrs:{order:e.order},on:{changed:function(t){return e.refresh()}}})],1),e._v(" "),["partially_paid"].includes(e.order.payment_status)?s("ns-tabs-item",{staticClass:"flex overflow-y-auto",attrs:{label:e.__("Installments"),identifier:"instalments"}},[s("ns-order-instalments",{attrs:{order:e.order},on:{changed:function(t){return e.refresh()}}})],1):e._e()],1):e._e(),e._v(" "),e.order.id?e._e():s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("ns-spinner")],1)],1),e._v(" "),s("div",{staticClass:"p-2 flex justify-between border-t border-gray-200"},[s("div",[e.isVoidable?s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.voidOrder()}}},[s("i",{staticClass:"las la-ban"}),e._v("\n "+e._s(e.__("Void"))+"\n ")]):e._e(),e._v(" "),e.isDeleteAble?s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.deleteOrder()}}},[s("i",{staticClass:"las la-trash"}),e._v("\n "+e._s(e.__("Delete"))+"\n ")]):e._e()],1),e._v(" "),s("div")])])}),[],!1,null,null,null).exports;const U={name:"ns-products-preview",computed:{product:function(){return this.$popupParams.product}},methods:{__:l.__,changeActiveTab:function(e){this.active=e,"units-quantities"===this.active&&this.loadProductQuantities()},loadProductQuantities:function(){var e=this;this.hasLoadedUnitQuantities=!1,r.ih.get("/api/nexopos/v4/products/".concat(this.product.id,"/units/quantities")).subscribe((function(t){e.unitQuantities=t,e.hasLoadedUnitQuantities=!0}))}},data:function(){return{active:"units-quantities",unitQuantities:[],hasLoadedUnitQuantities:!1}},mounted:function(){var e=this;this.loadProductQuantities(),this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.$popup.close()}))}};const N=(0,f.Z)(U,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg w-6/7-screen lg:w-3/5-screen h-6/7-screen lg:h-4/5-screen bg-white overflow-hidden flex flex-col"},[s("div",{staticClass:"p-2 border-b border-gray-200 text-gray-700 text-center font-medium flex justify-between items-center"},[s("div",[e._v("\n "+e._s(e.__("Previewing :"))+" "+e._s(e.product.name)+"\n ")]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto overflow-y-auto bg-gray-100"},[s("div",{staticClass:"p-2"},[s("ns-tabs",{attrs:{active:e.active},on:{active:function(t){return e.changeActiveTab(t)}}},[s("ns-tabs-item",{attrs:{label:e.__("Units & Quantities"),identifier:"units-quantities"}},[e.hasLoadedUnitQuantities?s("table",{staticClass:"table w-full"},[s("thead",[s("tr",[s("th",{staticClass:"p-1 bg-blue-100 border-blue-400 text-blue-700 border"},[e._v(e._s(e.__("Unit")))]),e._v(" "),s("th",{staticClass:"text-right p-1 bg-blue-100 border-blue-400 text-blue-700 border",attrs:{width:"150"}},[e._v(e._s(e.__("Sale Price")))]),e._v(" "),s("th",{staticClass:"text-right p-1 bg-blue-100 border-blue-400 text-blue-700 border",attrs:{width:"150"}},[e._v(e._s(e.__("Wholesale Price")))]),e._v(" "),s("th",{staticClass:"text-right p-1 bg-blue-100 border-blue-400 text-blue-700 border",attrs:{width:"150"}},[e._v(e._s(e.__("Quantity")))])])]),e._v(" "),s("tbody",e._l(e.unitQuantities,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"p-1 border border-gray-400 text-gray-600 text-left"},[e._v(e._s(t.unit.name))]),e._v(" "),s("td",{staticClass:"p-1 border border-gray-400 text-gray-600 text-right"},[e._v(e._s(e._f("currency")(t.sale_price)))]),e._v(" "),s("td",{staticClass:"p-1 border border-gray-400 text-gray-600 text-right"},[e._v(e._s(e._f("currency")(t.wholesale_price)))]),e._v(" "),s("td",{staticClass:"p-1 border border-gray-400 text-gray-600 text-right"},[e._v(e._s(t.quantity))])])})),0)]):e._e(),e._v(" "),e.hasLoadedUnitQuantities?e._e():s("ns-spinner",{attrs:{size:"16",border:"4"}})],1)],1)],1)])])}),[],!1,null,null,null).exports;var W=s(2329),L=s(9576),G=s(7096);const Y={name:"ns-orders-refund-popup",data:function(){return{order:null,refunds:[],view:"summary",previewed:null,loaded:!1,options:systemOptions,settings:systemSettings}},methods:{__:l.__,popupCloser:o.Z,popupResolver:b.Z,toggleProductView:function(e){this.view="details",this.previewed=e},loadOrderRefunds:function(){var e=this;nsHttpClient.get("/api/nexopos/v4/orders/".concat(this.order.id,"/refunds")).subscribe((function(t){e.loaded=!0,e.refunds=t.refunds}),(function(e){r.kX.error(e.message).subscribe()}))},close:function(){this.$popup.close()},processRegularPrinting:function(e){var t=document.querySelector("printing-section");t&&t.remove();var s=this.settings.printing_url.replace("{order_id}",e),r=document.createElement("iframe");r.id="printing-section",r.className="hidden",r.src=s,document.body.appendChild(r)},printRefundReceipt:function(e){this.printOrder(e.id)},printOrder:function(e){switch(this.options.ns_pos_printing_gateway){case"default":this.processRegularPrinting(e);break;default:this.processCustomPrinting(e,this.options.ns_pos_printing_gateway)}},processCustomPrinting:function(e,t){nsHooks.applyFilters("ns-order-custom-refund-print",{printed:!1,order_id:e,gateway:t}).printed||r.kX.error((0,l.__)("Unsupported print gateway.")).subscribe()}},mounted:function(){this.order=this.$popupParams.order,this.popupCloser(),this.loadOrderRefunds()}};const M=(0,f.Z)(Y,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg w-95vw h-95vh md:w-3/5-screen md:h-3/5-screen bg-white flex flex-col overflow-hidden"},[s("div",{staticClass:"border-b p-2 flex items-center justify-between"},[s("h3",[e._v(e._s(e.__("Order Refunds")))]),e._v(" "),s("div",{staticClass:"flex"},["details"===e.view?s("div",{staticClass:"flex items-center justify-center cursor-pointer rounded-full px-3 border hover:bg-blue-400 hover:text-white mr-1",on:{click:function(t){e.view="summary"}}},[e._v(e._s(e.__("Return")))]):e._e(),e._v(" "),s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"overflow-auto flex-auto"},["summary"===e.view?[e.loaded?e._e():s("div",{staticClass:"flex h-full w-full items-center justify-center"},[s("ns-spinner",{attrs:{size:"24"}})],1),e._v(" "),e.loaded&&0===e.refunds.length?s("div",{staticClass:"flex h-full w-full items-center justify-center"},[s("i",{staticClass:"lar la-frown-open"})]):e._e(),e._v(" "),e.loaded&&e.refunds.length>0?e._l(e.refunds,(function(t){return s("div",{key:t.id,staticClass:"border-b flex flex-col md:flex-row"},[s("div",{staticClass:"w-full md:flex-auto p-2"},[s("h3",{staticClass:"font-semibold mb-1"},[e._v(e._s(e.order.code))]),e._v(" "),s("div",[s("ul",{staticClass:"flex -mx-1 text-sm text-gray-700"},[s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Total"))+" : "+e._s(e._f("currency")(t.total)))]),e._v(" "),s("li",{staticClass:"px-1"},[e._v(e._s(e.__("By"))+" : "+e._s(t.author.username))])])])]),e._v(" "),s("div",{staticClass:"w-full md:w-16 cursor-pointer hover:bg-blue-400 hover:border-blue-400 hover:text-white text-lg flex items-center justify-center md:border-l",on:{click:function(s){return e.toggleProductView(t)}}},[s("i",{staticClass:"las la-eye"})]),e._v(" "),s("div",{staticClass:"w-full md:w-16 cursor-pointer hover:bg-blue-400 hover:border-blue-400 hover:text-white text-lg flex items-center justify-center md:border-l",on:{click:function(s){return e.printRefundReceipt(t)}}},[s("i",{staticClass:"las la-print"})])])})):e._e()]:e._e(),e._v(" "),"details"===e.view?e._l(e.previewed.refunded_products,(function(t){return s("div",{key:t.id,staticClass:"border-b flex flex-col md:flex-row"},[s("div",{staticClass:"w-full md:flex-auto p-2"},[s("h3",{staticClass:"font-semibold mb-1"},[e._v(e._s(t.product.name))]),e._v(" "),s("div",[s("ul",{staticClass:"flex -mx-1 text-sm text-gray-700"},[s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Condition"))+" : "+e._s(t.condition))]),e._v(" "),s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Quantity"))+" : "+e._s(t.quantity))]),e._v(" "),s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Total"))+" : "+e._s(e._f("currency")(t.total_price)))])])])])])})):e._e()],2)])}),[],!1,null,null,null).exports;var B={nsOrderPreview:Q,nsProductPreview:N,nsAlertPopup:W.Z,nsConfirmPopup:x.Z,nsPromptPopup:O.Z,nsMediaPopup:L.Z,nsProcurementQuantity:G.Z,nsOrdersRefund:M};for(var H in B)window[H]=B[H]},6700:(e,t,s)=>{var r={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function n(e){var t=i(e);return s(t)}function i(e){if(!s.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}n.keys=function(){return Object.keys(r)},n.resolve=i,e.exports=n,n.id=6700},3968:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});function r(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return n(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const a=(0,s(1900).Z)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,r){return s("div",{key:r,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(s){return e.inputValue(t)}}},[void 0!==t.value?s("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?s("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},9576:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});var r=s(162),n=s(8603),i=s(7389);const a={name:"ns-media",props:["popup"],components:{VueUpload:s(2948)},data:function(){return{pages:[{label:(0,i.__)("Upload"),name:"upload",selected:!1},{label:(0,i.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return r.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:n.Z,__:i.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return r.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){r.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){r.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,r.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(s,r){r!==t.response.data.indexOf(e)&&(s.selected=!1)})),e.selected=!e.selected}}};const o=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[s("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[s("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),s("ul",e._l(e.pages,(function(t,r){return s("li",{key:r,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(s){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?s("div",{staticClass:"content w-full overflow-hidden flex"},[s("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[s("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[s("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),s("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[s("ul",e._l(e.files,(function(t,r){return s("li",{key:r,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[s("span",[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?s("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?s("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[s("div"),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),s("div",{staticClass:"flex flex-auto overflow-hidden"},[s("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[s("div",{staticClass:"flex flex-auto"},[s("div",{staticClass:"p-2 overflow-x-auto"},[s("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,r){return s("div",{key:r},[s("div",{staticClass:"p-2"},[s("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(s){return e.selectResource(t)}}},[s("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?s("div",{staticClass:"flex flex-auto items-center justify-center"},[s("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?s("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[s("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[s("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),s("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),s("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),s("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),s("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),s("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[s("div",{staticClass:"flex -mx-2 flex-shrink-0"},[s("div",{staticClass:"px-2 flex-shrink-0 flex"},[s("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?s("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[s("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?s("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[s("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?s("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[s("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),s("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[s("div",{staticClass:"px-2"},[s("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[s("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),s("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?s("div",{staticClass:"px-2"},[s("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},2329:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(void 0!==e.$popupParams.onAction&&e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){void 0!==this.$popupParams.onAction&&this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-6/7-screen md:w-4/7-screen lg:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[e.title?s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]):e._e(),e._v(" "),s("p",{staticClass:"py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700 justify-end items-center p-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))])],1)])}),[],!1,null,null,null).exports},419:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[s("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports},7096:(e,t,s)=>{"use strict";s.d(t,{Z:()=>l});var r=s(162),n=s(7389);function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:"",input:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.input=this.$popupParams.input||"",this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.reject(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e?this.input:e),this.$popup.close()},reject:function(e){this.$popupParams.reject(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-5/7-screen md:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-2"},[s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"w-full md:mx-auto md:w-2/3 py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"p-2"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.input,expression:"input"}],staticClass:"text-gray-700 w-full border-2 p-2 border-blue-400",attrs:{name:"",id:"",cols:"30",rows:"10"},domProps:{value:e.input},on:{input:function(t){t.target.composing||(e.input=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.reject(!1)}}},[e._v(e._s(e.__("Cancel")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=6916,e(e.s=t);var t}));e.O()}]); +(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[820],{162:(e,t,s)=>{"use strict";s.d(t,{l:()=>z,kq:()=>U,ih:()=>I,kX:()=>R});var r=s(6486),n=s(9669),i=s(2181),a=s(8345),o=s(9624),l=s(9248),c=s(230);function u(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,s)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,s)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var s=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=U.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:r}),new c.y((function(i){s._client[e](t,r,Object.assign(Object.assign({},s._client.defaults[e]),n)).then((function(e){s._lastRequestData=e,i.next(e.data),i.complete(),s._subject.next({identifier:"async.stop"})})).catch((function(e){var t;i.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),s._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,s=e.value;this._subject.next({identifier:t,value:s})}}])&&u(t.prototype,s),r&&u(t,r),e}(),p=s(3);function f(e,t){for(var s=0;s=1e3){for(var s,r=Math.floor((""+e).length/3),n=2;n>=1;n--){if(((s=parseFloat((0!=r?e/Math.pow(1e3,r):e).toPrecision(n)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}s%1!=0&&(s=s.toFixed(1)),t=s+["","k","m","b","t"][r]}return t})),S=s(1356),O=s(9698);function $(e,t){for(var s=0;s0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&T(t.prototype,s),r&&T(t,r),e}()),W=new h({sidebar:["xs","sm","md"].includes(N.breakpoint)?"hidden":"visible"});I.defineClient(n),window.nsEvent=z,window.nsHttpClient=I,window.nsSnackBar=R,window.nsCurrency=S.W,window.nsTruncate=O.b,window.nsRawCurrency=S.f,window.nsAbbreviate=P,window.nsState=W,window.nsUrl=X,window.nsScreen=N,window.ChartJS=i,window.EventEmitter=v,window.Popup=x.G,window.RxJS=y,window.FormValidation=C.Z,window.nsCrudHandler=Q},4451:(e,t,s)=>{"use strict";s.d(t,{R:()=>n});var r=s(7389),n=s(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:r.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,s)=>{"use strict";s.d(t,{W:()=>c,f:()=>u});var r=s(538),n=s(2077),i=s.n(n),a=s(6740),o=s.n(a),l=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),c=r.default.filter("currency",(function(e){var t,s,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===r){var n={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};s=o()(e,n).format()}else s=i()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(s).concat("after"===ns.currency.ns_currency_position?t:"")})),u=function(e){var t="0.".concat(l);return parseFloat(i()(e).format(t))}},9698:(e,t,s)=>{"use strict";s.d(t,{b:()=>r});var r=s(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,s)=>{"use strict";function r(e,t){for(var s=0;sn});var n=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,s,n;return t=e,(s=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var s in e.tabs){var r=[],n=this.validateFieldsErrors(e.tabs[s].fields);n.length>0&&r.push(n),e.tabs[s].errors=r.flat(),t.push(r.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var s in e)0===t&&(e[s].active=!0),e[s].active=void 0!==e[s].active&&e[s].active,e[s].fields=this.createFields(e[s].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(s){t.fieldPassCheck(e,s)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var s in e.tabs)void 0===t[s]&&(t[s]={}),t[s]=this.extractFields(e.tabs[s].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var s=function(s){var r=s.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===r.length&&e.tabs[r[0]].fields.forEach((function(e){e.name===r[1]&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))})),s===e.main.name&&t.errors[s].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var r in t.errors)s(r)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var s=function(s){e.forEach((function(e){e.name===s&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))}))};for(var r in t.errors)s(r)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){s.identifier===t.identifier&&!0===s.invalid&&e.errors.splice(r,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){!0===s[t.identifier]&&e.errors.splice(r,1)}))}return e}}])&&r(t.prototype,s),n&&r(t,n),e}()},7389:(e,t,s)=>{"use strict";s.d(t,{__:()=>r,c:()=>n});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},n=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,s)=>{"use strict";function r(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}s.d(t,{Z:()=>r})},6386:(e,t,s)=>{"use strict";function r(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}s.d(t,{Z:()=>r})},2242:(e,t,s)=>{"use strict";s.d(t,{G:()=>a});var r=s(9248);function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{};if(n(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var s=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[s-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new r.x}var t,s,a;return t=e,a=[{key:"show",value:function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=new e(r);return n.open(t,s),n}}],(s=[{key:"open",value:function(e){var t,s,r,n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",a.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){n.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var o=Vue.extend(e);this.instance=new o({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=i,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&i(t.prototype,s),a&&i(t,a),e}()},9624:(e,t,s)=>{"use strict";s.d(t,{S:()=>i});var r=s(3260);function n(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return r.Observable.create((function(r){var i=s.__createSnack({message:e,label:t,type:n.type}),a=i.buttonNode,o=(i.textNode,i.snackWrapper,i.sampleSnack);a.addEventListener("click",(function(e){r.onNext(a),r.onCompleted(),o.remove()})),s.__startTimer(n.duration,o)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var s,r=function(){e>0&&!1!==e&&(s=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(s)})),t.addEventListener("mouseleave",(function(){r()})),r()}},{key:"__createSnack",value:function(e){var t=e.message,s=e.label,r=e.type,n=void 0===r?"info":r,i=document.getElementById("snack-wrapper")||document.createElement("div"),a=document.createElement("div"),o=document.createElement("p"),l=document.createElement("div"),c=document.createElement("button"),u="",d="";switch(n){case"info":u="text-white hover:bg-blue-400 bg-blue-500",d="bg-gray-900 text-white";break;case"error":u="text-red-700 hover:bg-white bg-white",d="bg-red-500 text-white";break;case"success":u="text-green-700 hover:bg-white bg-white",d="bg-green-500 text-white"}return o.textContent=t,s&&(c.textContent=s,c.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(u)),l.appendChild(c)),a.appendChild(o),a.appendChild(l),a.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(d)),i.appendChild(a),null===document.getElementById("snack-wrapper")&&(i.setAttribute("id","snack-wrapper"),i.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(i)),{snackWrapper:i,sampleSnack:a,buttonsWrapper:l,buttonNode:c,textNode:o}}}])&&n(t.prototype,s),i&&n(t,i),e}()},9351:(e,t,s)=>{"use strict";var r=s(162),n=s(1356),i=s(2277),a=s(7266),o=s(8603),l=s(7389);function c(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function u(e){for(var t=1;tthis.availableQuantity)return r.kX.error("Unable to proceed as the quantity provided is exceed the available quantity.").subscribe();this.product.quantity=parseFloat(e),this.$popupParams.resolve(this.product),this.$popup.close()}}};const m=(0,f.Z)(h,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-xl bg-white overflow-hidden w-95vw md:w-4/6-screen lg:w-3/7-screen"},[s("div",{staticClass:"p-2 flex justify-between"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("Quantity")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),e.product?s("div",{staticClass:"border-t border-b border-gray-200 py-2 flex items-center justify-center text-2xl font-semibold"},[s("span",[e._v(e._s(e.seeValue))]),e._v(" "),s("span",{staticClass:"text-gray-600 text-sm"},[e._v("("+e._s(e.availableQuantity)+" available)")])]):e._e(),e._v(" "),e.product?s("div",{staticClass:"flex-auto overflow-y-auto p-2"},[s("ns-numpad",{attrs:{value:e.product.quantity},on:{next:function(t){return e.updateQuantity(t)},changed:function(t){return e.setChangedValue(t)}}})],1):e._e()])}),[],!1,null,null,null).exports;s(4451);const y={data:function(){return{value:[],options:[],label:null,type:"select"}},computed:{},mounted:function(){this.popupCloser(),this.value=this.$popupParams.value||[],this.options=this.$popupParams.options,this.label=this.$popupParams.label,this.type=this.$popupParams.type||this.type,console.log(this.$popupParams)},methods:{popupCloser:o.Z,__:l.__,toggle:function(e){var t=this.value.indexOf(e);-1===t?this.value.unshift(e):this.value.splice(t,1)},isSelected:function(e){return this.value.indexOf(e)>=0},close:function(){this.$popupParams.reject(!1),this.$popup.close()},select:function(e){void 0!==e&&(this.value=[e]),this.$popupParams.resolve(this.value),this.close()}}};const g=(0,f.Z)(y,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-xl bg-white w-6/7-screen md:w-4/7-screen lg:w-3/7-screen overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between border-b border-gray-200"},[s("span",{staticClass:"text-semibold text-gray-700"},[e._v("\n "+e._s(e.label)+"\n ")]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto overflow-y-auto"},[s("ul",["select"===e.type?e._l(e.options,(function(t){return s("li",{key:t.value,staticClass:"p-2 border-b border-gray-200 text-gray-700 cursor-pointer hover:bg-gray-100",on:{click:function(s){return e.select(t)}}},[e._v(e._s(t.label))])})):e._e(),e._v(" "),"multiselect"===e.type?e._l(e.options,(function(t){return s("li",{key:t.value,staticClass:"p-2 border-b text-gray-700 cursor-pointer hover:bg-gray-100",class:e.isSelected(t)?"bg-blue-100 border-blue-200":"border-gray-200",on:{click:function(s){return e.toggle(t)}}},[e._v(e._s(t.label))])})):e._e()],2)]),e._v(" "),"multiselect"===e.type?s("div",{staticClass:"flex justify-between"},[s("div"),e._v(" "),s("div",[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.select()}}},[e._v(e._s(e.__("Select")))])],1)]):e._e()])}),[],!1,null,null,null).exports;var x=s(419),w=s(2242);function C(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function k(e){for(var t=1;t0?this.refundables.map((function(e){return parseFloat(e.unit_price)*parseFloat(e.quantity)})).reduce((function(e,t){return e+t}))+this.shippingFees:0+this.shippingFees},shippingFees:function(){return this.refundShipping?this.order.shipping:0}},data:function(){return{isSubmitting:!1,formValidation:new a.Z,refundables:[],paymentOptions:[],paymentField:[],refundShipping:!1,selectedPaymentGateway:!1,screen:0,selectFields:[{type:"select",options:this.order.products.map((function(e){return{label:"".concat(e.name," - ").concat(e.unit.name," (x").concat(e.quantity,")"),value:e.id}})),validation:"required",name:"product_id",label:(0,l.__)("Product"),description:(0,l.__)("Select the product to perform a refund.")}]}},methods:{__:l.__,updateScreen:function(e){this.screen=e},toggleRefundShipping:function(e){this.refundShipping=e,this.refundShipping},proceedPayment:function(){var e=this;return!1===this.selectedPaymentGateway?r.kX.error((0,l.__)("Please select a payment gateway before proceeding.")).subscribe():0===this.total?r.kX.error((0,l.__)("There is nothing to refund.")).subscribe():0===this.screenValue?r.kX.error((0,l.__)("Please provide a valid payment amount.")).subscribe():void w.G.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("The refund will be made on the current order."),onAction:function(t){t&&e.doProceed()}})},doProceed:function(){var e=this,t={products:this.refundables,total:this.screenValue,payment:this.selectedPaymentGateway,refund_shipping:this.refundShipping};this.isSubmitting=!0,r.ih.post("/api/nexopos/v4/orders/".concat(this.order.id,"/refund"),t).subscribe({next:function(t){e.isSubmitting=!1,e.$emit("changed",!0),r.kX.success(t.message).subscribe()},error:function(t){e.isSubmitting=!1,r.kX.error(t.message).subscribe()}})},addProduct:function(){var e=this;if(this.formValidation.validateFields(this.selectFields),!this.formValidation.fieldsValid(this.selectFields))return r.kX.error((0,l.__)("Please select a product before proceeding.")).subscribe();var t=this.formValidation.extractFields(this.selectFields),s=this.order.products.filter((function(e){return e.id===t.product_id})),n=this.refundables.filter((function(e){return e.id===t.product_id}));if(n.length>0&&n.map((function(e){return parseInt(e.quantity)})).reduce((function(e,t){return e+t}))===s[0].quantity)return r.kX.error((0,l.__)("Not enough quantity to proceed.")).subscribe();if(0===s[0].quantity)return r.kX.error((0,l.__)("Not enough quantity to proceed.")).subscribe();var i=k(k({},s[0]),{condition:"",description:""});new Promise((function(e,t){w.G.show(v,{resolve:e,reject:t,product:i})})).then((function(t){t.quantity=e.getProductOriginalQuantity(t.id)-e.getProductUsedQuantity(t.id),e.refundables.push(t)}),(function(e){return e}))},getProductOriginalQuantity:function(e){var t=this.order.products.filter((function(t){return t.id===e}));return t.length>0?t.map((function(e){return parseFloat(e.quantity)})).reduce((function(e,t){return e+t})):0},getProductUsedQuantity:function(e){var t=this.refundables.filter((function(t){return t.id===e}));return t.length>0?t.map((function(e){return parseFloat(e.quantity)})).reduce((function(e,t){return e+t})):0},openSettings:function(e){var t=this;new Promise((function(t,s){w.G.show(v,{resolve:t,reject:s,product:e})})).then((function(s){var r=t.refundables.indexOf(e);t.$set(t.refundables,r,s)}),(function(e){return e}))},selectPaymentGateway:function(){var e=this;new Promise((function(t,s){w.G.show(g,k({resolve:t,reject:s,value:[e.selectedPaymentOption]},e.paymentField[0]))})).then((function(t){e.selectedPaymentGateway=t[0]}),(function(e){return e}))},changeQuantity:function(e){var t=this;new Promise((function(s,r){var n=t.getProductOriginalQuantity(e.id)-t.getProductUsedQuantity(e.id)+parseFloat(e.quantity);w.G.show(m,{resolve:s,reject:r,product:e,availableQuantity:n})})).then((function(s){if(s.quantity>t.getProductUsedQuantity(e.id)-e.quantity){var r=t.refundables.indexOf(e);t.$set(t.refundables,r,s)}}))},deleteProduct:function(e){var t=this;new Promise((function(s,r){w.G.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to delete this product ?"),onAction:function(s){if(s){var r=t.refundables.indexOf(e);t.refundables.splice(r,1)}}})}))}},mounted:function(){var e=this;this.selectFields=this.formValidation.createFields(this.selectFields),r.ih.get("/api/nexopos/v4/orders/payments").subscribe((function(t){e.paymentField=t}))}};const S=(0,f.Z)(P,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"-m-4 flex-auto flex flex-wrap relative"},[e.isSubmitting?s("div",{staticClass:"bg-overlay h-full w-full flex items-center justify-center absolute z-30"},[s("ns-spinner")],1):e._e(),e._v(" "),s("div",{staticClass:"px-4 w-full lg:w-1/2"},[s("h3",{staticClass:"py-2 border-b-2 text-gray-700 border-blue-400"},[e._v(e._s(e.__("Refund With Products")))]),e._v(" "),s("div",{staticClass:"my-2"},[s("ul",[s("li",{staticClass:"border-b border-blue-400 flex justify-between items-center mb-2"},[s("div",{staticClass:"flex-auto flex-col flex"},[s("div",{staticClass:"p-2 flex"},e._l(e.selectFields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1),e._v(" "),s("div",{staticClass:"flex justify-between p-2"},[s("div",{staticClass:"flex items-center text-gray-700"},[e.order.shipping>0?s("span",{staticClass:"mr-2"},[e._v(e._s(e.__("Refund Shipping")))]):e._e(),e._v(" "),e.order.shipping>0?s("ns-checkbox",{attrs:{checked:e.refundShipping},on:{change:function(t){return e.toggleRefundShipping(t)}}}):e._e()],1),e._v(" "),s("div",[s("button",{staticClass:"border-2 rounded-full border-gray-200 px-2 py-1 hover:bg-blue-400 hover:text-white text-gray-700",on:{click:function(t){return e.addProduct()}}},[e._v(e._s(e.__("Add Product")))])])])])]),e._v(" "),s("li",[s("h4",{staticClass:"py-1 border-b-2 text-gray-700 border-blue-400"},[e._v(e._s(e.__("Products")))])]),e._v(" "),e._l(e.refundables,(function(t){return s("li",{key:t.id,staticClass:"bg-gray-100 border-b border-blue-400 flex justify-between items-center mb-2"},[s("div",{staticClass:"px-2 text-gray-700 flex justify-between flex-auto"},[s("div",{staticClass:"flex flex-col"},[s("p",{staticClass:"py-2"},[s("span",[e._v(e._s(t.name))]),e._v(" "),"damaged"===t.condition?s("span",{staticClass:"rounded-full px-2 py-1 text-xs bg-red-400 mx-2 text-white"},[e._v(e._s(e.__("Damaged")))]):e._e(),e._v(" "),"unspoiled"===t.condition?s("span",{staticClass:"rounded-full px-2 py-1 text-xs bg-green-400 mx-2 text-white"},[e._v(e._s(e.__("Unspoiled")))]):e._e()]),e._v(" "),s("small",[e._v(e._s(t.unit.name))])]),e._v(" "),s("div",{staticClass:"flex items-center justify-center"},[s("span",{staticClass:"py-1 flex items-center cursor-pointer border-b border-dashed border-blue-400"},[e._v(e._s(e._f("currency")(t.unit_price*t.quantity)))])])]),e._v(" "),s("div",{staticClass:"flex"},[s("p",{staticClass:"p-2 border-l border-blue-400 cursor-pointer text-gray-600 hover:bg-blue-100 w-16 h-16 flex items-center justify-center",on:{click:function(s){return e.openSettings(t)}}},[s("i",{staticClass:"las la-cog text-xl"})]),e._v(" "),s("p",{staticClass:"p-2 border-l border-blue-400 cursor-pointer text-gray-600 hover:bg-blue-100 w-16 h-16 flex items-center justify-center",on:{click:function(s){return e.deleteProduct(t)}}},[s("i",{staticClass:"las la-trash"})]),e._v(" "),s("p",{staticClass:"p-2 border-l border-blue-400 cursor-pointer text-gray-600 hover:bg-blue-100 w-16 h-16 flex items-center justify-center",on:{click:function(s){return e.changeQuantity(t)}}},[e._v(e._s(t.quantity))])])])}))],2)])]),e._v(" "),s("div",{staticClass:"px-4 w-full lg:w-1/2"},[s("h3",{staticClass:"py-2 border-b-2 text-gray-700 border-blue-400"},[e._v(e._s(e.__("Summary")))]),e._v(" "),s("div",{staticClass:"py-2"},[s("div",{staticClass:"bg-blue-400 text-white font-semibold flex mb-2 p-2 justify-between"},[s("span",[e._v(e._s(e.__("Total")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.total)))])]),e._v(" "),s("div",{staticClass:"bg-teal-400 text-white font-semibold flex mb-2 p-2 justify-between"},[s("span",[e._v(e._s(e.__("Paid")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.order.tendered)))])]),e._v(" "),s("div",{staticClass:"bg-indigo-400 text-white font-semibold flex mb-2 p-2 justify-between cursor-pointer",on:{click:function(t){return e.selectPaymentGateway()}}},[s("span",[e._v(e._s(e.__("Payment Gateway")))]),e._v(" "),s("span",[e._v(e._s(e.selectedPaymentGateway?e.selectedPaymentGateway.label:"N/A"))])]),e._v(" "),s("div",{staticClass:"bg-gray-300 text-gray-900 font-semibold flex mb-2 p-2 justify-between"},[s("span",[e._v(e._s(e.__("Screen")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.screenValue)))])]),e._v(" "),s("div",[s("ns-numpad",{attrs:{currency:!0,value:e.screen},on:{changed:function(t){return e.updateScreen(t)},next:function(t){return e.proceedPayment(t)}}})],1)])])])}),[],!1,null,null,null).exports;var O=s(1596);function $(e,t){for(var s=0;s0?t[0].label:(0,l.__)("Unknown Status")}},{key:"getDeliveryStatus",value:function(e){var t=deliveryStatuses.filter((function(t){return t.value===e}));return t.length>0?t[0].label:(0,l.__)("Unknown Status")}},{key:"getProcessingStatus",value:function(e){var t=processingStatuses.filter((function(t){return t.value===e}));return t.length>0?t[0].label:(0,l.__)("Unknown Status")}},{key:"getPaymentStatus",value:function(e){var t=paymentLabels.filter((function(t){return t.value===e}));return t.length>0?t[0].label:(0,l.__)("Unknown Status")}}])&&$(t.prototype,s),r&&$(t,r),e}();function E(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function V(e){for(var t=1;t0?s("span",[e._v(e._s(e._f("currency")(e.order.total-e.order.tendered)))]):e._e(),e._v(" "),e.order.total-e.order.tendered<=0?s("span",[e._v(e._s(e._f("currency")(0)))]):e._e()])]),e._v(" "),s("div",{staticClass:"px-2 w-full md:w-1/2"},[s("div",{staticClass:"my-1 h-12 py-1 px-2 flex justify-between items-center bg-teal-400 text-white text-xl font-bold"},[s("span",[e._v(e._s(e.__("Customer Account")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.order.customer.account_amount)))])])])]),e._v(" "),s("div",{staticClass:"flex -mx-4 flex-wrap"},[s("div",{staticClass:"px-2 w-full mb-4 md:w-1/2"},["paid"!==e.order.payment_status?s("div",[s("h3",{staticClass:"font-semibold border-b-2 border-blue-400 py-2"},[e._v("\n "+e._s(e.__("Payment"))+"\n ")]),e._v(" "),s("div",{staticClass:"py-2"},[e._l(e.fields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),e._v(" "),s("div",{staticClass:"my-2 px-2 h-12 flex justify-end items-center bg-gray-200"},[e._v("\n "+e._s(e._f("currency")(e.inputValue))+"\n ")]),e._v(" "),s("ns-numpad",{attrs:{floating:!0,value:e.inputValue},on:{next:function(t){return e.submitPayment(t)},changed:function(t){return e.updateValue(t)}}})],2)]):e._e(),e._v(" "),"paid"===e.order.payment_status?s("div",{staticClass:"flex items-center justify-center h-full"},[s("h3",{staticClass:"text-gray-700 font-semibold"},[e._v(e._s(e.__("No payment possible for paid order.")))])]):e._e()]),e._v(" "),s("div",{staticClass:"px-2 w-full mb-4 md:w-1/2"},[s("h3",{staticClass:"font-semibold border-b-2 border-blue-400 py-2 mb-2"},[e._v("\n "+e._s(e.__("Payment History"))+"\n ")]),e._v(" "),s("ul",e._l(e.order.payments,(function(t){return s("li",{key:t.id,staticClass:"p-2 flex items-center justify-between text-shite bg-gray-300 mb-2"},[s("span",[e._v(e._s(t.identifier))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(t.value)))])])})),0)])])])}),[],!1,null,null,null).exports;const T={props:["order"],data:function(){return{processingStatuses,deliveryStatuses,labels:new A,showProcessingSelect:!1,showDeliverySelect:!1}},mounted:function(){},methods:{__:l.__,submitProcessingChange:function(){var e=this;w.G.show(x.Z,{title:(0,l.__)("Would you proceed ?"),message:(0,l.__)("The processing status of the order will be changed. Please confirm your action."),onAction:function(t){t&&r.ih.post("/api/nexopos/v4/orders/".concat(e.order.id,"/processing"),{process_status:e.order.process_status}).subscribe((function(t){e.showProcessingSelect=!1,r.kX.success(t.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("Unexpected error occured.")).subscribe()}))}})},submitDeliveryStatus:function(){var e=this;w.G.show(x.Z,{title:(0,l.__)("Would you proceed ?"),message:(0,l.__)("The delivery status of the order will be changed. Please confirm your action."),onAction:function(t){t&&r.ih.post("/api/nexopos/v4/orders/".concat(e.order.id,"/delivery"),{delivery_status:e.order.delivery_status}).subscribe((function(t){e.showDeliverySelect=!1,r.kX.success(t.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("Unexpected error occured.")).subscribe()}))}})}}};const D=(0,f.Z)(T,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"-mx-4 flex flex-wrap"},[s("div",{staticClass:"flex-auto"},[s("div",{staticClass:"w-full mb-2 flex-wrap flex"},[s("div",{staticClass:"w-full mb-2 px-4"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Payment Summary")))])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"bg-gray-200 p-2 flex justify-between items-start"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(e.__("Sub Total")))])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e._f("currency")(e.order.subtotal)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-red-400 text-white"},[s("div",[s("h4",{staticClass:"text-semibold"},[s("span",[e._v(e._s(e.__("Discount")))]),e._v(" "),"percentage"===e.order.discount_type?s("span",{staticClass:"ml-1"},[e._v("("+e._s(e.order.discount_percentage)+"%)")]):e._e(),e._v(" "),"flat"===e.order.discount_type?s("span",{staticClass:"ml-1"},[e._v("(Flat)")]):e._e()])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.discount)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-gray-100"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(e.__("Shipping")))])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e._f("currency")(e.order.shipping)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-red-400 text-white"},[s("div",[s("h4",{staticClass:"text-semibold"},[s("span",[e._v(e._s(e.__("Coupons")))])])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.total_coupons)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-blue-400 text-white"},[s("div",[s("h4",{staticClass:"text-semibold"},[e._v(e._s(e.__("Total")))])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.total)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-yellow-400 text-gray-700"},[s("div",[s("h4",{staticClass:"text-semibold "},[e._v(e._s(e.__("Taxes")))])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.tax_value)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start text-gray-700 bg-gray-100"},[s("div",[s("h4",{staticClass:"text-semibold"},[e._v(e._s(e.__("Change")))])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.change)))])])]),e._v(" "),s("div",{staticClass:"mb-2 w-full md:w-1/2 px-4"},[s("div",{staticClass:"p-2 flex justify-between items-start bg-teal-500 text-white"},[s("div",[s("h4",{staticClass:"text-semibold"},[e._v(e._s(e.__("Paid")))])]),e._v(" "),s("div",{staticClass:"font-semibold"},[e._v(e._s(e._f("currency")(e.order.tendered)))])])])])]),e._v(" "),s("div",{staticClass:"px-4 w-full md:w-1/2 lg:w-2/4 mb-2"},[s("div",{staticClass:"mb-2"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Order Status")))])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex justify-between items-start bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Customer")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e.order.nexopos_customers_name))])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex justify-between items-start bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Type")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e.labels.getTypeLabel(e.order.type)))])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex justify-between items-start bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Delivery Status")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800 mt-2 md:mt-0 w-full md:w-auto"},[s("div",{staticClass:"w-full text-center"},[e.showDeliverySelect?e._e():s("span",{staticClass:"font-semibold text-gray-800 border-b border-blue-400 cursor-pointer border-dashed",on:{click:function(t){e.showDeliverySelect=!0}}},[e._v(e._s(e.labels.getDeliveryStatus(e.order.delivery_status)))])]),e._v(" "),e.showDeliverySelect?s("div",{staticClass:"flex-auto flex"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.order.delivery_status,expression:"order.delivery_status"}],ref:"process_status",staticClass:"flex-auto border-blue-400 rounded-lg",on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.order,"delivery_status",t.target.multiple?s:s[0])}}},e._l(e.deliveryStatuses,(function(t,r){return s("option",{key:r,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0),e._v(" "),s("div",{staticClass:"pl-2 flex"},[s("ns-close-button",{on:{click:function(t){e.showDeliverySelect=!1}}}),e._v(" "),s("button",{staticClass:"bg-green-400 text-white rounded-full px-2 py-1",on:{click:function(t){return e.submitDeliveryStatus(e.order)}}},[e._v(e._s(e.__("Save")))])],1)]):e._e()])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex flex-col md:flex-row justify-between items-center bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Processing Status")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800 mt-2 md:mt-0 w-full md:w-auto"},[s("div",{staticClass:"w-full text-center"},[e.showProcessingSelect?e._e():s("span",{staticClass:"border-b border-blue-400 cursor-pointer border-dashed",on:{click:function(t){e.showProcessingSelect=!0}}},[e._v(e._s(e.labels.getProcessingStatus(e.order.process_status)))])]),e._v(" "),e.showProcessingSelect?s("div",{staticClass:"flex-auto flex"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.order.process_status,expression:"order.process_status"}],ref:"process_status",staticClass:"flex-auto border-blue-400 rounded-lg",on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.order,"process_status",t.target.multiple?s:s[0])}}},e._l(e.processingStatuses,(function(t,r){return s("option",{key:r,domProps:{value:t.value}},[e._v(e._s(t.label))])})),0),e._v(" "),s("div",{staticClass:"pl-2 flex"},[s("ns-close-button",{on:{click:function(t){e.showProcessingSelect=!1}}}),e._v(" "),s("button",{staticClass:"bg-green-400 text-white rounded-full px-2 py-1",on:{click:function(t){return e.submitProcessingChange(e.order)}}},[e._v(e._s(e.__("Save")))])],1)]):e._e()])]),e._v(" "),s("div",{staticClass:"mb-2 p-2 flex justify-between items-start bg-gray-200"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[s("span",[e._v(e._s(e.__("Payment Status")))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e.labels.getPaymentStatus(e.order.payment_status)))])])]),e._v(" "),s("div",{staticClass:"px-4 w-full md:w-1/2 lg:w-2/4 mb-2"},[s("div",{staticClass:"mb-2"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Products")))])]),e._v(" "),e._l(e.order.products,(function(t){return s("div",{key:t.id,staticClass:"p-2 flex justify-between items-start bg-gray-200 mb-2"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(t.name)+" (x"+e._s(t.quantity)+")")]),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(t.unit.name||"N/A"))])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e._f("currency")(t.total_price)))])])})),e._v(" "),s("div",{staticClass:"mb-2"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Refunded Products")))])]),e._v(" "),e._l(e.order.refunded_products,(function(t){return s("div",{key:t.id,staticClass:"p-2 flex justify-between items-start bg-gray-200 mb-2"},[s("div",[s("h4",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(t.product.name)+" (x"+e._s(t.quantity)+")")]),e._v(" "),s("p",{staticClass:"text-gray-600 text-sm"},[e._v(e._s(t.unit.name||"N/A")+" | "),s("span",{staticClass:"rounded-full px-2",class:"damaged"===t.condition?"bg-red-400 text-white":"bg-blue-400 text-white"},[e._v(e._s(t.condition))])])]),e._v(" "),s("div",{staticClass:"font-semibold text-gray-800"},[e._v(e._s(e._f("currency")(t.total_price)))])])}))],2)])}),[],!1,null,null,null).exports;const z={props:["order"],name:"ns-order-instalments",data:function(){return{labels:new A,original:[],instalments:[]}},mounted:function(){this.loadInstalments()},computed:{totalInstalments:function(){return this.instalments.length>0?this.instalments.map((function(e){return e.amount})).reduce((function(e,t){return parseFloat(e)+parseFloat(t)})):0}},methods:{__:l.__,loadInstalments:function(){var e=this;r.ih.get("/api/nexopos/v4/orders/".concat(this.order.id,"/instalments")).subscribe((function(t){e.original=t,e.instalments=t.map((function(e){return e.price_clicked=!1,e.date_clicked=!1,e.date=moment(e.date).format("YYYY-MM-DD"),e}))}))},addInstalment:function(){this.instalments.push({date:ns.date.moment.format("YYYY-MM-DD"),amount:this.order.total-this.totalInstalments,paid:!1})},createInstalment:function(e){var t=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to create this instalment ?"),onAction:function(s){s&&r.ih.post("/api/nexopos/v4/orders/".concat(t.order.id,"/instalments"),{instalment:e}).subscribe((function(e){t.loadInstalments(),r.kX.success(e.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("An unexpected error has occured")).subscribe()}))}})},deleteInstalment:function(e){var t=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to delete this instalment ?"),onAction:function(s){s&&r.ih.delete("/api/nexopos/v4/orders/".concat(t.order.id,"/instalments/").concat(e.id)).subscribe((function(s){var n=t.instalments.indexOf(e);t.instalments.splice(n,1),r.kX.success(s.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("An unexpected error has occured")).subscribe()}))}})},markAsPaid:function(e){var t=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to make this as paid ?"),onAction:function(s){s&&r.ih.get("/api/nexopos/v4/orders/".concat(t.order.id,"/instalments/").concat(e.id,"/paid")).subscribe((function(e){t.loadInstalments(),r.kX.success(e.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("An unexpected error has occured")).subscribe()}))}})},togglePriceEdition:function(e){var t=this;e.paid||(e.price_clicked=!e.price_clicked,this.$forceUpdate(),e.price_clicked&&setTimeout((function(){t.$refs.amount[0].select()}),100))},updateInstalment:function(e){var t=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to update that instalment ?"),onAction:function(s){s&&r.ih.put("/api/nexopos/v4/orders/".concat(t.order.id,"/instalments/").concat(e.id),{instalment:e}).subscribe((function(e){r.kX.success(e.message).subscribe()}),(function(e){r.kX.error(e.message||(0,l.__)("An unexpected error has occured")).subscribe()}))}})},toggleDateEdition:function(e){var t=this;e.paid||(e.date_clicked=!e.date_clicked,this.$forceUpdate(),e.date_clicked&&setTimeout((function(){t.$refs.date[0].select()}),200))}}};const I=(0,f.Z)(z,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"-mx-4 flex-auto flex flex-wrap"},[s("div",{staticClass:"flex flex-auto"},[s("div",{staticClass:"w-full mb-2 flex-wrap"},[s("div",{staticClass:"w-full mb-2 px-4"},[s("h3",{staticClass:"font-semibold text-gray-800 pb-2 border-b border-blue-400"},[e._v(e._s(e.__("Instalments")))])]),e._v(" "),s("div",{staticClass:"px-4"},[s("ul",{staticClass:"border-gray-400 border-t text-gray-700"},[e._l(e.instalments,(function(t){return s("li",{key:t.id,staticClass:"border-b border-l flex justify-between",class:t.paid?"bg-green-200 border-green-400":"bg-gray-200 border-blue-400"},[s("span",{staticClass:"p-2"},[t.date_clicked?e._e():s("span",{on:{click:function(s){return e.toggleDateEdition(t)}}},[e._v(e._s(t.date))]),e._v(" "),t.date_clicked?s("span",[s("input",{directives:[{name:"model",rawName:"v-model",value:t.date,expression:"instalment.date"}],ref:"date",refInFor:!0,staticClass:"border border-blue-400 rounded",attrs:{type:"date"},domProps:{value:t.date},on:{blur:function(s){return e.toggleDateEdition(t)},input:function(s){s.target.composing||e.$set(t,"date",s.target.value)}}})]):e._e()]),e._v(" "),s("div",{staticClass:"flex items-center"},[s("span",{staticClass:"flex items-center px-2 h-full border-r",class:t.paid?"border-green-400":"border-blue-400"},[t.price_clicked?e._e():s("span",{on:{click:function(s){return e.togglePriceEdition(t)}}},[e._v(e._s(e._f("currency")(t.amount)))]),e._v(" "),t.price_clicked?s("span",[s("input",{directives:[{name:"model",rawName:"v-model",value:t.amount,expression:"instalment.amount"}],ref:"amount",refInFor:!0,staticClass:"border border-blue-400 p-1",attrs:{type:"text"},domProps:{value:t.amount},on:{blur:function(s){return e.togglePriceEdition(t)},input:function(s){s.target.composing||e.$set(t,"amount",s.target.value)}}})]):e._e()]),e._v(" "),!t.paid&&t.id?s("div",{staticClass:"w-36 justify-center flex items-center px-2 h-full border-r",class:t.paid?"border-green-400":"border-blue-400"},[s("div",{staticClass:"px-2"},[s("ns-icon-button",{attrs:{buttonClass:"bg-green-400 hover:bg-green-500 text-white hover:text-white hover:border-green-600",className:"la-money-bill-wave-alt"},on:{click:function(s){return e.markAsPaid(t)}}})],1),e._v(" "),s("div",{staticClass:"px-2"},[s("ns-icon-button",{attrs:{buttonClass:"bg-blue-400 hover:bg-blue-500 text-white hover:text-white hover:border-blue-600",className:"la-save"},on:{click:function(s){return e.updateInstalment(t)}}})],1),e._v(" "),s("div",{staticClass:"px-2"},[s("ns-icon-button",{attrs:{buttonClass:"bg-red-400 text-white hover:border hover:border-blue-400 hover:bg-red-500",className:"la-trash-alt"},on:{click:function(s){return e.deleteInstalment(t)}}})],1)]):e._e(),e._v(" "),t.paid||t.id?e._e():s("div",{staticClass:"w-36 justify-center flex items-center px-2 h-full border-r",class:t.paid?"border-green-400":"border-blue-400"},[s("div",{staticClass:"px-2"},[s("button",{staticClass:"px-3 py-1 rounded-full bg-blue-400 text-white",on:{click:function(s){return e.createInstalment(t)}}},[s("i",{staticClass:"las la-plus"}),e._v("\n "+e._s(e.__("Create"))+"\n ")])])]),e._v(" "),t.paid?s("span",{staticClass:"w-36 border-green-400 justify-center flex items-center px-2 h-full border-r"},[e._v("\n "+e._s(e.__("Paid"))+"\n ")]):e._e()])])})),e._v(" "),s("li",{staticClass:"flex justify-between p-2 bg-gray-200 border-r border-b border-l border-gray-400"},[s("div",{staticClass:"flex items-center justify-center"},[s("span",[e._v("\n "+e._s(e.__("Total :"))+" "+e._s(e._f("currency")(e.order.total))+"\n ")]),e._v(" "),s("span",{staticClass:"ml-1 text-sm"},[e._v("\n ("+e._s(e.__("Remaining :"))+" "+e._s(e._f("currency")(e.order.total-e.totalInstalments))+")\n ")])]),e._v(" "),s("div",{staticClass:"-mx-2 flex flex-wrap items-center"},[s("span",{staticClass:"px-2"},[e._v("\n "+e._s(e.__("Instalments:"))+" "+e._s(e._f("currency")(e.totalInstalments))+"\n ")]),e._v(" "),s("span",{staticClass:"px-2"},[s("button",{staticClass:"rounded-full px-3 py-1 bg-blue-400 text-white",on:{click:function(t){return e.addInstalment()}}},[e._v(e._s(e.__("Add Instalment")))])])])])],2)])])])])}),[],!1,null,null,null).exports;var R={filters:{nsCurrency:n.W},name:"ns-preview-popup",data:function(){return{active:"details",order:new Object,products:[],payments:[]}},components:{nsOrderRefund:S,nsOrderPayment:Z,nsOrderDetails:D,nsOrderInstalments:I},computed:{isVoidable:function(){return["paid","partially_paid","unpaid"].includes(this.order.payment_status)},isDeleteAble:function(){return["hold"].includes(this.order.payment_status)}},methods:{__:l.__,closePopup:function(){this.$popup.close()},setActive:function(e){this.active=e},refresh:function(){this.$popupParams.component.$emit("updated"),this.loadOrderDetails(this.$popupParams.order.id)},printOrder:function(){var e=this.$popupParams.order;r.ih.get("/api/nexopos/v4/orders/".concat(e.id,"/print/receipt")).subscribe((function(e){r.kX.success(e.message).subscribe()}))},loadOrderDetails:function(e){var t=this;(0,i.D)([r.ih.get("/api/nexopos/v4/orders/".concat(e)),r.ih.get("/api/nexopos/v4/orders/".concat(e,"/products")),r.ih.get("/api/nexopos/v4/orders/".concat(e,"/payments"))]).subscribe((function(e){t.order=e[0],t.products=e[1],t.payments=e[2]}))},deleteOrder:function(){var e=this;Popup.show(x.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("Would you like to delete this order"),onAction:function(t){t&&r.ih.delete("/api/nexopos/v4/orders/".concat(e.$popupParams.order.id)).subscribe((function(t){r.kX.success(t.message).subscribe(),e.refreshCrudTable(),e.closePopup()}),(function(e){r.kX.error(e.message).subscribe()}))}})},voidOrder:function(){var e=this;Popup.show(O.Z,{title:(0,l.__)("Confirm Your Action"),message:(0,l.__)("The current order will be void. This action will be recorded. Consider providing a reason for this operation"),onAction:function(t){!1!==t&&r.ih.post("/api/nexopos/v4/orders/".concat(e.$popupParams.order.id,"/void"),{reason:t}).subscribe((function(t){r.kX.success(t.message).subscribe(),e.refreshCrudTable(),e.closePopup()}),(function(e){r.kX.error(e.message).subscribe()}))}})},refreshCrudTable:function(){this.$popupParams.component.$emit("updated",!0)}},watch:{active:function(){"details"===this.active&&this.loadOrderDetails(this.$popupParams.order.id)}},mounted:function(){var e=this;this.loadOrderDetails(this.$popupParams.order.id),this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.$popup.close()}))}};window.nsOrderPreviewPopup=R;const X=R;const Q=(0,f.Z)(X,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"h-95vh w-95vw md:h-6/7-screen md:w-6/7-screen overflow-hidden shadow-xl bg-white flex flex-col"},[s("div",{staticClass:"border-b border-gray-300 p-3 flex items-center justify-between"},[s("div",[s("h3",[e._v(e._s(e.__("Order Options")))])]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.closePopup()}}})],1)]),e._v(" "),s("div",{staticClass:"p-2 overflow-scroll bg-gray-100 flex flex-auto"},[e.order.id?s("ns-tabs",{attrs:{active:e.active},on:{active:function(t){return e.setActive(t)}}},[s("ns-tabs-item",{staticClass:"overflow-y-auto",attrs:{label:e.__("Details"),identifier:"details"}},[s("ns-order-details",{attrs:{order:e.order}})],1),e._v(" "),["order_void","hold","refunded","partially_refunded"].includes(e.order.payment_status)?e._e():s("ns-tabs-item",{staticClass:"overflow-y-auto",attrs:{label:e.__("Payments"),identifier:"payments"}},[s("ns-order-payment",{attrs:{order:e.order},on:{changed:function(t){return e.refresh()}}})],1),e._v(" "),["order_void","hold","refunded"].includes(e.order.payment_status)?e._e():s("ns-tabs-item",{staticClass:"flex overflow-y-auto",attrs:{label:e.__("Refund & Return"),identifier:"refund"}},[s("ns-order-refund",{attrs:{order:e.order},on:{changed:function(t){return e.refresh()}}})],1),e._v(" "),["partially_paid"].includes(e.order.payment_status)?s("ns-tabs-item",{staticClass:"flex overflow-y-auto",attrs:{label:e.__("Installments"),identifier:"instalments"}},[s("ns-order-instalments",{attrs:{order:e.order},on:{changed:function(t){return e.refresh()}}})],1):e._e()],1):e._e(),e._v(" "),e.order.id?e._e():s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("ns-spinner")],1)],1),e._v(" "),s("div",{staticClass:"p-2 flex justify-between border-t border-gray-200"},[s("div",[e.isVoidable?s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.voidOrder()}}},[s("i",{staticClass:"las la-ban"}),e._v("\n "+e._s(e.__("Void"))+"\n ")]):e._e(),e._v(" "),e.isDeleteAble?s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.deleteOrder()}}},[s("i",{staticClass:"las la-trash"}),e._v("\n "+e._s(e.__("Delete"))+"\n ")]):e._e()],1),e._v(" "),s("div")])])}),[],!1,null,null,null).exports;const U={name:"ns-products-preview",computed:{product:function(){return this.$popupParams.product}},methods:{__:l.__,changeActiveTab:function(e){this.active=e,"units-quantities"===this.active&&this.loadProductQuantities()},loadProductQuantities:function(){var e=this;this.hasLoadedUnitQuantities=!1,r.ih.get("/api/nexopos/v4/products/".concat(this.product.id,"/units/quantities")).subscribe((function(t){e.unitQuantities=t,e.hasLoadedUnitQuantities=!0}))}},data:function(){return{active:"units-quantities",unitQuantities:[],hasLoadedUnitQuantities:!1}},mounted:function(){var e=this;this.loadProductQuantities(),this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.$popup.close()}))}};const N=(0,f.Z)(U,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg w-6/7-screen lg:w-3/5-screen h-6/7-screen lg:h-4/5-screen bg-white overflow-hidden flex flex-col"},[s("div",{staticClass:"p-2 border-b border-gray-200 text-gray-700 text-center font-medium flex justify-between items-center"},[s("div",[e._v("\n "+e._s(e.__("Previewing :"))+" "+e._s(e.product.name)+"\n ")]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto overflow-y-auto bg-gray-100"},[s("div",{staticClass:"p-2"},[s("ns-tabs",{attrs:{active:e.active},on:{active:function(t){return e.changeActiveTab(t)}}},[s("ns-tabs-item",{attrs:{label:e.__("Units & Quantities"),identifier:"units-quantities"}},[e.hasLoadedUnitQuantities?s("table",{staticClass:"table w-full"},[s("thead",[s("tr",[s("th",{staticClass:"p-1 bg-blue-100 border-blue-400 text-blue-700 border"},[e._v(e._s(e.__("Unit")))]),e._v(" "),s("th",{staticClass:"text-right p-1 bg-blue-100 border-blue-400 text-blue-700 border",attrs:{width:"150"}},[e._v(e._s(e.__("Sale Price")))]),e._v(" "),s("th",{staticClass:"text-right p-1 bg-blue-100 border-blue-400 text-blue-700 border",attrs:{width:"150"}},[e._v(e._s(e.__("Wholesale Price")))]),e._v(" "),s("th",{staticClass:"text-right p-1 bg-blue-100 border-blue-400 text-blue-700 border",attrs:{width:"150"}},[e._v(e._s(e.__("Quantity")))])])]),e._v(" "),s("tbody",e._l(e.unitQuantities,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"p-1 border border-gray-400 text-gray-600 text-left"},[e._v(e._s(t.unit.name))]),e._v(" "),s("td",{staticClass:"p-1 border border-gray-400 text-gray-600 text-right"},[e._v(e._s(e._f("currency")(t.sale_price)))]),e._v(" "),s("td",{staticClass:"p-1 border border-gray-400 text-gray-600 text-right"},[e._v(e._s(e._f("currency")(t.wholesale_price)))]),e._v(" "),s("td",{staticClass:"p-1 border border-gray-400 text-gray-600 text-right"},[e._v(e._s(t.quantity))])])})),0)]):e._e(),e._v(" "),e.hasLoadedUnitQuantities?e._e():s("ns-spinner",{attrs:{size:"16",border:"4"}})],1)],1)],1)])])}),[],!1,null,null,null).exports;var W=s(2329),L=s(9576),G=s(7096);const Y={name:"ns-orders-refund-popup",data:function(){return{order:null,refunds:[],view:"summary",previewed:null,loaded:!1,options:systemOptions,settings:systemSettings}},methods:{__:l.__,popupCloser:o.Z,popupResolver:b.Z,toggleProductView:function(e){this.view="details",this.previewed=e},loadOrderRefunds:function(){var e=this;nsHttpClient.get("/api/nexopos/v4/orders/".concat(this.order.id,"/refunds")).subscribe((function(t){e.loaded=!0,e.refunds=t.refunds}),(function(e){r.kX.error(e.message).subscribe()}))},close:function(){this.$popup.close()},processRegularPrinting:function(e){var t=document.querySelector("printing-section");t&&t.remove();var s=this.settings.printing_url.replace("{order_id}",e),r=document.createElement("iframe");r.id="printing-section",r.className="hidden",r.src=s,document.body.appendChild(r),setTimeout((function(){document.querySelector("#printing-section").remove()}),100)},printRefundReceipt:function(e){this.printOrder(e.id)},printOrder:function(e){switch(this.options.ns_pos_printing_gateway){case"default":this.processRegularPrinting(e);break;default:this.processCustomPrinting(e,this.options.ns_pos_printing_gateway)}},processCustomPrinting:function(e,t){nsHooks.applyFilters("ns-order-custom-refund-print",{printed:!1,order_id:e,gateway:t}).printed||r.kX.error((0,l.__)("Unsupported print gateway.")).subscribe()}},mounted:function(){this.order=this.$popupParams.order,this.popupCloser(),this.loadOrderRefunds()}};const M=(0,f.Z)(Y,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg w-95vw h-95vh md:w-3/5-screen md:h-3/5-screen bg-white flex flex-col overflow-hidden"},[s("div",{staticClass:"border-b p-2 flex items-center justify-between"},[s("h3",[e._v(e._s(e.__("Order Refunds")))]),e._v(" "),s("div",{staticClass:"flex"},["details"===e.view?s("div",{staticClass:"flex items-center justify-center cursor-pointer rounded-full px-3 border hover:bg-blue-400 hover:text-white mr-1",on:{click:function(t){e.view="summary"}}},[e._v(e._s(e.__("Return")))]):e._e(),e._v(" "),s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"overflow-auto flex-auto"},["summary"===e.view?[e.loaded?e._e():s("div",{staticClass:"flex h-full w-full items-center justify-center"},[s("ns-spinner",{attrs:{size:"24"}})],1),e._v(" "),e.loaded&&0===e.refunds.length?s("div",{staticClass:"flex h-full w-full items-center justify-center"},[s("i",{staticClass:"lar la-frown-open"})]):e._e(),e._v(" "),e.loaded&&e.refunds.length>0?e._l(e.refunds,(function(t){return s("div",{key:t.id,staticClass:"border-b flex flex-col md:flex-row"},[s("div",{staticClass:"w-full md:flex-auto p-2"},[s("h3",{staticClass:"font-semibold mb-1"},[e._v(e._s(e.order.code))]),e._v(" "),s("div",[s("ul",{staticClass:"flex -mx-1 text-sm text-gray-700"},[s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Total"))+" : "+e._s(e._f("currency")(t.total)))]),e._v(" "),s("li",{staticClass:"px-1"},[e._v(e._s(e.__("By"))+" : "+e._s(t.author.username))])])])]),e._v(" "),s("div",{staticClass:"w-full md:w-16 cursor-pointer hover:bg-blue-400 hover:border-blue-400 hover:text-white text-lg flex items-center justify-center md:border-l",on:{click:function(s){return e.toggleProductView(t)}}},[s("i",{staticClass:"las la-eye"})]),e._v(" "),s("div",{staticClass:"w-full md:w-16 cursor-pointer hover:bg-blue-400 hover:border-blue-400 hover:text-white text-lg flex items-center justify-center md:border-l",on:{click:function(s){return e.printRefundReceipt(t)}}},[s("i",{staticClass:"las la-print"})])])})):e._e()]:e._e(),e._v(" "),"details"===e.view?e._l(e.previewed.refunded_products,(function(t){return s("div",{key:t.id,staticClass:"border-b flex flex-col md:flex-row"},[s("div",{staticClass:"w-full md:flex-auto p-2"},[s("h3",{staticClass:"font-semibold mb-1"},[e._v(e._s(t.product.name))]),e._v(" "),s("div",[s("ul",{staticClass:"flex -mx-1 text-sm text-gray-700"},[s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Condition"))+" : "+e._s(t.condition))]),e._v(" "),s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Quantity"))+" : "+e._s(t.quantity))]),e._v(" "),s("li",{staticClass:"px-1"},[e._v(e._s(e.__("Total"))+" : "+e._s(e._f("currency")(t.total_price)))])])])])])})):e._e()],2)])}),[],!1,null,null,null).exports;var B={nsOrderPreview:Q,nsProductPreview:N,nsAlertPopup:W.Z,nsConfirmPopup:x.Z,nsPromptPopup:O.Z,nsMediaPopup:L.Z,nsProcurementQuantity:G.Z,nsOrdersRefund:M};for(var H in B)window[H]=B[H]},6700:(e,t,s)=>{var r={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function n(e){var t=i(e);return s(t)}function i(e){if(!s.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}n.keys=function(){return Object.keys(r)},n.resolve=i,e.exports=n,n.id=6700},3968:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});function r(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return n(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const a=(0,s(1900).Z)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,r){return s("div",{key:r,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(s){return e.inputValue(t)}}},[void 0!==t.value?s("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?s("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},9576:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});var r=s(162),n=s(8603),i=s(7389);const a={name:"ns-media",props:["popup"],components:{VueUpload:s(2948)},data:function(){return{pages:[{label:(0,i.__)("Upload"),name:"upload",selected:!1},{label:(0,i.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return r.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:n.Z,__:i.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return r.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){r.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){r.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,r.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(s,r){r!==t.response.data.indexOf(e)&&(s.selected=!1)})),e.selected=!e.selected}}};const o=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[s("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[s("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),s("ul",e._l(e.pages,(function(t,r){return s("li",{key:r,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(s){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?s("div",{staticClass:"content w-full overflow-hidden flex"},[s("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[s("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[s("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),s("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[s("ul",e._l(e.files,(function(t,r){return s("li",{key:r,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[s("span",[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?s("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?s("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[s("div"),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),s("div",{staticClass:"flex flex-auto overflow-hidden"},[s("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[s("div",{staticClass:"flex flex-auto"},[s("div",{staticClass:"p-2 overflow-x-auto"},[s("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,r){return s("div",{key:r},[s("div",{staticClass:"p-2"},[s("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(s){return e.selectResource(t)}}},[s("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?s("div",{staticClass:"flex flex-auto items-center justify-center"},[s("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?s("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[s("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[s("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),s("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),s("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),s("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),s("p",{staticClass:"flex flex-col mb-2"},[s("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),s("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),s("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[s("div",{staticClass:"flex -mx-2 flex-shrink-0"},[s("div",{staticClass:"px-2 flex-shrink-0 flex"},[s("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?s("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[s("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?s("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[s("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?s("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[s("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),s("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[s("div",{staticClass:"px-2"},[s("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[s("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),s("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?s("div",{staticClass:"px-2"},[s("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},2329:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(void 0!==e.$popupParams.onAction&&e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){void 0!==this.$popupParams.onAction&&this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-6/7-screen md:w-4/7-screen lg:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[e.title?s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]):e._e(),e._v(" "),s("p",{staticClass:"py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700 justify-end items-center p-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))])],1)])}),[],!1,null,null,null).exports},419:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[s("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports},7096:(e,t,s)=>{"use strict";s.d(t,{Z:()=>l});var r=s(162),n=s(7389);function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:"",input:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.input=this.$popupParams.input||"",this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.reject(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e?this.input:e),this.$popup.close()},reject:function(e){this.$popupParams.reject(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-5/7-screen md:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-2"},[s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"w-full md:mx-auto md:w-2/3 py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"p-2"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.input,expression:"input"}],staticClass:"text-gray-700 w-full border-2 p-2 border-blue-400",attrs:{name:"",id:"",cols:"30",rows:"10"},domProps:{value:e.input},on:{input:function(t){t.target.composing||(e.input=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.reject(!1)}}},[e._v(e._s(e.__("Cancel")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=9351,e(e.s=t);var t}));e.O()}]); //# sourceMappingURL=popups.min.js.map \ No newline at end of file diff --git a/public/js/pos-init.min.js b/public/js/pos-init.min.js index b19dc16f3..9d49dd27a 100644 --- a/public/js/pos-init.min.js +++ b/public/js/pos-init.min.js @@ -1,2 +1,2 @@ -(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[443],{162:(e,t,s)=>{"use strict";s.d(t,{l:()=>I,kq:()=>X,ih:()=>Q,kX:()=>z});var r=s(6486),n=s(9669),i=s(2181),o=s(8345),a=s(9624),u=s(9248),c=s(230);function l(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,s)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,s)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var s=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=X.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:r}),new c.y((function(i){s._client[e](t,r,Object.assign(Object.assign({},s._client.defaults[e]),n)).then((function(e){s._lastRequestData=e,i.next(e.data),i.complete(),s._subject.next({identifier:"async.stop"})})).catch((function(e){var t;i.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),s._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,s=e.value;this._subject.next({identifier:t,value:s})}}])&&l(t.prototype,s),r&&l(t,r),e}(),p=s(3);function f(e,t){for(var s=0;s=1e3){for(var s,r=Math.floor((""+e).length/3),n=2;n>=1;n--){if(((s=parseFloat((0!=r?e/Math.pow(1e3,r):e).toPrecision(n)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}s%1!=0&&(s=s.toFixed(1)),t=s+["","k","m","b","t"][r]}return t})),O=s(1356),S=s(9698);function $(e,t){for(var s=0;s0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&q(t.prototype,s),r&&q(t,r),e}()),U=new b({sidebar:["xs","sm","md"].includes(B.breakpoint)?"hidden":"visible"});Q.defineClient(n),window.nsEvent=I,window.nsHttpClient=Q,window.nsSnackBar=z,window.nsCurrency=O.W,window.nsTruncate=S.b,window.nsRawCurrency=O.f,window.nsAbbreviate=P,window.nsState=U,window.nsUrl=L,window.nsScreen=B,window.ChartJS=i,window.EventEmitter=h,window.Popup=x.G,window.RxJS=g,window.FormValidation=C.Z,window.nsCrudHandler=N},1356:(e,t,s)=>{"use strict";s.d(t,{W:()=>c,f:()=>l});var r=s(538),n=s(2077),i=s.n(n),o=s(6740),a=s.n(o),u=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),c=r.default.filter("currency",(function(e){var t,s,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===r){var n={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};s=a()(e,n).format()}else s=i()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(s).concat("after"===ns.currency.ns_currency_position?t:"")})),l=function(e){var t="0.".concat(u);return parseFloat(i()(e).format(t))}},9698:(e,t,s)=>{"use strict";s.d(t,{b:()=>r});var r=s(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,s)=>{"use strict";function r(e,t){for(var s=0;sn});var n=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,s,n;return t=e,(s=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var s in e.tabs){var r=[],n=this.validateFieldsErrors(e.tabs[s].fields);n.length>0&&r.push(n),e.tabs[s].errors=r.flat(),t.push(r.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var s in e)0===t&&(e[s].active=!0),e[s].active=void 0!==e[s].active&&e[s].active,e[s].fields=this.createFields(e[s].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(s){t.fieldPassCheck(e,s)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var s in e.tabs)void 0===t[s]&&(t[s]={}),t[s]=this.extractFields(e.tabs[s].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var s=function(s){var r=s.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===r.length&&e.tabs[r[0]].fields.forEach((function(e){e.name===r[1]&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))})),s===e.main.name&&t.errors[s].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var r in t.errors)s(r)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var s=function(s){e.forEach((function(e){e.name===s&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))}))};for(var r in t.errors)s(r)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){s.identifier===t.identifier&&!0===s.invalid&&e.errors.splice(r,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){!0===s[t.identifier]&&e.errors.splice(r,1)}))}return e}}])&&r(t.prototype,s),n&&r(t,n),e}()},7389:(e,t,s)=>{"use strict";s.d(t,{__:()=>r,c:()=>n});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},n=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,s)=>{"use strict";function r(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}s.d(t,{Z:()=>r})},6386:(e,t,s)=>{"use strict";function r(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}s.d(t,{Z:()=>r})},2242:(e,t,s)=>{"use strict";s.d(t,{G:()=>o});var r=s(9248);function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{};if(n(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var s=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[s-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new r.x}var t,s,o;return t=e,o=[{key:"show",value:function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=new e(r);return n.open(t,s),n}}],(s=[{key:"open",value:function(e){var t,s,r,n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",o.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){n.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var a=Vue.extend(e);this.instance=new a({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=i,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&i(t.prototype,s),o&&i(t,o),e}()},9624:(e,t,s)=>{"use strict";s.d(t,{S:()=>i});var r=s(3260);function n(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return r.Observable.create((function(r){var i=s.__createSnack({message:e,label:t,type:n.type}),o=i.buttonNode,a=(i.textNode,i.snackWrapper,i.sampleSnack);o.addEventListener("click",(function(e){r.onNext(o),r.onCompleted(),a.remove()})),s.__startTimer(n.duration,a)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var s,r=function(){e>0&&!1!==e&&(s=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(s)})),t.addEventListener("mouseleave",(function(){r()})),r()}},{key:"__createSnack",value:function(e){var t=e.message,s=e.label,r=e.type,n=void 0===r?"info":r,i=document.getElementById("snack-wrapper")||document.createElement("div"),o=document.createElement("div"),a=document.createElement("p"),u=document.createElement("div"),c=document.createElement("button"),l="",d="";switch(n){case"info":l="text-white hover:bg-blue-400 bg-blue-500",d="bg-gray-900 text-white";break;case"error":l="text-red-700 hover:bg-white bg-white",d="bg-red-500 text-white";break;case"success":l="text-green-700 hover:bg-white bg-white",d="bg-green-500 text-white"}return a.textContent=t,s&&(c.textContent=s,c.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(l)),u.appendChild(c)),o.appendChild(a),o.appendChild(u),o.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(d)),i.appendChild(o),null===document.getElementById("snack-wrapper")&&(i.setAttribute("id","snack-wrapper"),i.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(i)),{snackWrapper:i,sampleSnack:o,buttonsWrapper:u,buttonNode:c,textNode:a}}}])&&n(t.prototype,s),i&&n(t,i),e}()},279:(e,t,s)=>{"use strict";s.d(t,{$:()=>u});var r=s(162),n=s(7389),i=s(2242),o=s(9531);function a(e,t){for(var s=0;sparseFloat(e.$quantities().quantity)-l)return r.kX.error((0,n.__)("Unable to add the product, there is not enough stock. Remaining %s").replace("%s",(e.$quantities().quantity-l).toString())).subscribe()}s({quantity:1})}else u.open(o.Z,{resolve:s,reject:a,product:c,data:e})}))}}])&&a(t.prototype,s),u&&a(t,u),e}()},6707:(e,t,s)=>{"use strict";var r=s(7757),n=s.n(r),i=s(279),o=s(2242),a=s(162),u=s(7389);const c={data:function(){return{unitsQuantities:[],loadsUnits:!1}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.reject(!1),e.$popup.close())})),void 0!==this.$popupParams.product.$original().selectedUnitQuantity?this.selectUnit(this.$popupParams.product.$original().selectedUnitQuantity):void 0!==this.$popupParams.product.$original().unit_quantities&&1===this.$popupParams.product.$original().unit_quantities.length?this.selectUnit(this.$popupParams.product.$original().unit_quantities[0]):(this.loadsUnits=!0,this.loadUnits())},methods:{__:u.__,loadUnits:function(){var e=this;a.ih.get("/api/nexopos/v4/products/".concat(this.$popupParams.product.$original().id,"/units/quantities")).subscribe((function(t){if(0===t.length)return e.$popup.close(),a.kX.error((0,u.__)("This product doesn't have any unit defined for selling.")).subscribe();e.unitsQuantities=t,1===e.unitsQuantities.length&&e.selectUnit(e.unitsQuantities[0])}))},selectUnit:function(e){this.$popupParams.resolve({unit_quantity_id:e.id,unit_name:e.unit.name,$quantities:function(){return e}}),this.$popup.close()}}};const l=(0,s(1900).Z)(c,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"h-full w-full flex items-center justify-center"},[e.unitsQuantities.length>0?s("div",{staticClass:"bg-white w-2/3-screen lg:w-1/3-screen overflow-hidden flex flex-col"},[s("div",{staticClass:"h-16 flex justify-center items-center flex-shrink-0",attrs:{id:"header"}},[s("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Choose Selling Unit")))])]),e._v(" "),e.unitsQuantities.length>0?s("div",{staticClass:"grid grid-flow-row grid-cols-2 overflow-y-auto"},e._l(e.unitsQuantities,(function(t){return s("div",{key:t.id,staticClass:"hover:bg-gray-200 cursor-pointer border flex-shrink-0 border-gray-200 flex flex-col items-center justify-center",on:{click:function(s){return e.selectUnit(t)}}},[s("div",{staticClass:"h-40 w-full flex items-center justify-center overflow-hidden"},[t.preview_url?s("img",{staticClass:"object-cover h-full",attrs:{src:t.preview_url,alt:t.unit.name}}):e._e(),e._v(" "),t.preview_url?e._e():s("div",{staticClass:"h-40 flex items-center justify-center"},[s("i",{staticClass:"las la-image text-gray-600 text-6xl"})])]),e._v(" "),s("div",{staticClass:"h-0 w-full"},[s("div",{staticClass:"relative w-full flex items-center justify-center -top-10 h-20 py-2 flex-col",staticStyle:{background:"rgb(255 255 255 / 73%)"}},[s("h3",{staticClass:"font-bold text-gray-700 py-2 text-center"},[e._v(e._s(t.unit.name)+" ("+e._s(t.quantity)+")")]),e._v(" "),s("p",{staticClass:"text-sm font-medium text-gray-600"},[e._v(e._s(e._f("currency")(t.sale_price)))])])])])})),0):e._e()]):e._e(),e._v(" "),0===e.unitsQuantities.length?s("div",{staticClass:"h-56 flex items-center justify-center"},[s("ns-spinner")],1):e._e()])}),[],!1,null,null,null).exports;function d(e,t){for(var s=0;s=544&&window.innerWidth<768?this.screenIs="sm":window.innerWidth>=768&&window.innerWidth<992?this.screenIs="md":window.innerWidth>=992&&window.innerWidth<1200?this.screenIs="lg":window.innerWidth>=1200&&(this.screenIs="xl")}},{key:"is",value:function(e){return void 0===e?this.screenIs:this.screenIs===e}}])&&v(t.prototype,s),r&&v(t,r),e}();function b(e,t){for(var s=0;s0){var r=e.order.getValue();r.type=s[0],e.order.next(r)}})),window.addEventListener("resize",(function(){e._responsive.detect(),e.defineCurrentScreen()})),this.defineCurrentScreen()}},{key:"setHoldPopupEnabled",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this._holdPopupEnabled=e}},{key:"getHoldPopupEnabled",value:function(){return this._holdPopupEnabled}},{key:"processInitialQueue",value:function(){return m(this,void 0,void 0,n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=n().keys(this._initialQueue);case 1:if((e.t1=e.t0()).done){e.next=14;break}return t=e.t1.value,e.prev=3,e.next=6,this._initialQueue[t]();case 6:e.sent,e.next=12;break;case 9:e.prev=9,e.t2=e.catch(3),a.kX.error(e.t2.message).subscribe();case 12:e.next=1;break;case 14:case"end":return e.stop()}}),e,this,[[3,9]])})))}},{key:"removeCoupon",value:function(e){var t=this.order.getValue(),s=t.coupons,r=s.indexOf(e);s.splice(r,1),t.coupons=s,this.order.next(t)}},{key:"pushCoupon",value:function(e){var t=this.order.getValue();t.coupons.forEach((function(t){if(t.code===e.code){var s=(0,u.__)("This coupon is already added to the cart");throw a.kX.error(s).subscribe(),s}})),t.coupons.push(e),this.order.next(t),this.refreshCart()}},{key:"header",get:function(){var e={buttons:{NsPosDashboardButton:g,NsPosPendingOrderButton:y,NsPosOrderTypeButton:x,NsPosCustomersButton:w,NsPosResetButton:C}};return"yes"===this.options.getValue().ns_pos_registers_enabled&&(e.buttons.NsPosCashRegister=k),a.kq.doAction("ns-pos-header",e),e}},{key:"defineOptions",value:function(e){this._options.next(e)}},{key:"defineCurrentScreen",value:function(){this._visibleSection.next(["xs","sm"].includes(this._responsive.is())?"grid":"both"),this._screen.next(this._responsive.is())}},{key:"changeVisibleSection",value:function(e){["both","cart","grid"].includes(e)&&(["cart","both"].includes(e)&&this.refreshCart(),this._visibleSection.next(e))}},{key:"addPayment",value:function(e){if(e.value>0){var t=this._order.getValue();return t.payments.push(e),this._order.next(t),this.computePaid()}return a.kX.error("Invalid amount.").subscribe()}},{key:"removePayment",value:function(e){if(void 0!==e.id)return a.kX.error("Unable to delete a payment attached to the order").subscribe();var t=this._order.getValue(),s=t.payments.indexOf(e);t.payments.splice(s,1),this._order.next(t),a.l.emit({identifier:"ns.pos.remove-payment",value:e}),this.updateCustomerAccount(e),this.computePaid()}},{key:"updateCustomerAccount",value:function(e){if("account-payment"===e.identifier){var t=this.order.getValue().customer;t.account_amount+=e.value,this.selectCustomer(t)}}},{key:"getNetPrice",value:function(e,t,s){return"inclusive"===s?e/(t+100)*100:"exclusive"===s?e/100*(t+100):void 0}},{key:"getVatValue",value:function(e,t,s){return"inclusive"===s?e-this.getNetPrice(e,t,s):"exclusive"===s?this.getNetPrice(e,t,s)-e:void 0}},{key:"computeTaxes",value:function(){var e=this;return new Promise((function(t,s){var r=e.order.getValue();if(void 0===r.tax_group_id||null===r.tax_group_id)return s(!1);var n=r.tax_groups;return n&&void 0!==n[r.tax_group_id]?(r.taxes=r.taxes.map((function(t){return t.tax_value=e.getVatValue(r.subtotal,t.rate,r.tax_type),t})),t({status:"success",data:{tax:n[r.tax_group_id],order:r}})):null===r.tax_group_id?s({status:"failed",message:(0,u.__)("No tax group assigned to the order")}):void a.ih.get("/api/nexopos/v4/taxes/groups/".concat(r.tax_group_id)).subscribe((function(s){return r.tax_groups=r.tax_groups||[],r.taxes=s.taxes.map((function(t){return{tax_id:t.id,tax_name:t.name,rate:parseFloat(t.rate),tax_value:e.getVatValue(r.subtotal,t.rate,r.tax_type)}})),r.tax_groups[s.id]=s,t({status:"success",data:{tax:s,order:r}})}),(function(e){return s(e)}))}))}},{key:"canProceedAsLaidAway",value:function(e){var t=this;return new Promise((function(s,r){return m(t,void 0,void 0,n().mark((function t(){var i,a,c,l,d,p,f,v=this;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=e.customer.group.minimal_credit_payment,a=(e.total*i/100).toFixed(ns.currency.ns_currency_precision),a=parseFloat(a),t.prev=3,t.next=6,new Promise((function(t,s){o.G.show(S,{order:e,reject:s,resolve:t})}));case 6:if(!(0===(c=t.sent).instalments.length&&c.tendered0&&void 0!==arguments[0]?arguments[0]:{};return new Promise((function(s,r){return m(e,void 0,void 0,n().mark((function e(){var i,o,c,l,d,p=this;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=Object.assign(Object.assign({},this.order.getValue()),t),o=i.customer.group.minimal_credit_payment,"hold"===i.payment_status){e.next=20;break}if(!(0===i.payments.length||i.total>i.tendered)){e.next=20;break}if("no"!==this.options.getValue().ns_orders_allow_partial){e.next=9;break}return c=(0,u.__)("Partially paid orders are disabled."),e.abrupt("return",r({status:"failed",message:c}));case 9:if(!(o>=0)){e.next=20;break}return e.prev=10,e.next=13,this.canProceedAsLaidAway(i);case 13:l=e.sent,i=l.data.order,e.next=20;break;case 17:return e.prev=17,e.t0=e.catch(10),e.abrupt("return",r(e.t0));case 20:if(this._isSubmitting){e.next=24;break}return d=void 0!==i.id?"put":"post",this._isSubmitting=!0,e.abrupt("return",a.ih[d]("/api/nexopos/v4/orders".concat(void 0!==i.id?"/"+i.id:""),i).subscribe({next:function(e){s(e),p.reset(),a.kq.doAction("ns-order-submit-successful",e),p._isSubmitting=!1},error:function(e){p._isSubmitting=!1,r(e),a.kq.doAction("ns-order-submit-failed",e)}}));case 24:return e.abrupt("return",r({status:"failed",message:(0,u.__)("An order is currently being processed.")}));case 25:case"end":return e.stop()}}),e,this,[[10,17]])})))}))}},{key:"loadOrder",value:function(e){var t=this;return new Promise((function(s,r){a.ih.get("/api/nexopos/v4/orders/".concat(e,"/pos")).subscribe((function(e){return m(t,void 0,void 0,n().mark((function t(){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=Object.assign(Object.assign({},this.defaultOrder()),e),r=e.products.map((function(e){return e.$original=function(){return e.product},e.$quantities=function(){return e.product.unit_quantities.filter((function(t){return t.id===e.unit_quantity_id}))[0]},e})),e.type=Object.values(this.types.getValue()).filter((function(t){return t.identifier===e.type}))[0],e.addresses={shipping:e.shipping_address,billing:e.billing_address},delete e.shipping_address,delete e.billing_address,this.buildOrder(e),this.buildProducts(r),t.next=10,this.selectCustomer(e.customer);case 10:s(e);case 11:case"end":return t.stop()}}),t,this)})))}),(function(e){return r(e)}))}))}},{key:"buildOrder",value:function(e){this.order.next(e)}},{key:"buildProducts",value:function(e){this.refreshProducts(e),this.products.next(e)}},{key:"printOrder",value:function(e){var t=this.options.getValue();if("disabled"===t.ns_pos_printing_enabled_for)return!1;switch(t.ns_pos_printing_gateway){case"default":this.processRegularPrinting(e);break;default:this.processCustomPrinting(e,t.ns_pos_printing_gateway)}}},{key:"processCustomPrinting",value:function(e,t){a.kq.applyFilters("ns-order-custom-print",{printed:!1,order_id:e,gateway:t}).printed||a.kX.error((0,u.__)("Unsupported print gateway.")).subscribe()}},{key:"processRegularPrinting",value:function(e){var t=document.querySelector("printing-section");t&&t.remove();var s=document.createElement("iframe");s.id="printing-section",s.className="hidden",s.src=this.settings.getValue().urls.printing_url.replace("{id}",e),document.body.appendChild(s)}},{key:"computePaid",value:function(){var e=this._order.getValue();e.tendered=0,e.payments.length>0&&(e.tendered=e.payments.map((function(e){return e.value})).reduce((function(e,t){return t+e}))),e.tendered>=e.total?e.payment_status="paid":e.tendered>0&&e.tendered0&&(t.products.filter((function(t){return e.products.map((function(e){return e.product_id})).includes(t.product_id)})).length>0||-1!==s.indexOf(e)||s.push(e)),e.categories.length>0&&(t.products.filter((function(t){return e.categories.map((function(e){return e.category_id})).includes(t.$original().category_id)})).length>0||-1!==s.indexOf(e)||s.push(e))})),s.forEach((function(t){a.kX.error((0,u.__)('The coupons "%s" has been removed from the cart, as it\'s required conditions are no more meet.').replace("%s",t.name),(0,u.__)("Okay"),{duration:6e3}).subscribe(),e.removeCoupon(t)}))}},{key:"refreshCart",value:function(){return m(this,void 0,void 0,n().mark((function e(){var t,s,r,i,o,c,l;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.checkCart(),t=this.products.getValue(),s=this.order.getValue(),(r=t.map((function(e){return e.total_price}))).length>0?s.subtotal=r.reduce((function(e,t){return e+t})):s.subtotal=0,i=s.coupons.map((function(e){return"percentage_discount"===e.type?(e.value=s.subtotal*e.discount_value/100,e.value):(e.value=e.discount_value,e.value)})),s.total_coupons=0,i.length>0&&(s.total_coupons=i.reduce((function(e,t){return e+t}))),"percentage"===s.discount_type&&(s.discount=s.discount_percentage*s.subtotal/100),s.discount>s.subtotal&&0===s.total_coupons&&(s.discount=s.subtotal,a.kX.info("The discount has been set to the cart subtotal").subscribe()),this.order.next(s),e.prev=11,e.next=14,this.computeTaxes();case 14:o=e.sent,s=o.data.order,e.next=21;break;case 18:e.prev=18,e.t0=e.catch(11),!1!==e.t0&&void 0!==e.t0.message&&a.kX.error(e.t0.message||(0,u.__)("An unexpected error has occured while fecthing taxes."),(0,u.__)("OKAY"),{duration:0}).subscribe();case 21:c=t.map((function(e){return e.tax_value})),s.tax_value=0,l=this.options.getValue().ns_pos_vat,["products_vat","products_flat_vat","products_variable_vat"].includes(l)&&c.length>0&&(s.tax_value+=c.reduce((function(e,t){return e+t}))),["flat_vat","variable_vat","products_variable_vat"].includes(l)&&s.taxes&&s.taxes.length>0&&(s.tax_value+=s.taxes.map((function(e){return e.tax_value})).reduce((function(e,t){return e+t}))),s.total=s.subtotal+(s.shipping||0)+s.tax_value-s.discount-s.total_coupons,s.products=t,s.total_products=t.length,this.order.next(s),a.kq.doAction("ns-cart-after-refreshed",s);case 31:case"end":return e.stop()}}),e,this,[[11,18]])})))}},{key:"getStockUsage",value:function(e,t){var s=this._products.getValue().filter((function(s){return s.product_id===e&&s.unit_quantity_id===t})).map((function(e){return e.quantity}));return s.length>0?s.reduce((function(e,t){return e+t})):0}},{key:"addToCart",value:function(e){return m(this,void 0,void 0,n().mark((function t(){var s,r,i,o,a,u;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:console.log(e),s=new Object,r={product_id:e.id,name:e.name,discount_type:"percentage",discount:0,discount_percentage:0,quantity:0,tax_group_id:e.tax_group_id,tax_value:0,unit_price:0,total_price:0,mode:"normal",$original:function(){return e}},this._processingAddQueue=!0,t.t0=n().keys(this.addToCartQueue);case 5:if((t.t1=t.t0()).done){t.next=22;break}return i=t.t1.value,t.prev=7,o=new this.addToCartQueue[i](r),t.next=11,o.run(s);case 11:a=t.sent,s=Object.assign(Object.assign({},s),a),t.next=20;break;case 15:if(t.prev=15,t.t2=t.catch(7),!1!==t.t2){t.next=20;break}return this._processingAddQueue=!1,t.abrupt("return",!1);case 20:t.next=5;break;case 22:this._processingAddQueue=!1,r=Object.assign(Object.assign({},r),s),(u=this._products.getValue()).unshift(r),this.refreshProducts(u),this._products.next(u);case 28:case"end":return t.stop()}}),t,this,[[7,15]])})))}},{key:"defineTypes",value:function(e){this._types.next(e)}},{key:"removeProduct",value:function(e){var t=this._products.getValue(),s=t.indexOf(e);t.splice(s,1),this._products.next(t)}},{key:"updateProduct",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this._products.getValue();s=null===s?r.indexOf(e):s,h.default.set(r,s,Object.assign(Object.assign({},e),t)),this.refreshProducts(r),this._products.next(r)}},{key:"refreshProducts",value:function(e){var t=this;e.forEach((function(e){t.computeProduct(e)}))}},{key:"computeProduct",value:function(e){"normal"===e.mode?(e.unit_price=e.$quantities().sale_price,e.tax_value=e.$quantities().sale_price_tax*e.quantity):"wholesale"===e.mode&&(e.unit_price=e.$quantities().wholesale_price,e.tax_value=e.$quantities().wholesale_price_tax*e.quantity),["flat","percentage"].includes(e.discount_type)&&"percentage"===e.discount_type&&(e.discount=e.unit_price*e.discount_percentage/100*e.quantity),e.total_price=e.unit_price*e.quantity-e.discount,a.kq.doAction("ns-after-product-computed",e)}},{key:"loadCustomer",value:function(e){return a.ih.get("/api/nexopos/v4/customers/".concat(e))}},{key:"defineSettings",value:function(e){this._settings.next(e)}},{key:"voidOrder",value:function(e){var t=this;void 0!==e.id?["hold"].includes(e.payment_status)?o.G.show(P,{title:"Order Deletion",message:"The current order will be deleted as no payment has been made so far.",onAction:function(s){s&&a.ih.delete("/api/nexopos/v4/orders/".concat(e.id)).subscribe((function(e){a.kX.success(e.message).subscribe(),t.reset()}),(function(e){return a.kX.error(e.message).subscribe()}))}}):o.G.show(O,{title:"Void The Order",message:"The current order will be void. This will cancel the transaction, but the order won't be deleted. Further details about the operation will be tracked on the report. Consider providing the reason of this operation.",onAction:function(s){!1!==s&&a.ih.post("/api/nexopos/v4/orders/".concat(e.id,"/void"),{reason:s}).subscribe((function(e){a.kX.success(e.message).subscribe(),t.reset()}),(function(e){return a.kX.error(e.message).subscribe()}))}}):a.kX.error("Unable to void an unpaid order.").subscribe()}},{key:"triggerOrderTypeSelection",value:function(e){return m(this,void 0,void 0,n().mark((function t(){var s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:s=0;case 1:if(!(s{var r={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function n(e){var t=i(e);return s(t)}function i(e){if(!s.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}n.keys=function(){return Object.keys(r)},n.resolve=i,e.exports=n,n.id=6700},3968:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});function r(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return n(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const o=(0,s(1900).Z)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,r){return s("div",{key:r,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(s){return e.inputValue(t)}}},[void 0!==t.value?s("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?s("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},1384:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});var r=s(2242),n=s(1214);const i={name:"ns-pos-customers-button",methods:{__:s(7389).__,openPendingOrdersPopup:function(){(new r.G).open(n.Z)}}};const o=(0,s(1900).Z)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.openPendingOrdersPopup()}}},[s("i",{staticClass:"mr-1 text-xl lar la-user-circle"}),e._v(" "),s("span",[e._v(e._s(e.__("Customers")))])])}),[],!1,null,null,null).exports},8927:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={name:"ns-pos-dashboard-button",methods:{__:s(7389).__,goToDashboard:function(){return document.location=POS.settings.getValue().urls.dashboard_url}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.goToDashboard()}}},[s("i",{staticClass:"mr-1 text-xl las la-tachometer-alt"}),e._v(" "),s("span",[e._v(e._s(e.__("Dashboard")))])])}),[],!1,null,null,null).exports},6568:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});var r=s(2242),n=s(3625);const i={name:"ns-pos-delivery-button",methods:{__:s(7389).__,openPendingOrdersPopup:function(){new r.G({primarySelector:"#pos-app",popupClass:"shadow-lg bg-white w-3/5 md:w-2/3 lg:w-2/5 xl:w-2/4"}).open(n.Z)}}};const o=(0,s(1900).Z)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.openPendingOrdersPopup()}}},[s("i",{staticClass:"mr-1 text-xl las la-truck"}),e._v(" "),s("span",[e._v(e._s(e.__("Order Type")))])])}),[],!1,null,null,null).exports},661:(e,t,s)=>{"use strict";s.d(t,{Z:()=>h});var r=s(2242),n=s(162),i=s(419),o=s(7389);const a={data:function(){return{products:[],isLoading:!1}},computed:{order:function(){return this.$popupParams.order}},mounted:function(){this.loadProducts()},methods:{__:o.__,close:function(){this.$popupParams.reject(!1),this.$popup.close()},loadProducts:function(){var e=this;this.isLoading=!0;var t=this.$popupParams.order.id;n.ih.get("/api/nexopos/v4/orders/".concat(t,"/products")).subscribe((function(t){e.isLoading=!1,e.products=t}))},openOrder:function(){this.$popup.close(),this.$popupParams.resolve(this.order)}}};var u=s(1900);const c=(0,u.Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg bg-white w-6/7-screen md:w-3/5-screen lg:w-2/5-screen h-6/7-screen flex flex-col overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between text-gray-700 items-center border-b"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("Products"))+" — "+e._s(e.order.code)+" "),e.order.title?s("span",[e._v("("+e._s(e.order.title)+")")]):e._e()]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto p-2 overflow-y-auto"},[e.isLoading?s("div",{staticClass:"flex-auto relative"},[s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("ns-spinner")],1)]):e._e(),e._v(" "),e.isLoading?e._e():e._l(e.products,(function(t){return s("div",{key:t.id,staticClass:"item"},[s("div",{staticClass:"flex-col border-b border-blue-400 py-2"},[s("div",{staticClass:"title font-semibold text-gray-700 flex justify-between"},[s("span",[e._v(e._s(t.name)+" (x"+e._s(t.quantity)+")")]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(t.total_price)))])]),e._v(" "),s("div",{staticClass:"text-sm text-gray-600"},[s("ul",[s("li",[e._v(e._s(e.__("Unit"))+" : "+e._s(t.unit.name))])])])])])}))],2),e._v(" "),s("div",{staticClass:"flex justify-end p-2 border-t border-gray-400"},[s("div",{staticClass:"px-1"},[s("div",{staticClass:"-mx-2 flex"},[s("div",{staticClass:"px-1"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.openOrder()}}},[e._v(e._s(e.__("Open")))])],1),e._v(" "),s("div",{staticClass:"px-1"},[s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.close()}}},[e._v(e._s(e.__("Close")))])],1)])])])])}),[],!1,null,null,null).exports;const l={props:["orders"],data:function(){return{searchField:""}},watch:{orders:function(){n.kq.doAction("ns-pos-pending-orders-refreshed",this.orders)}},mounted:function(){},name:"ns-pos-pending-order",methods:{__:o.__,previewOrder:function(e){this.$emit("previewOrder",e)},proceedOpenOrder:function(e){this.$emit("proceedOpenOrder",e)},searchOrder:function(){this.$emit("searchOrder",this.searchField)},printOrder:function(e){this.$emit("printOrder",e)}}};const d={components:{nsPosPendingOrders:(0,u.Z)(l,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col overflow-hidden"},[s("div",{staticClass:"p-1"},[s("div",{staticClass:"flex rounded border-2 border-blue-400"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.searchField,expression:"searchField"}],staticClass:"p-2 outline-none flex-auto",attrs:{type:"text"},domProps:{value:e.searchField},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.searchOrder()},input:function(t){t.target.composing||(e.searchField=t.target.value)}}}),e._v(" "),s("button",{staticClass:"w-16 md:w-24 bg-blue-400 text-white",on:{click:function(t){return e.searchOrder()}}},[s("i",{staticClass:"las la-search"}),e._v(" "),s("span",{staticClass:"mr-1 hidden md:visible"},[e._v(e._s(e.__("Search")))])])])]),e._v(" "),s("div",{staticClass:"overflow-y-auto flex flex-auto"},[s("div",{staticClass:"flex p-2 flex-auto flex-col overflow-y-auto"},[e._l(e.orders,(function(t){return s("div",{key:t.id,staticClass:"border-b border-blue-400 w-full py-2",attrs:{"data-order-id":t.id}},[s("h3",{staticClass:"text-gray-700"},[e._v(e._s(t.title||"Untitled Order"))]),e._v(" "),s("div",{staticClass:"px-2"},[s("div",{staticClass:"flex flex-wrap -mx-4"},[s("div",{staticClass:"w-full md:w-1/2 px-2"},[s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Cashier")))]),e._v(" : "+e._s(t.nexopos_users_username))]),e._v(" "),s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Register")))]),e._v(" : "+e._s(e._f("currency")(t.total)))]),e._v(" "),s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Tendered")))]),e._v(" : "+e._s(e._f("currency")(t.tendered)))])]),e._v(" "),s("div",{staticClass:"w-full md:w-1/2 px-2"},[s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Customer")))]),e._v(" : "+e._s(t.nexopos_customers_name))]),e._v(" "),s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Date")))]),e._v(" : "+e._s(t.created_at))]),e._v(" "),s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Type")))]),e._v(" : "+e._s(t.type))])])])]),e._v(" "),s("div",{staticClass:"flex justify-end w-full mt-2"},[s("div",{staticClass:"flex rounded-lg overflow-hidden buttons-container"},[s("button",{staticClass:"text-white bg-green-400 outline-none px-2 py-1",on:{click:function(s){return e.proceedOpenOrder(t)}}},[s("i",{staticClass:"las la-lock-open"}),e._v(" "+e._s(e.__("Open")))]),e._v(" "),s("button",{staticClass:"text-white bg-blue-400 outline-none px-2 py-1",on:{click:function(s){return e.previewOrder(t)}}},[s("i",{staticClass:"las la-eye"}),e._v(" "+e._s(e.__("Products")))]),e._v(" "),s("button",{staticClass:"text-white bg-teal-400 outline-none px-2 py-1",on:{click:function(s){return e.printOrder(t)}}},[s("i",{staticClass:"las la-print"}),e._v(" "+e._s(e.__("Print")))])])])])})),e._v(" "),0===e.orders.length?s("div",{staticClass:"h-full v-full items-center justify-center flex"},[s("h3",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(e.__("Nothing to display...")))])]):e._e()],2)])])}),[],!1,null,null,null).exports},methods:{__:o.__,searchOrder:function(e){var t=this;n.ih.get("/api/nexopos/v4/crud/".concat(this.active,"?search=").concat(e)).subscribe((function(e){t.orders=e.data}))},setActiveTab:function(e){this.active=e,this.loadOrderFromType(e)},openOrder:function(e){POS.loadOrder(e.id),this.$popup.close()},loadOrderFromType:function(e){var t=this;n.ih.get("/api/nexopos/v4/crud/".concat(e)).subscribe((function(e){t.orders=e.data}))},previewOrder:function(e){var t=this;new Promise((function(t,s){Popup.show(c,{order:e,resolve:t,reject:s})})).then((function(s){t.proceedOpenOrder(e)}),(function(e){return e}))},printOrder:function(e){POS.printOrder(e.id)},proceedOpenOrder:function(e){var t=this;if(POS.products.getValue().length>0)return Popup.show(i.Z,{title:"Confirm Your Action",message:"The cart is not empty. Opening an order will clear your cart would you proceed ?",onAction:function(s){s&&t.openOrder(e)}});this.openOrder(e)}},data:function(){return{active:"ns.hold-orders",searchField:"",orders:[]}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.$popup.close()})),this.loadOrderFromType(this.active)}};const p=(0,u.Z)(d,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg bg-white w-6/7-screen md:w-3/5-screen lg:w-2/5-screen h-6/7-screen flex flex-col overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between text-gray-700 items-center border-b"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("Orders")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),s("div",{staticClass:"p-2 flex overflow-hidden flex-auto"},[s("ns-tabs",{attrs:{active:e.active},on:{changeTab:function(t){return e.setActiveTab(t)}}},[s("ns-tabs-item",{staticClass:"flex flex-col overflow-hidden",attrs:{identifier:"ns.hold-orders",label:e.__("On Hold"),padding:"p-0"}},[s("ns-pos-pending-orders",{attrs:{orders:e.orders},on:{searchOrder:function(t){return e.searchOrder(t)},previewOrder:function(t){return e.previewOrder(t)},printOrder:function(t){return e.printOrder(t)},proceedOpenOrder:function(t){return e.proceedOpenOrder(t)}}})],1),e._v(" "),s("ns-tabs-item",{staticClass:"flex flex-col overflow-hidden",attrs:{identifier:"ns.unpaid-orders",label:e.__("Unpaid"),padding:"p-0"}},[s("ns-pos-pending-orders",{attrs:{orders:e.orders},on:{searchOrder:function(t){return e.searchOrder(t)},previewOrder:function(t){return e.previewOrder(t)},printOrder:function(t){return e.printOrder(t)},proceedOpenOrder:function(t){return e.proceedOpenOrder(t)}}})],1),e._v(" "),s("ns-tabs-item",{staticClass:"flex flex-col overflow-hidden",attrs:{identifier:"ns.partially-paid-orders",label:e.__("Partially Paid"),padding:"p-0"}},[s("ns-pos-pending-orders",{attrs:{orders:e.orders},on:{searchOrder:function(t){return e.searchOrder(t)},previewOrder:function(t){return e.previewOrder(t)},printOrder:function(t){return e.printOrder(t)},proceedOpenOrder:function(t){return e.proceedOpenOrder(t)}}})],1)],1)],1),e._v(" "),s("div",{staticClass:"p-2 flex justify-between border-t bg-gray-200"},[s("div"),e._v(" "),s("div",[s("ns-button",[e._v(e._s(e.__("Close")))])],1)])])}),[],!1,null,null,null).exports,f={name:"ns-pos-pending-orders-button",methods:{__:o.__,openPendingOrdersPopup:function(){(new r.G).open(p)}}};const h=(0,u.Z)(f,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.openPendingOrdersPopup()}}},[s("i",{staticClass:"mr-1 text-xl lar la-hand-pointer"}),e._v(" "),s("span",[e._v(e._s(e.__("Orders")))])])}),[],!1,null,null,null).exports},818:(e,t,s)=>{"use strict";s.d(t,{Z:()=>V});var r=s(7757),n=s.n(r),i=s(162),o=s(3968),a=s(7266),u=s(8603),c=s(419),l=s(7389);const d={components:{nsNumpad:o.Z},data:function(){return{amount:0,title:null,identifier:null,settingsSubscription:null,settings:null,action:null,loaded:!1,register_id:null,validation:new a.Z,fields:[]}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.identifier=this.$popupParams.identifier,this.action=this.$popupParams.action,this.register_id=this.$popupParams.register_id,this.settingsSubscription=POS.settings.subscribe((function(t){e.settings=t})),this.loadFields()},destroyed:function(){this.settingsSubscription.unsubscribe()},methods:{popupCloser:u.Z,__:l.__,definedValue:function(e){this.amount=e},close:function(){this.$popup.close()},loadFields:function(){var e=this;this.loaded=!1,nsHttpClient.get("/api/nexopos/v4/fields/".concat(this.identifier)).subscribe((function(t){e.loaded=!0,e.fields=t}),(function(t){return e.loaded=!0,nsSnackBar.error(t.message,"OKAY",{duration:!1}).subscribe()}))},submit:function(e){var t=this;Popup.show(c.Z,{title:"Confirm Your Action",message:this.$popupParams.confirmMessage||"Would you like to confirm your action.",onAction:function(e){e&&t.triggerSubmit()}})},triggerSubmit:function(){var e=this,t=this.validation.extractFields(this.fields);t.amount=""===this.amount?0:this.amount,nsHttpClient.post("/api/nexopos/v4/cash-registers/".concat(this.action,"/").concat(this.register_id||this.settings.register.id),t).subscribe((function(t){e.$popupParams.resolve(t),e.$popup.close(),nsSnackBar.success(t.message).subscribe()}),(function(e){nsSnackBar.error(e.message).subscribe()}))}}};var p=s(1900);const f=(0,p.Z)(d,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.loaded?s("div",{staticClass:"shadow-lg w-95vw md:w-2/5-screen bg-white"},[s("div",{staticClass:"border-b border-gray-200 p-2 text-gray-700 flex justify-between items-center"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.title))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"p-2"},[null!==e.settings&&e.settings.register?s("div",{staticClass:"mb-2 p-3 bg-gray-400 font-bold text-white text-right flex justify-between"},[s("span",[e._v(e._s(e.__("Balance"))+" ")]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.settings.register.balance)))])]):e._e(),e._v(" "),s("div",{staticClass:"mb-2 p-3 bg-green-400 font-bold text-white text-right flex justify-between"},[s("span",[e._v(e._s(e.__("Input")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.amount)))])]),e._v(" "),s("div",{staticClass:"mb-2"},[s("ns-numpad",{attrs:{floating:!0,value:e.amount},on:{next:function(t){return e.submit(t)},changed:function(t){return e.definedValue(t)}}})],1),e._v(" "),e._l(e.fields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})}))],2)]):e._e(),e._v(" "),e.loaded?e._e():s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("ns-spinner")],1)])}),[],!1,null,null,null).exports;var h=s(6386);function v(e,t,s,r,n,i,o){try{var a=e[i](o),u=a.value}catch(e){return void s(e)}a.done?t(u):Promise.resolve(u).then(r,n)}const _={components:{nsNumpad:o.Z},data:function(){return{registers:[],priorVerification:!1,hasLoadedRegisters:!1,validation:new a.Z,amount:0,settings:null,settingsSubscription:null}},mounted:function(){var e=this;this.checkUsedRegister(),this.settingsSubscription=POS.settings.subscribe((function(t){e.settings=t}))},beforeDestroy:function(){this.settingsSubscription.unsubscribe()},computed:{},methods:{__:l.__,popupResolver:h.Z,selectRegister:function(e){var t,s=this;return(t=n().mark((function t(){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("closed"===e.status){t.next=2;break}return t.abrupt("return",i.kX.error((0,l.__)("Unable to open this register. Only closed register can be opened.")).subscribe());case 2:return t.prev=2,t.next=5,new Promise((function(t,s){var r=(0,l.__)("Open Register : %s").replace("%s",e.name),n=e.id;Popup.show(f,{resolve:t,reject:s,title:r,identifier:"ns.cash-registers-opening",action:"open",register_id:n})}));case 5:r=t.sent,s.popupResolver(r),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(2),console.log(t.t0);case 12:case"end":return t.stop()}}),t,null,[[2,9]])})),function(){var e=this,s=arguments;return new Promise((function(r,n){var i=t.apply(e,s);function o(e){v(i,r,n,o,a,"next",e)}function a(e){v(i,r,n,o,a,"throw",e)}o(void 0)}))})()},checkUsedRegister:function(){var e=this;this.priorVerification=!1,i.ih.get("/api/nexopos/v4/cash-registers/used").subscribe((function(t){e.$popupParams.resolve(t),e.$popup.close()}),(function(t){e.priorVerification=!0,i.kX.error(t.message).subscribe(),e.loadRegisters()}))},loadRegisters:function(){var e=this;this.hasLoadedRegisters=!1,i.ih.get("/api/nexopos/v4/cash-registers").subscribe((function(t){e.registers=t,e.hasLoadedRegisters=!0}))},getClass:function(e){switch(e.status){case"in-use":return"bg-teal-200 text-gray-800 cursor-not-allowed";case"disabled":return"bg-gray-200 text-gray-700 cursor-not-allowed";case"available":return"bg-green-100 text-gray-800"}return"border-gray-200 cursor-pointer hover:bg-blue-400 hover:text-white"}}};const b=(0,p.Z)(_,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[!1===e.priorVerification?s("div",{staticClass:"h-full w-full py-10 flex justify-center items-center"},[s("ns-spinner",{attrs:{size:"24",border:"8"}})],1):e._e(),e._v(" "),s("div",{staticClass:"w-95vw md:w-3/5-screen lg:w-3/5-screen xl:w-2/5-screen flex flex-col overflow-hidden",class:e.priorVerification?"shadow-lg bg-white":""},[e.priorVerification?[s("div",{staticClass:"title p-2 border-b border-gray-200 flex justify-between items-center"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("Open The Register")))]),e._v(" "),e.settings?s("div",[s("a",{staticClass:"hover:bg-red-400 hover:border-red-500 hover:text-white rounded-full border border-gray-200 px-3 text-sm py-1",attrs:{href:e.settings.urls.orders_url}},[e._v(e._s(e.__("Exit To Orders")))])]):e._e()]),e._v(" "),e.hasLoadedRegisters?e._e():s("div",{staticClass:"py-10 flex-auto overflow-y-auto flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"16",border:"4"}})],1),e._v(" "),e.hasLoadedRegisters?s("div",{staticClass:"flex-auto overflow-y-auto"},[s("div",{staticClass:"grid grid-cols-3"},e._l(e.registers,(function(t,r){return s("div",{key:r,staticClass:"border-b border-r flex items-center justify-center flex-col p-3",class:e.getClass(t),on:{click:function(s){return e.selectRegister(t)}}},[s("i",{staticClass:"las la-cash-register text-6xl"}),e._v(" "),s("h3",{staticClass:"text-semibold text-center"},[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"text-sm"},[e._v("("+e._s(t.status_label)+")")])])})),0),e._v(" "),0===e.registers.length?s("div",{staticClass:"p-2 bg-red-400 text-white"},[e._v("\n "+e._s(e.__("Looks like there is no registers. At least one register is required to proceed."))+" — "),s("a",{staticClass:"font-bold hover:underline",attrs:{href:e.settings.urls.registers_url}},[e._v(e._s(e.__("Create Cash Register")))])]):e._e()]):e._e()]:e._e()],2)])}),[],!1,null,null,null).exports;const m={data:function(){return{totalIn:0,totalOut:0,settings:null,settingsSubscription:null,histories:[]}},mounted:function(){var e=this;this.settingsSubscription=POS.settings.subscribe((function(t){e.settings=t})),this.getHistory()},destroyed:function(){this.settingsSubscription.unsubscribe()},methods:{__:l.__,popupResolver:h.Z,closePopup:function(){this.popupResolver({status:"success"})},getHistory:function(){var e=this;i.ih.get("/api/nexopos/v4/cash-registers/session-history/".concat(this.settings.register.id)).subscribe((function(t){e.histories=t,e.totalIn=e.histories.filter((function(e){return["register-opening","register-sale","register-cash-in"].includes(e.action)})).map((function(e){return parseFloat(e.value)})).reduce((function(e,t){return e+t}),0),e.totalOut=e.histories.filter((function(e){return["register-closing","register-refund","register-cash-out"].includes(e.action)})).map((function(e){return parseFloat(e.value)})).reduce((function(e,t){return e+t}),0),console.log(e.totalOut)}))}}};const g=(0,p.Z)(m,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"bg-white shadow-lg w-95vw md:w-4/6-screen lg:w-half overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between items-center",attrs:{id:"header"}},[s("h3",{staticClass:"font-bold"},[e._v(e._s(e.__("Register History")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:e.closePopup}})],1)]),e._v(" "),s("div",{staticClass:"flex w-full"},[s("div",{staticClass:"flex flex-auto"},[s("div",{staticClass:"w-full md:w-1/2 text-right bg-green-400 text-white font-bold text-3xl p-3"},[e._v(e._s(e._f("currency")(e.totalIn)))]),e._v(" "),s("div",{staticClass:"w-full md:w-1/2 text-right bg-red-400 text-white font-bold text-3xl p-3"},[e._v(e._s(e._f("currency")(e.totalOut)))])])]),e._v(" "),s("div",{staticClass:"flex flex-col overflow-y-auto h-120"},[e._l(e.histories,(function(t){return[["register-sale","register-cash-in"].includes(t.action)?s("div",{key:t.id,staticClass:"flex border-b border-green-200 bg-green-100"},[s("div",{staticClass:"p-2 flex-auto"},[e._v(e._s(t.label))]),e._v(" "),s("div",{staticClass:"flex-auto text-right p-2"},[e._v(e._s(e._f("currency")(t.value)))])]):e._e(),e._v(" "),["register-opening"].includes(t.action)?s("div",{key:t.id,staticClass:"flex border-b border-blue-200 bg-blue-100"},[s("div",{staticClass:"p-2 flex-auto"},[e._v(e._s(t.label))]),e._v(" "),s("div",{staticClass:"flex-auto text-right p-2"},[e._v(e._s(e._f("currency")(t.value)))])]):e._e(),e._v(" "),["register-close"].includes(t.action)?s("div",{key:t.id,staticClass:"flex border-b border-teal-200 bg-teal-100"},[s("div",{staticClass:"p-2 flex-auto"},[e._v(e._s(t.label))]),e._v(" "),s("div",{staticClass:"flex-auto text-right p-2"},[e._v(e._s(e._f("currency")(t.value)))])]):e._e(),e._v(" "),["register-refund","register-cash-out"].includes(t.action)?s("div",{key:t.id,staticClass:"flex border-b border-red-200 bg-red-100"},[s("div",{staticClass:"p-2 flex-auto"},[e._v(e._s(t.label))]),e._v(" "),s("div",{staticClass:"flex-auto text-right p-2"},[e._v(e._s(e._f("currency")(t.value)))])]):e._e()]}))],2)])}),[],!1,null,null,null).exports;function y(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function x(e){for(var t=1;t0&&i.kX.error(t.t0.message).subscribe();case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))()},registerInitialQueue:function(){var e=this;POS.initialQueue.push(S(n().mark((function t(){var s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,new Promise((function(t,s){void 0===e.settings.register&&Popup.show(b,{resolve:t,reject:s})}));case 3:return s=t.sent,POS.set("register",s.data.register),e.setRegister(s.data.register),t.abrupt("return",s);case 9:throw t.prev=9,t.t0=t.catch(0),t.t0;case 12:case"end":return t.stop()}}),t,null,[[0,9]])}))))},setButtonName:function(){if(void 0===this.settings.register)return this.name=(0,l.__)("Cash Register");this.name=(0,l.__)("Cash Register : {register}").replace("{register}",this.settings.register.name)},setRegister:function(e){if(void 0!==e){var t=POS.order.getValue();t.register_id=e.id,POS.order.next(t)}}},destroyed:function(){this.orderSubscriber.unsubscribe(),this.settingsSubscriber.unsubscribe()},mounted:function(){var e=this;this.registerInitialQueue(),this.orderSubscriber=POS.order.subscribe((function(t){e.order=t})),this.settingsSubscriber=POS.settings.subscribe((function(t){e.settings=t,e.setRegister(e.settings.register),e.setButtonName()}))}};const V=(0,p.Z)($,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.openRegisterOptions()}}},[s("i",{staticClass:"mr-1 text-xl las la-cash-register"}),e._v(" "),s("span",[e._v(e._s(e.name))])])}),[],!1,null,null,null).exports},5588:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});var r=s(2242),n=(s(1214),s(419)),i=s(8603);const o={name:"ns-pos-customers-button",mounted:function(){this.popupCloser()},methods:{__,popupCloser:i.Z,reset:function(){r.G.show(n.Z,{title:__("Confirm Your Action"),message:__("The current order will be cleared. But not deleted if it's persistent. Would you like to proceed ?"),onAction:function(e){e&&POS.reset()}})}}};const a=(0,s(1900).Z)(o,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.reset()}}},[s("i",{staticClass:"mr-1 text-xl las la-eraser"}),e._v(" "),s("span",[e._v(e._s(e.__("Reset")))])])}),[],!1,null,null,null).exports},2329:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(void 0!==e.$popupParams.onAction&&e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){void 0!==this.$popupParams.onAction&&this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-6/7-screen md:w-4/7-screen lg:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[e.title?s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]):e._e(),e._v(" "),s("p",{staticClass:"py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700 justify-end items-center p-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))])],1)])}),[],!1,null,null,null).exports},419:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[s("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports},4326:(e,t,s)=>{"use strict";s.d(t,{Z:()=>u});var r=s(162),n=s(6386),i=s(2242),o=s(1214);const a={data:function(){return{searchCustomerValue:"",orderSubscription:null,order:{},debounceSearch:null,customers:[],isLoading:!1}},computed:{customerSelected:function(){return!1}},watch:{searchCustomerValue:function(e){var t=this;clearTimeout(this.debounceSearch),this.debounceSearch=setTimeout((function(){t.searchCustomer(e)}),500)}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.resolveIfQueued(!1)})),this.orderSubscription=POS.order.subscribe((function(t){e.order=t})),this.getRecentCustomers(),this.$refs.searchField.focus()},destroyed:function(){this.orderSubscription.unsubscribe()},methods:{__:s(7389).__,resolveIfQueued:n.Z,attemptToChoose:function(){if(1===this.customers.length)return this.selectCustomer(this.customers[0]);r.kX.info("Too many result.").subscribe()},openCustomerHistory:function(e,t){t.stopImmediatePropagation(),this.$popup.close(),i.G.show(o.Z,{customer:e,activeTab:"account-payment"})},selectCustomer:function(e){var t=this;this.customers.forEach((function(e){return e.selected=!1})),e.selected=!0,this.isLoading=!0,POS.selectCustomer(e).then((function(s){t.isLoading=!1,t.resolveIfQueued(e)})).catch((function(e){t.isLoading=!1}))},searchCustomer:function(e){var t=this;r.ih.post("/api/nexopos/v4/customers/search",{search:e}).subscribe((function(e){e.forEach((function(e){return e.selected=!1})),t.customers=e}))},createCustomerWithMatch:function(e){this.resolveIfQueued(!1),i.G.show(o.Z,{name:e})},getRecentCustomers:function(){var e=this;this.isLoading=!0,r.ih.get("/api/nexopos/v4/customers").subscribe((function(t){e.isLoading=!1,t.forEach((function(e){return e.selected=!1})),e.customers=t}),(function(t){e.isLoading=!1}))}}};const u=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"bg-white shadow-xl w-4/5-screen md:w-2/5-screen xl:w-108"},[s("div",{staticClass:"border-b border-gray-200 text-center font-semibold text-2xl text-gray-700 py-2",attrs:{id:"header"}},[s("h2",[e._v(e._s(e.__("Select Customer")))])]),e._v(" "),s("div",{staticClass:"relative"},[s("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between text-gray-600"},[s("span",[e._v("Selected : ")]),e._v(" "),s("div",{staticClass:"flex items-center justify-between"},[s("span",[e._v(e._s(e.order.customer?e.order.customer.name:"N/A"))]),e._v(" "),e.order.customer?s("button",{staticClass:"mx-2 rounded-full h-8 w-8 flex items-center justify-center border border-gray-200 hover:bg-blue-400 hover:text-white hover:border-transparent",on:{click:function(t){return e.openCustomerHistory(e.order.customer,t)}}},[s("i",{staticClass:"las la-eye"})]):e._e()])]),e._v(" "),s("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between text-gray-600"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.searchCustomerValue,expression:"searchCustomerValue"}],ref:"searchField",staticClass:"rounded border-2 border-blue-400 bg-gray-100 w-full p-2",attrs:{placeholder:"Search Customer",type:"text"},domProps:{value:e.searchCustomerValue},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.attemptToChoose()},input:function(t){t.target.composing||(e.searchCustomerValue=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"h-3/5-screen xl:h-2/5-screen overflow-y-auto"},[s("ul",[e.customers&&0===e.customers.length?s("li",{staticClass:"p-2 text-center text-gray-600"},[e._v("\n "+e._s(e.__("No customer match your query..."))+"\n ")]):e._e(),e._v(" "),e.customers&&0===e.customers.length?s("li",{staticClass:"p-2 cursor-pointer text-center text-gray-600",on:{click:function(t){return e.createCustomerWithMatch(e.searchCustomerValue)}}},[s("span",{staticClass:"border-b border-dashed border-blue-400"},[e._v(e._s(e.__("Create a customer")))])]):e._e(),e._v(" "),e._l(e.customers,(function(t){return s("li",{key:t.id,staticClass:"cursor-pointer hover:bg-gray-100 p-2 border-b border-gray-200 text-gray-600 flex justify-between items-center",on:{click:function(s){return e.selectCustomer(t)}}},[s("span",[e._v(e._s(t.name))]),e._v(" "),s("p",{staticClass:"flex items-center"},[t.owe_amount>0?s("span",{staticClass:"text-red-600"},[e._v("-"+e._s(e._f("currency")(t.owe_amount)))]):e._e(),e._v(" "),t.owe_amount>0?s("span",[e._v("/")]):e._e(),e._v(" "),s("span",{staticClass:"text-green-600"},[e._v(e._s(e._f("currency")(t.purchases_amount)))]),e._v(" "),s("button",{staticClass:"mx-2 rounded-full h-8 w-8 flex items-center justify-center border border-gray-200 hover:bg-blue-400 hover:text-white hover:border-transparent",on:{click:function(s){return e.openCustomerHistory(t,s)}}},[s("i",{staticClass:"las la-eye"})])])])}))],2)]),e._v(" "),e.isLoading?s("div",{staticClass:"z-10 top-0 absolute w-full h-full flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"24",border:"8"}})],1):e._e()])])}),[],!1,null,null,null).exports},1214:(e,t,s)=>{"use strict";s.d(t,{Z:()=>f});var r=s(8603),n=s(162),i=s(2242),o=s(4326),a=s(7266),u=s(7389);const c={mounted:function(){this.closeWithOverlayClicked(),this.loadTransactionFields()},data:function(){return{fields:[],isSubmiting:!1,formValidation:new a.Z}},methods:{__:u.__,closeWithOverlayClicked:r.Z,proceed:function(){var e=this,t=this.$popupParams.customer,s=this.formValidation.extractFields(this.fields);this.isSubmiting=!0,n.ih.post("/api/nexopos/v4/customers/".concat(t.id,"/account-history"),s).subscribe((function(t){e.isSubmiting=!1,n.kX.success(t.message).subscribe(),e.$popupParams.resolve(t),e.$popup.close()}),(function(t){e.isSubmiting=!1,n.kX.error(t.message).subscribe(),e.$popupParams.reject(t)}))},close:function(){this.$popup.close(),this.$popupParams.reject(!1)},loadTransactionFields:function(){var e=this;n.ih.get("/api/nexopos/v4/fields/ns.customers-account").subscribe((function(t){e.fields=e.formValidation.createFields(t)}))}}};var l=s(1900);const d=(0,l.Z)(c,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-6/7-screen md:w-5/7-screen lg:w-4/7-screen h-6/7-screen md:h-5/7-screen lg:h-5/7-screen overflow-hidden shadow-lg bg-white flex flex-col relative"},[s("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between items-center"},[s("h2",{staticClass:"font-semibold"},[e._v(e._s(e.__("New Transaction")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto overflow-y-auto"},[0===e.fields.length?s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("ns-spinner")],1):e._e(),e._v(" "),e.fields.length>0?s("div",{staticClass:"p-2"},e._l(e.fields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),s("div",{staticClass:"p-2 bg-white justify-between border-t border-gray-200 flex"},[s("div"),e._v(" "),s("div",{staticClass:"px-1"},[s("div",{staticClass:"-mx-2 flex flex-wrap"},[s("div",{staticClass:"px-1"},[s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.close()}}},[e._v(e._s(e.__("Close")))])],1),e._v(" "),s("div",{staticClass:"px-1"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.proceed()}}},[e._v(e._s(e.__("Proceed")))])],1)])])]),e._v(" "),0===e.isSubmiting?s("div",{staticClass:"h-full w-full absolute flex items-center justify-center",staticStyle:{background:"rgb(0 98 171 / 45%)"}},[s("ns-spinner")],1):e._e()])}),[],!1,null,null,null).exports,p={name:"ns-pos-customers",data:function(){return{activeTab:"create-customers",customer:null,subscription:null,orders:[]}},mounted:function(){var e=this;this.closeWithOverlayClicked(),this.subscription=POS.order.subscribe((function(t){void 0!==t.customer?(e.activeTab="account-payment",e.customer=t.customer,e.loadCustomerOrders(e.customer.id)):void 0!==e.$popupParams.customer?(e.activeTab="account-payment",e.customer=e.$popupParams.customer,e.loadCustomerOrders(e.customer.id)):void 0!==e.$popupParams.name&&setTimeout((function(){}),100)}))},methods:{__:u.__,closeWithOverlayClicked:r.Z,allowedForPayment:function(e){return["unpaid","partially_paid","hold"].includes(e.payment_status)},prefillForm:function(e){void 0!==this.$popupParams.name&&(e.main.value=this.$popupParams.name)},openCustomerSelection:function(){this.$popup.close(),i.G.show(o.Z)},loadCustomerOrders:function(e){var t=this;n.ih.get("/api/nexopos/v4/customers/".concat(e,"/orders")).subscribe((function(e){t.orders=e}))},newTransaction:function(e){new Promise((function(t,s){i.G.show(d,{customer:e,resolve:t,reject:s})})).then((function(t){POS.loadCustomer(e.id).subscribe((function(e){POS.selectCustomer(e)}))}))},handleSavedCustomer:function(e){n.kX.success(e.message).subscribe(),POS.selectCustomer(e.entry),this.$popup.close()}}};const f=(0,l.Z)(p,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"bg-white shadow-lg rounded w-95vw h-95vh lg:w-3/5-screen flex flex-col overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between items-center border-b border-gray-400"},[s("h3",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Customers")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto flex p-2 bg-gray-200 overflow-y-auto"},[s("ns-tabs",{attrs:{active:e.activeTab},on:{active:function(t){e.activeTab=t}}},[s("ns-tabs-item",{attrs:{identifier:"create-customers",label:"New Customer"}},[s("ns-crud-form",{attrs:{"submit-url":"/api/nexopos/v4/crud/ns.customers",src:"/api/nexopos/v4/crud/ns.customers/form-config"},on:{updated:function(t){return e.prefillForm(t)},save:function(t){return e.handleSavedCustomer(t)}},scopedSlots:e._u([{key:"title",fn:function(){return[e._v(e._s(e.__("Customer Name")))]},proxy:!0},{key:"save",fn:function(){return[e._v(e._s(e.__("Save Customer")))]},proxy:!0}])})],1),e._v(" "),s("ns-tabs-item",{staticClass:"flex",staticStyle:{padding:"0!important"},attrs:{identifier:"account-payment",label:e.__("Customer Account")}},[null===e.customer?s("div",{staticClass:"flex-auto w-full flex items-center justify-center flex-col p-4"},[s("i",{staticClass:"lar la-frown text-6xl text-gray-700"}),e._v(" "),s("h3",{staticClass:"font-medium text-2xl text-gray-700"},[e._v(e._s(e.__("No Customer Selected")))]),e._v(" "),s("p",{staticClass:"text-gray-600"},[e._v(e._s(e.__("In order to see a customer account, you need to select one customer.")))]),e._v(" "),s("div",{staticClass:"my-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.openCustomerSelection()}}},[e._v(e._s(e.__("Select Customer")))])],1)]):e._e(),e._v(" "),e.customer?s("div",{staticClass:"flex flex-col flex-auto"},[s("div",{staticClass:"flex-auto p-2 flex flex-col"},[s("div",{staticClass:"-mx-4 flex flex-wrap"},[s("div",{staticClass:"px-4 mb-4 w-full"},[s("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Summary For"))+" : "+e._s(e.customer.name))])]),e._v(" "),s("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[s("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-green-400 to-green-700 p-2 flex flex-col text-white"},[s("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Total Purchases")))]),e._v(" "),s("div",{staticClass:"w-full flex justify-end"},[s("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.purchases_amount)))])])])]),e._v(" "),s("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[s("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-red-500 to-red-700 p-2 text-white"},[s("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Total Owed")))]),e._v(" "),s("div",{staticClass:"w-full flex justify-end"},[s("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.owed_amount)))])])])]),e._v(" "),s("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[s("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-blue-500 to-blue-700 p-2 text-white"},[s("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Account Amount")))]),e._v(" "),s("div",{staticClass:"w-full flex justify-end"},[s("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.account_amount)))])])])])]),e._v(" "),s("div",{staticClass:"flex flex-auto flex-col overflow-hidden"},[s("div",{staticClass:"py-2 w-full"},[s("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Last Purchases")))])]),e._v(" "),s("div",{staticClass:"flex-auto flex-col flex overflow-hidden"},[s("div",{staticClass:"flex-auto overflow-y-auto"},[s("table",{staticClass:"table w-full"},[s("thead",[s("tr",{staticClass:"text-gray-700"},[s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"150"}},[e._v(e._s(e.__("Order")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Total")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Status")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"50"}},[e._v(e._s(e.__("Options")))])])]),e._v(" "),s("tbody",{staticClass:"text-gray-700"},[0===e.orders.length?s("tr",[s("td",{staticClass:"border border-gray-200 p-2 text-center",attrs:{colspan:"4"}},[e._v(e._s(e.__("No orders...")))])]):e._e(),e._v(" "),e._l(e.orders,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(t.code))]),e._v(" "),s("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(e._f("currency")(t.total)))]),e._v(" "),s("td",{staticClass:"border border-gray-200 p-2 text-right"},[e._v(e._s(t.human_status))]),e._v(" "),s("td",{staticClass:"border border-gray-200 p-2 text-center"},[e.allowedForPayment(t)?s("button",{staticClass:"hover:bg-blue-400 hover:border-transparent hover:text-white rounded-full h-8 px-2 flex items-center justify-center border border-gray bg-white"},[s("i",{staticClass:"las la-wallet"}),e._v(" "),s("span",{staticClass:"ml-1"},[e._v(e._s(e.__("Payment")))])]):e._e()])])}))],2)])])])])]),e._v(" "),s("div",{staticClass:"p-2 border-t border-gray-400 flex justify-between"},[s("div"),e._v(" "),s("div",[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.newTransaction(e.customer)}}},[e._v(e._s(e.__("Account Transaction")))])],1)])]):e._e()])],1)],1)])}),[],!1,null,null,null).exports},5480:(e,t,s)=>{"use strict";s.d(t,{Z:()=>d});var r=s(7266),n=s(162),i=s(7389);function o(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function a(e){for(var t=1;t0){var e=nsRawCurrency(this.order.instalments.map((function(e){return parseFloat(e.amount.value)||0})).reduce((function(e,t){return parseFloat(e)+parseFloat(t)})));this.totalPayments=this.order.total-e}else this.totalPayments=0},generatePaymentFields:function(e){var t=this;this.order.instalments=new Array(parseInt(e)).fill("").map((function(e,s){return{date:{type:"date",name:"date",label:"Date",disabled:t.expectedPayment>0&&0===s,value:0===s?ns.date.moment.format("YYYY-MM-DD"):""},amount:{type:"number",name:"amount",label:"Amount",disabled:t.expectedPayment>0&&0===s,value:0===s?t.expectedPayment:0},readonly:{type:"hidden",name:"readonly",value:t.expectedPayment>0&&0===s}}})),this.$forceUpdate(),this.refreshTotalPayments()},close:function(){this.$popupParams.reject({status:"failed",message:(0,i.__)("You must define layaway settings before proceeding.")}),this.$popup.close()},updateOrder:function(){var e=this;if(0===this.order.instalments.length)return n.kX.error((0,i.__)("Please provide instalments before proceeding.")).subscribe();if(this.fields.forEach((function(t){return e.formValidation.validateField(t)})),!this.formValidation.fieldsValid(this.fields))return n.kX.error((0,i.__)("Unable to procee the form is not valid")).subscribe();this.$forceUpdate();var t=this.order.instalments.map((function(e){return{amount:parseFloat(e.amount.value),date:e.date.value}})),s=nsRawCurrency(t.map((function(e){return e.amount})).reduce((function(e,t){return parseFloat(e)+parseFloat(t)})));if(t.filter((function(e){return void 0===e.date||""===e.date})).length>0)return n.kX.error((0,i.__)("One or more instalments has an invalid date.")).subscribe();if(t.filter((function(e){return!(e.amount>0)})).length>0)return n.kX.error((0,i.__)("One or more instalments has an invalid amount.")).subscribe();if(t.filter((function(e){return moment(e.date).isBefore(ns.date.moment.startOf("day"))})).length>0)return n.kX.error((0,i.__)("One or more instalments has a date prior to the current date.")).subscribe();if(s{"use strict";s.d(t,{Z:()=>n});const r={name:"ns-pos-loading-popup"};const n=(0,s(1900).Z)(r,(function(){var e=this.$createElement;return(this._self._c||e)("ns-spinner")}),[],!1,null,null,null).exports},3625:(e,t,s)=>{"use strict";s.d(t,{Z:()=>u});var r=s(7757),n=s.n(r),i=s(6386);s(3661);function o(e,t,s,r,n,i,o){try{var a=e[i](o),u=a.value}catch(e){return void s(e)}a.done?t(u):Promise.resolve(u).then(r,n)}const a={data:function(){return{types:[],typeSubscription:null}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.resolveIfQueued(!1)})),this.typeSubscription=POS.types.subscribe((function(t){e.types=t}))},destroyed:function(){this.typeSubscription.unsubscribe()},methods:{__:s(7389).__,resolveIfQueued:i.Z,select:function(e){var t,s=this;return(t=n().mark((function t(){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return Object.values(s.types).forEach((function(e){return e.selected=!1})),s.types[e].selected=!0,r=s.types[e],POS.types.next(s.types),t.next=6,POS.triggerOrderTypeSelection(r);case 6:s.resolveIfQueued(r);case 7:case"end":return t.stop()}}),t)})),function(){var e=this,s=arguments;return new Promise((function(r,n){var i=t.apply(e,s);function a(e){o(i,r,n,a,u,"next",e)}function u(e){o(i,r,n,a,u,"throw",e)}a(void 0)}))})()}}};const u=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"h-full w-4/5-screen md:w-2/5-screen lg:w-2/5-screen xl:w-2/6-screen bg-white shadow-lg"},[s("div",{staticClass:"h-16 flex justify-center items-center",attrs:{id:"header"}},[s("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Define The Order Type")))])]),e._v(" "),s("div",{staticClass:"grid grid-flow-row grid-cols-2 grid-rows-2"},e._l(e.types,(function(t){return s("div",{key:t.identifier,staticClass:"hover:bg-blue-100 h-56 flex items-center justify-center flex-col cursor-pointer border border-gray-200",class:t.selected?"bg-blue-100":"",on:{click:function(s){return e.select(t.identifier)}}},[s("img",{staticClass:"w-32 h-32",attrs:{src:t.icon,alt:""}}),e._v(" "),s("h4",{staticClass:"font-semibold text-xl my-2 text-gray-700"},[e._v(e._s(t.label))])])})),0)])}),[],!1,null,null,null).exports},9531:(e,t,s)=>{"use strict";s.d(t,{Z:()=>u});var r=s(162),n=s(7389);function i(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);sparseFloat(i.$quantities().quantity)-a)return r.kX.error((0,n.__)("Unable to add the product, there is not enough stock. Remaining %s").replace("%s",i.$quantities().quantity-a)).subscribe()}this.resolve({quantity:o})}else"backspace"===e.identifier?this.allSelected?(this.finalValue=0,this.allSelected=!1):(this.finalValue=this.finalValue.toString(),this.finalValue=this.finalValue.substr(0,this.finalValue.length-1)||0):this.allSelected?(this.finalValue=e.value,this.finalValue=parseFloat(this.finalValue),this.allSelected=!1):(this.finalValue+=""+e.value,this.finalValue=parseFloat(this.finalValue))},resolve:function(e){this.$popupParams.resolve(e),this.$popup.close()}}};const u=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"bg-white shadow min-h-2/5-screen w-3/4-screen md:w-3/5-screen lg:w-2/5-screen xl:w-2/5-screen relative"},[e.isLoading?s("div",{staticClass:"flex w-full h-full absolute top-O left-0 items-center justify-center",staticStyle:{background:"rgb(202 202 202 / 49%)"},attrs:{id:"loading-overlay"}},[s("ns-spinner")],1):e._e(),e._v(" "),s("div",{staticClass:"flex-shrink-0 py-2 border-b border-gray-200"},[s("h1",{staticClass:"text-xl font-bold text-gray-700 text-center"},[e._v(e._s(e.__("Define Quantity")))])]),e._v(" "),s("div",{staticClass:"h-16 border-b bg-gray-800 text-white border-gray-200 flex items-center justify-center",attrs:{id:"screen"}},[s("h1",{staticClass:"font-bold text-3xl"},[e._v(e._s(e.finalValue))])]),e._v(" "),s("div",{staticClass:"grid grid-flow-row grid-cols-3 grid-rows-3",attrs:{id:"numpad"}},e._l(e.keys,(function(t,r){return s("div",{key:r,staticClass:"hover:bg-blue-400 hover:text-white hover:border-blue-600 text-xl font-bold border border-gray-200 h-24 flex items-center justify-center cursor-pointer",on:{click:function(s){return e.inputValue(t)}}},[void 0!==t.value?s("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?s("i",{staticClass:"las",class:t.icon}):e._e()])})),0)])}),[],!1,null,null,null).exports},3661:(e,t,s)=>{"use strict";s.d(t,{Z:()=>l});var r=s(162),n=s(6386),i=s(7266);function o(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function a(e){for(var t=1;t{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:"",input:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.input=this.$popupParams.input||"",this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.reject(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e?this.input:e),this.$popup.close()},reject:function(e){this.$popupParams.reject(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-5/7-screen md:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-2"},[s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"w-full md:mx-auto md:w-2/3 py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"p-2"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.input,expression:"input"}],staticClass:"text-gray-700 w-full border-2 p-2 border-blue-400",attrs:{name:"",id:"",cols:"30",rows:"10"},domProps:{value:e.input},on:{input:function(t){t.target.composing||(e.input=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.reject(!1)}}},[e._v(e._s(e.__("Cancel")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=6707,e(e.s=t);var t}));e.O()}]); +(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[443],{162:(e,t,s)=>{"use strict";s.d(t,{l:()=>I,kq:()=>X,ih:()=>L,kX:()=>N});var r=s(6486),n=s(9669),i=s(2181),o=s(8345),a=s(9624),u=s(9248),c=s(230);function l(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,s)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,s)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var s=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=X.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:r}),new c.y((function(i){s._client[e](t,r,Object.assign(Object.assign({},s._client.defaults[e]),n)).then((function(e){s._lastRequestData=e,i.next(e.data),i.complete(),s._subject.next({identifier:"async.stop"})})).catch((function(e){var t;i.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),s._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,s=e.value;this._subject.next({identifier:t,value:s})}}])&&l(t.prototype,s),r&&l(t,r),e}(),p=s(3);function f(e,t){for(var s=0;s=1e3){for(var s,r=Math.floor((""+e).length/3),n=2;n>=1;n--){if(((s=parseFloat((0!=r?e/Math.pow(1e3,r):e).toPrecision(n)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}s%1!=0&&(s=s.toFixed(1)),t=s+["","k","m","b","t"][r]}return t})),O=s(1356),S=s(9698);function $(e,t){for(var s=0;s0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&q(t.prototype,s),r&&q(t,r),e}()),U=new m({sidebar:["xs","sm","md"].includes(W.breakpoint)?"hidden":"visible"});L.defineClient(n),window.nsEvent=I,window.nsHttpClient=L,window.nsSnackBar=N,window.nsCurrency=O.W,window.nsTruncate=S.b,window.nsRawCurrency=O.f,window.nsAbbreviate=j,window.nsState=U,window.nsUrl=z,window.nsScreen=W,window.ChartJS=i,window.EventEmitter=h,window.Popup=x.G,window.RxJS=g,window.FormValidation=C.Z,window.nsCrudHandler=Q},1356:(e,t,s)=>{"use strict";s.d(t,{W:()=>c,f:()=>l});var r=s(538),n=s(2077),i=s.n(n),o=s(6740),a=s.n(o),u=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),c=r.default.filter("currency",(function(e){var t,s,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===r){var n={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};s=a()(e,n).format()}else s=i()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(s).concat("after"===ns.currency.ns_currency_position?t:"")})),l=function(e){var t="0.".concat(u);return parseFloat(i()(e).format(t))}},9698:(e,t,s)=>{"use strict";s.d(t,{b:()=>r});var r=s(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,s)=>{"use strict";function r(e,t){for(var s=0;sn});var n=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,s,n;return t=e,(s=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var s in e.tabs){var r=[],n=this.validateFieldsErrors(e.tabs[s].fields);n.length>0&&r.push(n),e.tabs[s].errors=r.flat(),t.push(r.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var s in e)0===t&&(e[s].active=!0),e[s].active=void 0!==e[s].active&&e[s].active,e[s].fields=this.createFields(e[s].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(s){t.fieldPassCheck(e,s)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var s in e.tabs)void 0===t[s]&&(t[s]={}),t[s]=this.extractFields(e.tabs[s].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var s=function(s){var r=s.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===r.length&&e.tabs[r[0]].fields.forEach((function(e){e.name===r[1]&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))})),s===e.main.name&&t.errors[s].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var r in t.errors)s(r)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var s=function(s){e.forEach((function(e){e.name===s&&t.errors[s].forEach((function(t){var s={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(s)}))}))};for(var r in t.errors)s(r)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){s.identifier===t.identifier&&!0===s.invalid&&e.errors.splice(r,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(s,r){!0===s[t.identifier]&&e.errors.splice(r,1)}))}return e}}])&&r(t.prototype,s),n&&r(t,n),e}()},7389:(e,t,s)=>{"use strict";s.d(t,{__:()=>r,c:()=>n});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},n=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,s)=>{"use strict";function r(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}s.d(t,{Z:()=>r})},6386:(e,t,s)=>{"use strict";function r(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}s.d(t,{Z:()=>r})},2242:(e,t,s)=>{"use strict";s.d(t,{G:()=>o});var r=s(9248);function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{};if(n(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var s=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[s-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new r.x}var t,s,o;return t=e,o=[{key:"show",value:function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=new e(r);return n.open(t,s),n}}],(s=[{key:"open",value:function(e){var t,s,r,n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",o.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){n.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var a=Vue.extend(e);this.instance=new a({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=i,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&i(t.prototype,s),o&&i(t,o),e}()},9624:(e,t,s)=>{"use strict";s.d(t,{S:()=>i});var r=s(3260);function n(e,t){for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return r.Observable.create((function(r){var i=s.__createSnack({message:e,label:t,type:n.type}),o=i.buttonNode,a=(i.textNode,i.snackWrapper,i.sampleSnack);o.addEventListener("click",(function(e){r.onNext(o),r.onCompleted(),a.remove()})),s.__startTimer(n.duration,a)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},s),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var s,r=function(){e>0&&!1!==e&&(s=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(s)})),t.addEventListener("mouseleave",(function(){r()})),r()}},{key:"__createSnack",value:function(e){var t=e.message,s=e.label,r=e.type,n=void 0===r?"info":r,i=document.getElementById("snack-wrapper")||document.createElement("div"),o=document.createElement("div"),a=document.createElement("p"),u=document.createElement("div"),c=document.createElement("button"),l="",d="";switch(n){case"info":l="text-white hover:bg-blue-400 bg-blue-500",d="bg-gray-900 text-white";break;case"error":l="text-red-700 hover:bg-white bg-white",d="bg-red-500 text-white";break;case"success":l="text-green-700 hover:bg-white bg-white",d="bg-green-500 text-white"}return a.textContent=t,s&&(c.textContent=s,c.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(l)),u.appendChild(c)),o.appendChild(a),o.appendChild(u),o.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(d)),i.appendChild(o),null===document.getElementById("snack-wrapper")&&(i.setAttribute("id","snack-wrapper"),i.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(i)),{snackWrapper:i,sampleSnack:o,buttonsWrapper:u,buttonNode:c,textNode:a}}}])&&n(t.prototype,s),i&&n(t,i),e}()},279:(e,t,s)=>{"use strict";s.d(t,{$:()=>u});var r=s(162),n=s(7389),i=s(2242),o=s(9531);function a(e,t){for(var s=0;sparseFloat(e.$quantities().quantity)-l)return r.kX.error((0,n.__)("Unable to add the product, there is not enough stock. Remaining %s").replace("%s",(e.$quantities().quantity-l).toString())).subscribe()}s({quantity:1})}else u.open(o.Z,{resolve:s,reject:a,product:c,data:e})}))}}])&&a(t.prototype,s),u&&a(t,u),e}()},467:(e,t,s)=>{"use strict";var r=s(7757),n=s.n(r),i=s(279),o=s(2242),a=s(162),u=s(7389);const c={data:function(){return{unitsQuantities:[],loadsUnits:!1,options:null,optionsSubscriber:null}},beforeDestroy:function(){this.optionsSubscriber.unsubscribe()},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.reject(!1),e.$popup.close())})),this.optionsSubscriber=POS.options.subscribe((function(t){e.options=t})),void 0!==this.$popupParams.product.$original().selectedUnitQuantity?this.selectUnit(this.$popupParams.product.$original().selectedUnitQuantity):void 0!==this.$popupParams.product.$original().unit_quantities&&1===this.$popupParams.product.$original().unit_quantities.length?this.selectUnit(this.$popupParams.product.$original().unit_quantities[0]):(this.loadsUnits=!0,this.loadUnits())},methods:{__:u.__,displayRightPrice:function(e){return POS.getSalePrice(e)},loadUnits:function(){var e=this;a.ih.get("/api/nexopos/v4/products/".concat(this.$popupParams.product.$original().id,"/units/quantities")).subscribe((function(t){if(0===t.length)return e.$popup.close(),a.kX.error((0,u.__)("This product doesn't have any unit defined for selling.")).subscribe();e.unitsQuantities=t,1===e.unitsQuantities.length&&e.selectUnit(e.unitsQuantities[0])}))},selectUnit:function(e){this.$popupParams.resolve({unit_quantity_id:e.id,unit_name:e.unit.name,$quantities:function(){return e}}),this.$popup.close()}}};const l=(0,s(1900).Z)(c,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"h-full w-full flex items-center justify-center"},[e.unitsQuantities.length>0?s("div",{staticClass:"bg-white w-2/3-screen lg:w-1/3-screen overflow-hidden flex flex-col"},[s("div",{staticClass:"h-16 flex justify-center items-center flex-shrink-0",attrs:{id:"header"}},[s("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Choose Selling Unit")))])]),e._v(" "),e.unitsQuantities.length>0?s("div",{staticClass:"grid grid-flow-row grid-cols-2 overflow-y-auto"},e._l(e.unitsQuantities,(function(t){return s("div",{key:t.id,staticClass:"hover:bg-gray-200 cursor-pointer border flex-shrink-0 border-gray-200 flex flex-col items-center justify-center",on:{click:function(s){return e.selectUnit(t)}}},[s("div",{staticClass:"h-40 w-full flex items-center justify-center overflow-hidden"},[t.preview_url?s("img",{staticClass:"object-cover h-full",attrs:{src:t.preview_url,alt:t.unit.name}}):e._e(),e._v(" "),t.preview_url?e._e():s("div",{staticClass:"h-40 flex items-center justify-center"},[s("i",{staticClass:"las la-image text-gray-600 text-6xl"})])]),e._v(" "),s("div",{staticClass:"h-0 w-full"},[s("div",{staticClass:"relative w-full flex items-center justify-center -top-10 h-20 py-2 flex-col",staticStyle:{background:"rgb(255 255 255 / 73%)"}},[s("h3",{staticClass:"font-bold text-gray-700 py-2 text-center"},[e._v(e._s(t.unit.name)+" ("+e._s(t.quantity)+")")]),e._v(" "),s("p",{staticClass:"text-sm font-medium text-gray-600"},[e._v(e._s(e._f("currency")(e.displayRightPrice(t))))])])])])})),0):e._e()]):e._e(),e._v(" "),0===e.unitsQuantities.length?s("div",{staticClass:"h-56 flex items-center justify-center"},[s("ns-spinner")],1):e._e()])}),[],!1,null,null,null).exports;function d(e,t){for(var s=0;s=544&&window.innerWidth<768?this.screenIs="sm":window.innerWidth>=768&&window.innerWidth<992?this.screenIs="md":window.innerWidth>=992&&window.innerWidth<1200?this.screenIs="lg":window.innerWidth>=1200&&(this.screenIs="xl")}},{key:"is",value:function(e){return void 0===e?this.screenIs:this.screenIs===e}}])&&v(t.prototype,s),r&&v(t,r),e}(),m=s(381),b=s.n(m);function g(e,t){for(var s=0;s0){var r=e.order.getValue();r.type=s[0],e.order.next(r)}})),window.addEventListener("resize",(function(){e._responsive.detect(),e.defineCurrentScreen()})),window.onbeforeunload=function(){if(e.products.getValue().length>0)return(0,u.__)("Some products has been added to the cart. Would youl ike to discard this order ?")},this.defineCurrentScreen()}},{key:"getSalePrice",value:function(e,t){switch(t.tax_type){case"inclusive":return e.incl_tax_sale_price;default:return e.excl_tax_sale_price}}},{key:"getCustomPrice",value:function(e,t){switch(t.tax_type){case"inclusive":return e.incl_tax_custom_price;default:return e.excl_tax_custom_price}}},{key:"getWholesalePrice",value:function(e,t){switch(t.tax_type){case"inclusive":return e.incl_tax_wholesale_price;default:return e.excl_tax_wholesale_price}}},{key:"setHoldPopupEnabled",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this._holdPopupEnabled=e}},{key:"getHoldPopupEnabled",value:function(){return this._holdPopupEnabled}},{key:"processInitialQueue",value:function(){return y(this,void 0,void 0,n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=n().keys(this._initialQueue);case 1:if((e.t1=e.t0()).done){e.next=14;break}return t=e.t1.value,e.prev=3,e.next=6,this._initialQueue[t]();case 6:e.sent,e.next=12;break;case 9:e.prev=9,e.t2=e.catch(3),a.kX.error(e.t2.message).subscribe();case 12:e.next=1;break;case 14:case"end":return e.stop()}}),e,this,[[3,9]])})))}},{key:"removeCoupon",value:function(e){var t=this.order.getValue(),s=t.coupons,r=s.indexOf(e);s.splice(r,1),t.coupons=s,this.order.next(t)}},{key:"pushCoupon",value:function(e){var t=this.order.getValue();t.coupons.forEach((function(t){if(t.code===e.code){var s=(0,u.__)("This coupon is already added to the cart");throw a.kX.error(s).subscribe(),s}})),t.coupons.push(e),this.order.next(t),this.refreshCart()}},{key:"header",get:function(){var e={buttons:{NsPosDashboardButton:x,NsPosPendingOrderButton:w,NsPosOrderTypeButton:C,NsPosCustomersButton:k,NsPosResetButton:P}};return"yes"===this.options.getValue().ns_pos_registers_enabled&&(e.buttons.NsPosCashRegister=j),a.kq.doAction("ns-pos-header",e),e}},{key:"defineOptions",value:function(e){this._options.next(e)}},{key:"defineCurrentScreen",value:function(){this._visibleSection.next(["xs","sm"].includes(this._responsive.is())?"grid":"both"),this._screen.next(this._responsive.is())}},{key:"changeVisibleSection",value:function(e){["both","cart","grid"].includes(e)&&(["cart","both"].includes(e)&&this.refreshCart(),this._visibleSection.next(e))}},{key:"addPayment",value:function(e){if(e.value>0){var t=this._order.getValue();return t.payments.push(e),this._order.next(t),this.computePaid()}return a.kX.error("Invalid amount.").subscribe()}},{key:"removePayment",value:function(e){if(void 0!==e.id)return a.kX.error("Unable to delete a payment attached to the order").subscribe();var t=this._order.getValue(),s=t.payments.indexOf(e);t.payments.splice(s,1),this._order.next(t),a.l.emit({identifier:"ns.pos.remove-payment",value:e}),this.updateCustomerAccount(e),this.computePaid()}},{key:"updateCustomerAccount",value:function(e){if("account-payment"===e.identifier){var t=this.order.getValue().customer;t.account_amount+=e.value,this.selectCustomer(t)}}},{key:"getNetPrice",value:function(e,t,s){return"inclusive"===s?e/(t+100)*100:"exclusive"===s?e/100*(t+100):void 0}},{key:"getVatValue",value:function(e,t,s){return"inclusive"===s?e-this.getNetPrice(e,t,s):"exclusive"===s?this.getNetPrice(e,t,s)-e:void 0}},{key:"computeTaxes",value:function(){var e=this;return new Promise((function(t,s){var r=e.order.getValue();if(void 0===(r=e.computeProductsTaxes(r)).tax_group_id||null===r.tax_group_id)return s(!1);var n=r.tax_groups;return n&&void 0!==n[r.tax_group_id]?(r.taxes=r.taxes.map((function(t){return t.tax_value=e.getVatValue(r.subtotal,t.rate,r.tax_type),t})),r=e.computeOrderTaxes(r),t({status:"success",data:{tax:n[r.tax_group_id],order:r}})):null!==r.tax_group_id&&r.tax_group_id.toString().length>0?void a.ih.get("/api/nexopos/v4/taxes/groups/".concat(r.tax_group_id)).subscribe({next:function(s){return r.tax_groups=r.tax_groups||[],r.taxes=s.taxes.map((function(t){return{tax_id:t.id,tax_name:t.name,rate:parseFloat(t.rate),tax_value:e.getVatValue(r.subtotal,t.rate,r.tax_type)}})),r.tax_groups[s.id]=s,r=e.computeOrderTaxes(r),t({status:"success",data:{tax:s,order:r}})},error:function(e){return s(e)}}):s({status:"failed",message:(0,u.__)("No tax group assigned to the order")})}))}},{key:"computeOrderTaxes",value:function(e){var t=this.options.getValue().ns_pos_vat;return["flat_vat","variable_vat","products_variable_vat"].includes(t)&&e.taxes&&e.taxes.length>0&&(e.tax_value+=e.taxes.map((function(e){return e.tax_value})).reduce((function(e,t){return e+t}))),e.tax_value+=e.product_taxes,e}},{key:"computeProductsTaxes",value:function(e){var t=this.products.getValue(),s=t.map((function(e){return e.tax_value}));e.product_taxes=0;var r=this.options.getValue().ns_pos_vat;return["products_vat","products_flat_vat","products_variable_vat"].includes(r)&&s.length>0&&(e.product_taxes+=s.reduce((function(e,t){return e+t}))),e.products=t,e.total_products=t.length,e}},{key:"canProceedAsLaidAway",value:function(e){var t=this;return new Promise((function(s,r){return y(t,void 0,void 0,n().mark((function t(){var i,a,c,l,d,p,f,v=this;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=e.customer.group.minimal_credit_payment,a=(e.total*i/100).toFixed(ns.currency.ns_currency_precision),a=parseFloat(a),t.prev=3,t.next=6,new Promise((function(t,s){o.G.show(T,{order:e,reject:s,resolve:t})}));case 6:if(!(0===(c=t.sent).instalments.length&&c.tendered=a&&b()(e.date).isSame(ns.date.moment.startOf("day"),"day")}))).length){t.next=17;break}return t.abrupt("return",s({status:"success",message:(0,u.__)("Layaway defined"),data:{order:c}}));case 17:f=p[0].amount,o.G.show(S,{title:(0,u.__)("Confirm Payment"),message:(0,u.__)('An instalment has been detected. Would you like to add as first payment {amount} for the selected payment type "{paymentType}"?').replace("{amount}",h.default.filter("currency")(f)).replace("{paymentType}",d.label),onAction:function(e){var t={identifier:d.identifier,label:d.label,value:f,readonly:!1,selected:!0};v.addPayment(t),p[0].paid=!0,s({status:"success",message:(0,u.__)("Layaway defined"),data:{order:c}})}});case 19:t.next=24;break;case 21:return t.prev=21,t.t0=t.catch(3),t.abrupt("return",r(t.t0));case 24:case"end":return t.stop()}}),t,this,[[3,21]])})))}))}},{key:"submitOrder",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise((function(s,r){return y(e,void 0,void 0,n().mark((function e(){var i,o,c,l,d,p=this;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=Object.assign(Object.assign({},this.order.getValue()),t),o=i.customer.group.minimal_credit_payment,"hold"===i.payment_status){e.next=20;break}if(!(0===i.payments.length||i.total>i.tendered)){e.next=20;break}if("no"!==this.options.getValue().ns_orders_allow_partial){e.next=9;break}return c=(0,u.__)("Partially paid orders are disabled."),e.abrupt("return",r({status:"failed",message:c}));case 9:if(!(o>=0)){e.next=20;break}return e.prev=10,e.next=13,this.canProceedAsLaidAway(i);case 13:l=e.sent,i=l.data.order,e.next=20;break;case 17:return e.prev=17,e.t0=e.catch(10),e.abrupt("return",r(e.t0));case 20:if(this._isSubmitting){e.next=24;break}return d=void 0!==i.id?"put":"post",this._isSubmitting=!0,e.abrupt("return",a.ih[d]("/api/nexopos/v4/orders".concat(void 0!==i.id?"/"+i.id:""),i).subscribe({next:function(e){s(e),p.reset(),a.kq.doAction("ns-order-submit-successful",e),p._isSubmitting=!1;var t=p.options.getValue().ns_pos_complete_sale_audio;t.length>0&&new Audio(t).play()},error:function(e){p._isSubmitting=!1,r(e),a.kq.doAction("ns-order-submit-failed",e)}}));case 24:return e.abrupt("return",r({status:"failed",message:(0,u.__)("An order is currently being processed.")}));case 25:case"end":return e.stop()}}),e,this,[[10,17]])})))}))}},{key:"loadOrder",value:function(e){var t=this;return new Promise((function(s,r){a.ih.get("/api/nexopos/v4/orders/".concat(e,"/pos")).subscribe((function(e){return y(t,void 0,void 0,n().mark((function t(){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=Object.assign(Object.assign({},this.defaultOrder()),e),r=e.products.map((function(e){return e.$original=function(){return e.product},e.$quantities=function(){return e.product.unit_quantities.filter((function(t){return t.id===e.unit_quantity_id}))[0]},e})),e.type=Object.values(this.types.getValue()).filter((function(t){return t.identifier===e.type}))[0],e.addresses={shipping:e.shipping_address,billing:e.billing_address},delete e.shipping_address,delete e.billing_address,this.buildOrder(e),this.buildProducts(r),t.next=10,this.selectCustomer(e.customer);case 10:s(e);case 11:case"end":return t.stop()}}),t,this)})))}),(function(e){return r(e)}))}))}},{key:"buildOrder",value:function(e){this.order.next(e)}},{key:"buildProducts",value:function(e){this.refreshProducts(e),this.products.next(e)}},{key:"printOrder",value:function(e){var t=this.options.getValue();if("disabled"===t.ns_pos_printing_enabled_for)return!1;switch(t.ns_pos_printing_gateway){case"default":this.processRegularPrinting(e);break;default:this.processCustomPrinting(e,t.ns_pos_printing_gateway)}}},{key:"processCustomPrinting",value:function(e,t){a.kq.applyFilters("ns-order-custom-print",{printed:!1,order_id:e,gateway:t}).printed||a.kX.error((0,u.__)("Unsupported print gateway.")).subscribe()}},{key:"processRegularPrinting",value:function(e){var t=document.querySelector("printing-section");t&&t.remove();var s=document.createElement("iframe");s.id="printing-section",s.className="hidden",s.src=this.settings.getValue().urls.printing_url.replace("{id}",e),document.body.appendChild(s)}},{key:"computePaid",value:function(){var e=this._order.getValue();e.tendered=0,e.payments.length>0&&(e.tendered=e.payments.map((function(e){return e.value})).reduce((function(e,t){return t+e}))),e.tendered>=e.total?e.payment_status="paid":e.tendered>0&&e.tendered0&&(t.products.filter((function(t){return e.products.map((function(e){return e.product_id})).includes(t.product_id)})).length>0||-1!==s.indexOf(e)||s.push(e)),e.categories.length>0&&(t.products.filter((function(t){return e.categories.map((function(e){return e.category_id})).includes(t.$original().category_id)})).length>0||-1!==s.indexOf(e)||s.push(e))})),s.forEach((function(t){a.kX.error((0,u.__)('The coupons "%s" has been removed from the cart, as it\'s required conditions are no more meet.').replace("%s",t.name),(0,u.__)("Okay"),{duration:6e3}).subscribe(),e.removeCoupon(t)}))}},{key:"refreshCart",value:function(){return y(this,void 0,void 0,n().mark((function e(){var t,s,r,i,o,c,l,d,p;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.checkCart(),t=this.products.getValue(),s=this.order.getValue(),(r=t.map((function(e){return e.total_price}))).length>0?s.subtotal=r.reduce((function(e,t){return e+t})):s.subtotal=0,i=s.coupons.map((function(e){return"percentage_discount"===e.type?(e.value=s.subtotal*e.discount_value/100,e.value):(e.value=e.discount_value,e.value)})),s.total_coupons=0,i.length>0&&(s.total_coupons=i.reduce((function(e,t){return e+t}))),"percentage"===s.discount_type&&(s.discount=s.discount_percentage*s.subtotal/100),s.discount>s.subtotal&&0===s.total_coupons&&(s.discount=s.subtotal,a.kX.info("The discount has been set to the cart subtotal").subscribe()),s.tax_value=0,this.order.next(s),e.prev=12,e.next=15,this.computeTaxes();case 15:o=e.sent,s=o.data.order,e.next=22;break;case 19:e.prev=19,e.t0=e.catch(12),!1!==e.t0&&void 0!==e.t0.message&&a.kX.error(e.t0.message||(0,u.__)("An unexpected error has occured while fecthing taxes."),(0,u.__)("OKAY"),{duration:0}).subscribe();case 22:(c=t.map((function(e){return"inclusive"===e.tax_type?e.tax_value:0}))).length>0&&c.reduce((function(e,t){return e+t})),l=s.tax_type,d=this.options.getValue().ns_pos_vat,p=0,(["flat_vat","variable_vat"].includes(d)||["products_vat","products_flat_vat","products_variable_vat"].includes(d))&&(p=s.tax_value),s.total="exclusive"===l?+(s.subtotal+(s.shipping||0)+p-s.discount-s.total_coupons).toFixed(ns.currency.ns_currency_precision):+(s.subtotal+(s.shipping||0)-s.discount-s.total_coupons).toFixed(ns.currency.ns_currency_precision),this.order.next(s),a.kq.doAction("ns-cart-after-refreshed",s);case 32:case"end":return e.stop()}}),e,this,[[12,19]])})))}},{key:"getStockUsage",value:function(e,t){var s=this._products.getValue().filter((function(s){return s.product_id===e&&s.unit_quantity_id===t})).map((function(e){return e.quantity}));return s.length>0?s.reduce((function(e,t){return e+t})):0}},{key:"addToCart",value:function(e){return y(this,void 0,void 0,n().mark((function t(){var s,r,i,o,a,u,c;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(s=new Object,r={product_id:e.id||0,name:e.name,discount_type:"percentage",discount:0,discount_percentage:0,quantity:e.quantity||0,tax_group_id:e.tax_group_id,tax_type:e.tax_type||void 0,tax_value:0,unit_id:e.unit_id||0,unit_price:e.unit_price||0,unit_name:e.unit_name||"",total_price:0,mode:"normal",$original:e.$original||function(){return e},$quantities:e.$quantities||void 0},this._processingAddQueue=!0,0===r.product_id){t.next=22;break}t.t0=n().keys(this.addToCartQueue);case 5:if((t.t1=t.t0()).done){t.next=22;break}return i=t.t1.value,t.prev=7,o=new this.addToCartQueue[i](r),t.next=11,o.run(s);case 11:a=t.sent,s=Object.assign(Object.assign({},s),a),t.next=20;break;case 15:if(t.prev=15,t.t2=t.catch(7),!1!==t.t2){t.next=20;break}return this._processingAddQueue=!1,t.abrupt("return",!1);case 20:t.next=5;break;case 22:this._processingAddQueue=!1,r=Object.assign(Object.assign({},r),s),(u=this._products.getValue()).unshift(r),this.refreshProducts(u),this._products.next(u),(c=this.options.getValue().ns_pos_new_item_audio).length>0&&new Audio(c).play();case 30:case"end":return t.stop()}}),t,this,[[7,15]])})))}},{key:"defineTypes",value:function(e){this._types.next(e)}},{key:"removeProduct",value:function(e){var t=this._products.getValue(),s=t.indexOf(e);t.splice(s,1),this._products.next(t)}},{key:"updateProduct",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this._products.getValue();s=null===s?r.indexOf(e):s,h.default.set(r,s,Object.assign(Object.assign({},e),t)),this.refreshProducts(r),this._products.next(r)}},{key:"refreshProducts",value:function(e){var t=this;e.forEach((function(e){t.computeProduct(e)}))}},{key:"computeProductTax",value:function(e){switch(console.log(e.mode),e.mode){case"custom":return this.computeCustomProductTax(e);case"normal":return this.computeNormalProductTax(e);case"wholesale":return this.computeWholesaleProductTax(e);default:return e}}},{key:"proceedProductTaxComputation",value:function(e,t){var s=this,r=e.$original(),n=r.tax_group,i=0,o=0,a=0;if(void 0!==n.taxes){var u=0;n.taxes.length>0&&(u=n.taxes.map((function(e){return e.rate})).reduce((function(e,t){return e+t})));var c=this.getNetPrice(t,u,r.tax_type);switch(r.tax_type){case"inclusive":i=c,a=t;break;case"exclusive":i=t,a=c}var l=n.taxes.map((function(e){return s.getVatValue(t,e.rate,r.tax_type)}));l.length>0&&(o=l.reduce((function(e,t){return e+t})))}return{price_without_tax:i,tax_value:o,price_with_tax:a}}},{key:"computeCustomProductTax",value:function(e){e.$original();var t=e.$quantities(),s=this.proceedProductTaxComputation(e,t.custom_price_edit);return t.excl_tax_custom_price=s.price_without_tax,t.incl_tax_custom_price=s.price_with_tax,t.custom_price_tax=s.tax_value,e.$quantities=function(){return t},e}},{key:"computeNormalProductTax",value:function(e){e.$original();var t=e.$quantities(),s=this.proceedProductTaxComputation(e,t.sale_price_edit);return t.excl_tax_sale_price=s.price_without_tax,t.incl_tax_sale_price=s.price_with_tax,t.sale_price_tax=s.tax_value,e.$quantities=function(){return t},e}},{key:"computeWholesaleProductTax",value:function(e){e.$original();var t=e.$quantities(),s=this.proceedProductTaxComputation(e,t.wholesale_price_edit);return t.excl_tax_wholesale_price=s.price_without_tax,t.incl_tax_wholesale_price=s.price_with_tax,t.wholesale_price_tax=s.tax_value,e.$quantities=function(){return t},e}},{key:"computeProduct",value:function(e){"normal"===e.mode?(e.unit_price=this.getSalePrice(e.$quantities(),e.$original()),e.tax_value=e.$quantities().sale_price_tax*e.quantity):"wholesale"===e.mode&&(e.unit_price=this.getWholesalePrice(e.$quantities(),e.$original()),e.tax_value=e.$quantities().wholesale_price_tax*e.quantity),"custom"===e.mode&&(e.unit_price=this.getCustomPrice(e.$quantities(),e.$original()),e.tax_value=e.$quantities().custom_price_tax*e.quantity),["flat","percentage"].includes(e.discount_type)&&"percentage"===e.discount_type&&(e.discount=e.unit_price*e.discount_percentage/100*e.quantity),e.total_price=e.unit_price*e.quantity-e.discount,a.kq.doAction("ns-after-product-computed",e)}},{key:"loadCustomer",value:function(e){return a.ih.get("/api/nexopos/v4/customers/".concat(e))}},{key:"defineSettings",value:function(e){this._settings.next(e)}},{key:"voidOrder",value:function(e){var t=this;void 0!==e.id?["hold"].includes(e.payment_status)?o.G.show(S,{title:"Order Deletion",message:"The current order will be deleted as no payment has been made so far.",onAction:function(s){s&&a.ih.delete("/api/nexopos/v4/orders/".concat(e.id)).subscribe((function(e){a.kX.success(e.message).subscribe(),t.reset()}),(function(e){return a.kX.error(e.message).subscribe()}))}}):o.G.show($,{title:"Void The Order",message:"The current order will be void. This will cancel the transaction, but the order won't be deleted. Further details about the operation will be tracked on the report. Consider providing the reason of this operation.",onAction:function(s){!1!==s&&a.ih.post("/api/nexopos/v4/orders/".concat(e.id,"/void"),{reason:s}).subscribe((function(e){a.kX.success(e.message).subscribe(),t.reset()}),(function(e){return a.kX.error(e.message).subscribe()}))}}):a.kX.error("Unable to void an unpaid order.").subscribe()}},{key:"triggerOrderTypeSelection",value:function(e){return y(this,void 0,void 0,n().mark((function t(){var s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:s=0;case 1:if(!(s{var r={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function n(e){var t=i(e);return s(t)}function i(e){if(!s.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}n.keys=function(){return Object.keys(r)},n.resolve=i,e.exports=n,n.id=6700},3968:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});function r(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return n(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);s100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const o=(0,s(1900).Z)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,r){return s("div",{key:r,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(s){return e.inputValue(t)}}},[void 0!==t.value?s("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?s("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},1384:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});var r=s(2242),n=s(5872);const i={name:"ns-pos-customers-button",methods:{__:s(7389).__,openPendingOrdersPopup:function(){(new r.G).open(n.Z)}}};const o=(0,s(1900).Z)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.openPendingOrdersPopup()}}},[s("i",{staticClass:"mr-1 text-xl lar la-user-circle"}),e._v(" "),s("span",[e._v(e._s(e.__("Customers")))])])}),[],!1,null,null,null).exports},8927:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={name:"ns-pos-dashboard-button",methods:{__:s(7389).__,goToDashboard:function(){return document.location=POS.settings.getValue().urls.dashboard_url}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.goToDashboard()}}},[s("i",{staticClass:"mr-1 text-xl las la-tachometer-alt"}),e._v(" "),s("span",[e._v(e._s(e.__("Dashboard")))])])}),[],!1,null,null,null).exports},6568:(e,t,s)=>{"use strict";s.d(t,{Z:()=>o});var r=s(2242),n=s(3625);const i={name:"ns-pos-delivery-button",methods:{__:s(7389).__,openPendingOrdersPopup:function(){new r.G({primarySelector:"#pos-app",popupClass:"shadow-lg bg-white w-3/5 md:w-2/3 lg:w-2/5 xl:w-2/4"}).open(n.Z)}}};const o=(0,s(1900).Z)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.openPendingOrdersPopup()}}},[s("i",{staticClass:"mr-1 text-xl las la-truck"}),e._v(" "),s("span",[e._v(e._s(e.__("Order Type")))])])}),[],!1,null,null,null).exports},661:(e,t,s)=>{"use strict";s.d(t,{Z:()=>h});var r=s(2242),n=s(162),i=s(419),o=s(7389);const a={data:function(){return{products:[],isLoading:!1}},computed:{order:function(){return this.$popupParams.order}},mounted:function(){this.loadProducts()},methods:{__:o.__,close:function(){this.$popupParams.reject(!1),this.$popup.close()},loadProducts:function(){var e=this;this.isLoading=!0;var t=this.$popupParams.order.id;n.ih.get("/api/nexopos/v4/orders/".concat(t,"/products")).subscribe((function(t){e.isLoading=!1,e.products=t}))},openOrder:function(){this.$popup.close(),this.$popupParams.resolve(this.order)}}};var u=s(1900);const c=(0,u.Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg bg-white w-6/7-screen md:w-3/5-screen lg:w-2/5-screen h-6/7-screen flex flex-col overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between text-gray-700 items-center border-b"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("Products"))+" — "+e._s(e.order.code)+" "),e.order.title?s("span",[e._v("("+e._s(e.order.title)+")")]):e._e()]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto p-2 overflow-y-auto"},[e.isLoading?s("div",{staticClass:"flex-auto relative"},[s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("ns-spinner")],1)]):e._e(),e._v(" "),e.isLoading?e._e():e._l(e.products,(function(t){return s("div",{key:t.id,staticClass:"item"},[s("div",{staticClass:"flex-col border-b border-blue-400 py-2"},[s("div",{staticClass:"title font-semibold text-gray-700 flex justify-between"},[s("span",[e._v(e._s(t.name)+" (x"+e._s(t.quantity)+")")]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(t.total_price)))])]),e._v(" "),s("div",{staticClass:"text-sm text-gray-600"},[s("ul",[s("li",[e._v(e._s(e.__("Unit"))+" : "+e._s(t.unit.name))])])])])])}))],2),e._v(" "),s("div",{staticClass:"flex justify-end p-2 border-t border-gray-400"},[s("div",{staticClass:"px-1"},[s("div",{staticClass:"-mx-2 flex"},[s("div",{staticClass:"px-1"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.openOrder()}}},[e._v(e._s(e.__("Open")))])],1),e._v(" "),s("div",{staticClass:"px-1"},[s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.close()}}},[e._v(e._s(e.__("Close")))])],1)])])])])}),[],!1,null,null,null).exports;const l={props:["orders"],data:function(){return{searchField:""}},watch:{orders:function(){n.kq.doAction("ns-pos-pending-orders-refreshed",this.orders)}},mounted:function(){},name:"ns-pos-pending-order",methods:{__:o.__,previewOrder:function(e){this.$emit("previewOrder",e)},proceedOpenOrder:function(e){this.$emit("proceedOpenOrder",e)},searchOrder:function(){this.$emit("searchOrder",this.searchField)},printOrder:function(e){this.$emit("printOrder",e)}}};const d={components:{nsPosPendingOrders:(0,u.Z)(l,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-auto flex-col overflow-hidden"},[s("div",{staticClass:"p-1"},[s("div",{staticClass:"flex rounded border-2 border-blue-400"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.searchField,expression:"searchField"}],staticClass:"p-2 outline-none flex-auto",attrs:{type:"text"},domProps:{value:e.searchField},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.searchOrder()},input:function(t){t.target.composing||(e.searchField=t.target.value)}}}),e._v(" "),s("button",{staticClass:"w-16 md:w-24 bg-blue-400 text-white",on:{click:function(t){return e.searchOrder()}}},[s("i",{staticClass:"las la-search"}),e._v(" "),s("span",{staticClass:"mr-1 hidden md:visible"},[e._v(e._s(e.__("Search")))])])])]),e._v(" "),s("div",{staticClass:"overflow-y-auto flex flex-auto"},[s("div",{staticClass:"flex p-2 flex-auto flex-col overflow-y-auto"},[e._l(e.orders,(function(t){return s("div",{key:t.id,staticClass:"border-b border-blue-400 w-full py-2",attrs:{"data-order-id":t.id}},[s("h3",{staticClass:"text-gray-700"},[e._v(e._s(t.title||"Untitled Order"))]),e._v(" "),s("div",{staticClass:"px-2"},[s("div",{staticClass:"flex flex-wrap -mx-4"},[s("div",{staticClass:"w-full md:w-1/2 px-2"},[s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Cashier")))]),e._v(" : "+e._s(t.nexopos_users_username))]),e._v(" "),s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Register")))]),e._v(" : "+e._s(e._f("currency")(t.total)))]),e._v(" "),s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Tendered")))]),e._v(" : "+e._s(e._f("currency")(t.tendered)))])]),e._v(" "),s("div",{staticClass:"w-full md:w-1/2 px-2"},[s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Customer")))]),e._v(" : "+e._s(t.nexopos_customers_name))]),e._v(" "),s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Date")))]),e._v(" : "+e._s(t.created_at))]),e._v(" "),s("p",{staticClass:"text-sm text-gray-600"},[s("strong",[e._v(e._s(e.__("Type")))]),e._v(" : "+e._s(t.type))])])])]),e._v(" "),s("div",{staticClass:"flex justify-end w-full mt-2"},[s("div",{staticClass:"flex rounded-lg overflow-hidden buttons-container"},[s("button",{staticClass:"text-white bg-green-400 outline-none px-2 py-1",on:{click:function(s){return e.proceedOpenOrder(t)}}},[s("i",{staticClass:"las la-lock-open"}),e._v(" "+e._s(e.__("Open")))]),e._v(" "),s("button",{staticClass:"text-white bg-blue-400 outline-none px-2 py-1",on:{click:function(s){return e.previewOrder(t)}}},[s("i",{staticClass:"las la-eye"}),e._v(" "+e._s(e.__("Products")))]),e._v(" "),s("button",{staticClass:"text-white bg-teal-400 outline-none px-2 py-1",on:{click:function(s){return e.printOrder(t)}}},[s("i",{staticClass:"las la-print"}),e._v(" "+e._s(e.__("Print")))])])])])})),e._v(" "),0===e.orders.length?s("div",{staticClass:"h-full v-full items-center justify-center flex"},[s("h3",{staticClass:"text-semibold text-gray-700"},[e._v(e._s(e.__("Nothing to display...")))])]):e._e()],2)])])}),[],!1,null,null,null).exports},methods:{__:o.__,searchOrder:function(e){var t=this;n.ih.get("/api/nexopos/v4/crud/".concat(this.active,"?search=").concat(e)).subscribe((function(e){t.orders=e.data}))},setActiveTab:function(e){this.active=e,this.loadOrderFromType(e)},openOrder:function(e){POS.loadOrder(e.id),this.$popup.close()},loadOrderFromType:function(e){var t=this;n.ih.get("/api/nexopos/v4/crud/".concat(e)).subscribe((function(e){t.orders=e.data}))},previewOrder:function(e){var t=this;new Promise((function(t,s){Popup.show(c,{order:e,resolve:t,reject:s})})).then((function(s){t.proceedOpenOrder(e)}),(function(e){return e}))},printOrder:function(e){POS.printOrder(e.id)},proceedOpenOrder:function(e){var t=this;if(POS.products.getValue().length>0)return Popup.show(i.Z,{title:"Confirm Your Action",message:"The cart is not empty. Opening an order will clear your cart would you proceed ?",onAction:function(s){s&&t.openOrder(e)}});this.openOrder(e)}},data:function(){return{active:"ns.hold-orders",searchField:"",orders:[]}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.$popup.close()})),this.loadOrderFromType(this.active)}};const p=(0,u.Z)(d,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg bg-white w-6/7-screen md:w-3/5-screen lg:w-2/5-screen h-6/7-screen flex flex-col overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between text-gray-700 items-center border-b"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("Orders")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),s("div",{staticClass:"p-2 flex overflow-hidden flex-auto"},[s("ns-tabs",{attrs:{active:e.active},on:{changeTab:function(t){return e.setActiveTab(t)}}},[s("ns-tabs-item",{staticClass:"flex flex-col overflow-hidden",attrs:{identifier:"ns.hold-orders",label:e.__("On Hold"),padding:"p-0"}},[s("ns-pos-pending-orders",{attrs:{orders:e.orders},on:{searchOrder:function(t){return e.searchOrder(t)},previewOrder:function(t){return e.previewOrder(t)},printOrder:function(t){return e.printOrder(t)},proceedOpenOrder:function(t){return e.proceedOpenOrder(t)}}})],1),e._v(" "),s("ns-tabs-item",{staticClass:"flex flex-col overflow-hidden",attrs:{identifier:"ns.unpaid-orders",label:e.__("Unpaid"),padding:"p-0"}},[s("ns-pos-pending-orders",{attrs:{orders:e.orders},on:{searchOrder:function(t){return e.searchOrder(t)},previewOrder:function(t){return e.previewOrder(t)},printOrder:function(t){return e.printOrder(t)},proceedOpenOrder:function(t){return e.proceedOpenOrder(t)}}})],1),e._v(" "),s("ns-tabs-item",{staticClass:"flex flex-col overflow-hidden",attrs:{identifier:"ns.partially-paid-orders",label:e.__("Partially Paid"),padding:"p-0"}},[s("ns-pos-pending-orders",{attrs:{orders:e.orders},on:{searchOrder:function(t){return e.searchOrder(t)},previewOrder:function(t){return e.previewOrder(t)},printOrder:function(t){return e.printOrder(t)},proceedOpenOrder:function(t){return e.proceedOpenOrder(t)}}})],1)],1)],1),e._v(" "),s("div",{staticClass:"p-2 flex justify-between border-t bg-gray-200"},[s("div"),e._v(" "),s("div",[s("ns-button",[e._v(e._s(e.__("Close")))])],1)])])}),[],!1,null,null,null).exports,f={name:"ns-pos-pending-orders-button",methods:{__:o.__,openPendingOrdersPopup:function(){(new r.G).open(p)}}};const h=(0,u.Z)(f,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.openPendingOrdersPopup()}}},[s("i",{staticClass:"mr-1 text-xl lar la-hand-pointer"}),e._v(" "),s("span",[e._v(e._s(e.__("Orders")))])])}),[],!1,null,null,null).exports},818:(e,t,s)=>{"use strict";s.d(t,{Z:()=>T});var r=s(7757),n=s.n(r),i=s(162),o=s(3968),a=s(7266),u=s(8603),c=s(419),l=s(7389);const d={components:{nsNumpad:o.Z},data:function(){return{amount:0,title:null,identifier:null,settingsSubscription:null,settings:null,action:null,loaded:!1,register_id:null,validation:new a.Z,fields:[]}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.identifier=this.$popupParams.identifier,this.action=this.$popupParams.action,this.register_id=this.$popupParams.register_id,this.settingsSubscription=POS.settings.subscribe((function(t){e.settings=t})),this.loadFields()},destroyed:function(){this.settingsSubscription.unsubscribe()},methods:{popupCloser:u.Z,__:l.__,definedValue:function(e){this.amount=e},close:function(){this.$popup.close()},loadFields:function(){var e=this;this.loaded=!1,nsHttpClient.get("/api/nexopos/v4/fields/".concat(this.identifier)).subscribe((function(t){e.loaded=!0,e.fields=t}),(function(t){return e.loaded=!0,nsSnackBar.error(t.message,"OKAY",{duration:!1}).subscribe()}))},submit:function(e){var t=this;Popup.show(c.Z,{title:"Confirm Your Action",message:this.$popupParams.confirmMessage||"Would you like to confirm your action.",onAction:function(e){e&&t.triggerSubmit()}})},triggerSubmit:function(){var e=this,t=this.validation.extractFields(this.fields);t.amount=""===this.amount?0:this.amount,nsHttpClient.post("/api/nexopos/v4/cash-registers/".concat(this.action,"/").concat(this.register_id||this.settings.register.id),t).subscribe((function(t){e.$popupParams.resolve(t),e.$popup.close(),nsSnackBar.success(t.message).subscribe()}),(function(e){nsSnackBar.error(e.message).subscribe()}))}}};var p=s(1900);const f=(0,p.Z)(d,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.loaded?s("div",{staticClass:"shadow-lg w-95vw md:w-2/5-screen bg-white"},[s("div",{staticClass:"border-b border-gray-200 p-2 text-gray-700 flex justify-between items-center"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.title))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"p-2"},[null!==e.settings&&e.settings.register?s("div",{staticClass:"mb-2 p-3 bg-gray-400 font-bold text-white text-right flex justify-between"},[s("span",[e._v(e._s(e.__("Balance"))+" ")]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.settings.register.balance)))])]):e._e(),e._v(" "),s("div",{staticClass:"mb-2 p-3 bg-green-400 font-bold text-white text-right flex justify-between"},[s("span",[e._v(e._s(e.__("Input")))]),e._v(" "),s("span",[e._v(e._s(e._f("currency")(e.amount)))])]),e._v(" "),s("div",{staticClass:"mb-2"},[s("ns-numpad",{attrs:{floating:!0,value:e.amount},on:{next:function(t){return e.submit(t)},changed:function(t){return e.definedValue(t)}}})],1),e._v(" "),e._l(e.fields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})}))],2)]):e._e(),e._v(" "),e.loaded?e._e():s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("ns-spinner")],1)])}),[],!1,null,null,null).exports;var h=s(6386);function v(e,t,s,r,n,i,o){try{var a=e[i](o),u=a.value}catch(e){return void s(e)}a.done?t(u):Promise.resolve(u).then(r,n)}const _={components:{nsNumpad:o.Z},data:function(){return{registers:[],priorVerification:!1,hasLoadedRegisters:!1,validation:new a.Z,amount:0,settings:null,settingsSubscription:null}},mounted:function(){var e=this;this.checkUsedRegister(),this.settingsSubscription=POS.settings.subscribe((function(t){e.settings=t}))},beforeDestroy:function(){this.settingsSubscription.unsubscribe()},computed:{},methods:{__:l.__,popupResolver:h.Z,selectRegister:function(e){var t,s=this;return(t=n().mark((function t(){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("closed"===e.status){t.next=2;break}return t.abrupt("return",i.kX.error((0,l.__)("Unable to open this register. Only closed register can be opened.")).subscribe());case 2:return t.prev=2,t.next=5,new Promise((function(t,s){var r=(0,l.__)("Open Register : %s").replace("%s",e.name),n=e.id;Popup.show(f,{resolve:t,reject:s,title:r,identifier:"ns.cash-registers-opening",action:"open",register_id:n})}));case 5:r=t.sent,s.popupResolver(r),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(2),console.log(t.t0);case 12:case"end":return t.stop()}}),t,null,[[2,9]])})),function(){var e=this,s=arguments;return new Promise((function(r,n){var i=t.apply(e,s);function o(e){v(i,r,n,o,a,"next",e)}function a(e){v(i,r,n,o,a,"throw",e)}o(void 0)}))})()},checkUsedRegister:function(){var e=this;this.priorVerification=!1,i.ih.get("/api/nexopos/v4/cash-registers/used").subscribe((function(t){e.$popupParams.resolve(t),e.$popup.close()}),(function(t){e.priorVerification=!0,i.kX.error(t.message).subscribe(),e.loadRegisters()}))},loadRegisters:function(){var e=this;this.hasLoadedRegisters=!1,i.ih.get("/api/nexopos/v4/cash-registers").subscribe((function(t){e.registers=t,e.hasLoadedRegisters=!0}))},getClass:function(e){switch(e.status){case"in-use":return"bg-teal-200 text-gray-800 cursor-not-allowed";case"disabled":return"bg-gray-200 text-gray-700 cursor-not-allowed";case"available":return"bg-green-100 text-gray-800"}return"border-gray-200 cursor-pointer hover:bg-blue-400 hover:text-white"}}};const m=(0,p.Z)(_,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[!1===e.priorVerification?s("div",{staticClass:"h-full w-full py-10 flex justify-center items-center"},[s("ns-spinner",{attrs:{size:"24",border:"8"}})],1):e._e(),e._v(" "),s("div",{staticClass:"w-95vw md:w-3/5-screen lg:w-3/5-screen xl:w-2/5-screen flex flex-col overflow-hidden",class:e.priorVerification?"shadow-lg bg-white":""},[e.priorVerification?[s("div",{staticClass:"title p-2 border-b border-gray-200 flex justify-between items-center"},[s("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("Open The Register")))]),e._v(" "),e.settings?s("div",[s("a",{staticClass:"hover:bg-red-400 hover:border-red-500 hover:text-white rounded-full border border-gray-200 px-3 text-sm py-1",attrs:{href:e.settings.urls.orders_url}},[e._v(e._s(e.__("Exit To Orders")))])]):e._e()]),e._v(" "),e.hasLoadedRegisters?e._e():s("div",{staticClass:"py-10 flex-auto overflow-y-auto flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"16",border:"4"}})],1),e._v(" "),e.hasLoadedRegisters?s("div",{staticClass:"flex-auto overflow-y-auto"},[s("div",{staticClass:"grid grid-cols-3"},e._l(e.registers,(function(t,r){return s("div",{key:r,staticClass:"border-b border-r flex items-center justify-center flex-col p-3",class:e.getClass(t),on:{click:function(s){return e.selectRegister(t)}}},[s("i",{staticClass:"las la-cash-register text-6xl"}),e._v(" "),s("h3",{staticClass:"text-semibold text-center"},[e._v(e._s(t.name))]),e._v(" "),s("span",{staticClass:"text-sm"},[e._v("("+e._s(t.status_label)+")")])])})),0),e._v(" "),0===e.registers.length?s("div",{staticClass:"p-2 bg-red-400 text-white"},[e._v("\n "+e._s(e.__("Looks like there is no registers. At least one register is required to proceed."))+" — "),s("a",{staticClass:"font-bold hover:underline",attrs:{href:e.settings.urls.registers_url}},[e._v(e._s(e.__("Create Cash Register")))])]):e._e()]):e._e()]:e._e()],2)])}),[],!1,null,null,null).exports;const b={data:function(){return{totalIn:0,totalOut:0,settings:null,settingsSubscription:null,histories:[]}},mounted:function(){var e=this;this.settingsSubscription=POS.settings.subscribe((function(t){e.settings=t})),this.getHistory()},destroyed:function(){this.settingsSubscription.unsubscribe()},methods:{__:l.__,popupResolver:h.Z,closePopup:function(){this.popupResolver({status:"success"})},getHistory:function(){var e=this;i.ih.get("/api/nexopos/v4/cash-registers/session-history/".concat(this.settings.register.id)).subscribe((function(t){e.histories=t,e.totalIn=e.histories.filter((function(e){return["register-opening","register-sale","register-cash-in"].includes(e.action)})).map((function(e){return parseFloat(e.value)})).reduce((function(e,t){return e+t}),0),e.totalOut=e.histories.filter((function(e){return["register-closing","register-refund","register-cash-out"].includes(e.action)})).map((function(e){return parseFloat(e.value)})).reduce((function(e,t){return e+t}),0),console.log(e.totalOut)}))}}};const g=(0,p.Z)(b,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"bg-white shadow-lg w-95vw md:w-4/6-screen lg:w-half overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between items-center",attrs:{id:"header"}},[s("h3",{staticClass:"font-bold"},[e._v(e._s(e.__("Register History")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:e.closePopup}})],1)]),e._v(" "),s("div",{staticClass:"flex w-full"},[s("div",{staticClass:"flex flex-auto"},[s("div",{staticClass:"w-full md:w-1/2 text-right bg-green-400 text-white font-bold text-3xl p-3"},[e._v(e._s(e._f("currency")(e.totalIn)))]),e._v(" "),s("div",{staticClass:"w-full md:w-1/2 text-right bg-red-400 text-white font-bold text-3xl p-3"},[e._v(e._s(e._f("currency")(e.totalOut)))])])]),e._v(" "),s("div",{staticClass:"flex flex-col overflow-y-auto h-120"},[e._l(e.histories,(function(t){return[["register-sale","register-cash-in"].includes(t.action)?s("div",{key:t.id,staticClass:"flex border-b border-green-200 bg-green-100"},[s("div",{staticClass:"p-2 flex-auto"},[e._v(e._s(t.label))]),e._v(" "),s("div",{staticClass:"flex-auto text-right p-2"},[e._v(e._s(e._f("currency")(t.value)))])]):e._e(),e._v(" "),["register-opening"].includes(t.action)?s("div",{key:t.id,staticClass:"flex border-b border-blue-200 bg-blue-100"},[s("div",{staticClass:"p-2 flex-auto"},[e._v(e._s(t.label))]),e._v(" "),s("div",{staticClass:"flex-auto text-right p-2"},[e._v(e._s(e._f("currency")(t.value)))])]):e._e(),e._v(" "),["register-close"].includes(t.action)?s("div",{key:t.id,staticClass:"flex border-b border-teal-200 bg-teal-100"},[s("div",{staticClass:"p-2 flex-auto"},[e._v(e._s(t.label))]),e._v(" "),s("div",{staticClass:"flex-auto text-right p-2"},[e._v(e._s(e._f("currency")(t.value)))])]):e._e(),e._v(" "),["register-refund","register-cash-out"].includes(t.action)?s("div",{key:t.id,staticClass:"flex border-b border-red-200 bg-red-100"},[s("div",{staticClass:"p-2 flex-auto"},[e._v(e._s(t.label))]),e._v(" "),s("div",{staticClass:"flex-auto text-right p-2"},[e._v(e._s(e._f("currency")(t.value)))])]):e._e()]}))],2)])}),[],!1,null,null,null).exports;function y(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function x(e){for(var t=1;t0&&i.kX.error(t.t0.message).subscribe();case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))()},registerInitialQueue:function(){var e=this;POS.initialQueue.push(S(n().mark((function t(){var s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,new Promise((function(t,s){void 0===e.settings.register&&Popup.show(m,{resolve:t,reject:s})}));case 3:return s=t.sent,POS.set("register",s.data.register),e.setRegister(s.data.register),t.abrupt("return",s);case 9:throw t.prev=9,t.t0=t.catch(0),t.t0;case 12:case"end":return t.stop()}}),t,null,[[0,9]])}))))},setButtonName:function(){if(void 0===this.settings.register)return this.name=(0,l.__)("Cash Register");this.name=(0,l.__)("Cash Register : {register}").replace("{register}",this.settings.register.name)},setRegister:function(e){if(void 0!==e){var t=POS.order.getValue();t.register_id=e.id,POS.order.next(t)}}},destroyed:function(){this.orderSubscriber.unsubscribe(),this.settingsSubscriber.unsubscribe()},mounted:function(){var e=this;this.registerInitialQueue(),this.orderSubscriber=POS.order.subscribe((function(t){e.order=t})),this.settingsSubscriber=POS.settings.subscribe((function(t){e.settings=t,e.setRegister(e.settings.register),e.setButtonName()}))}};const T=(0,p.Z)($,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.openRegisterOptions()}}},[s("i",{staticClass:"mr-1 text-xl las la-cash-register"}),e._v(" "),s("span",[e._v(e._s(e.name))])])}),[],!1,null,null,null).exports},5588:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});var r=s(2242),n=(s(5872),s(419)),i=s(8603);const o={name:"ns-pos-customers-button",mounted:function(){this.popupCloser()},methods:{__,popupCloser:i.Z,reset:function(){r.G.show(n.Z,{title:__("Confirm Your Action"),message:__("The current order will be cleared. But not deleted if it's persistent. Would you like to proceed ?"),onAction:function(e){e&&POS.reset()}})}}};const a=(0,s(1900).Z)(o,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"flex-shrink-0 h-12 flex items-center shadow rounded px-2 py-1 text-sm bg-white text-gray-700",on:{click:function(t){return e.reset()}}},[s("i",{staticClass:"mr-1 text-xl las la-eraser"}),e._v(" "),s("span",[e._v(e._s(e.__("Reset")))])])}),[],!1,null,null,null).exports},2329:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(void 0!==e.$popupParams.onAction&&e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){void 0!==this.$popupParams.onAction&&this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-6/7-screen md:w-4/7-screen lg:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[e.title?s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]):e._e(),e._v(" "),s("p",{staticClass:"py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700 justify-end items-center p-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))])],1)])}),[],!1,null,null,null).exports},419:(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[s("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports},5450:(e,t,s)=>{"use strict";s.d(t,{Z:()=>c});var r=s(8603),n=s(6386),i=s(162),o=s(7389),a=s(4326);s(9624);const u={name:"ns-pos-coupons-load-popup",data:function(){return{placeHolder:(0,o.__)("Coupon Code"),couponCode:null,order:null,activeTab:"apply-coupon",orderSubscriber:null,customerCoupon:null}},mounted:function(){var e=this;this.popupCloser(),this.$refs.coupon.select(),this.orderSubscriber=POS.order.subscribe((function(t){e.order=t,e.order.coupons.length>0&&(e.activeTab="active-coupons")})),this.$popupParams&&this.$popupParams.apply_coupon&&(this.couponCode=this.$popupParams.apply_coupon,this.getCoupon(this.couponCode).subscribe({next:function(t){e.customerCoupon=t,e.apply()}}))},destroyed:function(){this.orderSubscriber.unsubscribe()},methods:{__:o.__,popupCloser:r.Z,popupResolver:n.Z,selectCustomer:function(){Popup.show(a.Z)},cancel:function(){this.customerCoupon=null,this.couponCode=null},removeCoupon:function(e){this.order.coupons.splice(e,1),POS.refreshCart()},apply:function(){var e=this;try{var t=this.customerCoupon;if(null!==this.customerCoupon.coupon.valid_hours_start&&!ns.date.moment.isAfter(this.customerCoupon.coupon.valid_hours_start)&&this.customerCoupon.coupon.valid_hours_start.length>0)return i.kX.error((0,o.__)("The coupon is out from validity date range.")).subscribe();if(null!==this.customerCoupon.coupon.valid_hours_end&&!ns.date.moment.isBefore(this.customerCoupon.coupon.valid_hours_end)&&this.customerCoupon.coupon.valid_hours_end.length>0)return i.kX.error((0,o.__)("The coupon is out from validity date range.")).subscribe();var s=this.customerCoupon.coupon.products;if(s.length>0){var r=s.map((function(e){return e.product_id}));if(0===this.order.products.filter((function(e){return r.includes(e.product_id)})).length)return i.kX.error((0,o.__)("This coupon requires products that aren't available on the cart at the moment.")).subscribe()}var n=this.customerCoupon.coupon.categories;if(n.length>0){var a=n.map((function(e){return e.category_id}));if(0===this.order.products.filter((function(e){return a.includes(e.$original().category_id)})).length)return i.kX.error((0,o.__)("This coupon requires products that belongs to specific categories that aren't included at the moment.").replace("%s")).subscribe()}this.cancel();var u={active:t.coupon.active,customer_coupon_id:t.id,minimum_cart_value:t.coupon.minimum_cart_value,maximum_cart_value:t.coupon.maximum_cart_value,name:t.coupon.name,type:t.coupon.type,value:0,limit_usage:t.coupon.limit_usage,code:t.coupon.code,discount_value:t.coupon.discount_value,categories:t.coupon.categories,products:t.coupon.products};POS.pushCoupon(u),this.activeTab="active-coupons",setTimeout((function(){e.popupResolver(u)}),500),i.kX.success((0,o.__)("The coupon has applied to the cart.")).subscribe()}catch(e){console.log(e)}},getCouponType:function(e){switch(e){case"percentage_discount":return(0,o.__)("Percentage");case"flat_discount":return(0,o.__)("Flat");default:return(0,o.__)("Unknown Type")}},getDiscountValue:function(e){switch(e.type){case"percentage_discount":return e.discount_value+"%";case"flat_discount":return this.$options.filters.currency(e.discount_value)}},closePopup:function(){this.popupResolver(!1)},setActiveTab:function(e){this.activeTab=e},getCoupon:function(e){return!this.order.customer_id>0?i.kX.error((0,o.__)("You must select a customer before applying a coupon.")).subscribe():i.ih.post("/api/nexopos/v4/customers/coupons/".concat(e),{customer_id:this.order.customer_id})},loadCoupon:function(){var e=this,t=this.couponCode;this.getCoupon(t).subscribe({next:function(t){e.customerCoupon=t,i.kX.success((0,o.__)("The coupon has been loaded.")).subscribe()},error:function(e){i.kX.error(e.message||(0,o.__)("An unexpected error occured.")).subscribe()}})}}};const c=(0,s(1900).Z)(u,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"shadow-lg bg-white w-95vw md:w-3/6-screen lg:w-2/6-screen"},[s("div",{staticClass:"border-b border-gray-200 p-2 flex justify-between items-center"},[s("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Load Coupon")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.closePopup()}}})],1)]),e._v(" "),s("div",{staticClass:"p-1"},[s("ns-tabs",{attrs:{active:e.activeTab},on:{changeTab:function(t){return e.setActiveTab(t)}}},[s("ns-tabs-item",{attrs:{label:e.__("Apply A Coupon"),padding:"p-2",identifier:"apply-coupon"}},[s("div",{staticClass:"border-2 border-blue-400 rounded flex"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.couponCode,expression:"couponCode"}],ref:"coupon",staticClass:"w-full p-2",attrs:{type:"text",placeholder:e.placeHolder},domProps:{value:e.couponCode},on:{input:function(t){t.target.composing||(e.couponCode=t.target.value)}}}),e._v(" "),s("button",{staticClass:"bg-blue-400 text-white px-3 py-2",on:{click:function(t){return e.loadCoupon()}}},[e._v(e._s(e.__("Load")))])]),e._v(" "),s("div",{staticClass:"pt-2"},[s("p",{staticClass:"p-2 text-center bg-green-100 text-green-600"},[e._v(e._s(e.__("Input the coupon code that should apply to the POS. If a coupon is issued for a customer, that customer must be selected priorly.")))])]),e._v(" "),e.order&&void 0===e.order.customer_id?s("div",{staticClass:"pt-2",on:{click:function(t){return e.selectCustomer()}}},[s("p",{staticClass:"p-2 cursor-pointer text-center bg-red-100 text-red-600"},[e._v(e._s(e.__("Click here to choose a customer.")))])]):e._e(),e._v(" "),e.order&&void 0!==e.order.customer_id?s("div",{staticClass:"pt-2"},[s("p",{staticClass:"p-2 text-center bg-green-100 text-green-600"},[e._v(e._s(e.__("Loading Coupon For : ")+e.order.customer.name+" "+e.order.customer.surname))])]):e._e(),e._v(" "),s("div",{staticClass:"overflow-hidden"},[e.customerCoupon?s("div",{staticClass:"pt-2 fade-in-entrance anim-duration-500 overflow-y-auto h-64"},[s("table",{staticClass:"w-full"},[s("thead",[s("tr",[s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Coupon Name")))]),e._v(" "),s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.name))])]),e._v(" "),s("tr",[s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Discount"))+" ("+e._s(e.getCouponType(e.customerCoupon.coupon.type))+")")]),e._v(" "),s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.getDiscountValue(e.customerCoupon.coupon)))])]),e._v(" "),s("tr",[s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Usage")))]),e._v(" "),s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.usage+"/"+(e.customerCoupon.limit_usage||e.__("Unlimited"))))])]),e._v(" "),s("tr",[s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Valid From")))]),e._v(" "),s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.coupon.valid_hours_start))])]),e._v(" "),s("tr",[s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Valid Till")))]),e._v(" "),s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.coupon.valid_hours_end))])]),e._v(" "),s("tr",[s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Categories")))]),e._v(" "),s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[s("ul",e._l(e.customerCoupon.coupon.categories,(function(t){return s("li",{key:t.id,staticClass:"rounded-full px-3 py-1 border border-gray-200"},[e._v(e._s(t.category.name))])})),0)])]),e._v(" "),s("tr",[s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Products")))]),e._v(" "),s("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[s("ul",e._l(e.customerCoupon.coupon.products,(function(t){return s("li",{key:t.id,staticClass:"rounded-full px-3 py-1 border border-gray-200"},[e._v(e._s(t.product.name))])})),0)])])])])]):e._e()])]),e._v(" "),s("ns-tabs-item",{attrs:{label:e.__("Active Coupons"),padding:"p-1",identifier:"active-coupons"}},[e.order?s("ul",[e._l(e.order.coupons,(function(t,r){return s("li",{key:r,staticClass:"flex justify-between bg-gray-100 items-center px-2 py-1"},[s("div",{staticClass:"flex-auto"},[s("h3",{staticClass:"font-semibold text-gray-700 p-2 flex justify-between"},[s("span",[e._v(e._s(t.name))]),e._v(" "),s("span",[e._v(e._s(e.getDiscountValue(t)))])])]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.removeCoupon(r)}}})],1)])})),e._v(" "),0===e.order.coupons.length?s("li",{staticClass:"flex justify-between bg-gray-100 items-center p-2"},[e._v("\n No coupons applies to the cart.\n ")]):e._e()],2):e._e()])],1)],1),e._v(" "),e.customerCoupon?s("div",{staticClass:"flex"},[s("button",{staticClass:"w-1/2 px-3 py-2 bg-green-400 text-white font-bold",on:{click:function(t){return e.apply()}}},[e._v("\n "+e._s(e.__("Apply"))+"\n ")]),e._v(" "),s("button",{staticClass:"w-1/2 px-3 py-2 bg-red-400 text-white font-bold",on:{click:function(t){return e.cancel()}}},[e._v("\n "+e._s(e.__("Cancel"))+"\n ")])]):e._e()])}),[],!1,null,null,null).exports},4326:(e,t,s)=>{"use strict";s.d(t,{Z:()=>u});var r=s(162),n=s(6386),i=s(2242),o=s(5872);const a={data:function(){return{searchCustomerValue:"",orderSubscription:null,order:{},debounceSearch:null,customers:[],isLoading:!1}},computed:{customerSelected:function(){return!1}},watch:{searchCustomerValue:function(e){var t=this;clearTimeout(this.debounceSearch),this.debounceSearch=setTimeout((function(){t.searchCustomer(e)}),500)}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.resolveIfQueued(!1)})),this.orderSubscription=POS.order.subscribe((function(t){e.order=t})),this.getRecentCustomers(),this.$refs.searchField.focus()},destroyed:function(){this.orderSubscription.unsubscribe()},methods:{__:s(7389).__,resolveIfQueued:n.Z,attemptToChoose:function(){if(1===this.customers.length)return this.selectCustomer(this.customers[0]);r.kX.info("Too many result.").subscribe()},openCustomerHistory:function(e,t){t.stopImmediatePropagation(),this.$popup.close(),i.G.show(o.Z,{customer:e,activeTab:"account-payment"})},selectCustomer:function(e){var t=this;this.customers.forEach((function(e){return e.selected=!1})),e.selected=!0,this.isLoading=!0,POS.selectCustomer(e).then((function(s){t.isLoading=!1,t.resolveIfQueued(e)})).catch((function(e){t.isLoading=!1}))},searchCustomer:function(e){var t=this;r.ih.post("/api/nexopos/v4/customers/search",{search:e}).subscribe((function(e){e.forEach((function(e){return e.selected=!1})),t.customers=e}))},createCustomerWithMatch:function(e){this.resolveIfQueued(!1),i.G.show(o.Z,{name:e})},getRecentCustomers:function(){var e=this;this.isLoading=!0,r.ih.get("/api/nexopos/v4/customers").subscribe((function(t){e.isLoading=!1,t.forEach((function(e){return e.selected=!1})),e.customers=t}),(function(t){e.isLoading=!1}))}}};const u=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"bg-white shadow-xl w-4/5-screen md:w-2/5-screen xl:w-108"},[s("div",{staticClass:"border-b border-gray-200 text-center font-semibold text-2xl text-gray-700 py-2",attrs:{id:"header"}},[s("h2",[e._v(e._s(e.__("Select Customer")))])]),e._v(" "),s("div",{staticClass:"relative"},[s("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between text-gray-600"},[s("span",[e._v("Selected : ")]),e._v(" "),s("div",{staticClass:"flex items-center justify-between"},[s("span",[e._v(e._s(e.order.customer?e.order.customer.name:"N/A"))]),e._v(" "),e.order.customer?s("button",{staticClass:"mx-2 rounded-full h-8 w-8 flex items-center justify-center border border-gray-200 hover:bg-blue-400 hover:text-white hover:border-transparent",on:{click:function(t){return e.openCustomerHistory(e.order.customer,t)}}},[s("i",{staticClass:"las la-eye"})]):e._e()])]),e._v(" "),s("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between text-gray-600"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.searchCustomerValue,expression:"searchCustomerValue"}],ref:"searchField",staticClass:"rounded border-2 border-blue-400 bg-gray-100 w-full p-2",attrs:{placeholder:"Search Customer",type:"text"},domProps:{value:e.searchCustomerValue},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.attemptToChoose()},input:function(t){t.target.composing||(e.searchCustomerValue=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"h-3/5-screen xl:h-2/5-screen overflow-y-auto"},[s("ul",[e.customers&&0===e.customers.length?s("li",{staticClass:"p-2 text-center text-gray-600"},[e._v("\n "+e._s(e.__("No customer match your query..."))+"\n ")]):e._e(),e._v(" "),e.customers&&0===e.customers.length?s("li",{staticClass:"p-2 cursor-pointer text-center text-gray-600",on:{click:function(t){return e.createCustomerWithMatch(e.searchCustomerValue)}}},[s("span",{staticClass:"border-b border-dashed border-blue-400"},[e._v(e._s(e.__("Create a customer")))])]):e._e(),e._v(" "),e._l(e.customers,(function(t){return s("li",{key:t.id,staticClass:"cursor-pointer hover:bg-gray-100 p-2 border-b border-gray-200 text-gray-600 flex justify-between items-center",on:{click:function(s){return e.selectCustomer(t)}}},[s("span",[e._v(e._s(t.name))]),e._v(" "),s("p",{staticClass:"flex items-center"},[t.owe_amount>0?s("span",{staticClass:"text-red-600"},[e._v("-"+e._s(e._f("currency")(t.owe_amount)))]):e._e(),e._v(" "),t.owe_amount>0?s("span",[e._v("/")]):e._e(),e._v(" "),s("span",{staticClass:"text-green-600"},[e._v(e._s(e._f("currency")(t.purchases_amount)))]),e._v(" "),s("button",{staticClass:"mx-2 rounded-full h-8 w-8 flex items-center justify-center border border-gray-200 hover:bg-blue-400 hover:text-white hover:border-transparent",on:{click:function(s){return e.openCustomerHistory(t,s)}}},[s("i",{staticClass:"las la-eye"})])])])}))],2)]),e._v(" "),e.isLoading?s("div",{staticClass:"z-10 top-0 absolute w-full h-full flex items-center justify-center"},[s("ns-spinner",{attrs:{size:"24",border:"8"}})],1):e._e()])])}),[],!1,null,null,null).exports},5872:(e,t,s)=>{"use strict";s.d(t,{Z:()=>_});var r=s(8603),n=s(162),i=s(2242),o=s(4326),a=s(7266),u=s(7389);const c={mounted:function(){this.closeWithOverlayClicked(),this.loadTransactionFields()},data:function(){return{fields:[],isSubmiting:!1,formValidation:new a.Z}},methods:{__:u.__,closeWithOverlayClicked:r.Z,proceed:function(){var e=this,t=this.$popupParams.customer,s=this.formValidation.extractFields(this.fields);this.isSubmiting=!0,n.ih.post("/api/nexopos/v4/customers/".concat(t.id,"/account-history"),s).subscribe((function(t){e.isSubmiting=!1,n.kX.success(t.message).subscribe(),e.$popupParams.resolve(t),e.$popup.close()}),(function(t){e.isSubmiting=!1,n.kX.error(t.message).subscribe(),e.$popupParams.reject(t)}))},close:function(){this.$popup.close(),this.$popupParams.reject(!1)},loadTransactionFields:function(){var e=this;n.ih.get("/api/nexopos/v4/fields/ns.customers-account").subscribe((function(t){e.fields=e.formValidation.createFields(t)}))}}};var l=s(1900);const d=(0,l.Z)(c,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-6/7-screen md:w-5/7-screen lg:w-4/7-screen h-6/7-screen md:h-5/7-screen lg:h-5/7-screen overflow-hidden shadow-lg bg-white flex flex-col relative"},[s("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between items-center"},[s("h2",{staticClass:"font-semibold"},[e._v(e._s(e.__("New Transaction")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto overflow-y-auto"},[0===e.fields.length?s("div",{staticClass:"h-full w-full flex items-center justify-center"},[s("ns-spinner")],1):e._e(),e._v(" "),e.fields.length>0?s("div",{staticClass:"p-2"},e._l(e.fields,(function(e,t){return s("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),s("div",{staticClass:"p-2 bg-white justify-between border-t border-gray-200 flex"},[s("div"),e._v(" "),s("div",{staticClass:"px-1"},[s("div",{staticClass:"-mx-2 flex flex-wrap"},[s("div",{staticClass:"px-1"},[s("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.close()}}},[e._v(e._s(e.__("Close")))])],1),e._v(" "),s("div",{staticClass:"px-1"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.proceed()}}},[e._v(e._s(e.__("Proceed")))])],1)])])]),e._v(" "),0===e.isSubmiting?s("div",{staticClass:"h-full w-full absolute flex items-center justify-center",staticStyle:{background:"rgb(0 98 171 / 45%)"}},[s("ns-spinner")],1):e._e()])}),[],!1,null,null,null).exports;var p=s(5450),f=s(419),h=s(6386);const v={name:"ns-pos-customers",data:function(){return{activeTab:"create-customers",customer:null,subscription:null,orders:[],selectedTab:"orders",isLoadingCoupons:!1,coupons:[],order:null}},mounted:function(){var e=this;this.closeWithOverlayClicked(),this.subscription=POS.order.subscribe((function(t){e.order=t,void 0!==e.$popupParams.customer?(e.activeTab="account-payment",e.customer=e.$popupParams.customer,e.loadCustomerOrders(e.customer.id)):void 0!==t.customer&&(e.activeTab="account-payment",e.customer=t.customer,e.loadCustomerOrders(e.customer.id))})),this.popupCloser()},methods:{__:u.__,popupResolver:h.Z,popupCloser:r.Z,getType:function(e){switch(e){case"percentage_discount":return(0,u.__)("Percentage Discount");case"flat_discount":return(0,u.__)("Flat Discount")}},closeWithOverlayClicked:r.Z,doChangeTab:function(e){this.selectedTab=e,"coupons"===e&&this.loadCoupons()},loadCoupons:function(){var e=this;this.isLoadingCoupons=!0,n.ih.get("/api/nexopos/v4/customers/".concat(this.customer.id,"/coupons")).subscribe({next:function(t){e.coupons=t,e.isLoadingCoupons=!1},error:function(t){e.isLoadingCoupons=!1}})},allowedForPayment:function(e){return["unpaid","partially_paid","hold"].includes(e.payment_status)},prefillForm:function(e){void 0!==this.$popupParams.name&&(e.main.value=this.$popupParams.name)},openCustomerSelection:function(){this.$popup.close(),i.G.show(o.Z)},loadCustomerOrders:function(e){var t=this;n.ih.get("/api/nexopos/v4/customers/".concat(e,"/orders")).subscribe((function(e){t.orders=e}))},newTransaction:function(e){new Promise((function(t,s){i.G.show(d,{customer:e,resolve:t,reject:s})})).then((function(t){POS.loadCustomer(e.id).subscribe((function(e){POS.selectCustomer(e)}))}))},applyCoupon:function(e){var t=this;void 0===this.order.customer?i.G.show(f.Z,{title:(0,u.__)("Use Customer ?"),message:(0,u.__)("No customer is selected. Would you like to proceed with this customer ?"),onAction:function(s){s&&POS.selectCustomer(t.customer).then((function(s){t.proceedApplyingCoupon(e)}))}}):this.order.customer.id===this.customer.id?this.proceedApplyingCoupon(e):this.order.customer.id!==this.customer.id&&i.G.show(f.Z,{title:(0,u.__)("Change Customer ?"),message:(0,u.__)("Would you like to assign this customer to the ongoing order ?"),onAction:function(s){s&&POS.selectCustomer(t.customer).then((function(s){t.proceedApplyingCoupon(e)}))}})},proceedApplyingCoupon:function(e){var t=this;new Promise((function(t,s){i.G.show(p.Z,{apply_coupon:e.code,resolve:t,reject:s})})).then((function(e){t.popupResolver(!1)})).catch((function(e){}))},handleSavedCustomer:function(e){n.kX.success(e.message).subscribe(),POS.selectCustomer(e.entry),this.$popup.close()}}};const _=(0,l.Z)(v,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"bg-white shadow-lg rounded w-95vw h-95vh lg:w-3/5-screen flex flex-col overflow-hidden"},[s("div",{staticClass:"p-2 flex justify-between items-center border-b border-gray-400"},[s("h3",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Customers")))]),e._v(" "),s("div",[s("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),s("div",{staticClass:"flex-auto flex p-2 bg-gray-200 overflow-y-auto"},[s("ns-tabs",{attrs:{active:e.activeTab},on:{active:function(t){e.activeTab=t}}},[s("ns-tabs-item",{attrs:{identifier:"create-customers",label:"New Customer"}},[s("ns-crud-form",{attrs:{"submit-url":"/api/nexopos/v4/crud/ns.customers",src:"/api/nexopos/v4/crud/ns.customers/form-config"},on:{updated:function(t){return e.prefillForm(t)},save:function(t){return e.handleSavedCustomer(t)}},scopedSlots:e._u([{key:"title",fn:function(){return[e._v(e._s(e.__("Customer Name")))]},proxy:!0},{key:"save",fn:function(){return[e._v(e._s(e.__("Save Customer")))]},proxy:!0}])})],1),e._v(" "),s("ns-tabs-item",{staticClass:"flex",staticStyle:{padding:"0!important"},attrs:{identifier:"account-payment",label:e.__("Customer Account")}},[null===e.customer?s("div",{staticClass:"flex-auto w-full flex items-center justify-center flex-col p-4"},[s("i",{staticClass:"lar la-frown text-6xl text-gray-700"}),e._v(" "),s("h3",{staticClass:"font-medium text-2xl text-gray-700"},[e._v(e._s(e.__("No Customer Selected")))]),e._v(" "),s("p",{staticClass:"text-gray-600"},[e._v(e._s(e.__("In order to see a customer account, you need to select one customer.")))]),e._v(" "),s("div",{staticClass:"my-2"},[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.openCustomerSelection()}}},[e._v(e._s(e.__("Select Customer")))])],1)]):e._e(),e._v(" "),e.customer?s("div",{staticClass:"flex flex-col flex-auto"},[s("div",{staticClass:"flex-auto p-2 flex flex-col"},[s("div",{staticClass:"-mx-4 flex flex-wrap"},[s("div",{staticClass:"px-4 mb-4 w-full"},[s("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Summary For"))+" : "+e._s(e.customer.name))])]),e._v(" "),s("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[s("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-green-400 to-green-700 p-2 flex flex-col text-white"},[s("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Total Purchases")))]),e._v(" "),s("div",{staticClass:"w-full flex justify-end"},[s("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.purchases_amount)))])])])]),e._v(" "),s("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[s("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-red-500 to-red-700 p-2 text-white"},[s("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Total Owed")))]),e._v(" "),s("div",{staticClass:"w-full flex justify-end"},[s("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.owed_amount)))])])])]),e._v(" "),s("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[s("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-blue-500 to-blue-700 p-2 text-white"},[s("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Account Amount")))]),e._v(" "),s("div",{staticClass:"w-full flex justify-end"},[s("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.account_amount)))])])])])]),e._v(" "),s("div",{staticClass:"flex flex-auto flex-col overflow-hidden"},[s("ns-tabs",{attrs:{active:e.selectedTab},on:{changeTab:function(t){return e.doChangeTab(t)}}},[s("ns-tabs-item",{attrs:{identifier:"orders",label:e.__("Orders")}},[s("div",{staticClass:"py-2 w-full"},[s("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Last Purchases")))])]),e._v(" "),s("div",{staticClass:"flex-auto flex-col flex overflow-hidden"},[s("div",{staticClass:"flex-auto overflow-y-auto"},[s("table",{staticClass:"table w-full"},[s("thead",[s("tr",{staticClass:"text-gray-700"},[s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"150"}},[e._v(e._s(e.__("Order")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Total")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Status")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"50"}},[e._v(e._s(e.__("Options")))])])]),e._v(" "),s("tbody",{staticClass:"text-gray-700"},[0===e.orders.length?s("tr",[s("td",{staticClass:"border border-gray-200 p-2 text-center",attrs:{colspan:"4"}},[e._v(e._s(e.__("No orders...")))])]):e._e(),e._v(" "),e._l(e.orders,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(t.code))]),e._v(" "),s("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(e._f("currency")(t.total)))]),e._v(" "),s("td",{staticClass:"border border-gray-200 p-2 text-right"},[e._v(e._s(t.human_status))]),e._v(" "),s("td",{staticClass:"border border-gray-200 p-2 text-center"},[e.allowedForPayment(t)?s("button",{staticClass:"hover:bg-blue-400 hover:border-transparent hover:text-white rounded-full h-8 px-2 flex items-center justify-center border border-gray bg-white"},[s("i",{staticClass:"las la-wallet"}),e._v(" "),s("span",{staticClass:"ml-1"},[e._v(e._s(e.__("Payment")))])]):e._e()])])}))],2)])])])]),e._v(" "),s("ns-tabs-item",{attrs:{identifier:"coupons",label:e.__("Coupons")}},[e.isLoadingCoupons?s("div",{staticClass:"flex-auto h-full justify-center flex items-center"},[s("ns-spinner",{attrs:{size:"36"}})],1):e._e(),e._v(" "),e.isLoadingCoupons?e._e():[s("div",{staticClass:"py-2 w-full"},[s("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Coupons")))])]),e._v(" "),s("div",{staticClass:"flex-auto flex-col flex overflow-hidden"},[s("div",{staticClass:"flex-auto overflow-y-auto"},[s("table",{staticClass:"table w-full"},[s("thead",[s("tr",{staticClass:"text-gray-700"},[s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"150"}},[e._v(e._s(e.__("Name")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Type")))]),e._v(" "),s("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"})])]),e._v(" "),s("tbody",{staticClass:"text-gray-700 text-sm"},[0===e.coupons.length?s("tr",[s("td",{staticClass:"border border-gray-200 p-2 text-center",attrs:{colspan:"4"}},[e._v(e._s(e.__("No coupons for the selected customer...")))])]):e._e(),e._v(" "),e._l(e.coupons,(function(t){return s("tr",{key:t.id},[s("td",{staticClass:"border border-gray-200 p-2",attrs:{width:"300"}},[s("h3",[e._v(e._s(t.name))]),e._v(" "),s("div",{},[s("ul",{staticClass:"-mx-2 flex"},[s("li",{staticClass:"text-xs text-gray-600 px-2"},[e._v(e._s(e.__("Usage :"))+" "+e._s(t.usage)+"/"+e._s(t.limit_usage))]),e._v(" "),s("li",{staticClass:"text-xs text-gray-600 px-2"},[e._v(e._s(e.__("Code :"))+" "+e._s(t.code))])])])]),e._v(" "),s("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(e.getType(t.coupon.type))+" \n "),"percentage_discount"===t.coupon.type?s("span",[e._v("\n ("+e._s(t.coupon.discount_value)+"%)\n ")]):e._e(),e._v(" "),"flat_discount"===t.coupon.type?s("span",[e._v("\n ("+e._s(e._f("currency")(t.coupon.discount_value))+")\n ")]):e._e()]),e._v(" "),s("td",{staticClass:"border border-gray-200 p-2 text-right"},[s("ns-button",{attrs:{type:"info"},on:{click:function(s){return e.applyCoupon(t)}}},[e._v(e._s(e.__("Use Coupon")))])],1)])}))],2)])])])]],2)],1)],1)]),e._v(" "),s("div",{staticClass:"p-2 border-t border-gray-400 flex justify-between"},[s("div"),e._v(" "),s("div",[s("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.newTransaction(e.customer)}}},[e._v(e._s(e.__("Account Transaction")))])],1)])]):e._e()])],1)],1)])}),[],!1,null,null,null).exports},8355:(e,t,s)=>{"use strict";s.d(t,{Z:()=>d});var r=s(7266),n=s(162),i=s(7389);function o(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function a(e){for(var t=1;t0){var e=nsRawCurrency(this.order.instalments.map((function(e){return parseFloat(e.amount.value)||0})).reduce((function(e,t){return parseFloat(e)+parseFloat(t)})));this.totalPayments=this.order.total-e}else this.totalPayments=0},generatePaymentFields:function(e){var t=this;this.order.instalments=new Array(parseInt(e)).fill("").map((function(e,s){return{date:{type:"date",name:"date",label:"Date",value:0===s?ns.date.moment.format("YYYY-MM-DD"):""},amount:{type:"number",name:"amount",label:"Amount",value:0===s?t.expectedPayment:0},readonly:{type:"hidden",name:"readonly",value:t.expectedPayment>0&&0===s}}})),this.$forceUpdate(),this.refreshTotalPayments()},close:function(){this.$popupParams.reject({status:"failed",message:(0,i.__)("You must define layaway settings before proceeding.")}),this.$popup.close()},updateOrder:function(){var e=this;if(0===this.order.instalments.length)return n.kX.error((0,i.__)("Please provide instalments before proceeding.")).subscribe();if(this.fields.forEach((function(t){return e.formValidation.validateField(t)})),!this.formValidation.fieldsValid(this.fields))return n.kX.error((0,i.__)("Unable to procee the form is not valid")).subscribe();this.$forceUpdate();var t=this.order.instalments.map((function(e){return{amount:parseFloat(e.amount.value),date:e.date.value}})),s=nsRawCurrency(t.map((function(e){return e.amount})).reduce((function(e,t){return parseFloat(e)+parseFloat(t)})));if(t.filter((function(e){return void 0===e.date||""===e.date})).length>0)return n.kX.error((0,i.__)("One or more instalments has an invalid date.")).subscribe();if(t.filter((function(e){return!(e.amount>0)})).length>0)return n.kX.error((0,i.__)("One or more instalments has an invalid amount.")).subscribe();if(t.filter((function(e){return moment(e.date).isBefore(ns.date.moment.startOf("day"))})).length>0)return n.kX.error((0,i.__)("One or more instalments has a date prior to the current date.")).subscribe();var r=t.filter((function(e){return moment(e.date).isSame(ns.date.moment.startOf("day"),"day")})),o=0;if(r.forEach((function(e){o+=parseFloat(e.amount)})),o{"use strict";s.d(t,{Z:()=>n});const r={name:"ns-pos-loading-popup"};const n=(0,s(1900).Z)(r,(function(){var e=this.$createElement;return(this._self._c||e)("ns-spinner")}),[],!1,null,null,null).exports},3625:(e,t,s)=>{"use strict";s.d(t,{Z:()=>u});var r=s(7757),n=s.n(r),i=s(6386);s(3661);function o(e,t,s,r,n,i,o){try{var a=e[i](o),u=a.value}catch(e){return void s(e)}a.done?t(u):Promise.resolve(u).then(r,n)}const a={data:function(){return{types:[],typeSubscription:null}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.resolveIfQueued(!1)})),this.typeSubscription=POS.types.subscribe((function(t){e.types=t}))},destroyed:function(){this.typeSubscription.unsubscribe()},methods:{__:s(7389).__,resolveIfQueued:i.Z,select:function(e){var t,s=this;return(t=n().mark((function t(){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return Object.values(s.types).forEach((function(e){return e.selected=!1})),s.types[e].selected=!0,r=s.types[e],POS.types.next(s.types),t.next=6,POS.triggerOrderTypeSelection(r);case 6:s.resolveIfQueued(r);case 7:case"end":return t.stop()}}),t)})),function(){var e=this,s=arguments;return new Promise((function(r,n){var i=t.apply(e,s);function a(e){o(i,r,n,a,u,"next",e)}function u(e){o(i,r,n,a,u,"throw",e)}a(void 0)}))})()}}};const u=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"h-full w-4/5-screen md:w-2/5-screen lg:w-2/5-screen xl:w-2/6-screen bg-white shadow-lg"},[s("div",{staticClass:"h-16 flex justify-center items-center",attrs:{id:"header"}},[s("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Define The Order Type")))])]),e._v(" "),s("div",{staticClass:"grid grid-flow-row grid-cols-2 grid-rows-2"},e._l(e.types,(function(t){return s("div",{key:t.identifier,staticClass:"hover:bg-blue-100 h-56 flex items-center justify-center flex-col cursor-pointer border border-gray-200",class:t.selected?"bg-blue-100":"",on:{click:function(s){return e.select(t.identifier)}}},[s("img",{staticClass:"w-32 h-32",attrs:{src:t.icon,alt:""}}),e._v(" "),s("h4",{staticClass:"font-semibold text-xl my-2 text-gray-700"},[e._v(e._s(t.label))])])})),0)])}),[],!1,null,null,null).exports},9531:(e,t,s)=>{"use strict";s.d(t,{Z:()=>u});var r=s(162),n=s(7389);function i(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);"Object"===s&&e.constructor&&(s=e.constructor.name);if("Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,r=new Array(t);sparseFloat(i.$quantities().quantity)-a)return r.kX.error((0,n.__)("Unable to add the product, there is not enough stock. Remaining %s").replace("%s",i.$quantities().quantity-a)).subscribe()}this.resolve({quantity:o})}else"backspace"===e.identifier?this.allSelected?(this.finalValue=0,this.allSelected=!1):(this.finalValue=this.finalValue.toString(),this.finalValue=this.finalValue.substr(0,this.finalValue.length-1)||0):this.allSelected?(this.finalValue=e.value,this.finalValue=parseFloat(this.finalValue),this.allSelected=!1):(this.finalValue+=""+e.value,this.finalValue=parseFloat(this.finalValue))},resolve:function(e){this.$popupParams.resolve(e),this.$popup.close()}}};const u=(0,s(1900).Z)(a,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"bg-white shadow min-h-2/5-screen w-3/4-screen md:w-3/5-screen lg:w-2/5-screen xl:w-2/5-screen relative"},[e.isLoading?s("div",{staticClass:"flex w-full h-full absolute top-O left-0 items-center justify-center",staticStyle:{background:"rgb(202 202 202 / 49%)"},attrs:{id:"loading-overlay"}},[s("ns-spinner")],1):e._e(),e._v(" "),s("div",{staticClass:"flex-shrink-0 py-2 border-b border-gray-200"},[s("h1",{staticClass:"text-xl font-bold text-gray-700 text-center"},[e._v(e._s(e.__("Define Quantity")))])]),e._v(" "),s("div",{staticClass:"h-16 border-b bg-gray-800 text-white border-gray-200 flex items-center justify-center",attrs:{id:"screen"}},[s("h1",{staticClass:"font-bold text-3xl"},[e._v(e._s(e.finalValue))])]),e._v(" "),s("div",{staticClass:"grid grid-flow-row grid-cols-3 grid-rows-3",attrs:{id:"numpad"}},e._l(e.keys,(function(t,r){return s("div",{key:r,staticClass:"hover:bg-blue-400 hover:text-white hover:border-blue-600 text-xl font-bold border border-gray-200 h-24 flex items-center justify-center cursor-pointer",on:{click:function(s){return e.inputValue(t)}}},[void 0!==t.value?s("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?s("i",{staticClass:"las",class:t.icon}):e._e()])})),0)])}),[],!1,null,null,null).exports},3661:(e,t,s)=>{"use strict";s.d(t,{Z:()=>l});var r=s(162),n=s(6386),i=s(7266);function o(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function a(e){for(var t=1;t{"use strict";s.d(t,{Z:()=>n});const r={data:function(){return{title:"",message:"",input:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.input=this.$popupParams.input||"",this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.reject(!1),e.$popup.close())}))},methods:{__:s(7389).__,emitAction:function(e){this.$popupParams.onAction(e?this.input:e),this.$popup.close()},reject:function(e){this.$popupParams.reject(e),this.$popup.close()}}};const n=(0,s(1900).Z)(r,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"w-5/7-screen md:w-3/7-screen flex flex-col bg-white shadow-lg",class:e.size,attrs:{id:"popup"}},[s("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-2"},[s("h2",{staticClass:"text-3xl font-body text-gray-700"},[e._v(e._s(e.title))]),e._v(" "),s("p",{staticClass:"w-full md:mx-auto md:w-2/3 py-4 text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),s("div",{staticClass:"p-2"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.input,expression:"input"}],staticClass:"text-gray-700 w-full border-2 p-2 border-blue-400",attrs:{name:"",id:"",cols:"30",rows:"10"},domProps:{value:e.input},on:{input:function(t){t.target.composing||(e.input=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Ok")))]),e._v(" "),s("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),s("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.reject(!1)}}},[e._v(e._s(e.__("Cancel")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=467,e(e.s=t);var t}));e.O()}]); //# sourceMappingURL=pos-init.min.js.map \ No newline at end of file diff --git a/public/js/pos.min.js b/public/js/pos.min.js index e3e10b8f7..7b879349b 100644 --- a/public/js/pos.min.js +++ b/public/js/pos.min.js @@ -1,2 +1,2 @@ -(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[159],{162:(e,t,r)=>{"use strict";r.d(t,{l:()=>q,kq:()=>G,ih:()=>M,kX:()=>z});var s=r(6486),n=r(9669),i=r(2181),o=r(8345),a=r(9624),l=r(9248),c=r(230);function u(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,r)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,r)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var r=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=G.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:s}),new c.y((function(i){r._client[e](t,s,Object.assign(Object.assign({},r._client.defaults[e]),n)).then((function(e){r._lastRequestData=e,i.next(e.data),i.complete(),r._subject.next({identifier:"async.stop"})})).catch((function(e){var t;i.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),r._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,r=e.value;this._subject.next({identifier:t,value:r})}}])&&u(t.prototype,r),s&&u(t,s),e}(),f=r(3);function p(e,t){for(var r=0;r=1e3){for(var r,s=Math.floor((""+e).length/3),n=2;n>=1;n--){if(((r=parseFloat((0!=s?e/Math.pow(1e3,s):e).toPrecision(n)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}r%1!=0&&(r=r.toFixed(1)),t=r+["","k","m","b","t"][s]}return t})),P=r(1356),O=r(9698);function $(e,t){for(var r=0;r0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&Z(t.prototype,r),s&&Z(t,s),e}()),X=new m({sidebar:["xs","sm","md"].includes(R.breakpoint)?"hidden":"visible"});M.defineClient(n),window.nsEvent=q,window.nsHttpClient=M,window.nsSnackBar=z,window.nsCurrency=P.W,window.nsTruncate=O.b,window.nsRawCurrency=P.f,window.nsAbbreviate=S,window.nsState=X,window.nsUrl=N,window.nsScreen=R,window.ChartJS=i,window.EventEmitter=h,window.Popup=x.G,window.RxJS=_,window.FormValidation=C.Z,window.nsCrudHandler=L},8202:(e,t,r)=>{"use strict";r.r(t),r.d(t,{nsButton:()=>a,nsCheckbox:()=>d,nsCkeditor:()=>D,nsCloseButton:()=>P,nsCrud:()=>v,nsCrudForm:()=>_,nsDate:()=>k,nsDateTimePicker:()=>Z.V,nsDatepicker:()=>q,nsField:()=>x,nsIconButton:()=>O,nsInput:()=>c,nsLink:()=>l,nsMediaInput:()=>S,nsMenu:()=>i,nsMultiselect:()=>w,nsNumpad:()=>I.Z,nsSelect:()=>u.R,nsSpinner:()=>m,nsSubmenu:()=>o,nsSwitch:()=>C,nsTableRow:()=>b,nsTabs:()=>A,nsTabsItem:()=>F,nsTextarea:()=>y});var s=r(538),n=r(162),i=s.default.component("ns-menu",{data:function(){return{defaultToggledState:!1,_save:0}},props:["href","label","icon","notification","toggled","identifier"],template:'\n \n ',mounted:function(){var e=this;this.defaultToggledState=void 0!==this.toggled?this.toggled:this.defaultToggledState,n.l.subject().subscribe((function(t){t.value!==e.identifier&&(e.defaultToggledState=!1)}))},methods:{toggleEmit:function(){var e=this;this.toggle().then((function(t){t&&n.l.emit({identifier:"side-menu.open",value:e.identifier})}))},toggle:function(){var e=this;return new Promise((function(t,r){0===e.href.length&&(e.defaultToggledState=!e.defaultToggledState,t(e.defaultToggledState))}))}}}),o=s.default.component("ns-submenu",{data:function(){return{}},props:["href","label","active"],mounted:function(){},template:'\n
    \n
  • \n \n \n \n
  • \n
    \n '}),a=s.default.component("ns-button",{data:function(){return{clicked:!1,_save:0}},props:["type","disabled","link","href","routerLink","to"],template:'\n
    \n \n \n \n
    \n ',mounted:function(){},computed:{isDisabled:function(){return this.disabled&&(0===this.disabled.length||"disabled"===this.disabled||this.disabled)},buttonclass:function(){var e;switch(this.type){case"info":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-blue-400 text-white");break;case"success":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-green-400 text-white");break;case"danger":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-red-400 text-white");break;case"warning":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-orange-400 text-white");break;default:e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-white text-gray-800")}return e}}}),l=s.default.component("ns-link",{data:function(){return{clicked:!1,_save:0}},props:["type","to","href"],template:'\n
    \n \n \n
    \n ',computed:{buttonclass:function(){switch(this.type){case"info":return"shadow bg-blue-400 text-white";case"success":return"shadow bg-green-400 text-white";case"danger":return"shadow bg-red-400 text-white";case"warning":return"shadow bg-orange-400 text-white";default:return"shadow bg-white text-gray-800"}}}}),c=s.default.component("ns-input",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),u=r(4451),d=s.default.component("ns-checkbox",{data:function(){return{}},props:["checked","field","label"],template:'\n
    \n
    \n \n
    \n {{ label }}\n {{ field.label }}\n
    \n ',computed:{isChecked:function(){return this.field?this.field.value:this.checked}},methods:{toggleIt:function(){void 0!==this.field&&(this.field.value=!this.field.value),this.$emit("change",!this.checked)}}}),f=r(7389),p=r(2242),h=r(419),v=s.default.component("ns-crud",{data:function(){return{isRefreshing:!1,sortColumn:"",searchInput:"",searchQuery:"",page:1,bulkAction:"",bulkActions:[],columns:[],selectedEntries:[],globallyChecked:!1,result:{current_page:null,data:[],first_page_url:null,from:null,last_page:null,last_page_url:null,next_page_url:null,path:null,per_page:null,prev_page_url:null,to:null,total:null}}},mounted:function(){void 0!==this.identifier&&nsCrudHandler.defineInstance(this.identifier,this),this.loadConfig()},props:["src","create-url","mode","identifier","queryParams"],computed:{getParsedSrc:function(){return"".concat(this.src,"?").concat(this.sortColumn).concat(this.searchQuery).concat(this.queryPage).concat(this.getQueryParams()?"&"+this.getQueryParams():"")},getSelectedAction:function(){var e=this,t=this.bulkActions.filter((function(t){return t.identifier===e.bulkAction}));return t.length>0&&t[0]},pagination:function(){return this.result?this.pageNumbers(this.result.last_page,this.result.current_page):[]},queryPage:function(){return this.result?"&page=".concat(this.page):""},resultInfo:function(){return(0,f.__)("displaying {perPage} on {items} items").replace("{perPage}",this.result.total).replace("{items}",this.result.total)}},methods:{__:f.__,getQueryParams:function(){var e=this;return this.queryParams?Object.keys(this.queryParams).map((function(t){return"".concat(t,"=").concat(e.queryParams[t])})).join("&"):""},pageNumbers:function(e,t){var r=[];return t>e-3?r.push(e-2,e-1,e):r.push(t,t+1,t+2,"...",e),r.filter((function(e){return e>0||"string"==typeof e}))},downloadContent:function(){n.ih.post("".concat(this.src,"/export?").concat(this.getQueryParams()),{entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(e){setTimeout((function(){return document.location=e.url}),300),n.kX.success((0,f.__)("The document has been generated.")).subscribe()}),(function(e){n.kX.error(e.message||(0,f.__)("Unexpected error occured.")).subscribe()}))},clearSelectedEntries:function(){var e=this;p.G.show(h.Z,{title:(0,f.__)("Clear Selected Entries ?"),message:(0,f.__)("Would you like to clear all selected entries ?"),onAction:function(t){t&&(e.selectedEntries=[])}})},refreshRow:function(e){if(!0===e.$checked){0===this.selectedEntries.filter((function(t){return t.$id===e.$id})).length&&this.selectedEntries.push(e)}else{var t=this.selectedEntries.filter((function(t){return t.$id===e.$id}));if(t.length>0){var r=this.selectedEntries.indexOf(t[0]);this.selectedEntries.splice(r,1)}}},handleShowOptions:function(e){this.result.data.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},handleGlobalChange:function(e){var t=this;this.globallyChecked=e,this.result.data.forEach((function(r){r.$checked=e,t.refreshRow(r)}))},loadConfig:function(){var e=this;n.ih.get("".concat(this.src,"/config?").concat(this.getQueryParams())).subscribe((function(t){e.columns=t.columns,e.bulkActions=t.bulkActions,e.refresh()}),(function(e){n.kX.error(e.message,"OK",{duration:!1}).subscribe()}))},cancelSearch:function(){this.searchInput="",this.search()},search:function(){this.searchInput?this.searchQuery="&search=".concat(this.searchInput):this.searchQuery="",this.refresh()},sort:function(e){for(var t in this.columns)t!==e&&(this.columns[t].$sorted=!1,this.columns[t].$direction="");switch(this.columns[e].$sorted=!0,this.columns[e].$direction){case"asc":this.columns[e].$direction="desc";break;case"desc":this.columns[e].$direction="";break;case"":this.columns[e].$direction="asc"}["asc","desc"].includes(this.columns[e].$direction)?this.sortColumn="active=".concat(e,"&direction=").concat(this.columns[e].$direction):this.sortColumn="",this.$emit("sort",this.columns[e]),this.refresh()},bulkDo:function(){var e=this;return this.bulkAction?this.selectedEntries.length>0?(console.log(this.getSelectedAction),confirm(this.getSelectedAction.confirm||this.$slots["error-bulk-confirmation"]||(0,f.__)("No bulk confirmation message provided on the CRUD class."))?n.ih.post("".concat(this.src,"/bulk-actions"),{action:this.bulkAction,entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(t){n.kX.info(t.message).subscribe(),e.selectedEntries=[],e.refresh()}),(function(e){n.kX.error(e.message).subscribe()})):void 0):n.kX.error(this.$slots["error-no-selection"]?this.$slots["error-no-selection"][0].text:(0,f.__)("No selection has been made.")).subscribe():n.kX.error(this.$slots["error-no-action"]?this.$slots["error-no-action"][0].text:(0,f.__)("No action has been selected.")).subscribe()},refresh:function(){var e=this;this.globallyChecked=!1,this.isRefreshing=!0,n.ih.get("".concat(this.getParsedSrc)).subscribe((function(t){t.data=t.data.map((function(t){return e.selectedEntries.filter((function(e){return e.$id===t.$id})).length>0&&(t.$checked=!0),t})),e.isRefreshing=!1,e.result=t,e.page=t.current_page}),(function(t){e.isRefreshing=!1,n.kX.error(t.message).subscribe()}))}},template:'\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{ column.label }}\n \n \n \n \n
    \n
    {{ __( \'There is nothing to display...\' ) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ resultInfo }}
    \n \n
    \n
    \n
    \n '}),b=s.default.component("ns-table-row",{props:["options","row","columns"],data:function(){return{optionsToggled:!1}},mounted:function(){},methods:{sanitizeHTML:function(e){var t=document.createElement("div");t.innerHTML=e;for(var r=t.getElementsByTagName("script"),s=r.length;s--;)r[s].parentNode.removeChild(r[s]);return t.innerHTML},getElementOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},toggleMenu:function(e){var t=this;if(this.row.$toggled=!this.row.$toggled,this.$emit("toggled",this.row),this.row.$toggled)setTimeout((function(){var e=t.$el.querySelectorAll(".relative > .absolute")[0],r=t.$el.querySelectorAll(".relative")[0],s=t.getElementOffset(r);e.style.top=s.top+"px",e.style.left=s.left+"px",r.classList.remove("relative"),r.classList.add("dropdown-holder")}),100);else{var r=this.$el.querySelectorAll(".dropdown-holder")[0];r.classList.remove("dropdown-holder"),r.classList.add("relative")}},handleChanged:function(e){this.row.$checked=e,this.$emit("updated",this.row)},triggerAsync:function(e){var t=this;e.confirm?confirm(e.confirm.message)&&n.ih[e.type.toLowerCase()](e.url).subscribe((function(e){n.kX.success(e.message).subscribe(),t.$emit("reload",t.row)}),(function(e){t.toggleMenu(),n.kX.error(e.message).subscribe()})):(n.l.emit({identifier:"ns-table-row-action",value:{action:e,row:this.row,component:this}}),this.toggleMenu())}},template:'\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n '}),m=s.default.component("ns-spinner",{data:function(){return{}},mounted:function(){},computed:{validatedSize:function(){return this.size||24},validatedBorder:function(){return this.border||8},validatedAnimation:function(){return this.animation||"fast"}},props:["color","size","border"],template:"\n
    \n
    \n
    \n "}),g=r(7266),_=s.default.component("ns-crud-form",{data:function(){return{form:{},globallyChecked:!1,formValidation:new g.Z,rows:[]}},mounted:function(){this.loadForm()},props:["src","create-url","field-class","return-url","submit-url","submit-method","disable-tabs"],computed:{activeTabFields:function(){for(var e in this.form.tabs)if(this.form.tabs[e].active)return this.form.tabs[e].fields;return[]}},methods:{toggle:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;this.form.tabs[e].active=!0},handleShowOptions:function(e){this.rows.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},submit:function(){var e=this;return this.formValidation.validateForm(this.form).length>0?n.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():(this.formValidation.disableForm(this.form),void 0===this.submitUrl?n.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():void n.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,this.formValidation.extractForm(this.form)).subscribe((function(t){if("success"===t.status){if(e.returnUrl&&e.returnUrl.length>0)return document.location=e.returnUrl;e.$emit("save",t)}e.formValidation.enableForm(e.form)}),(function(t){n.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t),e.formValidation.enableForm(e.form)})))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;n.ih.get("".concat(this.src)).subscribe((function(t){e.form=e.parseForm(t.form),n.kq.doAction("ns-crud-form-loaded",e),e.$emit("updated",e.form)}),(function(e){n.kX.error(e.message,"OKAY",{duration:0}).subscribe()}))},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var r in e.tabs)0===t&&(e.tabs[r].active=!0),e.tabs[r].active=void 0!==e.tabs[r].active&&e.tabs[r].active,e.tabs[r].fields=this.formValidation.createFields(e.tabs[r].fields),t++;return e}},template:'\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Return\n
    \n
    \n
    \n \n \n
    \n

    {{ form.main.description }}

    \n

    \n {{ error.identifier }}\n {{ error.message }}\n

    \n
    \n
    \n
    \n
    {{ tab.label }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n '}),y=s.default.component("ns-textarea",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),x=s.default.component("ns-field",{data:function(){return{}},mounted:function(){},computed:{isInputField:function(){return["text","password","email","number","tel"].includes(this.field.type)},isDateField:function(){return["date"].includes(this.field.type)},isSelectField:function(){return["select"].includes(this.field.type)},isTextarea:function(){return["textarea"].includes(this.field.type)},isCheckbox:function(){return["checkbox"].includes(this.field.type)},isMultiselect:function(){return["multiselect"].includes(this.field.type)},isSwitch:function(){return["switch"].includes(this.field.type)},isMedia:function(){return["media"].includes(this.field.type)},isCkEditor:function(){return["ckeditor"].includes(this.field.type)},isDateTimePicker:function(){return["datetimepicker"].includes(this.field.type)},isCustom:function(){return["custom"].includes(this.field.type)}},props:["field"],methods:{addOption:function(e){"select"===this.field.type&&this.field.options.forEach((function(e){return e.selected=!1})),e.selected=!0;var t=this.field.options.indexOf(e);this.field.options.splice(t,1),this.field.options.unshift(e),this.refreshMultiselect(),this.$emit("change",{action:"addOption",option:e})},refreshMultiselect:function(){this.field.value=this.field.options.filter((function(e){return e.selected})).map((function(e){return e.value}))},removeOption:function(e){e.selected=!1,this.refreshMultiselect(),this.$emit("change",{action:"removeOption",option:e})}},template:'\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n '}),w=s.default.component("ns-multiselect",{data:function(){return{showPanel:!1,search:""}},props:["field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=void 0!==t.selected&&t.selected,e.field.value&&e.field.value.includes(t.value)&&(t.selected=!0),t}))}},methods:{__:f.__,addOption:function(e){this.field.disabled||(this.$emit("addOption",e),this.$forceUpdate(),setTimeout((function(){}),100))},removeOption:function(e,t){var r=this;if(!this.field.disabled)return t.preventDefault(),t.stopPropagation(),this.$emit("removeOption",e),this.$forceUpdate(),setTimeout((function(){r.search=""}),100),!1}},mounted:function(){var e=this;this.field.value&&this.field.value.reverse().forEach((function(t){var r=e.field.options.filter((function(e){return e.value===t}));r.length>=0&&e.addOption(r[0])}))},template:'\n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ option.label }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n
    \n '}),C=s.default.component("ns-switch",{data:function(){return{}},mounted:function(){},computed:{_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=t.value===e.field.value,t}))},hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":""},sizeClass:function(){return" w-1/".concat(this._options.length<=4?this._options.length:4)},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:f.__,setSelected:function(e){this.field.value=e.value,this._options.forEach((function(e){return e.selected=!1})),e.selected=!0,this.$forceUpdate(),this.$emit("change",e.value)}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n

    \n
    \n '}),k=s.default.component("ns-date",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),j=r(9576),S=s.default.component("ns-media-input",{template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n ',computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},data:function(){return{}},props:["placeholder","leading","type","field"],mounted:function(){},methods:{toggleMedia:function(){var e=this;new Promise((function(t,r){p.G.show(j.Z,Object.assign({resolve:t,reject:r},e.field.data||{}))})).then((function(t){"use-selected"===t.event&&(e.field.data&&"url"!==e.field.data.type?e.field.data&&"model"!==e.field.data.type||(e.field.value=t.value[0]):e.field.value=t.value[0].sizes.original,e.$forceUpdate())}))}}}),P=s.default.component("ns-close-button",{template:'\n \n ',methods:{clicked:function(e){this.$emit("click",e)}}}),O=s.default.component("ns-icon-button",{template:'\n \n ',props:["className","buttonClass"],methods:{clicked:function(e){this.$emit("click",e)}}}),$=r(1272),T=r.n($),E=r(5234),V=r.n(E),D=s.default.component("ns-ckeditor",{data:function(){return{editor:V()}},components:{ckeditor:T().component},mounted:function(){},methods:{__:f.__},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),A=s.default.component("ns-tabs",{data:function(){return{childrens:[]}},props:["active"],computed:{activeComponent:function(){var e=this.$children.filter((function(e){return e.active}));return e.length>0&&e[0]}},methods:{toggle:function(e){this.$emit("active",e.identifier),this.$emit("changeTab",e.identifier)}},mounted:function(){this.childrens=this.$children},template:'\n
    \n
    \n
    {{ tab.label }}
    \n
    \n \n
    \n '}),F=s.default.component("ns-tabs-item",{data:function(){return{}},mounted:function(){},props:["label","identifier","padding"],template:'\n
    \n \n
    \n '}),Z=r(8655),I=r(3968),q=r(6598).Z},8655:(e,t,r)=>{"use strict";r.d(t,{V:()=>a});var s=r(538),n=r(381),i=r.n(n),o=r(7389),a=s.default.component("ns-date-time-picker",{template:'\n
    \n \n
    \n \n \n {{ currentDay.format( \'YYYY/MM/DD HH:mm\' ) }}\n N/A\n \n
    \n

    {{ field.description }}

    \n \n
    \n ',props:["field","date"],data:function(){return{visible:!1,hours:0,minutes:0,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},watch:{visible:function(){var e=this;this.visible&&setTimeout((function(){e.$refs.hours.addEventListener("focus",(function(){this.select()})),e.$refs.minutes.addEventListener("focus",(function(){this.select()}))}),100)}},mounted:function(){var e=this;document.addEventListener("mousedown",(function(t){return e.checkClickedItem(t)})),this.field?this.currentDay=[void 0,null,""].includes(this.field.value)?i()():i()(this.field.value):this.currentDay=[void 0,null,""].includes(this.date)?i()():i()(this.date),this.hours=this.currentDay.format("HH"),this.minutes=this.currentDay.format("mm"),this.build()},methods:{__:o.__,detectHoursChange:function(){parseFloat(this.hours)<0&&(this.hours=0),parseFloat(this.hours)>23&&(this.hours=23),this.updateDateTime()},detectMinuteChange:function(){parseFloat(this.minutes)<0&&(this.minutes=0),parseFloat(this.minutes)>59&&(this.minutes=59),this.updateDateTime()},updateDateTime:function(){this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes),this.selectDate(this.currentDay)},checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes);var t=this.currentDay.format("YYYY/MM/DD HH:mm");this.field?(this.field.value=t,this.$emit("change",this.field)):this.$emit("change",this.currentDay)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var r=this.calendar.length-1;if(this.calendar[r].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(i().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}})},4451:(e,t,r)=>{"use strict";r.d(t,{R:()=>n});var s=r(7389),n=r(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:s.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,r)=>{"use strict";r.d(t,{W:()=>c,f:()=>u});var s=r(538),n=r(2077),i=r.n(n),o=r(6740),a=r.n(o),l=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),c=s.default.filter("currency",(function(e){var t,r,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===s){var n={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};r=a()(e,n).format()}else r=i()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(r).concat("after"===ns.currency.ns_currency_position?t:"")})),u=function(e){var t="0.".concat(l);return parseFloat(i()(e).format(t))}},9698:(e,t,r)=>{"use strict";r.d(t,{b:()=>s});var s=r(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,r)=>{"use strict";function s(e,t){for(var r=0;rn});var n=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,(r=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var r in e.tabs){var s=[],n=this.validateFieldsErrors(e.tabs[r].fields);n.length>0&&s.push(n),e.tabs[r].errors=s.flat(),t.push(s.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var r in e)0===t&&(e[r].active=!0),e[r].active=void 0!==e[r].active&&e[r].active,e[r].fields=this.createFields(e[r].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(r){t.fieldPassCheck(e,r)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var r in e.tabs)void 0===t[r]&&(t[r]={}),t[r]=this.extractFields(e.tabs[r].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var r=function(r){var s=r.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===s.length&&e.tabs[s[0]].fields.forEach((function(e){e.name===s[1]&&t.errors[r].forEach((function(t){var r={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(r)}))})),r===e.main.name&&t.errors[r].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var s in t.errors)r(s)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var r=function(r){e.forEach((function(e){e.name===r&&t.errors[r].forEach((function(t){var r={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(r)}))}))};for(var s in t.errors)r(s)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(r,s){r.identifier===t.identifier&&!0===r.invalid&&e.errors.splice(s,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(r,s){!0===r[t.identifier]&&e.errors.splice(s,1)}))}return e}}])&&s(t.prototype,r),n&&s(t,n),e}()},7389:(e,t,r)=>{"use strict";r.d(t,{__:()=>s,c:()=>n});var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},n=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,r)=>{"use strict";function s(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}r.d(t,{Z:()=>s})},6386:(e,t,r)=>{"use strict";function s(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}r.d(t,{Z:()=>s})},2242:(e,t,r)=>{"use strict";r.d(t,{G:()=>o});var s=r(9248);function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};if(n(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var r=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[r-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new s.x}var t,r,o;return t=e,o=[{key:"show",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=new e(s);return n.open(t,r),n}}],(r=[{key:"open",value:function(e){var t,r,s,n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",o.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){n.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var a=Vue.extend(e);this.instance=new a({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=i,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&i(t.prototype,r),o&&i(t,o),e}()},9763:(e,t,r)=>{"use strict";function s(e){POS.changeVisibleSection(e)}r.d(t,{Z:()=>s})},9624:(e,t,r)=>{"use strict";r.d(t,{S:()=>i});var s=r(3260);function n(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return s.Observable.create((function(s){var i=r.__createSnack({message:e,label:t,type:n.type}),o=i.buttonNode,a=(i.textNode,i.snackWrapper,i.sampleSnack);o.addEventListener("click",(function(e){s.onNext(o),s.onCompleted(),a.remove()})),r.__startTimer(n.duration,a)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},r),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},r),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},r),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var r,s=function(){e>0&&!1!==e&&(r=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(r)})),t.addEventListener("mouseleave",(function(){s()})),s()}},{key:"__createSnack",value:function(e){var t=e.message,r=e.label,s=e.type,n=void 0===s?"info":s,i=document.getElementById("snack-wrapper")||document.createElement("div"),o=document.createElement("div"),a=document.createElement("p"),l=document.createElement("div"),c=document.createElement("button"),u="",d="";switch(n){case"info":u="text-white hover:bg-blue-400 bg-blue-500",d="bg-gray-900 text-white";break;case"error":u="text-red-700 hover:bg-white bg-white",d="bg-red-500 text-white";break;case"success":u="text-green-700 hover:bg-white bg-white",d="bg-green-500 text-white"}return a.textContent=t,r&&(c.textContent=r,c.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(u)),l.appendChild(c)),o.appendChild(a),o.appendChild(l),o.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(d)),i.appendChild(o),null===document.getElementById("snack-wrapper")&&(i.setAttribute("id","snack-wrapper"),i.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(i)),{snackWrapper:i,sampleSnack:o,buttonsWrapper:l,buttonNode:c,textNode:a}}}])&&n(t.prototype,r),i&&n(t,i),e}()},279:(e,t,r)=>{"use strict";r.d(t,{$:()=>l});var s=r(162),n=r(7389),i=r(2242),o=r(9531);function a(e,t){for(var r=0;rparseFloat(e.$quantities().quantity)-u)return s.kX.error((0,n.__)("Unable to add the product, there is not enough stock. Remaining %s").replace("%s",(e.$quantities().quantity-u).toString())).subscribe()}r({quantity:1})}else l.open(o.Z,{resolve:r,reject:a,product:c,data:e})}))}}])&&a(t.prototype,r),l&&a(t,l),e}()},9572:(e,t,r)=>{"use strict";var s=r(538),n=(r(824),r(8202)),i=r(1630),o=r.n(i),a=r(8159).Z,l=r(8633).Z,c=r(874).Z;window.nsComponents=Object.assign({},n),s.default.use(o()),new s.default({el:"#pos-app",components:Object.assign({NsPos:a,NsPosCart:l,NsPosGrid:c},window.nsComponents)})},824:(e,t,r)=>{"use strict";var s=r(381),n=r.n(s);ns.date.moment=n()(ns.date.current),ns.date.interval=setInterval((function(){ns.date.moment.add(1,"seconds"),ns.date.current=n()(ns.date.current).add(1,"seconds").format("YYYY-MM-DD HH:mm:ss")}),1e3),ns.date.getNowString=function(){var e=Date.parse((new Date).toLocaleString("en-US",{timeZone:ns.date.timeZone}));return n()(e).format("YYYY-MM-DD HH:mm:ss")},ns.date.getMoment=function(){var e=Date.parse((new Date).toLocaleString("en-US",{timeZone:ns.date.timeZone}));return n()(e)}},6700:(e,t,r)=>{var s={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function n(e){var t=i(e);return r(t)}function i(e){if(!r.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=6700},6598:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});var s=r(381),n=r.n(s);const i={name:"ns-datepicker",props:["label","date"],data:function(){return{visible:!1,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},mounted:function(){document.addEventListener("click",this.checkClickedItem),this.currentDay=[void 0,null].includes(this.date)?n()():n()(this.date),this.build()},methods:{__:r(7389).__,checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.visible=!1,this.$emit("change",e)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var r=this.calendar.length-1;if(this.calendar[r].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(n().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}};const o=(0,r(1900).Z)(i,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"picker"},[r("div",{staticClass:"rounded cursor-pointer bg-white shadow px-1 py-1 flex items-center text-gray-700",on:{click:function(t){e.visible=!e.visible}}},[r("i",{staticClass:"las la-clock text-2xl"}),e._v(" "),r("span",{staticClass:"mx-1 text-sm"},[r("span",[e._v(e._s(e.label||e.__("Date"))+" : ")]),e._v(" "),e.currentDay?r("span",[e._v(e._s(e.currentDay.format("YYYY/MM/DD")))]):e._e(),e._v(" "),null===e.currentDay?r("span",[e._v(e._s(e.__("N/A")))]):e._e()])]),e._v(" "),e.visible?r("div",{staticClass:"relative h-0 w-0 -mb-2"},[r("div",{staticClass:"w-72 mt-2 shadow rounded bg-white anim-duration-300 zoom-in-entrance flex flex-col"},[r("div",{staticClass:"flex-auto"},[r("div",{staticClass:"p-2 flex items-center"},[r("div",[r("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.subMonth()}}},[r("i",{staticClass:"las la-angle-left"})])]),e._v(" "),r("div",{staticClass:"flex flex-auto font-semibold text-gray-700 justify-center"},[e._v(e._s(e.currentDay.format("MMM"))+" "+e._s(e.currentDay.format("YYYY")))]),e._v(" "),r("div",[r("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.addMonth()}}},[r("i",{staticClass:"las la-angle-right"})])])]),e._v(" "),r("div",{staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},[r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sun")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Mon")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Tue")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Wed")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Thr")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Fri")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sat")))])]),e._v(" "),e._l(e.calendar,(function(t,s){return r("div",{key:s,staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},e._l(e.daysOfWeek,(function(s,n){return r("div",{key:n,staticClass:"h-8 flex justify-center items-center text-sm"},[e._l(t,(function(t,n){return[t.dayOfWeek===s?r("div",{key:n,staticClass:"h-full w-full flex items-center justify-center cursor-pointer",class:t.date.format("DD")===e.currentDay.format("DD")?"bg-blue-400 text-white border border-blue-500":"hover:bg-gray-100 border border-gray-200",on:{click:function(r){return e.selectDate(t.date)}}},[e._v("\n "+e._s(t.date.format("DD"))+"\n ")]):e._e()]}))],2)})),0)}))],2),e._v(" "),r("div")])]):e._e()])}),[],!1,null,null,null).exports},3968:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});function s(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const o=(0,r(1900).Z)(i,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,s){return r("div",{key:s,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(r){return e.inputValue(t)}}},[void 0!==t.value?r("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?r("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},9576:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var s=r(162),n=r(8603),i=r(7389);const o={name:"ns-media",props:["popup"],components:{VueUpload:r(2948)},data:function(){return{pages:[{label:(0,i.__)("Upload"),name:"upload",selected:!1},{label:(0,i.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return s.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:n.Z,__:i.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return s.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){s.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){s.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,s.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(r,s){s!==t.response.data.indexOf(e)&&(r.selected=!1)})),e.selected=!e.selected}}};const a=(0,r(1900).Z)(o,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[r("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[r("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),r("ul",e._l(e.pages,(function(t,s){return r("li",{key:s,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(r){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?r("div",{staticClass:"content w-full overflow-hidden flex"},[r("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[r("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[r("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),r("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[r("ul",e._l(e.files,(function(t,s){return r("li",{key:s,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[r("span",[e._v(e._s(t.name))]),e._v(" "),r("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?r("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?r("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[r("div"),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),r("div",{staticClass:"flex flex-auto overflow-hidden"},[r("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[r("div",{staticClass:"flex flex-auto"},[r("div",{staticClass:"p-2 overflow-x-auto"},[r("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,s){return r("div",{key:s},[r("div",{staticClass:"p-2"},[r("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(r){return e.selectResource(t)}}},[r("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?r("div",{staticClass:"flex flex-auto items-center justify-center"},[r("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?r("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[r("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[r("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),r("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[r("p",{staticClass:"flex flex-col mb-2"},[r("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),r("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),r("p",{staticClass:"flex flex-col mb-2"},[r("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),r("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),r("p",{staticClass:"flex flex-col mb-2"},[r("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),r("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),r("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[r("div",{staticClass:"flex -mx-2 flex-shrink-0"},[r("div",{staticClass:"px-2 flex-shrink-0 flex"},[r("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?r("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[r("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?r("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[r("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?r("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[r("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),r("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[r("div",{staticClass:"px-2"},[r("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[r("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),r("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),r("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?r("div",{staticClass:"px-2"},[r("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},8633:(e,t,r)=>{"use strict";r.d(t,{Z:()=>ve});var s=r(7757),n=r.n(s),i=r(2242),o=r(6386),a=r(7389);function l(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r100?100:this.finalValue))}}};var d=r(1900);const f=(0,d.Z)(u,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow min-h-2/5-screen w-6/7-screen md:w-3/5-screen lg:w-3/5-screen xl:w-2/5-screen relative",attrs:{id:"discount-popup"}},[r("div",{staticClass:"flex-shrink-0 py-2 border-b border-gray-200"},["product"===e.type?r("h1",{staticClass:"text-xl font-bold text-gray-700 text-center"},[e._v(e._s(e.__("Product Discount")))]):e._e(),e._v(" "),"cart"===e.type?r("h1",{staticClass:"text-xl font-bold text-gray-700 text-center"},[e._v(e._s(e.__("Cart Discount")))]):e._e()]),e._v(" "),r("div",{staticClass:"h-16 bg-gray-800 text-white border-gray-200 flex items-center justify-center",attrs:{id:"screen"}},[r("h1",{staticClass:"font-bold text-3xl"},["flat"===e.mode?r("span",[e._v(e._s(e._f("currency")(e.finalValue)))]):e._e(),e._v(" "),"percentage"===e.mode?r("span",[e._v(e._s(e.finalValue)+"%")]):e._e()])]),e._v(" "),r("div",{staticClass:"flex",attrs:{id:"switch-mode"}},[r("button",{staticClass:"outline-none w-1/2 py-2 flex items-center justify-center",class:"flat"===e.mode?"bg-gray-800 text-white":"",on:{click:function(t){return e.setPercentageType("flat")}}},[e._v(e._s(e.__("Flat")))]),e._v(" "),r("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),r("button",{staticClass:"outline-none w-1/2 py-2 flex items-center justify-center",class:"percentage"===e.mode?"bg-gray-800 text-white":"",on:{click:function(t){return e.setPercentageType("percentage")}}},[e._v(e._s(e.__("Percentage")))])]),e._v(" "),r("div",{staticClass:"grid grid-flow-row grid-cols-3 grid-rows-3",attrs:{id:"numpad"}},e._l(e.keys,(function(t,s){return r("div",{key:s,staticClass:"hover:bg-blue-400 hover:text-white hover:border-blue-600 text-xl font-bold border border-gray-200 h-24 flex items-center justify-center cursor-pointer",on:{click:function(r){return e.inputValue(t)}}},[void 0!==t.value?r("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?r("i",{staticClass:"las",class:t.icon}):e._e()])})),0)])}),[],!1,null,null,null).exports;var p=r(419);function h(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return v(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r100?100:this.backValue))),"0"===this.backValue&&(this.backValue="")}}};const m=(0,d.Z)(b,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"h-full w-full py-2"},[e.order?r("div",{staticClass:"px-2 pb-2"},[r("div",{staticClass:"grid grid-cols-2 gap-2"},[r("div",{staticClass:"h-16 flex justify-between items-center bg-blue-400 text-white text-xl md:text-3xl p-2",attrs:{id:"details"}},[r("span",[e._v(e._s(e.__("Total"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.total)))])]),e._v(" "),r("div",{staticClass:"cursor-pointer h-16 flex justify-between items-center bg-red-400 text-white text-xl md:text-3xl p-2",attrs:{id:"discount"},on:{click:function(t){return e.toggleDiscount()}}},[r("span",[e._v(e._s(e.__("Discount"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.discount)))])]),e._v(" "),r("div",{staticClass:"h-16 flex justify-between items-center bg-green-400 text-white text-xl md:text-3xl p-2",attrs:{id:"paid"}},[r("span",[e._v(e._s(e.__("Paid"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.tendered)))])]),e._v(" "),r("div",{staticClass:"h-16 flex justify-between items-center bg-teal-400 text-white text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Change"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.change)))])]),e._v(" "),r("div",{staticClass:"col-span-2 h-16 flex justify-between items-center bg-gray-300 text-gray-800 text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Screen"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.backValue/e.number)))])])])]):e._e(),e._v(" "),r("div",{staticClass:"px-2 pb-2"},[r("div",{staticClass:"-mx-2 flex flex-wrap"},[r("div",{staticClass:"pl-2 pr-1 flex-auto"},[r("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,s){return r("div",{key:s,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(r){return e.inputValue(t)}}},[void 0!==t.value?r("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?r("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),r("div",{staticClass:"hover:bg-green-500 col-span-3 bg-green-400 text-2xl text-white border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.makeFullPayment()}}},[e._v("\n "+e._s(e.__("Full Payment")))])],2)]),e._v(" "),r("div",{staticClass:"w-1/2 md:w-72 pr-2 pl-1"},[r("div",{staticClass:"grid grid-flow-row grid-rows-1 gap-2"},[r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:100})}}},[r("span",[e._v(e._s(e._f("currency")(100)))])]),e._v(" "),r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:500})}}},[r("span",[e._v(e._s(e._f("currency")(500)))])]),e._v(" "),r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:1e3})}}},[r("span",[e._v(e._s(e._f("currency")(1e3)))])])])])])])])}),[],!1,null,null,null).exports,g={name:"cash-payment",props:["identifier","label"],components:{samplePayment:m}};const _=(0,d.Z)(g,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("sample-payment",{attrs:{identifier:e.identifier,label:e.label},on:{submit:function(t){return e.$emit("submit")}}})}),[],!1,null,null,null).exports;const y={name:"creditcart-payment",props:["identifier"]};const x=(0,d.Z)(y,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("h1",[e._v("Credit Card")])}),[],!1,null,null,null).exports;const w={name:"bank-payment",props:["identifier","label"],components:{samplePayment:m}};const C=(0,d.Z)(w,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("sample-payment",{attrs:{identifier:e.identifier,label:e.label},on:{submit:function(t){return e.$emit("submit")}}})}),[],!1,null,null,null).exports;var k=r(3968),j=r(162);const S={name:"ns-account-payment",components:{nsNumpad:k.Z},props:["identifier","label"],data:function(){return{subscription:null,screenValue:0,order:null}},methods:{__:a.__,handleChange:function(e){this.screenValue=e},proceedAddingPayment:function(e){var t=parseFloat(e),r=this.order.payments;return t<=0?j.kX.error((0,a.__)("Please provide a valid payment amount.")).subscribe():r.filter((function(e){return"account-payment"===e.identifier})).length>0?j.kX.error((0,a.__)("The customer account can only be used once per order. Consider deleting the previously used payment.")).subscribe():t>this.order.customer.account_amount?j.kX.error((0,a.__)("Not enough funds to add {amount} as a payment. Available balance {balance}.").replace("{amount}",this.$options.filters.currency(t)).replace("{balance}",this.$options.filters.currency(this.order.customer.account_amount))).subscribe():(POS.addPayment({value:t,identifier:"account-payment",selected:!1,label:this.label,readonly:!1}),this.order.customer.account_amount-=t,POS.selectCustomer(this.order.customer),void this.$emit("submit"))},proceedFullPayment:function(){this.proceedAddingPayment(this.order.total)},makeFullPayment:function(){var e=this;Popup.show(p.Z,{title:(0,a.__)("Confirm Full Payment"),message:(0,a.__)("You're about to use {amount} from the customer account to make a payment. Would you like to proceed ?").replace("{amount}",this.$options.filters.currency(this.order.total)),onAction:function(t){t&&e.proceedFullPayment()}})}},mounted:function(){var e=this;this.subscription=POS.order.subscribe((function(t){return e.order=t}))},destroyed:function(){this.subscription.unsubscribe()}};const P=(0,d.Z)(S,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"h-full w-full py-2"},[e.order?r("div",{staticClass:"px-2 pb-2"},[r("div",{staticClass:"grid grid-cols-2 gap-2"},[r("div",{staticClass:"h-16 flex justify-between items-center bg-blue-400 text-white text-xl md:text-3xl p-2",attrs:{id:"details"}},[r("span",[e._v(e._s(e.__("Total"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.total)))])]),e._v(" "),r("div",{staticClass:"cursor-pointer h-16 flex justify-between items-center bg-red-400 text-white text-xl md:text-3xl p-2",attrs:{id:"discount"},on:{click:function(t){return e.toggleDiscount()}}},[r("span",[e._v(e._s(e.__("Discount"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.discount)))])]),e._v(" "),r("div",{staticClass:"h-16 flex justify-between items-center bg-green-400 text-white text-xl md:text-3xl p-2",attrs:{id:"paid"}},[r("span",[e._v(e._s(e.__("Paid"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.tendered)))])]),e._v(" "),r("div",{staticClass:"h-16 flex justify-between items-center bg-teal-400 text-white text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Change"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.change)))])]),e._v(" "),r("div",{staticClass:"col-span-2 h-16 flex justify-between items-center bg-blue-400 text-white text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Current Balance"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.customer.account_amount)))])]),e._v(" "),r("div",{staticClass:"col-span-2 h-16 flex justify-between items-center bg-gray-300 text-gray-800 text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Screen"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.screenValue)))])])])]):e._e(),e._v(" "),r("div",{staticClass:"px-2 pb-2"},[r("div",{staticClass:"-mx-2 flex flex-wrap"},[r("div",{staticClass:"pl-2 pr-1 flex-auto"},[r("ns-numpad",{attrs:{floating:!0},on:{changed:function(t){return e.handleChange(t)},next:function(t){return e.proceedAddingPayment(t)}},scopedSlots:e._u([{key:"numpad-footer",fn:function(){return[r("div",{staticClass:"hover:bg-green-500 col-span-3 bg-green-400 text-2xl text-white border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.makeFullPayment()}}},[e._v("\n "+e._s(e.__("Full Payment")))])]},proxy:!0}])})],1),e._v(" "),r("div",{staticClass:"w-1/2 md:w-72 pr-2 pl-1"},[r("div",{staticClass:"grid grid-flow-row grid-rows-1 gap-2"},[r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:100})}}},[r("span",[e._v(e._s(e._f("currency")(100)))])]),e._v(" "),r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:500})}}},[r("span",[e._v(e._s(e._f("currency")(500)))])]),e._v(" "),r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:1e3})}}},[r("span",[e._v(e._s(e._f("currency")(1e3)))])])])])])])])}),[],!1,null,null,null).exports;var O=r(1957);function $(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function T(e){for(var t=1;t0&&e[0]},expectedPayment:function(){var e=this.order.customer.group.minimal_credit_payment;return this.order.total*e/100}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){switch(t.event){case"click-overlay":e.closePopup()}})),this.order=this.$popupParams.order,this.paymentTypesSubscription=POS.paymentsType.subscribe((function(t){e.paymentsType=t,t.filter((function(e){e.selected&&POS.selectedPaymentType.next(e)}))}))},watch:{activePayment:function(e){this.loadPaymentComponent(e)}},destroyed:function(){this.paymentTypesSubscription.unsubscribe()},methods:{__:a.__,resolveIfQueued:o.Z,loadPaymentComponent:function(e){switch(e.identifier){case"cash-payment":this.currentPaymentComponent=_;break;case"creditcard-payment":this.currentPaymentComponent=x;break;case"bank-payment":this.currentPaymentComponent=C;break;case"account-payment":this.currentPaymentComponent=P;break;default:this.currentPaymentComponent=m}},select:function(e){this.showPayment=!1,POS.setPaymentActive(e)},closePopup:function(){this.$popup.close(),POS.selectedPaymentType.next(null)},deletePayment:function(e){POS.removePayment(e)},selectPaymentAsActive:function(e){this.select(this.paymentsType.filter((function(t){return t.identifier===e.target.value}))[0])},submitOrder:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=i.G.show(O.Z);try{var s=T(T({},POS.order.getValue()),t);POS.submitOrder(s).then((function(t){r.close(),j.kX.success(t.message).subscribe(),POS.printOrder(t.data.order.id),e.$popup.close()}),(function(e){r.close(),j.kX.error(e.message).subscribe()}))}catch(e){r.close(),j.kX.error(error.message).subscribe()}}}};const D=(0,d.Z)(V,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return e.order?r("div",{staticClass:"w-screen h-screen p-4 flex overflow-hidden"},[r("div",{staticClass:"flex flex-col flex-auto lg:flex-row bg-white shadow-xl"},[r("div",{staticClass:"w-full lg:w-56 bg-gray-300 lg:h-full flex justify-between px-2 lg:px-0 lg:block items-center lg:items-start"},[r("h3",{staticClass:"text-xl text-center my-4 font-bold lg:my-8 text-gray-700"},[e._v(e._s(e.__("Payments Gateway")))]),e._v(" "),r("ul",{staticClass:"hidden lg:block"},[e._l(e.paymentsType,(function(t){return r("li",{key:t.identifier,staticClass:"cursor-pointer hover:bg-gray-400 py-2 px-3",class:t.selected&&!e.showPayment?"bg-white text-gray-800":"text-gray-700",on:{click:function(r){return e.select(t)}}},[e._v(e._s(t.label))])})),e._v(" "),r("li",{staticClass:"cursor-pointer text-gray-700 hover:bg-gray-400 py-2 px-3 border-t border-gray-400 mt-4 flex items-center justify-between",class:e.showPayment?"bg-white text-gray-800":"text-gray-700",on:{click:function(t){e.showPayment=!0}}},[r("span",[e._v(e._s(e.__("Payment List")))]),e._v(" "),r("span",{staticClass:"px-2 rounded-full h-8 w-8 flex items-center justify-center bg-green-500 text-white"},[e._v(e._s(e.order.payments.length))])])],2),e._v(" "),r("ns-close-button",{staticClass:"lg:hidden",on:{click:function(t){return e.closePopup()}}})],1),e._v(" "),r("div",{staticClass:"overflow-hidden flex flex-col flex-auto"},[r("div",{staticClass:"flex flex-col flex-auto overflow-hidden"},[r("div",{staticClass:"h-12 bg-gray-300 hidden items-center justify-between lg:flex"},[r("div"),e._v(" "),r("div",{staticClass:"px-2"},[r("ns-close-button",{on:{click:function(t){return e.closePopup()}}})],1)]),e._v(" "),e.showPayment?e._e():r("div",{staticClass:"flex flex-auto overflow-y-auto"},[r(e.currentPaymentComponent,{tag:"component",attrs:{label:e.activePayment.label,identifier:e.activePayment.identifier},on:{submit:function(t){return e.submitOrder()}}})],1),e._v(" "),e.showPayment?r("div",{staticClass:"flex flex-auto overflow-y-auto p-2 flex-col"},[r("h3",{staticClass:"text-center font-bold py-2 text-gray-700"},[e._v(e._s(e.__("List Of Payments")))]),e._v(" "),r("ul",{staticClass:"flex-auto"},[0===e.order.payments.length?r("li",{staticClass:"p-2 bg-gray-200 flex justify-center mb-2 items-center"},[r("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("No Payment added.")))])]):e._e(),e._v(" "),e._l(e.order.payments,(function(t,s){return r("li",{key:s,staticClass:"p-2 bg-gray-200 flex justify-between mb-2 items-center"},[r("span",[e._v(e._s(t.label))]),e._v(" "),r("div",{staticClass:"flex items-center"},[r("span",[e._v(e._s(e._f("currency")(t.value)))]),e._v(" "),r("button",{staticClass:"rounded-full bg-red-400 h-8 w-8 flex items-center justify-center text-white ml-2",on:{click:function(r){return e.deletePayment(t)}}},[r("i",{staticClass:"las la-trash-alt"})])])])}))],2)]):e._e()]),e._v(" "),r("div",{staticClass:"flex flex-col lg:flex-row w-full bg-gray-300 justify-between p-2"},[r("div",{staticClass:"flex mb-1"},[r("div",{staticClass:"flex items-center lg:hidden"},[r("h3",{staticClass:"font-semibold mr-2"},[e._v(e._s(e.__("Select Payment")))]),e._v(" "),r("select",{staticClass:"p-2 rounded border-2 border-blue-400 bg-white shadow",on:{change:function(t){return e.selectPaymentAsActive(t)}}},[r("option",{attrs:{value:""}},[e._v(e._s(e.__("Choose Payment")))]),e._v(" "),e._l(e.paymentsType,(function(t){return r("option",{key:t.identifier,domProps:{selected:e.activePayment.identifier===t.identifier,value:t.identifier},on:{click:function(r){return e.select(t)}}},[e._v(e._s(t.label))])}))],2)])]),e._v(" "),r("div",{staticClass:"flex justify-end"},[e.order.tendered>=e.order.total?r("ns-button",{attrs:{type:e.order.tendered>=e.order.total?"success":"info"},on:{click:function(t){return e.submitOrder()}}},[r("span",[r("i",{staticClass:"las la-cash-register"}),e._v(" "+e._s(e.__("Submit Payment")))])]):e._e(),e._v(" "),e.order.tendered=e.order.total?"success":"info"},on:{click:function(t){return e.submitOrder({payment_status:"unpaid"})}}},[r("span",[r("i",{staticClass:"las la-bookmark"}),e._v(" "+e._s(e.__("Layaway"))+" — "+e._s(e._f("currency")(e.expectedPayment)))])]):e._e()],1)])])])]):e._e()}),[],!1,null,null,null).exports;r(9531);var A=r(279),F=r(3625),Z=r(4326);function I(e,t){for(var r=0;r0&&(e.activeTab="active-coupons")}))},destroyed:function(){this.orderSubscriber.unsubscribe()},methods:{__:a.__,popupCloser:B.Z,popupResolver:o.Z,selectCustomer:function(){Popup.show(Z.Z)},cancel:function(){this.customerCoupon=null,this.couponCode=null},removeCoupon:function(e){this.order.coupons.splice(e,1),POS.refreshCart()},apply:function(){var e=this;try{var t=this.customerCoupon;if(null!==this.customerCoupon.coupon.valid_hours_start&&!ns.date.moment.isAfter(this.customerCoupon.coupon.valid_hours_start)&&this.customerCoupon.coupon.valid_hours_start.length>0)return j.kX.error((0,a.__)("The coupon is out from validity date range.")).subscribe();if(null!==this.customerCoupon.coupon.valid_hours_end&&!ns.date.moment.isBefore(this.customerCoupon.coupon.valid_hours_end)&&this.customerCoupon.coupon.valid_hours_end.length>0)return j.kX.error((0,a.__)("The coupon is out from validity date range.")).subscribe();var r=this.customerCoupon.coupon.products;if(r.length>0){var s=r.map((function(e){return e.product_id}));if(0===this.order.products.filter((function(e){return s.includes(e.product_id)})).length)return j.kX.error((0,a.__)("This coupon requires products that aren't available on the cart at the moment.")).subscribe()}var n=this.customerCoupon.coupon.categories;if(n.length>0){var i=n.map((function(e){return e.category_id}));if(0===this.order.products.filter((function(e){return i.includes(e.$original().category_id)})).length)return j.kX.error((0,a.__)("This coupon requires products that belongs to specific categories that aren't included at the moment.").replace("%s")).subscribe()}this.cancel();var o={active:t.coupon.active,customer_coupon_id:t.id,minimum_cart_value:t.coupon.minimum_cart_value,maximum_cart_value:t.coupon.maximum_cart_value,name:t.coupon.name,type:t.coupon.type,value:0,limit_usage:t.coupon.limit_usage,code:t.coupon.code,discount_value:t.coupon.discount_value,categories:t.coupon.categories,products:t.coupon.products};POS.pushCoupon(o),this.activeTab="active-coupons",setTimeout((function(){e.popupResolver(o)}),500),j.kX.success((0,a.__)("The coupon has applied to the cart.")).subscribe()}catch(e){console.log(e)}},getCouponType:function(e){switch(e){case"percentage_discount":return(0,a.__)("Percentage");case"flat_discount":return(0,a.__)("Flat");default:return(0,a.__)("Unknown Type")}},getDiscountValue:function(e){switch(e.type){case"percentage_discount":return e.discount_value+"%";case"flat_discount":return this.$options.filters.currency(e.discount_value)}},closePopup:function(){this.popupResolver(!1)},setActiveTab:function(e){this.activeTab=e},loadCoupon:function(){var e=this,t=this.couponCode;j.ih.post("/api/nexopos/v4/customers/coupons/".concat(t),{customer_id:this.order.customer_id}).subscribe((function(t){e.customerCoupon=t,j.kX.success((0,a.__)("The coupon has been loaded.")).subscribe()}),(function(e){j.kX.error(e.message||(0,a.__)("An unexpected error occured.")).subscribe()}))}}};const ne=(0,d.Z)(se,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"shadow-lg bg-white w-95vw md:w-3/6-screen lg:w-2/6-screen"},[r("div",{staticClass:"border-b border-gray-200 p-2 flex justify-between items-center"},[r("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Load Coupon")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.closePopup()}}})],1)]),e._v(" "),r("div",{staticClass:"p-1"},[r("ns-tabs",{attrs:{active:e.activeTab},on:{changeTab:function(t){return e.setActiveTab(t)}}},[r("ns-tabs-item",{attrs:{label:e.__("Apply A Coupon"),padding:"p-2",identifier:"apply-coupon"}},[r("div",{staticClass:"border-2 border-blue-400 rounded flex"},[r("input",{directives:[{name:"model",rawName:"v-model",value:e.couponCode,expression:"couponCode"}],ref:"coupon",staticClass:"w-full p-2",attrs:{type:"text",placeholder:e.placeHolder},domProps:{value:e.couponCode},on:{input:function(t){t.target.composing||(e.couponCode=t.target.value)}}}),e._v(" "),r("button",{staticClass:"bg-blue-400 text-white px-3 py-2",on:{click:function(t){return e.loadCoupon()}}},[e._v(e._s(e.__("Load")))])]),e._v(" "),r("div",{staticClass:"pt-2"},[r("p",{staticClass:"p-2 text-center bg-green-100 text-green-600"},[e._v(e._s(e.__("Input the coupon code that should apply to the POS. If a coupon is issued for a customer, that customer must be selected priorly.")))])]),e._v(" "),e.order&&void 0===e.order.customer_id?r("div",{staticClass:"pt-2",on:{click:function(t){return e.selectCustomer()}}},[r("p",{staticClass:"p-2 cursor-pointer text-center bg-red-100 text-red-600"},[e._v(e._s(e.__("Click here to choose a customer.")))])]):e._e(),e._v(" "),e.order&&void 0!==e.order.customer_id?r("div",{staticClass:"pt-2"},[r("p",{staticClass:"p-2 text-center bg-green-100 text-green-600"},[e._v(e._s(e.__("Loading Coupon For : ")+e.order.customer.name+" "+e.order.customer.surname))])]):e._e(),e._v(" "),r("div",{staticClass:"overflow-hidden"},[e.customerCoupon?r("div",{staticClass:"pt-2 fade-in-entrance anim-duration-500 overflow-y-auto h-64"},[r("table",{staticClass:"w-full"},[r("thead",[r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Coupon Name")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.name))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Discount"))+" ("+e._s(e.getCouponType(e.customerCoupon.coupon.type))+")")]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.getDiscountValue(e.customerCoupon.coupon)))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Usage")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.usage+"/"+(e.customerCoupon.limit_usage||e.__("Unlimited"))))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Valid From")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.coupon.valid_hours_start))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Valid Till")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.coupon.valid_hours_end))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Categories")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[r("ul",e._l(e.customerCoupon.coupon.categories,(function(t){return r("li",{key:t.id,staticClass:"rounded-full px-3 py-1 border border-gray-200"},[e._v(e._s(t.category.name))])})),0)])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Products")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[r("ul",e._l(e.customerCoupon.coupon.products,(function(t){return r("li",{key:t.id,staticClass:"rounded-full px-3 py-1 border border-gray-200"},[e._v(e._s(t.product.name))])})),0)])])])])]):e._e()])]),e._v(" "),r("ns-tabs-item",{attrs:{label:e.__("Active Coupons"),padding:"p-1",identifier:"active-coupons"}},[e.order?r("ul",[e._l(e.order.coupons,(function(t,s){return r("li",{key:s,staticClass:"flex justify-between bg-gray-100 items-center px-2 py-1"},[r("div",{staticClass:"flex-auto"},[r("h3",{staticClass:"font-semibold text-gray-700 p-2 flex justify-between"},[r("span",[e._v(e._s(t.name))]),e._v(" "),r("span",[e._v(e._s(e.getDiscountValue(t)))])])]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.removeCoupon(s)}}})],1)])})),e._v(" "),0===e.order.coupons.length?r("li",{staticClass:"flex justify-between bg-gray-100 items-center p-2"},[e._v("\n No coupons applies to the cart.\n ")]):e._e()],2):e._e()])],1)],1),e._v(" "),e.customerCoupon?r("div",{staticClass:"flex"},[r("button",{staticClass:"w-1/2 px-3 py-2 bg-green-400 text-white font-bold",on:{click:function(t){return e.apply()}}},[e._v("\n "+e._s(e.__("Apply"))+"\n ")]),e._v(" "),r("button",{staticClass:"w-1/2 px-3 py-2 bg-red-400 text-white font-bold",on:{click:function(t){return e.cancel()}}},[e._v("\n "+e._s(e.__("Cancel"))+"\n ")])]):e._e()])}),[],!1,null,null,null).exports;const ie={name:"ns-pos-order-settings",mounted:function(){var e=this;nsHttpClient.get("/api/nexopos/v4/fields/ns.pos-order-settings").subscribe((function(t){t.forEach((function(t){t.value=e.$popupParams.order[t.name]||""})),e.fields=e.validation.createFields(t)}),(function(e){})),this.popupCloser()},data:function(){return{fields:[],validation:new Q.Z}},methods:{__,popupCloser,popupResolver,closePopup:function(){this.popupResolver(!1)},saveSettings:function(){var e=this.validation.extractFields(this.fields);this.popupResolver(e)}}};const oe=(0,d.Z)(ie,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"shadow-lg flex flex-col bg-white w-95vw h-95vh md:w-3/5-screen md:h-3/5-screen lg:w-2/5-screen"},[r("div",{staticClass:"p-2 border-b items-center flex justify-between"},[r("h3",{staticClass:"text-semibold"},[e._v(e._s(e.__("Order Settings")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.closePopup()}}})],1)]),e._v(" "),r("div",{staticClass:"p-2 flex-auto bg-gray-100 overflow-y-auto"},e._l(e.fields,(function(e,t){return r("ns-field",{key:t,attrs:{field:e}})})),1),e._v(" "),r("div",{staticClass:"p-2 flex justify-end"},[r("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.saveSettings()}}},[e._v(e._s(e.__("Save")))])],1)])}),[],!1,null,null,null).exports;const ae={name:"ns-pos-product-price-product",components:{nsNumpad:k.Z},computed:{product:function(){return this.$popupParams.product}},data:function(){return{value:0}},mounted:function(){this.value=this.product.unit_price,this.popupCloser()},methods:{popupResolver,popupCloser,__,updateProductPrice:function(e){this.value=e},resolveProductPrice:function(e){this.popupResolver(e)}}};const le=(0,d.Z)(ae,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow-lg w-95vw md:w-3/5-screen lg:w-2/5-screen"},[r("div",{staticClass:"popup-heading"},[r("h3",[e._v(e._s(e.__("Product Price")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.popupResolver(!1)}}})],1)]),e._v(" "),r("div",{staticClass:"flex flex-col"},[r("div",{staticClass:"h-16 flex items-center justify-center bg-gray-800 text-white font-bold"},[r("h2",{staticClass:"text-2xl"},[e._v(e._s(e._f("currency")(e.value)))])]),e._v(" "),r("div",{staticClass:"p-2"},[r("ns-numpad",{attrs:{floating:!0,value:e.product.unit_price},on:{changed:function(t){return e.updateProductPrice(t)},next:function(t){return e.resolveProductPrice(t)}}})],1)])])}),[],!1,null,null,null).exports;function ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function ue(e){for(var t=1;t0&&void 0!==e[0]?e[0]:"settings",r.prev=1,r.next=4,new Promise((function(e,r){var n=t.order.taxes,o=t.order.tax_group_id,a=t.order.tax_type;i.G.show(te,{resolve:e,reject:r,taxes:n,tax_group_id:o,tax_type:a,activeTab:s})}));case 4:o=r.sent,a=ue(ue({},t.order),o),POS.order.next(a),POS.refreshCart(),r.next=13;break;case 10:r.prev=10,r.t0=r.catch(1),console.log(r.t0);case 13:case"end":return r.stop()}}),r,null,[[1,10]])})))()},openTaxSummary:function(){this.selectTaxGroup("summary")},voidOngoingOrder:function(){POS.voidOrder(this.order)},holdOrder:function(){var e=this;return pe(n().mark((function t(){var r,s,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!("hold"!==e.order.payment_status&&e.order.payments.length>0)){t.next=2;break}return t.abrupt("return",j.kX.error("Unable to hold an order which payment status has been updated already.").subscribe());case 2:r=j.kq.applyFilters("ns-hold-queue",[q,z,X]),t.t0=n().keys(r);case 4:if((t.t1=t.t0()).done){t.next=18;break}return s=t.t1.value,t.prev=6,o=new r[s](e.order),t.next=10,o.run();case 10:t.sent,t.next=16;break;case 13:return t.prev=13,t.t2=t.catch(6),t.abrupt("return",!1);case 16:t.next=4;break;case 18:j.kq.applyFilters("ns-override-hold-popup",(function(){new Promise((function(t,r){i.G.show(Y,{resolve:t,reject:r,order:e.order})})).then((function(t){e.order.title=t.title,e.order.payment_status="hold",POS.order.next(e.order);var r=i.G.show(O.Z);POS.submitOrder().then((function(e){r.close(),j.kX.success(e.message).subscribe()}),(function(e){r.close(),j.kX.error(e.message).subscribe()}))}))}))();case 20:case"end":return t.stop()}}),t,null,[[6,13]])})))()},openDiscountPopup:function(e,t){return this.settings.products_discount||"product"!==t?this.settings.cart_discount||"cart"!==t?void i.G.show(f,{reference:e,type:t,onSubmit:function(r){"product"===t?POS.updateProduct(e,r):"cart"===t&&POS.updateCart(e,r)}},{popupClass:"bg-white h:2/3 shadow-lg xl:w-1/4 lg:w-2/5 md:w-2/3 w-full"}):j.kX.error("You're not allowed to add a discount on the cart.").subscribe():j.kX.error("You're not allowed to add a discount on the product.").subscribe()},selectCustomer:function(){i.G.show(Z.Z)},toggleMode:function(e){"normal"===e.mode?i.G.show(p.Z,{title:"Enable WholeSale Price",message:"Would you like to switch to wholesale price ?",onAction:function(t){t&&POS.updateProduct(e,{mode:"wholesale"})}}):i.G.show(p.Z,{title:"Enable Normal Price",message:"Would you like to switch to normal price ?",onAction:function(t){t&&POS.updateProduct(e,{mode:"normal"})}})},remove:function(e){i.G.show(p.Z,{title:"Confirm Your Action",message:"Would you like to delete this product ?",onAction:function(t){t&&POS.removeProduct(e)}})},changeQuantity:function(e){new A.$(e).run({unit_quantity_id:e.unit_quantity_id,unit_name:e.unit_name,$quantities:e.$quantities}).then((function(t){POS.updateProduct(e,t)}))},payOrder:function(){var e=this;return pe(n().mark((function t(){var r,s,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r=[q,z,X,L],t.t0=n().keys(r);case 2:if((t.t1=t.t0()).done){t.next=16;break}return s=t.t1.value,t.prev=4,i=new r[s](e.order),t.next=8,i.run();case 8:t.sent,t.next=14;break;case 11:return t.prev=11,t.t2=t.catch(4),t.abrupt("return",!1);case 14:t.next=2;break;case 16:case"end":return t.stop()}}),t,null,[[4,11]])})))()},openOrderType:function(){i.G.show(F.Z)},openShippingPopup:function(){i.G.show(H.Z)}}};const ve=(0,d.Z)(he,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex-auto flex flex-col",attrs:{id:"pos-cart"}},["cart"===e.visibleSection?r("div",{staticClass:"flex pl-2",attrs:{id:"tools"}},[r("div",{staticClass:"flex cursor-pointer rounded-tl-lg rounded-tr-lg px-3 py-2 bg-white font-semibold text-gray-700",on:{click:function(t){return e.switchTo("cart")}}},[r("span",[e._v(e._s(e.__("Cart")))]),e._v(" "),e.order?r("span",{staticClass:"flex items-center justify-center text-sm rounded-full h-6 w-6 bg-green-500 text-white ml-1"},[e._v(e._s(e.order.products.length))]):e._e()]),e._v(" "),r("div",{staticClass:"cursor-pointer rounded-tl-lg rounded-tr-lg px-3 py-2 bg-gray-300 border-t border-r border-l border-gray-300 text-gray-600",on:{click:function(t){return e.switchTo("grid")}}},[e._v("\n "+e._s(e.__("Products"))+"\n ")])]):e._e(),e._v(" "),r("div",{staticClass:"rounded shadow bg-white flex-auto flex overflow-hidden"},[r("div",{staticClass:"cart-table flex flex-auto flex-col overflow-hidden"},[r("div",{staticClass:"w-full p-2 border-b border-gray-300",attrs:{id:"cart-toolbox"}},[r("div",{staticClass:"border border-gray-300 rounded overflow-hidden"},[r("div",{staticClass:"flex flex-wrap"},[r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none",on:{click:function(t){return e.openNotePopup()}}},[r("i",{staticClass:"las la-comment"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Comments")))])])]),e._v(" "),r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none flex items-center",on:{click:function(t){return e.selectTaxGroup()}}},[r("i",{staticClass:"las la-balance-scale-left"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Taxes")))]),e._v(" "),e.order.taxes&&e.order.taxes.length>0?r("span",{staticClass:"ml-1 rounded-full flex items-center justify-center h-6 w-6 bg-blue-400 text-white"},[e._v(e._s(e.order.taxes.length))]):e._e()])]),e._v(" "),r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none flex items-center",on:{click:function(t){return e.selectCoupon()}}},[r("i",{staticClass:"las la-tags"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Coupons")))]),e._v(" "),e.order.coupons&&e.order.coupons.length>0?r("span",{staticClass:"ml-1 rounded-full flex items-center justify-center h-6 w-6 bg-blue-400 text-white"},[e._v(e._s(e.order.coupons.length))]):e._e()])]),e._v(" "),r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none flex items-center",on:{click:function(t){return e.defineOrderSettings()}}},[r("i",{staticClass:"las la-tools"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Settings")))])])])])])]),e._v(" "),r("div",{staticClass:"w-full text-gray-700 font-semibold flex",attrs:{id:"cart-table-header"}},[r("div",{staticClass:"w-full lg:w-4/6 p-2 border border-l-0 border-t-0 border-gray-200 bg-gray-100"},[e._v(e._s(e.__("Product")))]),e._v(" "),r("div",{staticClass:"hidden lg:flex lg:w-1/6 p-2 border-b border-t-0 border-gray-200 bg-gray-100"},[e._v(e._s(e.__("Quantity")))]),e._v(" "),r("div",{staticClass:"hidden lg:flex lg:w-1/6 p-2 border border-r-0 border-t-0 border-gray-200 bg-gray-100"},[e._v(e._s(e.__("Total")))])]),e._v(" "),r("div",{staticClass:"flex flex-auto flex-col overflow-auto",attrs:{id:"cart-products-table"}},[0===e.products.length?r("div",{staticClass:"text-gray-700 flex"},[r("div",{staticClass:"w-full text-center py-4 border-b border-gray-200"},[r("h3",{staticClass:"text-gray-600"},[e._v(e._s(e.__("No products added...")))])])]):e._e(),e._v(" "),e._l(e.products,(function(t,s){return r("div",{key:t.barcode,staticClass:"text-gray-700 flex",attrs:{"product-index":s}},[r("div",{staticClass:"w-full lg:w-4/6 p-2 border border-l-0 border-t-0 border-gray-200"},[r("div",{staticClass:"flex justify-between product-details mb-1"},[r("h3",{staticClass:"font-semibold"},[e._v("\n "+e._s(t.name)+" — "+e._s(t.unit_name)+"\n ")]),e._v(" "),r("div",{staticClass:"-mx-1 flex product-options"},[r("div",{staticClass:"px-1"},[r("a",{staticClass:"hover:text-red-400 cursor-pointer outline-none border-dashed py-1 border-b border-red-400 text-sm",on:{click:function(r){return e.remove(t)}}},[r("i",{staticClass:"las la-trash text-xl"})])]),e._v(" "),r("div",{staticClass:"px-1"},[r("a",{staticClass:"hover:text-blue-600 cursor-pointer outline-none border-dashed py-1 border-b text-sm",class:"wholesale"===t.mode?"text-green-600 border-green-600":"border-blue-400",on:{click:function(r){return e.toggleMode(t)}}},[r("i",{staticClass:"las la-award text-xl"})])])])]),e._v(" "),r("div",{staticClass:"flex justify-between product-controls"},[r("div",{staticClass:"-mx-1 flex flex-wrap"},[r("div",{staticClass:"px-1 w-1/2 md:w-auto mb-1"},[r("a",{staticClass:"cursor-pointer outline-none border-dashed py-1 border-b text-sm",class:"wholesale"===t.mode?"text-green-600 hover:text-green-700 border-green-600":"hover:text-blue-400 border-blue-400",on:{click:function(r){return e.changeProductPrice(t)}}},[e._v(e._s(e.__("Price"))+" : "+e._s(e._f("currency")(t.unit_price)))])]),e._v(" "),r("div",{staticClass:"px-1 w-1/2 md:w-auto mb-1"},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(r){return e.openDiscountPopup(t,"product")}}},[e._v(e._s(e.__("Discount"))+" "),"percentage"===t.discount_type?r("span",[e._v(e._s(t.discount_percentage)+"%")]):e._e(),e._v(" : "+e._s(e._f("currency")(t.discount)))])]),e._v(" "),r("div",{staticClass:"px-1 w-1/2 md:w-auto mb-1 lg:hidden"},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(r){return e.changeQuantity(t)}}},[e._v(e._s(e.__("Quantity :"))+" "+e._s(t.quantity))])]),e._v(" "),r("div",{staticClass:"px-1 w-1/2 md:w-auto mb-1 lg:hidden"},[r("span",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm"},[e._v(e._s(e.__("Total :"))+" "+e._s(e._f("currency")(t.total_price)))])])])])]),e._v(" "),r("div",{staticClass:"hidden lg:flex w-1/6 p-2 border-b border-gray-200 items-center justify-center cursor-pointer hover:bg-blue-100",on:{click:function(r){return e.changeQuantity(t)}}},[r("span",{staticClass:"border-b border-dashed border-blue-400 p-2"},[e._v(e._s(t.quantity))])]),e._v(" "),r("div",{staticClass:"hidden lg:flex w-1/6 p-2 border border-r-0 border-t-0 border-gray-200 items-center justify-center"},[e._v(e._s(e._f("currency")(t.total_price)))])])}))],2),e._v(" "),r("div",{staticClass:"flex",attrs:{id:"cart-products-summary"}},["both"===e.visibleSection?r("table",{staticClass:"table w-full text-sm text-gray-700"},[r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.selectCustomer()}}},[e._v("Customer : "+e._s(e.customerName))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[e._v(e._s(e.__("Sub Total")))]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2 text-right",attrs:{width:"200"}},[e._v(e._s(e._f("currency")(e.order.subtotal)))])]),e._v(" "),r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openOrderType()}}},[e._v(e._s(e.__("Type :"))+" "+e._s(e.selectedType))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("span",[e._v(e._s(e.__("Discount")))]),e._v(" "),"percentage"===e.order.discount_type?r("span",[e._v("("+e._s(e.order.discount_percentage)+"%)")]):e._e(),e._v(" "),"flat"===e.order.discount_type?r("span",[e._v("("+e._s(e.__("Flat"))+")")]):e._e()]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2 text-right",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openDiscountPopup(e.order,"cart")}}},[e._v(e._s(e._f("currency")(e.order.discount)))])])]),e._v(" "),e.order.type&&"delivery"===e.order.type.identifier?r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}}),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openShippingPopup()}}},[e._v(e._s(e.__("Shipping")))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2 text-right",attrs:{width:"200"}},[e._v(e._s(e._f("currency")(e.order.shipping)))])]):e._e(),e._v(" "),r("tr",{staticClass:"bg-green-200"},[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[e.order?r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openTaxSummary()}}},[e._v("Tax : "+e._s(e._f("currency")(e.order.tax_value)))]):e._e()]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[e._v(e._s(e.__("Total")))]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2 text-right",attrs:{width:"200"}},[e._v(e._s(e._f("currency")(e.order.total)))])])]):e._e(),e._v(" "),"cart"===e.visibleSection?r("table",{staticClass:"table w-full text-sm text-gray-700"},[r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.selectCustomer()}}},[e._v(e._s(e.__("Customer :"))+" "+e._s(e.customerName))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("div",{staticClass:"flex justify-between"},[r("span",[e._v(e._s(e.__("Sub Total")))]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.subtotal)))])])])]),e._v(" "),r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openOrderType()}}},[e._v(e._s(e.__("Type :"))+" "+e._s(e.selectedType))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("div",{staticClass:"flex justify-between items-center"},[r("p",[r("span",[e._v(e._s(e.__("Discount")))]),e._v(" "),"percentage"===e.order.discount_type?r("span",[e._v("("+e._s(e.order.discount_percentage)+"%)")]):e._e(),e._v(" "),"flat"===e.order.discount_type?r("span",[e._v("("+e._s(e.__("Flat"))+")")]):e._e()]),e._v(" "),r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openDiscountPopup(e.order,"cart")}}},[e._v(e._s(e._f("currency")(e.order.discount)))])])])]),e._v(" "),e.order.type&&"delivery"===e.order.type.identifier?r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}}),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openShippingPopup()}}},[e._v(e._s(e.__("Shipping")))]),e._v(" "),r("span")])]):e._e(),e._v(" "),r("tr",{staticClass:"bg-green-200"},[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[e.order?r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openTaxSummary()}}},[e._v(e._s(e.__("Tax :"))+" "+e._s(e._f("currency")(e.order.tax_value)))]):e._e()]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("div",{staticClass:"flex justify-between w-full"},[r("span",[e._v(e._s(e.__("Total")))]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.total)))])])])])]):e._e()]),e._v(" "),r("div",{staticClass:"h-16 flex flex-shrink-0 border-t border-gray-200",attrs:{id:"cart-bottom-buttons"}},[r("div",{staticClass:"flex-shrink-0 w-1/4 flex items-center font-bold cursor-pointer justify-center bg-green-500 text-white hover:bg-green-600 border-r border-green-600 flex-auto",attrs:{id:"pay-button"},on:{click:function(t){return e.payOrder()}}},[r("i",{staticClass:"mr-2 text-2xl lg:text-xl las la-cash-register"}),e._v(" "),r("span",{staticClass:"text-lg hidden md:inline lg:text-2xl"},[e._v(e._s(e.__("Pay")))])]),e._v(" "),r("div",{staticClass:"flex-shrink-0 w-1/4 flex items-center font-bold cursor-pointer justify-center bg-blue-500 text-white border-r hover:bg-blue-600 border-blue-600 flex-auto",attrs:{id:"hold-button"},on:{click:function(t){return e.holdOrder()}}},[r("i",{staticClass:"mr-2 text-2xl lg:text-xl las la-pause"}),e._v(" "),r("span",{staticClass:"text-lg hidden md:inline lg:text-2xl"},[e._v(e._s(e.__("Hold")))])]),e._v(" "),r("div",{staticClass:"flex-shrink-0 w-1/4 flex items-center font-bold cursor-pointer justify-center bg-white border-r border-gray-200 hover:bg-indigo-100 flex-auto text-gray-700",attrs:{id:"discount-button"},on:{click:function(t){return e.openDiscountPopup(e.order,"cart")}}},[r("i",{staticClass:"mr-2 text-2xl lg:text-xl las la-percent"}),e._v(" "),r("span",{staticClass:"text-lg hidden md:inline lg:text-2xl"},[e._v(e._s(e.__("Discount")))])]),e._v(" "),r("div",{staticClass:"flex-shrink-0 w-1/4 flex items-center font-bold cursor-pointer justify-center bg-red-500 text-white border-gray-200 hover:bg-red-600 flex-auto",attrs:{id:"void-button"},on:{click:function(t){return e.voidOngoingOrder(e.order)}}},[r("i",{staticClass:"mr-2 text-2xl lg:text-xl las la-trash"}),e._v(" "),r("span",{staticClass:"text-lg hidden md:inline lg:text-2xl"},[e._v(e._s(e.__("Void")))])])])])])])}),[],!1,null,null,null).exports},874:(e,t,r)=>{"use strict";r.d(t,{Z:()=>u});var s=r(162),n=r(9763),i=r(8603);const o={name:"ns-pos-search-product",data:function(){return{searchValue:"",products:[],isLoading:!1}},mounted:function(){this.$refs.searchField.focus(),this.popupCloser()},methods:{__:r(7389).__,popupCloser:i.Z,addToCart:function(e){POS.addToCart(e),this.$popup.close()},search:function(){var e=this;this.isLoading=!0,s.ih.post("/api/nexopos/v4/products/search",{search:this.searchValue}).subscribe((function(t){e.isLoading=!1,e.products=t,1===e.products.length&&e.addToCart(e.products[0])}),(function(t){e.isLoading=!1,s.kX.error(t.message).subscribe()}))}}};var a=r(1900);const l=(0,a.Z)(o,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow-lg w-95vw h-95vh md:h-3/5-screen md:w-2/4-screen flex flex-col overflow-hidden"},[r("div",{staticClass:"p-2 border-b border-gray-300 flex justify-between items-center"},[r("h3",{staticClass:"text-gray-700"},[e._v(e._s(e.__("Search Product")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),r("div",{staticClass:"flex-auto overflow-hidden flex flex-col"},[r("div",{staticClass:"p-2 border-b border-gray-300"},[r("div",{staticClass:"flex border-blue-400 border-2 rounded overflow-hidden"},[r("input",{directives:[{name:"model",rawName:"v-model",value:e.searchValue,expression:"searchValue"}],ref:"searchField",staticClass:"p-2 outline-none flex-auto text-gray-700 bg-blue-100",attrs:{type:"text"},domProps:{value:e.searchValue},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.search()},input:function(t){t.target.composing||(e.searchValue=t.target.value)}}}),e._v(" "),r("button",{staticClass:"px-2 bg-blue-400 text-white",on:{click:function(t){return e.search()}}},[e._v(e._s(e.__("Search")))])])]),e._v(" "),r("div",{staticClass:"overflow-y-auto flex-auto relative"},[r("ul",[e._l(e.products,(function(t){return r("li",{key:t.id,staticClass:"hover:bg-blue-100 cursor-pointer p-2 flex justify-between border-b",on:{click:function(r){return e.addToCart(t)}}},[r("div",{staticClass:"text-gray-700"},[e._v("\n "+e._s(t.name)+"\n ")]),e._v(" "),r("div")])})),e._v(" "),0===e.products.length?r("li",{staticClass:"text-gray-700 text-center p-2"},[e._v(e._s(e.__("There is nothing to display. Have you started the search ?")))]):e._e()],2),e._v(" "),e.isLoading?r("div",{staticClass:"absolute h-full w-full flex items-center justify-center z-10 top-0",staticStyle:{background:"rgb(187 203 214 / 29%)"}},[r("ns-spinner")],1):e._e()])])])}),[],!1,null,null,null).exports,c={name:"ns-pos-grid",data:function(){return{items:Array.from({length:1e3},(function(e,t){return{data:"#"+t}})),products:[],categories:[],breadcrumbs:[],autoFocus:!1,barcode:"",previousCategory:null,order:null,visibleSection:null,breadcrumbsSubsribe:null,orderSubscription:null,visibleSectionSubscriber:null,currentCategory:null,interval:null,searchTimeout:null,gridItemsWidth:0,gridItemsHeight:0,screenSubscriber:null,rebuildGridTimeout:null,rebuildGridComplete:!1}},computed:{hasCategories:function(){return this.categories.length>0}},watch:{barcode:function(){var e=this;clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((function(){e.submitSearch(e.barcode)}),200)}},mounted:function(){var e=this;this.loadCategories(),this.breadcrumbsSubsribe=POS.breadcrumbs.subscribe((function(t){e.breadcrumbs=t})),this.visibleSectionSubscriber=POS.visibleSection.subscribe((function(t){e.visibleSection=t})),this.screenSubscriber=POS.screen.subscribe((function(t){clearTimeout(e.rebuildGridTimeout),e.rebuildGridComplete=!1,e.rebuildGridTimeout=setTimeout((function(){e.rebuildGridComplete=!0,e.computeGridWidth()}),500)})),this.orderSubscription=POS.order.subscribe((function(t){return e.order=t})),this.interval=setInterval((function(){return e.checkFocus()}),500)},destroyed:function(){this.orderSubscription.unsubscribe(),this.breadcrumbsSubsribe.unsubscribe(),this.visibleSectionSubscriber.unsubscribe(),this.screenSubscriber.unsubscribe(),clearInterval(this.interval)},methods:{switchTo:n.Z,computeGridWidth:function(){null!==document.getElementById("grid-items")&&(this.gridItemsWidth=document.getElementById("grid-items").offsetWidth,this.gridItemsHeight=document.getElementById("grid-items").offsetHeight)},cellSizeAndPositionGetter:function(e,t){var r={xs:{width:this.gridItemsWidth/2,items:2,height:200},sm:{width:this.gridItemsWidth/2,items:2,height:200},md:{width:this.gridItemsWidth/3,items:3,height:150},lg:{width:this.gridItemsWidth/4,items:4,height:150},xl:{width:this.gridItemsWidth/6,items:6,height:150}},s=r[POS.responsive.screenIs].width,n=r[POS.responsive.screenIs].height;return{width:s-0,height:n,x:t%r[POS.responsive.screenIs].items*s-0,y:parseInt(t/r[POS.responsive.screenIs].items)*n}},openSearchPopup:function(){Popup.show(l)},submitSearch:function(e){var t=this;e.length>0&&s.ih.get("/api/nexopos/v4/products/search/using-barcode/".concat(e)).subscribe((function(e){t.barcode="",POS.addToCart(e.product)}),(function(e){t.barcode="",s.kX.error(e.message).subscribe()}))},checkFocus:function(){this.autoFocus&&(0===document.querySelectorAll(".is-popup").length&&this.$refs.search.focus())},loadCategories:function(e){var t=this;s.ih.get("/api/nexopos/v4/categories/pos/".concat(e?e.id:"")).subscribe((function(e){t.categories=e.categories.map((function(e){return{data:e}})),t.products=e.products.map((function(e){return{data:e}})),t.previousCategory=e.previousCategory,t.currentCategory=e.currentCategory,t.updateBreadCrumb(t.currentCategory)}))},updateBreadCrumb:function(e){if(e){var t=this.breadcrumb.filter((function(t){return t.id===e.id}));if(t.length>0){var r=!0,s=this.breadcrumb.filter((function(e){return e.id===t[0].id&&r?(r=!1,!0):r}));this.breadcrumb=s}else this.breadcrumb.push(e)}else this.breadcrumb=[];POS.breadcrumbs.next(this.breadcrumb)},addToTheCart:function(e){POS.addToCart(e)}}};const u=(0,a.Z)(c,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex-auto flex flex-col",attrs:{id:"pos-grid"}},["grid"===e.visibleSection?r("div",{staticClass:"flex pl-2",attrs:{id:"tools"}},[r("div",{staticClass:"flex cursor-pointer rounded-tl-lg rounded-tr-lg px-3 py-2 bg-gray-300 border-t border-r border-l border-gray-300 text-gray-600",on:{click:function(t){return e.switchTo("cart")}}},[r("span",[e._v("Cart")]),e._v(" "),e.order?r("span",{staticClass:"flex items-center justify-center text-sm rounded-full h-6 w-6 bg-green-500 text-white ml-1"},[e._v(e._s(e.order.products.length))]):e._e()]),e._v(" "),r("div",{staticClass:"cursor-pointer rounded-tl-lg rounded-tr-lg px-3 py-2 bg-white font-semibold text-gray-700",on:{click:function(t){return e.switchTo("grid")}}},[e._v("\n Products\n ")])]):e._e(),e._v(" "),r("div",{staticClass:"rounded shadow bg-white overflow-hidden flex-auto flex flex-col"},[r("div",{staticClass:"p-2 border-b border-gray-200",attrs:{id:"grid-header"}},[r("div",{staticClass:"border rounded flex border-gray-300 overflow-hidden"},[r("button",{staticClass:"w-10 h-10 bg-gray-200 border-r border-gray-300 outline-none",on:{click:function(t){return e.openSearchPopup()}}},[r("i",{staticClass:"las la-search"})]),e._v(" "),r("button",{staticClass:"outline-none w-10 h-10 border-r border-gray-300",class:e.autoFocus?"pos-button-clicked bg-gray-300":"bg-gray-200",on:{click:function(t){e.autoFocus=!e.autoFocus}}},[r("i",{staticClass:"las la-barcode"})]),e._v(" "),r("input",{directives:[{name:"model",rawName:"v-model",value:e.barcode,expression:"barcode"}],ref:"search",staticClass:"flex-auto outline-none px-2 bg-gray-100",attrs:{type:"text"},domProps:{value:e.barcode},on:{input:function(t){t.target.composing||(e.barcode=t.target.value)}}})])]),e._v(" "),r("div",{staticClass:"p-2 border-gray-200",attrs:{id:"grid-breadscrumb"}},[r("ul",{staticClass:"flex"},[r("li",[r("a",{staticClass:"px-3 text-gray-700",attrs:{href:"javascript:void(0)"},on:{click:function(t){return e.loadCategories()}}},[e._v("Home ")]),e._v(" "),r("i",{staticClass:"las la-angle-right"})]),e._v(" "),r("li",e._l(e.breadcrumbs,(function(t){return r("a",{key:t.id,staticClass:"px-3 text-gray-700",attrs:{href:"javascript:void(0)"},on:{click:function(r){return e.loadCategories(t)}}},[e._v(e._s(t.name)+" "),r("i",{staticClass:"las la-angle-right"})])})),0)])]),e._v(" "),r("div",{staticClass:"overflow-hidden h-full flex-col flex",attrs:{id:"grid-items"}},[e.rebuildGridComplete?e._e():r("div",{staticClass:"h-full w-full flex-col flex items-center justify-center"},[r("ns-spinner"),e._v(" "),r("span",{staticClass:"text-gray-600 my-2"},[e._v("Rebuilding...")])],1),e._v(" "),e.rebuildGridComplete?[e.hasCategories?r("VirtualCollection",{attrs:{cellSizeAndPositionGetter:e.cellSizeAndPositionGetter,collection:e.categories,height:e.gridItemsHeight,width:e.gridItemsWidth},scopedSlots:e._u([{key:"cell",fn:function(t){var s=t.data;return r("div",{staticClass:"w-full h-full"},[r("div",{key:s.id,staticClass:"hover:bg-gray-200 w-full h-full cursor-pointer border border-gray-200 flex flex-col items-center justify-center overflow-hidden",on:{click:function(t){return e.loadCategories(s)}}},[r("div",{staticClass:"h-full w-full flex items-center justify-center"},[s.preview_url?r("img",{staticClass:"object-cover h-full",attrs:{src:s.preview_url,alt:s.name}}):e._e(),e._v(" "),s.preview_url?e._e():r("i",{staticClass:"las la-image text-gray-600 text-6xl"})]),e._v(" "),r("div",{staticClass:"h-0 w-full"},[r("div",{staticClass:"relative w-full flex items-center justify-center -top-10 h-20 py-2",staticStyle:{background:"rgb(255 255 255 / 73%)"}},[r("h3",{staticClass:"text-sm font-bold text-gray-700 py-2 text-center"},[e._v(e._s(s.name))])])])])])}}],null,!1,1415940505)}):e._e(),e._v(" "),e.hasCategories?e._e():r("VirtualCollection",{attrs:{cellSizeAndPositionGetter:e.cellSizeAndPositionGetter,collection:e.products,height:e.gridItemsHeight,width:e.gridItemsWidth},scopedSlots:e._u([{key:"cell",fn:function(t){var s=t.data;return r("div",{staticClass:"w-full h-full"},[r("div",{key:s.id,staticClass:"hover:bg-gray-200 w-full h-full cursor-pointer border border-gray-200 flex flex-col items-center justify-center overflow-hidden",on:{click:function(t){return e.addToTheCart(s)}}},[r("div",{staticClass:"h-full w-full flex items-center justify-center overflow-hidden"},[s.galleries&&s.galleries.filter((function(e){return 1===e.featured})).length>0?r("img",{staticClass:"object-cover h-full",attrs:{src:s.galleries.filter((function(e){return 1===e.featured}))[0].url,alt:s.name}}):e._e(),e._v(" "),s.galleries&&0!==s.galleries.filter((function(e){return 1===e.featured})).length?e._e():r("i",{staticClass:"las la-image text-gray-600 text-6xl"})]),e._v(" "),r("div",{staticClass:"h-0 w-full"},[r("div",{staticClass:"relative w-full flex flex-col items-center justify-center -top-10 h-20 p-2",staticStyle:{background:"rgb(255 255 255 / 73%)"}},[r("h3",{staticClass:"text-sm text-gray-700 text-center w-full"},[e._v(e._s(s.name))]),e._v(" "),s.unit_quantities&&1===s.unit_quantities.length?r("span",{staticClass:"text-sm text-gray-600"},[e._v(e._s(e._f("currency")(s.unit_quantities[0].sale_price)))]):e._e()])])])])}}],null,!1,3326882304)})]:e._e()],2)])])}),[],!1,null,null,null).exports},8159:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});var s=r(8633),n=r(874);const i={name:"ns-pos",computed:{buttons:function(){return POS.header.buttons}},mounted:function(){var e=this;this.visibleSectionSubscriber=POS.visibleSection.subscribe((function(t){e.visibleSection=t}))},destroyed:function(){this.visibleSectionSubscriber.unsubscribe()},data:function(){return{visibleSection:null,visibleSectionSubscriber:null}},components:{NsPosCart:s.Z,NsPosGrid:n.Z}};const o=(0,r(1900).Z)(i,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"h-full flex-auto bg-gray-300 flex flex-col",attrs:{id:"pos-container"}},[r("div",{staticClass:"flex overflow-hidden flex-shrink-0 px-2 pt-2"},[r("div",{staticClass:"-mx-2 flex overflow-x-auto pb-1"},e._l(e.buttons,(function(e,t){return r("div",{key:t,staticClass:"flex px-2 flex-shrink-0"},[r(e,{tag:"component"})],1)})),0)]),e._v(" "),r("div",{staticClass:"flex-auto overflow-hidden flex p-2"},[r("div",{staticClass:"flex flex-auto overflow-hidden -m-2"},[["both","cart"].includes(e.visibleSection)?r("div",{staticClass:"flex overflow-hidden p-2",class:"both"===e.visibleSection?"w-1/2":"w-full"},[r("ns-pos-cart")],1):e._e(),e._v(" "),["both","grid"].includes(e.visibleSection)?r("div",{staticClass:"p-2 flex overflow-hidden",class:"both"===e.visibleSection?"w-1/2":"w-full"},[r("ns-pos-grid")],1):e._e()])])])}),[],!1,null,null,null).exports},419:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});const s={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:r(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,r(1900).Z)(s,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[r("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[r("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),r("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),r("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[r("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),r("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),r("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports},4326:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var s=r(162),n=r(6386),i=r(2242),o=r(1214);const a={data:function(){return{searchCustomerValue:"",orderSubscription:null,order:{},debounceSearch:null,customers:[],isLoading:!1}},computed:{customerSelected:function(){return!1}},watch:{searchCustomerValue:function(e){var t=this;clearTimeout(this.debounceSearch),this.debounceSearch=setTimeout((function(){t.searchCustomer(e)}),500)}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.resolveIfQueued(!1)})),this.orderSubscription=POS.order.subscribe((function(t){e.order=t})),this.getRecentCustomers(),this.$refs.searchField.focus()},destroyed:function(){this.orderSubscription.unsubscribe()},methods:{__:r(7389).__,resolveIfQueued:n.Z,attemptToChoose:function(){if(1===this.customers.length)return this.selectCustomer(this.customers[0]);s.kX.info("Too many result.").subscribe()},openCustomerHistory:function(e,t){t.stopImmediatePropagation(),this.$popup.close(),i.G.show(o.Z,{customer:e,activeTab:"account-payment"})},selectCustomer:function(e){var t=this;this.customers.forEach((function(e){return e.selected=!1})),e.selected=!0,this.isLoading=!0,POS.selectCustomer(e).then((function(r){t.isLoading=!1,t.resolveIfQueued(e)})).catch((function(e){t.isLoading=!1}))},searchCustomer:function(e){var t=this;s.ih.post("/api/nexopos/v4/customers/search",{search:e}).subscribe((function(e){e.forEach((function(e){return e.selected=!1})),t.customers=e}))},createCustomerWithMatch:function(e){this.resolveIfQueued(!1),i.G.show(o.Z,{name:e})},getRecentCustomers:function(){var e=this;this.isLoading=!0,s.ih.get("/api/nexopos/v4/customers").subscribe((function(t){e.isLoading=!1,t.forEach((function(e){return e.selected=!1})),e.customers=t}),(function(t){e.isLoading=!1}))}}};const l=(0,r(1900).Z)(a,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow-xl w-4/5-screen md:w-2/5-screen xl:w-108"},[r("div",{staticClass:"border-b border-gray-200 text-center font-semibold text-2xl text-gray-700 py-2",attrs:{id:"header"}},[r("h2",[e._v(e._s(e.__("Select Customer")))])]),e._v(" "),r("div",{staticClass:"relative"},[r("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between text-gray-600"},[r("span",[e._v("Selected : ")]),e._v(" "),r("div",{staticClass:"flex items-center justify-between"},[r("span",[e._v(e._s(e.order.customer?e.order.customer.name:"N/A"))]),e._v(" "),e.order.customer?r("button",{staticClass:"mx-2 rounded-full h-8 w-8 flex items-center justify-center border border-gray-200 hover:bg-blue-400 hover:text-white hover:border-transparent",on:{click:function(t){return e.openCustomerHistory(e.order.customer,t)}}},[r("i",{staticClass:"las la-eye"})]):e._e()])]),e._v(" "),r("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between text-gray-600"},[r("input",{directives:[{name:"model",rawName:"v-model",value:e.searchCustomerValue,expression:"searchCustomerValue"}],ref:"searchField",staticClass:"rounded border-2 border-blue-400 bg-gray-100 w-full p-2",attrs:{placeholder:"Search Customer",type:"text"},domProps:{value:e.searchCustomerValue},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.attemptToChoose()},input:function(t){t.target.composing||(e.searchCustomerValue=t.target.value)}}})]),e._v(" "),r("div",{staticClass:"h-3/5-screen xl:h-2/5-screen overflow-y-auto"},[r("ul",[e.customers&&0===e.customers.length?r("li",{staticClass:"p-2 text-center text-gray-600"},[e._v("\n "+e._s(e.__("No customer match your query..."))+"\n ")]):e._e(),e._v(" "),e.customers&&0===e.customers.length?r("li",{staticClass:"p-2 cursor-pointer text-center text-gray-600",on:{click:function(t){return e.createCustomerWithMatch(e.searchCustomerValue)}}},[r("span",{staticClass:"border-b border-dashed border-blue-400"},[e._v(e._s(e.__("Create a customer")))])]):e._e(),e._v(" "),e._l(e.customers,(function(t){return r("li",{key:t.id,staticClass:"cursor-pointer hover:bg-gray-100 p-2 border-b border-gray-200 text-gray-600 flex justify-between items-center",on:{click:function(r){return e.selectCustomer(t)}}},[r("span",[e._v(e._s(t.name))]),e._v(" "),r("p",{staticClass:"flex items-center"},[t.owe_amount>0?r("span",{staticClass:"text-red-600"},[e._v("-"+e._s(e._f("currency")(t.owe_amount)))]):e._e(),e._v(" "),t.owe_amount>0?r("span",[e._v("/")]):e._e(),e._v(" "),r("span",{staticClass:"text-green-600"},[e._v(e._s(e._f("currency")(t.purchases_amount)))]),e._v(" "),r("button",{staticClass:"mx-2 rounded-full h-8 w-8 flex items-center justify-center border border-gray-200 hover:bg-blue-400 hover:text-white hover:border-transparent",on:{click:function(r){return e.openCustomerHistory(t,r)}}},[r("i",{staticClass:"las la-eye"})])])])}))],2)]),e._v(" "),e.isLoading?r("div",{staticClass:"z-10 top-0 absolute w-full h-full flex items-center justify-center"},[r("ns-spinner",{attrs:{size:"24",border:"8"}})],1):e._e()])])}),[],!1,null,null,null).exports},1214:(e,t,r)=>{"use strict";r.d(t,{Z:()=>p});var s=r(8603),n=r(162),i=r(2242),o=r(4326),a=r(7266),l=r(7389);const c={mounted:function(){this.closeWithOverlayClicked(),this.loadTransactionFields()},data:function(){return{fields:[],isSubmiting:!1,formValidation:new a.Z}},methods:{__:l.__,closeWithOverlayClicked:s.Z,proceed:function(){var e=this,t=this.$popupParams.customer,r=this.formValidation.extractFields(this.fields);this.isSubmiting=!0,n.ih.post("/api/nexopos/v4/customers/".concat(t.id,"/account-history"),r).subscribe((function(t){e.isSubmiting=!1,n.kX.success(t.message).subscribe(),e.$popupParams.resolve(t),e.$popup.close()}),(function(t){e.isSubmiting=!1,n.kX.error(t.message).subscribe(),e.$popupParams.reject(t)}))},close:function(){this.$popup.close(),this.$popupParams.reject(!1)},loadTransactionFields:function(){var e=this;n.ih.get("/api/nexopos/v4/fields/ns.customers-account").subscribe((function(t){e.fields=e.formValidation.createFields(t)}))}}};var u=r(1900);const d=(0,u.Z)(c,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"w-6/7-screen md:w-5/7-screen lg:w-4/7-screen h-6/7-screen md:h-5/7-screen lg:h-5/7-screen overflow-hidden shadow-lg bg-white flex flex-col relative"},[r("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between items-center"},[r("h2",{staticClass:"font-semibold"},[e._v(e._s(e.__("New Transaction")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),r("div",{staticClass:"flex-auto overflow-y-auto"},[0===e.fields.length?r("div",{staticClass:"h-full w-full flex items-center justify-center"},[r("ns-spinner")],1):e._e(),e._v(" "),e.fields.length>0?r("div",{staticClass:"p-2"},e._l(e.fields,(function(e,t){return r("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),r("div",{staticClass:"p-2 bg-white justify-between border-t border-gray-200 flex"},[r("div"),e._v(" "),r("div",{staticClass:"px-1"},[r("div",{staticClass:"-mx-2 flex flex-wrap"},[r("div",{staticClass:"px-1"},[r("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.close()}}},[e._v(e._s(e.__("Close")))])],1),e._v(" "),r("div",{staticClass:"px-1"},[r("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.proceed()}}},[e._v(e._s(e.__("Proceed")))])],1)])])]),e._v(" "),0===e.isSubmiting?r("div",{staticClass:"h-full w-full absolute flex items-center justify-center",staticStyle:{background:"rgb(0 98 171 / 45%)"}},[r("ns-spinner")],1):e._e()])}),[],!1,null,null,null).exports,f={name:"ns-pos-customers",data:function(){return{activeTab:"create-customers",customer:null,subscription:null,orders:[]}},mounted:function(){var e=this;this.closeWithOverlayClicked(),this.subscription=POS.order.subscribe((function(t){void 0!==t.customer?(e.activeTab="account-payment",e.customer=t.customer,e.loadCustomerOrders(e.customer.id)):void 0!==e.$popupParams.customer?(e.activeTab="account-payment",e.customer=e.$popupParams.customer,e.loadCustomerOrders(e.customer.id)):void 0!==e.$popupParams.name&&setTimeout((function(){}),100)}))},methods:{__:l.__,closeWithOverlayClicked:s.Z,allowedForPayment:function(e){return["unpaid","partially_paid","hold"].includes(e.payment_status)},prefillForm:function(e){void 0!==this.$popupParams.name&&(e.main.value=this.$popupParams.name)},openCustomerSelection:function(){this.$popup.close(),i.G.show(o.Z)},loadCustomerOrders:function(e){var t=this;n.ih.get("/api/nexopos/v4/customers/".concat(e,"/orders")).subscribe((function(e){t.orders=e}))},newTransaction:function(e){new Promise((function(t,r){i.G.show(d,{customer:e,resolve:t,reject:r})})).then((function(t){POS.loadCustomer(e.id).subscribe((function(e){POS.selectCustomer(e)}))}))},handleSavedCustomer:function(e){n.kX.success(e.message).subscribe(),POS.selectCustomer(e.entry),this.$popup.close()}}};const p=(0,u.Z)(f,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow-lg rounded w-95vw h-95vh lg:w-3/5-screen flex flex-col overflow-hidden"},[r("div",{staticClass:"p-2 flex justify-between items-center border-b border-gray-400"},[r("h3",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Customers")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),r("div",{staticClass:"flex-auto flex p-2 bg-gray-200 overflow-y-auto"},[r("ns-tabs",{attrs:{active:e.activeTab},on:{active:function(t){e.activeTab=t}}},[r("ns-tabs-item",{attrs:{identifier:"create-customers",label:"New Customer"}},[r("ns-crud-form",{attrs:{"submit-url":"/api/nexopos/v4/crud/ns.customers",src:"/api/nexopos/v4/crud/ns.customers/form-config"},on:{updated:function(t){return e.prefillForm(t)},save:function(t){return e.handleSavedCustomer(t)}},scopedSlots:e._u([{key:"title",fn:function(){return[e._v(e._s(e.__("Customer Name")))]},proxy:!0},{key:"save",fn:function(){return[e._v(e._s(e.__("Save Customer")))]},proxy:!0}])})],1),e._v(" "),r("ns-tabs-item",{staticClass:"flex",staticStyle:{padding:"0!important"},attrs:{identifier:"account-payment",label:e.__("Customer Account")}},[null===e.customer?r("div",{staticClass:"flex-auto w-full flex items-center justify-center flex-col p-4"},[r("i",{staticClass:"lar la-frown text-6xl text-gray-700"}),e._v(" "),r("h3",{staticClass:"font-medium text-2xl text-gray-700"},[e._v(e._s(e.__("No Customer Selected")))]),e._v(" "),r("p",{staticClass:"text-gray-600"},[e._v(e._s(e.__("In order to see a customer account, you need to select one customer.")))]),e._v(" "),r("div",{staticClass:"my-2"},[r("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.openCustomerSelection()}}},[e._v(e._s(e.__("Select Customer")))])],1)]):e._e(),e._v(" "),e.customer?r("div",{staticClass:"flex flex-col flex-auto"},[r("div",{staticClass:"flex-auto p-2 flex flex-col"},[r("div",{staticClass:"-mx-4 flex flex-wrap"},[r("div",{staticClass:"px-4 mb-4 w-full"},[r("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Summary For"))+" : "+e._s(e.customer.name))])]),e._v(" "),r("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[r("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-green-400 to-green-700 p-2 flex flex-col text-white"},[r("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Total Purchases")))]),e._v(" "),r("div",{staticClass:"w-full flex justify-end"},[r("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.purchases_amount)))])])])]),e._v(" "),r("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[r("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-red-500 to-red-700 p-2 text-white"},[r("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Total Owed")))]),e._v(" "),r("div",{staticClass:"w-full flex justify-end"},[r("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.owed_amount)))])])])]),e._v(" "),r("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[r("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-blue-500 to-blue-700 p-2 text-white"},[r("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Account Amount")))]),e._v(" "),r("div",{staticClass:"w-full flex justify-end"},[r("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.account_amount)))])])])])]),e._v(" "),r("div",{staticClass:"flex flex-auto flex-col overflow-hidden"},[r("div",{staticClass:"py-2 w-full"},[r("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Last Purchases")))])]),e._v(" "),r("div",{staticClass:"flex-auto flex-col flex overflow-hidden"},[r("div",{staticClass:"flex-auto overflow-y-auto"},[r("table",{staticClass:"table w-full"},[r("thead",[r("tr",{staticClass:"text-gray-700"},[r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"150"}},[e._v(e._s(e.__("Order")))]),e._v(" "),r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Total")))]),e._v(" "),r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Status")))]),e._v(" "),r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"50"}},[e._v(e._s(e.__("Options")))])])]),e._v(" "),r("tbody",{staticClass:"text-gray-700"},[0===e.orders.length?r("tr",[r("td",{staticClass:"border border-gray-200 p-2 text-center",attrs:{colspan:"4"}},[e._v(e._s(e.__("No orders...")))])]):e._e(),e._v(" "),e._l(e.orders,(function(t){return r("tr",{key:t.id},[r("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(t.code))]),e._v(" "),r("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(e._f("currency")(t.total)))]),e._v(" "),r("td",{staticClass:"border border-gray-200 p-2 text-right"},[e._v(e._s(t.human_status))]),e._v(" "),r("td",{staticClass:"border border-gray-200 p-2 text-center"},[e.allowedForPayment(t)?r("button",{staticClass:"hover:bg-blue-400 hover:border-transparent hover:text-white rounded-full h-8 px-2 flex items-center justify-center border border-gray bg-white"},[r("i",{staticClass:"las la-wallet"}),e._v(" "),r("span",{staticClass:"ml-1"},[e._v(e._s(e.__("Payment")))])]):e._e()])])}))],2)])])])])]),e._v(" "),r("div",{staticClass:"p-2 border-t border-gray-400 flex justify-between"},[r("div"),e._v(" "),r("div",[r("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.newTransaction(e.customer)}}},[e._v(e._s(e.__("Account Transaction")))])],1)])]):e._e()])],1)],1)])}),[],!1,null,null,null).exports},1957:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});const s={name:"ns-pos-loading-popup"};const n=(0,r(1900).Z)(s,(function(){var e=this.$createElement;return(this._self._c||e)("ns-spinner")}),[],!1,null,null,null).exports},3625:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var s=r(7757),n=r.n(s),i=r(6386);r(3661);function o(e,t,r,s,n,i,o){try{var a=e[i](o),l=a.value}catch(e){return void r(e)}a.done?t(l):Promise.resolve(l).then(s,n)}const a={data:function(){return{types:[],typeSubscription:null}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.resolveIfQueued(!1)})),this.typeSubscription=POS.types.subscribe((function(t){e.types=t}))},destroyed:function(){this.typeSubscription.unsubscribe()},methods:{__:r(7389).__,resolveIfQueued:i.Z,select:function(e){var t,r=this;return(t=n().mark((function t(){var s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return Object.values(r.types).forEach((function(e){return e.selected=!1})),r.types[e].selected=!0,s=r.types[e],POS.types.next(r.types),t.next=6,POS.triggerOrderTypeSelection(s);case 6:r.resolveIfQueued(s);case 7:case"end":return t.stop()}}),t)})),function(){var e=this,r=arguments;return new Promise((function(s,n){var i=t.apply(e,r);function a(e){o(i,s,n,a,l,"next",e)}function l(e){o(i,s,n,a,l,"throw",e)}a(void 0)}))})()}}};const l=(0,r(1900).Z)(a,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"h-full w-4/5-screen md:w-2/5-screen lg:w-2/5-screen xl:w-2/6-screen bg-white shadow-lg"},[r("div",{staticClass:"h-16 flex justify-center items-center",attrs:{id:"header"}},[r("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Define The Order Type")))])]),e._v(" "),r("div",{staticClass:"grid grid-flow-row grid-cols-2 grid-rows-2"},e._l(e.types,(function(t){return r("div",{key:t.identifier,staticClass:"hover:bg-blue-100 h-56 flex items-center justify-center flex-col cursor-pointer border border-gray-200",class:t.selected?"bg-blue-100":"",on:{click:function(r){return e.select(t.identifier)}}},[r("img",{staticClass:"w-32 h-32",attrs:{src:t.icon,alt:""}}),e._v(" "),r("h4",{staticClass:"font-semibold text-xl my-2 text-gray-700"},[e._v(e._s(t.label))])])})),0)])}),[],!1,null,null,null).exports},9531:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var s=r(162),n=r(7389);function i(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);rparseFloat(i.$quantities().quantity)-a)return s.kX.error((0,n.__)("Unable to add the product, there is not enough stock. Remaining %s").replace("%s",i.$quantities().quantity-a)).subscribe()}this.resolve({quantity:o})}else"backspace"===e.identifier?this.allSelected?(this.finalValue=0,this.allSelected=!1):(this.finalValue=this.finalValue.toString(),this.finalValue=this.finalValue.substr(0,this.finalValue.length-1)||0):this.allSelected?(this.finalValue=e.value,this.finalValue=parseFloat(this.finalValue),this.allSelected=!1):(this.finalValue+=""+e.value,this.finalValue=parseFloat(this.finalValue))},resolve:function(e){this.$popupParams.resolve(e),this.$popup.close()}}};const l=(0,r(1900).Z)(a,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow min-h-2/5-screen w-3/4-screen md:w-3/5-screen lg:w-2/5-screen xl:w-2/5-screen relative"},[e.isLoading?r("div",{staticClass:"flex w-full h-full absolute top-O left-0 items-center justify-center",staticStyle:{background:"rgb(202 202 202 / 49%)"},attrs:{id:"loading-overlay"}},[r("ns-spinner")],1):e._e(),e._v(" "),r("div",{staticClass:"flex-shrink-0 py-2 border-b border-gray-200"},[r("h1",{staticClass:"text-xl font-bold text-gray-700 text-center"},[e._v(e._s(e.__("Define Quantity")))])]),e._v(" "),r("div",{staticClass:"h-16 border-b bg-gray-800 text-white border-gray-200 flex items-center justify-center",attrs:{id:"screen"}},[r("h1",{staticClass:"font-bold text-3xl"},[e._v(e._s(e.finalValue))])]),e._v(" "),r("div",{staticClass:"grid grid-flow-row grid-cols-3 grid-rows-3",attrs:{id:"numpad"}},e._l(e.keys,(function(t,s){return r("div",{key:s,staticClass:"hover:bg-blue-400 hover:text-white hover:border-blue-600 text-xl font-bold border border-gray-200 h-24 flex items-center justify-center cursor-pointer",on:{click:function(r){return e.inputValue(t)}}},[void 0!==t.value?r("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?r("i",{staticClass:"las",class:t.icon}):e._e()])})),0)])}),[],!1,null,null,null).exports},3661:(e,t,r)=>{"use strict";r.d(t,{Z:()=>u});var s=r(162),n=r(6386),i=r(7266);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function a(e){for(var t=1;t{e.O(0,[898],(()=>{return t=9572,e(e.s=t);var t}));e.O()}]); +(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[159],{162:(e,t,r)=>{"use strict";r.d(t,{l:()=>I,kq:()=>G,ih:()=>N,kX:()=>L});var s=r(6486),n=r(9669),i=r(2181),o=r(8345),a=r(9624),l=r(9248),c=r(230);function u(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,r)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,r)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var r=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=G.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:s}),new c.y((function(i){r._client[e](t,s,Object.assign(Object.assign({},r._client.defaults[e]),n)).then((function(e){r._lastRequestData=e,i.next(e.data),i.complete(),r._subject.next({identifier:"async.stop"})})).catch((function(e){var t;i.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),r._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,r=e.value;this._subject.next({identifier:t,value:r})}}])&&u(t.prototype,r),s&&u(t,s),e}(),f=r(3);function p(e,t){for(var r=0;r=1e3){for(var r,s=Math.floor((""+e).length/3),n=2;n>=1;n--){if(((r=parseFloat((0!=s?e/Math.pow(1e3,s):e).toPrecision(n)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}r%1!=0&&(r=r.toFixed(1)),t=r+["","k","m","b","t"][s]}return t})),P=r(1356),O=r(9698);function $(e,t){for(var r=0;r0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&Z(t.prototype,r),s&&Z(t,s),e}()),X=new m({sidebar:["xs","sm","md"].includes(R.breakpoint)?"hidden":"visible"});N.defineClient(n),window.nsEvent=I,window.nsHttpClient=N,window.nsSnackBar=L,window.nsCurrency=P.W,window.nsTruncate=O.b,window.nsRawCurrency=P.f,window.nsAbbreviate=S,window.nsState=X,window.nsUrl=M,window.nsScreen=R,window.ChartJS=i,window.EventEmitter=h,window.Popup=x.G,window.RxJS=_,window.FormValidation=C.Z,window.nsCrudHandler=z},4364:(e,t,r)=>{"use strict";r.r(t),r.d(t,{nsAvatar:()=>z,nsButton:()=>a,nsCheckbox:()=>p,nsCkeditor:()=>D,nsCloseButton:()=>O,nsCrud:()=>b,nsCrudForm:()=>y,nsDate:()=>j,nsDateTimePicker:()=>q.V,nsDatepicker:()=>G,nsField:()=>w,nsIconButton:()=>$,nsInput:()=>c,nsLink:()=>l,nsMediaInput:()=>P,nsMenu:()=>i,nsMultiselect:()=>C,nsNumpad:()=>I.Z,nsSelect:()=>u.R,nsSelectAudio:()=>f,nsSpinner:()=>g,nsSubmenu:()=>o,nsSwitch:()=>k,nsTableRow:()=>m,nsTabs:()=>F,nsTabsItem:()=>Z,nsTextarea:()=>x});var s=r(538),n=r(162),i=s.default.component("ns-menu",{data:function(){return{defaultToggledState:!1,_save:0}},props:["href","label","icon","notification","toggled","identifier"],template:'\n \n ',mounted:function(){var e=this;this.defaultToggledState=void 0!==this.toggled?this.toggled:this.defaultToggledState,n.l.subject().subscribe((function(t){t.value!==e.identifier&&(e.defaultToggledState=!1)}))},methods:{toggleEmit:function(){var e=this;this.toggle().then((function(t){t&&n.l.emit({identifier:"side-menu.open",value:e.identifier})}))},toggle:function(){var e=this;return new Promise((function(t,r){0===e.href.length&&(e.defaultToggledState=!e.defaultToggledState,t(e.defaultToggledState))}))}}}),o=s.default.component("ns-submenu",{data:function(){return{}},props:["href","label","active"],mounted:function(){},template:'\n
    \n
  • \n \n \n \n
  • \n
    \n '}),a=s.default.component("ns-button",{data:function(){return{clicked:!1,_save:0}},props:["type","disabled","link","href","routerLink","to"],template:'\n
    \n \n \n \n
    \n ',mounted:function(){},computed:{isDisabled:function(){return this.disabled&&(0===this.disabled.length||"disabled"===this.disabled||this.disabled)},buttonclass:function(){var e;switch(this.type){case"info":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-blue-400 text-white");break;case"success":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-green-400 text-white");break;case"danger":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-red-400 text-white");break;case"warning":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-orange-400 text-white");break;default:e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-white text-gray-800")}return e}}}),l=s.default.component("ns-link",{data:function(){return{clicked:!1,_save:0}},props:["type","to","href"],template:'\n
    \n \n \n
    \n ',computed:{buttonclass:function(){switch(this.type){case"info":return"shadow bg-blue-400 text-white";case"success":return"shadow bg-green-400 text-white";case"danger":return"shadow bg-red-400 text-white";case"warning":return"shadow bg-orange-400 text-white";default:return"shadow bg-white text-gray-800"}}}}),c=s.default.component("ns-input",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),u=r(4451),d=r(7389),f=s.default.component("ns-select-audio",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:d.__,playSelectedSound:function(){this.field.value.length>0&&new Audio(this.field.value).play()}},template:'\n
    \n \n
    \n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),p=s.default.component("ns-checkbox",{data:function(){return{}},props:["checked","field","label"],template:'\n
    \n
    \n \n
    \n {{ label }}\n {{ field.label }}\n
    \n ',computed:{isChecked:function(){return this.field?this.field.value:this.checked}},methods:{toggleIt:function(){void 0!==this.field&&(this.field.value=!this.field.value),this.$emit("change",!this.checked)}}}),h=r(2242),v=r(419),b=s.default.component("ns-crud",{data:function(){return{isRefreshing:!1,sortColumn:"",searchInput:"",searchQuery:"",page:1,bulkAction:"",bulkActions:[],columns:[],selectedEntries:[],globallyChecked:!1,result:{current_page:null,data:[],first_page_url:null,from:null,last_page:null,last_page_url:null,next_page_url:null,path:null,per_page:null,prev_page_url:null,to:null,total:null}}},mounted:function(){void 0!==this.identifier&&nsCrudHandler.defineInstance(this.identifier,this),this.loadConfig()},props:["src","create-url","mode","identifier","queryParams"],computed:{getParsedSrc:function(){return"".concat(this.src,"?").concat(this.sortColumn).concat(this.searchQuery).concat(this.queryPage).concat(this.getQueryParams()?"&"+this.getQueryParams():"")},getSelectedAction:function(){var e=this,t=this.bulkActions.filter((function(t){return t.identifier===e.bulkAction}));return t.length>0&&t[0]},pagination:function(){return this.result?this.pageNumbers(this.result.last_page,this.result.current_page):[]},queryPage:function(){return this.result?"&page=".concat(this.page):""},resultInfo:function(){return(0,d.__)("displaying {perPage} on {items} items").replace("{perPage}",this.result.total).replace("{items}",this.result.total)}},methods:{__:d.__,getQueryParams:function(){var e=this;return this.queryParams?Object.keys(this.queryParams).map((function(t){return"".concat(t,"=").concat(e.queryParams[t])})).join("&"):""},pageNumbers:function(e,t){var r=[];return t>e-3?r.push(e-2,e-1,e):r.push(t,t+1,t+2,"...",e),r.filter((function(e){return e>0||"string"==typeof e}))},downloadContent:function(){n.ih.post("".concat(this.src,"/export?").concat(this.getQueryParams()),{entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(e){setTimeout((function(){return document.location=e.url}),300),n.kX.success((0,d.__)("The document has been generated.")).subscribe()}),(function(e){n.kX.error(e.message||(0,d.__)("Unexpected error occured.")).subscribe()}))},clearSelectedEntries:function(){var e=this;h.G.show(v.Z,{title:(0,d.__)("Clear Selected Entries ?"),message:(0,d.__)("Would you like to clear all selected entries ?"),onAction:function(t){t&&(e.selectedEntries=[])}})},refreshRow:function(e){if(!0===e.$checked){0===this.selectedEntries.filter((function(t){return t.$id===e.$id})).length&&this.selectedEntries.push(e)}else{var t=this.selectedEntries.filter((function(t){return t.$id===e.$id}));if(t.length>0){var r=this.selectedEntries.indexOf(t[0]);this.selectedEntries.splice(r,1)}}},handleShowOptions:function(e){this.result.data.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},handleGlobalChange:function(e){var t=this;this.globallyChecked=e,this.result.data.forEach((function(r){r.$checked=e,t.refreshRow(r)}))},loadConfig:function(){var e=this;n.ih.get("".concat(this.src,"/config?").concat(this.getQueryParams())).subscribe((function(t){e.columns=t.columns,e.bulkActions=t.bulkActions,e.refresh()}),(function(e){n.kX.error(e.message,"OK",{duration:!1}).subscribe()}))},cancelSearch:function(){this.searchInput="",this.search()},search:function(){this.searchInput?this.searchQuery="&search=".concat(this.searchInput):this.searchQuery="",this.refresh()},sort:function(e){for(var t in this.columns)t!==e&&(this.columns[t].$sorted=!1,this.columns[t].$direction="");switch(this.columns[e].$sorted=!0,this.columns[e].$direction){case"asc":this.columns[e].$direction="desc";break;case"desc":this.columns[e].$direction="";break;case"":this.columns[e].$direction="asc"}["asc","desc"].includes(this.columns[e].$direction)?this.sortColumn="active=".concat(e,"&direction=").concat(this.columns[e].$direction):this.sortColumn="",this.$emit("sort",this.columns[e]),this.refresh()},bulkDo:function(){var e=this;return this.bulkAction?this.selectedEntries.length>0?(console.log(this.getSelectedAction),confirm(this.getSelectedAction.confirm||this.$slots["error-bulk-confirmation"]||(0,d.__)("No bulk confirmation message provided on the CRUD class."))?n.ih.post("".concat(this.src,"/bulk-actions"),{action:this.bulkAction,entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(t){n.kX.info(t.message).subscribe(),e.selectedEntries=[],e.refresh()}),(function(e){n.kX.error(e.message).subscribe()})):void 0):n.kX.error(this.$slots["error-no-selection"]?this.$slots["error-no-selection"][0].text:(0,d.__)("No selection has been made.")).subscribe():n.kX.error(this.$slots["error-no-action"]?this.$slots["error-no-action"][0].text:(0,d.__)("No action has been selected.")).subscribe()},refresh:function(){var e=this;this.globallyChecked=!1,this.isRefreshing=!0,n.ih.get("".concat(this.getParsedSrc)).subscribe((function(t){t.data=t.data.map((function(t){return e.selectedEntries.filter((function(e){return e.$id===t.$id})).length>0&&(t.$checked=!0),t})),e.isRefreshing=!1,e.result=t,e.page=t.current_page}),(function(t){e.isRefreshing=!1,n.kX.error(t.message).subscribe()}))}},template:'\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{ column.label }}\n \n \n \n \n
    \n
    {{ __( \'There is nothing to display...\' ) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ resultInfo }}
    \n \n
    \n
    \n
    \n '}),m=s.default.component("ns-table-row",{props:["options","row","columns"],data:function(){return{optionsToggled:!1}},mounted:function(){},methods:{sanitizeHTML:function(e){var t=document.createElement("div");t.innerHTML=e;for(var r=t.getElementsByTagName("script"),s=r.length;s--;)r[s].parentNode.removeChild(r[s]);return t.innerHTML},getElementOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},toggleMenu:function(e){var t=this;if(this.row.$toggled=!this.row.$toggled,this.$emit("toggled",this.row),this.row.$toggled)setTimeout((function(){var e=t.$el.querySelectorAll(".relative > .absolute")[0],r=t.$el.querySelectorAll(".relative")[0],s=t.getElementOffset(r);e.style.top=s.top+"px",e.style.left=s.left+"px",r.classList.remove("relative"),r.classList.add("dropdown-holder")}),100);else{var r=this.$el.querySelectorAll(".dropdown-holder")[0];r.classList.remove("dropdown-holder"),r.classList.add("relative")}},handleChanged:function(e){this.row.$checked=e,this.$emit("updated",this.row)},triggerAsync:function(e){var t=this;e.confirm?confirm(e.confirm.message)&&n.ih[e.type.toLowerCase()](e.url).subscribe((function(e){n.kX.success(e.message).subscribe(),t.$emit("reload",t.row)}),(function(e){t.toggleMenu(),n.kX.error(e.message).subscribe()})):(n.l.emit({identifier:"ns-table-row-action",value:{action:e,row:this.row,component:this}}),this.toggleMenu())}},template:'\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n '}),g=s.default.component("ns-spinner",{data:function(){return{}},mounted:function(){},computed:{validatedSize:function(){return this.size||24},validatedBorder:function(){return this.border||8},validatedAnimation:function(){return this.animation||"fast"}},props:["color","size","border"],template:"\n
    \n
    \n
    \n "}),_=r(7266),y=s.default.component("ns-crud-form",{data:function(){return{form:{},globallyChecked:!1,formValidation:new _.Z,rows:[]}},mounted:function(){this.loadForm()},props:["src","create-url","field-class","return-url","submit-url","submit-method","disable-tabs"],computed:{activeTabFields:function(){for(var e in this.form.tabs)if(this.form.tabs[e].active)return this.form.tabs[e].fields;return[]}},methods:{toggle:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;this.form.tabs[e].active=!0},handleShowOptions:function(e){this.rows.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},submit:function(){var e=this;return this.formValidation.validateForm(this.form).length>0?n.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():(this.formValidation.disableForm(this.form),void 0===this.submitUrl?n.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():void n.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,this.formValidation.extractForm(this.form)).subscribe((function(t){if("success"===t.status){if(e.returnUrl&&e.returnUrl.length>0)return document.location=e.returnUrl;e.$emit("save",t)}e.formValidation.enableForm(e.form)}),(function(t){n.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t),e.formValidation.enableForm(e.form)})))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;n.ih.get("".concat(this.src)).subscribe({next:function(t){e.form=e.parseForm(t.form),n.kq.doAction("ns-crud-form-loaded",e),e.$emit("updated",e.form)},error:function(e){n.kX.error(e.message,"OKAY",{duration:0}).subscribe()}})},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var r in e.tabs)0===t&&(e.tabs[r].active=!0),e.tabs[r].active=void 0!==e.tabs[r].active&&e.tabs[r].active,e.tabs[r].fields=this.formValidation.createFields(e.tabs[r].fields),t++;return e}},template:'\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Return\n
    \n
    \n \n
    \n
    \n
    \n
    {{ tab.label }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n '}),x=s.default.component("ns-textarea",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),w=s.default.component("ns-field",{data:function(){return{}},mounted:function(){},computed:{isInputField:function(){return["text","password","email","number","tel"].includes(this.field.type)},isDateField:function(){return["date"].includes(this.field.type)},isSelectField:function(){return["select"].includes(this.field.type)},isTextarea:function(){return["textarea"].includes(this.field.type)},isCheckbox:function(){return["checkbox"].includes(this.field.type)},isMultiselect:function(){return["multiselect"].includes(this.field.type)},isSelectAudio:function(){return["select-audio"].includes(this.field.type)},isSwitch:function(){return["switch"].includes(this.field.type)},isMedia:function(){return["media"].includes(this.field.type)},isCkEditor:function(){return["ckeditor"].includes(this.field.type)},isDateTimePicker:function(){return["datetimepicker"].includes(this.field.type)},isCustom:function(){return["custom"].includes(this.field.type)}},props:["field"],methods:{addOption:function(e){"select"===this.field.type&&this.field.options.forEach((function(e){return e.selected=!1})),e.selected=!0;var t=this.field.options.indexOf(e);this.field.options.splice(t,1),this.field.options.unshift(e),this.refreshMultiselect(),this.$emit("change",{action:"addOption",option:e})},refreshMultiselect:function(){this.field.value=this.field.options.filter((function(e){return e.selected})).map((function(e){return e.value}))},removeOption:function(e){e.selected=!1,this.refreshMultiselect(),this.$emit("change",{action:"removeOption",option:e})}},template:'\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n '}),C=s.default.component("ns-multiselect",{data:function(){return{showPanel:!1,search:""}},props:["field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=void 0!==t.selected&&t.selected,e.field.value&&e.field.value.includes(t.value)&&(t.selected=!0),t}))}},methods:{__:d.__,addOption:function(e){this.field.disabled||(this.$emit("addOption",e),this.$forceUpdate(),setTimeout((function(){}),100))},removeOption:function(e,t){var r=this;if(!this.field.disabled)return t.preventDefault(),t.stopPropagation(),this.$emit("removeOption",e),this.$forceUpdate(),setTimeout((function(){r.search=""}),100),!1}},mounted:function(){var e=this;this.field.value&&this.field.value.reverse().forEach((function(t){var r=e.field.options.filter((function(e){return e.value===t}));r.length>=0&&e.addOption(r[0])}))},template:'\n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ option.label }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n
    \n '}),k=s.default.component("ns-switch",{data:function(){return{}},mounted:function(){},computed:{_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=t.value===e.field.value,t}))},hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":""},sizeClass:function(){return" w-1/".concat(this._options.length<=4?this._options.length:4)},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:d.__,setSelected:function(e){this.field.value=e.value,this._options.forEach((function(e){return e.selected=!1})),e.selected=!0,this.$forceUpdate(),this.$emit("change",e.value)}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n

    \n
    \n '}),j=s.default.component("ns-date",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),S=r(9576),P=s.default.component("ns-media-input",{template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n ',computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},data:function(){return{}},props:["placeholder","leading","type","field"],mounted:function(){},methods:{toggleMedia:function(){var e=this;new Promise((function(t,r){h.G.show(S.Z,Object.assign({resolve:t,reject:r},e.field.data||{}))})).then((function(t){"use-selected"===t.event&&(e.field.data&&"url"!==e.field.data.type?e.field.data&&"model"!==e.field.data.type||(e.field.value=t.value[0]):e.field.value=t.value[0].sizes.original,e.$forceUpdate())}))}}}),O=s.default.component("ns-close-button",{template:'\n \n ',methods:{clicked:function(e){this.$emit("click",e)}}}),$=s.default.component("ns-icon-button",{template:'\n \n ',props:["className","buttonClass"],methods:{clicked:function(e){this.$emit("click",e)}}}),T=r(1272),E=r.n(T),V=r(5234),A=r.n(V),D=s.default.component("ns-ckeditor",{data:function(){return{editor:A()}},components:{ckeditor:E().component},mounted:function(){},methods:{__:d.__},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),F=s.default.component("ns-tabs",{data:function(){return{childrens:[]}},props:["active"],computed:{activeComponent:function(){var e=this.$children.filter((function(e){return e.active}));return e.length>0&&e[0]}},methods:{toggle:function(e){this.$emit("active",e.identifier),this.$emit("changeTab",e.identifier)}},mounted:function(){this.childrens=this.$children},template:'\n
    \n
    \n
    {{ tab.label }}
    \n
    \n \n
    \n '}),Z=s.default.component("ns-tabs-item",{data:function(){return{}},mounted:function(){},props:["label","identifier","padding"],template:'\n
    \n \n
    \n '}),q=r(8655),I=r(3968),N=r(1726),L=r(7259);const M=s.default.extend({methods:{__:d.__},data:function(){return{svg:""}},mounted:function(){this.svg=(0,N.createAvatar)(L,{seed:this.displayName})},computed:{avatarUrl:function(){return 0===this.url.length?"":this.url}},props:["url","display-name"]});const z=(0,r(1900).Z)(M,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex justify-between items-center flex-shrink-0"},[r("span",{staticClass:"hidden md:inline-block text-gray-600 px-2"},[e._v(e._s(e.__("Howdy, {name}").replace("{name}",this.displayName)))]),e._v(" "),r("span",{staticClass:"md:hidden text-gray-600 px-2"},[e._v(e._s(e.displayName))]),e._v(" "),r("div",{staticClass:"px-2"},[r("div",{staticClass:"w-8 h-8 overflow-hidden rounded-full bg-gray-600"},[""!==e.avatarUrl?r("img",{staticClass:"w-8 h-8 overflow-hidden rounded-full",attrs:{src:e.avatarUrl,alt:e.displayName,srcset:""}}):e._e(),e._v(" "),""===e.avatarUrl?r("div",{domProps:{innerHTML:e._s(e.svg)}}):e._e()])])])}),[],!1,null,null,null).exports;var G=r(6598).Z},8655:(e,t,r)=>{"use strict";r.d(t,{V:()=>a});var s=r(538),n=r(381),i=r.n(n),o=r(7389),a=s.default.component("ns-date-time-picker",{template:'\n
    \n \n
    \n \n \n {{ currentDay.format( \'YYYY/MM/DD HH:mm\' ) }}\n N/A\n \n
    \n

    {{ field.description }}

    \n \n
    \n ',props:["field","date"],data:function(){return{visible:!1,hours:0,minutes:0,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},watch:{visible:function(){var e=this;this.visible&&setTimeout((function(){e.$refs.hours.addEventListener("focus",(function(){this.select()})),e.$refs.minutes.addEventListener("focus",(function(){this.select()}))}),100)}},mounted:function(){var e=this;document.addEventListener("mousedown",(function(t){return e.checkClickedItem(t)})),this.field?this.currentDay=[void 0,null,""].includes(this.field.value)?i()():i()(this.field.value):this.currentDay=[void 0,null,""].includes(this.date)?i()():i()(this.date),this.hours=this.currentDay.format("HH"),this.minutes=this.currentDay.format("mm"),this.build()},methods:{__:o.__,detectHoursChange:function(){parseFloat(this.hours)<0&&(this.hours=0),parseFloat(this.hours)>23&&(this.hours=23),this.updateDateTime()},detectMinuteChange:function(){parseFloat(this.minutes)<0&&(this.minutes=0),parseFloat(this.minutes)>59&&(this.minutes=59),this.updateDateTime()},updateDateTime:function(){this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes),this.selectDate(this.currentDay)},checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes);var t=this.currentDay.format("YYYY/MM/DD HH:mm");this.field?(this.field.value=t,this.$emit("change",this.field)):this.$emit("change",this.currentDay)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var r=this.calendar.length-1;if(this.calendar[r].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(i().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}})},4451:(e,t,r)=>{"use strict";r.d(t,{R:()=>n});var s=r(7389),n=r(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:s.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,r)=>{"use strict";r.d(t,{W:()=>c,f:()=>u});var s=r(538),n=r(2077),i=r.n(n),o=r(6740),a=r.n(o),l=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),c=s.default.filter("currency",(function(e){var t,r,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===s){var n={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};r=a()(e,n).format()}else r=i()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(r).concat("after"===ns.currency.ns_currency_position?t:"")})),u=function(e){var t="0.".concat(l);return parseFloat(i()(e).format(t))}},9698:(e,t,r)=>{"use strict";r.d(t,{b:()=>s});var s=r(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,r)=>{"use strict";function s(e,t){for(var r=0;rn});var n=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,(r=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var r in e.tabs){var s=[],n=this.validateFieldsErrors(e.tabs[r].fields);n.length>0&&s.push(n),e.tabs[r].errors=s.flat(),t.push(s.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var r in e)0===t&&(e[r].active=!0),e[r].active=void 0!==e[r].active&&e[r].active,e[r].fields=this.createFields(e[r].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(r){t.fieldPassCheck(e,r)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var r in e.tabs)void 0===t[r]&&(t[r]={}),t[r]=this.extractFields(e.tabs[r].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var r=function(r){var s=r.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===s.length&&e.tabs[s[0]].fields.forEach((function(e){e.name===s[1]&&t.errors[r].forEach((function(t){var r={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(r)}))})),r===e.main.name&&t.errors[r].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var s in t.errors)r(s)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var r=function(r){e.forEach((function(e){e.name===r&&t.errors[r].forEach((function(t){var r={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(r)}))}))};for(var s in t.errors)r(s)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(r,s){r.identifier===t.identifier&&!0===r.invalid&&e.errors.splice(s,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(r,s){!0===r[t.identifier]&&e.errors.splice(s,1)}))}return e}}])&&s(t.prototype,r),n&&s(t,n),e}()},7389:(e,t,r)=>{"use strict";r.d(t,{__:()=>s,c:()=>n});var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},n=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,r)=>{"use strict";function s(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}r.d(t,{Z:()=>s})},6386:(e,t,r)=>{"use strict";function s(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}r.d(t,{Z:()=>s})},2242:(e,t,r)=>{"use strict";r.d(t,{G:()=>o});var s=r(9248);function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};if(n(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var r=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[r-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new s.x}var t,r,o;return t=e,o=[{key:"show",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=new e(s);return n.open(t,r),n}}],(r=[{key:"open",value:function(e){var t,r,s,n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",o.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){n.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var a=Vue.extend(e);this.instance=new a({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=i,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&i(t.prototype,r),o&&i(t,o),e}()},9763:(e,t,r)=>{"use strict";function s(e){POS.changeVisibleSection(e)}r.d(t,{Z:()=>s})},9624:(e,t,r)=>{"use strict";r.d(t,{S:()=>i});var s=r(3260);function n(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return s.Observable.create((function(s){var i=r.__createSnack({message:e,label:t,type:n.type}),o=i.buttonNode,a=(i.textNode,i.snackWrapper,i.sampleSnack);o.addEventListener("click",(function(e){s.onNext(o),s.onCompleted(),a.remove()})),r.__startTimer(n.duration,a)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},r),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},r),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},r),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var r,s=function(){e>0&&!1!==e&&(r=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(r)})),t.addEventListener("mouseleave",(function(){s()})),s()}},{key:"__createSnack",value:function(e){var t=e.message,r=e.label,s=e.type,n=void 0===s?"info":s,i=document.getElementById("snack-wrapper")||document.createElement("div"),o=document.createElement("div"),a=document.createElement("p"),l=document.createElement("div"),c=document.createElement("button"),u="",d="";switch(n){case"info":u="text-white hover:bg-blue-400 bg-blue-500",d="bg-gray-900 text-white";break;case"error":u="text-red-700 hover:bg-white bg-white",d="bg-red-500 text-white";break;case"success":u="text-green-700 hover:bg-white bg-white",d="bg-green-500 text-white"}return a.textContent=t,r&&(c.textContent=r,c.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(u)),l.appendChild(c)),o.appendChild(a),o.appendChild(l),o.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(d)),i.appendChild(o),null===document.getElementById("snack-wrapper")&&(i.setAttribute("id","snack-wrapper"),i.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(i)),{snackWrapper:i,sampleSnack:o,buttonsWrapper:l,buttonNode:c,textNode:a}}}])&&n(t.prototype,r),i&&n(t,i),e}()},279:(e,t,r)=>{"use strict";r.d(t,{$:()=>l});var s=r(162),n=r(7389),i=r(2242),o=r(9531);function a(e,t){for(var r=0;rparseFloat(e.$quantities().quantity)-u)return s.kX.error((0,n.__)("Unable to add the product, there is not enough stock. Remaining %s").replace("%s",(e.$quantities().quantity-u).toString())).subscribe()}r({quantity:1})}else l.open(o.Z,{resolve:r,reject:a,product:c,data:e})}))}}])&&a(t.prototype,r),l&&a(t,l),e}()},9572:(e,t,r)=>{"use strict";var s=r(538),n=(r(824),r(4364)),i=r(1630),o=r.n(i),a=r(8159).Z,l=r(2014).Z,c=r(874).Z;window.nsComponents=Object.assign({},n),s.default.use(o()),new s.default({el:"#pos-app",components:Object.assign({NsPos:a,NsPosCart:l,NsPosGrid:c},window.nsComponents)})},824:(e,t,r)=>{"use strict";var s=r(381),n=r.n(s);ns.date.moment=n()(ns.date.current),ns.date.interval=setInterval((function(){ns.date.moment.add(1,"seconds"),ns.date.current=n()(ns.date.current).add(1,"seconds").format("YYYY-MM-DD HH:mm:ss")}),1e3),ns.date.getNowString=function(){var e=Date.parse((new Date).toLocaleString("en-US",{timeZone:ns.date.timeZone}));return n()(e).format("YYYY-MM-DD HH:mm:ss")},ns.date.getMoment=function(){var e=Date.parse((new Date).toLocaleString("en-US",{timeZone:ns.date.timeZone}));return n()(e)}},6700:(e,t,r)=>{var s={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function n(e){var t=i(e);return r(t)}function i(e){if(!r.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=6700},6598:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});var s=r(381),n=r.n(s);const i={name:"ns-datepicker",props:["label","date"],data:function(){return{visible:!1,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},mounted:function(){document.addEventListener("click",this.checkClickedItem),this.currentDay=[void 0,null].includes(this.date)?n()():n()(this.date),this.build()},methods:{__:r(7389).__,checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.visible=!1,this.$emit("change",e)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var r=this.calendar.length-1;if(this.calendar[r].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(n().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}};const o=(0,r(1900).Z)(i,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"picker"},[r("div",{staticClass:"rounded cursor-pointer bg-white shadow px-1 py-1 flex items-center text-gray-700",on:{click:function(t){e.visible=!e.visible}}},[r("i",{staticClass:"las la-clock text-2xl"}),e._v(" "),r("span",{staticClass:"mx-1 text-sm"},[r("span",[e._v(e._s(e.label||e.__("Date"))+" : ")]),e._v(" "),e.currentDay?r("span",[e._v(e._s(e.currentDay.format("YYYY/MM/DD")))]):e._e(),e._v(" "),null===e.currentDay?r("span",[e._v(e._s(e.__("N/A")))]):e._e()])]),e._v(" "),e.visible?r("div",{staticClass:"relative h-0 w-0 -mb-2"},[r("div",{staticClass:"w-72 mt-2 shadow rounded bg-white anim-duration-300 zoom-in-entrance flex flex-col"},[r("div",{staticClass:"flex-auto"},[r("div",{staticClass:"p-2 flex items-center"},[r("div",[r("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.subMonth()}}},[r("i",{staticClass:"las la-angle-left"})])]),e._v(" "),r("div",{staticClass:"flex flex-auto font-semibold text-gray-700 justify-center"},[e._v(e._s(e.currentDay.format("MMM"))+" "+e._s(e.currentDay.format("YYYY")))]),e._v(" "),r("div",[r("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.addMonth()}}},[r("i",{staticClass:"las la-angle-right"})])])]),e._v(" "),r("div",{staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},[r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sun")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Mon")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Tue")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Wed")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Thr")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Fri")))]),e._v(" "),r("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sat")))])]),e._v(" "),e._l(e.calendar,(function(t,s){return r("div",{key:s,staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},e._l(e.daysOfWeek,(function(s,n){return r("div",{key:n,staticClass:"h-8 flex justify-center items-center text-sm"},[e._l(t,(function(t,n){return[t.dayOfWeek===s?r("div",{key:n,staticClass:"h-full w-full flex items-center justify-center cursor-pointer",class:t.date.format("DD")===e.currentDay.format("DD")?"bg-blue-400 text-white border border-blue-500":"hover:bg-gray-100 border border-gray-200",on:{click:function(r){return e.selectDate(t.date)}}},[e._v("\n "+e._s(t.date.format("DD"))+"\n ")]):e._e()]}))],2)})),0)}))],2),e._v(" "),r("div")])]):e._e()])}),[],!1,null,null,null).exports},3968:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});function s(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const o=(0,r(1900).Z)(i,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,s){return r("div",{key:s,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(r){return e.inputValue(t)}}},[void 0!==t.value?r("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?r("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},9576:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var s=r(162),n=r(8603),i=r(7389);const o={name:"ns-media",props:["popup"],components:{VueUpload:r(2948)},data:function(){return{pages:[{label:(0,i.__)("Upload"),name:"upload",selected:!1},{label:(0,i.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return s.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:n.Z,__:i.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return s.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){s.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){s.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,s.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(r,s){s!==t.response.data.indexOf(e)&&(r.selected=!1)})),e.selected=!e.selected}}};const a=(0,r(1900).Z)(o,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[r("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[r("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),r("ul",e._l(e.pages,(function(t,s){return r("li",{key:s,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(r){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?r("div",{staticClass:"content w-full overflow-hidden flex"},[r("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[r("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[r("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),r("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[r("ul",e._l(e.files,(function(t,s){return r("li",{key:s,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[r("span",[e._v(e._s(t.name))]),e._v(" "),r("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?r("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?r("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[r("div"),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),r("div",{staticClass:"flex flex-auto overflow-hidden"},[r("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[r("div",{staticClass:"flex flex-auto"},[r("div",{staticClass:"p-2 overflow-x-auto"},[r("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,s){return r("div",{key:s},[r("div",{staticClass:"p-2"},[r("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(r){return e.selectResource(t)}}},[r("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?r("div",{staticClass:"flex flex-auto items-center justify-center"},[r("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?r("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[r("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[r("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),r("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[r("p",{staticClass:"flex flex-col mb-2"},[r("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),r("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),r("p",{staticClass:"flex flex-col mb-2"},[r("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),r("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),r("p",{staticClass:"flex flex-col mb-2"},[r("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),r("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),r("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[r("div",{staticClass:"flex -mx-2 flex-shrink-0"},[r("div",{staticClass:"px-2 flex-shrink-0 flex"},[r("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?r("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[r("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?r("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[r("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?r("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[r("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),r("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[r("div",{staticClass:"px-2"},[r("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[r("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),r("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),r("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?r("div",{staticClass:"px-2"},[r("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},2014:(e,t,r)=>{"use strict";r.d(t,{Z:()=>ge});var s=r(7757),n=r.n(s),i=r(2242),o=r(6386),a=r(7389);function l(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r100?100:this.finalValue))}}};var d=r(1900);const f=(0,d.Z)(u,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow min-h-2/5-screen w-6/7-screen md:w-3/5-screen lg:w-3/5-screen xl:w-2/5-screen relative",attrs:{id:"discount-popup"}},[r("div",{staticClass:"flex-shrink-0 py-2 border-b border-gray-200"},["product"===e.type?r("h1",{staticClass:"text-xl font-bold text-gray-700 text-center"},[e._v(e._s(e.__("Product Discount")))]):e._e(),e._v(" "),"cart"===e.type?r("h1",{staticClass:"text-xl font-bold text-gray-700 text-center"},[e._v(e._s(e.__("Cart Discount")))]):e._e()]),e._v(" "),r("div",{staticClass:"h-16 bg-gray-800 text-white border-gray-200 flex items-center justify-center",attrs:{id:"screen"}},[r("h1",{staticClass:"font-bold text-3xl"},["flat"===e.mode?r("span",[e._v(e._s(e._f("currency")(e.finalValue)))]):e._e(),e._v(" "),"percentage"===e.mode?r("span",[e._v(e._s(e.finalValue)+"%")]):e._e()])]),e._v(" "),r("div",{staticClass:"flex",attrs:{id:"switch-mode"}},[r("button",{staticClass:"outline-none w-1/2 py-2 flex items-center justify-center",class:"flat"===e.mode?"bg-gray-800 text-white":"",on:{click:function(t){return e.setPercentageType("flat")}}},[e._v(e._s(e.__("Flat")))]),e._v(" "),r("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),r("button",{staticClass:"outline-none w-1/2 py-2 flex items-center justify-center",class:"percentage"===e.mode?"bg-gray-800 text-white":"",on:{click:function(t){return e.setPercentageType("percentage")}}},[e._v(e._s(e.__("Percentage")))])]),e._v(" "),r("div",{staticClass:"grid grid-flow-row grid-cols-3 grid-rows-3",attrs:{id:"numpad"}},e._l(e.keys,(function(t,s){return r("div",{key:s,staticClass:"hover:bg-blue-400 hover:text-white hover:border-blue-600 text-xl font-bold border border-gray-200 h-24 flex items-center justify-center cursor-pointer",on:{click:function(r){return e.inputValue(t)}}},[void 0!==t.value?r("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?r("i",{staticClass:"las",class:t.icon}):e._e()])})),0)])}),[],!1,null,null,null).exports;var p=r(419);function h(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return v(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r100?100:this.backValue))),"0"===this.backValue&&(this.backValue="")}}};const m=(0,d.Z)(b,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"h-full w-full py-2"},[e.order?r("div",{staticClass:"px-2 pb-2"},[r("div",{staticClass:"grid grid-cols-2 gap-2"},[r("div",{staticClass:"h-16 flex justify-between items-center bg-blue-400 text-white text-xl md:text-3xl p-2",attrs:{id:"details"}},[r("span",[e._v(e._s(e.__("Total"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.total)))])]),e._v(" "),r("div",{staticClass:"cursor-pointer h-16 flex justify-between items-center bg-red-400 text-white text-xl md:text-3xl p-2",attrs:{id:"discount"},on:{click:function(t){return e.toggleDiscount()}}},[r("span",[e._v(e._s(e.__("Discount"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.discount)))])]),e._v(" "),r("div",{staticClass:"h-16 flex justify-between items-center bg-green-400 text-white text-xl md:text-3xl p-2",attrs:{id:"paid"}},[r("span",[e._v(e._s(e.__("Paid"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.tendered)))])]),e._v(" "),r("div",{staticClass:"h-16 flex justify-between items-center bg-teal-400 text-white text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Change"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.change)))])]),e._v(" "),r("div",{staticClass:"col-span-2 h-16 flex justify-between items-center bg-gray-300 text-gray-800 text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Screen"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.backValue/e.number)))])])])]):e._e(),e._v(" "),r("div",{staticClass:"px-2 pb-2"},[r("div",{staticClass:"-mx-2 flex flex-wrap"},[r("div",{staticClass:"pl-2 pr-1 flex-auto"},[r("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,s){return r("div",{key:s,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(r){return e.inputValue(t)}}},[void 0!==t.value?r("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?r("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),r("div",{staticClass:"hover:bg-green-500 col-span-3 bg-green-400 text-2xl text-white border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.makeFullPayment()}}},[e._v("\n "+e._s(e.__("Full Payment")))])],2)]),e._v(" "),r("div",{staticClass:"w-1/2 md:w-72 pr-2 pl-1"},[r("div",{staticClass:"grid grid-flow-row grid-rows-1 gap-2"},[r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:100})}}},[r("span",[e._v(e._s(e._f("currency")(100)))])]),e._v(" "),r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:500})}}},[r("span",[e._v(e._s(e._f("currency")(500)))])]),e._v(" "),r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:1e3})}}},[r("span",[e._v(e._s(e._f("currency")(1e3)))])])])])])])])}),[],!1,null,null,null).exports,g={name:"cash-payment",props:["identifier","label"],components:{samplePayment:m}};const _=(0,d.Z)(g,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("sample-payment",{attrs:{identifier:e.identifier,label:e.label},on:{submit:function(t){return e.$emit("submit")}}})}),[],!1,null,null,null).exports;const y={name:"creditcart-payment",props:["identifier"]};const x=(0,d.Z)(y,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("h1",[e._v("Credit Card")])}),[],!1,null,null,null).exports;const w={name:"bank-payment",props:["identifier","label"],components:{samplePayment:m}};const C=(0,d.Z)(w,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("sample-payment",{attrs:{identifier:e.identifier,label:e.label},on:{submit:function(t){return e.$emit("submit")}}})}),[],!1,null,null,null).exports;var k=r(3968),j=r(162);const S={name:"ns-account-payment",components:{nsNumpad:k.Z},props:["identifier","label"],data:function(){return{subscription:null,screenValue:0,order:null}},methods:{__:a.__,handleChange:function(e){this.screenValue=e},proceedAddingPayment:function(e){var t=parseFloat(e),r=this.order.payments;return t<=0?j.kX.error((0,a.__)("Please provide a valid payment amount.")).subscribe():r.filter((function(e){return"account-payment"===e.identifier})).length>0?j.kX.error((0,a.__)("The customer account can only be used once per order. Consider deleting the previously used payment.")).subscribe():t>this.order.customer.account_amount?j.kX.error((0,a.__)("Not enough funds to add {amount} as a payment. Available balance {balance}.").replace("{amount}",this.$options.filters.currency(t)).replace("{balance}",this.$options.filters.currency(this.order.customer.account_amount))).subscribe():(POS.addPayment({value:t,identifier:"account-payment",selected:!1,label:this.label,readonly:!1}),this.order.customer.account_amount-=t,POS.selectCustomer(this.order.customer),void this.$emit("submit"))},proceedFullPayment:function(){this.proceedAddingPayment(this.order.total)},makeFullPayment:function(){var e=this;Popup.show(p.Z,{title:(0,a.__)("Confirm Full Payment"),message:(0,a.__)("You're about to use {amount} from the customer account to make a payment. Would you like to proceed ?").replace("{amount}",this.$options.filters.currency(this.order.total)),onAction:function(t){t&&e.proceedFullPayment()}})}},mounted:function(){var e=this;this.subscription=POS.order.subscribe((function(t){return e.order=t}))},destroyed:function(){this.subscription.unsubscribe()}};const P=(0,d.Z)(S,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"h-full w-full py-2"},[e.order?r("div",{staticClass:"px-2 pb-2"},[r("div",{staticClass:"grid grid-cols-2 gap-2"},[r("div",{staticClass:"h-16 flex justify-between items-center bg-blue-400 text-white text-xl md:text-3xl p-2",attrs:{id:"details"}},[r("span",[e._v(e._s(e.__("Total"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.total)))])]),e._v(" "),r("div",{staticClass:"cursor-pointer h-16 flex justify-between items-center bg-red-400 text-white text-xl md:text-3xl p-2",attrs:{id:"discount"},on:{click:function(t){return e.toggleDiscount()}}},[r("span",[e._v(e._s(e.__("Discount"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.discount)))])]),e._v(" "),r("div",{staticClass:"h-16 flex justify-between items-center bg-green-400 text-white text-xl md:text-3xl p-2",attrs:{id:"paid"}},[r("span",[e._v(e._s(e.__("Paid"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.tendered)))])]),e._v(" "),r("div",{staticClass:"h-16 flex justify-between items-center bg-teal-400 text-white text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Change"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.change)))])]),e._v(" "),r("div",{staticClass:"col-span-2 h-16 flex justify-between items-center bg-blue-400 text-white text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Current Balance"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.customer.account_amount)))])]),e._v(" "),r("div",{staticClass:"col-span-2 h-16 flex justify-between items-center bg-gray-300 text-gray-800 text-xl md:text-3xl p-2",attrs:{id:"change"}},[r("span",[e._v(e._s(e.__("Screen"))+" : ")]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.screenValue)))])])])]):e._e(),e._v(" "),r("div",{staticClass:"px-2 pb-2"},[r("div",{staticClass:"-mx-2 flex flex-wrap"},[r("div",{staticClass:"pl-2 pr-1 flex-auto"},[r("ns-numpad",{attrs:{floating:!0},on:{changed:function(t){return e.handleChange(t)},next:function(t){return e.proceedAddingPayment(t)}},scopedSlots:e._u([{key:"numpad-footer",fn:function(){return[r("div",{staticClass:"hover:bg-green-500 col-span-3 bg-green-400 text-2xl text-white border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.makeFullPayment()}}},[e._v("\n "+e._s(e.__("Full Payment")))])]},proxy:!0}])})],1),e._v(" "),r("div",{staticClass:"w-1/2 md:w-72 pr-2 pl-1"},[r("div",{staticClass:"grid grid-flow-row grid-rows-1 gap-2"},[r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:100})}}},[r("span",[e._v(e._s(e._f("currency")(100)))])]),e._v(" "),r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:500})}}},[r("span",[e._v(e._s(e._f("currency")(500)))])]),e._v(" "),r("div",{staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",on:{click:function(t){return e.increaseBy({value:1e3})}}},[r("span",[e._v(e._s(e._f("currency")(1e3)))])])])])])])])}),[],!1,null,null,null).exports;var O=r(1957);function $(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function T(e){for(var t=1;t0&&e[0]},expectedPayment:function(){var e=this.order.customer.group.minimal_credit_payment;return this.order.total*e/100}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){switch(t.event){case"click-overlay":e.closePopup()}})),this.order=this.$popupParams.order,this.paymentTypesSubscription=POS.paymentsType.subscribe((function(t){e.paymentsType=t,t.filter((function(e){e.selected&&POS.selectedPaymentType.next(e)}))}))},watch:{activePayment:function(e){this.loadPaymentComponent(e)}},destroyed:function(){this.paymentTypesSubscription.unsubscribe()},methods:{__:a.__,resolveIfQueued:o.Z,loadPaymentComponent:function(e){switch(e.identifier){case"cash-payment":this.currentPaymentComponent=_;break;case"creditcard-payment":this.currentPaymentComponent=x;break;case"bank-payment":this.currentPaymentComponent=C;break;case"account-payment":this.currentPaymentComponent=P;break;default:this.currentPaymentComponent=m}},select:function(e){this.showPayment=!1,POS.setPaymentActive(e)},closePopup:function(){this.$popup.close(),POS.selectedPaymentType.next(null)},deletePayment:function(e){POS.removePayment(e)},selectPaymentAsActive:function(e){this.select(this.paymentsType.filter((function(t){return t.identifier===e.target.value}))[0])},submitOrder:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=i.G.show(O.Z);try{var s=T(T({},POS.order.getValue()),t);POS.submitOrder(s).then((function(t){r.close(),j.kX.success(t.message).subscribe(),POS.printOrder(t.data.order.id),e.$popup.close()}),(function(e){r.close(),j.kX.error(e.message).subscribe()}))}catch(e){r.close(),j.kX.error(error.message).subscribe()}}}};const A=(0,d.Z)(V,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return e.order?r("div",{staticClass:"w-screen h-screen p-4 flex overflow-hidden"},[r("div",{staticClass:"flex flex-col flex-auto lg:flex-row bg-white shadow-xl"},[r("div",{staticClass:"w-full lg:w-56 bg-gray-300 lg:h-full flex justify-between px-2 lg:px-0 lg:block items-center lg:items-start"},[r("h3",{staticClass:"text-xl text-center my-4 font-bold lg:my-8 text-gray-700"},[e._v(e._s(e.__("Payments Gateway")))]),e._v(" "),r("ul",{staticClass:"hidden lg:block"},[e._l(e.paymentsType,(function(t){return r("li",{key:t.identifier,staticClass:"cursor-pointer hover:bg-gray-400 py-2 px-3",class:t.selected&&!e.showPayment?"bg-white text-gray-800":"text-gray-700",on:{click:function(r){return e.select(t)}}},[e._v(e._s(t.label))])})),e._v(" "),r("li",{staticClass:"cursor-pointer text-gray-700 hover:bg-gray-400 py-2 px-3 border-t border-gray-400 mt-4 flex items-center justify-between",class:e.showPayment?"bg-white text-gray-800":"text-gray-700",on:{click:function(t){e.showPayment=!0}}},[r("span",[e._v(e._s(e.__("Payment List")))]),e._v(" "),r("span",{staticClass:"px-2 rounded-full h-8 w-8 flex items-center justify-center bg-green-500 text-white"},[e._v(e._s(e.order.payments.length))])])],2),e._v(" "),r("ns-close-button",{staticClass:"lg:hidden",on:{click:function(t){return e.closePopup()}}})],1),e._v(" "),r("div",{staticClass:"overflow-hidden flex flex-col flex-auto"},[r("div",{staticClass:"flex flex-col flex-auto overflow-hidden"},[r("div",{staticClass:"h-12 bg-gray-300 hidden items-center justify-between lg:flex"},[r("div"),e._v(" "),r("div",{staticClass:"px-2"},[r("ns-close-button",{on:{click:function(t){return e.closePopup()}}})],1)]),e._v(" "),e.showPayment?e._e():r("div",{staticClass:"flex flex-auto overflow-y-auto"},[r(e.currentPaymentComponent,{tag:"component",attrs:{label:e.activePayment.label,identifier:e.activePayment.identifier},on:{submit:function(t){return e.submitOrder()}}})],1),e._v(" "),e.showPayment?r("div",{staticClass:"flex flex-auto overflow-y-auto p-2 flex-col"},[r("h3",{staticClass:"text-center font-bold py-2 text-gray-700"},[e._v(e._s(e.__("List Of Payments")))]),e._v(" "),r("ul",{staticClass:"flex-auto"},[0===e.order.payments.length?r("li",{staticClass:"p-2 bg-gray-200 flex justify-center mb-2 items-center"},[r("h3",{staticClass:"font-semibold"},[e._v(e._s(e.__("No Payment added.")))])]):e._e(),e._v(" "),e._l(e.order.payments,(function(t,s){return r("li",{key:s,staticClass:"p-2 bg-gray-200 flex justify-between mb-2 items-center"},[r("span",[e._v(e._s(t.label))]),e._v(" "),r("div",{staticClass:"flex items-center"},[r("span",[e._v(e._s(e._f("currency")(t.value)))]),e._v(" "),r("button",{staticClass:"rounded-full bg-red-400 h-8 w-8 flex items-center justify-center text-white ml-2",on:{click:function(r){return e.deletePayment(t)}}},[r("i",{staticClass:"las la-trash-alt"})])])])}))],2)]):e._e()]),e._v(" "),r("div",{staticClass:"flex flex-col lg:flex-row w-full bg-gray-300 justify-between p-2"},[r("div",{staticClass:"flex mb-1"},[r("div",{staticClass:"flex items-center lg:hidden"},[r("h3",{staticClass:"font-semibold mr-2"},[e._v(e._s(e.__("Select Payment")))]),e._v(" "),r("select",{staticClass:"p-2 rounded border-2 border-blue-400 bg-white shadow",on:{change:function(t){return e.selectPaymentAsActive(t)}}},[r("option",{attrs:{value:""}},[e._v(e._s(e.__("Choose Payment")))]),e._v(" "),e._l(e.paymentsType,(function(t){return r("option",{key:t.identifier,domProps:{selected:e.activePayment.identifier===t.identifier,value:t.identifier},on:{click:function(r){return e.select(t)}}},[e._v(e._s(t.label))])}))],2)])]),e._v(" "),r("div",{staticClass:"flex justify-end"},[e.order.tendered>=e.order.total?r("ns-button",{attrs:{type:e.order.tendered>=e.order.total?"success":"info"},on:{click:function(t){return e.submitOrder()}}},[r("span",[r("i",{staticClass:"las la-cash-register"}),e._v(" "+e._s(e.__("Submit Payment")))])]):e._e(),e._v(" "),e.order.tendered=e.order.total?"success":"info"},on:{click:function(t){return e.submitOrder({payment_status:"unpaid"})}}},[r("span",[r("i",{staticClass:"las la-bookmark"}),e._v(" "+e._s(e.__("Layaway"))+" — "+e._s(e._f("currency")(e.expectedPayment)))])]):e._e()],1)])])])]):e._e()}),[],!1,null,null,null).exports;r(9531);var D=r(279),F=r(3625),Z=r(4326);function q(e,t){for(var r=0;r0&&void 0!==e[0]?e[0]:"settings",r.prev=1,r.next=4,new Promise((function(e,r){var n=t.order.taxes,o=t.order.tax_group_id,a=t.order.tax_type;i.G.show(te,{resolve:e,reject:r,taxes:n,tax_group_id:o,tax_type:a,activeTab:s})}));case 4:o=r.sent,a=pe(pe({},t.order),o),POS.order.next(a),POS.refreshCart(),r.next=13;break;case 10:r.prev=10,r.t0=r.catch(1),console.log(r.t0);case 13:case"end":return r.stop()}}),r,null,[[1,10]])})))()},openTaxSummary:function(){this.selectTaxGroup("summary")},voidOngoingOrder:function(){POS.voidOrder(this.order)},holdOrder:function(){var e=this;return be(n().mark((function t(){var r,s,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!("hold"!==e.order.payment_status&&e.order.payments.length>0)){t.next=2;break}return t.abrupt("return",j.kX.error("Unable to hold an order which payment status has been updated already.").subscribe());case 2:r=j.kq.applyFilters("ns-hold-queue",[I,L,X]),t.t0=n().keys(r);case 4:if((t.t1=t.t0()).done){t.next=18;break}return s=t.t1.value,t.prev=6,o=new r[s](e.order),t.next=10,o.run();case 10:t.sent,t.next=16;break;case 13:return t.prev=13,t.t2=t.catch(6),t.abrupt("return",!1);case 16:t.next=4;break;case 18:j.kq.applyFilters("ns-override-hold-popup",(function(){new Promise((function(t,r){i.G.show(B,{resolve:t,reject:r,order:e.order})})).then((function(t){e.order.title=t.title,e.order.payment_status="hold",POS.order.next(e.order);var r=i.G.show(O.Z);POS.submitOrder().then((function(e){r.close(),j.kX.success(e.message).subscribe()}),(function(e){r.close(),j.kX.error(e.message).subscribe()}))}))}))();case 20:case"end":return t.stop()}}),t,null,[[6,13]])})))()},openDiscountPopup:function(e,t){return this.settings.products_discount||"product"!==t?this.settings.cart_discount||"cart"!==t?void i.G.show(f,{reference:e,type:t,onSubmit:function(r){"product"===t?POS.updateProduct(e,r):"cart"===t&&POS.updateCart(e,r)}},{popupClass:"bg-white h:2/3 shadow-lg xl:w-1/4 lg:w-2/5 md:w-2/3 w-full"}):j.kX.error("You're not allowed to add a discount on the cart.").subscribe():j.kX.error("You're not allowed to add a discount on the product.").subscribe()},selectCustomer:function(){i.G.show(Z.Z)},toggleMode:function(e){"normal"===e.mode?i.G.show(p.Z,{title:"Enable WholeSale Price",message:"Would you like to switch to wholesale price ?",onAction:function(t){t&&POS.updateProduct(e,{mode:"wholesale"})}}):i.G.show(p.Z,{title:"Enable Normal Price",message:"Would you like to switch to normal price ?",onAction:function(t){t&&POS.updateProduct(e,{mode:"normal"})}})},remove:function(e){i.G.show(p.Z,{title:"Confirm Your Action",message:"Would you like to delete this product ?",onAction:function(t){t&&POS.removeProduct(e)}})},changeQuantity:function(e){new D.$(e).run({unit_quantity_id:e.unit_quantity_id,unit_name:e.unit_name,$quantities:e.$quantities}).then((function(t){POS.updateProduct(e,t)}))},payOrder:function(){var e=this;return be(n().mark((function t(){var r,s,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r=[I,L,X,z],t.t0=n().keys(r);case 2:if((t.t1=t.t0()).done){t.next=16;break}return s=t.t1.value,t.prev=4,i=new r[s](e.order),t.next=8,i.run();case 8:t.sent,t.next=14;break;case 11:return t.prev=11,t.t2=t.catch(4),t.abrupt("return",!1);case 14:t.next=2;break;case 16:case"end":return t.stop()}}),t,null,[[4,11]])})))()},openOrderType:function(){i.G.show(F.Z)},openShippingPopup:function(){i.G.show(H.Z)}}};const ge=(0,d.Z)(me,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex-auto flex flex-col",attrs:{id:"pos-cart"}},["cart"===e.visibleSection?r("div",{staticClass:"flex pl-2",attrs:{id:"tools"}},[r("div",{staticClass:"flex cursor-pointer rounded-tl-lg rounded-tr-lg px-3 py-2 bg-white font-semibold text-gray-700",on:{click:function(t){return e.switchTo("cart")}}},[r("span",[e._v(e._s(e.__("Cart")))]),e._v(" "),e.order?r("span",{staticClass:"flex items-center justify-center text-sm rounded-full h-6 w-6 bg-green-500 text-white ml-1"},[e._v(e._s(e.order.products.length))]):e._e()]),e._v(" "),r("div",{staticClass:"cursor-pointer rounded-tl-lg rounded-tr-lg px-3 py-2 bg-gray-300 border-t border-r border-l border-gray-300 text-gray-600",on:{click:function(t){return e.switchTo("grid")}}},[e._v("\n "+e._s(e.__("Products"))+"\n ")])]):e._e(),e._v(" "),r("div",{staticClass:"rounded shadow bg-white flex-auto flex overflow-hidden"},[r("div",{staticClass:"cart-table flex flex-auto flex-col overflow-hidden"},[r("div",{staticClass:"w-full p-2 border-b border-gray-300",attrs:{id:"cart-toolbox"}},[r("div",{staticClass:"border border-gray-300 rounded overflow-hidden"},[r("div",{staticClass:"flex flex-wrap"},[r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none",on:{click:function(t){return e.openNotePopup()}}},[r("i",{staticClass:"las la-comment"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Comments")))])])]),e._v(" "),r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none flex items-center",on:{click:function(t){return e.selectTaxGroup()}}},[r("i",{staticClass:"las la-balance-scale-left"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Taxes")))]),e._v(" "),e.order.taxes&&e.order.taxes.length>0?r("span",{staticClass:"ml-1 rounded-full flex items-center justify-center h-6 w-6 bg-blue-400 text-white"},[e._v(e._s(e.order.taxes.length))]):e._e()])]),e._v(" "),r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none flex items-center",on:{click:function(t){return e.selectCoupon()}}},[r("i",{staticClass:"las la-tags"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Coupons")))]),e._v(" "),e.order.coupons&&e.order.coupons.length>0?r("span",{staticClass:"ml-1 rounded-full flex items-center justify-center h-6 w-6 bg-blue-400 text-white"},[e._v(e._s(e.order.coupons.length))]):e._e()])]),e._v(" "),r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none flex items-center",on:{click:function(t){return e.defineOrderSettings()}}},[r("i",{staticClass:"las la-tools"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Settings")))])])]),e._v(" "),r("div",[r("button",{staticClass:"w-full h-10 px-3 bg-gray-200 border-r border-gray-300 outline-none flex items-center",on:{click:function(t){return e.openAddQuickProduct()}}},[r("i",{staticClass:"las la-plus"}),e._v(" "),r("span",{staticClass:"ml-1 hidden md:inline-block"},[e._v(e._s(e.__("Product")))])])])])])]),e._v(" "),r("div",{staticClass:"w-full text-gray-700 font-semibold flex",attrs:{id:"cart-table-header"}},[r("div",{staticClass:"w-full lg:w-4/6 p-2 border border-l-0 border-t-0 border-gray-200 bg-gray-100"},[e._v(e._s(e.__("Product")))]),e._v(" "),r("div",{staticClass:"hidden lg:flex lg:w-1/6 p-2 border-b border-t-0 border-gray-200 bg-gray-100"},[e._v(e._s(e.__("Quantity")))]),e._v(" "),r("div",{staticClass:"hidden lg:flex lg:w-1/6 p-2 border border-r-0 border-t-0 border-gray-200 bg-gray-100"},[e._v(e._s(e.__("Total")))])]),e._v(" "),r("div",{staticClass:"flex flex-auto flex-col overflow-auto",attrs:{id:"cart-products-table"}},[0===e.products.length?r("div",{staticClass:"text-gray-700 flex"},[r("div",{staticClass:"w-full text-center py-4 border-b border-gray-200"},[r("h3",{staticClass:"text-gray-600"},[e._v(e._s(e.__("No products added...")))])])]):e._e(),e._v(" "),e._l(e.products,(function(t,s){return r("div",{key:t.barcode,staticClass:"text-gray-700 flex",attrs:{"product-index":s}},[r("div",{staticClass:"w-full lg:w-4/6 p-2 border border-l-0 border-t-0 border-gray-200"},[r("div",{staticClass:"flex justify-between product-details mb-1"},[r("h3",{staticClass:"font-semibold"},[e._v("\n "+e._s(t.name)+" — "+e._s(t.unit_name)+"\n ")]),e._v(" "),r("div",{staticClass:"-mx-1 flex product-options"},[r("div",{staticClass:"px-1"},[r("a",{staticClass:"hover:text-red-400 cursor-pointer outline-none border-dashed py-1 border-b border-red-400 text-sm",on:{click:function(r){return e.remove(t)}}},[r("i",{staticClass:"las la-trash text-xl"})])]),e._v(" "),r("div",{staticClass:"px-1"},[r("a",{staticClass:"hover:text-blue-600 cursor-pointer outline-none border-dashed py-1 border-b text-sm",class:"wholesale"===t.mode?"text-green-600 border-green-600":"border-blue-400",on:{click:function(r){return e.toggleMode(t)}}},[r("i",{staticClass:"las la-award text-xl"})])])])]),e._v(" "),r("div",{staticClass:"flex justify-between product-controls"},[r("div",{staticClass:"-mx-1 flex flex-wrap"},[r("div",{staticClass:"px-1 w-1/2 md:w-auto mb-1"},[r("a",{staticClass:"cursor-pointer outline-none border-dashed py-1 border-b text-sm",class:"wholesale"===t.mode?"text-green-600 hover:text-green-700 border-green-600":"hover:text-blue-400 border-blue-400",on:{click:function(r){return e.changeProductPrice(t)}}},[e._v(e._s(e.__("Price"))+" : "+e._s(e._f("currency")(t.unit_price)))])]),e._v(" "),r("div",{staticClass:"px-1 w-1/2 md:w-auto mb-1"},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(r){return e.openDiscountPopup(t,"product")}}},[e._v(e._s(e.__("Discount"))+" "),"percentage"===t.discount_type?r("span",[e._v(e._s(t.discount_percentage)+"%")]):e._e(),e._v(" : "+e._s(e._f("currency")(t.discount)))])]),e._v(" "),r("div",{staticClass:"px-1 w-1/2 md:w-auto mb-1 lg:hidden"},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(r){return e.changeQuantity(t)}}},[e._v(e._s(e.__("Quantity :"))+" "+e._s(t.quantity))])]),e._v(" "),r("div",{staticClass:"px-1 w-1/2 md:w-auto mb-1 lg:hidden"},[r("span",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm"},[e._v(e._s(e.__("Total :"))+" "+e._s(e._f("currency")(t.total_price)))])])])])]),e._v(" "),r("div",{staticClass:"hidden lg:flex w-1/6 p-2 border-b border-gray-200 items-center justify-center cursor-pointer hover:bg-blue-100",on:{click:function(r){return e.changeQuantity(t)}}},[r("span",{staticClass:"border-b border-dashed border-blue-400 p-2"},[e._v(e._s(t.quantity))])]),e._v(" "),r("div",{staticClass:"hidden lg:flex w-1/6 p-2 border border-r-0 border-t-0 border-gray-200 items-center justify-center"},[e._v(e._s(e._f("currency")(t.total_price)))])])}))],2),e._v(" "),r("div",{staticClass:"flex",attrs:{id:"cart-products-summary"}},["both"===e.visibleSection?r("table",{staticClass:"table w-full text-sm text-gray-700"},[r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.selectCustomer()}}},[e._v("Customer : "+e._s(e.customerName))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[e._v(e._s(e.__("Sub Total")))]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2 text-right",attrs:{width:"200"}},[e._v(e._s(e._f("currency")(e.order.subtotal)))])]),e._v(" "),r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openOrderType()}}},[e._v(e._s(e.__("Type :"))+" "+e._s(e.selectedType))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("span",[e._v(e._s(e.__("Discount")))]),e._v(" "),"percentage"===e.order.discount_type?r("span",[e._v("("+e._s(e.order.discount_percentage)+"%)")]):e._e(),e._v(" "),"flat"===e.order.discount_type?r("span",[e._v("("+e._s(e.__("Flat"))+")")]):e._e()]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2 text-right",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openDiscountPopup(e.order,"cart")}}},[e._v(e._s(e._f("currency")(e.order.discount)))])])]),e._v(" "),e.order.type&&"delivery"===e.order.type.identifier?r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}}),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openShippingPopup()}}},[e._v(e._s(e.__("Shipping")))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2 text-right",attrs:{width:"200"}},[e._v(e._s(e._f("currency")(e.order.shipping)))])]):e._e(),e._v(" "),r("tr",{staticClass:"bg-green-200"},[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[e.order?r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openTaxSummary()}}},[e._v("Tax : "+e._s(e._f("currency")(e.order.tax_value)))]):e._e()]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[e._v(e._s(e.__("Total")))]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2 text-right",attrs:{width:"200"}},[e._v(e._s(e._f("currency")(e.order.total)))])])]):e._e(),e._v(" "),"cart"===e.visibleSection?r("table",{staticClass:"table w-full text-sm text-gray-700"},[r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.selectCustomer()}}},[e._v(e._s(e.__("Customer :"))+" "+e._s(e.customerName))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("div",{staticClass:"flex justify-between"},[r("span",[e._v(e._s(e.__("Sub Total")))]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.subtotal)))])])])]),e._v(" "),r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openOrderType()}}},[e._v(e._s(e.__("Type :"))+" "+e._s(e.selectedType))])]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("div",{staticClass:"flex justify-between items-center"},[r("p",[r("span",[e._v(e._s(e.__("Discount")))]),e._v(" "),"percentage"===e.order.discount_type?r("span",[e._v("("+e._s(e.order.discount_percentage)+"%)")]):e._e(),e._v(" "),"flat"===e.order.discount_type?r("span",[e._v("("+e._s(e.__("Flat"))+")")]):e._e()]),e._v(" "),r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openDiscountPopup(e.order,"cart")}}},[e._v(e._s(e._f("currency")(e.order.discount)))])])])]),e._v(" "),e.order.type&&"delivery"===e.order.type.identifier?r("tr",[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}}),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openShippingPopup()}}},[e._v(e._s(e.__("Shipping")))]),e._v(" "),r("span")])]):e._e(),e._v(" "),r("tr",{staticClass:"bg-green-200"},[r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[e.order?r("a",{staticClass:"hover:text-blue-400 cursor-pointer outline-none border-dashed py-1 border-b border-blue-400 text-sm",on:{click:function(t){return e.openTaxSummary()}}},[e._v(e._s(e.__("Tax :"))+" "+e._s(e._f("currency")(e.order.tax_value)))]):e._e()]),e._v(" "),r("td",{staticClass:"border border-gray-300 p-2",attrs:{width:"200"}},[r("div",{staticClass:"flex justify-between w-full"},[r("span",[e._v(e._s(e.__("Total")))]),e._v(" "),r("span",[e._v(e._s(e._f("currency")(e.order.total)))])])])])]):e._e()]),e._v(" "),r("div",{staticClass:"h-16 flex flex-shrink-0 border-t border-gray-200",attrs:{id:"cart-bottom-buttons"}},[r("div",{staticClass:"flex-shrink-0 w-1/4 flex items-center font-bold cursor-pointer justify-center bg-green-500 text-white hover:bg-green-600 border-r border-green-600 flex-auto",attrs:{id:"pay-button"},on:{click:function(t){return e.payOrder()}}},[r("i",{staticClass:"mr-2 text-2xl lg:text-xl las la-cash-register"}),e._v(" "),r("span",{staticClass:"text-lg hidden md:inline lg:text-2xl"},[e._v(e._s(e.__("Pay")))])]),e._v(" "),r("div",{staticClass:"flex-shrink-0 w-1/4 flex items-center font-bold cursor-pointer justify-center bg-blue-500 text-white border-r hover:bg-blue-600 border-blue-600 flex-auto",attrs:{id:"hold-button"},on:{click:function(t){return e.holdOrder()}}},[r("i",{staticClass:"mr-2 text-2xl lg:text-xl las la-pause"}),e._v(" "),r("span",{staticClass:"text-lg hidden md:inline lg:text-2xl"},[e._v(e._s(e.__("Hold")))])]),e._v(" "),r("div",{staticClass:"flex-shrink-0 w-1/4 flex items-center font-bold cursor-pointer justify-center bg-white border-r border-gray-200 hover:bg-indigo-100 flex-auto text-gray-700",attrs:{id:"discount-button"},on:{click:function(t){return e.openDiscountPopup(e.order,"cart")}}},[r("i",{staticClass:"mr-2 text-2xl lg:text-xl las la-percent"}),e._v(" "),r("span",{staticClass:"text-lg hidden md:inline lg:text-2xl"},[e._v(e._s(e.__("Discount")))])]),e._v(" "),r("div",{staticClass:"flex-shrink-0 w-1/4 flex items-center font-bold cursor-pointer justify-center bg-red-500 text-white border-gray-200 hover:bg-red-600 flex-auto",attrs:{id:"void-button"},on:{click:function(t){return e.voidOngoingOrder(e.order)}}},[r("i",{staticClass:"mr-2 text-2xl lg:text-xl las la-trash"}),e._v(" "),r("span",{staticClass:"text-lg hidden md:inline lg:text-2xl"},[e._v(e._s(e.__("Void")))])])])])])])}),[],!1,null,null,null).exports},874:(e,t,r)=>{"use strict";r.d(t,{Z:()=>u});var s=r(162),n=r(9763),i=r(8603);const o={name:"ns-pos-search-product",data:function(){return{searchValue:"",products:[],isLoading:!1}},mounted:function(){this.$refs.searchField.focus(),this.popupCloser()},methods:{__:r(7389).__,popupCloser:i.Z,addToCart:function(e){POS.addToCart(e),this.$popup.close()},search:function(){var e=this;this.isLoading=!0,s.ih.post("/api/nexopos/v4/products/search",{search:this.searchValue}).subscribe((function(t){e.isLoading=!1,e.products=t,1===e.products.length&&e.addToCart(e.products[0])}),(function(t){e.isLoading=!1,s.kX.error(t.message).subscribe()}))}}};var a=r(1900);const l=(0,a.Z)(o,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow-lg w-95vw h-95vh md:h-3/5-screen md:w-2/4-screen flex flex-col overflow-hidden"},[r("div",{staticClass:"p-2 border-b border-gray-300 flex justify-between items-center"},[r("h3",{staticClass:"text-gray-700"},[e._v(e._s(e.__("Search Product")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),r("div",{staticClass:"flex-auto overflow-hidden flex flex-col"},[r("div",{staticClass:"p-2 border-b border-gray-300"},[r("div",{staticClass:"flex border-blue-400 border-2 rounded overflow-hidden"},[r("input",{directives:[{name:"model",rawName:"v-model",value:e.searchValue,expression:"searchValue"}],ref:"searchField",staticClass:"p-2 outline-none flex-auto text-gray-700 bg-blue-100",attrs:{type:"text"},domProps:{value:e.searchValue},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.search()},input:function(t){t.target.composing||(e.searchValue=t.target.value)}}}),e._v(" "),r("button",{staticClass:"px-2 bg-blue-400 text-white",on:{click:function(t){return e.search()}}},[e._v(e._s(e.__("Search")))])])]),e._v(" "),r("div",{staticClass:"overflow-y-auto flex-auto relative"},[r("ul",[e._l(e.products,(function(t){return r("li",{key:t.id,staticClass:"hover:bg-blue-100 cursor-pointer p-2 flex justify-between border-b",on:{click:function(r){return e.addToCart(t)}}},[r("div",{staticClass:"text-gray-700"},[e._v("\n "+e._s(t.name)+"\n ")]),e._v(" "),r("div")])})),e._v(" "),0===e.products.length?r("li",{staticClass:"text-gray-700 text-center p-2"},[e._v(e._s(e.__("There is nothing to display. Have you started the search ?")))]):e._e()],2),e._v(" "),e.isLoading?r("div",{staticClass:"absolute h-full w-full flex items-center justify-center z-10 top-0",staticStyle:{background:"rgb(187 203 214 / 29%)"}},[r("ns-spinner")],1):e._e()])])])}),[],!1,null,null,null).exports,c={name:"ns-pos-grid",data:function(){return{items:Array.from({length:1e3},(function(e,t){return{data:"#"+t}})),products:[],categories:[],breadcrumbs:[],autoFocus:!1,barcode:"",previousCategory:null,order:null,visibleSection:null,breadcrumbsSubsribe:null,orderSubscription:null,visibleSectionSubscriber:null,currentCategory:null,interval:null,searchTimeout:null,gridItemsWidth:0,gridItemsHeight:0,screenSubscriber:null,rebuildGridTimeout:null,rebuildGridComplete:!1}},computed:{hasCategories:function(){return this.categories.length>0}},watch:{barcode:function(){var e=this;clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((function(){e.submitSearch(e.barcode)}),200)}},mounted:function(){var e=this;this.loadCategories(),this.breadcrumbsSubsribe=POS.breadcrumbs.subscribe((function(t){e.breadcrumbs=t})),this.visibleSectionSubscriber=POS.visibleSection.subscribe((function(t){e.visibleSection=t})),this.screenSubscriber=POS.screen.subscribe((function(t){clearTimeout(e.rebuildGridTimeout),e.rebuildGridComplete=!1,e.rebuildGridTimeout=setTimeout((function(){e.rebuildGridComplete=!0,e.computeGridWidth()}),500)})),this.orderSubscription=POS.order.subscribe((function(t){return e.order=t})),this.interval=setInterval((function(){return e.checkFocus()}),500)},destroyed:function(){this.orderSubscription.unsubscribe(),this.breadcrumbsSubsribe.unsubscribe(),this.visibleSectionSubscriber.unsubscribe(),this.screenSubscriber.unsubscribe(),clearInterval(this.interval)},methods:{switchTo:n.Z,computeGridWidth:function(){null!==document.getElementById("grid-items")&&(this.gridItemsWidth=document.getElementById("grid-items").offsetWidth,this.gridItemsHeight=document.getElementById("grid-items").offsetHeight)},cellSizeAndPositionGetter:function(e,t){var r={xs:{width:this.gridItemsWidth/2,items:2,height:200},sm:{width:this.gridItemsWidth/2,items:2,height:200},md:{width:this.gridItemsWidth/3,items:3,height:150},lg:{width:this.gridItemsWidth/4,items:4,height:150},xl:{width:this.gridItemsWidth/6,items:6,height:150}},s=r[POS.responsive.screenIs].width,n=r[POS.responsive.screenIs].height;return{width:s-0,height:n,x:t%r[POS.responsive.screenIs].items*s-0,y:parseInt(t/r[POS.responsive.screenIs].items)*n}},openSearchPopup:function(){Popup.show(l)},submitSearch:function(e){var t=this;e.length>0&&s.ih.get("/api/nexopos/v4/products/search/using-barcode/".concat(e)).subscribe((function(e){t.barcode="",POS.addToCart(e.product)}),(function(e){t.barcode="",s.kX.error(e.message).subscribe()}))},checkFocus:function(){this.autoFocus&&(0===document.querySelectorAll(".is-popup").length&&this.$refs.search.focus())},loadCategories:function(e){var t=this;s.ih.get("/api/nexopos/v4/categories/pos/".concat(e?e.id:"")).subscribe((function(e){t.categories=e.categories.map((function(e){return{data:e}})),t.products=e.products.map((function(e){return{data:e}})),t.previousCategory=e.previousCategory,t.currentCategory=e.currentCategory,t.updateBreadCrumb(t.currentCategory)}))},updateBreadCrumb:function(e){if(e){var t=this.breadcrumb.filter((function(t){return t.id===e.id}));if(t.length>0){var r=!0,s=this.breadcrumb.filter((function(e){return e.id===t[0].id&&r?(r=!1,!0):r}));this.breadcrumb=s}else this.breadcrumb.push(e)}else this.breadcrumb=[];POS.breadcrumbs.next(this.breadcrumb)},addToTheCart:function(e){POS.addToCart(e)}}};const u=(0,a.Z)(c,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex-auto flex flex-col",attrs:{id:"pos-grid"}},["grid"===e.visibleSection?r("div",{staticClass:"flex pl-2",attrs:{id:"tools"}},[r("div",{staticClass:"flex cursor-pointer rounded-tl-lg rounded-tr-lg px-3 py-2 bg-gray-300 border-t border-r border-l border-gray-300 text-gray-600",on:{click:function(t){return e.switchTo("cart")}}},[r("span",[e._v("Cart")]),e._v(" "),e.order?r("span",{staticClass:"flex items-center justify-center text-sm rounded-full h-6 w-6 bg-green-500 text-white ml-1"},[e._v(e._s(e.order.products.length))]):e._e()]),e._v(" "),r("div",{staticClass:"cursor-pointer rounded-tl-lg rounded-tr-lg px-3 py-2 bg-white font-semibold text-gray-700",on:{click:function(t){return e.switchTo("grid")}}},[e._v("\n Products\n ")])]):e._e(),e._v(" "),r("div",{staticClass:"rounded shadow bg-white overflow-hidden flex-auto flex flex-col"},[r("div",{staticClass:"p-2 border-b border-gray-200",attrs:{id:"grid-header"}},[r("div",{staticClass:"border rounded flex border-gray-300 overflow-hidden"},[r("button",{staticClass:"w-10 h-10 bg-gray-200 border-r border-gray-300 outline-none",on:{click:function(t){return e.openSearchPopup()}}},[r("i",{staticClass:"las la-search"})]),e._v(" "),r("button",{staticClass:"outline-none w-10 h-10 border-r border-gray-300",class:e.autoFocus?"pos-button-clicked bg-gray-300":"bg-gray-200",on:{click:function(t){e.autoFocus=!e.autoFocus}}},[r("i",{staticClass:"las la-barcode"})]),e._v(" "),r("input",{directives:[{name:"model",rawName:"v-model",value:e.barcode,expression:"barcode"}],ref:"search",staticClass:"flex-auto outline-none px-2 bg-gray-100",attrs:{type:"text"},domProps:{value:e.barcode},on:{input:function(t){t.target.composing||(e.barcode=t.target.value)}}})])]),e._v(" "),r("div",{staticClass:"p-2 border-gray-200",attrs:{id:"grid-breadscrumb"}},[r("ul",{staticClass:"flex"},[r("li",[r("a",{staticClass:"px-3 text-gray-700",attrs:{href:"javascript:void(0)"},on:{click:function(t){return e.loadCategories()}}},[e._v("Home ")]),e._v(" "),r("i",{staticClass:"las la-angle-right"})]),e._v(" "),r("li",e._l(e.breadcrumbs,(function(t){return r("a",{key:t.id,staticClass:"px-3 text-gray-700",attrs:{href:"javascript:void(0)"},on:{click:function(r){return e.loadCategories(t)}}},[e._v(e._s(t.name)+" "),r("i",{staticClass:"las la-angle-right"})])})),0)])]),e._v(" "),r("div",{staticClass:"overflow-hidden h-full flex-col flex",attrs:{id:"grid-items"}},[e.rebuildGridComplete?e._e():r("div",{staticClass:"h-full w-full flex-col flex items-center justify-center"},[r("ns-spinner"),e._v(" "),r("span",{staticClass:"text-gray-600 my-2"},[e._v("Rebuilding...")])],1),e._v(" "),e.rebuildGridComplete?[e.hasCategories?r("VirtualCollection",{attrs:{cellSizeAndPositionGetter:e.cellSizeAndPositionGetter,collection:e.categories,height:e.gridItemsHeight,width:e.gridItemsWidth},scopedSlots:e._u([{key:"cell",fn:function(t){var s=t.data;return r("div",{staticClass:"w-full h-full"},[r("div",{key:s.id,staticClass:"hover:bg-gray-200 w-full h-full cursor-pointer border border-gray-200 flex flex-col items-center justify-center overflow-hidden",on:{click:function(t){return e.loadCategories(s)}}},[r("div",{staticClass:"h-full w-full flex items-center justify-center"},[s.preview_url?r("img",{staticClass:"object-cover h-full",attrs:{src:s.preview_url,alt:s.name}}):e._e(),e._v(" "),s.preview_url?e._e():r("i",{staticClass:"las la-image text-gray-600 text-6xl"})]),e._v(" "),r("div",{staticClass:"h-0 w-full"},[r("div",{staticClass:"relative w-full flex items-center justify-center -top-10 h-20 py-2",staticStyle:{background:"rgb(255 255 255 / 73%)"}},[r("h3",{staticClass:"text-sm font-bold text-gray-700 py-2 text-center"},[e._v(e._s(s.name))])])])])])}}],null,!1,1415940505)}):e._e(),e._v(" "),e.hasCategories?e._e():r("VirtualCollection",{attrs:{cellSizeAndPositionGetter:e.cellSizeAndPositionGetter,collection:e.products,height:e.gridItemsHeight,width:e.gridItemsWidth},scopedSlots:e._u([{key:"cell",fn:function(t){var s=t.data;return r("div",{staticClass:"w-full h-full"},[r("div",{key:s.id,staticClass:"hover:bg-gray-200 w-full h-full cursor-pointer border border-gray-200 flex flex-col items-center justify-center overflow-hidden",on:{click:function(t){return e.addToTheCart(s)}}},[r("div",{staticClass:"h-full w-full flex items-center justify-center overflow-hidden"},[s.galleries&&s.galleries.filter((function(e){return 1===e.featured})).length>0?r("img",{staticClass:"object-cover h-full",attrs:{src:s.galleries.filter((function(e){return 1===e.featured}))[0].url,alt:s.name}}):e._e(),e._v(" "),s.galleries&&0!==s.galleries.filter((function(e){return 1===e.featured})).length?e._e():r("i",{staticClass:"las la-image text-gray-600 text-6xl"})]),e._v(" "),r("div",{staticClass:"h-0 w-full"},[r("div",{staticClass:"relative w-full flex flex-col items-center justify-center -top-10 h-20 p-2",staticStyle:{background:"rgb(255 255 255 / 73%)"}},[r("h3",{staticClass:"text-sm text-gray-700 text-center w-full"},[e._v(e._s(s.name))]),e._v(" "),s.unit_quantities&&1===s.unit_quantities.length?r("span",{staticClass:"text-sm text-gray-600"},[e._v(e._s(e._f("currency")(s.unit_quantities[0].sale_price)))]):e._e()])])])])}}],null,!1,3326882304)})]:e._e()],2)])])}),[],!1,null,null,null).exports},8159:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});var s=r(2014),n=r(874);const i={name:"ns-pos",computed:{buttons:function(){return POS.header.buttons}},mounted:function(){var e=this;this.visibleSectionSubscriber=POS.visibleSection.subscribe((function(t){e.visibleSection=t}))},destroyed:function(){this.visibleSectionSubscriber.unsubscribe()},data:function(){return{visibleSection:null,visibleSectionSubscriber:null}},components:{NsPosCart:s.Z,NsPosGrid:n.Z}};const o=(0,r(1900).Z)(i,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"h-full flex-auto bg-gray-300 flex flex-col",attrs:{id:"pos-container"}},[r("div",{staticClass:"flex overflow-hidden flex-shrink-0 px-2 pt-2"},[r("div",{staticClass:"-mx-2 flex overflow-x-auto pb-1"},e._l(e.buttons,(function(e,t){return r("div",{key:t,staticClass:"flex px-2 flex-shrink-0"},[r(e,{tag:"component"})],1)})),0)]),e._v(" "),r("div",{staticClass:"flex-auto overflow-hidden flex p-2"},[r("div",{staticClass:"flex flex-auto overflow-hidden -m-2"},[["both","cart"].includes(e.visibleSection)?r("div",{staticClass:"flex overflow-hidden p-2",class:"both"===e.visibleSection?"w-1/2":"w-full"},[r("ns-pos-cart")],1):e._e(),e._v(" "),["both","grid"].includes(e.visibleSection)?r("div",{staticClass:"p-2 flex overflow-hidden",class:"both"===e.visibleSection?"w-1/2":"w-full"},[r("ns-pos-grid")],1):e._e()])])])}),[],!1,null,null,null).exports},419:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});const s={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:r(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const n=(0,r(1900).Z)(s,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[r("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[r("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),r("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),r("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[r("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),r("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),r("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports},5450:(e,t,r)=>{"use strict";r.d(t,{Z:()=>c});var s=r(8603),n=r(6386),i=r(162),o=r(7389),a=r(4326);r(9624);const l={name:"ns-pos-coupons-load-popup",data:function(){return{placeHolder:(0,o.__)("Coupon Code"),couponCode:null,order:null,activeTab:"apply-coupon",orderSubscriber:null,customerCoupon:null}},mounted:function(){var e=this;this.popupCloser(),this.$refs.coupon.select(),this.orderSubscriber=POS.order.subscribe((function(t){e.order=t,e.order.coupons.length>0&&(e.activeTab="active-coupons")})),this.$popupParams&&this.$popupParams.apply_coupon&&(this.couponCode=this.$popupParams.apply_coupon,this.getCoupon(this.couponCode).subscribe({next:function(t){e.customerCoupon=t,e.apply()}}))},destroyed:function(){this.orderSubscriber.unsubscribe()},methods:{__:o.__,popupCloser:s.Z,popupResolver:n.Z,selectCustomer:function(){Popup.show(a.Z)},cancel:function(){this.customerCoupon=null,this.couponCode=null},removeCoupon:function(e){this.order.coupons.splice(e,1),POS.refreshCart()},apply:function(){var e=this;try{var t=this.customerCoupon;if(null!==this.customerCoupon.coupon.valid_hours_start&&!ns.date.moment.isAfter(this.customerCoupon.coupon.valid_hours_start)&&this.customerCoupon.coupon.valid_hours_start.length>0)return i.kX.error((0,o.__)("The coupon is out from validity date range.")).subscribe();if(null!==this.customerCoupon.coupon.valid_hours_end&&!ns.date.moment.isBefore(this.customerCoupon.coupon.valid_hours_end)&&this.customerCoupon.coupon.valid_hours_end.length>0)return i.kX.error((0,o.__)("The coupon is out from validity date range.")).subscribe();var r=this.customerCoupon.coupon.products;if(r.length>0){var s=r.map((function(e){return e.product_id}));if(0===this.order.products.filter((function(e){return s.includes(e.product_id)})).length)return i.kX.error((0,o.__)("This coupon requires products that aren't available on the cart at the moment.")).subscribe()}var n=this.customerCoupon.coupon.categories;if(n.length>0){var a=n.map((function(e){return e.category_id}));if(0===this.order.products.filter((function(e){return a.includes(e.$original().category_id)})).length)return i.kX.error((0,o.__)("This coupon requires products that belongs to specific categories that aren't included at the moment.").replace("%s")).subscribe()}this.cancel();var l={active:t.coupon.active,customer_coupon_id:t.id,minimum_cart_value:t.coupon.minimum_cart_value,maximum_cart_value:t.coupon.maximum_cart_value,name:t.coupon.name,type:t.coupon.type,value:0,limit_usage:t.coupon.limit_usage,code:t.coupon.code,discount_value:t.coupon.discount_value,categories:t.coupon.categories,products:t.coupon.products};POS.pushCoupon(l),this.activeTab="active-coupons",setTimeout((function(){e.popupResolver(l)}),500),i.kX.success((0,o.__)("The coupon has applied to the cart.")).subscribe()}catch(e){console.log(e)}},getCouponType:function(e){switch(e){case"percentage_discount":return(0,o.__)("Percentage");case"flat_discount":return(0,o.__)("Flat");default:return(0,o.__)("Unknown Type")}},getDiscountValue:function(e){switch(e.type){case"percentage_discount":return e.discount_value+"%";case"flat_discount":return this.$options.filters.currency(e.discount_value)}},closePopup:function(){this.popupResolver(!1)},setActiveTab:function(e){this.activeTab=e},getCoupon:function(e){return!this.order.customer_id>0?i.kX.error((0,o.__)("You must select a customer before applying a coupon.")).subscribe():i.ih.post("/api/nexopos/v4/customers/coupons/".concat(e),{customer_id:this.order.customer_id})},loadCoupon:function(){var e=this,t=this.couponCode;this.getCoupon(t).subscribe({next:function(t){e.customerCoupon=t,i.kX.success((0,o.__)("The coupon has been loaded.")).subscribe()},error:function(e){i.kX.error(e.message||(0,o.__)("An unexpected error occured.")).subscribe()}})}}};const c=(0,r(1900).Z)(l,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"shadow-lg bg-white w-95vw md:w-3/6-screen lg:w-2/6-screen"},[r("div",{staticClass:"border-b border-gray-200 p-2 flex justify-between items-center"},[r("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Load Coupon")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.closePopup()}}})],1)]),e._v(" "),r("div",{staticClass:"p-1"},[r("ns-tabs",{attrs:{active:e.activeTab},on:{changeTab:function(t){return e.setActiveTab(t)}}},[r("ns-tabs-item",{attrs:{label:e.__("Apply A Coupon"),padding:"p-2",identifier:"apply-coupon"}},[r("div",{staticClass:"border-2 border-blue-400 rounded flex"},[r("input",{directives:[{name:"model",rawName:"v-model",value:e.couponCode,expression:"couponCode"}],ref:"coupon",staticClass:"w-full p-2",attrs:{type:"text",placeholder:e.placeHolder},domProps:{value:e.couponCode},on:{input:function(t){t.target.composing||(e.couponCode=t.target.value)}}}),e._v(" "),r("button",{staticClass:"bg-blue-400 text-white px-3 py-2",on:{click:function(t){return e.loadCoupon()}}},[e._v(e._s(e.__("Load")))])]),e._v(" "),r("div",{staticClass:"pt-2"},[r("p",{staticClass:"p-2 text-center bg-green-100 text-green-600"},[e._v(e._s(e.__("Input the coupon code that should apply to the POS. If a coupon is issued for a customer, that customer must be selected priorly.")))])]),e._v(" "),e.order&&void 0===e.order.customer_id?r("div",{staticClass:"pt-2",on:{click:function(t){return e.selectCustomer()}}},[r("p",{staticClass:"p-2 cursor-pointer text-center bg-red-100 text-red-600"},[e._v(e._s(e.__("Click here to choose a customer.")))])]):e._e(),e._v(" "),e.order&&void 0!==e.order.customer_id?r("div",{staticClass:"pt-2"},[r("p",{staticClass:"p-2 text-center bg-green-100 text-green-600"},[e._v(e._s(e.__("Loading Coupon For : ")+e.order.customer.name+" "+e.order.customer.surname))])]):e._e(),e._v(" "),r("div",{staticClass:"overflow-hidden"},[e.customerCoupon?r("div",{staticClass:"pt-2 fade-in-entrance anim-duration-500 overflow-y-auto h-64"},[r("table",{staticClass:"w-full"},[r("thead",[r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Coupon Name")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.name))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Discount"))+" ("+e._s(e.getCouponType(e.customerCoupon.coupon.type))+")")]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.getDiscountValue(e.customerCoupon.coupon)))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Usage")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.usage+"/"+(e.customerCoupon.limit_usage||e.__("Unlimited"))))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Valid From")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.coupon.valid_hours_start))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Valid Till")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.customerCoupon.coupon.valid_hours_end))])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Categories")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[r("ul",e._l(e.customerCoupon.coupon.categories,(function(t){return r("li",{key:t.id,staticClass:"rounded-full px-3 py-1 border border-gray-200"},[e._v(e._s(t.category.name))])})),0)])]),e._v(" "),r("tr",[r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[e._v(e._s(e.__("Products")))]),e._v(" "),r("td",{staticClass:"p-2 w-1/2 text-gray-700 border border-gray-200"},[r("ul",e._l(e.customerCoupon.coupon.products,(function(t){return r("li",{key:t.id,staticClass:"rounded-full px-3 py-1 border border-gray-200"},[e._v(e._s(t.product.name))])})),0)])])])])]):e._e()])]),e._v(" "),r("ns-tabs-item",{attrs:{label:e.__("Active Coupons"),padding:"p-1",identifier:"active-coupons"}},[e.order?r("ul",[e._l(e.order.coupons,(function(t,s){return r("li",{key:s,staticClass:"flex justify-between bg-gray-100 items-center px-2 py-1"},[r("div",{staticClass:"flex-auto"},[r("h3",{staticClass:"font-semibold text-gray-700 p-2 flex justify-between"},[r("span",[e._v(e._s(t.name))]),e._v(" "),r("span",[e._v(e._s(e.getDiscountValue(t)))])])]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.removeCoupon(s)}}})],1)])})),e._v(" "),0===e.order.coupons.length?r("li",{staticClass:"flex justify-between bg-gray-100 items-center p-2"},[e._v("\n No coupons applies to the cart.\n ")]):e._e()],2):e._e()])],1)],1),e._v(" "),e.customerCoupon?r("div",{staticClass:"flex"},[r("button",{staticClass:"w-1/2 px-3 py-2 bg-green-400 text-white font-bold",on:{click:function(t){return e.apply()}}},[e._v("\n "+e._s(e.__("Apply"))+"\n ")]),e._v(" "),r("button",{staticClass:"w-1/2 px-3 py-2 bg-red-400 text-white font-bold",on:{click:function(t){return e.cancel()}}},[e._v("\n "+e._s(e.__("Cancel"))+"\n ")])]):e._e()])}),[],!1,null,null,null).exports},4326:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var s=r(162),n=r(6386),i=r(2242),o=r(5872);const a={data:function(){return{searchCustomerValue:"",orderSubscription:null,order:{},debounceSearch:null,customers:[],isLoading:!1}},computed:{customerSelected:function(){return!1}},watch:{searchCustomerValue:function(e){var t=this;clearTimeout(this.debounceSearch),this.debounceSearch=setTimeout((function(){t.searchCustomer(e)}),500)}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.resolveIfQueued(!1)})),this.orderSubscription=POS.order.subscribe((function(t){e.order=t})),this.getRecentCustomers(),this.$refs.searchField.focus()},destroyed:function(){this.orderSubscription.unsubscribe()},methods:{__:r(7389).__,resolveIfQueued:n.Z,attemptToChoose:function(){if(1===this.customers.length)return this.selectCustomer(this.customers[0]);s.kX.info("Too many result.").subscribe()},openCustomerHistory:function(e,t){t.stopImmediatePropagation(),this.$popup.close(),i.G.show(o.Z,{customer:e,activeTab:"account-payment"})},selectCustomer:function(e){var t=this;this.customers.forEach((function(e){return e.selected=!1})),e.selected=!0,this.isLoading=!0,POS.selectCustomer(e).then((function(r){t.isLoading=!1,t.resolveIfQueued(e)})).catch((function(e){t.isLoading=!1}))},searchCustomer:function(e){var t=this;s.ih.post("/api/nexopos/v4/customers/search",{search:e}).subscribe((function(e){e.forEach((function(e){return e.selected=!1})),t.customers=e}))},createCustomerWithMatch:function(e){this.resolveIfQueued(!1),i.G.show(o.Z,{name:e})},getRecentCustomers:function(){var e=this;this.isLoading=!0,s.ih.get("/api/nexopos/v4/customers").subscribe((function(t){e.isLoading=!1,t.forEach((function(e){return e.selected=!1})),e.customers=t}),(function(t){e.isLoading=!1}))}}};const l=(0,r(1900).Z)(a,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow-xl w-4/5-screen md:w-2/5-screen xl:w-108"},[r("div",{staticClass:"border-b border-gray-200 text-center font-semibold text-2xl text-gray-700 py-2",attrs:{id:"header"}},[r("h2",[e._v(e._s(e.__("Select Customer")))])]),e._v(" "),r("div",{staticClass:"relative"},[r("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between text-gray-600"},[r("span",[e._v("Selected : ")]),e._v(" "),r("div",{staticClass:"flex items-center justify-between"},[r("span",[e._v(e._s(e.order.customer?e.order.customer.name:"N/A"))]),e._v(" "),e.order.customer?r("button",{staticClass:"mx-2 rounded-full h-8 w-8 flex items-center justify-center border border-gray-200 hover:bg-blue-400 hover:text-white hover:border-transparent",on:{click:function(t){return e.openCustomerHistory(e.order.customer,t)}}},[r("i",{staticClass:"las la-eye"})]):e._e()])]),e._v(" "),r("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between text-gray-600"},[r("input",{directives:[{name:"model",rawName:"v-model",value:e.searchCustomerValue,expression:"searchCustomerValue"}],ref:"searchField",staticClass:"rounded border-2 border-blue-400 bg-gray-100 w-full p-2",attrs:{placeholder:"Search Customer",type:"text"},domProps:{value:e.searchCustomerValue},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.attemptToChoose()},input:function(t){t.target.composing||(e.searchCustomerValue=t.target.value)}}})]),e._v(" "),r("div",{staticClass:"h-3/5-screen xl:h-2/5-screen overflow-y-auto"},[r("ul",[e.customers&&0===e.customers.length?r("li",{staticClass:"p-2 text-center text-gray-600"},[e._v("\n "+e._s(e.__("No customer match your query..."))+"\n ")]):e._e(),e._v(" "),e.customers&&0===e.customers.length?r("li",{staticClass:"p-2 cursor-pointer text-center text-gray-600",on:{click:function(t){return e.createCustomerWithMatch(e.searchCustomerValue)}}},[r("span",{staticClass:"border-b border-dashed border-blue-400"},[e._v(e._s(e.__("Create a customer")))])]):e._e(),e._v(" "),e._l(e.customers,(function(t){return r("li",{key:t.id,staticClass:"cursor-pointer hover:bg-gray-100 p-2 border-b border-gray-200 text-gray-600 flex justify-between items-center",on:{click:function(r){return e.selectCustomer(t)}}},[r("span",[e._v(e._s(t.name))]),e._v(" "),r("p",{staticClass:"flex items-center"},[t.owe_amount>0?r("span",{staticClass:"text-red-600"},[e._v("-"+e._s(e._f("currency")(t.owe_amount)))]):e._e(),e._v(" "),t.owe_amount>0?r("span",[e._v("/")]):e._e(),e._v(" "),r("span",{staticClass:"text-green-600"},[e._v(e._s(e._f("currency")(t.purchases_amount)))]),e._v(" "),r("button",{staticClass:"mx-2 rounded-full h-8 w-8 flex items-center justify-center border border-gray-200 hover:bg-blue-400 hover:text-white hover:border-transparent",on:{click:function(r){return e.openCustomerHistory(t,r)}}},[r("i",{staticClass:"las la-eye"})])])])}))],2)]),e._v(" "),e.isLoading?r("div",{staticClass:"z-10 top-0 absolute w-full h-full flex items-center justify-center"},[r("ns-spinner",{attrs:{size:"24",border:"8"}})],1):e._e()])])}),[],!1,null,null,null).exports},5872:(e,t,r)=>{"use strict";r.d(t,{Z:()=>b});var s=r(8603),n=r(162),i=r(2242),o=r(4326),a=r(7266),l=r(7389);const c={mounted:function(){this.closeWithOverlayClicked(),this.loadTransactionFields()},data:function(){return{fields:[],isSubmiting:!1,formValidation:new a.Z}},methods:{__:l.__,closeWithOverlayClicked:s.Z,proceed:function(){var e=this,t=this.$popupParams.customer,r=this.formValidation.extractFields(this.fields);this.isSubmiting=!0,n.ih.post("/api/nexopos/v4/customers/".concat(t.id,"/account-history"),r).subscribe((function(t){e.isSubmiting=!1,n.kX.success(t.message).subscribe(),e.$popupParams.resolve(t),e.$popup.close()}),(function(t){e.isSubmiting=!1,n.kX.error(t.message).subscribe(),e.$popupParams.reject(t)}))},close:function(){this.$popup.close(),this.$popupParams.reject(!1)},loadTransactionFields:function(){var e=this;n.ih.get("/api/nexopos/v4/fields/ns.customers-account").subscribe((function(t){e.fields=e.formValidation.createFields(t)}))}}};var u=r(1900);const d=(0,u.Z)(c,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"w-6/7-screen md:w-5/7-screen lg:w-4/7-screen h-6/7-screen md:h-5/7-screen lg:h-5/7-screen overflow-hidden shadow-lg bg-white flex flex-col relative"},[r("div",{staticClass:"p-2 border-b border-gray-200 flex justify-between items-center"},[r("h2",{staticClass:"font-semibold"},[e._v(e._s(e.__("New Transaction")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.close()}}})],1)]),e._v(" "),r("div",{staticClass:"flex-auto overflow-y-auto"},[0===e.fields.length?r("div",{staticClass:"h-full w-full flex items-center justify-center"},[r("ns-spinner")],1):e._e(),e._v(" "),e.fields.length>0?r("div",{staticClass:"p-2"},e._l(e.fields,(function(e,t){return r("ns-field",{key:t,attrs:{field:e}})})),1):e._e()]),e._v(" "),r("div",{staticClass:"p-2 bg-white justify-between border-t border-gray-200 flex"},[r("div"),e._v(" "),r("div",{staticClass:"px-1"},[r("div",{staticClass:"-mx-2 flex flex-wrap"},[r("div",{staticClass:"px-1"},[r("ns-button",{attrs:{type:"danger"},on:{click:function(t){return e.close()}}},[e._v(e._s(e.__("Close")))])],1),e._v(" "),r("div",{staticClass:"px-1"},[r("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.proceed()}}},[e._v(e._s(e.__("Proceed")))])],1)])])]),e._v(" "),0===e.isSubmiting?r("div",{staticClass:"h-full w-full absolute flex items-center justify-center",staticStyle:{background:"rgb(0 98 171 / 45%)"}},[r("ns-spinner")],1):e._e()])}),[],!1,null,null,null).exports;var f=r(5450),p=r(419),h=r(6386);const v={name:"ns-pos-customers",data:function(){return{activeTab:"create-customers",customer:null,subscription:null,orders:[],selectedTab:"orders",isLoadingCoupons:!1,coupons:[],order:null}},mounted:function(){var e=this;this.closeWithOverlayClicked(),this.subscription=POS.order.subscribe((function(t){e.order=t,void 0!==e.$popupParams.customer?(e.activeTab="account-payment",e.customer=e.$popupParams.customer,e.loadCustomerOrders(e.customer.id)):void 0!==t.customer&&(e.activeTab="account-payment",e.customer=t.customer,e.loadCustomerOrders(e.customer.id))})),this.popupCloser()},methods:{__:l.__,popupResolver:h.Z,popupCloser:s.Z,getType:function(e){switch(e){case"percentage_discount":return(0,l.__)("Percentage Discount");case"flat_discount":return(0,l.__)("Flat Discount")}},closeWithOverlayClicked:s.Z,doChangeTab:function(e){this.selectedTab=e,"coupons"===e&&this.loadCoupons()},loadCoupons:function(){var e=this;this.isLoadingCoupons=!0,n.ih.get("/api/nexopos/v4/customers/".concat(this.customer.id,"/coupons")).subscribe({next:function(t){e.coupons=t,e.isLoadingCoupons=!1},error:function(t){e.isLoadingCoupons=!1}})},allowedForPayment:function(e){return["unpaid","partially_paid","hold"].includes(e.payment_status)},prefillForm:function(e){void 0!==this.$popupParams.name&&(e.main.value=this.$popupParams.name)},openCustomerSelection:function(){this.$popup.close(),i.G.show(o.Z)},loadCustomerOrders:function(e){var t=this;n.ih.get("/api/nexopos/v4/customers/".concat(e,"/orders")).subscribe((function(e){t.orders=e}))},newTransaction:function(e){new Promise((function(t,r){i.G.show(d,{customer:e,resolve:t,reject:r})})).then((function(t){POS.loadCustomer(e.id).subscribe((function(e){POS.selectCustomer(e)}))}))},applyCoupon:function(e){var t=this;void 0===this.order.customer?i.G.show(p.Z,{title:(0,l.__)("Use Customer ?"),message:(0,l.__)("No customer is selected. Would you like to proceed with this customer ?"),onAction:function(r){r&&POS.selectCustomer(t.customer).then((function(r){t.proceedApplyingCoupon(e)}))}}):this.order.customer.id===this.customer.id?this.proceedApplyingCoupon(e):this.order.customer.id!==this.customer.id&&i.G.show(p.Z,{title:(0,l.__)("Change Customer ?"),message:(0,l.__)("Would you like to assign this customer to the ongoing order ?"),onAction:function(r){r&&POS.selectCustomer(t.customer).then((function(r){t.proceedApplyingCoupon(e)}))}})},proceedApplyingCoupon:function(e){var t=this;new Promise((function(t,r){i.G.show(f.Z,{apply_coupon:e.code,resolve:t,reject:r})})).then((function(e){t.popupResolver(!1)})).catch((function(e){}))},handleSavedCustomer:function(e){n.kX.success(e.message).subscribe(),POS.selectCustomer(e.entry),this.$popup.close()}}};const b=(0,u.Z)(v,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow-lg rounded w-95vw h-95vh lg:w-3/5-screen flex flex-col overflow-hidden"},[r("div",{staticClass:"p-2 flex justify-between items-center border-b border-gray-400"},[r("h3",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Customers")))]),e._v(" "),r("div",[r("ns-close-button",{on:{click:function(t){return e.$popup.close()}}})],1)]),e._v(" "),r("div",{staticClass:"flex-auto flex p-2 bg-gray-200 overflow-y-auto"},[r("ns-tabs",{attrs:{active:e.activeTab},on:{active:function(t){e.activeTab=t}}},[r("ns-tabs-item",{attrs:{identifier:"create-customers",label:"New Customer"}},[r("ns-crud-form",{attrs:{"submit-url":"/api/nexopos/v4/crud/ns.customers",src:"/api/nexopos/v4/crud/ns.customers/form-config"},on:{updated:function(t){return e.prefillForm(t)},save:function(t){return e.handleSavedCustomer(t)}},scopedSlots:e._u([{key:"title",fn:function(){return[e._v(e._s(e.__("Customer Name")))]},proxy:!0},{key:"save",fn:function(){return[e._v(e._s(e.__("Save Customer")))]},proxy:!0}])})],1),e._v(" "),r("ns-tabs-item",{staticClass:"flex",staticStyle:{padding:"0!important"},attrs:{identifier:"account-payment",label:e.__("Customer Account")}},[null===e.customer?r("div",{staticClass:"flex-auto w-full flex items-center justify-center flex-col p-4"},[r("i",{staticClass:"lar la-frown text-6xl text-gray-700"}),e._v(" "),r("h3",{staticClass:"font-medium text-2xl text-gray-700"},[e._v(e._s(e.__("No Customer Selected")))]),e._v(" "),r("p",{staticClass:"text-gray-600"},[e._v(e._s(e.__("In order to see a customer account, you need to select one customer.")))]),e._v(" "),r("div",{staticClass:"my-2"},[r("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.openCustomerSelection()}}},[e._v(e._s(e.__("Select Customer")))])],1)]):e._e(),e._v(" "),e.customer?r("div",{staticClass:"flex flex-col flex-auto"},[r("div",{staticClass:"flex-auto p-2 flex flex-col"},[r("div",{staticClass:"-mx-4 flex flex-wrap"},[r("div",{staticClass:"px-4 mb-4 w-full"},[r("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Summary For"))+" : "+e._s(e.customer.name))])]),e._v(" "),r("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[r("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-green-400 to-green-700 p-2 flex flex-col text-white"},[r("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Total Purchases")))]),e._v(" "),r("div",{staticClass:"w-full flex justify-end"},[r("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.purchases_amount)))])])])]),e._v(" "),r("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[r("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-red-500 to-red-700 p-2 text-white"},[r("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Total Owed")))]),e._v(" "),r("div",{staticClass:"w-full flex justify-end"},[r("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.owed_amount)))])])])]),e._v(" "),r("div",{staticClass:"px-4 mb-4 w-full md:w-1/3"},[r("div",{staticClass:"rounded-lg shadow bg-transparent bg-gradient-to-br from-blue-500 to-blue-700 p-2 text-white"},[r("h3",{staticClass:"font-medium text-lg"},[e._v(e._s(e.__("Account Amount")))]),e._v(" "),r("div",{staticClass:"w-full flex justify-end"},[r("h2",{staticClass:"text-2xl font-bold"},[e._v(e._s(e._f("currency")(e.customer.account_amount)))])])])])]),e._v(" "),r("div",{staticClass:"flex flex-auto flex-col overflow-hidden"},[r("ns-tabs",{attrs:{active:e.selectedTab},on:{changeTab:function(t){return e.doChangeTab(t)}}},[r("ns-tabs-item",{attrs:{identifier:"orders",label:e.__("Orders")}},[r("div",{staticClass:"py-2 w-full"},[r("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Last Purchases")))])]),e._v(" "),r("div",{staticClass:"flex-auto flex-col flex overflow-hidden"},[r("div",{staticClass:"flex-auto overflow-y-auto"},[r("table",{staticClass:"table w-full"},[r("thead",[r("tr",{staticClass:"text-gray-700"},[r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"150"}},[e._v(e._s(e.__("Order")))]),e._v(" "),r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Total")))]),e._v(" "),r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Status")))]),e._v(" "),r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"50"}},[e._v(e._s(e.__("Options")))])])]),e._v(" "),r("tbody",{staticClass:"text-gray-700"},[0===e.orders.length?r("tr",[r("td",{staticClass:"border border-gray-200 p-2 text-center",attrs:{colspan:"4"}},[e._v(e._s(e.__("No orders...")))])]):e._e(),e._v(" "),e._l(e.orders,(function(t){return r("tr",{key:t.id},[r("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(t.code))]),e._v(" "),r("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(e._f("currency")(t.total)))]),e._v(" "),r("td",{staticClass:"border border-gray-200 p-2 text-right"},[e._v(e._s(t.human_status))]),e._v(" "),r("td",{staticClass:"border border-gray-200 p-2 text-center"},[e.allowedForPayment(t)?r("button",{staticClass:"hover:bg-blue-400 hover:border-transparent hover:text-white rounded-full h-8 px-2 flex items-center justify-center border border-gray bg-white"},[r("i",{staticClass:"las la-wallet"}),e._v(" "),r("span",{staticClass:"ml-1"},[e._v(e._s(e.__("Payment")))])]):e._e()])])}))],2)])])])]),e._v(" "),r("ns-tabs-item",{attrs:{identifier:"coupons",label:e.__("Coupons")}},[e.isLoadingCoupons?r("div",{staticClass:"flex-auto h-full justify-center flex items-center"},[r("ns-spinner",{attrs:{size:"36"}})],1):e._e(),e._v(" "),e.isLoadingCoupons?e._e():[r("div",{staticClass:"py-2 w-full"},[r("h2",{staticClass:"font-semibold text-gray-700"},[e._v(e._s(e.__("Coupons")))])]),e._v(" "),r("div",{staticClass:"flex-auto flex-col flex overflow-hidden"},[r("div",{staticClass:"flex-auto overflow-y-auto"},[r("table",{staticClass:"table w-full"},[r("thead",[r("tr",{staticClass:"text-gray-700"},[r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold",attrs:{width:"150"}},[e._v(e._s(e.__("Name")))]),e._v(" "),r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"},[e._v(e._s(e.__("Type")))]),e._v(" "),r("th",{staticClass:"p-2 border border-gray-200 bg-gray-100 font-semibold"})])]),e._v(" "),r("tbody",{staticClass:"text-gray-700 text-sm"},[0===e.coupons.length?r("tr",[r("td",{staticClass:"border border-gray-200 p-2 text-center",attrs:{colspan:"4"}},[e._v(e._s(e.__("No coupons for the selected customer...")))])]):e._e(),e._v(" "),e._l(e.coupons,(function(t){return r("tr",{key:t.id},[r("td",{staticClass:"border border-gray-200 p-2",attrs:{width:"300"}},[r("h3",[e._v(e._s(t.name))]),e._v(" "),r("div",{},[r("ul",{staticClass:"-mx-2 flex"},[r("li",{staticClass:"text-xs text-gray-600 px-2"},[e._v(e._s(e.__("Usage :"))+" "+e._s(t.usage)+"/"+e._s(t.limit_usage))]),e._v(" "),r("li",{staticClass:"text-xs text-gray-600 px-2"},[e._v(e._s(e.__("Code :"))+" "+e._s(t.code))])])])]),e._v(" "),r("td",{staticClass:"border border-gray-200 p-2 text-center"},[e._v(e._s(e.getType(t.coupon.type))+" \n "),"percentage_discount"===t.coupon.type?r("span",[e._v("\n ("+e._s(t.coupon.discount_value)+"%)\n ")]):e._e(),e._v(" "),"flat_discount"===t.coupon.type?r("span",[e._v("\n ("+e._s(e._f("currency")(t.coupon.discount_value))+")\n ")]):e._e()]),e._v(" "),r("td",{staticClass:"border border-gray-200 p-2 text-right"},[r("ns-button",{attrs:{type:"info"},on:{click:function(r){return e.applyCoupon(t)}}},[e._v(e._s(e.__("Use Coupon")))])],1)])}))],2)])])])]],2)],1)],1)]),e._v(" "),r("div",{staticClass:"p-2 border-t border-gray-400 flex justify-between"},[r("div"),e._v(" "),r("div",[r("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.newTransaction(e.customer)}}},[e._v(e._s(e.__("Account Transaction")))])],1)])]):e._e()])],1)],1)])}),[],!1,null,null,null).exports},1957:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});const s={name:"ns-pos-loading-popup"};const n=(0,r(1900).Z)(s,(function(){var e=this.$createElement;return(this._self._c||e)("ns-spinner")}),[],!1,null,null,null).exports},3625:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var s=r(7757),n=r.n(s),i=r(6386);r(3661);function o(e,t,r,s,n,i,o){try{var a=e[i](o),l=a.value}catch(e){return void r(e)}a.done?t(l):Promise.resolve(l).then(s,n)}const a={data:function(){return{types:[],typeSubscription:null}},mounted:function(){var e=this;this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&e.resolveIfQueued(!1)})),this.typeSubscription=POS.types.subscribe((function(t){e.types=t}))},destroyed:function(){this.typeSubscription.unsubscribe()},methods:{__:r(7389).__,resolveIfQueued:i.Z,select:function(e){var t,r=this;return(t=n().mark((function t(){var s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return Object.values(r.types).forEach((function(e){return e.selected=!1})),r.types[e].selected=!0,s=r.types[e],POS.types.next(r.types),t.next=6,POS.triggerOrderTypeSelection(s);case 6:r.resolveIfQueued(s);case 7:case"end":return t.stop()}}),t)})),function(){var e=this,r=arguments;return new Promise((function(s,n){var i=t.apply(e,r);function a(e){o(i,s,n,a,l,"next",e)}function l(e){o(i,s,n,a,l,"throw",e)}a(void 0)}))})()}}};const l=(0,r(1900).Z)(a,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"h-full w-4/5-screen md:w-2/5-screen lg:w-2/5-screen xl:w-2/6-screen bg-white shadow-lg"},[r("div",{staticClass:"h-16 flex justify-center items-center",attrs:{id:"header"}},[r("h3",{staticClass:"font-bold text-gray-700"},[e._v(e._s(e.__("Define The Order Type")))])]),e._v(" "),r("div",{staticClass:"grid grid-flow-row grid-cols-2 grid-rows-2"},e._l(e.types,(function(t){return r("div",{key:t.identifier,staticClass:"hover:bg-blue-100 h-56 flex items-center justify-center flex-col cursor-pointer border border-gray-200",class:t.selected?"bg-blue-100":"",on:{click:function(r){return e.select(t.identifier)}}},[r("img",{staticClass:"w-32 h-32",attrs:{src:t.icon,alt:""}}),e._v(" "),r("h4",{staticClass:"font-semibold text-xl my-2 text-gray-700"},[e._v(e._s(t.label))])])})),0)])}),[],!1,null,null,null).exports},9531:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var s=r(162),n=r(7389);function i(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);rparseFloat(i.$quantities().quantity)-a)return s.kX.error((0,n.__)("Unable to add the product, there is not enough stock. Remaining %s").replace("%s",i.$quantities().quantity-a)).subscribe()}this.resolve({quantity:o})}else"backspace"===e.identifier?this.allSelected?(this.finalValue=0,this.allSelected=!1):(this.finalValue=this.finalValue.toString(),this.finalValue=this.finalValue.substr(0,this.finalValue.length-1)||0):this.allSelected?(this.finalValue=e.value,this.finalValue=parseFloat(this.finalValue),this.allSelected=!1):(this.finalValue+=""+e.value,this.finalValue=parseFloat(this.finalValue))},resolve:function(e){this.$popupParams.resolve(e),this.$popup.close()}}};const l=(0,r(1900).Z)(a,(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"bg-white shadow min-h-2/5-screen w-3/4-screen md:w-3/5-screen lg:w-2/5-screen xl:w-2/5-screen relative"},[e.isLoading?r("div",{staticClass:"flex w-full h-full absolute top-O left-0 items-center justify-center",staticStyle:{background:"rgb(202 202 202 / 49%)"},attrs:{id:"loading-overlay"}},[r("ns-spinner")],1):e._e(),e._v(" "),r("div",{staticClass:"flex-shrink-0 py-2 border-b border-gray-200"},[r("h1",{staticClass:"text-xl font-bold text-gray-700 text-center"},[e._v(e._s(e.__("Define Quantity")))])]),e._v(" "),r("div",{staticClass:"h-16 border-b bg-gray-800 text-white border-gray-200 flex items-center justify-center",attrs:{id:"screen"}},[r("h1",{staticClass:"font-bold text-3xl"},[e._v(e._s(e.finalValue))])]),e._v(" "),r("div",{staticClass:"grid grid-flow-row grid-cols-3 grid-rows-3",attrs:{id:"numpad"}},e._l(e.keys,(function(t,s){return r("div",{key:s,staticClass:"hover:bg-blue-400 hover:text-white hover:border-blue-600 text-xl font-bold border border-gray-200 h-24 flex items-center justify-center cursor-pointer",on:{click:function(r){return e.inputValue(t)}}},[void 0!==t.value?r("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?r("i",{staticClass:"las",class:t.icon}):e._e()])})),0)])}),[],!1,null,null,null).exports},3661:(e,t,r)=>{"use strict";r.d(t,{Z:()=>u});var s=r(162),n=r(6386),i=r(7266);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function a(e){for(var t=1;t{e.O(0,[898],(()=>{return t=9572,e(e.s=t);var t}));e.O()}]); //# sourceMappingURL=pos.min.js.map \ No newline at end of file diff --git a/public/js/setup.min.js b/public/js/setup.min.js index 94f8dc45b..536240f35 100644 --- a/public/js/setup.min.js +++ b/public/js/setup.min.js @@ -1,2 +1,2 @@ -(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[312],{162:(e,t,n)=>{"use strict";n.d(t,{l:()=>V,kq:()=>W,ih:()=>L,kX:()=>I});var i=n(6486),s=n(9669),r=n(2181),a=n(8345),l=n(9624),o=n(9248),d=n(230);function c(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,n)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,n)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=W.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:i}),new d.y((function(r){n._client[e](t,i,Object.assign(Object.assign({},n._client.defaults[e]),s)).then((function(e){n._lastRequestData=e,r.next(e.data),r.complete(),n._subject.next({identifier:"async.stop"})})).catch((function(e){var t;r.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),n._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,n=e.value;this._subject.next({identifier:t,value:n})}}])&&c(t.prototype,n),i&&c(t,i),e}(),f=n(3);function h(e,t){for(var n=0;n=1e3){for(var n,i=Math.floor((""+e).length/3),s=2;s>=1;s--){if(((n=parseFloat((0!=i?e/Math.pow(1e3,i):e).toPrecision(s)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}n%1!=0&&(n=n.toFixed(1)),t=n+["","k","m","b","t"][i]}return t})),S=n(1356),E=n(9698);function D(e,t){for(var n=0;n0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&z(t.prototype,n),i&&z(t,i),e}()),H=new b({sidebar:["xs","sm","md"].includes(N.breakpoint)?"hidden":"visible"});L.defineClient(s),window.nsEvent=V,window.nsHttpClient=L,window.nsSnackBar=I,window.nsCurrency=S.W,window.nsTruncate=E.b,window.nsRawCurrency=S.f,window.nsAbbreviate=$,window.nsState=H,window.nsUrl=R,window.nsScreen=N,window.ChartJS=r,window.EventEmitter=p,window.Popup=w.G,window.RxJS=y,window.FormValidation=k.Z,window.nsCrudHandler=Z},8202:(e,t,n)=>{"use strict";n.r(t),n.d(t,{nsButton:()=>l,nsCheckbox:()=>u,nsCkeditor:()=>F,nsCloseButton:()=>S,nsCrud:()=>m,nsCrudForm:()=>y,nsDate:()=>j,nsDateTimePicker:()=>z.V,nsDatepicker:()=>V,nsField:()=>w,nsIconButton:()=>E,nsInput:()=>d,nsLink:()=>o,nsMediaInput:()=>$,nsMenu:()=>r,nsMultiselect:()=>_,nsNumpad:()=>M.Z,nsSelect:()=>c.R,nsSpinner:()=>b,nsSubmenu:()=>a,nsSwitch:()=>k,nsTableRow:()=>v,nsTabs:()=>q,nsTabsItem:()=>A,nsTextarea:()=>x});var i=n(538),s=n(162),r=i.default.component("ns-menu",{data:function(){return{defaultToggledState:!1,_save:0}},props:["href","label","icon","notification","toggled","identifier"],template:'\n \n ',mounted:function(){var e=this;this.defaultToggledState=void 0!==this.toggled?this.toggled:this.defaultToggledState,s.l.subject().subscribe((function(t){t.value!==e.identifier&&(e.defaultToggledState=!1)}))},methods:{toggleEmit:function(){var e=this;this.toggle().then((function(t){t&&s.l.emit({identifier:"side-menu.open",value:e.identifier})}))},toggle:function(){var e=this;return new Promise((function(t,n){0===e.href.length&&(e.defaultToggledState=!e.defaultToggledState,t(e.defaultToggledState))}))}}}),a=i.default.component("ns-submenu",{data:function(){return{}},props:["href","label","active"],mounted:function(){},template:'\n
    \n
  • \n \n \n \n
  • \n
    \n '}),l=i.default.component("ns-button",{data:function(){return{clicked:!1,_save:0}},props:["type","disabled","link","href","routerLink","to"],template:'\n
    \n \n \n \n
    \n ',mounted:function(){},computed:{isDisabled:function(){return this.disabled&&(0===this.disabled.length||"disabled"===this.disabled||this.disabled)},buttonclass:function(){var e;switch(this.type){case"info":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-blue-400 text-white");break;case"success":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-green-400 text-white");break;case"danger":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-red-400 text-white");break;case"warning":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-orange-400 text-white");break;default:e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-white text-gray-800")}return e}}}),o=i.default.component("ns-link",{data:function(){return{clicked:!1,_save:0}},props:["type","to","href"],template:'\n
    \n \n \n
    \n ',computed:{buttonclass:function(){switch(this.type){case"info":return"shadow bg-blue-400 text-white";case"success":return"shadow bg-green-400 text-white";case"danger":return"shadow bg-red-400 text-white";case"warning":return"shadow bg-orange-400 text-white";default:return"shadow bg-white text-gray-800"}}}}),d=i.default.component("ns-input",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),c=n(4451),u=i.default.component("ns-checkbox",{data:function(){return{}},props:["checked","field","label"],template:'\n
    \n
    \n \n
    \n {{ label }}\n {{ field.label }}\n
    \n ',computed:{isChecked:function(){return this.field?this.field.value:this.checked}},methods:{toggleIt:function(){void 0!==this.field&&(this.field.value=!this.field.value),this.$emit("change",!this.checked)}}}),f=n(7389),h=n(2242),p=n(419),m=i.default.component("ns-crud",{data:function(){return{isRefreshing:!1,sortColumn:"",searchInput:"",searchQuery:"",page:1,bulkAction:"",bulkActions:[],columns:[],selectedEntries:[],globallyChecked:!1,result:{current_page:null,data:[],first_page_url:null,from:null,last_page:null,last_page_url:null,next_page_url:null,path:null,per_page:null,prev_page_url:null,to:null,total:null}}},mounted:function(){void 0!==this.identifier&&nsCrudHandler.defineInstance(this.identifier,this),this.loadConfig()},props:["src","create-url","mode","identifier","queryParams"],computed:{getParsedSrc:function(){return"".concat(this.src,"?").concat(this.sortColumn).concat(this.searchQuery).concat(this.queryPage).concat(this.getQueryParams()?"&"+this.getQueryParams():"")},getSelectedAction:function(){var e=this,t=this.bulkActions.filter((function(t){return t.identifier===e.bulkAction}));return t.length>0&&t[0]},pagination:function(){return this.result?this.pageNumbers(this.result.last_page,this.result.current_page):[]},queryPage:function(){return this.result?"&page=".concat(this.page):""},resultInfo:function(){return(0,f.__)("displaying {perPage} on {items} items").replace("{perPage}",this.result.total).replace("{items}",this.result.total)}},methods:{__:f.__,getQueryParams:function(){var e=this;return this.queryParams?Object.keys(this.queryParams).map((function(t){return"".concat(t,"=").concat(e.queryParams[t])})).join("&"):""},pageNumbers:function(e,t){var n=[];return t>e-3?n.push(e-2,e-1,e):n.push(t,t+1,t+2,"...",e),n.filter((function(e){return e>0||"string"==typeof e}))},downloadContent:function(){s.ih.post("".concat(this.src,"/export?").concat(this.getQueryParams()),{entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(e){setTimeout((function(){return document.location=e.url}),300),s.kX.success((0,f.__)("The document has been generated.")).subscribe()}),(function(e){s.kX.error(e.message||(0,f.__)("Unexpected error occured.")).subscribe()}))},clearSelectedEntries:function(){var e=this;h.G.show(p.Z,{title:(0,f.__)("Clear Selected Entries ?"),message:(0,f.__)("Would you like to clear all selected entries ?"),onAction:function(t){t&&(e.selectedEntries=[])}})},refreshRow:function(e){if(!0===e.$checked){0===this.selectedEntries.filter((function(t){return t.$id===e.$id})).length&&this.selectedEntries.push(e)}else{var t=this.selectedEntries.filter((function(t){return t.$id===e.$id}));if(t.length>0){var n=this.selectedEntries.indexOf(t[0]);this.selectedEntries.splice(n,1)}}},handleShowOptions:function(e){this.result.data.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},handleGlobalChange:function(e){var t=this;this.globallyChecked=e,this.result.data.forEach((function(n){n.$checked=e,t.refreshRow(n)}))},loadConfig:function(){var e=this;s.ih.get("".concat(this.src,"/config?").concat(this.getQueryParams())).subscribe((function(t){e.columns=t.columns,e.bulkActions=t.bulkActions,e.refresh()}),(function(e){s.kX.error(e.message,"OK",{duration:!1}).subscribe()}))},cancelSearch:function(){this.searchInput="",this.search()},search:function(){this.searchInput?this.searchQuery="&search=".concat(this.searchInput):this.searchQuery="",this.refresh()},sort:function(e){for(var t in this.columns)t!==e&&(this.columns[t].$sorted=!1,this.columns[t].$direction="");switch(this.columns[e].$sorted=!0,this.columns[e].$direction){case"asc":this.columns[e].$direction="desc";break;case"desc":this.columns[e].$direction="";break;case"":this.columns[e].$direction="asc"}["asc","desc"].includes(this.columns[e].$direction)?this.sortColumn="active=".concat(e,"&direction=").concat(this.columns[e].$direction):this.sortColumn="",this.$emit("sort",this.columns[e]),this.refresh()},bulkDo:function(){var e=this;return this.bulkAction?this.selectedEntries.length>0?(console.log(this.getSelectedAction),confirm(this.getSelectedAction.confirm||this.$slots["error-bulk-confirmation"]||(0,f.__)("No bulk confirmation message provided on the CRUD class."))?s.ih.post("".concat(this.src,"/bulk-actions"),{action:this.bulkAction,entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(t){s.kX.info(t.message).subscribe(),e.selectedEntries=[],e.refresh()}),(function(e){s.kX.error(e.message).subscribe()})):void 0):s.kX.error(this.$slots["error-no-selection"]?this.$slots["error-no-selection"][0].text:(0,f.__)("No selection has been made.")).subscribe():s.kX.error(this.$slots["error-no-action"]?this.$slots["error-no-action"][0].text:(0,f.__)("No action has been selected.")).subscribe()},refresh:function(){var e=this;this.globallyChecked=!1,this.isRefreshing=!0,s.ih.get("".concat(this.getParsedSrc)).subscribe((function(t){t.data=t.data.map((function(t){return e.selectedEntries.filter((function(e){return e.$id===t.$id})).length>0&&(t.$checked=!0),t})),e.isRefreshing=!1,e.result=t,e.page=t.current_page}),(function(t){e.isRefreshing=!1,s.kX.error(t.message).subscribe()}))}},template:'\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{ column.label }}\n \n \n \n \n
    \n
    {{ __( \'There is nothing to display...\' ) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ resultInfo }}
    \n \n
    \n
    \n
    \n '}),v=i.default.component("ns-table-row",{props:["options","row","columns"],data:function(){return{optionsToggled:!1}},mounted:function(){},methods:{sanitizeHTML:function(e){var t=document.createElement("div");t.innerHTML=e;for(var n=t.getElementsByTagName("script"),i=n.length;i--;)n[i].parentNode.removeChild(n[i]);return t.innerHTML},getElementOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},toggleMenu:function(e){var t=this;if(this.row.$toggled=!this.row.$toggled,this.$emit("toggled",this.row),this.row.$toggled)setTimeout((function(){var e=t.$el.querySelectorAll(".relative > .absolute")[0],n=t.$el.querySelectorAll(".relative")[0],i=t.getElementOffset(n);e.style.top=i.top+"px",e.style.left=i.left+"px",n.classList.remove("relative"),n.classList.add("dropdown-holder")}),100);else{var n=this.$el.querySelectorAll(".dropdown-holder")[0];n.classList.remove("dropdown-holder"),n.classList.add("relative")}},handleChanged:function(e){this.row.$checked=e,this.$emit("updated",this.row)},triggerAsync:function(e){var t=this;e.confirm?confirm(e.confirm.message)&&s.ih[e.type.toLowerCase()](e.url).subscribe((function(e){s.kX.success(e.message).subscribe(),t.$emit("reload",t.row)}),(function(e){t.toggleMenu(),s.kX.error(e.message).subscribe()})):(s.l.emit({identifier:"ns-table-row-action",value:{action:e,row:this.row,component:this}}),this.toggleMenu())}},template:'\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n '}),b=i.default.component("ns-spinner",{data:function(){return{}},mounted:function(){},computed:{validatedSize:function(){return this.size||24},validatedBorder:function(){return this.border||8},validatedAnimation:function(){return this.animation||"fast"}},props:["color","size","border"],template:"\n
    \n
    \n
    \n "}),g=n(7266),y=i.default.component("ns-crud-form",{data:function(){return{form:{},globallyChecked:!1,formValidation:new g.Z,rows:[]}},mounted:function(){this.loadForm()},props:["src","create-url","field-class","return-url","submit-url","submit-method","disable-tabs"],computed:{activeTabFields:function(){for(var e in this.form.tabs)if(this.form.tabs[e].active)return this.form.tabs[e].fields;return[]}},methods:{toggle:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;this.form.tabs[e].active=!0},handleShowOptions:function(e){this.rows.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},submit:function(){var e=this;return this.formValidation.validateForm(this.form).length>0?s.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():(this.formValidation.disableForm(this.form),void 0===this.submitUrl?s.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():void s.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,this.formValidation.extractForm(this.form)).subscribe((function(t){if("success"===t.status){if(e.returnUrl&&e.returnUrl.length>0)return document.location=e.returnUrl;e.$emit("save",t)}e.formValidation.enableForm(e.form)}),(function(t){s.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t),e.formValidation.enableForm(e.form)})))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;s.ih.get("".concat(this.src)).subscribe((function(t){e.form=e.parseForm(t.form),s.kq.doAction("ns-crud-form-loaded",e),e.$emit("updated",e.form)}),(function(e){s.kX.error(e.message,"OKAY",{duration:0}).subscribe()}))},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var n in e.tabs)0===t&&(e.tabs[n].active=!0),e.tabs[n].active=void 0!==e.tabs[n].active&&e.tabs[n].active,e.tabs[n].fields=this.formValidation.createFields(e.tabs[n].fields),t++;return e}},template:'\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Return\n
    \n
    \n
    \n \n \n
    \n

    {{ form.main.description }}

    \n

    \n {{ error.identifier }}\n {{ error.message }}\n

    \n
    \n
    \n
    \n
    {{ tab.label }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n '}),x=i.default.component("ns-textarea",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),w=i.default.component("ns-field",{data:function(){return{}},mounted:function(){},computed:{isInputField:function(){return["text","password","email","number","tel"].includes(this.field.type)},isDateField:function(){return["date"].includes(this.field.type)},isSelectField:function(){return["select"].includes(this.field.type)},isTextarea:function(){return["textarea"].includes(this.field.type)},isCheckbox:function(){return["checkbox"].includes(this.field.type)},isMultiselect:function(){return["multiselect"].includes(this.field.type)},isSwitch:function(){return["switch"].includes(this.field.type)},isMedia:function(){return["media"].includes(this.field.type)},isCkEditor:function(){return["ckeditor"].includes(this.field.type)},isDateTimePicker:function(){return["datetimepicker"].includes(this.field.type)},isCustom:function(){return["custom"].includes(this.field.type)}},props:["field"],methods:{addOption:function(e){"select"===this.field.type&&this.field.options.forEach((function(e){return e.selected=!1})),e.selected=!0;var t=this.field.options.indexOf(e);this.field.options.splice(t,1),this.field.options.unshift(e),this.refreshMultiselect(),this.$emit("change",{action:"addOption",option:e})},refreshMultiselect:function(){this.field.value=this.field.options.filter((function(e){return e.selected})).map((function(e){return e.value}))},removeOption:function(e){e.selected=!1,this.refreshMultiselect(),this.$emit("change",{action:"removeOption",option:e})}},template:'\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n '}),_=i.default.component("ns-multiselect",{data:function(){return{showPanel:!1,search:""}},props:["field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=void 0!==t.selected&&t.selected,e.field.value&&e.field.value.includes(t.value)&&(t.selected=!0),t}))}},methods:{__:f.__,addOption:function(e){this.field.disabled||(this.$emit("addOption",e),this.$forceUpdate(),setTimeout((function(){}),100))},removeOption:function(e,t){var n=this;if(!this.field.disabled)return t.preventDefault(),t.stopPropagation(),this.$emit("removeOption",e),this.$forceUpdate(),setTimeout((function(){n.search=""}),100),!1}},mounted:function(){var e=this;this.field.value&&this.field.value.reverse().forEach((function(t){var n=e.field.options.filter((function(e){return e.value===t}));n.length>=0&&e.addOption(n[0])}))},template:'\n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ option.label }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n
    \n '}),k=i.default.component("ns-switch",{data:function(){return{}},mounted:function(){},computed:{_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=t.value===e.field.value,t}))},hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":""},sizeClass:function(){return" w-1/".concat(this._options.length<=4?this._options.length:4)},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:f.__,setSelected:function(e){this.field.value=e.value,this._options.forEach((function(e){return e.selected=!1})),e.selected=!0,this.$forceUpdate(),this.$emit("change",e.value)}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n

    \n
    \n '}),j=i.default.component("ns-date",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),C=n(9576),$=i.default.component("ns-media-input",{template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n ',computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},data:function(){return{}},props:["placeholder","leading","type","field"],mounted:function(){},methods:{toggleMedia:function(){var e=this;new Promise((function(t,n){h.G.show(C.Z,Object.assign({resolve:t,reject:n},e.field.data||{}))})).then((function(t){"use-selected"===t.event&&(e.field.data&&"url"!==e.field.data.type?e.field.data&&"model"!==e.field.data.type||(e.field.value=t.value[0]):e.field.value=t.value[0].sizes.original,e.$forceUpdate())}))}}}),S=i.default.component("ns-close-button",{template:'\n \n ',methods:{clicked:function(e){this.$emit("click",e)}}}),E=i.default.component("ns-icon-button",{template:'\n \n ',props:["className","buttonClass"],methods:{clicked:function(e){this.$emit("click",e)}}}),D=n(1272),O=n.n(D),P=n(5234),T=n.n(P),F=i.default.component("ns-ckeditor",{data:function(){return{editor:T()}},components:{ckeditor:O().component},mounted:function(){},methods:{__:f.__},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),q=i.default.component("ns-tabs",{data:function(){return{childrens:[]}},props:["active"],computed:{activeComponent:function(){var e=this.$children.filter((function(e){return e.active}));return e.length>0&&e[0]}},methods:{toggle:function(e){this.$emit("active",e.identifier),this.$emit("changeTab",e.identifier)}},mounted:function(){this.childrens=this.$children},template:'\n
    \n
    \n
    {{ tab.label }}
    \n
    \n \n
    \n '}),A=i.default.component("ns-tabs-item",{data:function(){return{}},mounted:function(){},props:["label","identifier","padding"],template:'\n
    \n \n
    \n '}),z=n(8655),M=n(3968),V=n(6598).Z},8655:(e,t,n)=>{"use strict";n.d(t,{V:()=>l});var i=n(538),s=n(381),r=n.n(s),a=n(7389),l=i.default.component("ns-date-time-picker",{template:'\n
    \n \n
    \n \n \n {{ currentDay.format( \'YYYY/MM/DD HH:mm\' ) }}\n N/A\n \n
    \n

    {{ field.description }}

    \n \n
    \n ',props:["field","date"],data:function(){return{visible:!1,hours:0,minutes:0,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},watch:{visible:function(){var e=this;this.visible&&setTimeout((function(){e.$refs.hours.addEventListener("focus",(function(){this.select()})),e.$refs.minutes.addEventListener("focus",(function(){this.select()}))}),100)}},mounted:function(){var e=this;document.addEventListener("mousedown",(function(t){return e.checkClickedItem(t)})),this.field?this.currentDay=[void 0,null,""].includes(this.field.value)?r()():r()(this.field.value):this.currentDay=[void 0,null,""].includes(this.date)?r()():r()(this.date),this.hours=this.currentDay.format("HH"),this.minutes=this.currentDay.format("mm"),this.build()},methods:{__:a.__,detectHoursChange:function(){parseFloat(this.hours)<0&&(this.hours=0),parseFloat(this.hours)>23&&(this.hours=23),this.updateDateTime()},detectMinuteChange:function(){parseFloat(this.minutes)<0&&(this.minutes=0),parseFloat(this.minutes)>59&&(this.minutes=59),this.updateDateTime()},updateDateTime:function(){this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes),this.selectDate(this.currentDay)},checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes);var t=this.currentDay.format("YYYY/MM/DD HH:mm");this.field?(this.field.value=t,this.$emit("change",this.field)):this.$emit("change",this.currentDay)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var n=this.calendar.length-1;if(this.calendar[n].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(r().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}})},4451:(e,t,n)=>{"use strict";n.d(t,{R:()=>s});var i=n(7389),s=n(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:i.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,n)=>{"use strict";n.d(t,{W:()=>d,f:()=>c});var i=n(538),s=n(2077),r=n.n(s),a=n(6740),l=n.n(a),o=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),d=i.default.filter("currency",(function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===i){var s={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};n=l()(e,s).format()}else n=r()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(n).concat("after"===ns.currency.ns_currency_position?t:"")})),c=function(e){var t="0.".concat(o);return parseFloat(r()(e).format(t))}},9698:(e,t,n)=>{"use strict";n.d(t,{b:()=>i});var i=n(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,n)=>{"use strict";function i(e,t){for(var n=0;ns});var s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,s;return t=e,(n=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var n in e.tabs){var i=[],s=this.validateFieldsErrors(e.tabs[n].fields);s.length>0&&i.push(s),e.tabs[n].errors=i.flat(),t.push(i.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var n in e)0===t&&(e[n].active=!0),e[n].active=void 0!==e[n].active&&e[n].active,e[n].fields=this.createFields(e[n].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(n){t.fieldPassCheck(e,n)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var n in e.tabs)void 0===t[n]&&(t[n]={}),t[n]=this.extractFields(e.tabs[n].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var n=function(n){var i=n.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===i.length&&e.tabs[i[0]].fields.forEach((function(e){e.name===i[1]&&t.errors[n].forEach((function(t){var n={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(n)}))})),n===e.main.name&&t.errors[n].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var i in t.errors)n(i)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var n=function(n){e.forEach((function(e){e.name===n&&t.errors[n].forEach((function(t){var n={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(n)}))}))};for(var i in t.errors)n(i)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(n,i){n.identifier===t.identifier&&!0===n.invalid&&e.errors.splice(i,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(n,i){!0===n[t.identifier]&&e.errors.splice(i,1)}))}return e}}])&&i(t.prototype,n),s&&i(t,s),e}()},7389:(e,t,n)=>{"use strict";n.d(t,{__:()=>i,c:()=>s});var i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},s=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,n)=>{"use strict";function i(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}n.d(t,{Z:()=>i})},6386:(e,t,n)=>{"use strict";function i(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}n.d(t,{Z:()=>i})},2242:(e,t,n)=>{"use strict";n.d(t,{G:()=>a});var i=n(9248);function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};if(s(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var n=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[n-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new i.x}var t,n,a;return t=e,a=[{key:"show",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=new e(i);return s.open(t,n),s}}],(n=[{key:"open",value:function(e){var t,n,i,s=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",a.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){s.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var l=Vue.extend(e);this.instance=new l({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(i=null==e?void 0:e.options)||void 0===i?void 0:i.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=r,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&r(t.prototype,n),a&&r(t,a),e}()},9624:(e,t,n)=>{"use strict";n.d(t,{S:()=>r});var i=n(3260);function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return i.Observable.create((function(i){var r=n.__createSnack({message:e,label:t,type:s.type}),a=r.buttonNode,l=(r.textNode,r.snackWrapper,r.sampleSnack);a.addEventListener("click",(function(e){i.onNext(a),i.onCompleted(),l.remove()})),n.__startTimer(s.duration,l)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var n,i=function(){e>0&&!1!==e&&(n=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(n)})),t.addEventListener("mouseleave",(function(){i()})),i()}},{key:"__createSnack",value:function(e){var t=e.message,n=e.label,i=e.type,s=void 0===i?"info":i,r=document.getElementById("snack-wrapper")||document.createElement("div"),a=document.createElement("div"),l=document.createElement("p"),o=document.createElement("div"),d=document.createElement("button"),c="",u="";switch(s){case"info":c="text-white hover:bg-blue-400 bg-blue-500",u="bg-gray-900 text-white";break;case"error":c="text-red-700 hover:bg-white bg-white",u="bg-red-500 text-white";break;case"success":c="text-green-700 hover:bg-white bg-white",u="bg-green-500 text-white"}return l.textContent=t,n&&(d.textContent=n,d.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(c)),o.appendChild(d)),a.appendChild(l),a.appendChild(o),a.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(u)),r.appendChild(a),null===document.getElementById("snack-wrapper")&&(r.setAttribute("id","snack-wrapper"),r.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(r)),{snackWrapper:r,sampleSnack:a,buttonsWrapper:o,buttonNode:d,textNode:l}}}])&&s(t.prototype,n),r&&s(t,r),e}()},5767:(e,t,n)=>{"use strict";n.d(t,{c:()=>a});var i=n(538),s=n(8345),r=[{path:"/",component:n(4741).Z},{path:"/database",component:n(5718).Z},{path:"/configuration",component:n(5825).Z}];i.default.use(s.Z);var a=new s.Z({routes:r});new i.default({router:a}).$mount("#nexopos-setup")},6700:(e,t,n)=>{var i={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function s(e){var t=r(e);return n(t)}function r(e){if(!n.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=r,e.exports=s,s.id=6700},6598:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var i=n(381),s=n.n(i);const r={name:"ns-datepicker",props:["label","date"],data:function(){return{visible:!1,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},mounted:function(){document.addEventListener("click",this.checkClickedItem),this.currentDay=[void 0,null].includes(this.date)?s()():s()(this.date),this.build()},methods:{__:n(7389).__,checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.visible=!1,this.$emit("change",e)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var n=this.calendar.length-1;if(this.calendar[n].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(s().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"picker"},[n("div",{staticClass:"rounded cursor-pointer bg-white shadow px-1 py-1 flex items-center text-gray-700",on:{click:function(t){e.visible=!e.visible}}},[n("i",{staticClass:"las la-clock text-2xl"}),e._v(" "),n("span",{staticClass:"mx-1 text-sm"},[n("span",[e._v(e._s(e.label||e.__("Date"))+" : ")]),e._v(" "),e.currentDay?n("span",[e._v(e._s(e.currentDay.format("YYYY/MM/DD")))]):e._e(),e._v(" "),null===e.currentDay?n("span",[e._v(e._s(e.__("N/A")))]):e._e()])]),e._v(" "),e.visible?n("div",{staticClass:"relative h-0 w-0 -mb-2"},[n("div",{staticClass:"w-72 mt-2 shadow rounded bg-white anim-duration-300 zoom-in-entrance flex flex-col"},[n("div",{staticClass:"flex-auto"},[n("div",{staticClass:"p-2 flex items-center"},[n("div",[n("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.subMonth()}}},[n("i",{staticClass:"las la-angle-left"})])]),e._v(" "),n("div",{staticClass:"flex flex-auto font-semibold text-gray-700 justify-center"},[e._v(e._s(e.currentDay.format("MMM"))+" "+e._s(e.currentDay.format("YYYY")))]),e._v(" "),n("div",[n("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.addMonth()}}},[n("i",{staticClass:"las la-angle-right"})])])]),e._v(" "),n("div",{staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},[n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sun")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Mon")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Tue")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Wed")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Thr")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Fri")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sat")))])]),e._v(" "),e._l(e.calendar,(function(t,i){return n("div",{key:i,staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},e._l(e.daysOfWeek,(function(i,s){return n("div",{key:s,staticClass:"h-8 flex justify-center items-center text-sm"},[e._l(t,(function(t,s){return[t.dayOfWeek===i?n("div",{key:s,staticClass:"h-full w-full flex items-center justify-center cursor-pointer",class:t.date.format("DD")===e.currentDay.format("DD")?"bg-blue-400 text-white border border-blue-500":"hover:bg-gray-100 border border-gray-200",on:{click:function(n){return e.selectDate(t.date)}}},[e._v("\n "+e._s(t.date.format("DD"))+"\n ")]):e._e()]}))],2)})),0)}))],2),e._v(" "),n("div")])]):e._e()])}),[],!1,null,null,null).exports},3968:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});function i(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,i){return n("div",{key:i,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(n){return e.inputValue(t)}}},[void 0!==t.value?n("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?n("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},9576:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var i=n(162),s=n(8603),r=n(7389);const a={name:"ns-media",props:["popup"],components:{VueUpload:n(2948)},data:function(){return{pages:[{label:(0,r.__)("Upload"),name:"upload",selected:!1},{label:(0,r.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return i.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:s.Z,__:r.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return i.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){i.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){i.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,i.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(n,i){i!==t.response.data.indexOf(e)&&(n.selected=!1)})),e.selected=!e.selected}}};const l=(0,n(1900).Z)(a,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[n("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[n("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),n("ul",e._l(e.pages,(function(t,i){return n("li",{key:i,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(n){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?n("div",{staticClass:"content w-full overflow-hidden flex"},[n("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[n("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[n("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),n("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[n("ul",e._l(e.files,(function(t,i){return n("li",{key:i,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[n("span",[e._v(e._s(t.name))]),e._v(" "),n("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?n("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?n("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[n("div"),e._v(" "),n("div",[n("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),n("div",{staticClass:"flex flex-auto overflow-hidden"},[n("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[n("div",{staticClass:"flex flex-auto"},[n("div",{staticClass:"p-2 overflow-x-auto"},[n("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,i){return n("div",{key:i},[n("div",{staticClass:"p-2"},[n("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(n){return e.selectResource(t)}}},[n("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?n("div",{staticClass:"flex flex-auto items-center justify-center"},[n("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?n("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[n("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[n("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),n("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),n("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),n("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),n("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),n("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[n("div",{staticClass:"flex -mx-2 flex-shrink-0"},[n("div",{staticClass:"px-2 flex-shrink-0 flex"},[n("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?n("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[n("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?n("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[n("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?n("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[n("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),n("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[n("div",{staticClass:"px-2"},[n("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[n("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),n("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),n("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?n("div",{staticClass:"px-2"},[n("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},5718:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var i=n(7266),s=n(5767);const r={data:function(){return{form:new i.Z,fields:[]}},methods:{validate:function(){var e=this;this.form.validateFields(this.fields)&&(this.form.disableFields(this.fields),this.checkDatabase(this.form.getValue(this.fields)).subscribe((function(t){e.form.enableFields(e.fields),s.c.push("/configuration"),nsSnackBar.success(t.message,"OKAY",{duration:5e3}).subscribe()}),(function(t){e.form.enableFields(e.fields),nsSnackBar.error(t.message,"OKAY").subscribe()})))},checkDatabase:function(e){return nsHttpClient.post("/api/nexopos/v4/setup/database",e)}},mounted:function(){this.fields=this.form.createFields([{label:"Hostname",description:"Provide the database hostname",name:"hostname",value:"localhost",validation:"required"},{label:"Username",description:"Username required to connect to the database.",name:"username",value:"root",validation:"required"},{label:"Password",description:"The username password required to connect.",name:"password",value:""},{label:"Database Name",description:"Provide the database name.",name:"database_name",value:"nexopos_v4",validation:"required"},{label:"Database Prefix",description:"Provide the database prefix.",name:"database_prefix",value:"ns_",validation:"required"}])}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow my-4"},[n("div",{staticClass:"welcome-box border-b border-gray-300 p-3 text-gray-700"},e._l(e.fields,(function(t,i){return n("ns-input",{key:i,attrs:{field:t},on:{change:function(n){return e.form.validateField(t)}}},[n("span",[e._v(e._s(t.label))]),e._v(" "),n("template",{slot:"description"},[e._v(e._s(t.description))])],2)})),1),e._v(" "),n("div",{staticClass:"bg-gray-200 p-3 flex justify-end"},[n("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.validate()}}},[e._v("Save Database")])],1)])}),[],!1,null,null,null).exports},5825:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var i=n(7266),s=n(162),r=n(5767);const a={data:function(){return{form:new i.Z,fields:[],processing:!1,steps:[],failure:0,maxFailure:2}},methods:{validate:function(){},verifyDBConnectivity:function(){},saveConfiguration:function(e){var t=this;return this.form.disableFields(this.fields),this.processing=!0,s.ih.post("/api/nexopos/v4/setup/configuration",this.form.getValue(this.fields)).subscribe((function(e){document.location="/sign-in"}),(function(e){t.processing=!1,t.form.enableFields(t.fields),t.form.triggerFieldsErrors(t.fields,e.data),s.kX.error(e.message,"OK").subscribe()}))},checkDatabase:function(){var e=this;s.ih.get("/api/nexopos/v4/setup/database").subscribe((function(t){e.fields=e.form.createFields([{label:"Application",description:"That is the application name.",name:"ns_store_name",validation:"required"},{label:"Username",description:"Provide the administrator username.",name:"admin_username",validation:"required"},{label:"Email",description:"Provide the administrator email.",name:"admin_email",validation:"required"},{label:"Password",type:"password",description:"What should be the password required for authentication.",name:"password",validation:"required"},{label:"Confirm Password",type:"password",description:"Should be the same as the password above.",name:"confirm_password",validation:"required"}])}),(function(e){console.log(e),r.c.push("/database"),s.kX.error("You need to define database settings","OKAY",{duration:3e3}).subscribe()}))}},mounted:function(){this.checkDatabase()}};const l=(0,n(1900).Z)(a,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[0===e.fields.length?n("ns-spinner",{attrs:{size:"12",border:"4",animation:"fast"}}):e._e(),e._v(" "),e.fields.length>0?n("div",{staticClass:"bg-white rounded shadow my-2"},[n("div",{staticClass:"welcome-box border-b border-gray-300 p-3 text-gray-700"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1),e._v(" "),n("div",{staticClass:"bg-gray-200 p-3 flex justify-between items-center"},[n("div",[e.processing?n("ns-spinner",{attrs:{size:"8",border:"4"}}):e._e()],1),e._v(" "),n("ns-button",{attrs:{disabled:e.processing,type:"info"},on:{click:function(t){return e.saveConfiguration()}}},[e._v("Create Installation")])],1)]):e._e()],1)}),[],!1,null,null,null).exports},4741:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});const i={components:{nsLink:n(8202).nsLink}};const s=(0,n(1900).Z)(i,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow my-2 overflow-hidden"},[e._m(0),e._v(" "),n("div",{staticClass:"bg-gray-200 p-3 flex justify-end"},[n("ns-link",{attrs:{to:"/database",type:"info"}},[n("i",{staticClass:"las la-database"}),e._v(" Database Configuration")])],1)])}),[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"welcome-box border-b border-gray-300 p-3 text-gray-700"},[n("p",{staticClass:"text-gray-600 text-sm"},[e._v("Thank you for having choosed NexoPOS 4 for managing your store. This is the installation wizard that will guide you through the installation.")]),e._v(" "),n("div",{staticClass:"py-2"},[n("h2",{staticClass:"text-xl font-body text-gray-700"},[e._v("Remaining Steps")]),e._v(" "),n("ul",{staticClass:"text-gray-600 text-sm"},[n("li",[n("i",{staticClass:"las la-arrow-right"}),e._v(" Database Configuration")]),e._v(" "),n("li",[n("i",{staticClass:"las la-arrow-right"}),e._v(" Application Configuration")])])])])}],!1,null,null,null).exports},419:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});const i={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:n(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const s=(0,n(1900).Z)(i,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[n("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[n("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),n("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),n("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[n("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),n("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),n("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=5767,e(e.s=t);var t}));e.O()}]); +(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[312],{162:(e,t,n)=>{"use strict";n.d(t,{l:()=>V,kq:()=>R,ih:()=>L,kX:()=>I});var i=n(6486),s=n(9669),r=n(2181),a=n(8345),l=n(9624),o=n(9248),d=n(230);function c(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};return this._request("post",e,t,n)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("get",e,void 0,t)}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._request("delete",e,void 0,t)}},{key:"put",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._request("put",e,t,n)}},{key:"response",get:function(){return this._lastRequestData}},{key:"_request",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t=R.applyFilters("http-client-url",t.replace(/\/$/,"")),this._subject.next({identifier:"async.start",url:t,data:i}),new d.y((function(r){n._client[e](t,i,Object.assign(Object.assign({},n._client.defaults[e]),s)).then((function(e){n._lastRequestData=e,r.next(e.data),r.complete(),n._subject.next({identifier:"async.stop"})})).catch((function(e){var t;r.error((null===(t=e.response)||void 0===t?void 0:t.data)||e.response||e),n._subject.next({identifier:"async.stop"})}))}))}},{key:"subject",value:function(){return this._subject}},{key:"emit",value:function(e){var t=e.identifier,n=e.value;this._subject.next({identifier:t,value:n})}}])&&c(t.prototype,n),i&&c(t,i),e}(),f=n(3);function h(e,t){for(var n=0;n=1e3){for(var n,i=Math.floor((""+e).length/3),s=2;s>=1;s--){if(((n=parseFloat((0!=i?e/Math.pow(1e3,i):e).toPrecision(s)))+"").replace(/[^a-zA-Z 0-9]+/g,"").length<=2)break}n%1!=0&&(n=n.toFixed(1)),t=n+["","k","m","b","t"][i]}return t})),S=n(1356),E=n(9698);function D(e,t){for(var n=0;n0&&window.outerWidth<=480:this.breakpoint="xs";break;case window.outerWidth>480&&window.outerWidth<=640:this.breakpoint="sm";break;case window.outerWidth>640&&window.outerWidth<=1024:this.breakpoint="md";break;case window.outerWidth>1024&&window.outerWidth<=1280:this.breakpoint="lg";break;case window.outerWidth>1280:this.breakpoint="xl"}}}])&&z(t.prototype,n),i&&z(t,i),e}()),H=new b({sidebar:["xs","sm","md"].includes(W.breakpoint)?"hidden":"visible"});L.defineClient(s),window.nsEvent=V,window.nsHttpClient=L,window.nsSnackBar=I,window.nsCurrency=S.W,window.nsTruncate=E.b,window.nsRawCurrency=S.f,window.nsAbbreviate=$,window.nsState=H,window.nsUrl=Z,window.nsScreen=W,window.ChartJS=r,window.EventEmitter=p,window.Popup=w.G,window.RxJS=y,window.FormValidation=k.Z,window.nsCrudHandler=N},4364:(e,t,n)=>{"use strict";n.r(t),n.d(t,{nsAvatar:()=>N,nsButton:()=>l,nsCheckbox:()=>h,nsCkeditor:()=>A,nsCloseButton:()=>E,nsCrud:()=>v,nsCrudForm:()=>x,nsDate:()=>C,nsDateTimePicker:()=>M.V,nsDatepicker:()=>R,nsField:()=>_,nsIconButton:()=>D,nsInput:()=>d,nsLink:()=>o,nsMediaInput:()=>S,nsMenu:()=>r,nsMultiselect:()=>k,nsNumpad:()=>V.Z,nsSelect:()=>c.R,nsSelectAudio:()=>f,nsSpinner:()=>g,nsSubmenu:()=>a,nsSwitch:()=>j,nsTableRow:()=>b,nsTabs:()=>q,nsTabsItem:()=>z,nsTextarea:()=>w});var i=n(538),s=n(162),r=i.default.component("ns-menu",{data:function(){return{defaultToggledState:!1,_save:0}},props:["href","label","icon","notification","toggled","identifier"],template:'\n \n ',mounted:function(){var e=this;this.defaultToggledState=void 0!==this.toggled?this.toggled:this.defaultToggledState,s.l.subject().subscribe((function(t){t.value!==e.identifier&&(e.defaultToggledState=!1)}))},methods:{toggleEmit:function(){var e=this;this.toggle().then((function(t){t&&s.l.emit({identifier:"side-menu.open",value:e.identifier})}))},toggle:function(){var e=this;return new Promise((function(t,n){0===e.href.length&&(e.defaultToggledState=!e.defaultToggledState,t(e.defaultToggledState))}))}}}),a=i.default.component("ns-submenu",{data:function(){return{}},props:["href","label","active"],mounted:function(){},template:'\n
    \n
  • \n \n \n \n
  • \n
    \n '}),l=i.default.component("ns-button",{data:function(){return{clicked:!1,_save:0}},props:["type","disabled","link","href","routerLink","to"],template:'\n
    \n \n \n \n
    \n ',mounted:function(){},computed:{isDisabled:function(){return this.disabled&&(0===this.disabled.length||"disabled"===this.disabled||this.disabled)},buttonclass:function(){var e;switch(this.type){case"info":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-blue-400 text-white");break;case"success":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-green-400 text-white");break;case"danger":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-red-400 text-white");break;case"warning":e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-orange-400 text-white");break;default:e="".concat(this.isDisabled?"bg-gray-400 border border-gray-500 cursor-not-allowed text-gray-600":"shadow bg-white text-gray-800")}return e}}}),o=i.default.component("ns-link",{data:function(){return{clicked:!1,_save:0}},props:["type","to","href"],template:'\n
    \n \n \n
    \n ',computed:{buttonclass:function(){switch(this.type){case"info":return"shadow bg-blue-400 text-white";case"success":return"shadow bg-green-400 text-white";case"danger":return"shadow bg-red-400 text-white";case"warning":return"shadow bg-orange-400 text-white";default:return"shadow bg-white text-gray-800"}}}}),d=i.default.component("ns-input",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),c=n(4451),u=n(7389),f=i.default.component("ns-select-audio",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:u.__,playSelectedSound:function(){this.field.value.length>0&&new Audio(this.field.value).play()}},template:'\n
    \n \n
    \n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),h=i.default.component("ns-checkbox",{data:function(){return{}},props:["checked","field","label"],template:'\n
    \n
    \n \n
    \n {{ label }}\n {{ field.label }}\n
    \n ',computed:{isChecked:function(){return this.field?this.field.value:this.checked}},methods:{toggleIt:function(){void 0!==this.field&&(this.field.value=!this.field.value),this.$emit("change",!this.checked)}}}),p=n(2242),m=n(419),v=i.default.component("ns-crud",{data:function(){return{isRefreshing:!1,sortColumn:"",searchInput:"",searchQuery:"",page:1,bulkAction:"",bulkActions:[],columns:[],selectedEntries:[],globallyChecked:!1,result:{current_page:null,data:[],first_page_url:null,from:null,last_page:null,last_page_url:null,next_page_url:null,path:null,per_page:null,prev_page_url:null,to:null,total:null}}},mounted:function(){void 0!==this.identifier&&nsCrudHandler.defineInstance(this.identifier,this),this.loadConfig()},props:["src","create-url","mode","identifier","queryParams"],computed:{getParsedSrc:function(){return"".concat(this.src,"?").concat(this.sortColumn).concat(this.searchQuery).concat(this.queryPage).concat(this.getQueryParams()?"&"+this.getQueryParams():"")},getSelectedAction:function(){var e=this,t=this.bulkActions.filter((function(t){return t.identifier===e.bulkAction}));return t.length>0&&t[0]},pagination:function(){return this.result?this.pageNumbers(this.result.last_page,this.result.current_page):[]},queryPage:function(){return this.result?"&page=".concat(this.page):""},resultInfo:function(){return(0,u.__)("displaying {perPage} on {items} items").replace("{perPage}",this.result.total).replace("{items}",this.result.total)}},methods:{__:u.__,getQueryParams:function(){var e=this;return this.queryParams?Object.keys(this.queryParams).map((function(t){return"".concat(t,"=").concat(e.queryParams[t])})).join("&"):""},pageNumbers:function(e,t){var n=[];return t>e-3?n.push(e-2,e-1,e):n.push(t,t+1,t+2,"...",e),n.filter((function(e){return e>0||"string"==typeof e}))},downloadContent:function(){s.ih.post("".concat(this.src,"/export?").concat(this.getQueryParams()),{entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(e){setTimeout((function(){return document.location=e.url}),300),s.kX.success((0,u.__)("The document has been generated.")).subscribe()}),(function(e){s.kX.error(e.message||(0,u.__)("Unexpected error occured.")).subscribe()}))},clearSelectedEntries:function(){var e=this;p.G.show(m.Z,{title:(0,u.__)("Clear Selected Entries ?"),message:(0,u.__)("Would you like to clear all selected entries ?"),onAction:function(t){t&&(e.selectedEntries=[])}})},refreshRow:function(e){if(!0===e.$checked){0===this.selectedEntries.filter((function(t){return t.$id===e.$id})).length&&this.selectedEntries.push(e)}else{var t=this.selectedEntries.filter((function(t){return t.$id===e.$id}));if(t.length>0){var n=this.selectedEntries.indexOf(t[0]);this.selectedEntries.splice(n,1)}}},handleShowOptions:function(e){this.result.data.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},handleGlobalChange:function(e){var t=this;this.globallyChecked=e,this.result.data.forEach((function(n){n.$checked=e,t.refreshRow(n)}))},loadConfig:function(){var e=this;s.ih.get("".concat(this.src,"/config?").concat(this.getQueryParams())).subscribe((function(t){e.columns=t.columns,e.bulkActions=t.bulkActions,e.refresh()}),(function(e){s.kX.error(e.message,"OK",{duration:!1}).subscribe()}))},cancelSearch:function(){this.searchInput="",this.search()},search:function(){this.searchInput?this.searchQuery="&search=".concat(this.searchInput):this.searchQuery="",this.refresh()},sort:function(e){for(var t in this.columns)t!==e&&(this.columns[t].$sorted=!1,this.columns[t].$direction="");switch(this.columns[e].$sorted=!0,this.columns[e].$direction){case"asc":this.columns[e].$direction="desc";break;case"desc":this.columns[e].$direction="";break;case"":this.columns[e].$direction="asc"}["asc","desc"].includes(this.columns[e].$direction)?this.sortColumn="active=".concat(e,"&direction=").concat(this.columns[e].$direction):this.sortColumn="",this.$emit("sort",this.columns[e]),this.refresh()},bulkDo:function(){var e=this;return this.bulkAction?this.selectedEntries.length>0?(console.log(this.getSelectedAction),confirm(this.getSelectedAction.confirm||this.$slots["error-bulk-confirmation"]||(0,u.__)("No bulk confirmation message provided on the CRUD class."))?s.ih.post("".concat(this.src,"/bulk-actions"),{action:this.bulkAction,entries:this.selectedEntries.map((function(e){return e.$id}))}).subscribe((function(t){s.kX.info(t.message).subscribe(),e.selectedEntries=[],e.refresh()}),(function(e){s.kX.error(e.message).subscribe()})):void 0):s.kX.error(this.$slots["error-no-selection"]?this.$slots["error-no-selection"][0].text:(0,u.__)("No selection has been made.")).subscribe():s.kX.error(this.$slots["error-no-action"]?this.$slots["error-no-action"][0].text:(0,u.__)("No action has been selected.")).subscribe()},refresh:function(){var e=this;this.globallyChecked=!1,this.isRefreshing=!0,s.ih.get("".concat(this.getParsedSrc)).subscribe((function(t){t.data=t.data.map((function(t){return e.selectedEntries.filter((function(e){return e.$id===t.$id})).length>0&&(t.$checked=!0),t})),e.isRefreshing=!1,e.result=t,e.page=t.current_page}),(function(t){e.isRefreshing=!1,s.kX.error(t.message).subscribe()}))}},template:'\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{ column.label }}\n \n \n \n \n
    \n
    {{ __( \'There is nothing to display...\' ) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ resultInfo }}
    \n \n
    \n
    \n
    \n '}),b=i.default.component("ns-table-row",{props:["options","row","columns"],data:function(){return{optionsToggled:!1}},mounted:function(){},methods:{sanitizeHTML:function(e){var t=document.createElement("div");t.innerHTML=e;for(var n=t.getElementsByTagName("script"),i=n.length;i--;)n[i].parentNode.removeChild(n[i]);return t.innerHTML},getElementOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},toggleMenu:function(e){var t=this;if(this.row.$toggled=!this.row.$toggled,this.$emit("toggled",this.row),this.row.$toggled)setTimeout((function(){var e=t.$el.querySelectorAll(".relative > .absolute")[0],n=t.$el.querySelectorAll(".relative")[0],i=t.getElementOffset(n);e.style.top=i.top+"px",e.style.left=i.left+"px",n.classList.remove("relative"),n.classList.add("dropdown-holder")}),100);else{var n=this.$el.querySelectorAll(".dropdown-holder")[0];n.classList.remove("dropdown-holder"),n.classList.add("relative")}},handleChanged:function(e){this.row.$checked=e,this.$emit("updated",this.row)},triggerAsync:function(e){var t=this;e.confirm?confirm(e.confirm.message)&&s.ih[e.type.toLowerCase()](e.url).subscribe((function(e){s.kX.success(e.message).subscribe(),t.$emit("reload",t.row)}),(function(e){t.toggleMenu(),s.kX.error(e.message).subscribe()})):(s.l.emit({identifier:"ns-table-row-action",value:{action:e,row:this.row,component:this}}),this.toggleMenu())}},template:'\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n '}),g=i.default.component("ns-spinner",{data:function(){return{}},mounted:function(){},computed:{validatedSize:function(){return this.size||24},validatedBorder:function(){return this.border||8},validatedAnimation:function(){return this.animation||"fast"}},props:["color","size","border"],template:"\n
    \n
    \n
    \n "}),y=n(7266),x=i.default.component("ns-crud-form",{data:function(){return{form:{},globallyChecked:!1,formValidation:new y.Z,rows:[]}},mounted:function(){this.loadForm()},props:["src","create-url","field-class","return-url","submit-url","submit-method","disable-tabs"],computed:{activeTabFields:function(){for(var e in this.form.tabs)if(this.form.tabs[e].active)return this.form.tabs[e].fields;return[]}},methods:{toggle:function(e){for(var t in this.form.tabs)this.form.tabs[t].active=!1;this.form.tabs[e].active=!0},handleShowOptions:function(e){this.rows.forEach((function(t){t.$id!==e.$id&&(t.$toggled=!1)}))},submit:function(){var e=this;return this.formValidation.validateForm(this.form).length>0?s.kX.error(this.$slots["error-invalid-form"]?this.$slots["error-invalid-form"][0].text:"No error message provided for having an invalid form.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():(this.formValidation.disableForm(this.form),void 0===this.submitUrl?s.kX.error(this.$slots["error-no-submit-url"]?this.$slots["error-no-submit-url"][0].text:"No error message provided for not having a valid submit url.",this.$slots.okay?this.$slots.okay[0].text:"OK").subscribe():void s.ih[this.submitMethod?this.submitMethod.toLowerCase():"post"](this.submitUrl,this.formValidation.extractForm(this.form)).subscribe((function(t){if("success"===t.status){if(e.returnUrl&&e.returnUrl.length>0)return document.location=e.returnUrl;e.$emit("save",t)}e.formValidation.enableForm(e.form)}),(function(t){s.kX.error(t.message,void 0,{duration:5e3}).subscribe(),e.formValidation.triggerError(e.form,t),e.formValidation.enableForm(e.form)})))},handleGlobalChange:function(e){this.globallyChecked=e,this.rows.forEach((function(t){return t.$checked=e}))},loadForm:function(){var e=this;s.ih.get("".concat(this.src)).subscribe({next:function(t){e.form=e.parseForm(t.form),s.kq.doAction("ns-crud-form-loaded",e),e.$emit("updated",e.form)},error:function(e){s.kX.error(e.message,"OKAY",{duration:0}).subscribe()}})},parseForm:function(e){e.main.value=void 0===e.main.value?"":e.main.value,e.main=this.formValidation.createFields([e.main])[0];var t=0;for(var n in e.tabs)0===t&&(e.tabs[n].active=!0),e.tabs[n].active=void 0!==e.tabs[n].active&&e.tabs[n].active,e.tabs[n].fields=this.formValidation.createFields(e.tabs[n].fields),t++;return e}},template:'\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Return\n
    \n
    \n \n
    \n
    \n
    \n
    {{ tab.label }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n '}),w=i.default.component("ns-textarea",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n This field is required.\n This field must contain a valid email address.\n {{ error.message }}\n

    \n
    \n '}),_=i.default.component("ns-field",{data:function(){return{}},mounted:function(){},computed:{isInputField:function(){return["text","password","email","number","tel"].includes(this.field.type)},isDateField:function(){return["date"].includes(this.field.type)},isSelectField:function(){return["select"].includes(this.field.type)},isTextarea:function(){return["textarea"].includes(this.field.type)},isCheckbox:function(){return["checkbox"].includes(this.field.type)},isMultiselect:function(){return["multiselect"].includes(this.field.type)},isSelectAudio:function(){return["select-audio"].includes(this.field.type)},isSwitch:function(){return["switch"].includes(this.field.type)},isMedia:function(){return["media"].includes(this.field.type)},isCkEditor:function(){return["ckeditor"].includes(this.field.type)},isDateTimePicker:function(){return["datetimepicker"].includes(this.field.type)},isCustom:function(){return["custom"].includes(this.field.type)}},props:["field"],methods:{addOption:function(e){"select"===this.field.type&&this.field.options.forEach((function(e){return e.selected=!1})),e.selected=!0;var t=this.field.options.indexOf(e);this.field.options.splice(t,1),this.field.options.unshift(e),this.refreshMultiselect(),this.$emit("change",{action:"addOption",option:e})},refreshMultiselect:function(){this.field.value=this.field.options.filter((function(e){return e.selected})).map((function(e){return e.value}))},removeOption:function(e){e.selected=!1,this.refreshMultiselect(),this.$emit("change",{action:"removeOption",option:e})}},template:'\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n '}),k=i.default.component("ns-multiselect",{data:function(){return{showPanel:!1,search:""}},props:["field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=void 0!==t.selected&&t.selected,e.field.value&&e.field.value.includes(t.value)&&(t.selected=!0),t}))}},methods:{__:u.__,addOption:function(e){this.field.disabled||(this.$emit("addOption",e),this.$forceUpdate(),setTimeout((function(){}),100))},removeOption:function(e,t){var n=this;if(!this.field.disabled)return t.preventDefault(),t.stopPropagation(),this.$emit("removeOption",e),this.$forceUpdate(),setTimeout((function(){n.search=""}),100),!1}},mounted:function(){var e=this;this.field.value&&this.field.value.reverse().forEach((function(t){var n=e.field.options.filter((function(e){return e.value===t}));n.length>=0&&e.addOption(n[0])}))},template:'\n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ option.label }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n
    \n '}),j=i.default.component("ns-switch",{data:function(){return{}},mounted:function(){},computed:{_options:function(){var e=this;return this.field.options.map((function(t){return t.selected=t.value===e.field.value,t}))},hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":""},sizeClass:function(){return" w-1/".concat(this._options.length<=4?this._options.length:4)},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:u.__,setSelected:function(e){this.field.value=e.value,this._options.forEach((function(e){return e.selected=!1})),e.selected=!0,this.$forceUpdate(),this.$emit("change",e.value)}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n

    \n
    \n '}),C=i.default.component("ns-date",{data:function(){return{}},mounted:function(){},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),$=n(9576),S=i.default.component("ns-media-input",{template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n ',computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},data:function(){return{}},props:["placeholder","leading","type","field"],mounted:function(){},methods:{toggleMedia:function(){var e=this;new Promise((function(t,n){p.G.show($.Z,Object.assign({resolve:t,reject:n},e.field.data||{}))})).then((function(t){"use-selected"===t.event&&(e.field.data&&"url"!==e.field.data.type?e.field.data&&"model"!==e.field.data.type||(e.field.value=t.value[0]):e.field.value=t.value[0].sizes.original,e.$forceUpdate())}))}}}),E=i.default.component("ns-close-button",{template:'\n \n ',methods:{clicked:function(e){this.$emit("click",e)}}}),D=i.default.component("ns-icon-button",{template:'\n \n ',props:["className","buttonClass"],methods:{clicked:function(e){this.$emit("click",e)}}}),O=n(1272),P=n.n(O),T=n(5234),F=n.n(T),A=i.default.component("ns-ckeditor",{data:function(){return{editor:F()}},components:{ckeditor:P().component},mounted:function(){},methods:{__:u.__},computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"p-8":"p-2"}},props:["placeholder","leading","type","field"],template:'\n
    \n \n
    \n
    \n \n {{ leading }}\n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '}),q=i.default.component("ns-tabs",{data:function(){return{childrens:[]}},props:["active"],computed:{activeComponent:function(){var e=this.$children.filter((function(e){return e.active}));return e.length>0&&e[0]}},methods:{toggle:function(e){this.$emit("active",e.identifier),this.$emit("changeTab",e.identifier)}},mounted:function(){this.childrens=this.$children},template:'\n
    \n
    \n
    {{ tab.label }}
    \n
    \n \n
    \n '}),z=i.default.component("ns-tabs-item",{data:function(){return{}},mounted:function(){},props:["label","identifier","padding"],template:'\n
    \n \n
    \n '}),M=n(8655),V=n(3968),L=n(1726),I=n(7259);const Z=i.default.extend({methods:{__:u.__},data:function(){return{svg:""}},mounted:function(){this.svg=(0,L.createAvatar)(I,{seed:this.displayName})},computed:{avatarUrl:function(){return 0===this.url.length?"":this.url}},props:["url","display-name"]});const N=(0,n(1900).Z)(Z,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex justify-between items-center flex-shrink-0"},[n("span",{staticClass:"hidden md:inline-block text-gray-600 px-2"},[e._v(e._s(e.__("Howdy, {name}").replace("{name}",this.displayName)))]),e._v(" "),n("span",{staticClass:"md:hidden text-gray-600 px-2"},[e._v(e._s(e.displayName))]),e._v(" "),n("div",{staticClass:"px-2"},[n("div",{staticClass:"w-8 h-8 overflow-hidden rounded-full bg-gray-600"},[""!==e.avatarUrl?n("img",{staticClass:"w-8 h-8 overflow-hidden rounded-full",attrs:{src:e.avatarUrl,alt:e.displayName,srcset:""}}):e._e(),e._v(" "),""===e.avatarUrl?n("div",{domProps:{innerHTML:e._s(e.svg)}}):e._e()])])])}),[],!1,null,null,null).exports;var R=n(6598).Z},8655:(e,t,n)=>{"use strict";n.d(t,{V:()=>l});var i=n(538),s=n(381),r=n.n(s),a=n(7389),l=i.default.component("ns-date-time-picker",{template:'\n
    \n \n
    \n \n \n {{ currentDay.format( \'YYYY/MM/DD HH:mm\' ) }}\n N/A\n \n
    \n

    {{ field.description }}

    \n \n
    \n ',props:["field","date"],data:function(){return{visible:!1,hours:0,minutes:0,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},watch:{visible:function(){var e=this;this.visible&&setTimeout((function(){e.$refs.hours.addEventListener("focus",(function(){this.select()})),e.$refs.minutes.addEventListener("focus",(function(){this.select()}))}),100)}},mounted:function(){var e=this;document.addEventListener("mousedown",(function(t){return e.checkClickedItem(t)})),this.field?this.currentDay=[void 0,null,""].includes(this.field.value)?r()():r()(this.field.value):this.currentDay=[void 0,null,""].includes(this.date)?r()():r()(this.date),this.hours=this.currentDay.format("HH"),this.minutes=this.currentDay.format("mm"),this.build()},methods:{__:a.__,detectHoursChange:function(){parseFloat(this.hours)<0&&(this.hours=0),parseFloat(this.hours)>23&&(this.hours=23),this.updateDateTime()},detectMinuteChange:function(){parseFloat(this.minutes)<0&&(this.minutes=0),parseFloat(this.minutes)>59&&(this.minutes=59),this.updateDateTime()},updateDateTime:function(){this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes),this.selectDate(this.currentDay)},checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.currentDay.hours(this.hours),this.currentDay.minutes(this.minutes);var t=this.currentDay.format("YYYY/MM/DD HH:mm");this.field?(this.field.value=t,this.$emit("change",this.field)):this.$emit("change",this.currentDay)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var n=this.calendar.length-1;if(this.calendar[n].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(r().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}})},4451:(e,t,n)=>{"use strict";n.d(t,{R:()=>s});var i=n(7389),s=n(538).default.component("ns-select",{data:function(){return{}},props:["name","placeholder","field"],computed:{hasError:function(){return void 0!==this.field.errors&&this.field.errors.length>0},disabledClass:function(){return this.field.disabled?"bg-gray-200 cursor-not-allowed":"bg-transparent"},inputClass:function(){return this.disabledClass+" "+this.leadClass},leadClass:function(){return this.leading?"pl-8":"px-4"}},methods:{__:i.__},template:'\n
    \n \n
    \n \n
    \n

    \n

    \n {{ __( \'This field is required.\' ) }}\n {{ __( \'This field must contain a valid email address.\' ) }}\n {{ error.message }}\n

    \n
    \n '})},1356:(e,t,n)=>{"use strict";n.d(t,{W:()=>d,f:()=>c});var i=n(538),s=n(2077),r=n.n(s),a=n(6740),l=n.n(a),o=new Array(parseInt(ns.currency.ns_currency_precision)).fill("").map((function(e){return 0})).join(""),d=i.default.filter("currency",(function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"full";switch(ns.currency.ns_currency_prefered){case"iso":t=ns.currency.ns_currency_iso;break;case"symbol":t=ns.currency.ns_currency_symbol}if("full"===i){var s={decimal:ns.currency.ns_currency_decimal_separator,separator:ns.currency.ns_currency_thousand_separator,precision:parseInt(ns.currency.ns_currency_precision),symbol:""};n=l()(e,s).format()}else n=r()(e).format("0.0a");return"".concat("before"===ns.currency.ns_currency_position?t:"").concat(n).concat("after"===ns.currency.ns_currency_position?t:"")})),c=function(e){var t="0.".concat(o);return parseFloat(r()(e).format(t))}},9698:(e,t,n)=>{"use strict";n.d(t,{b:()=>i});var i=n(538).default.filter("truncate",(function(e,t){return e?(e=e.toString()).length>t?e.substring(0,t)+"...":e:""}))},7266:(e,t,n)=>{"use strict";function i(e,t){for(var n=0;ns});var s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,s;return t=e,(n=[{key:"validateFields",value:function(e){var t=this;return 0===e.map((function(e){return t.checkField(e),e.errors?0===e.errors.length:0})).filter((function(e){return!1===e})).length}},{key:"validateFieldsErrors",value:function(e){var t=this;return e.map((function(e){return t.checkField(e),e.errors})).flat()}},{key:"validateForm",value:function(e){e.main&&this.validateField(e.main);var t=[];for(var n in e.tabs){var i=[],s=this.validateFieldsErrors(e.tabs[n].fields);s.length>0&&i.push(s),e.tabs[n].errors=i.flat(),t.push(i.flat())}return t.flat().filter((function(e){return void 0!==e}))}},{key:"initializeTabs",value:function(e){var t=0;for(var n in e)0===t&&(e[n].active=!0),e[n].active=void 0!==e[n].active&&e[n].active,e[n].fields=this.createFields(e[n].fields),t++;return e}},{key:"validateField",value:function(e){return this.checkField(e)}},{key:"fieldsValid",value:function(e){return!(e.map((function(e){return e.errors&&e.errors.length>0})).filter((function(e){return e})).length>0)}},{key:"createFields",value:function(e){return e.map((function(e){return e.type=e.type||"text",e.errors=e.errors||[],e.disabled=e.disabled||!1,"custom"===e.type&&(e.component=nsExtraComponents[e.name]),e}))}},{key:"createForm",value:function(e){if(e.main&&(e.main=this.createFields([e.main])[0]),e.tabs)for(var t in e.tabs)e.tabs[t].fields=this.createFields(e.tabs[t].fields),e.tabs[t].errors=[];return e}},{key:"enableFields",value:function(e){return e.map((function(e){return e.disabled=!1}))}},{key:"disableFields",value:function(e){return e.map((function(e){return e.disabled=!0}))}},{key:"disableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!0),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!0}))}},{key:"enableForm",value:function(e){for(var t in e.main&&(e.main.disabled=!1),e.tabs)e.tabs[t].fields.forEach((function(e){return e.disabled=!1}))}},{key:"getValue",value:function(e){var t={};return e.forEach((function(e){t[e.name]=e.value})),t}},{key:"checkField",value:function(e){var t=this;return void 0!==e.validation&&(e.errors=[],this.detectValidationRules(e.validation).forEach((function(n){t.fieldPassCheck(e,n)}))),e}},{key:"extractForm",value:function(e){var t={};if(e.main&&(t[e.main.name]=e.main.value),e.tabs)for(var n in e.tabs)void 0===t[n]&&(t[n]={}),t[n]=this.extractFields(e.tabs[n].fields);return t}},{key:"extractFields",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.forEach((function(e){["multiselect"].includes(e.type)?t[e.name]=e.options.filter((function(e){return e.selected})).map((function(e){return e.value})):t[e.name]=e.value})),t}},{key:"detectValidationRules",value:function(e){var t=function(e){var t;return["email","required"].includes(e)?{identifier:e}:(t=/(min)\:([0-9])+/g.exec(e))||(t=/(max)\:([0-9])+/g.exec(e))?{identifier:t[1],value:t[2]}:e};return Array.isArray(e)?e.filter((function(e){return"string"==typeof e})).map(t):e.split("|").map(t)}},{key:"triggerError",value:function(e,t){if(t.errors){var n=function(n){var i=n.split(".").filter((function(e){return!/^\d+$/.test(e)}));2===i.length&&e.tabs[i[0]].fields.forEach((function(e){e.name===i[1]&&t.errors[n].forEach((function(t){var n={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(n)}))})),n===e.main.name&&t.errors[n].forEach((function(t){e.main.errors.push({identifier:"invalid",invalid:!0,message:t,name:e.main.name})}))};for(var i in t.errors)n(i)}}},{key:"triggerFieldsErrors",value:function(e,t){if(t&&t.errors){var n=function(n){e.forEach((function(e){e.name===n&&t.errors[n].forEach((function(t){var n={identifier:"invalid",invalid:!0,message:t,name:e.name};e.errors.push(n)}))}))};for(var i in t.errors)n(i)}}},{key:"fieldPassCheck",value:function(e,t){if("required"===t.identifier){if(void 0===e.value||null===e.value||0===e.value.length)return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(n,i){n.identifier===t.identifier&&!0===n.invalid&&e.errors.splice(i,1)}))}if("email"===t.identifier){if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e.value))return e.errors.push({identifier:t.identifier,invalid:!0,name:e.name});e.errors.forEach((function(n,i){!0===n[t.identifier]&&e.errors.splice(i,1)}))}return e}}])&&i(t.prototype,n),s&&i(t,s),e}()},7389:(e,t,n)=>{"use strict";n.d(t,{__:()=>i,c:()=>s});var i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NexoPOS";return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e},s=function(e,t){return nsLanguage.getEntries(t)&&nsLanguage.getEntries(t)[e]||e}},8603:(e,t,n)=>{"use strict";function i(){var e=this;Object.keys(this).includes("$popup")&&this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close()),"press-esc"===t.event&&(e.$popupParams&&void 0!==e.$popupParams.reject&&e.$popupParams.reject(!1),e.$popup.close())}))}n.d(t,{Z:()=>i})},6386:(e,t,n)=>{"use strict";function i(e){void 0!==this.$popupParams.resolve&&this.$popupParams.reject&&(!1!==e?this.$popupParams.resolve(e):this.$popupParams.reject(e)),this.$popup.close()}n.d(t,{Z:()=>i})},2242:(e,t,n)=>{"use strict";n.d(t,{G:()=>a});var i=n(9248);function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};if(s(this,e),this.config={primarySelector:void 0,popupClass:"shadow-lg h-half w-1/2 bg-white"},this.container=document.createElement("div"),this.popupBody=document.createElement("div"),this.config=Object.assign(this.config,t),void 0===this.config.primarySelector&&document.querySelectorAll(".is-popup").length>0){var n=document.querySelectorAll(".is-popup").length;this.parentWrapper=document.querySelectorAll(".is-popup")[n-1]}else this.parentWrapper=document.querySelector("body").querySelectorAll("div")[0];this.event=new i.x}var t,n,a;return t=e,a=[{key:"show",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=new e(i);return s.open(t,n),s}}],(n=[{key:"open",value:function(e){var t,n,i,s=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=document.querySelector("body").querySelectorAll("div")[0];this.parentWrapper.style.filter="blur(4px)",a.style.filter="blur(6px)",this.container.setAttribute("class","absolute top-0 left-0 w-full h-full flex items-center justify-center is-popup"),this.container.addEventListener("click",(function(e){s.event.next({event:"click-overlay",value:!0}),e.stopPropagation()})),this.popupBody.addEventListener("click",(function(e){e.stopImmediatePropagation()})),this.container.style.background="rgb(51 51 51 / 20%)",this.container.id="popup-container-"+document.querySelectorAll(".is-popup").length,this.popupBody.setAttribute("class"," zoom-out-entrance"),this.popupBody.innerHTML='',this.container.appendChild(this.popupBody),document.body.appendChild(this.container);var l=Vue.extend(e);this.instance=new l({propsData:{popup:this}}),this.instance.template=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.template)||void 0,this.instance.render=e.render||void 0,this.instance.methods=(null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.methods)||(null==e?void 0:e.methods),this.instance.data=(null===(i=null==e?void 0:e.options)||void 0===i?void 0:i.data)||(null==e?void 0:e.data),this.instance.$popup=this,this.instance.$popupParams=r,this.instance.$mount("#".concat(this.container.id," .popup-body"))}},{key:"close",value:function(){var e=this;this.instance.$destroy(),this.event.unsubscribe(),this.parentWrapper.style.filter="blur(0px)";var t=document.querySelector("body").querySelectorAll("div")[0];document.querySelectorAll(".is-popup").length<=1&&(t.style.filter="blur(0px)"),this.popupBody.classList.remove("zoom-out-entrance"),this.popupBody.classList.add("zoom-in-exit"),this.container.classList.remove("is-popup"),setTimeout((function(){e.container.remove()}),300)}}])&&r(t.prototype,n),a&&r(t,a),e}()},9624:(e,t,n)=>{"use strict";n.d(t,{S:()=>r});var i=n(3260);function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return i.Observable.create((function(i){var r=n.__createSnack({message:e,label:t,type:s.type}),a=r.buttonNode,l=(r.textNode,r.snackWrapper,r.sampleSnack);a.addEventListener("click",(function(e){i.onNext(a),i.onCompleted(),l.remove()})),n.__startTimer(s.duration,l)}))}},{key:"error",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"error"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"error"}))}},{key:"success",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"success"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"success"}))}},{key:"info",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{duration:3e3,type:"info"};return this.show(e,t,Object.assign(Object.assign({},n),{type:"info"}))}},{key:"__startTimer",value:function(e,t){var n,i=function(){e>0&&!1!==e&&(n=setTimeout((function(){t.remove()}),e))};t.addEventListener("mouseenter",(function(){clearTimeout(n)})),t.addEventListener("mouseleave",(function(){i()})),i()}},{key:"__createSnack",value:function(e){var t=e.message,n=e.label,i=e.type,s=void 0===i?"info":i,r=document.getElementById("snack-wrapper")||document.createElement("div"),a=document.createElement("div"),l=document.createElement("p"),o=document.createElement("div"),d=document.createElement("button"),c="",u="";switch(s){case"info":c="text-white hover:bg-blue-400 bg-blue-500",u="bg-gray-900 text-white";break;case"error":c="text-red-700 hover:bg-white bg-white",u="bg-red-500 text-white";break;case"success":c="text-green-700 hover:bg-white bg-white",u="bg-green-500 text-white"}return l.textContent=t,n&&(d.textContent=n,d.setAttribute("class","px-3 py-2 shadow rounded-lg font-bold ".concat(c)),o.appendChild(d)),a.appendChild(l),a.appendChild(o),a.setAttribute("class","md:rounded-lg py-2 px-3 md:w-2/5 w-full z-10 md:my-2 shadow-lg flex justify-between items-center zoom-in-entrance anim-duration-300 ".concat(u)),r.appendChild(a),null===document.getElementById("snack-wrapper")&&(r.setAttribute("id","snack-wrapper"),r.setAttribute("class","absolute bottom-0 w-full flex justify-between items-center flex-col"),document.body.appendChild(r)),{snackWrapper:r,sampleSnack:a,buttonsWrapper:o,buttonNode:d,textNode:l}}}])&&s(t.prototype,n),r&&s(t,r),e}()},5767:(e,t,n)=>{"use strict";n.d(t,{c:()=>a});var i=n(538),s=n(8345),r=[{path:"/",component:n(4741).Z},{path:"/database",component:n(5718).Z},{path:"/configuration",component:n(5825).Z}];i.default.use(s.Z);var a=new s.Z({routes:r});new i.default({router:a}).$mount("#nexopos-setup")},6700:(e,t,n)=>{var i={"./af":2786,"./af.js":2786,"./ar":867,"./ar-dz":4130,"./ar-dz.js":4130,"./ar-kw":6135,"./ar-kw.js":6135,"./ar-ly":6440,"./ar-ly.js":6440,"./ar-ma":7702,"./ar-ma.js":7702,"./ar-sa":6040,"./ar-sa.js":6040,"./ar-tn":7100,"./ar-tn.js":7100,"./ar.js":867,"./az":1083,"./az.js":1083,"./be":9808,"./be.js":9808,"./bg":8338,"./bg.js":8338,"./bm":7438,"./bm.js":7438,"./bn":8905,"./bn-bd":6225,"./bn-bd.js":6225,"./bn.js":8905,"./bo":1560,"./bo.js":1560,"./br":1278,"./br.js":1278,"./bs":622,"./bs.js":622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":877,"./cv.js":877,"./cy":7373,"./cy.js":7373,"./da":4780,"./da.js":4780,"./de":9740,"./de-at":217,"./de-at.js":217,"./de-ch":894,"./de-ch.js":894,"./de.js":9740,"./dv":5300,"./dv.js":5300,"./el":837,"./el.js":837,"./en-au":8348,"./en-au.js":8348,"./en-ca":7925,"./en-ca.js":7925,"./en-gb":2243,"./en-gb.js":2243,"./en-ie":6436,"./en-ie.js":6436,"./en-il":7207,"./en-il.js":7207,"./en-in":4175,"./en-in.js":4175,"./en-nz":6319,"./en-nz.js":6319,"./en-sg":1662,"./en-sg.js":1662,"./eo":2915,"./eo.js":2915,"./es":7093,"./es-do":5251,"./es-do.js":5251,"./es-mx":6112,"./es-mx.js":6112,"./es-us":1146,"./es-us.js":1146,"./es.js":7093,"./et":5603,"./et.js":5603,"./eu":7763,"./eu.js":7763,"./fa":6959,"./fa.js":6959,"./fi":1897,"./fi.js":1897,"./fil":2549,"./fil.js":2549,"./fo":4694,"./fo.js":4694,"./fr":4470,"./fr-ca":3049,"./fr-ca.js":3049,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":4470,"./fy":5044,"./fy.js":5044,"./ga":9295,"./ga.js":9295,"./gd":2101,"./gd.js":2101,"./gl":8794,"./gl.js":8794,"./gom-deva":7884,"./gom-deva.js":7884,"./gom-latn":3168,"./gom-latn.js":3168,"./gu":5349,"./gu.js":5349,"./he":4206,"./he.js":4206,"./hi":94,"./hi.js":94,"./hr":316,"./hr.js":316,"./hu":2138,"./hu.js":2138,"./hy-am":1423,"./hy-am.js":1423,"./id":9218,"./id.js":9218,"./is":135,"./is.js":135,"./it":626,"./it-ch":150,"./it-ch.js":150,"./it.js":626,"./ja":9183,"./ja.js":9183,"./jv":4286,"./jv.js":4286,"./ka":2105,"./ka.js":2105,"./kk":7772,"./kk.js":7772,"./km":8758,"./km.js":8758,"./kn":9282,"./kn.js":9282,"./ko":3730,"./ko.js":3730,"./ku":1408,"./ku.js":1408,"./ky":3291,"./ky.js":3291,"./lb":6841,"./lb.js":6841,"./lo":5466,"./lo.js":5466,"./lt":7010,"./lt.js":7010,"./lv":7595,"./lv.js":7595,"./me":9861,"./me.js":9861,"./mi":5493,"./mi.js":5493,"./mk":5966,"./mk.js":5966,"./ml":7341,"./ml.js":7341,"./mn":5115,"./mn.js":5115,"./mr":370,"./mr.js":370,"./ms":9847,"./ms-my":1237,"./ms-my.js":1237,"./ms.js":9847,"./mt":2126,"./mt.js":2126,"./my":6165,"./my.js":6165,"./nb":4924,"./nb.js":4924,"./ne":6744,"./ne.js":6744,"./nl":3901,"./nl-be":9814,"./nl-be.js":9814,"./nl.js":3901,"./nn":3877,"./nn.js":3877,"./oc-lnc":2135,"./oc-lnc.js":2135,"./pa-in":5858,"./pa-in.js":5858,"./pl":4495,"./pl.js":4495,"./pt":9520,"./pt-br":7971,"./pt-br.js":7971,"./pt.js":9520,"./ro":6459,"./ro.js":6459,"./ru":238,"./ru.js":238,"./sd":950,"./sd.js":950,"./se":490,"./se.js":490,"./si":124,"./si.js":124,"./sk":4249,"./sk.js":4249,"./sl":4985,"./sl.js":4985,"./sq":1104,"./sq.js":1104,"./sr":9131,"./sr-cyrl":9915,"./sr-cyrl.js":9915,"./sr.js":9131,"./ss":5893,"./ss.js":5893,"./sv":8760,"./sv.js":8760,"./sw":1172,"./sw.js":1172,"./ta":7333,"./ta.js":7333,"./te":3110,"./te.js":3110,"./tet":2095,"./tet.js":2095,"./tg":7321,"./tg.js":7321,"./th":9041,"./th.js":9041,"./tk":9005,"./tk.js":9005,"./tl-ph":5768,"./tl-ph.js":5768,"./tlh":9444,"./tlh.js":9444,"./tr":2397,"./tr.js":2397,"./tzl":8254,"./tzl.js":8254,"./tzm":1106,"./tzm-latn":699,"./tzm-latn.js":699,"./tzm.js":1106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":7691,"./uk.js":7691,"./ur":3795,"./ur.js":3795,"./uz":6791,"./uz-latn":588,"./uz-latn.js":588,"./uz.js":6791,"./vi":5666,"./vi.js":5666,"./x-pseudo":4378,"./x-pseudo.js":4378,"./yo":5805,"./yo.js":5805,"./zh-cn":3839,"./zh-cn.js":3839,"./zh-hk":5726,"./zh-hk.js":5726,"./zh-mo":9807,"./zh-mo.js":9807,"./zh-tw":4152,"./zh-tw.js":4152};function s(e){var t=r(e);return n(t)}function r(e){if(!n.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=r,e.exports=s,s.id=6700},6598:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var i=n(381),s=n.n(i);const r={name:"ns-datepicker",props:["label","date"],data:function(){return{visible:!1,currentDay:null,daysOfWeek:new Array(7).fill("").map((function(e,t){return t})),calendar:[[]]}},mounted:function(){document.addEventListener("click",this.checkClickedItem),this.currentDay=[void 0,null].includes(this.date)?s()():s()(this.date),this.build()},methods:{__:n(7389).__,checkClickedItem:function(e){!this.$el.contains(e.srcElement)&&this.visible&&(this.visible=!1)},selectDate:function(e){this.currentDay=e,this.visible=!1,this.$emit("change",e)},subMonth:function(){this.currentDay.subtract(1,"month"),this.build()},addMonth:function(){this.currentDay.add(1,"month"),this.build()},resetCalendar:function(){this.calendar=[[]]},build:function(){this.resetCalendar();this.currentDay.clone().startOf("month");for(var e=this.currentDay.clone().startOf("month"),t=this.currentDay.clone().endOf("month");;){0===e.day()&&this.calendar[0].length>0&&this.calendar.push([]);var n=this.calendar.length-1;if(this.calendar[n].push({date:e.clone(),dayOfWeek:e.day(),isToday:e.isSame(s().now(),"day")}),e.isSame(t,"day"))break;e.add(1,"day")}}}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"picker"},[n("div",{staticClass:"rounded cursor-pointer bg-white shadow px-1 py-1 flex items-center text-gray-700",on:{click:function(t){e.visible=!e.visible}}},[n("i",{staticClass:"las la-clock text-2xl"}),e._v(" "),n("span",{staticClass:"mx-1 text-sm"},[n("span",[e._v(e._s(e.label||e.__("Date"))+" : ")]),e._v(" "),e.currentDay?n("span",[e._v(e._s(e.currentDay.format("YYYY/MM/DD")))]):e._e(),e._v(" "),null===e.currentDay?n("span",[e._v(e._s(e.__("N/A")))]):e._e()])]),e._v(" "),e.visible?n("div",{staticClass:"relative h-0 w-0 -mb-2"},[n("div",{staticClass:"w-72 mt-2 shadow rounded bg-white anim-duration-300 zoom-in-entrance flex flex-col"},[n("div",{staticClass:"flex-auto"},[n("div",{staticClass:"p-2 flex items-center"},[n("div",[n("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.subMonth()}}},[n("i",{staticClass:"las la-angle-left"})])]),e._v(" "),n("div",{staticClass:"flex flex-auto font-semibold text-gray-700 justify-center"},[e._v(e._s(e.currentDay.format("MMM"))+" "+e._s(e.currentDay.format("YYYY")))]),e._v(" "),n("div",[n("button",{staticClass:"w-8 h-8 bg-gray-400 rounded",on:{click:function(t){return e.addMonth()}}},[n("i",{staticClass:"las la-angle-right"})])])]),e._v(" "),n("div",{staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},[n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sun")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Mon")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Tue")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Wed")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Thr")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Fri")))]),e._v(" "),n("div",{staticClass:"border border-gray-200 h-8 flex justify-center items-center text-sm"},[e._v(e._s(e.__("Sat")))])]),e._v(" "),e._l(e.calendar,(function(t,i){return n("div",{key:i,staticClass:"grid grid-flow-row grid-cols-7 grid-rows-1 gap-0 text-gray-700"},e._l(e.daysOfWeek,(function(i,s){return n("div",{key:s,staticClass:"h-8 flex justify-center items-center text-sm"},[e._l(t,(function(t,s){return[t.dayOfWeek===i?n("div",{key:s,staticClass:"h-full w-full flex items-center justify-center cursor-pointer",class:t.date.format("DD")===e.currentDay.format("DD")?"bg-blue-400 text-white border border-blue-500":"hover:bg-gray-100 border border-gray-200",on:{click:function(n){return e.selectDate(t.date)}}},[e._v("\n "+e._s(t.date.format("DD"))+"\n ")]):e._e()]}))],2)})),0)}))],2),e._v(" "),n("div")])]):e._e()])}),[],!1,null,null,null).exports},3968:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});function i(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n100?100:this.backValue))),"0"===this.backValue&&(this.backValue=""),this.$emit("changed",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)):this.$emit("next",this.floating&&this.backValue.length>0?parseFloat(this.backValue/this.number):this.backValue)}}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"grid grid-flow-row grid-cols-3 gap-2 grid-rows-3",staticStyle:{padding:"1px"},attrs:{id:"numpad"}},[e._l(e.keys,(function(t,i){return n("div",{key:i,staticClass:"hover:bg-gray-400 hover:text-gray-800 bg-gray-300 text-2xl text-gray-700 border h-16 flex items-center justify-center cursor-pointer",staticStyle:{margin:"-1px"},on:{click:function(n){return e.inputValue(t)}}},[void 0!==t.value?n("span",[e._v(e._s(t.value))]):e._e(),e._v(" "),t.icon?n("i",{staticClass:"las",class:t.icon}):e._e()])})),e._v(" "),e._t("numpad-footer")],2)}),[],!1,null,null,null).exports},9576:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var i=n(162),s=n(8603),r=n(7389);const a={name:"ns-media",props:["popup"],components:{VueUpload:n(2948)},data:function(){return{pages:[{label:(0,r.__)("Upload"),name:"upload",selected:!1},{label:(0,r.__)("Gallery"),name:"gallery",selected:!0}],resources:[],response:{data:[],current_page:0,from:0,to:0,next_page_url:"",prev_page_url:"",path:"",per_page:0,total:0,last_page:0,first_page:0},queryPage:1,bulkSelect:!1,files:[]}},mounted:function(){this.popupCloser();var e=this.pages.filter((function(e){return"gallery"===e.name}))[0];this.select(e)},watch:{files:function(){this.files.filter((function(e){return"0.00"===e.progress})).length>0&&(this.$refs.upload.active=!0)}},computed:{postMedia:function(){return i.kq.applyFilters("http-client-url","/api/nexopos/v4/medias")},currentPage:function(){return this.pages.filter((function(e){return e.selected}))[0]},hasOneSelected:function(){return this.response.data.filter((function(e){return e.selected})).length>0},selectedResource:function(){return this.response.data.filter((function(e){return e.selected}))[0]},csrf:function(){return ns.authentication.csrf},isPopup:function(){return void 0!==this.$popup},user_id:function(){return this.isPopup&&this.$popupParams.user_id||0}},methods:{popupCloser:s.Z,__:r.__,cancelBulkSelect:function(){this.bulkSelect=!1,this.response.data.forEach((function(e){return e.selected=!1}))},deleteSelected:function(){var e=this;if(confirm("Delete selected resources ?"))return i.ih.post("/api/nexopos/v4/medias/bulk-delete",{ids:this.response.data.filter((function(e){return e.selected})).map((function(e){return e.id}))}).subscribe((function(t){i.kX.success(t.message).subscribe(),e.loadGallery()}),(function(e){i.kX.error(e.message).subscribe()}))},select:function(e){this.pages.forEach((function(e){return e.selected=!1})),e.selected=!0,"gallery"===e.name&&this.loadGallery()},loadGallery:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;t=null===t?this.queryPage:t,this.queryPage=t,i.ih.get("/api/nexopos/v4/medias?page=".concat(t,"&user_id=").concat(this.user_id)).subscribe((function(t){t.data.forEach((function(e){return e.selected=!1})),e.response=t}))},useSelectedEntries:function(){this.$popupParams.resolve({event:"use-selected",value:this.response.data.filter((function(e){return e.selected}))}),this.$popup.close()},selectResource:function(e){var t=this;this.bulkSelect||this.response.data.forEach((function(n,i){i!==t.response.data.indexOf(e)&&(n.selected=!1)})),e.selected=!e.selected}}};const l=(0,n(1900).Z)(a,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex bg-white shadow-xl overflow-hidden",class:e.isPopup?"w-6/7-screen h-6/7-screen":"w-full h-full"},[n("div",{staticClass:"sidebar w-48 bg-gray-200 h-full flex-shrink-0"},[n("h3",{staticClass:"text-xl font-bold text-gray-800 my-4 text-center"},[e._v(e._s(e.__("Medias Manager")))]),e._v(" "),n("ul",e._l(e.pages,(function(t,i){return n("li",{key:i,staticClass:"hover:bg-white py-2 px-3 text-gray-700 border-l-8 cursor-pointer",class:t.selected?"bg-white border-blue-400":"border-transparent",on:{click:function(n){return e.select(t)}}},[e._v(e._s(t.label))])})),0)]),e._v(" "),"upload"===e.currentPage.name?n("div",{staticClass:"content w-full overflow-hidden flex"},[n("vue-upload",{ref:"upload",staticClass:" flex-auto flex bg-white shadow",attrs:{drop:!0,multiple:!0,headers:{"X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":e.csrf},accept:"image/*","post-action":e.postMedia},model:{value:e.files,callback:function(t){e.files=t},expression:"files"}},[n("div",{staticClass:"border-dashed border-2 flex flex-auto m-2 p-2 flex-col border-blue-400 items-center justify-center"},[n("h3",{staticClass:"text-3xl font-bold text-gray-600 mb-4"},[e._v(e._s(e.__("Click Here Or Drop Your File To Upload")))]),e._v(" "),n("div",{staticClass:"rounded w-full md:w-2/3 text-gray-700 bg-gray-500 h-56 overflow-y-auto p-2"},[n("ul",e._l(e.files,(function(t,i){return n("li",{key:i,staticClass:"p-2 mb-2 shadow bg-white flex items-center justify-between rounded"},[n("span",[e._v(e._s(t.name))]),e._v(" "),n("span",{staticClass:"rounded bg-blue-400 flex items-center justify-center text-xs p-2"},[e._v(e._s(t.progress)+"%")])])})),0)])])])],1):e._e(),e._v(" "),"gallery"===e.currentPage.name?n("div",{staticClass:"content flex-col w-full overflow-hidden flex"},[e.popup?n("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[n("div"),e._v(" "),n("div",[n("ns-close-button",{on:{click:function(t){return e.popup.close()}}})],1)]):e._e(),e._v(" "),n("div",{staticClass:"flex flex-auto overflow-hidden"},[n("div",{staticClass:"bg-white shadow content flex flex-auto flex-col overflow-y-auto",attrs:{id:"grid"}},[n("div",{staticClass:"flex flex-auto"},[n("div",{staticClass:"p-2 overflow-x-auto"},[n("div",{staticClass:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-6"},e._l(e.response.data,(function(t,i){return n("div",{key:i},[n("div",{staticClass:"p-2"},[n("div",{staticClass:"rounded-lg w-32 h-32 bg-gray-500 m-2 overflow-hidden flex items-center justify-center",class:t.selected?"ring-4 ring-blue-500 ring-opacity-50":"",on:{click:function(n){return e.selectResource(t)}}},[n("img",{staticClass:"object-cover h-full",attrs:{src:t.sizes.thumb,alt:t.name}})])])])})),0)]),e._v(" "),0===e.response.data.length?n("div",{staticClass:"flex flex-auto items-center justify-center"},[n("h3",{staticClass:"text-2xl text-gray-600 font-bold"},[e._v(e._s(e.__("Nothing has already been uploaded")))])]):e._e()])]),e._v(" "),!e.bulkSelect&&e.hasOneSelected?n("div",{staticClass:"w-64 flex-shrink-0 bg-gray-200",attrs:{id:"preview"}},[n("div",{staticClass:"h-64 bg-gray-600 flex items-center justify-center"},[n("img",{attrs:{src:e.selectedResource.sizes.thumb,alt:e.selectedResource.name}})]),e._v(" "),n("div",{staticClass:"p-4 text-gray-700 text-sm",attrs:{id:"details"}},[n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("File Name"))+": ")]),n("span",[e._v(e._s(e.selectedResource.name))])]),e._v(" "),n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("Uploaded At"))+":")]),n("span",[e._v(e._s(e.selectedResource.created_at))])]),e._v(" "),n("p",{staticClass:"flex flex-col mb-2"},[n("strong",{staticClass:"font-bold block"},[e._v(e._s(e.__("By"))+" :")]),n("span",[e._v(e._s(e.selectedResource.user.username))])])])]):e._e()]),e._v(" "),n("div",{staticClass:"p-2 flex flex-shrink-0 justify-between bg-gray-200"},[n("div",{staticClass:"flex -mx-2 flex-shrink-0"},[n("div",{staticClass:"px-2 flex-shrink-0 flex"},[n("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[e.bulkSelect?n("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){return e.cancelBulkSelect()}}},[n("i",{staticClass:"las la-times"})]):e._e(),e._v(" "),e.hasOneSelected&&!e.bulkSelect?n("button",{staticClass:"bg-white hover:bg-blue-400 hover:text-white py-2 px-3",on:{click:function(t){e.bulkSelect=!0}}},[n("i",{staticClass:"las la-check-circle"})]):e._e(),e._v(" "),e.hasOneSelected?n("button",{staticClass:"bg-red-400 text-white hover:bg-red-500 hover:text-white py-2 px-3",on:{click:function(t){return e.deleteSelected()}}},[n("i",{staticClass:"las la-trash"})]):e._e()])])]),e._v(" "),n("div",{staticClass:"flex-shrink-0 -mx-2 flex"},[n("div",{staticClass:"px-2"},[n("div",{staticClass:"rounded shadow overflow-hidden border-blue-400 flex text-sm text-gray-700"},[n("button",{staticClass:"p-2",class:1===e.response.current_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:1===e.response.current_page},on:{click:function(t){return e.loadGallery(e.response.current_page-1)}}},[e._v(e._s(e.__("Previous")))]),e._v(" "),n("hr",{staticClass:"border-r border-gray-700"}),e._v(" "),n("button",{staticClass:"p-2",class:e.response.current_page===e.response.last_page?"bg-gray-100 text-gray-600 cursor-not-allowed":"bg-white hover:bg-blue-400 hover:text-white",attrs:{disabled:e.response.current_page===e.response.last_page},on:{click:function(t){return e.loadGallery(e.response.current_page+1)}}},[e._v(e._s(e.__("Next")))])])]),e._v(" "),e.popup&&e.hasOneSelected?n("div",{staticClass:"px-2"},[n("button",{staticClass:"rounded shadow p-2 bg-blue-400 text-white text-sm",on:{click:function(t){return e.useSelectedEntries()}}},[e._v(e._s(e.__("Use Selected")))])]):e._e()])])]):e._e()])}),[],!1,null,null,null).exports},5718:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var i=n(7266),s=n(5767);const r={data:function(){return{form:new i.Z,fields:[]}},methods:{validate:function(){var e=this;this.form.validateFields(this.fields)&&(this.form.disableFields(this.fields),this.checkDatabase(this.form.getValue(this.fields)).subscribe((function(t){e.form.enableFields(e.fields),s.c.push("/configuration"),nsSnackBar.success(t.message,"OKAY",{duration:5e3}).subscribe()}),(function(t){e.form.enableFields(e.fields),nsSnackBar.error(t.message,"OKAY").subscribe()})))},checkDatabase:function(e){return nsHttpClient.post("/api/nexopos/v4/setup/database",e)}},mounted:function(){this.fields=this.form.createFields([{label:"Hostname",description:"Provide the database hostname",name:"hostname",value:"localhost",validation:"required"},{label:"Username",description:"Username required to connect to the database.",name:"username",value:"root",validation:"required"},{label:"Password",description:"The username password required to connect.",name:"password",value:""},{label:"Database Name",description:"Provide the database name.",name:"database_name",value:"nexopos_v4",validation:"required"},{label:"Database Prefix",description:"Provide the database prefix.",name:"database_prefix",value:"ns_",validation:"required"}])}};const a=(0,n(1900).Z)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow my-4"},[n("div",{staticClass:"welcome-box border-b border-gray-300 p-3 text-gray-700"},e._l(e.fields,(function(t,i){return n("ns-input",{key:i,attrs:{field:t},on:{change:function(n){return e.form.validateField(t)}}},[n("span",[e._v(e._s(t.label))]),e._v(" "),n("template",{slot:"description"},[e._v(e._s(t.description))])],2)})),1),e._v(" "),n("div",{staticClass:"bg-gray-200 p-3 flex justify-end"},[n("ns-button",{attrs:{type:"info"},on:{click:function(t){return e.validate()}}},[e._v("Save Database")])],1)])}),[],!1,null,null,null).exports},5825:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var i=n(7266),s=n(162),r=n(5767);const a={data:function(){return{form:new i.Z,fields:[],processing:!1,steps:[],failure:0,maxFailure:2}},methods:{validate:function(){},verifyDBConnectivity:function(){},saveConfiguration:function(e){var t=this;return this.form.disableFields(this.fields),this.processing=!0,s.ih.post("/api/nexopos/v4/setup/configuration",this.form.getValue(this.fields)).subscribe((function(e){document.location="/sign-in"}),(function(e){t.processing=!1,t.form.enableFields(t.fields),t.form.triggerFieldsErrors(t.fields,e.data),s.kX.error(e.message,"OK").subscribe()}))},checkDatabase:function(){var e=this;s.ih.get("/api/nexopos/v4/setup/database").subscribe((function(t){e.fields=e.form.createFields([{label:"Application",description:"That is the application name.",name:"ns_store_name",validation:"required"},{label:"Username",description:"Provide the administrator username.",name:"admin_username",validation:"required"},{label:"Email",description:"Provide the administrator email.",name:"admin_email",validation:"required"},{label:"Password",type:"password",description:"What should be the password required for authentication.",name:"password",validation:"required"},{label:"Confirm Password",type:"password",description:"Should be the same as the password above.",name:"confirm_password",validation:"required"}])}),(function(e){console.log(e),r.c.push("/database"),s.kX.error("You need to define database settings","OKAY",{duration:3e3}).subscribe()}))}},mounted:function(){this.checkDatabase()}};const l=(0,n(1900).Z)(a,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[0===e.fields.length?n("ns-spinner",{attrs:{size:"12",border:"4",animation:"fast"}}):e._e(),e._v(" "),e.fields.length>0?n("div",{staticClass:"bg-white rounded shadow my-2"},[n("div",{staticClass:"welcome-box border-b border-gray-300 p-3 text-gray-700"},e._l(e.fields,(function(e,t){return n("ns-field",{key:t,attrs:{field:e}})})),1),e._v(" "),n("div",{staticClass:"bg-gray-200 p-3 flex justify-between items-center"},[n("div",[e.processing?n("ns-spinner",{attrs:{size:"8",border:"4"}}):e._e()],1),e._v(" "),n("ns-button",{attrs:{disabled:e.processing,type:"info"},on:{click:function(t){return e.saveConfiguration()}}},[e._v("Create Installation")])],1)]):e._e()],1)}),[],!1,null,null,null).exports},4741:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});const i={components:{nsLink:n(4364).nsLink}};const s=(0,n(1900).Z)(i,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-white rounded shadow my-2 overflow-hidden"},[e._m(0),e._v(" "),n("div",{staticClass:"bg-gray-200 p-3 flex justify-end"},[n("ns-link",{attrs:{to:"/database",type:"info"}},[n("i",{staticClass:"las la-database"}),e._v(" Database Configuration")])],1)])}),[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"welcome-box border-b border-gray-300 p-3 text-gray-700"},[n("p",{staticClass:"text-gray-600 text-sm"},[e._v("Thank you for having choosed NexoPOS 4 for managing your store. This is the installation wizard that will guide you through the installation.")]),e._v(" "),n("div",{staticClass:"py-2"},[n("h2",{staticClass:"text-xl font-body text-gray-700"},[e._v("Remaining Steps")]),e._v(" "),n("ul",{staticClass:"text-gray-600 text-sm"},[n("li",[n("i",{staticClass:"las la-arrow-right"}),e._v(" Database Configuration")]),e._v(" "),n("li",[n("i",{staticClass:"las la-arrow-right"}),e._v(" Application Configuration")])])])])}],!1,null,null,null).exports},419:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});const i={data:function(){return{title:"",message:""}},computed:{size:function(){return this.$popupParams.size||"h-full w-full"}},mounted:function(){var e=this;this.title=this.$popupParams.title,this.message=this.$popupParams.message,this.$popup.event.subscribe((function(t){"click-overlay"===t.event&&(e.$popupParams.onAction(!1),e.$popup.close())}))},methods:{__:n(7389).__,emitAction:function(e){this.$popupParams.onAction(e),this.$popup.close()}}};const s=(0,n(1900).Z)(i,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex flex-col bg-white shadow-lg w-5/7-screen md:w-4/7-screen lg:w-2/7-screen",class:e.size,attrs:{id:"popup"}},[n("div",{staticClass:"flex items-center justify-center flex-col flex-auto p-4"},[n("h2",{staticClass:"text-xl md:text-3xl font-body text-gray-700 text-center"},[e._v(e._s(e.title))]),e._v(" "),n("p",{staticClass:"py-4 text-sm md:text-base text-gray-600 text-center"},[e._v(e._s(e.message))])]),e._v(" "),n("div",{staticClass:"flex border-t border-gray-200 text-gray-700"},[n("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!0)}}},[e._v(e._s(e.__("Yes")))]),e._v(" "),n("hr",{staticClass:"border-r border-gray-200"}),e._v(" "),n("button",{staticClass:"hover:bg-gray-100 flex-auto w-1/2 h-16 flex items-center justify-center uppercase",on:{click:function(t){return e.emitAction(!1)}}},[e._v(e._s(e.__("No")))])])])}),[],!1,null,null,null).exports}},e=>{e.O(0,[898],(()=>{return t=5767,e(e.s=t);var t}));e.O()}]); //# sourceMappingURL=setup.min.js.map \ No newline at end of file diff --git a/public/js/vendor.js b/public/js/vendor.js index a40653267..e30f94b80 100755 --- a/public/js/vendor.js +++ b/public/js/vendor.js @@ -1,3 +1,3 @@ /*! For license information please see vendor.js.LICENSE.txt */ -(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[898],{7757:(t,e,n)=>{t.exports=n(3076)},5234:(t,e)=>{!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 of %1",Aquamarine:"Aquamarine",Black:"Black","Block quote":"Block quote",Blue:"Blue",Bold:"Bold","Break text":"Break text","Bulleted List":"Bulleted List",Cancel:"Cancel","Cannot upload file:":"Cannot upload file:","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Column:"Column","Could not insert image at the current position.":"Could not insert image at the current position.","Could not obtain resized image URL.":"Could not obtain resized image URL.","Decrease indent":"Decrease indent","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey",Downloadable:"Downloadable","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Full size image":"Full size image",Green:"Green",Grey:"Grey","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6","Image toolbar":"Image toolbar","image widget":"image widget","In line":"In line","Increase indent":"Increase indent","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image or file":"Insert image or file","Insert media":"Insert media","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table","Inserting image failed":"Inserting image failed",Italic:"Italic","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link URL":"Link URL","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","Numbered List":"Numbered List","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab",Orange:"Orange",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.",Previous:"Previous",Purple:"Purple",Red:"Red",Redo:"Redo","Rich Text Editor":"Rich Text Editor","Rich Text Editor, %0":"Rich Text Editor, %0","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Selecting resized image failed":"Selecting resized image failed","Show more items":"Show more items","Side image":"Side image","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically","Table toolbar":"Table toolbar","Text alternative":"Text alternative","The URL must not be empty.":"The URL must not be empty.","This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on",Turquoise:"Turquoise",Undo:"Undo",Unlink:"Unlink","Upload failed":"Upload failed","Upload in progress":"Upload in progress",White:"White","Widget toolbar":"Widget toolbar","Wrap text":"Wrap text",Yellow:"Yellow"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),window,t.exports=function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=108)}([function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return r}));class i extends Error{constructor(t,e,n){super(`${t}${n?" "+JSON.stringify(n):""}${o(t)}`),this.name="CKEditorError",this.context=e,this.data=n}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const n=new i(t.message,e);throw n.stack=t.stack,n}}function r(t,e){console.warn(...s(t,e))}function o(t){return"\nRead more: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html#error-"+t}function s(t,e){const n=o(t);return e?[t,e,n]:[t,n]}},function(t,e,n){"use strict";var i,r=function(){return void 0===i&&(i=Boolean(window&&document&&document.all&&!window.atob)),i},o=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n.ck-button .ck-tooltip{display:none}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-top-right-radius:unset;border-bottom-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-top-left-radius:unset;border-bottom-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-top-left-radius:unset;border-bottom-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-top-right-radius:unset;border-bottom-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{content:"";position:absolute;width:1px;height:100%;background-color:var(--ck-color-split-button-hover-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}'},function(t,e,n){var i=n(1),r=n(30);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on .ck-tooltip{display:none}.ck.ck-dropdown .ck-dropdown__panel{-webkit-backface-visibility:hidden;display:none;z-index:var(--ck-z-modal);max-width:var(--ck-dropdown-max-width);position:absolute}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{top:100%;bottom:auto}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-modal) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{right:var(--ck-spacing-standard);margin-left:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:7em;overflow:hidden;text-overflow:ellipsis}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{box-shadow:var(--ck-drop-shadow),0 0;background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}"},function(t,e,n){var i=n(1),r=n(32);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-toolbar{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-flow:row nowrap;align-items:center}.ck.ck-toolbar>.ck-toolbar__items{display:flex;flex-flow:row wrap;align-items:center;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);padding:0 var(--ck-spacing-small);border:1px solid var(--ck-color-toolbar-border)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;width:1px;min-width:1px;background:var(--ck-color-toolbar-border);margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{width:100%;margin:0;border-radius:0;border:0}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar[dir=rtl].ck-toolbar_compact>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.ck.ck-toolbar[dir=rtl].ck-toolbar_compact>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl].ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child){margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar[dir=ltr].ck-toolbar_compact>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ck.ck-toolbar[dir=ltr].ck-toolbar_compact>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr].ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child){margin-right:var(--ck-spacing-small)}"},function(t,e,n){var i=n(1),r=n(34);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-list{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{list-style-type:none;background:var(--ck-color-list-background)}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item .ck-button{min-height:unset;width:100%;text-align:left;border-radius:0;padding:calc(var(--ck-line-height-base)*0.2*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*0.4*var(--ck-font-size-base))}.ck.ck-list__item .ck-button .ck-button__label{line-height:calc(var(--ck-line-height-base)*1.2*var(--ck-font-size-base))}.ck.ck-list__item .ck-button:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item .ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item .ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item .ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck.ck-list__separator{height:1px;width:100%;background:var(--ck-color-base-border)}"},function(t,e,n){var i=n(1),r=n(36);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{width:max-content;max-width:var(--ck-toolbar-dropdown-max-width)}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}"},function(t,e,n){var i=n(1),r=n(38);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-dropdown .ck-dropdown__panel .ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list,.ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}"},function(t,e,n){var i=n(1),r=n(40);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0}.ck.ck-editor__editable_inline{overflow:auto;padding:0 var(--ck-spacing-standard);border:1px solid transparent}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-base-foreground)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-base-foreground)}"},function(t,e,n){var i=n(1),r=n(42);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}"},function(t,e,n){var i=n(1),r=n(44);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-form__header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between}:root{--ck-form-header-height:38px}.ck.ck-form__header{padding:var(--ck-spacing-small) var(--ck-spacing-large);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-form__header .ck-form__header__label{font-weight:700}"},function(t,e,n){var i=n(1),r=n(46);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-input-text-width:18em}.ck.ck-input-text{border-radius:0}.ck-rounded-corners .ck.ck-input-text,.ck.ck-input-text.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-text{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);min-width:var(--ck-input-text-width);min-height:var(--ck-ui-component-min-height);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck.ck-input-text:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-input-text[readonly]{border:1px solid var(--ck-color-input-disabled-border);background:var(--ck-color-input-disabled-background);color:var(--ck-color-input-disabled-text)}.ck.ck-input-text[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input-text.ck-error{border-color:var(--ck-color-input-error-border);animation:ck-text-input-shake .3s ease both}.ck.ck-input-text.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-text-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}"},function(t,e,n){var i=n(1),r=n(48);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{pointer-events:none;transform-origin:0 0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);background:var(--ck-color-labeled-field-label-background);padding:0 calc(var(--ck-font-size-tiny)*0.5);line-height:normal;font-weight:400;text-overflow:ellipsis;overflow:hidden;max-width:100%;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-spacing-medium),calc(var(--ck-font-size-base)*0.6)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-spacing-medium)*-1),calc(var(--ck-font-size-base)*0.6)) scale(1)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));background:transparent;padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}"},function(t,e,n){var i=n(1),r=n(50);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{box-shadow:var(--ck-drop-shadow),0 0;min-height:15px;background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{width:0;height:0;border-style:solid}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-left-width:var(--ck-balloon-arrow-half-width);border-bottom-width:var(--ck-balloon-arrow-height);border-right-width:var(--ck-balloon-arrow-half-width);border-top-width:0}.ck.ck-balloon-panel[class*=arrow_n]:before{border-bottom-color:var(--ck-color-panel-border)}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-left-color:transparent;border-right-color:transparent;border-top-color:transparent}.ck.ck-balloon-panel[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background);margin-top:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-left-width:var(--ck-balloon-arrow-half-width);border-bottom-width:0;border-right-width:var(--ck-balloon-arrow-half-width);border-top-width:var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-top-color:var(--ck-color-panel-border);filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent}.ck.ck-balloon-panel[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background);margin-bottom:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{right:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{right:25%;margin-right:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{right:25%;margin-right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}'},function(t,e,n){var i=n(1),r=n(52);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-balloon-rotator__navigation{display:flex;align-items:center;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-right:var(--ck-spacing-standard);margin-left:var(--ck-spacing-small)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}"},function(t,e,n){var i=n(1),r=n(54);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-modal) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{box-shadow:var(--ck-drop-shadow),0 0;min-height:15px;background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);width:100%;height:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}"},function(t,e,n){var i=n(1),r=n(56);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{z-index:var(--ck-z-modal);position:fixed;top:0}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{top:auto;position:absolute}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{box-shadow:var(--ck-drop-shadow),0 0;border-width:0 1px 1px;border-top-left-radius:0;border-top-right-radius:0}"},function(t,e,n){var i=n(1),r=n(58);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}"},function(t,e,n){var i=n(1),r=n(60);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-placeholder,.ck .ck-placeholder{position:relative}.ck.ck-placeholder:before,.ck .ck-placeholder:before{position:absolute;left:0;right:0;content:attr(data-placeholder);pointer-events:none}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-placeholder:before,.ck .ck-placeholder:before{cursor:text;color:var(--ck-color-engine-placeholder-text)}"},function(t,e,n){var i=n(1),r=n(62);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-modal)}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-bottom-width:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar{border-bottom-width:1px;border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}"},function(t,e,n){var i=n(1),r=n(64);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck .ck-widget .ck-widget__type-around__button{display:block;position:absolute;overflow:hidden;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{position:absolute;top:50%;left:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{top:calc(var(--ck-widget-outline-thickness)*-0.5);left:min(10%,30px);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-0.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;position:absolute;top:1px;left:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;position:absolute;left:0;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{top:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{width:var(--ck-widget-type-around-button-size);height:var(--ck-widget-type-around-button-size);background:var(--ck-color-widget-type-around-button);border-radius:100px;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);opacity:0;pointer-events:none}.ck .ck-widget .ck-widget__type-around__button svg{width:10px;height:8px;transform:translate(-50%,-50%);transition:transform .5s ease;margin-top:1px}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{width:calc(var(--ck-widget-type-around-button-size) - 2px);height:calc(var(--ck-widget-type-around-button-size) - 2px);border-radius:100px;background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3))}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{pointer-events:none;height:1px;animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;outline:1px solid hsla(0,0%,100%,.5);background:var(--ck-color-base-text)}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}'},function(t,e,n){var i=n(1),r=n(66);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);color:var(--ck-color-resizer-tooltip-text);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);font-size:var(--ck-font-size-tiny);display:block;padding:0 var(--ck-spacing-small);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{top:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{top:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{top:calc(var(--ck-resizer-tooltip-height)*-1);left:50%;transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-width:var(--ck-widget-outline-thickness);outline-style:solid;outline-color:transparent;transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;background-color:var(--ck-color-widget-editable-focus-background)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{padding:4px;box-sizing:border-box;background-color:transparent;opacity:0;transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;transform:translateY(-100%);left:calc(0px - var(--ck-widget-outline-thickness));top:0}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{width:var(--ck-widget-handler-icon-size);height:var(--ck-widget-handler-icon-size);color:var(--ck-color-widget-drag-handler-icon-color)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{opacity:1;background-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:1;background-color:var(--ck-color-focus-border)}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}"},function(t,e,n){var i=n(1),r=n(68);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;position:relative;pointer-events:none}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-0.5);top:calc(var(--ck-clipboard-drop-target-dot-height)*-0.5);border:1px solid var(--ck-clipboard-drop-target-color);background:var(--ck-clipboard-drop-target-color);margin-left:-1px}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{content:"";width:0;height:0;display:block;position:absolute;left:50%;top:calc(var(--ck-clipboard-drop-target-dot-height)*-0.5);transform:translateX(-50%);border-left:calc(var(--ck-clipboard-drop-target-dot-width)*0.5) solid transparent;border-bottom:0 solid transparent;border-right:calc(var(--ck-clipboard-drop-target-dot-width)*0.5) solid transparent;border-top:calc(var(--ck-clipboard-drop-target-dot-height)) solid var(--ck-clipboard-drop-target-color)}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}'},function(t,e,n){var i=n(1),r=n(70);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck-content blockquote{overflow:hidden;padding-right:1.5em;padding-left:1.5em;margin-left:0;margin-right:0;font-style:italic;border-left:5px solid #ccc}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}"},function(t,e){t.exports=".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}"},function(t,e,n){var i=n(1),r=n(73);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;position:absolute;pointer-events:none;left:0;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{position:absolute;pointer-events:all}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{width:var(--ck-resizer-size);height:var(--ck-resizer-size);background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{top:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{top:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}"},function(t,e,n){var i=n(1),r=n(75);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}"},function(t,e){t.exports='.ck-vertical-form .ck-button:after{content:"";width:0;position:absolute;right:-1px;top:var(--ck-spacing-small);bottom:var(--ck-spacing-small);z-index:1}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{content:"";width:0;position:absolute;right:-1px;top:var(--ck-spacing-small);bottom:var(--ck-spacing-small);z-index:1}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-text-width)*0.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){padding:var(--ck-spacing-standard);margin-top:var(--ck-spacing-large);border-radius:0;border:0;border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after,[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}'},function(t,e){t.exports=".ck-content .image{display:table;clear:both;text-align:center;margin:.9em auto;min-width:50px}.ck-content .image img{display:block;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{display:inline-flex;max-width:100%;align-items:flex-start}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{padding-left:inherit;padding-right:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ck.ck-editor__editable .image-inline.ck-widget_selected,.ck.ck-editor__editable .image.ck-widget_selected{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}"},function(t,e,n){var i=n(1),r=n(79);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highligted-background:#fd0}.ck-content .image>figcaption{display:table-caption;caption-side:bottom;word-break:break-word;color:var(--ck-color-image-caption-text);background-color:var(--ck-color-image-caption-background);padding:.6em;font-size:.75em;outline-offset:-1px}.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highligted-background)}to{background-color:var(--ck-color-image-caption-background)}}"},function(t,e,n){var i=n(1),r=n(81);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-right:0;margin-left:auto}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-top:var(--ck-inline-image-style-spacing);margin-bottom:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}"},function(t,e,n){var i=n(1),r=n(83);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image-inline .ck-progress-bar,.ck.ck-editor__editable .image .ck-progress-bar{position:absolute;top:0;left:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}.ck.ck-editor__editable .image-inline .ck-progress-bar,.ck.ck-editor__editable .image .ck-progress-bar{height:2px;width:0;background:var(--ck-color-upload-bar-background);transition:width .1s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}"},function(t,e,n){var i=n(1),r=n(85);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck-image-upload-complete-icon{display:block;position:absolute;top:min(var(--ck-spacing-medium),6%);right:min(var(--ck-spacing-medium),6%);border-radius:50%;z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{opacity:0;background:var(--ck-color-image-upload-icon-background);animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;animation-fill-mode:forwards,forwards;animation-duration:.5s,.5s;font-size:calc(1px*var(--ck-image-upload-icon-size));animation-delay:0ms,3s;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{left:25%;top:50%;opacity:0;height:0;width:0;transform:scaleX(-1) rotate(135deg);transform-origin:left top;border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);animation-name:ck-upload-complete-icon-check;animation-duration:.5s;animation-delay:.5s;animation-fill-mode:forwards;box-sizing:border-box}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{opacity:1;width:0;height:0}33%{width:.3em;height:0}to{opacity:1;width:.3em;height:.45em}}'},function(t,e,n){var i=n(1),r=n(87);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck .ck-upload-placeholder-loader{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px}.ck .ck-image-upload-placeholder{width:100%;margin:0}.ck .ck-upload-placeholder-loader{width:100%;height:100%}.ck .ck-upload-placeholder-loader:before{width:var(--ck-upload-placeholder-loader-size);height:var(--ck-upload-placeholder-loader-size);border-radius:50%;border-top:3px solid var(--ck-color-upload-placeholder-loader);border-right:2px solid transparent;animation:ck-upload-placeholder-loader 1s linear infinite}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}'},function(t,e,n){var i=n(1),r=n(89);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{height:100%;border-right:1px solid var(--ck-color-base-text);margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}"},function(t,e,n){var i=n(1),r=n(91);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-link-form{display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{padding:0;min-width:var(--ck-input-text-width)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical .ck-button{padding:var(--ck-spacing-standard);margin:0;border-radius:0;border:0;border-top:1px solid var(--ck-color-base-border);width:50%}[dir=ltr] .ck.ck-link-form_layout-vertical .ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:var(--ck-spacing-standard) var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{border:0;padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}"},function(t,e,n){var i=n(1),r=n(93);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{padding:0 var(--ck-spacing-medium);color:var(--ck-color-link-default);text-overflow:ellipsis;cursor:pointer;max-width:var(--ck-input-text-width);min-width:3em;text-align:center}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{min-width:0;max-width:100%}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}"},function(t,e,n){var i=n(1),r=n(95);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck-media__wrapper .ck-media__placeholder{display:flex;flex-direction:column;align-items:center}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:block}@media (hover:none){.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:none}}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url{max-width:100%;position:relative}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url:hover .ck-tooltip{visibility:visible;opacity:1}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text{overflow:hidden;display:block}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *{display:none}.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper>:not(.ck-media__placeholder),.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder{pointer-events:none}:root{--ck-media-embed-placeholder-icon-size:3em;--ck-color-media-embed-placeholder-url-text:#757575;--ck-color-media-embed-placeholder-url-text-hover:var(--ck-color-base-text)}.ck-media__wrapper{margin:0 auto}.ck-media__wrapper .ck-media__placeholder{padding:calc(var(--ck-spacing-standard)*3);background:var(--ck-color-base-foreground)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon{min-width:var(--ck-media-embed-placeholder-icon-size);height:var(--ck-media-embed-placeholder-icon-size);margin-bottom:var(--ck-spacing-large);background-position:50%;background-size:cover}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon{width:100%;height:100%}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text{color:var(--ck-color-media-embed-placeholder-url-text);white-space:nowrap;text-align:center;font-style:italic;text-overflow:ellipsis}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:var(--ck-color-media-embed-placeholder-url-text-hover);cursor:pointer;text-decoration:underline}.ck-media__wrapper[data-oembed-url*="open.spotify.com"]{max-width:300px;max-height:380px}.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMDAzLjc4IDEuNjFoNDkuNjIxYzEuNjk0IDAgMy4xOS0uNzk4IDQuMTQ2LTIuMDM3eiIgZmlsbD0iIzVjODhjNSIvPjxwYXRoIGQ9Ik0yMjYuNzQyIDIyMi45ODhjLTkuMjY2IDAtMTYuNzc3IDcuMTctMTYuNzc3IDE2LjAxNC4wMDcgMi43NjIuNjYzIDUuNDc0IDIuMDkzIDcuODc1LjQzLjcwMy44MyAxLjQwOCAxLjE5IDIuMTA3LjMzMy41MDIuNjUgMS4wMDUuOTUgMS41MDguMzQzLjQ3Ny42NzMuOTU3Ljk4OCAxLjQ0IDEuMzEgMS43NjkgMi41IDMuNTAyIDMuNjM3IDUuMTY4Ljc5MyAxLjI3NSAxLjY4MyAyLjY0IDIuNDY2IDMuOTkgMi4zNjMgNC4wOTQgNC4wMDcgOC4wOTIgNC42IDEzLjkxNHYuMDEyYy4xODIuNDEyLjUxNi42NjYuODc5LjY2Ny40MDMtLjAwMS43NjgtLjMxNC45My0uNzk5LjYwMy01Ljc1NiAyLjIzOC05LjcyOSA0LjU4NS0xMy43OTQuNzgyLTEuMzUgMS42NzMtMi43MTUgMi40NjUtMy45OSAxLjEzNy0xLjY2NiAyLjMyOC0zLjQgMy42MzgtNS4xNjkuMzE1LS40ODIuNjQ1LS45NjIuOTg4LTEuNDM5LjMtLjUwMy42MTctMS4wMDYuOTUtMS41MDguMzU5LS43Ljc2LTEuNDA0IDEuMTktMi4xMDcgMS40MjYtMi40MDIgMi01LjExNCAyLjAwNC03Ljg3NSAwLTguODQ0LTcuNTExLTE2LjAxNC0xNi43NzYtMTYuMDE0eiIgZmlsbD0iI2RkNGIzZSIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48ZWxsaXBzZSByeT0iNS41NjQiIHJ4PSI1LjgyOCIgY3k9IjIzOS4wMDIiIGN4PSIyMjYuNzQyIiBmaWxsPSIjODAyZDI3IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0xOTAuMzAxIDIzNy4yODNjLTQuNjcgMC04LjQ1NyAzLjg1My04LjQ1NyA4LjYwNnMzLjc4NiA4LjYwNyA4LjQ1NyA4LjYwN2MzLjA0MyAwIDQuODA2LS45NTggNi4zMzctMi41MTYgMS41My0xLjU1NyAyLjA4Ny0zLjkxMyAyLjA4Ny02LjI5IDAtLjM2Mi0uMDIzLS43MjItLjA2NC0xLjA3OWgtOC4yNTd2My4wNDNoNC44NWMtLjE5Ny43NTktLjUzMSAxLjQ1LTEuMDU4IDEuOTg2LS45NDIuOTU4LTIuMDI4IDEuNTQ4LTMuOTAxIDEuNTQ4LTIuODc2IDAtNS4yMDgtMi4zNzItNS4yMDgtNS4yOTkgMC0yLjkyNiAyLjMzMi01LjI5OSA1LjIwOC01LjI5OSAxLjM5OSAwIDIuNjE4LjQwNyAzLjU4NCAxLjI5M2wyLjM4MS0yLjM4YzAtLjAwMi0uMDAzLS4wMDQtLjAwNC0uMDA1LTEuNTg4LTEuNTI0LTMuNjItMi4yMTUtNS45NTUtMi4yMTV6bTQuNDMgNS42NmwuMDAzLjAwNnYtLjAwM3oiIGZpbGw9IiNmZmYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTIxNS4xODQgMjUxLjkyOWwtNy45OCA3Ljk3OSAyOC40NzcgMjguNDc1YTUuMjMzIDUuMjMzIDAgMDAuNDQ5LTIuMTIzdi0zMS4xNjVjLS40NjkuNjc1LS45MzQgMS4zNDktMS4zODIgMi4wMDUtLjc5MiAxLjI3NS0xLjY4MiAyLjY0LTIuNDY1IDMuOTktMi4zNDcgNC4wNjUtMy45ODIgOC4wMzgtNC41ODUgMTMuNzk0LS4xNjIuNDg1LS41MjcuNzk4LS45My43OTktLjM2My0uMDAxLS42OTctLjI1NS0uODc5LS42Njd2LS4wMTJjLS41OTMtNS44MjItMi4yMzctOS44Mi00LjYtMTMuOTE0LS43ODMtMS4zNS0xLjY3My0yLjcxNS0yLjQ2Ni0zLjk5LTEuMTM3LTEuNjY2LTIuMzI3LTMuNC0zLjYzNy01LjE2OWwtLjAwMi0uMDAzeiIgZmlsbD0iI2MzYzNjMyIvPjxwYXRoIGQ9Ik0yMTIuOTgzIDI0OC40OTVsLTM2Ljk1MiAzNi45NTN2LjgxMmE1LjIyNyA1LjIyNyAwIDAwNS4yMzggNS4yMzhoMS4wMTVsMzUuNjY2LTM1LjY2NmExMzYuMjc1IDEzNi4yNzUgMCAwMC0yLjc2NC0zLjkgMzcuNTc1IDM3LjU3NSAwIDAwLS45ODktMS40NCAzNS4xMjcgMzUuMTI3IDAgMDAtLjk1LTEuNTA4Yy0uMDgzLS4xNjItLjE3Ni0uMzI2LS4yNjQtLjQ4OXoiIGZpbGw9IiNmZGRjNGYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTIxMS45OTggMjYxLjA4M2wtNi4xNTIgNi4xNTEgMjQuMjY0IDI0LjI2NGguNzgxYTUuMjI3IDUuMjI3IDAgMDA1LjIzOS01LjIzOHYtMS4wNDV6IiBmaWxsPSIjZmZmIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjwvZz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder{background:#4268b3}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05NjcuNDg0IDBINTYuNTE3QzI1LjMwNCAwIDAgMjUuMzA0IDAgNTYuNTE3djkxMC45NjZDMCA5OTguNjk0IDI1LjI5NyAxMDI0IDU2LjUyMiAxMDI0SDU0N1Y2MjhINDE0VjQ3M2gxMzNWMzU5LjAyOWMwLTEzMi4yNjIgODAuNzczLTIwNC4yODIgMTk4Ljc1Ni0yMDQuMjgyIDU2LjUxMyAwIDEwNS4wODYgNC4yMDggMTE5LjI0NCA2LjA4OVYyOTlsLTgxLjYxNi4wMzdjLTYzLjk5MyAwLTc2LjM4NCAzMC40OTItNzYuMzg0IDc1LjIzNlY0NzNoMTUzLjQ4N2wtMTkuOTg2IDE1NUg3MDd2Mzk2aDI2MC40ODRjMzEuMjEzIDAgNTYuNTE2LTI1LjMwMyA1Ni41MTYtNTYuNTE2VjU2LjUxNUMxMDI0IDI1LjMwMyA5OTguNjk3IDAgOTY3LjQ4NCAwIiBmaWxsPSIjRkZGRkZFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#cdf}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder{background:linear-gradient(-135deg,#1400c7,#b800b1,#f50000)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTA0IiBoZWlnaHQ9IjUwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIC4xNTloNTAzLjg0MVY1MDMuOTRIMHoiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48cGF0aCBkPSJNMjUxLjkyMS4xNTljLTY4LjQxOCAwLTc2Ljk5Ny4yOS0xMDMuODY3IDEuNTE2LTI2LjgxNCAxLjIyMy00NS4xMjcgNS40ODItNjEuMTUxIDExLjcxLTE2LjU2NiA2LjQzNy0zMC42MTUgMTUuMDUxLTQ0LjYyMSAyOS4wNTYtMTQuMDA1IDE0LjAwNi0yMi42MTkgMjguMDU1LTI5LjA1NiA0NC42MjEtNi4yMjggMTYuMDI0LTEwLjQ4NyAzNC4zMzctMTEuNzEgNjEuMTUxQy4yOSAxNzUuMDgzIDAgMTgzLjY2MiAwIDI1Mi4wOGMwIDY4LjQxNy4yOSA3Ni45OTYgMS41MTYgMTAzLjg2NiAxLjIyMyAyNi44MTQgNS40ODIgNDUuMTI3IDExLjcxIDYxLjE1MSA2LjQzNyAxNi41NjYgMTUuMDUxIDMwLjYxNSAyOS4wNTYgNDQuNjIxIDE0LjAwNiAxNC4wMDUgMjguMDU1IDIyLjYxOSA0NC42MjEgMjkuMDU3IDE2LjAyNCA2LjIyNyAzNC4zMzcgMTAuNDg2IDYxLjE1MSAxMS43MDkgMjYuODcgMS4yMjYgMzUuNDQ5IDEuNTE2IDEwMy44NjcgMS41MTYgNjguNDE3IDAgNzYuOTk2LS4yOSAxMDMuODY2LTEuNTE2IDI2LjgxNC0xLjIyMyA0NS4xMjctNS40ODIgNjEuMTUxLTExLjcwOSAxNi41NjYtNi40MzggMzAuNjE1LTE1LjA1MiA0NC42MjEtMjkuMDU3IDE0LjAwNS0xNC4wMDYgMjIuNjE5LTI4LjA1NSAyOS4wNTctNDQuNjIxIDYuMjI3LTE2LjAyNCAxMC40ODYtMzQuMzM3IDExLjcwOS02MS4xNTEgMS4yMjYtMjYuODcgMS41MTYtMzUuNDQ5IDEuNTE2LTEwMy44NjYgMC02OC40MTgtLjI5LTc2Ljk5Ny0xLjUxNi0xMDMuODY3LTEuMjIzLTI2LjgxNC01LjQ4Mi00NS4xMjctMTEuNzA5LTYxLjE1MS02LjQzOC0xNi41NjYtMTUuMDUyLTMwLjYxNS0yOS4wNTctNDQuNjIxLTE0LjAwNi0xNC4wMDUtMjguMDU1LTIyLjYxOS00NC42MjEtMjkuMDU2LTE2LjAyNC02LjIyOC0zNC4zMzctMTAuNDg3LTYxLjE1MS0xMS43MUMzMjguOTE3LjQ0OSAzMjAuMzM4LjE1OSAyNTEuOTIxLjE1OXptMCA0NS4zOTFjNjcuMjY1IDAgNzUuMjMzLjI1NyAxMDEuNzk3IDEuNDY5IDI0LjU2MiAxLjEyIDM3LjkwMSA1LjIyNCA0Ni43NzggOC42NzQgMTEuNzU5IDQuNTcgMjAuMTUxIDEwLjAyOSAyOC45NjYgMTguODQ1IDguODE2IDguODE1IDE0LjI3NSAxNy4yMDcgMTguODQ1IDI4Ljk2NiAzLjQ1IDguODc3IDcuNTU0IDIyLjIxNiA4LjY3NCA0Ni43NzggMS4yMTIgMjYuNTY0IDEuNDY5IDM0LjUzMiAxLjQ2OSAxMDEuNzk4IDAgNjcuMjY1LS4yNTcgNzUuMjMzLTEuNDY5IDEwMS43OTctMS4xMiAyNC41NjItNS4yMjQgMzcuOTAxLTguNjc0IDQ2Ljc3OC00LjU3IDExLjc1OS0xMC4wMjkgMjAuMTUxLTE4Ljg0NSAyOC45NjYtOC44MTUgOC44MTYtMTcuMjA3IDE0LjI3NS0yOC45NjYgMTguODQ1LTguODc3IDMuNDUtMjIuMjE2IDcuNTU0LTQ2Ljc3OCA4LjY3NC0yNi41NiAxLjIxMi0zNC41MjcgMS40NjktMTAxLjc5NyAxLjQ2OS02Ny4yNzEgMC03NS4yMzctLjI1Ny0xMDEuNzk4LTEuNDY5LTI0LjU2Mi0xLjEyLTM3LjkwMS01LjIyNC00Ni43NzgtOC42NzQtMTEuNzU5LTQuNTctMjAuMTUxLTEwLjAyOS0yOC45NjYtMTguODQ1LTguODE1LTguODE1LTE0LjI3NS0xNy4yMDctMTguODQ1LTI4Ljk2Ni0zLjQ1LTguODc3LTcuNTU0LTIyLjIxNi04LjY3NC00Ni43NzgtMS4yMTItMjYuNTY0LTEuNDY5LTM0LjUzMi0xLjQ2OS0xMDEuNzk3IDAtNjcuMjY2LjI1Ny03NS4yMzQgMS40NjktMTAxLjc5OCAxLjEyLTI0LjU2MiA1LjIyNC0zNy45MDEgOC42NzQtNDYuNzc4IDQuNTctMTEuNzU5IDEwLjAyOS0yMC4xNTEgMTguODQ1LTI4Ljk2NiA4LjgxNS04LjgxNiAxNy4yMDctMTQuMjc1IDI4Ljk2Ni0xOC44NDUgOC44NzctMy40NSAyMi4yMTYtNy41NTQgNDYuNzc4LTguNjc0IDI2LjU2NC0xLjIxMiAzNC41MzItMS40NjkgMTAxLjc5OC0xLjQ2OXoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48cGF0aCBkPSJNMjUxLjkyMSAzMzYuMDUzYy00Ni4zNzggMC04My45NzQtMzcuNTk2LTgzLjk3NC04My45NzMgMC00Ni4zNzggMzcuNTk2LTgzLjk3NCA4My45NzQtODMuOTc0IDQ2LjM3NyAwIDgzLjk3MyAzNy41OTYgODMuOTczIDgzLjk3NCAwIDQ2LjM3Ny0zNy41OTYgODMuOTczLTgzLjk3MyA4My45NzN6bTAtMjEzLjMzOGMtNzEuNDQ3IDAtMTI5LjM2NSA1Ny45MTgtMTI5LjM2NSAxMjkuMzY1IDAgNzEuNDQ2IDU3LjkxOCAxMjkuMzY0IDEyOS4zNjUgMTI5LjM2NCA3MS40NDYgMCAxMjkuMzY0LTU3LjkxOCAxMjkuMzY0LTEyOS4zNjQgMC03MS40NDctNTcuOTE4LTEyOS4zNjUtMTI5LjM2NC0xMjkuMzY1ek00MTYuNjI3IDExNy42MDRjMCAxNi42OTYtMTMuNTM1IDMwLjIzLTMwLjIzMSAzMC4yMy0xNi42OTUgMC0zMC4yMy0xMy41MzQtMzAuMjMtMzAuMjMgMC0xNi42OTYgMTMuNTM1LTMwLjIzMSAzMC4yMy0zMC4yMzEgMTYuNjk2IDAgMzAuMjMxIDEzLjUzNSAzMC4yMzEgMzAuMjMxIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg==)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#ffe0fe}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder{background:linear-gradient(90deg,#71c6f4,#0d70a5)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDAwIj48cGF0aCBkPSJNNDAwIDIwMGMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDBTMCAzMTAuNSAwIDIwMCA4OS41IDAgMjAwIDBzMjAwIDg5LjUgMjAwIDIwMHpNMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItLjEtNi4yIDkuNC02LjggMTcuNi0xNS4zIDI0LjEtMjUtOC42IDMuOC0xNy45IDYuNC0yNy43IDcuNiAxMC02IDE3LjYtMTUuNCAyMS4yLTI2LjctOS4zIDUuNS0xOS42IDkuNS0zMC42IDExLjctOC44LTkuNC0yMS4zLTE1LjItMzUuMi0xNS4yLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4yIDAgMy44LjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LS4yLTE1LjMtMi40LTIxLjgtNnYuNmMwIDIzLjQgMTYuNiA0Mi44IDM4LjcgNDcuMy00IDEuMS04LjMgMS43LTEyLjcgMS43LTMuMSAwLTYuMS0uMy05LjEtLjkgNi4xIDE5LjIgMjMuOSAzMy4xIDQ1IDMzLjUtMTYuNSAxMi45LTM3LjMgMjAuNi01OS45IDIwLjYtMy45IDAtNy43LS4yLTExLjUtLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiIGZpbGw9IiNmZmYiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text{color:#b8e6ff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}'},function(t,e,n){var i=n(1),r=n(97);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-media-form{display:flex;align-items:flex-start;flex-direction:row;flex-wrap:nowrap}.ck.ck-media-form .ck-labeled-field-view{display:inline-block}.ck.ck-media-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-media-form{flex-wrap:wrap}.ck.ck-media-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-media-form .ck-button{flex-basis:50%}}"},function(t,e,n){var i=n(1),r=n(99);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck-content .media{clear:both;margin:.9em 0;display:block;min-width:15em}"},function(t,e,n){var i=n(1),r=n(101);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-color-table-focused-cell-background:rgba(158,207,250,0.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-table-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}"},function(t,e,n){var i=n(1),r=n(103);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2);padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0}.ck .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{width:var(--ck-insert-table-dropdown-box-width);height:var(--ck-insert-table-dropdown-box-height);margin:var(--ck-insert-table-dropdown-box-margin);border:1px solid var(--ck-color-base-border);border-radius:1px}.ck .ck-insert-table-dropdown-grid-box.ck-on{border-color:var(--ck-color-focus-border);background:var(--ck-color-focus-outer-shadow)}"},function(t,e,n){var i=n(1),r=n(105);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=':root{--ck-table-selected-cell-background:rgba(158,207,250,0.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{position:relative;caret-color:transparent;outline:unset;box-shadow:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{content:"";pointer-events:none;background-color:var(--ck-table-selected-cell-background);position:absolute;top:0;left:0;right:0;bottom:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget_selected{outline:unset}'},function(t,e,n){var i=n(1),r=n(107);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck-content .table{margin:.9em auto;display:table}.ck-content .table table{border-collapse:collapse;border-spacing:0;width:100%;height:100%;border:1px double #b3b3b3}.ck-content .table table td,.ck-content .table table th{min-width:2em;padding:.4em;border:1px solid #bfbfbf}.ck-content .table table th{font-weight:700;background:hsla(0,0%,0%,5%)}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}"},function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return A_}));var i=function(){return function t(){t.called=!0}};class r{constructor(t,e){this.source=t,this.name=e,this.path=[],this.stop=i(),this.off=i()}}const o=new Array(256).fill().map(((t,e)=>("0"+e.toString(16)).slice(-2)));function s(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0,i=4294967296*Math.random()>>>0;return"e"+o[t>>0&255]+o[t>>8&255]+o[t>>16&255]+o[t>>24&255]+o[e>>0&255]+o[e>>8&255]+o[e>>16&255]+o[e>>24&255]+o[n>>0&255]+o[n>>8&255]+o[n>>16&255]+o[n>>24&255]+o[i>>0&255]+o[i>>8&255]+o[i>>16&255]+o[i>>24&255]}var a={get(t){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5},l=(n(6),n(0));const c=Symbol("listeningTo"),u=Symbol("emitterId");var d={on(t,e,n={}){this.listenTo(this,t,e,n)},once(t,e,n){let i=!1;this.listenTo(this,t,(function(t,...n){i||(i=!0,t.off(),e.call(this,t,...n))}),n)},off(t,e){this.stopListening(this,t,e)},listenTo(t,e,n,i={}){let r,o;this[c]||(this[c]={});const s=this[c];f(t)||h(t);const a=f(t);(r=s[a])||(r=s[a]={emitter:t,callbacks:{}}),(o=r.callbacks[e])||(o=r.callbacks[e]=[]),o.push(n),function(t,e,n,i,r){e._addEventListener?e._addEventListener(n,i,r):t._addEventListener.call(e,n,i,r)}(this,t,e,n,i)},stopListening(t,e,n){const i=this[c];let r=t&&f(t);const o=i&&r&&i[r],s=o&&e&&o.callbacks[e];if(!(!i||t&&!o||e&&!s))if(n)b(this,t,e,n),-1!==s.indexOf(n)&&(1===s.length?delete o.callbacks[e]:b(this,t,e,n));else if(s){for(;n=s.pop();)b(this,t,e,n);delete o.callbacks[e]}else if(o){for(e in o.callbacks)this.stopListening(t,e);delete i[r]}else{for(r in i)this.stopListening(i[r].emitter);delete this[c]}},fire(t,...e){try{const n=t instanceof r?t:new r(this,t),i=n.name;let o=function t(e,n){let i;return e._events&&(i=e._events[n])&&i.callbacks.length?i.callbacks:n.indexOf(":")>-1?t(e,n.substr(0,n.lastIndexOf(":"))):null}(this,i);if(n.path.push(this),o){const t=[n,...e];o=Array.from(o);for(let e=0;e{this._delegations||(this._delegations=new Map),t.forEach((t=>{const i=this._delegations.get(t);i?i.set(e,n):this._delegations.set(t,new Map([[e,n]]))}))}}},stopDelegating(t,e){if(this._delegations)if(t)if(e){const n=this._delegations.get(t);n&&n.delete(e)}else this._delegations.delete(t);else this._delegations.clear()},_addEventListener(t,e,n){!function(t,e){const n=p(t);if(n[e])return;let i=e,r=null;const o=[];for(;""!==i&&!n[i];)n[i]={callbacks:[],childEvents:[]},o.push(n[i]),r&&n[i].childEvents.push(r),r=i,i=i.substr(0,i.lastIndexOf(":"));if(""!==i){for(const t of o)t.callbacks=n[i].callbacks.slice();n[i].childEvents.push(r)}}(this,t);const i=m(this,t),r=a.get(n.priority),o={callback:e,priority:r};for(const t of i){let e=!1;for(let n=0;n0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(it),st=function(t,e){return ot(et(t,e,K),t+"")},at=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},lt=function(t){return null!=t&&at(t.length)&&!E(t)},ct=/^(?:0|[1-9]\d*)$/,ut=function(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&ct.test(t))&&t>-1&&t%1==0&&t1?n[r-1]:void 0,s=r>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(r--,o):void 0,s&&dt(n[0],n[1],s)&&(o=r<3?void 0:o,r=1),e=Object(e);++i{this.set(e,t[e])}),this);Wt(this);const n=this[Nt];if(t in this&&!n.has(t))throw new l.a("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n.get(t),set(e){const i=n.get(t);let r=this.fire("set:"+t,t,e,i);void 0===r&&(r=e),i===r&&n.has(t)||(n.set(t,r),this.fire("change:"+t,t,r,i))}}),this[t]=e},bind(...t){if(!t.length||!$t(t))throw new l.a("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new l.a("observable-bind-duplicate-properties",this);Wt(this);const e=this[zt];t.forEach((t=>{if(e.has(t))throw new l.a("observable-bind-rebind",this)}));const n=new Map;return t.forEach((t=>{const i={property:t,to:[]};e.set(t,i),n.set(t,i)})),{to:Ut,toMany:Xt,_observable:this,_bindProperties:t,_to:[],_bindings:n}},unbind(...t){if(!this[Nt])return;const e=this[zt],n=this[jt];if(t.length){if(!$t(t))throw new l.a("observable-unbind-wrong-properties",this);t.forEach((t=>{const i=e.get(t);if(!i)return;let r,o,s,a;i.to.forEach((t=>{r=t[0],o=t[1],s=n.get(r),a=s[o],a.delete(i),a.size||delete s[o],Object.keys(s).length||(n.delete(r),this.stopListening(r,"change"))})),e.delete(t)}))}else n.forEach(((t,e)=>{this.stopListening(e,"change")})),n.clear(),e.clear()},decorate(t){const e=this[t];if(!e)throw new l.a("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,((t,n)=>{t.return=e.apply(this,n)})),this[t]=function(...e){return this.fire(t,e)},this[t][Ft]=e,this[Ht]||(this[Ht]=[]),this[Ht].push(t)}};Rt(Bt,d),Bt.stopListening=function(t,e,n){if(!t&&this[Ht]){for(const t of this[Ht])this[t]=this[t][Ft];delete this[Ht]}d.stopListening.call(this,t,e,n)};var Vt=Bt;function Wt(t){t[Nt]||(Object.defineProperty(t,Nt,{value:new Map}),Object.defineProperty(t,jt,{value:new Map}),Object.defineProperty(t,zt,{value:new Map}))}function Ut(...t){const e=function(...t){if(!t.length)throw new l.a("observable-bind-to-parse-error",null);const e={to:[]};let n;return"function"==typeof t[t.length-1]&&(e.callback=t.pop()),t.forEach((t=>{if("string"==typeof t)n.properties.push(t);else{if("object"!=typeof t)throw new l.a("observable-bind-to-parse-error",null);n={observable:t,properties:[]},e.to.push(n)}})),e}(...t),n=Array.from(this._bindings.keys()),i=n.length;if(!e.callback&&e.to.length>1)throw new l.a("observable-bind-to-no-callback",this);if(i>1&&e.callback)throw new l.a("observable-bind-to-extra-callback",this);var r;e.to.forEach((t=>{if(t.properties.length&&t.properties.length!==i)throw new l.a("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)})),this._to=e.to,e.callback&&(this._bindings.get(n[0]).callback=e.callback),r=this._observable,this._to.forEach((t=>{const e=r[jt];let n;e.get(t.observable)||r.listenTo(t.observable,"change",((i,o)=>{n=e.get(t.observable)[o],n&&n.forEach((t=>{qt(r,t.property)}))}))})),function(t){let e;t._bindings.forEach(((n,i)=>{t._to.forEach((r=>{e=r.properties[n.callback?0:t._bindProperties.indexOf(i)],n.to.push([r.observable,e]),function(t,e,n,i){const r=t[jt],o=r.get(n),s=o||{};s[i]||(s[i]=new Set),s[i].add(e),o||r.set(n,s)}(t._observable,n,r.observable,e)}))}))}(this),this._bindProperties.forEach((t=>{qt(this._observable,t)}))}function Xt(t,e,n){if(this._bindings.size>1)throw new l.a("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const n=t.map((t=>[t,e]));return Array.prototype.concat.apply([],n)}(t,e),n)}function $t(t){return t.every((t=>"string"==typeof t))}function qt(t,e){const n=t[zt].get(e);let i;n.callback?i=n.callback.apply(t,n.to.map((t=>t[0][t[1]]))):(i=n.to[0],i=i[0][i[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=i:t.set(e,i)}function Gt(t,...e){e.forEach((e=>{Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)).forEach((n=>{if(n in t.prototype)return;const i=Object.getOwnPropertyDescriptor(e,n);i.enumerable=!1,Object.defineProperty(t.prototype,n,i)}))}))}class Jt{constructor(t){this.editor=t,this.set("isEnabled",!0),this._disableStack=new Set}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",Zt,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",Zt),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function Zt(t){t.return=!1,t.stop()}Gt(Jt,Vt);class Kt{constructor(t){this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.on("execute",(t=>{this.isEnabled||t.stop()}),{priority:"high"}),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")}))}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",Qt,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",Qt),this.refresh())}execute(){}destroy(){this.stopListening()}}function Qt(t){t.return=!1,t.stop()}Gt(Kt,Vt);class te extends Kt{constructor(t){super(t),this._childCommands=[]}refresh(){}execute(...t){const e=this._getFirstEnabledCommand();return null!=e&&e.execute(t)}registerChildCommand(t){this._childCommands.push(t),t.on("change:isEnabled",(()=>this._checkEnabled())),this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){return this._childCommands.find((t=>t.isEnabled))}}var ee=function(t,e){return function(n){return t(e(n))}},ne=ee(Object.getPrototypeOf,Object),ie=Function.prototype,re=Object.prototype,oe=ie.toString,se=re.hasOwnProperty,ae=oe.call(Object),le=function(t){if(!pt(t)||"[object Object]"!=D(t))return!1;var e=ne(t);if(null===e)return!0;var n=se.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&oe.call(n)==ae},ce=function(){this.__data__=[],this.size=0},ue=function(t,e){for(var n=t.length;n--;)if(q(t[n][0],e))return n;return-1},de=Array.prototype.splice,he=function(t){var e=this.__data__,n=ue(e,t);return!(n<0||(n==e.length-1?e.pop():de.call(e,n,1),--this.size,0))},fe=function(t){var e=this.__data__,n=ue(e,t);return n<0?void 0:e[n][1]},pe=function(t){return ue(this.__data__,t)>-1},me=function(t,e){var n=this.__data__,i=ue(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};function ge(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e{this._setToTarget(t,i,e[i],n)}))}}function Jn(t){return $n(t,Zn)}function Zn(t){return qn(t)?t:void 0}function Kn(t){return!(!t||!t[Symbol.iterator])}class Qn{constructor(t={},e={}){const n=Kn(t);if(n||(e=t),this._items=[],this._itemMap=new Map,this._idProperty=e.idProperty||"id",this._bindToExternalToInternalMap=new WeakMap,this._bindToInternalToExternalMap=new WeakMap,this._skippedIndexesFromExternal=[],n)for(const e of t)this._items.push(e),this._itemMap.set(this._getItemIdBeforeAdding(e),e)}get length(){return this._items.length}get first(){return this._items[0]||null}get last(){return this._items[this.length-1]||null}add(t,e){return this.addMany([t],e)}addMany(t,e){if(void 0===e)e=this._items.length;else if(e>this._items.length||e<0)throw new l.a("collection-add-item-invalid-index",this);for(let n=0;n{this._setUpBindToBinding((e=>new t(e)))},using:t=>{"function"==typeof t?this._setUpBindToBinding((e=>t(e))):this._setUpBindToBinding((e=>e[t]))}}}_setUpBindToBinding(t){const e=this._bindToCollection,n=(n,i,r)=>{const o=e._bindToCollection==this,s=e._bindToInternalToExternalMap.get(i);if(o&&s)this._bindToExternalToInternalMap.set(i,s),this._bindToInternalToExternalMap.set(s,i);else{const n=t(i);if(!n)return void this._skippedIndexesFromExternal.push(r);let o=r;for(const t of this._skippedIndexesFromExternal)r>t&&o--;for(const t of e._skippedIndexesFromExternal)o>=t&&o++;this._bindToExternalToInternalMap.set(i,n),this._bindToInternalToExternalMap.set(n,i),this.add(n,o);for(let t=0;t{const i=this._bindToExternalToInternalMap.get(e);i&&this.remove(i),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((t,e)=>(ne&&t.push(e),t)),[])}))}_getItemIdBeforeAdding(t){const e=this._idProperty;let n;if(e in t){if(n=t[e],"string"!=typeof n)throw new l.a("collection-add-invalid-id",this);if(this.get(n))throw new l.a("collection-add-item-already-exists",this)}else t[e]=n=s();return n}_remove(t){let e,n,i,r=!1;const o=this._idProperty;if("string"==typeof t?(n=t,i=this._itemMap.get(n),r=!i,i&&(e=this._items.indexOf(i))):"number"==typeof t?(e=t,i=this._items[e],r=!i,i&&(n=i[o])):(i=t,n=i[o],e=this._items.indexOf(i),r=-1==e||!this._itemMap.get(n)),r)throw new l.a("collection-remove-404",this);this._items.splice(e,1),this._itemMap.delete(n);const s=this._bindToInternalToExternalMap.get(i);return this._bindToInternalToExternalMap.delete(i),this._bindToExternalToInternalMap.delete(s),this.fire("remove",i,e),[i,e]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}Gt(Qn,d);class ti{constructor(t,e=[],n=[]){this._context=t,this._plugins=new Map,this._availablePlugins=new Map;for(const t of e)t.pluginName&&this._availablePlugins.set(t.pluginName,t);this._contextPlugins=new Map;for(const[t,e]of n)this._contextPlugins.set(t,e),this._contextPlugins.set(e,t),t.pluginName&&this._availablePlugins.set(t.pluginName,t)}*[Symbol.iterator](){for(const t of this._plugins)"function"==typeof t[0]&&(yield t)}get(t){const e=this._plugins.get(t);if(!e){let e=t;throw"function"==typeof t&&(e=t.pluginName||t.name),new l.a("plugincollection-plugin-not-loaded",this._context,{plugin:e})}return e}has(t){return this._plugins.has(t)}init(t,e=[],n=[]){const i=this,r=this._context;!function t(e,n=new Set){e.forEach((e=>{a(e)&&(n.has(e)||(n.add(e),e.pluginName&&!i._availablePlugins.has(e.pluginName)&&i._availablePlugins.set(e.pluginName,e),e.requires&&t(e.requires,n)))}))}(t),h(t);const o=[...function t(e,n=new Set){return e.map((t=>a(t)?t:i._availablePlugins.get(t))).reduce(((e,i)=>n.has(i)?e:(n.add(i),i.requires&&(h(i.requires,i),t(i.requires,n).forEach((t=>e.add(t)))),e.add(i))),new Set)}(t.filter((t=>!u(t,e))))];!function(t,e){for(const n of e){if("function"!=typeof n)throw new l.a("plugincollection-replace-plugin-invalid-type",null,{pluginItem:n});const e=n.pluginName;if(!e)throw new l.a("plugincollection-replace-plugin-missing-name",null,{pluginItem:n});if(n.requires&&n.requires.length)throw new l.a("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:e});const r=i._availablePlugins.get(e);if(!r)throw new l.a("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:e});const o=t.indexOf(r);if(-1===o){if(i._contextPlugins.has(r))return;throw new l.a("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:e})}if(r.requires&&r.requires.length)throw new l.a("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:e});t.splice(o,1,n),i._availablePlugins.set(e,n)}}(o,n);const s=function(t){return t.map((t=>{const e=i._contextPlugins.get(t)||new t(r);return i._add(t,e),e}))}(o);return f(s,"init").then((()=>f(s,"afterInit"))).then((()=>s));function a(t){return"function"==typeof t}function c(t){return a(t)&&t.isContextPlugin}function u(t,e){return e.some((e=>e===t||d(t)===e||d(e)===t))}function d(t){return a(t)?t.pluginName||t.name:t}function h(t,n=null){t.map((t=>a(t)?t:i._availablePlugins.get(t)||t)).forEach((t=>{!function(t,e){if(!a(t)){if(e)throw new l.a("plugincollection-soft-required",r,{missingPlugin:t,requiredBy:d(e)});throw new l.a("plugincollection-plugin-not-found",r,{plugin:t})}}(t,n),function(t,e){if(c(e)&&!c(t))throw new l.a("plugincollection-context-required",r,{plugin:d(t),requiredBy:d(e)})}(t,n),function(t,n){if(n&&u(t,e))throw new l.a("plugincollection-required",r,{plugin:d(t),requiredBy:d(n)})}(t,n)}))}function f(t,e){return t.reduce(((t,n)=>n[e]?i._contextPlugins.has(n)?t:t.then(n[e].bind(n)):t),Promise.resolve())}}destroy(){const t=[];for(const[,e]of this)"function"!=typeof e.destroy||this._contextPlugins.has(e)||t.push(e.destroy());return Promise.all(t)}_add(t,e){this._plugins.set(t,e);const n=t.pluginName;if(n){if(this._plugins.has(n))throw new l.a("plugincollection-plugin-name-conflict",null,{pluginName:n,plugin1:this._plugins.get(n).constructor,plugin2:t});this._plugins.set(n,e)}}}function ei(t){return Array.isArray(t)?t:[t]}function ni(t,e,n=1){if("number"!=typeof n)throw new l.a("translation-service-quantity-not-a-number",null,{quantity:n});const i=Object.keys(window.CKEDITOR_TRANSLATIONS).length;1===i&&(t=Object.keys(window.CKEDITOR_TRANSLATIONS)[0]);const r=e.id||e.string;if(0===i||!function(t,e){return!!window.CKEDITOR_TRANSLATIONS[t]&&!!window.CKEDITOR_TRANSLATIONS[t].dictionary[e]}(t,r))return 1!==n?e.plural:e.string;const o=window.CKEDITOR_TRANSLATIONS[t].dictionary,s=window.CKEDITOR_TRANSLATIONS[t].getPluralForm||(t=>1===t?0:1);if("string"==typeof o[r])return o[r];const a=Number(s(n));return o[r][a]}Gt(ti,d),window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={});const ii=["ar","ara","fa","per","fas","he","heb","ku","kur","ug","uig"];function ri(t){return ii.includes(t)?"rtl":"ltr"}class oi{constructor(t={}){this.uiLanguage=t.uiLanguage||"en",this.contentLanguage=t.contentLanguage||this.uiLanguage,this.uiLanguageDirection=ri(this.uiLanguage),this.contentLanguageDirection=ri(this.contentLanguage),this.t=(t,e)=>this._t(t,e)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(t,e=[]){e=ei(e),"string"==typeof t&&(t={string:t});const n=t.plural?e[0]:1;return function(t,e){return t.replace(/%(\d+)/g,((t,n)=>nt.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(t,e){if(this._contextOwner)throw new l.a("context-addeditor-private-context");this.editors.add(t),e&&(this._contextOwner=t)}_removeEditor(t){return this.editors.has(t)&&this.editors.remove(t),this._contextOwner===t?this.destroy():Promise.resolve()}_getEditorConfig(){const t={};for(const e of this.config.names())["plugins","removePlugins","extraPlugins"].includes(e)||(t[e]=this.config.get(e));return t}static create(t){return new Promise((e=>{const n=new this(t);e(n.initPlugins().then((()=>n)))}))}}class ai{constructor(t){this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}function li(t,e){const n=Math.min(t.length,e.length);for(let i=0;it.data.length)throw new l.a("view-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.data.length)throw new l.a("view-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}is(t){return"$textProxy"===t||"view:$textProxy"===t||"textProxy"===t||"view:textProxy"===t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this.textNode:this.parent;for(;null!==n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}}function fi(t){return Kn(t)?new Map(t):function(t){const e=new Map;for(const n in t)e.set(n,t[n]);return e}(t)}class pi{constructor(...t){this._patterns=[],this.add(...t)}add(...t){for(let e of t)("string"==typeof e||e instanceof RegExp)&&(e={name:e}),this._patterns.push(e)}match(...t){for(const e of t)for(const t of this._patterns){const n=mi(e,t);if(n)return{element:e,pattern:t,match:n}}return null}matchAll(...t){const e=[];for(const n of t)for(const t of this._patterns){const i=mi(n,t);i&&e.push({element:n,pattern:t,match:i})}return e.length>0?e:null}getElementName(){if(1!==this._patterns.length)return null;const t=this._patterns[0],e=t.name;return"function"==typeof t||!e||e instanceof RegExp?null:e}}function mi(t,e){if("function"==typeof e)return e(t);const n={};return e.name&&(n.name=function(t,e){return t instanceof RegExp?t.test(e):t===e}(e.name,t.name),!n.name)||e.attributes&&(n.attributes=function(t,e){const n=new Set(e.getAttributeKeys());return le(t)?(void 0!==t.style&&Object(l.b)("matcher-pattern-deprecated-attributes-style-key",t),void 0!==t.class&&Object(l.b)("matcher-pattern-deprecated-attributes-class-key",t)):(n.delete("style"),n.delete("class")),gi(t,n,(t=>e.getAttribute(t)))}(e.attributes,t),!n.attributes)?null:!(e.classes&&(n.classes=function(t,e){return gi(t,e.getClassNames())}(e.classes,t),!n.classes))&&!(e.styles&&(n.styles=function(t,e){return gi(t,e.getStyleNames(!0),(t=>e.getStyle(t)))}(e.styles,t),!n.styles))&&n}function gi(t,e,n){const i=function(t){return Array.isArray(t)?t.map((t=>le(t)?(void 0!==t.key&&void 0!==t.value||Object(l.b)("matcher-pattern-missing-key-or-value",t),[t.key,t.value]):[t,!0])):le(t)?Object.entries(t):[[t,!0]]}(t),r=Array.from(e),o=[];return i.forEach((([t,e])=>{r.forEach((i=>{(function(t,e){return!0===t||t===e||t instanceof RegExp&&t.test(e)})(t,i)&&function(t,e,n){if(!0===t)return!0;const i=n(e);return t===i||t instanceof RegExp&&t.test(i)}(e,i,n)&&o.push(i)}))})),!i.length||o.lengthr?0:r+e),(n=n>r?r:n)<0&&(n+=r),r=e>n?0:n-e>>>0,e>>>=0;for(var o=Array(r);++ie===t));return Array.isArray(e)}set(t,e){if(v(t))for(const[e,n]of Object.entries(t))this._styleProcessor.toNormalizedForm(e,n,this._styles);else this._styleProcessor.toNormalizedForm(t,e,this._styles)}remove(t){const e=Ki(t);ji(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}getNormalized(t){return this._styleProcessor.getNormalized(t,this._styles)}toString(){return this.isEmpty?"":this._getStylesEntries().map((t=>t.join(":"))).sort().join(";")+";"}getAsString(t){if(this.isEmpty)return;if(this._styles[t]&&!v(this._styles[t]))return this._styles[t];const e=this._styleProcessor.getReducedForm(t,this._styles).find((([e])=>e===t));return Array.isArray(e)?e[1]:void 0}getStyleNames(t=!1){return this.isEmpty?[]:t?this._styleProcessor.getStyleNames(this._styles):this._getStylesEntries().map((([t])=>t))}clear(){this._styles={}}_getStylesEntries(){const t=[],e=Object.keys(this._styles);for(const n of e)t.push(...this._styleProcessor.getReducedForm(n,this._styles));return t}_cleanEmptyObjectsOnPath(t){const e=t.split(".");if(!(e.length>1))return;const n=e.splice(0,e.length-1).join("."),i=zi(this._styles,n);i&&!Array.from(Object.keys(i)).length&&this.remove(n)}}class Zi{constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(t,e,n){if(v(e))Qi(n,Ki(t),e);else if(this._normalizers.has(t)){const i=this._normalizers.get(t),{path:r,value:o}=i(e);Qi(n,r,o)}else Qi(n,t,e)}getNormalized(t,e){if(!t)return $i({},e);if(void 0!==e[t])return e[t];if(this._extractors.has(t)){const n=this._extractors.get(t);if("string"==typeof n)return zi(e,n);const i=n(t,e);if(i)return i}return zi(e,Ki(t))}getReducedForm(t,e){const n=this.getNormalized(t,e);return void 0===n?[]:this._reducers.has(t)?this._reducers.get(t)(n):[[t,n]]}getStyleNames(t){const e=Array.from(this._consumables.keys()).filter((e=>{const n=this.getNormalized(e,t);return n&&"object"==typeof n?Object.keys(n).length:n})),n=new Set([...e,...Object.keys(t)]);return Array.from(n.values())}getRelatedStyles(t){return this._consumables.get(t)||[]}setNormalizer(t,e){this._normalizers.set(t,e)}setExtractor(t,e){this._extractors.set(t,e)}setReducer(t,e){this._reducers.set(t,e)}setStyleRelation(t,e){this._mapStyleNames(t,e);for(const n of e)this._mapStyleNames(n,[t])}_mapStyleNames(t,e){this._consumables.has(t)||this._consumables.set(t,[]),this._consumables.get(t).push(...e)}}function Ki(t){return t.replace("-",".")}function Qi(t,e,n){let i=n;v(n)&&(i=$i({},zi(t,e),n)),Gi(t,e,i)}class tr extends ui{constructor(t,e,n,i){if(super(t),this.name=e,this._attrs=function(t){t=fi(t);for(const[e,n]of t)null===n?t.delete(e):"string"!=typeof n&&t.set(e,String(n));return t}(n),this._children=[],i&&this._insertChild(0,i),this._classes=new Set,this._attrs.has("class")){const t=this._attrs.get("class");er(this._classes,t),this._attrs.delete("class")}this._styles=new Ji(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style")),this._customProperties=new Map,this._isAllowedInsideAttributeElement=!1}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}get isAllowedInsideAttributeElement(){return this._isAllowedInsideAttributeElement}is(t,e=null){return e?e===this.name&&("element"===t||"view:element"===t):"element"===t||"view:element"===t||"node"===t||"view:node"===t}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(t){if("class"==t)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==t){const t=this._styles.toString();return""==t?void 0:t}return this._attrs.get(t)}hasAttribute(t){return"class"==t?this._classes.size>0:"style"==t?!this._styles.isEmpty:this._attrs.has(t)}isSimilar(t){if(!(t instanceof tr))return!1;if(this===t)return!0;if(this.name!=t.name)return!1;if(this.isAllowedInsideAttributeElement!=t.isAllowedInsideAttributeElement)return!1;if(this._attrs.size!==t._attrs.size||this._classes.size!==t._classes.size||this._styles.size!==t._styles.size)return!1;for(const[e,n]of this._attrs)if(!t._attrs.has(e)||t._attrs.get(e)!==n)return!1;for(const e of this._classes)if(!t._classes.has(e))return!1;for(const e of this._styles.getStyleNames())if(!t._styles.has(e)||t._styles.getAsString(e)!==this._styles.getAsString(e))return!1;return!0}hasClass(...t){for(const e of t)if(!this._classes.has(e))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(t){return this._styles.getAsString(t)}getNormalizedStyle(t){return this._styles.getNormalized(t)}getStyleNames(t=!1){return this._styles.getStyleNames(t)}hasStyle(...t){for(const e of t)if(!this._styles.has(e))return!1;return!0}findAncestor(...t){const e=new pi(...t);let n=this.parent;for(;n;){if(e.match(n))return n;n=n.parent}return null}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const t=Array.from(this._classes).sort().join(","),e=this._styles.toString(),n=Array.from(this._attrs).map((t=>`${t[0]}="${t[1]}"`)).sort().join(" ");return this.name+(""==t?"":` class="${t}"`)+(e?` style="${e}"`:"")+(""==n?"":" "+n)}_clone(t=!1){const e=[];if(t)for(const n of this.getChildren())e.push(n._clone(t));const n=new this.constructor(this.document,this.name,this._attrs,e);return n._classes=new Set(this._classes),n._styles.set(this._styles.getNormalized()),n._customProperties=new Map(this._customProperties),n.getFillerOffset=this.getFillerOffset,n._isAllowedInsideAttributeElement=this.isAllowedInsideAttributeElement,n}_appendChild(t){return this._insertChild(this.childCount,t)}_insertChild(t,e){this._fireChange("children",this);let n=0;const i=function(t,e){return"string"==typeof e?[new di(t,e)]:(Kn(e)||(e=[e]),Array.from(e).map((e=>"string"==typeof e?new di(t,e):e instanceof hi?new di(t,e.data):e)))}(this.document,e);for(const e of i)null!==e.parent&&e._remove(),e.parent=this,e.document=this.document,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n0&&(this._classes.clear(),!0):"style"==t?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(t)}_addClass(t){this._fireChange("attributes",this);for(const e of ei(t))this._classes.add(e)}_removeClass(t){this._fireChange("attributes",this);for(const e of ei(t))this._classes.delete(e)}_setStyle(t,e){this._fireChange("attributes",this),this._styles.set(t,e)}_removeStyle(t){this._fireChange("attributes",this);for(const e of ei(t))this._styles.remove(e)}_setCustomProperty(t,e){this._customProperties.set(t,e)}_removeCustomProperty(t){return this._customProperties.delete(t)}}function er(t,e){const n=e.split(/\s+/);t.clear(),n.forEach((e=>t.add(e)))}class nr extends tr{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=ir}is(t,e=null){return e?e===this.name&&("containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}}function ir(){const t=[...this.getChildren()],e=t[this.childCount-1];if(e&&e.is("element","br"))return this.childCount;for(const e of t)if(!e.is("uiElement"))return null;return this.childCount}class rr extends nr{constructor(t,e,n,i){super(t,e,n,i),this.set("isReadOnly",!1),this.set("isFocused",!1),this.bind("isReadOnly").to(t),this.bind("isFocused").to(t,"isFocused",(e=>e&&t.selection.editableElement==this)),this.listenTo(t.selection,"change",(()=>{this.isFocused=t.isFocused&&t.selection.editableElement==this}))}is(t,e=null){return e?e===this.name&&("editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}destroy(){this.stopListening()}}Gt(rr,Vt);const or=Symbol("rootName");class sr extends rr{constructor(t,e){super(t,e),this.rootName="main"}is(t,e=null){return e?e===this.name&&("rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}get rootName(){return this.getCustomProperty(or)}set rootName(t){this._setCustomProperty(or,t)}set _name(t){this.name=t}}class ar{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new l.a("view-tree-walker-no-start-position",null);if(t.direction&&"forward"!=t.direction&&"backward"!=t.direction)throw new l.a("view-tree-walker-unknown-direction",t.startPosition,{direction:t.direction});this.boundaries=t.boundaries||null,t.startPosition?this.position=lr._createAt(t.startPosition):this.position=lr._createAt(t.boundaries["backward"==t.direction?"end":"start"]),this.direction=t.direction||"forward",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}skip(t){let e,n,i;do{i=this.position,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=i)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&t.offset===n.childCount)return{done:!0};if(n===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0};let i;if(n instanceof di){if(t.isAtEnd)return this.position=lr._createAfter(n),this._next();i=n.data[t.offset]}else i=n.getChild(t.offset);if(i instanceof tr)return this.shallow?t.offset++:t=new lr(i,0),this.position=t,this._formatReturnValue("elementStart",i,e,t,1);if(i instanceof di){if(this.singleCharacters)return t=new lr(i,0),this.position=t,this._next();{let n,r=i.data.length;return i==this._boundaryEndParent?(r=this.boundaries.end.offset,n=new hi(i,0,r),t=lr._createAfter(n)):(n=new hi(i,0,i.data.length),t.offset++),this.position=t,this._formatReturnValue("text",n,e,t,r)}}if("string"==typeof i){let i;i=this.singleCharacters?1:(n===this._boundaryEndParent?this.boundaries.end.offset:n.data.length)-t.offset;const r=new hi(n,t.offset,i);return t.offset+=i,this.position=t,this._formatReturnValue("text",r,e,t,i)}return t=lr._createAfter(n),this.position=t,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",n,e,t)}_previous(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&0===t.offset)return{done:!0};if(n==this._boundaryStartParent&&t.offset==this.boundaries.start.offset)return{done:!0};let i;if(n instanceof di){if(t.isAtStart)return this.position=lr._createBefore(n),this._previous();i=n.data[t.offset-1]}else i=n.getChild(t.offset-1);if(i instanceof tr)return this.shallow?(t.offset--,this.position=t,this._formatReturnValue("elementStart",i,e,t,1)):(t=new lr(i,i.childCount),this.position=t,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",i,e,t));if(i instanceof di){if(this.singleCharacters)return t=new lr(i,i.data.length),this.position=t,this._previous();{let n,r=i.data.length;if(i==this._boundaryStartParent){const e=this.boundaries.start.offset;n=new hi(i,e,i.data.length-e),r=n.data.length,t=lr._createBefore(n)}else n=new hi(i,0,i.data.length),t.offset--;return this.position=t,this._formatReturnValue("text",n,e,t,r)}}if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{const e=n===this._boundaryStartParent?this.boundaries.start.offset:0;i=t.offset-e}t.offset-=i;const r=new hi(n,t.offset,i);return this.position=t,this._formatReturnValue("text",r,e,t,i)}return t=lr._createBefore(n),this.position=t,this._formatReturnValue("elementStart",n,e,t,1)}_formatReturnValue(t,e,n,i,r){return e instanceof hi&&(e.offsetInText+e.data.length==e.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?n=lr._createAfter(e.textNode):(i=lr._createAfter(e.textNode),this.position=i)),0===e.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?n=lr._createBefore(e.textNode):(i=lr._createBefore(e.textNode),this.position=i))),{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:i,length:r}}}}class lr{constructor(t,e){this.parent=t,this.offset=e}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const t=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===t}get root(){return this.parent.root}get editableElement(){let t=this.parent;for(;!(t instanceof rr);){if(!t.parent)return null;t=t.parent}return t}getShiftedBy(t){const e=lr._createAt(this),n=e.offset+t;return e.offset=n<0?0:n,e}getLastMatchingPosition(t,e={}){e.startPosition=this;const n=new ar(e);return n.skip(t),n.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(t){const e=this.getAncestors(),n=t.getAncestors();let i=0;for(;e[i]==n[i]&&e[i];)i++;return 0===i?null:e[i-1]}is(t){return"position"===t||"view:position"===t}isEqual(t){return this.parent==t.parent&&this.offset==t.offset}isBefore(t){return"before"==this.compareWith(t)}isAfter(t){return"after"==this.compareWith(t)}compareWith(t){if(this.root!==t.root)return"different";if(this.isEqual(t))return"same";const e=this.parent.is("node")?this.parent.getPath():[],n=t.parent.is("node")?t.parent.getPath():[];e.push(this.offset),n.push(t.offset);const i=li(e,n);switch(i){case"prefix":return"before";case"extension":return"after";default:return e[i]0?new this(n,i):new this(i,n)}static _createIn(t){return this._createFromParentsAndOffsets(t,0,t,t.childCount)}static _createOn(t){const e=t.is("$textProxy")?t.offsetSize:1;return this._createFromPositionAndShift(lr._createBefore(t),e)}}function ur(t){return!(!t.item.is("attributeElement")&&!t.item.is("uiElement"))}function dr(t){let e=0;for(const n of t)e++;return e}class hr{constructor(t=null,e,n){this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",this.setTo(t,e,n)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.end:t.start).clone()}get focus(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.start:t.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const t of this._ranges)yield t.clone()}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?t.clone():null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?t.clone():null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}isEqual(t){if(this.isFake!=t.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=t.fakeSelectionLabel)return!1;if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const i of t._ranges)if(e.isEqual(i)){n=!0;break}if(!n)return!1}return!0}isSimilar(t){if(this.isBackward!=t.isBackward)return!1;const e=dr(this.getRanges());if(e!=dr(t.getRanges()))return!1;if(0==e)return!0;for(let e of this.getRanges()){e=e.getTrimmed();let n=!1;for(let i of t.getRanges())if(i=i.getTrimmed(),e.start.isEqual(i.start)&&e.end.isEqual(i.end)){n=!0;break}if(!n)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(t,e,n){if(null===t)this._setRanges([]),this._setFakeOptions(e);else if(t instanceof hr||t instanceof fr)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof cr)this._setRanges([t],e&&e.backward),this._setFakeOptions(e);else if(t instanceof lr)this._setRanges([new cr(t)]),this._setFakeOptions(e);else if(t instanceof ui){const i=!!n&&!!n.backward;let r;if(void 0===e)throw new l.a("view-selection-setto-required-second-parameter",this);r="in"==e?cr._createIn(t):"on"==e?cr._createOn(t):new cr(lr._createAt(t,e)),this._setRanges([r],i),this._setFakeOptions(n)}else{if(!Kn(t))throw new l.a("view-selection-setto-not-selectable",this);this._setRanges(t,e&&e.backward),this._setFakeOptions(e)}this.fire("change")}setFocus(t,e){if(null===this.anchor)throw new l.a("view-selection-setfocus-no-ranges",this);const n=lr._createAt(t,e);if("same"==n.compareWith(this.focus))return;const i=this.anchor;this._ranges.pop(),"before"==n.compareWith(i)?this._addRange(new cr(n,i),!0):this._addRange(new cr(i,n)),this.fire("change")}is(t){return"selection"===t||"view:selection"===t}_setRanges(t,e=!1){t=Array.from(t),this._ranges=[];for(const e of t)this._addRange(e);this._lastRangeBackward=!!e}_setFakeOptions(t={}){this._isFake=!!t.fake,this._fakeSelectionLabel=t.fake&&t.label||""}_addRange(t,e=!1){if(!(t instanceof cr))throw new l.a("view-selection-add-range-not-range",this);this._pushRange(t),this._lastRangeBackward=!!e}_pushRange(t){for(const e of this._ranges)if(t.isIntersecting(e))throw new l.a("view-selection-range-intersects",this,{addedRange:t,intersectingRange:e});this._ranges.push(new cr(t.start,t.end))}}Gt(hr,d);class fr{constructor(t=null,e,n){this._selection=new hr,this._selection.delegate("change").to(this),this._selection.setTo(t,e,n)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(t){return this._selection.isEqual(t)}isSimilar(t){return this._selection.isSimilar(t)}is(t){return"selection"===t||"documentSelection"==t||"view:selection"==t||"view:documentSelection"==t}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setFocus(t,e){this._selection.setFocus(t,e)}}Gt(fr,d);class pr extends r{constructor(t,e,n){super(t,e),this.startRange=n,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const mr=Symbol("bubbling contexts");var gr={fire(t,...e){try{const n=t instanceof r?t:new r(this,t),i=yr(this);if(!i.size)return;if(br(n,"capturing",this),_r(i,"$capture",n,...e))return n.return;const o=n.startRange||this.selection.getFirstRange(),s=o?o.getContainedElement():null,a=!!s&&Boolean(vr(i,s));let l=s||function(t){if(!t)return null;const e=t.start.parent,n=t.end.parent,i=e.getPath(),r=n.getPath();return i.length>r.length?e:n}(o);if(br(n,"atTarget",l),!a){if(_r(i,"$text",n,...e))return n.return;br(n,"bubbling",l)}for(;l;){if(l.is("rootElement")){if(_r(i,"$root",n,...e))return n.return}else if(l.is("element")&&_r(i,l.name,n,...e))return n.return;if(_r(i,l,n,...e))return n.return;l=l.parent,br(n,"bubbling",l)}return br(n,"bubbling",this),_r(i,"$document",n,...e),n.return}catch(t){l.a.rethrowUnexpectedError(t,this)}},_addEventListener(t,e,n){const i=ei(n.context||"$document"),r=yr(this);for(const o of i){let i=r.get(o);i||(i=Object.create(d),r.set(o,i)),this.listenTo(i,t,e,n)}},_removeEventListener(t,e){const n=yr(this);for(const i of n.values())this.stopListening(i,t,e)}};function br(t,e,n){t instanceof pr&&(t._eventPhase=e,t._currentTarget=n)}function _r(t,e,n,...i){const r="string"==typeof e?t.get(e):vr(t,e);return!!r&&(r.fire(n,...i),n.stop.called)}function vr(t,e){for(const[n,i]of t)if("function"==typeof n&&n(e))return i;return null}function yr(t){return t[mr]||(t[mr]=new Map),t[mr]}class wr{constructor(t){this.selection=new fr,this.roots=new Qn({idProperty:"rootName"}),this.stylesProcessor=t,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isComposing",!1),this._postFixers=new Set}getRoot(t="main"){return this.roots.get(t)}registerPostFixer(t){this._postFixers.add(t)}destroy(){this.roots.map((t=>t.destroy())),this.stopListening()}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(e=n(t),e)break}while(e)}}Gt(wr,gr),Gt(wr,Vt);class xr extends tr{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=kr,this._priority=10,this._id=null,this._clonesGroup=null}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new l.a("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}is(t,e=null){return e?e===this.name&&("attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t):"attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}isSimilar(t){return null!==this.id||null!==t.id?this.id===t.id:super.isSimilar(t)&&this.priority==t.priority}_clone(t){const e=super._clone(t);return e._priority=this._priority,e._id=this._id,e}}function kr(){if(Mr(this))return null;let t=this.parent;for(;t&&t.is("attributeElement");){if(Mr(t)>1)return null;t=t.parent}return!t||Mr(t)>1?null:this.childCount}function Mr(t){return Array.from(t.getChildren()).filter((t=>!t.is("uiElement"))).length}xr.DEFAULT_PRIORITY=10;class Sr extends tr{constructor(t,e,n,i){super(t,e,n,i),this._isAllowedInsideAttributeElement=!0,this.getFillerOffset=Lr}is(t,e=null){return e?e===this.name&&("emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t):"emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof ui||Array.from(e).length>0))throw new l.a("view-emptyelement-cannot-add",[this,e])}}function Lr(){return null}const Ar=navigator.userAgent.toLowerCase();var Tr={isMac:function(t){return t.indexOf("macintosh")>-1}(Ar),isGecko:function(t){return!!t.match(/gecko\/\d+/)}(Ar),isSafari:function(t){return t.indexOf(" applewebkit/")>-1&&-1===t.indexOf("chrome")}(Ar),isAndroid:function(t){return t.indexOf("android")>-1}(Ar),isBlink:function(t){return t.indexOf("chrome/")>-1&&t.indexOf("edge/")<0}(Ar),features:{isRegExpUnicodePropertySupported:function(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}return t}()}};const Cr={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},Dr={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},Er=function(){const t={arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++)t[String.fromCharCode(e).toLowerCase()]=e;for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;return t}(),Pr=Object.fromEntries(Object.entries(Er).map((([t,e])=>[e,t.charAt(0).toUpperCase()+t.slice(1)])));function Yr(t){let e;if("string"==typeof t){if(e=Er[t.toLowerCase()],!e)throw new l.a("keyboard-unknown-key",null,{key:t})}else e=t.keyCode+(t.altKey?Er.alt:0)+(t.ctrlKey?Er.ctrl:0)+(t.shiftKey?Er.shift:0)+(t.metaKey?Er.cmd:0);return e}function Or(t){return"string"==typeof t&&(t=function(t){return t.split("+").map((t=>t.trim()))}(t)),t.map((t=>"string"==typeof t?function(t){if(t.endsWith("!"))return Yr(t.slice(0,-1));const e=Yr(t);return Tr.isMac&&e==Er.ctrl?Er.cmd:e}(t):t)).reduce(((t,e)=>e+t),0)}function Ir(t){let e=Or(t);return Object.entries(Tr.isMac?Cr:Dr).reduce(((t,[n,i])=>(0!=(e&Er[n])&&(e&=~Er[n],t+=i),t)),"")+(e?Pr[e]:"")}function Rr(t,e){const n="ltr"===e;switch(t){case Er.arrowleft:return n?"left":"right";case Er.arrowright:return n?"right":"left";case Er.arrowup:return"up";case Er.arrowdown:return"down"}}function Nr(t,e){const n=Rr(t,e);return"down"===n||"right"===n}class jr extends tr{constructor(t,e,n,i){super(t,e,n,i),this._isAllowedInsideAttributeElement=!0,this.getFillerOffset=Hr}is(t,e=null){return e?e===this.name&&("uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t):"uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof ui||Array.from(e).length>0))throw new l.a("view-uielement-cannot-add",this)}render(t){return this.toDomElement(t)}toDomElement(t){const e=t.createElement(this.name);for(const t of this.getAttributeKeys())e.setAttribute(t,this.getAttribute(t));return e}}function zr(t){t.document.on("arrowKey",((e,n)=>function(t,e,n){if(e.keyCode==Er.arrowright){const t=e.domTarget.ownerDocument.defaultView.getSelection(),i=1==t.rangeCount&&t.getRangeAt(0).collapsed;if(i||e.shiftKey){const e=t.focusNode,r=t.focusOffset,o=n.domPositionToView(e,r);if(null===o)return;let s=!1;const a=o.getLastMatchingPosition((t=>(t.item.is("uiElement")&&(s=!0),!(!t.item.is("uiElement")&&!t.item.is("attributeElement")))));if(s){const e=n.viewPositionToDom(a);i?t.collapse(e.parent,e.offset):t.extend(e.parent,e.offset)}}}}(0,n,t.domConverter)),{priority:"low"})}function Hr(){return null}class Fr extends tr{constructor(t,e,n,i){super(t,e,n,i),this._isAllowedInsideAttributeElement=!0,this.getFillerOffset=Br}is(t,e=null){return e?e===this.name&&("rawElement"===t||"view:rawElement"===t||"element"===t||"view:element"===t):"rawElement"===t||"view:rawElement"===t||t===this.name||t==="view:"+this.name||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof ui||Array.from(e).length>0))throw new l.a("view-rawelement-cannot-add",[this,e])}}function Br(){return null}class Vr{constructor(t,e){this.document=t,this._children=[],e&&this._insertChild(0,e)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"view:documentFragment"===t}_appendChild(t){return this._insertChild(this.childCount,t)}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(t,e){this._fireChange("children",this);let n=0;const i=function(t,e){return"string"==typeof e?[new di(t,e)]:(Kn(e)||(e=[e]),Array.from(e).map((e=>"string"==typeof e?new di(t,e):e instanceof hi?new di(t,e.data):e)))}(this.document,e);for(const e of i)null!==e.parent&&e._remove(),e.parent=this,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n{}),void 0!==i.isAllowedInsideAttributeElement&&(r._isAllowedInsideAttributeElement=i.isAllowedInsideAttributeElement),r}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){le(t)&&void 0===n&&(n=e),n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}breakAttributes(t){return t instanceof lr?this._breakAttributes(t):this._breakAttributesRange(t)}breakContainer(t){const e=t.parent;if(!e.is("containerElement"))throw new l.a("view-writer-break-non-container-element",this.document);if(!e.parent)throw new l.a("view-writer-break-root",this.document);if(t.isAtStart)return lr._createBefore(e);if(!t.isAtEnd){const n=e._clone(!1);this.insert(lr._createAfter(e),n);const i=new cr(t,lr._createAt(e,"end")),r=new lr(n,0);this.move(i,r)}return lr._createAfter(e)}mergeAttributes(t){const e=t.offset,n=t.parent;if(n.is("$text"))return t;if(n.is("attributeElement")&&0===n.childCount){const t=n.parent,e=n.index;return n._remove(),this._removeFromClonedElementsGroup(n),this.mergeAttributes(new lr(t,e))}const i=n.getChild(e-1),r=n.getChild(e);if(!i||!r)return t;if(i.is("$text")&&r.is("$text"))return Gr(i,r);if(i.is("attributeElement")&&r.is("attributeElement")&&i.isSimilar(r)){const t=i.childCount;return i._appendChild(r.getChildren()),r._remove(),this._removeFromClonedElementsGroup(r),this.mergeAttributes(new lr(i,t))}return t}mergeContainers(t){const e=t.nodeBefore,n=t.nodeAfter;if(!(e&&n&&e.is("containerElement")&&n.is("containerElement")))throw new l.a("view-writer-merge-containers-invalid-position",this.document);const i=e.getChild(e.childCount-1),r=i instanceof di?lr._createAt(i,"end"):lr._createAt(e,"end");return this.move(cr._createIn(n),lr._createAt(e,"end")),this.remove(cr._createOn(n)),r}insert(t,e){!function t(e,n){for(const i of e){if(!Jr.some((t=>i instanceof t)))throw new l.a("view-writer-insert-invalid-node-type",n);i.is("$text")||t(i.getChildren(),n)}}(e=Kn(e)?[...e]:[e],this.document);const n=e.reduce(((t,e)=>{const n=t[t.length-1],i=!(e.is("uiElement")&&e.isAllowedInsideAttributeElement);return n&&n.breakAttributes==i?n.nodes.push(e):t.push({breakAttributes:i,nodes:[e]}),t}),[]);let i=null,r=t;for(const{nodes:t,breakAttributes:e}of n){const n=this._insertNodes(r,t,e);i||(i=n.start),r=n.end}return i?new cr(i,r):new cr(t)}remove(t){const e=t instanceof cr?t:cr._createOn(t);if(Kr(e,this.document),e.isCollapsed)return new Vr(this.document);const{start:n,end:i}=this._breakAttributesRange(e,!0),r=n.parent,o=i.offset-n.offset,s=r._removeChildren(n.offset,o);for(const t of s)this._removeFromClonedElementsGroup(t);const a=this.mergeAttributes(n);return e.start=a,e.end=a.clone(),new Vr(this.document,s)}clear(t,e){Kr(t,this.document);const n=t.getWalker({direction:"backward",ignoreElementEnd:!0});for(const i of n){const n=i.item;let r;if(n.is("element")&&e.isSimilar(n))r=cr._createOn(n);else if(!i.nextPosition.isAfter(t.start)&&n.is("$textProxy")){const t=n.getAncestors().find((t=>t.is("element")&&e.isSimilar(t)));t&&(r=cr._createIn(t))}r&&(r.end.isAfter(t.end)&&(r.end=t.end),r.start.isBefore(t.start)&&(r.start=t.start),this.remove(r))}}move(t,e){let n;if(e.isAfter(t.end)){const i=(e=this._breakAttributes(e,!0)).parent,r=i.childCount;t=this._breakAttributesRange(t,!0),n=this.remove(t),e.offset+=i.childCount-r}else n=this.remove(t);return this.insert(e,n)}wrap(t,e){if(!(e instanceof xr))throw new l.a("view-writer-wrap-invalid-attribute",this.document);if(Kr(t,this.document),t.isCollapsed){let i=t.start;i.parent.is("element")&&(n=i.parent,!Array.from(n.getChildren()).some((t=>!t.is("uiElement"))))&&(i=i.getLastMatchingPosition((t=>t.item.is("uiElement")))),i=this._wrapPosition(i,e);const r=this.document.selection;return r.isCollapsed&&r.getFirstPosition().isEqual(t.start)&&this.setSelection(i),new cr(i)}return this._wrapRange(t,e);var n}unwrap(t,e){if(!(e instanceof xr))throw new l.a("view-writer-unwrap-invalid-attribute",this.document);if(Kr(t,this.document),t.isCollapsed)return t;const{start:n,end:i}=this._breakAttributesRange(t,!0),r=n.parent,o=this._unwrapChildren(r,n.offset,i.offset,e),s=this.mergeAttributes(o.start);s.isEqual(o.start)||o.end.offset--;const a=this.mergeAttributes(o.end);return new cr(s,a)}rename(t,e){const n=new nr(this.document,t,e.getAttributes());return this.insert(lr._createAfter(e),n),this.move(cr._createIn(e),lr._createAt(n,0)),this.remove(cr._createOn(e)),n}clearClonedElementsGroup(t){this._cloneGroups.delete(t)}createPositionAt(t,e){return lr._createAt(t,e)}createPositionAfter(t){return lr._createAfter(t)}createPositionBefore(t){return lr._createBefore(t)}createRange(t,e){return new cr(t,e)}createRangeOn(t){return cr._createOn(t)}createRangeIn(t){return cr._createIn(t)}createSelection(t,e,n){return new hr(t,e,n)}_insertNodes(t,e,n){let i,r;if(i=n?Ur(t):t.parent.is("$text")?t.parent.parent:t.parent,!i)throw new l.a("view-writer-invalid-position-container",this.document);r=n?this._breakAttributes(t,!0):t.parent.is("$text")?qr(t):t;const o=i._insertChild(r.offset,e);for(const t of e)this._addToClonedElementsGroup(t);const s=r.getShiftedBy(o),a=this.mergeAttributes(r);a.isEqual(r)||s.offset--;const c=this.mergeAttributes(s);return new cr(a,c)}_wrapChildren(t,e,n,i){let r=e;const o=[];for(;r!1,t.parent._insertChild(t.offset,n);const i=new cr(t,t.getShiftedBy(1));this.wrap(i,e);const r=new lr(n.parent,n.index);n._remove();const o=r.nodeBefore,s=r.nodeAfter;return o instanceof di&&s instanceof di?Gr(o,s):$r(r)}_wrapAttributeElement(t,e){if(!Qr(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&e.hasAttribute(n)&&e.getAttribute(n)!==t.getAttribute(n))return!1;for(const n of t.getStyleNames())if(e.hasStyle(n)&&e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&(e.hasAttribute(n)||this.setAttribute(n,t.getAttribute(n),e));for(const n of t.getStyleNames())e.hasStyle(n)||this.setStyle(n,t.getStyle(n),e);for(const n of t.getClassNames())e.hasClass(n)||this.addClass(n,e);return!0}_unwrapAttributeElement(t,e){if(!Qr(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&(!e.hasAttribute(n)||e.getAttribute(n)!==t.getAttribute(n)))return!1;if(!e.hasClass(...t.getClassNames()))return!1;for(const n of t.getStyleNames())if(!e.hasStyle(n)||e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&this.removeAttribute(n,e);return this.removeClass(Array.from(t.getClassNames()),e),this.removeStyle(Array.from(t.getStyleNames()),e),!0}_breakAttributesRange(t,e=!1){const n=t.start,i=t.end;if(Kr(t,this.document),t.isCollapsed){const n=this._breakAttributes(t.start,e);return new cr(n,n)}const r=this._breakAttributes(i,e),o=r.parent.childCount,s=this._breakAttributes(n,e);return r.offset+=r.parent.childCount-o,new cr(s,r)}_breakAttributes(t,e=!1){const n=t.offset,i=t.parent;if(t.parent.is("emptyElement"))throw new l.a("view-writer-cannot-break-empty-element",this.document);if(t.parent.is("uiElement"))throw new l.a("view-writer-cannot-break-ui-element",this.document);if(t.parent.is("rawElement"))throw new l.a("view-writer-cannot-break-raw-element",this.document);if(!e&&i.is("$text")&&Zr(i.parent))return t.clone();if(Zr(i))return t.clone();if(i.is("$text"))return this._breakAttributes(qr(t),e);if(n==i.childCount){const t=new lr(i.parent,i.index+1);return this._breakAttributes(t,e)}if(0===n){const t=new lr(i.parent,i.index);return this._breakAttributes(t,e)}{const t=i.index+1,r=i._clone();i.parent._insertChild(t,r),this._addToClonedElementsGroup(r);const o=i.childCount-n,s=i._removeChildren(n,o);r._appendChild(s);const a=new lr(i.parent,t);return this._breakAttributes(a,e)}}_addToClonedElementsGroup(t){if(!t.root.is("rootElement"))return;if(t.is("element"))for(const e of t.getChildren())this._addToClonedElementsGroup(e);const e=t.id;if(!e)return;let n=this._cloneGroups.get(e);n||(n=new Set,this._cloneGroups.set(e,n)),n.add(t),t._clonesGroup=n}_removeFromClonedElementsGroup(t){if(t.is("element"))for(const e of t.getChildren())this._removeFromClonedElementsGroup(e);const e=t.id;if(!e)return;const n=this._cloneGroups.get(e);n&&n.delete(t)}}function Ur(t){let e=t.parent;for(;!Zr(e);){if(!e)return;e=e.parent}return e}function Xr(t,e){return t.prioritye.priority)&&t.getIdentity()t.createTextNode(" "),no=t=>{const e=t.createElement("span");return e.dataset.ckeFiller=!0,e.innerHTML=" ",e},io=t=>{const e=t.createElement("br");return e.dataset.ckeFiller=!0,e},ro="⁠".repeat(7);function oo(t){return to(t)&&t.data.substr(0,7)===ro}function so(t){return 7==t.data.length&&oo(t)}function ao(t){return oo(t)?t.data.slice(7):t.data}function lo(t,e){if(e.keyCode==Er.arrowleft){const t=e.domTarget.ownerDocument.defaultView.getSelection();if(1==t.rangeCount&&t.getRangeAt(0).collapsed){const e=t.getRangeAt(0).startContainer,n=t.getRangeAt(0).startOffset;oo(e)&&n<=7&&t.collapse(e,0)}}}function co(t,e,n,i=!1){n=n||function(t,e){return t===e},Array.isArray(t)||(t=Array.prototype.slice.call(t)),Array.isArray(e)||(e=Array.prototype.slice.call(e));const r=function(t,e,n){const i=uo(t,e,n);if(-1===i)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const r=uo(ho(t,i),ho(e,i),n);return{firstIndex:i,lastIndexOld:t.length-r,lastIndexNew:e.length-r}}(t,e,n);return i?function(t,e){const{firstIndex:n,lastIndexOld:i,lastIndexNew:r}=t;if(-1===n)return Array(e).fill("equal");let o=[];return n>0&&(o=o.concat(Array(n).fill("equal"))),r-n>0&&(o=o.concat(Array(r-n).fill("insert"))),i-n>0&&(o=o.concat(Array(i-n).fill("delete"))),r0&&n.push({index:i,type:"insert",values:t.slice(i,o)}),r-i>0&&n.push({index:i+(o-i),type:"delete",howMany:r-i}),n}(e,r)}function uo(t,e,n){for(let i=0;i200||r>200||i+r>300)return fo.fastDiff(t,e,n,!0);let o,s;if(rc?-1:1;u[i+h]&&(u[i]=u[i+h].slice(0)),u[i]||(u[i]=[]),u[i].push(r>c?o:s);let f=Math.max(r,c),p=f-i;for(;pc;f--)d[f]=h(f);d[c]=h(c),p++}while(d[c]!==l);return u[c].slice(1)}function po(t,e,n){t.insertBefore(n,t.childNodes[e]||null)}function mo(t){const e=t.parentNode;e&&e.removeChild(t)}function go(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}fo.fastDiff=co;class bo{constructor(t,e){this.domDocuments=new Set,this.domConverter=t,this.markedAttributes=new Set,this.markedChildren=new Set,this.markedTexts=new Set,this.selection=e,this.isFocused=!1,this._inlineFiller=null,this._fakeSelectionContainer=null}markToSync(t,e){if("text"===t)this.domConverter.mapViewToDom(e.parent)&&this.markedTexts.add(e);else{if(!this.domConverter.mapViewToDom(e))return;if("attributes"===t)this.markedAttributes.add(e);else{if("children"!==t)throw new l.a("view-renderer-unknown-type",this);this.markedChildren.add(e)}}}render(){let t;for(const t of this.markedChildren)this._updateChildrenMappings(t);this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?t=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(t=this.selection.getFirstPosition(),this.markedChildren.add(t.parent));for(const t of this.markedAttributes)this._updateAttrs(t);for(const e of this.markedChildren)this._updateChildren(e,{inlineFillerPosition:t});for(const e of this.markedTexts)!this.markedChildren.has(e.parent)&&this.domConverter.mapViewToDom(e.parent)&&this._updateText(e,{inlineFillerPosition:t});if(t){const e=this.domConverter.viewPositionToDom(t),n=e.parent.ownerDocument;oo(e.parent)?this._inlineFiller=e.parent:this._inlineFiller=_o(n,e.parent,e.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(this.domConverter.mapViewToDom(t).childNodes),i=Array.from(this.domConverter.viewChildrenToDom(t,e.ownerDocument,{withChildren:!1})),r=this._diffNodeLists(n,i),o=this._findReplaceActions(r,n,i);if(-1!==o.indexOf("replace")){const e={equal:0,insert:0,delete:0};for(const r of o)if("replace"===r){const r=e.equal+e.insert,o=e.equal+e.delete,s=t.getChild(r);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,n[o]),mo(i[r]),e.equal++}else e[r]++}}_updateElementMappings(t,e){this.domConverter.unbindDomElement(e),this.domConverter.bindElements(e,t),this.markedChildren.add(t),this.markedAttributes.add(t)}_getInlineFillerPosition(){const t=this.selection.getFirstPosition();return t.parent.is("$text")?lr._createBefore(this.selection.getFirstPosition().parent):t}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=this.domConverter.viewPositionToDom(t);return!!(e&&to(e.parent)&&oo(e.parent))}_removeInlineFiller(){const t=this._inlineFiller;if(!oo(t))throw new l.a("view-renderer-filler-was-lost",this);so(t)?t.parentNode.removeChild(t):t.data=t.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=t.parent,n=t.offset;if(!this.domConverter.mapViewToDom(e.root))return!1;if(!e.is("element"))return!1;if(!function(t){if("false"==t.getAttribute("contenteditable"))return!1;const e=t.findAncestor((t=>t.hasAttribute("contenteditable")));return!e||"true"==e.getAttribute("contenteditable")}(e))return!1;if(n===e.getFillerOffset())return!1;const i=t.nodeBefore,r=t.nodeAfter;return!(i instanceof di||r instanceof di)}_updateText(t,e){const n=this.domConverter.findCorrespondingDomText(t),i=this.domConverter.viewToDom(t,n.ownerDocument),r=n.data;let o=i.data;const s=e.inlineFillerPosition;if(s&&s.parent==t.parent&&s.offset==t.index&&(o=ro+o),r!=o){const t=co(r,o);for(const e of t)"insert"===e.type?n.insertData(e.index,e.values.join("")):n.deleteData(e.index,e.howMany)}}_updateAttrs(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.attributes).map((t=>t.name)),i=t.getAttributeKeys();for(const n of i)e.setAttribute(n,t.getAttribute(n));for(const i of n)t.hasAttribute(i)||e.removeAttribute(i)}_updateChildren(t,e){const n=this.domConverter.mapViewToDom(t);if(!n)return;const i=e.inlineFillerPosition,r=this.domConverter.mapViewToDom(t).childNodes,o=Array.from(this.domConverter.viewChildrenToDom(t,n.ownerDocument,{bind:!0,inlineFillerPosition:i}));i&&i.parent===t&&_o(n.ownerDocument,o,i.offset);const s=this._diffNodeLists(r,o);let a=0;const l=new Set;for(const t of s)"delete"===t?(l.add(r[a]),mo(r[a])):"equal"===t&&a++;a=0;for(const t of s)"insert"===t?(po(n,a,o[a]),a++):"equal"===t&&(this._markDescendantTextToSync(this.domConverter.domToView(o[a])),a++);for(const t of l)t.parentNode||this.domConverter.unbindDomElement(t)}_diffNodeLists(t,e){return fo(t=function(t,e){const n=Array.from(t);return 0!=n.length&&e?(n[n.length-1]==e&&n.pop(),n):n}(t,this._fakeSelectionContainer),e,yo.bind(null,this.domConverter))}_findReplaceActions(t,e,n){if(-1===t.indexOf("insert")||-1===t.indexOf("delete"))return t;let i=[],r=[],o=[];const s={equal:0,insert:0,delete:0};for(const a of t)"insert"===a?o.push(n[s.equal+s.insert]):"delete"===a?r.push(e[s.equal+s.delete]):(i=i.concat(fo(r,o,vo).map((t=>"equal"===t?"replace":t))),i.push("equal"),r=[],o=[]),s[a]++;return i.concat(fo(r,o,vo).map((t=>"equal"===t?"replace":t)))}_markDescendantTextToSync(t){if(t)if(t.is("$text"))this.markedTexts.add(t);else if(t.is("element"))for(const e of t.getChildren())this._markDescendantTextToSync(e)}_updateSelection(){if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const t=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&t&&(this.selection.isFake?this._updateFakeSelection(t):(this._removeFakeSelection(),this._updateDomSelection(t)))}_updateFakeSelection(t){const e=t.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(t){const e=t.createElement("div");return e.className="ck-fake-selection-container",Object.assign(e.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),e.textContent=" ",e}(e));const n=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(n,this.selection),!this._fakeSelectionNeedsUpdate(t))return;n.parentElement&&n.parentElement==t||t.appendChild(n),n.textContent=this.selection.fakeSelectionLabel||" ";const i=e.getSelection(),r=e.createRange();i.removeAllRanges(),r.selectNodeContents(n),i.addRange(r)}_updateDomSelection(t){const e=t.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(e))return;const n=this.domConverter.viewPositionToDom(this.selection.anchor),i=this.domConverter.viewPositionToDom(this.selection.focus);e.collapse(n.parent,n.offset),e.extend(i.parent,i.offset),Tr.isGecko&&function(t,e){const n=t.parent;if(n.nodeType!=Node.ELEMENT_NODE||t.offset!=n.childNodes.length-1)return;const i=n.childNodes[t.offset];i&&"BR"==i.tagName&&e.addRange(e.getRangeAt(0))}(i,e)}_domSelectionNeedsUpdate(t){if(!this.domConverter.isDomSelectionCorrect(t))return!0;const e=t&&this.domConverter.domSelectionToView(t);return!(e&&this.selection.isEqual(e)||!this.selection.isCollapsed&&this.selection.isSimilar(e))}_fakeSelectionNeedsUpdate(t){const e=this._fakeSelectionContainer,n=t.ownerDocument.getSelection();return!e||e.parentElement!==t||n.anchorNode!==e&&!e.contains(n.anchorNode)||e.textContent!==this.selection.fakeSelectionLabel}_removeDomSelection(){for(const t of this.domDocuments)if(t.getSelection().rangeCount){const e=t.activeElement,n=this.domConverter.mapDomToView(e);e&&n&&t.getSelection().removeAllRanges()}}_removeFakeSelection(){const t=this._fakeSelectionContainer;t&&t.remove()}_updateFocus(){if(this.isFocused){const t=this.selection.editableElement;t&&this.domConverter.focus(t)}}}function _o(t,e,n){const i=e instanceof Array?e:e.childNodes,r=i[n];if(to(r))return r.data=ro+r.data,r;{const r=t.createTextNode(ro);return Array.isArray(e)?i.splice(n,0,r):po(e,n,r),r}}function vo(t,e){return go(t)&&go(e)&&!to(t)&&!to(e)&&t.nodeType!==Node.COMMENT_NODE&&e.nodeType!==Node.COMMENT_NODE&&t.tagName.toLowerCase()===e.tagName.toLowerCase()}function yo(t,e,n){return e===n||(to(e)&&to(n)?e.data===n.data:!(!t.isBlockFiller(e)||!t.isBlockFiller(n)))}Gt(bo,Vt);var wo={window,document};function xo(t){let e=0;for(;t.previousSibling;)t=t.previousSibling,e++;return e}function ko(t){const e=[];for(;t&&t.nodeType!=Node.DOCUMENT_NODE;)e.unshift(t),t=t.parentNode;return e}const Mo=io(document),So=eo(document),Lo=no(document);class Ao{constructor(t,e={}){this.document=t,this.blockFillerMode=e.blockFillerMode||"br",this.preElements=["pre"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap,this._rawContentElementMatcher=new pi,this._encounteredRawContentDomNodes=new WeakSet}bindFakeSelection(t,e){this._fakeSelectionMapping.set(t,new hr(e))}fakeSelectionToView(t){return this._fakeSelectionMapping.get(t)}bindElements(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}unbindDomElement(t){const e=this._domToViewMapping.get(t);if(e){this._domToViewMapping.delete(t),this._viewToDomMapping.delete(e);for(const e of t.childNodes)this.unbindDomElement(e)}}bindDocumentFragments(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}viewToDom(t,e,n={}){if(t.is("$text")){const n=this._processDataFromViewText(t);return e.createTextNode(n)}{if(this.mapViewToDom(t))return this.mapViewToDom(t);let i;if(t.is("documentFragment"))i=e.createDocumentFragment(),n.bind&&this.bindDocumentFragments(i,t);else{if(t.is("uiElement"))return i="$comment"===t.name?e.createComment(t.getCustomProperty("$rawContent")):t.render(e),n.bind&&this.bindElements(i,t),i;i=t.hasAttribute("xmlns")?e.createElementNS(t.getAttribute("xmlns"),t.name):e.createElement(t.name),t.is("rawElement")&&t.render(i),n.bind&&this.bindElements(i,t);for(const e of t.getAttributeKeys())i.setAttribute(e,t.getAttribute(e))}if(!1!==n.withChildren)for(const r of this.viewChildrenToDom(t,e,n))i.appendChild(r);return i}}*viewChildrenToDom(t,e,n={}){const i=t.getFillerOffset&&t.getFillerOffset();let r=0;for(const o of t.getChildren())i===r&&(yield this._getBlockFiller(e)),yield this.viewToDom(o,e,n),r++;i===r&&(yield this._getBlockFiller(e))}viewRangeToDom(t){const e=this.viewPositionToDom(t.start),n=this.viewPositionToDom(t.end),i=document.createRange();return i.setStart(e.parent,e.offset),i.setEnd(n.parent,n.offset),i}viewPositionToDom(t){const e=t.parent;if(e.is("$text")){const n=this.findCorrespondingDomText(e);if(!n)return null;let i=t.offset;return oo(n)&&(i+=7),{parent:n,offset:i}}{let n,i,r;if(0===t.offset){if(n=this.mapViewToDom(e),!n)return null;r=n.childNodes[0]}else{const e=t.nodeBefore;if(i=e.is("$text")?this.findCorrespondingDomText(e):this.mapViewToDom(t.nodeBefore),!i)return null;n=i.parentNode,r=i.nextSibling}return to(r)&&oo(r)?{parent:r,offset:7}:{parent:n,offset:i?xo(i)+1:0}}}domToView(t,e={}){if(this.isBlockFiller(t))return null;const n=this.getHostViewElement(t);if(n)return n;if(this.isComment(t)&&e.skipComments)return null;if(to(t)){if(so(t))return null;{const e=this._processDataFromDomText(t);return""===e?null:new di(this.document,e)}}{if(this.mapDomToView(t))return this.mapDomToView(t);let n;if(this.isDocumentFragment(t))n=new Vr(this.document),e.bind&&this.bindDocumentFragments(t,n);else{n=this._createViewElement(t,e),e.bind&&this.bindElements(t,n);const i=t.attributes;if(i)for(let t=i.length-1;t>=0;t--)n._setAttribute(i[t].name,i[t].value);if(this._isViewElementWithRawContent(n,e)||this.isComment(t)){const e=this.isComment(t)?t.data:t.innerHTML;return n._setCustomProperty("$rawContent",e),this._encounteredRawContentDomNodes.add(t),n}}if(!1!==e.withChildren)for(const i of this.domChildrenToView(t,e))n._appendChild(i);return n}}*domChildrenToView(t,e={}){for(let n=0;n{const{scrollLeft:e,scrollTop:n}=t;i.push([e,n])})),e.focus(),To(e,(t=>{const[e,n]=i.shift();t.scrollLeft=e,t.scrollTop=n})),wo.window.scrollTo(t,n)}}isElement(t){return t&&t.nodeType==Node.ELEMENT_NODE}isDocumentFragment(t){return t&&t.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isComment(t){return t&&t.nodeType==Node.COMMENT_NODE}isBlockFiller(t){return"br"==this.blockFillerMode?t.isEqualNode(Mo):!("BR"!==t.tagName||!Co(t,this.blockElements)||1!==t.parentNode.childNodes.length)||t.isEqualNode(Lo)||function(t,e){return t.isEqualNode(So)&&Co(t,e)&&1===t.parentNode.childNodes.length}(t,this.blockElements)}isDomSelectionBackward(t){if(t.isCollapsed)return!1;const e=document.createRange();e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset);const n=e.collapsed;return e.detach(),n}getHostViewElement(t){const e=ko(t);for(e.pop();e.length;){const t=e.pop(),n=this._domToViewMapping.get(t);if(n&&(n.is("uiElement")||n.is("rawElement")))return n}return null}isDomSelectionCorrect(t){return this._isDomSelectionPositionCorrect(t.anchorNode,t.anchorOffset)&&this._isDomSelectionPositionCorrect(t.focusNode,t.focusOffset)}registerRawContentMatcher(t){this._rawContentElementMatcher.add(t)}_getBlockFiller(t){switch(this.blockFillerMode){case"nbsp":return eo(t);case"markedNbsp":return no(t);case"br":return io(t)}}_isDomSelectionPositionCorrect(t,e){if(to(t)&&oo(t)&&e<7)return!1;if(this.isElement(t)&&oo(t.childNodes[e]))return!1;const n=this.mapDomToView(t);return!n||!n.is("uiElement")&&!n.is("rawElement")}_processDataFromViewText(t){let e=t.data;if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return e;if(" "==e.charAt(0)){const n=this._getTouchingInlineViewNode(t,!1);!(n&&n.is("$textProxy")&&this._nodeEndsWithSpace(n))&&n||(e=" "+e.substr(1))}if(" "==e.charAt(e.length-1)){const n=this._getTouchingInlineViewNode(t,!0),i=n&&n.is("$textProxy")&&" "==n.data.charAt(0);" "!=e.charAt(e.length-2)&&n&&!i||(e=e.substr(0,e.length-1)+" ")}return e.replace(/ {2}/g,"  ")}_nodeEndsWithSpace(t){if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return!1;const e=this._processDataFromViewText(t);return" "==e.charAt(e.length-1)}_processDataFromDomText(t){let e=t.data;if(function(t,e){return ko(t).some((t=>t.tagName&&e.includes(t.tagName.toLowerCase())))}(t,this.preElements))return ao(t);e=e.replace(/[ \n\t\r]{1,}/g," ");const n=this._getTouchingInlineDomNode(t,!1),i=this._getTouchingInlineDomNode(t,!0),r=this._checkShouldLeftTrimDomText(t,n),o=this._checkShouldRightTrimDomText(t,i);r&&(e=e.replace(/^ /,"")),o&&(e=e.replace(/ $/,"")),e=ao(new Text(e)),e=e.replace(/ \u00A0/g," ");const s=i&&this.isElement(i)&&"BR"!=i.tagName,a=i&&to(i)&&" "==i.data.charAt(0);return(/( |\u00A0)\u00A0$/.test(e)||!i||s||a)&&(e=e.replace(/\u00A0$/," ")),(r||n&&this.isElement(n)&&"BR"!=n.tagName)&&(e=e.replace(/^\u00A0/," ")),e}_checkShouldLeftTrimDomText(t,e){return!e||(this.isElement(e)?"BR"===e.tagName:!this._encounteredRawContentDomNodes.has(t.previousSibling)&&/[^\S\u00A0]/.test(e.data.charAt(e.data.length-1)))}_checkShouldRightTrimDomText(t,e){return!e&&!oo(t)}_getTouchingInlineViewNode(t,e){const n=new ar({startPosition:e?lr._createAfter(t):lr._createBefore(t),direction:e?"forward":"backward"});for(const t of n){if(t.item.is("element")&&this.inlineObjectElements.includes(t.item.name))return t.item;if(t.item.is("containerElement"))return null;if(t.item.is("element","br"))return null;if(t.item.is("$textProxy"))return t.item}return null}_getTouchingInlineDomNode(t,e){if(!t.parentNode)return null;const n=e?"firstChild":"lastChild",i=e?"nextSibling":"previousSibling";let r=!0;do{if(!r&&t[n]?t=t[n]:t[i]?(t=t[i],r=!1):(t=t.parentNode,r=!0),!t||this._isBlockElement(t))return null}while(!to(t)&&"BR"!=t.tagName&&!this._isInlineObjectElement(t));return t}_isBlockElement(t){return this.isElement(t)&&this.blockElements.includes(t.tagName.toLowerCase())}_isInlineObjectElement(t){return this.isElement(t)&&this.inlineObjectElements.includes(t.tagName.toLowerCase())}_createViewElement(t,e){if(this.isComment(t))return new jr(this.document,"$comment");const n=e.keepOriginalCase?t.tagName:t.tagName.toLowerCase();return new tr(this.document,n)}_isViewElementWithRawContent(t,e){return!1!==e.withChildren&&this._rawContentElementMatcher.match(t)}}function To(t,e){for(;t&&t!=wo.document;)e(t),t=t.parentNode}function Co(t,e){const n=t.parentNode;return n&&n.tagName&&e.includes(n.tagName.toLowerCase())}function Do(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}var Eo=Rt({},d,{listenTo(t,...e){if(go(t)||Do(t)){const n=this._getProxyEmitter(t)||new Po(t);n.attach(...e),t=n}d.listenTo.call(this,t,...e)},stopListening(t,e,n){if(go(t)||Do(t)){const e=this._getProxyEmitter(t);if(!e)return;t=e}d.stopListening.call(this,t,e,n),t instanceof Po&&t.detach(e)},_getProxyEmitter(t){return e=this,n=Yo(t),e[c]&&e[c][n]?e[c][n].emitter:null;var e,n}});class Po{constructor(t){h(this,Yo(t)),this._domNode=t}}function Yo(t){return t["data-ck-expando"]||(t["data-ck-expando"]=s())}Rt(Po.prototype,d,{attach(t,e,n={}){if(this._domListeners&&this._domListeners[t])return;const i={capture:!!n.useCapture,passive:!!n.usePassive},r=this._createDomListener(t,i);this._domNode.addEventListener(t,r,i),this._domListeners||(this._domListeners={}),this._domListeners[t]=r},detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()},_createDomListener(t,e){const n=e=>{this.fire(t,e)};return n.removeListener=()=>{this._domNode.removeEventListener(t,n,e),delete this._domListeners[t]},n}});class Oo{constructor(t){this.view=t,this.document=t.document,this.isEnabled=!1}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(t){return t&&3===t.nodeType&&(t=t.parentNode),!(!t||1!==t.nodeType)&&t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}Gt(Oo,Eo);var Io=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Ro=function(t){return this.__data__.has(t)};function No(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Fe;++ea))return!1;var c=o.get(t),u=o.get(e);if(c&&u)return c==e&&u==t;var d=-1,h=!0,f=2&n?new jo:void 0;for(o.set(t,e),o.set(e,t);++d{this.listenTo(t,e,((t,e)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(e.target)&&this.onDomEvent(e)}),{useCapture:this.useCapture})}))}fire(t,e,n){this.isEnabled&&this.document.fire(t,new ts(this.view,e,n))}}class ns extends es{constructor(t){super(t),this.domEventType=["keydown","keyup"]}onDomEvent(t){this.fire(t.type,t,{keyCode:t.keyCode,altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,get keystroke(){return Yr(this)}})}}var is=function(){return y.a.Date.now()},rs=/\s/,os=function(t){for(var e=t.length;e--&&rs.test(t.charAt(e)););return e},ss=/^\s+/,as=function(t){return t?t.slice(0,os(t)+1).replace(ss,""):t},ls=/^[-+]0x[0-9a-f]+$/i,cs=/^0b[01]+$/i,us=/^0o[0-7]+$/i,ds=parseInt,hs=function(t){if("number"==typeof t)return t;if(bi(t))return NaN;if(v(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=v(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=as(t);var n=cs.test(t);return n||us.test(t)?ds(t.slice(2),n?2:8):ls.test(t)?NaN:+t},fs=Math.max,ps=Math.min,ms=function(t,e,n){var i,r,o,s,a,l,c=0,u=!1,d=!1,h=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function f(e){var n=i,o=r;return i=r=void 0,c=e,s=t.apply(o,n)}function p(t){return c=t,a=setTimeout(g,e),u?f(t):s}function m(t){var n=t-l;return void 0===l||n>=e||n<0||d&&t-c>=o}function g(){var t=is();if(m(t))return b(t);a=setTimeout(g,function(t){var n=e-(t-l);return d?ps(n,o-(t-c)):n}(t))}function b(t){return a=void 0,h&&i?f(t):(i=r=void 0,s)}function _(){var t=is(),n=m(t);if(i=arguments,r=this,l=t,n){if(void 0===a)return p(l);if(d)return clearTimeout(a),a=setTimeout(g,e),f(l)}return void 0===a&&(a=setTimeout(g,e)),s}return e=hs(e)||0,v(n)&&(u=!!n.leading,o=(d="maxWait"in n)?fs(hs(n.maxWait)||0,e):o,h="trailing"in n?!!n.trailing:h),_.cancel=function(){void 0!==a&&clearTimeout(a),c=0,i=l=r=a=void 0},_.flush=function(){return void 0===a?s:b(is())},_};class gs extends Oo{constructor(t){super(t),this._fireSelectionChangeDoneDebounced=ms((t=>this.document.fire("selectionChangeDone",t)),200)}observe(){const t=this.document;t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&n.preventDefault()}),{context:"$capture"}),t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&this._handleSelectionMove(n.keyCode)}),{priority:"lowest"})}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(t){const e=this.document.selection,n=new hr(e.getRanges(),{backward:e.isBackward,fake:!1});t!=Er.arrowleft&&t!=Er.arrowup||n.setTo(n.getFirstPosition()),t!=Er.arrowright&&t!=Er.arrowdown||n.setTo(n.getLastPosition());const i={oldSelection:e,newSelection:n,domSelection:null};this.document.fire("selectionChange",i),this._fireSelectionChangeDoneDebounced(i)}}class bs extends Oo{constructor(t){super(t),this.mutationObserver=t.getObserver(Qo),this.selection=this.document.selection,this.domConverter=t.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=ms((t=>this.document.fire("selectionChangeDone",t)),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._loopbackCounter=0}observe(t){const e=t.ownerDocument;this._documents.has(e)||(this.listenTo(e,"selectionchange",((t,n)=>{this._handleSelectionChange(n,e)})),this._documents.add(e))}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionChange(t,e){if(!this.isEnabled)return;const n=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(n.anchorNode))return;this.mutationObserver.flush();const i=this.domConverter.domSelectionToView(n);if(0!=i.rangeCount){if(this.view.hasDomSelection=!0,!(this.selection.isEqual(i)&&this.domConverter.isDomSelectionCorrect(n)||++this._loopbackCounter>60))if(this.selection.isSimilar(i))this.view.forceRender();else{const t={oldSelection:this.selection,newSelection:i,domSelection:n};this.document.fire("selectionChange",t),this._fireSelectionChangeDoneDebounced(t)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class _s extends es{constructor(t){super(t),this.domEventType=["focus","blur"],this.useCapture=!0;const e=this.document;e.on("focus",(()=>{e.isFocused=!0,this._renderTimeoutId=setTimeout((()=>t.change((()=>{}))),50)})),e.on("blur",((n,i)=>{const r=e.selection.editableElement;null!==r&&r!==i.target||(e.isFocused=!1,t.change((()=>{})))}))}onDomEvent(t){this.fire(t.type,t)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class vs extends es{constructor(t){super(t),this.domEventType=["compositionstart","compositionupdate","compositionend"];const e=this.document;e.on("compositionstart",(()=>{e.isComposing=!0})),e.on("compositionend",(()=>{e.isComposing=!1}))}onDomEvent(t){this.fire(t.type,t)}}class ys extends es{constructor(t){super(t),this.domEventType=["beforeinput"]}onDomEvent(t){this.fire(t.type,t)}}class ws{constructor(){this._replacedElements=[]}replace(t,e){this._replacedElements.push({element:t,newElement:e}),t.style.display="none",e&&t.parentNode.insertBefore(e,t.nextSibling)}restore(){this._replacedElements.forEach((({element:t,newElement:e})=>{t.style.display="",e&&e.remove()})),this._replacedElements=[]}}var xs=function(t){return"string"==typeof t||!yt(t)&&pt(t)&&"[object String]"==D(t)};function ks(t){return"[object Range]"==Object.prototype.toString.apply(t)}function Ms(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}const Ss=["top","right","bottom","left","width","height"];class Ls{constructor(t){const e=ks(t);if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),qn(t)||e)if(e){const e=Ls.getDomRangeRects(t);As(this,Ls.getBoundingRect(e))}else As(this,t.getBoundingClientRect());else if(Do(t)){const{innerWidth:e,innerHeight:n}=t;As(this,{top:0,right:e,bottom:n,left:0,width:e,height:n})}else As(this,t)}clone(){return new Ls(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left)};return e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0?null:new Ls(e)}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if(!Ts(t)){let n=t.parentNode||t.commonAncestorContainer;for(;n&&!Ts(n);){const t=new Ls(n),i=e.getIntersection(t);if(!i)return null;i.getArea(){for(const e of t){const t=Cs._getElementCallbacks(e.target);if(t)for(const n of t)n(e)}}))}}Cs._observerInstance=null,Cs._elementCallbacks=null;class Ds{constructor(t){this._callback=t,this._elements=new Set,this._previousRects=new Map,this._periodicCheckTimeout=null}observe(t){this._elements.add(t),this._checkElementRectsAndExecuteCallback(),1===this._elements.size&&this._startPeriodicCheck()}unobserve(t){this._elements.delete(t),this._previousRects.delete(t),this._elements.size||this._stopPeriodicCheck()}_startPeriodicCheck(){const t=()=>{this._checkElementRectsAndExecuteCallback(),this._periodicCheckTimeout=setTimeout(t,100)};this.listenTo(wo.window,"resize",(()=>{this._checkElementRectsAndExecuteCallback()})),this._periodicCheckTimeout=setTimeout(t,100)}_stopPeriodicCheck(){clearTimeout(this._periodicCheckTimeout),this.stopListening(),this._previousRects.clear()}_checkElementRectsAndExecuteCallback(){const t=[];for(const e of this._elements)this._hasRectChanged(e)&&t.push({target:e,contentRect:this._previousRects.get(e)});t.length&&this._callback(t)}_hasRectChanged(t){if(!t.ownerDocument.body.contains(t))return!1;const e=new Ls(t),n=this._previousRects.get(t),i=!n||!n.isEqual(e);return this._previousRects.set(t,e),i}}function Es(t){return e=>e+t}function Ps(t){const e=t.next();return e.done?null:e.value}Gt(Ds,Eo);class Ys{constructor(){this.set("isFocused",!1),this.set("focusedElement",null),this._elements=new Set,this._nextEventLoopTimeout=null}add(t){if(this._elements.has(t))throw new l.a("focustracker-add-element-already-exist",this);this.listenTo(t,"focus",(()=>this._focus(t)),{useCapture:!0}),this.listenTo(t,"blur",(()=>this._blur()),{useCapture:!0}),this._elements.add(t)}remove(t){t===this.focusedElement&&this._blur(t),this._elements.has(t)&&(this.stopListening(t),this._elements.delete(t))}destroy(){this.stopListening()}_focus(t){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=t,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0)}}Gt(Ys,Eo),Gt(Ys,Vt);class Os{constructor(){this._listener=Object.create(Eo)}listenTo(t){this._listener.listenTo(t,"keydown",((t,e)=>{this._listener.fire("_keydown:"+Yr(e),e)}))}set(t,e,n={}){const i=Or(t),r=n.priority;this._listener.listenTo(this._listener,"_keydown:"+i,((t,n)=>{e(n,(()=>{n.preventDefault(),n.stopPropagation(),t.stop()})),t.return=!0}),{priority:r})}press(t){return!!this._listener.fire("_keydown:"+Yr(t),t)}destroy(){this._listener.stopListening()}}class Is extends Oo{constructor(t){super(t),this.document.on("keydown",((t,e)=>{if(this.isEnabled&&((n=e.keyCode)==Er.arrowright||n==Er.arrowleft||n==Er.arrowup||n==Er.arrowdown)){const n=new pr(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(n,e),n.stop.called&&t.stop()}var n}))}observe(){}}function Rs({target:t,viewportOffset:e=0}){const n=Vs(t);let i=n,r=null;for(;i;){let o;o=Ws(i==n?t:r),js(o,(()=>Us(t,i)));const s=Us(t,i);if(Ns(i,s,e),i.parent!=i){if(r=i.frameElement,i=i.parent,!r)return}else i=null}}function Ns(t,e,n){const i=e.clone().moveBy(0,n),r=e.clone().moveBy(0,-n),o=new Ls(t).excludeScrollbarsAndBorders();if(![r,i].every((t=>o.contains(t)))){let{scrollX:s,scrollY:a}=t;Hs(r,o)?a-=o.top-e.top+n:zs(i,o)&&(a+=e.bottom-o.bottom+n),Fs(e,o)?s-=o.left-e.left+n:Bs(e,o)&&(s+=e.right-o.right+n),t.scrollTo(s,a)}}function js(t,e){const n=Vs(t);let i,r;for(;t!=n.document.body;)r=e(),i=new Ls(t).excludeScrollbarsAndBorders(),i.contains(r)||(Hs(r,i)?t.scrollTop-=i.top-r.top:zs(r,i)&&(t.scrollTop+=r.bottom-i.bottom),Fs(r,i)?t.scrollLeft-=i.left-r.left:Bs(r,i)&&(t.scrollLeft+=r.right-i.right)),t=t.parentNode}function zs(t,e){return t.bottom>e.bottom}function Hs(t,e){return t.tope.right}function Vs(t){return ks(t)?t.startContainer.ownerDocument.defaultView:t.ownerDocument.defaultView}function Ws(t){if(ks(t)){let e=t.commonAncestorContainer;return to(e)&&(e=e.parentNode),e}return t.parentNode}function Us(t,e){const n=Vs(t),i=new Ls(t);if(n===e)return i;{let t=n;for(;t!=e;){const e=t.frameElement,n=new Ls(e).excludeScrollbarsAndBorders();i.moveBy(n.left,n.top),t=t.parent}}return i}Object.assign({},{scrollViewportToShowTarget:Rs,scrollAncestorsToShowTarget:function(t){js(Ws(t),(()=>new Ls(t)))}});class Xs{constructor(t){this.document=new wr(t),this.domConverter=new Ao(this.document),this.domRoots=new Map,this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new bo(this.domConverter,this.document.selection),this._renderer.bind("isFocused").to(this.document),this._initialDomRootAttributes=new WeakMap,this._observers=new Map,this._ongoingChange=!1,this._postFixersInProgress=!1,this._renderingDisabled=!1,this._hasChangedSinceTheLastRendering=!1,this._writer=new Wr(this.document),this.addObserver(Qo),this.addObserver(bs),this.addObserver(_s),this.addObserver(ns),this.addObserver(gs),this.addObserver(vs),this.addObserver(Is),Tr.isAndroid&&this.addObserver(ys),this.document.on("arrowKey",lo,{priority:"low"}),zr(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0}))}attachDomRoot(t,e="main"){const n=this.document.getRoot(e);n._name=t.tagName.toLowerCase();const i={};for(const{name:e,value:r}of Array.from(t.attributes))i[e]=r,"class"===e?this._writer.addClass(r.split(" "),n):this._writer.setAttribute(e,r,n);this._initialDomRootAttributes.set(t,i);const r=()=>{this._writer.setAttribute("contenteditable",!n.isReadOnly,n),n.isReadOnly?this._writer.addClass("ck-read-only",n):this._writer.removeClass("ck-read-only",n)};r(),this.domRoots.set(e,t),this.domConverter.bindElements(t,n),this._renderer.markToSync("children",n),this._renderer.markToSync("attributes",n),this._renderer.domDocuments.add(t.ownerDocument),n.on("change:children",((t,e)=>this._renderer.markToSync("children",e))),n.on("change:attributes",((t,e)=>this._renderer.markToSync("attributes",e))),n.on("change:text",((t,e)=>this._renderer.markToSync("text",e))),n.on("change:isReadOnly",(()=>this.change(r))),n.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const n of this._observers.values())n.observe(t,e)}detachDomRoot(t){const e=this.domRoots.get(t);Array.from(e.attributes).forEach((({name:t})=>e.removeAttribute(t)));const n=this._initialDomRootAttributes.get(e);for(const t in n)e.setAttribute(t,n[t]);this.domRoots.delete(t),this.domConverter.unbindDomElement(e)}getDomRoot(t="main"){return this.domRoots.get(t)}addObserver(t){let e=this._observers.get(t);if(e)return e;e=new t(this),this._observers.set(t,e);for(const[t,n]of this.domRoots)e.observe(n,t);return e.enable(),e}getObserver(t){return this._observers.get(t)}disableObservers(){for(const t of this._observers.values())t.disable()}enableObservers(){for(const t of this._observers.values())t.enable()}scrollToTheSelection(){const t=this.document.selection.getFirstRange();t&&Rs({target:this.domConverter.viewRangeToDom(t),viewportOffset:20})}focus(){if(!this.document.isFocused){const t=this.document.selection.editableElement;t&&(this.domConverter.focus(t),this.forceRender())}}change(t){if(this.isRenderingInProgress||this._postFixersInProgress)throw new l.a("cannot-change-view-tree",this);try{if(this._ongoingChange)return t(this._writer);this._ongoingChange=!0;const e=t(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),e}catch(t){l.a.rethrowUnexpectedError(t,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.change((()=>{}))}destroy(){for(const t of this._observers.values())t.destroy();this.document.destroy(),this.stopListening()}createPositionAt(t,e){return lr._createAt(t,e)}createPositionAfter(t){return lr._createAfter(t)}createPositionBefore(t){return lr._createBefore(t)}createRange(t,e){return new cr(t,e)}createRangeOn(t){return cr._createOn(t)}createRangeIn(t){return cr._createIn(t)}createSelection(t,e,n){return new hr(t,e,n)}_disableRendering(t){this._renderingDisabled=t,0==t&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}Gt(Xs,Vt);class $s{constructor(t){this.parent=null,this._attrs=fi(t)}get index(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildIndex(this)))throw new l.a("model-node-not-found-in-parent",this);return t}get startOffset(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildStartOffset(this)))throw new l.a("model-node-not-found-in-parent",this);return t}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return this.root.is("rootElement")}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.startOffset),e=e.parent;return t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),i=t.getAncestors(e);let r=0;for(;n[r]==i[r]&&n[r];)r++;return 0===r?null:n[r-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),i=li(e,n);switch(i){case"prefix":return!0;case"extension":return!1;default:return e[i](t[e[0]]=e[1],t)),{})),t}is(t){return"node"===t||"model:node"===t}_clone(){return new $s(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(t,e){this._attrs.set(t,e)}_setAttributesTo(t){this._attrs=fi(t)}_removeAttribute(t){return this._attrs.delete(t)}_clearAttributes(){this._attrs.clear()}}class qs extends $s{constructor(t,e){super(e),this._data=t||""}get offsetSize(){return this.data.length}get data(){return this._data}is(t){return"$text"===t||"model:$text"===t||"text"===t||"model:text"===t||"node"===t||"model:node"===t}toJSON(){const t=super.toJSON();return t.data=this.data,t}_clone(){return new qs(this.data,this.getAttributes())}static fromJSON(t){return new qs(t.data,t.attributes)}}class Gs{constructor(t,e,n){if(this.textNode=t,e<0||e>t.offsetSize)throw new l.a("model-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.offsetSize)throw new l.a("model-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}is(t){return"$textProxy"===t||"model:$textProxy"===t||"textProxy"===t||"model:textProxy"===t}getPath(){const t=this.textNode.getPath();return t.length>0&&(t[t.length-1]+=this.offsetInText),t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}hasAttribute(t){return this.textNode.hasAttribute(t)}getAttribute(t){return this.textNode.getAttribute(t)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}class Js{constructor(t){this._nodes=[],t&&this._insertNodes(0,t)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce(((t,e)=>t+e.offsetSize),0)}getNode(t){return this._nodes[t]||null}getNodeIndex(t){const e=this._nodes.indexOf(t);return-1==e?null:e}getNodeStartOffset(t){const e=this.getNodeIndex(t);return null===e?null:this._nodes.slice(0,e).reduce(((t,e)=>t+e.offsetSize),0)}indexToOffset(t){if(t==this._nodes.length)return this.maxOffset;const e=this._nodes[t];if(!e)throw new l.a("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(e)}offsetToIndex(t){let e=0;for(const n of this._nodes){if(t>=e&&tt.toJSON()))}}class Zs extends $s{constructor(t,e,n){super(e),this.name=t,this._children=new Js,n&&this._insertChild(0,n)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}is(t,e=null){return e?e===this.name&&("element"===t||"model:element"===t):"element"===t||"model:element"===t||"node"===t||"model:node"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}offsetToIndex(t){return this._children.offsetToIndex(t)}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}findAncestor(t,e={includeSelf:!1}){let n=e.includeSelf?this:this.parent;for(;n;){if(n.name===t)return n;n=n.parent}return null}toJSON(){const t=super.toJSON();if(t.name=this.name,this._children.length>0){t.children=[];for(const e of this._children)t.children.push(e.toJSON())}return t}_clone(t=!1){const e=t?Array.from(this._children).map((t=>t._clone(!0))):null;return new Zs(this.name,this.getAttributes(),e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){return"string"==typeof t?[new qs(t)]:(Kn(t)||(t=[t]),Array.from(t).map((t=>"string"==typeof t?new qs(t):t instanceof Gs?new qs(t.data,t.getAttributes()):t)))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}static fromJSON(t){let e=null;if(t.children){e=[];for(const n of t.children)n.name?e.push(Zs.fromJSON(n)):e.push(qs.fromJSON(n))}return new Zs(t.name,t.attributes,e)}}class Ks{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new l.a("model-tree-walker-no-start-position",null);const e=t.direction||"forward";if("forward"!=e&&"backward"!=e)throw new l.a("model-tree-walker-unknown-direction",t,{direction:e});this.direction=e,this.boundaries=t.boundaries||null,t.startPosition?this.position=t.startPosition.clone():this.position=ta._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}skip(t){let e,n,i,r;do{i=this.position,r=this._visitedParent,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=i,this._visitedParent=r)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const t=this.position,e=this.position.clone(),n=this._visitedParent;if(null===n.parent&&e.offset===n.maxOffset)return{done:!0};if(n===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0};const i=e.parent,r=ea(e,i),o=r||na(e,i,r);if(o instanceof Zs)return this.shallow?e.offset++:(e.path.push(0),this._visitedParent=o),this.position=e,Qs("elementStart",o,t,e,1);if(o instanceof qs){let i;if(this.singleCharacters)i=1;else{let t=o.endOffset;this._boundaryEndParent==n&&this.boundaries.end.offsett&&(t=this.boundaries.start.offset),i=e.offset-t}const r=e.offset-o.startOffset,s=new Gs(o,r-i,i);return e.offset-=i,this.position=e,Qs("text",s,t,e,i)}return e.path.pop(),this.position=e,this._visitedParent=n.parent,Qs("elementStart",n,t,e,1)}}function Qs(t,e,n,i,r){return{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:i,length:r}}}class ta{constructor(t,e,n="toNone"){if(!t.is("element")&&!t.is("documentFragment"))throw new l.a("model-position-root-invalid",t);if(!(e instanceof Array)||0===e.length)throw new l.a("model-position-path-incorrect-format",t,{path:e});t.is("rootElement")?e=e.slice():(e=[...t.getPath(),...e],t=t.root),this.root=t,this.path=e,this.stickiness=n}get offset(){return this.path[this.path.length-1]}set offset(t){this.path[this.path.length-1]=t}get parent(){let t=this.root;for(let e=0;en.path.length){if(e.offset!==i.maxOffset)return!1;e.path=e.path.slice(0,-1),i=i.parent,e.offset++}else{if(0!==n.offset)return!1;n.path=n.path.slice(0,-1)}}}is(t){return"position"===t||"model:position"===t}hasSameParentAs(t){return this.root===t.root&&"same"==li(this.getParentPath(),t.getParentPath())}getTransformedByOperation(t){let e;switch(t.type){case"insert":e=this._getTransformedByInsertOperation(t);break;case"move":case"remove":case"reinsert":e=this._getTransformedByMoveOperation(t);break;case"split":e=this._getTransformedBySplitOperation(t);break;case"merge":e=this._getTransformedByMergeOperation(t);break;default:e=ta._createAt(this)}return e}_getTransformedByInsertOperation(t){return this._getTransformedByInsertion(t.position,t.howMany)}_getTransformedByMoveOperation(t){return this._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany)}_getTransformedBySplitOperation(t){const e=t.movedRange;return e.containsPosition(this)||e.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(t.splitPosition,t.moveTargetPosition):t.graveyardPosition?this._getTransformedByMove(t.graveyardPosition,t.insertionPosition,1):this._getTransformedByInsertion(t.insertionPosition,1)}_getTransformedByMergeOperation(t){const e=t.movedRange;let n;return e.containsPosition(this)||e.start.isEqual(this)?(n=this._getCombined(t.sourcePosition,t.targetPosition),t.sourcePosition.isBefore(t.targetPosition)&&(n=n._getTransformedByDeletion(t.deletionPosition,1))):n=this.isEqual(t.deletionPosition)?ta._createAt(t.deletionPosition):this._getTransformedByMove(t.deletionPosition,t.graveyardPosition,1),n}_getTransformedByDeletion(t,e){const n=ta._createAt(this);if(this.root!=t.root)return n;if("same"==li(t.getParentPath(),this.getParentPath())){if(t.offsetthis.offset)return null;n.offset-=e}}else if("prefix"==li(t.getParentPath(),this.getParentPath())){const i=t.path.length-1;if(t.offset<=this.path[i]){if(t.offset+e>this.path[i])return null;n.path[i]-=e}}return n}_getTransformedByInsertion(t,e){const n=ta._createAt(this);if(this.root!=t.root)return n;if("same"==li(t.getParentPath(),this.getParentPath()))(t.offsete+1;){const e=i.maxOffset-n.offset;0!==e&&t.push(new ra(n,n.getShiftedBy(e))),n.path=n.path.slice(0,-1),n.offset++,i=i.parent}for(;n.path.length<=this.end.path.length;){const e=this.end.path[n.path.length-1],i=e-n.offset;0!==i&&t.push(new ra(n,n.getShiftedBy(i))),n.offset=e,n.path.push(0)}return t}getWalker(t={}){return t.boundaries=this,new Ks(t)}*getItems(t={}){t.boundaries=this,t.ignoreElementEnd=!0;const e=new Ks(t);for(const t of e)yield t.item}*getPositions(t={}){t.boundaries=this;const e=new Ks(t);yield e.position;for(const t of e)yield t.nextPosition}getTransformedByOperation(t){switch(t.type){case"insert":return this._getTransformedByInsertOperation(t);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(t);case"split":return[this._getTransformedBySplitOperation(t)];case"merge":return[this._getTransformedByMergeOperation(t)]}return[new ra(this.start,this.end)]}getTransformedByOperations(t){const e=[new ra(this.start,this.end)];for(const n of t)for(let t=0;t0?new this(n,i):new this(i,n)}static _createIn(t){return new this(ta._createAt(t,0),ta._createAt(t,t.maxOffset))}static _createOn(t){return this._createFromPositionAndShift(ta._createBefore(t),t.offsetSize)}static _createFromRanges(t){if(0===t.length)throw new l.a("range-create-from-ranges-empty-array",null);if(1==t.length)return t[0].clone();const e=t[0];t.sort(((t,e)=>t.start.isAfter(e.start)?1:-1));const n=t.indexOf(e),i=new this(e.start,e.end);if(n>0)for(let e=n-1;t[e].end.isEqual(i.start);e++)i.start=ta._createAt(t[e].start);for(let e=n+1;e{if(e.viewPosition)return;const n=this._modelToViewMapping.get(e.modelPosition.parent);e.viewPosition=this.findPositionIn(n,e.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((t,e)=>{if(e.modelPosition)return;const n=this.findMappedViewAncestor(e.viewPosition),i=this._viewToModelMapping.get(n),r=this._toModelOffset(e.viewPosition.parent,e.viewPosition.offset,n);e.modelPosition=ta._createAt(i,r)}),{priority:"low"})}bindElements(t,e){this._modelToViewMapping.set(t,e),this._viewToModelMapping.set(e,t)}unbindViewElement(t){const e=this.toModelElement(t);if(this._viewToModelMapping.delete(t),this._elementToMarkerNames.has(t))for(const e of this._elementToMarkerNames.get(t))this._unboundMarkerNames.add(e);this._modelToViewMapping.get(e)==t&&this._modelToViewMapping.delete(e)}unbindModelElement(t){const e=this.toViewElement(t);this._modelToViewMapping.delete(t),this._viewToModelMapping.get(e)==t&&this._viewToModelMapping.delete(e)}bindElementToMarker(t,e){const n=this._markerNameToElements.get(e)||new Set;n.add(t);const i=this._elementToMarkerNames.get(t)||new Set;i.add(e),this._markerNameToElements.set(e,n),this._elementToMarkerNames.set(t,i)}unbindElementFromMarkerName(t,e){const n=this._markerNameToElements.get(e);n&&(n.delete(t),0==n.size&&this._markerNameToElements.delete(e));const i=this._elementToMarkerNames.get(t);i&&(i.delete(e),0==i.size&&this._elementToMarkerNames.delete(t))}flushUnboundMarkerNames(){const t=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),t}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set}toModelElement(t){return this._viewToModelMapping.get(t)}toViewElement(t){return this._modelToViewMapping.get(t)}toModelRange(t){return new ra(this.toModelPosition(t.start),this.toModelPosition(t.end))}toViewRange(t){return new cr(this.toViewPosition(t.start),this.toViewPosition(t.end))}toModelPosition(t){const e={viewPosition:t,mapper:this};return this.fire("viewToModelPosition",e),e.modelPosition}toViewPosition(t,e={isPhantom:!1}){const n={modelPosition:t,mapper:this,isPhantom:e.isPhantom};return this.fire("modelToViewPosition",n),n.viewPosition}markerNameToElements(t){const e=this._markerNameToElements.get(t);if(!e)return null;const n=new Set;for(const t of e)if(t.is("attributeElement"))for(const e of t.getElementsWithSameId())n.add(e);else n.add(t);return n}registerViewToModelLength(t,e){this._viewToModelLengthCallbacks.set(t,e)}findMappedViewAncestor(t){let e=t.parent;for(;!this._viewToModelMapping.has(e);)e=e.parent;return e}_toModelOffset(t,e,n){if(n!=t)return this._toModelOffset(t.parent,t.index,n)+this._toModelOffset(t,e,t);if(t.is("$text"))return e;let i=0;for(let n=0;n1?e[0]+":"+e[1]:e[0]}class la{constructor(t){this.conversionApi=Object.assign({dispatcher:this},t),this._reconversionEventsMapping=new Map}convertChanges(t,e,n){for(const e of t.getMarkersToRemove())this.convertMarkerRemove(e.name,e.range,n);const i=this._mapChangesWithAutomaticReconversion(t);for(const t of i)"insert"===t.type?this.convertInsert(ra._createFromPositionAndShift(t.position,t.length),n):"remove"===t.type?this.convertRemove(t.position,t.length,t.name,n):"reconvert"===t.type?this.reconvertElement(t.element,n):this.convertAttribute(t.range,t.attributeKey,t.attributeOldValue,t.attributeNewValue,n);for(const t of this.conversionApi.mapper.flushUnboundMarkerNames()){const i=e.get(t).getRange();this.convertMarkerRemove(t,i,n),this.convertMarkerAdd(t,i,n)}for(const e of t.getMarkersToAdd())this.convertMarkerAdd(e.name,e.range,n)}convertInsert(t,e){this.conversionApi.writer=e,this.conversionApi.consumable=this._createInsertConsumable(t);for(const e of Array.from(t).map(ua))this._convertInsertWithAttributes(e);this._clearConversionApi()}convertRemove(t,e,n,i){this.conversionApi.writer=i,this.fire("remove:"+n,{position:t,length:e},this.conversionApi),this._clearConversionApi()}convertAttribute(t,e,n,i,r){this.conversionApi.writer=r,this.conversionApi.consumable=this._createConsumableForRange(t,"attribute:"+e);for(const r of t){const t={item:r.item,range:ra._createFromPositionAndShift(r.previousPosition,r.length),attributeKey:e,attributeOldValue:n,attributeNewValue:i};this._testAndFire("attribute:"+e,t)}this._clearConversionApi()}reconvertElement(t,e){const n=ra._createOn(t);this.conversionApi.writer=e,this.conversionApi.consumable=this._createInsertConsumable(n);const i=this.conversionApi.mapper,r=i.toViewElement(t);e.remove(r),this._convertInsertWithAttributes({item:t,range:n});const o=i.toViewElement(t);for(const n of ra._createIn(t)){const{item:t}=n,r=da(t,i);r?r.root!==o.root&&e.move(e.createRangeOn(r),i.toViewPosition(ta._createBefore(t))):this._convertInsertWithAttributes(ua(n))}i.unbindViewElement(r),this._clearConversionApi()}convertSelection(t,e,n){const i=Array.from(e.getMarkersAtPosition(t.getFirstPosition()));if(this.conversionApi.writer=n,this.conversionApi.consumable=this._createSelectionConsumable(t,i),this.fire("selection",{selection:t},this.conversionApi),t.isCollapsed){for(const e of i){const n=e.getRange();if(!ca(t.getFirstPosition(),e,this.conversionApi.mapper))continue;const i={item:t,markerName:e.name,markerRange:n};this.conversionApi.consumable.test(t,"addMarker:"+e.name)&&this.fire("addMarker:"+e.name,i,this.conversionApi)}for(const e of t.getAttributeKeys()){const n={item:t,range:t.getFirstRange(),attributeKey:e,attributeOldValue:null,attributeNewValue:t.getAttribute(e)};this.conversionApi.consumable.test(t,"attribute:"+n.attributeKey)&&this.fire("attribute:"+n.attributeKey+":$text",n,this.conversionApi)}this._clearConversionApi()}else this._clearConversionApi()}convertMarkerAdd(t,e,n){if("$graveyard"==e.root.rootName)return;this.conversionApi.writer=n;const i="addMarker:"+t,r=new sa;if(r.add(e,i),this.conversionApi.consumable=r,this.fire(i,{markerName:t,markerRange:e},this.conversionApi),r.test(e,i)){this.conversionApi.consumable=this._createConsumableForRange(e,i);for(const n of e.getItems()){if(!this.conversionApi.consumable.test(n,i))continue;const r={item:n,range:ra._createOn(n),markerName:t,markerRange:e};this.fire(i,r,this.conversionApi)}this._clearConversionApi()}else this._clearConversionApi()}convertMarkerRemove(t,e,n){"$graveyard"!=e.root.rootName&&(this.conversionApi.writer=n,this.fire("removeMarker:"+t,{markerName:t,markerRange:e},this.conversionApi),this._clearConversionApi())}_mapReconversionTriggerEvent(t,e){this._reconversionEventsMapping.set(e,t)}_createInsertConsumable(t){const e=new sa;for(const n of t){const t=n.item;e.add(t,"insert");for(const n of t.getAttributeKeys())e.add(t,"attribute:"+n)}return e}_createConsumableForRange(t,e){const n=new sa;for(const i of t.getItems())n.add(i,e);return n}_createSelectionConsumable(t,e){const n=new sa;n.add(t,"selection");for(const i of e)n.add(t,"addMarker:"+i.name);for(const e of t.getAttributeKeys())n.add(t,"attribute:"+e);return n}_testAndFire(t,e){this.conversionApi.consumable.test(e.item,t)&&this.fire(function(t,e){return`${t}:${e.item.name||"$text"}`}(t,e),e,this.conversionApi)}_clearConversionApi(){delete this.conversionApi.writer,delete this.conversionApi.consumable}_convertInsertWithAttributes(t){this._testAndFire("insert",t);for(const e of t.item.getAttributeKeys())t.attributeKey=e,t.attributeOldValue=null,t.attributeNewValue=t.item.getAttribute(e),this._testAndFire("attribute:"+e,t)}_mapChangesWithAutomaticReconversion(t){const e=new Set,n=[];for(const i of t.getChanges()){const t=i.position||i.range.start,r=t.parent;if(ea(t,r)){n.push(i);continue}const o="attribute"===i.type?na(t,r,null):r;if(o.is("$text")){n.push(i);continue}let s;if(s="attribute"===i.type?`attribute:${i.attributeKey}:${o.name}`:`${i.type}:${i.name}`,this._isReconvertTriggerEvent(s,o.name)){if(e.has(o))continue;e.add(o),n.push({type:"reconvert",element:o})}else n.push(i)}return n}_isReconvertTriggerEvent(t,e){return this._reconversionEventsMapping.get(t)===e}}function ca(t,e,n){const i=e.getRange(),r=Array.from(t.getAncestors());return r.shift(),r.reverse(),!r.some((t=>{if(i.containsItem(t))return!!n.toViewElement(t).getCustomProperty("addHighlight")}))}function ua(t){return{item:t.item,range:ra._createFromPositionAndShift(t.previousPosition,t.length)}}function da(t,e){if(t.is("textProxy")){const n=e.toViewPosition(ta._createBefore(t)).parent;return n.is("$text")?n:null}return e.toViewElement(t)}Gt(la,d);class ha{constructor(t,e,n){this._lastRangeBackward=!1,this._ranges=[],this._attrs=new Map,t&&this.setTo(t,e,n)}get anchor(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.end:t.start}return null}get focus(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.start:t.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(t){if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const i of t._ranges)if(e.isEqual(i)){n=!0;break}if(!n)return!1}return!0}*getRanges(){for(const t of this._ranges)yield new ra(t.start,t.end)}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?new ra(t.start,t.end):null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?new ra(t.start,t.end):null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}setTo(t,e,n){if(null===t)this._setRanges([]);else if(t instanceof ha)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof ra)this._setRanges([t],!!e&&!!e.backward);else if(t instanceof ta)this._setRanges([new ra(t)]);else if(t instanceof $s){const i=!!n&&!!n.backward;let r;if("in"==e)r=ra._createIn(t);else if("on"==e)r=ra._createOn(t);else{if(void 0===e)throw new l.a("model-selection-setto-required-second-parameter",[this,t]);r=new ra(ta._createAt(t,e))}this._setRanges([r],i)}else{if(!Kn(t))throw new l.a("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,e&&!!e.backward)}}_setRanges(t,e=!1){const n=(t=Array.from(t)).some((e=>{if(!(e instanceof ra))throw new l.a("model-selection-set-ranges-not-range",[this,t]);return this._ranges.every((t=>!t.isEqual(e)))}));if(t.length!==this._ranges.length||n){this._removeAllRanges();for(const e of t)this._pushRange(e);this._lastRangeBackward=!!e,this.fire("change:range",{directChange:!0})}}setFocus(t,e){if(null===this.anchor)throw new l.a("model-selection-setfocus-no-ranges",[this,t]);const n=ta._createAt(t,e);if("same"==n.compareWith(this.focus))return;const i=this.anchor;this._ranges.length&&this._popRange(),"before"==n.compareWith(i)?(this._pushRange(new ra(n,i)),this._lastRangeBackward=!0):(this._pushRange(new ra(i,n)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(t){return this._attrs.get(t)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(t){return this._attrs.has(t)}removeAttribute(t){this.hasAttribute(t)&&(this._attrs.delete(t),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}setAttribute(t,e){this.getAttribute(t)!==e&&(this._attrs.set(t,e),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}is(t){return"selection"===t||"model:selection"===t}*getSelectedBlocks(){const t=new WeakSet;for(const e of this.getRanges()){const n=ma(e.start,t);n&&ga(n,e)&&(yield n);for(const n of e.getWalker()){const i=n.item;"elementEnd"==n.type&&pa(i,t,e)&&(yield i)}const i=ma(e.end,t);i&&!e.end.isTouching(ta._createAt(i,0))&&ga(i,e)&&(yield i)}}containsEntireContent(t=this.anchor.root){const e=ta._createAt(t,0),n=ta._createAt(t,"end");return e.isTouching(this.getFirstPosition())&&n.isTouching(this.getLastPosition())}_pushRange(t){this._checkRange(t),this._ranges.push(new ra(t.start,t.end))}_checkRange(t){for(let e=0;e0;)this._popRange()}_popRange(){this._ranges.pop()}}function fa(t,e){return!e.has(t)&&(e.add(t),t.root.document.model.schema.isBlock(t)&&t.parent)}function pa(t,e,n){return fa(t,e)&&ga(t,n)}function ma(t,e){const n=t.parent.root.document.model.schema,i=t.parent.getAncestors({parentFirst:!0,includeSelf:!0});let r=!1;const o=i.find((t=>!r&&(r=n.isLimit(t),!r&&fa(t,e))));return i.forEach((t=>e.add(t))),o}function ga(t,e){const n=function(t){const e=t.root.document.model.schema;let n=t.parent;for(;n;){if(e.isBlock(n))return n;n=n.parent}}(t);return!n||!e.containsRange(ra._createOn(n),!0)}Gt(ha,d);class ba extends ra{constructor(t,e){super(t,e),_a.call(this)}detach(){this.stopListening()}is(t){return"liveRange"===t||"model:liveRange"===t||"range"==t||"model:range"===t}toRange(){return new ra(this.start,this.end)}static fromRange(t){return new ba(t.start,t.end)}}function _a(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&va.call(this,n)}),{priority:"low"})}function va(t){const e=this.getTransformedByOperation(t),n=ra._createFromRanges(e),i=!n.isEqual(this),r=function(t,e){switch(e.type){case"insert":return t.containsPosition(e.position);case"move":case"remove":case"reinsert":case"merge":return t.containsPosition(e.sourcePosition)||t.start.isEqual(e.sourcePosition)||t.containsPosition(e.targetPosition);case"split":return t.containsPosition(e.splitPosition)||t.containsPosition(e.insertionPosition)}return!1}(this,t);let o=null;if(i){"$graveyard"==n.root.rootName&&(o="remove"==t.type?t.sourcePosition:t.deletionPosition);const e=this.toRange();this.start=n.start,this.end=n.end,this.fire("change:range",e,{deletionPosition:o})}else r&&this.fire("change:content",this.toRange(),{deletionPosition:o})}Gt(ba,d);class ya{constructor(t){this._selection=new wa(t),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(t){return this._selection.containsEntireContent(t)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(t){return this._selection.getAttribute(t)}hasAttribute(t){return this._selection.hasAttribute(t)}refresh(){this._selection._updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(t){this._selection.observeMarkers(t)}is(t){return"selection"===t||"model:selection"==t||"documentSelection"==t||"model:documentSelection"==t}_setFocus(t,e){this._selection.setFocus(t,e)}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setAttribute(t,e){this._selection.setAttribute(t,e)}_removeAttribute(t){this._selection.removeAttribute(t)}_getStoredAttributes(){return this._selection._getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(t){this._selection.restoreGravity(t)}static _getStoreAttributeKey(t){return"selection:"+t}static _isStoreAttributeKey(t){return t.startsWith("selection:")}}Gt(ya,d);class wa extends ha{constructor(t){super(),this.markers=new Qn({idProperty:"name"}),this._model=t.model,this._document=t,this._attributePriority=new Map,this._selectionRestorePosition=null,this._hasChangedRange=!1,this._overriddenGravityRegister=new Set,this._observedMarkers=new Set,this.listenTo(this._model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&"marker"!=n.type&&"rename"!=n.type&&"noop"!=n.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{for(const t of this.getRanges())if(!this._document._validateSelectionRange(t))throw new l.a("document-selection-wrong-position",this,{range:t})})),this.listenTo(this._model.markers,"update",((t,e,n,i)=>{this._updateMarker(e,i)})),this.listenTo(this._document,"change",((t,e)=>{!function(t,e){const n=t.document.differ;for(const i of n.getChanges()){if("insert"!=i.type)continue;const n=i.position.parent;i.length===n.maxOffset&&t.enqueueChange(e,(t=>{const e=Array.from(n.getAttributeKeys()).filter((t=>t.startsWith("selection:")));for(const i of e)t.removeAttribute(i,n)}))}}(this._model,e)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let t=0;t{if(this._hasChangedRange=!0,e.root==this._document.graveyard){this._selectionRestorePosition=i.deletionPosition;const t=this._ranges.indexOf(e);this._ranges.splice(t,1),e.detach()}})),e}_updateMarkers(){if(!this._observedMarkers.size)return;const t=[];let e=!1;for(const e of this._model.markers){const n=e.name.split(":",1)[0];if(!this._observedMarkers.has(n))continue;const i=e.getRange();for(const n of this.getRanges())i.containsRange(n,!n.isCollapsed)&&t.push(e)}const n=Array.from(this.markers);for(const n of t)this.markers.has(n)||(this.markers.add(n),e=!0);for(const n of Array.from(this.markers))t.includes(n)||(this.markers.remove(n),e=!0);e&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateMarker(t,e){const n=t.name.split(":",1)[0];if(!this._observedMarkers.has(n))return;let i=!1;const r=Array.from(this.markers),o=this.markers.has(t);if(e){let n=!1;for(const t of this.getRanges())if(e.containsRange(t,!t.isCollapsed)){n=!0;break}n&&!o?(this.markers.add(t),i=!0):!n&&o&&(this.markers.remove(t),i=!0)}else o&&(this.markers.remove(t),i=!0);i&&this.fire("change:marker",{oldMarkers:r,directChange:!1})}_updateAttributes(t){const e=fi(this._getSurroundingAttributes()),n=fi(this.getAttributes());if(t)this._attributePriority=new Map,this._attrs=new Map;else for(const[t,e]of this._attributePriority)"low"==e&&(this._attrs.delete(t),this._attributePriority.delete(t));this._setAttributesTo(e);const i=[];for(const[t,e]of this.getAttributes())n.has(t)&&n.get(t)===e||i.push(t);for(const[t]of n)this.hasAttribute(t)||i.push(t);i.length>0&&this.fire("change:attribute",{attributeKeys:i,directChange:!1})}_setAttribute(t,e,n=!0){const i=n?"normal":"low";return("low"!=i||"normal"!=this._attributePriority.get(t))&&super.getAttribute(t)!==e&&(this._attrs.set(t,e),this._attributePriority.set(t,i),!0)}_removeAttribute(t,e=!0){const n=e?"normal":"low";return!("low"==n&&"normal"==this._attributePriority.get(t)||(this._attributePriority.set(t,n),!super.hasAttribute(t)||(this._attrs.delete(t),0)))}_setAttributesTo(t){const e=new Set;for(const[e,n]of this.getAttributes())t.get(e)!==n&&this._removeAttribute(e,!1);for(const[n,i]of t)this._setAttribute(n,i,!1)&&e.add(n);return e}*_getStoredAttributes(){const t=this.getFirstPosition().parent;if(this.isCollapsed&&t.isEmpty)for(const e of t.getAttributeKeys())if(e.startsWith("selection:")){const n=e.substr("selection:".length);yield[n,t.getAttribute(e)]}}_getSurroundingAttributes(){const t=this.getFirstPosition(),e=this._model.schema;let n=null;if(this.isCollapsed){const i=t.textNode?t.textNode:t.nodeBefore,r=t.textNode?t.textNode:t.nodeAfter;if(this.isGravityOverridden||(n=xa(i)),n||(n=xa(r)),!this.isGravityOverridden&&!n){let t=i;for(;t&&!e.isInline(t)&&!n;)t=t.previousSibling,n=xa(t)}if(!n){let t=r;for(;t&&!e.isInline(t)&&!n;)t=t.nextSibling,n=xa(t)}n||(n=this._getStoredAttributes())}else{const t=this.getFirstRange();for(const i of t){if(i.item.is("element")&&e.isObject(i.item))break;if("text"==i.type){n=i.item.getAttributes();break}}}return n}_fixGraveyardSelection(t){const e=this._model.schema.getNearestSelectionRange(t);e&&this._pushRange(e)}}function xa(t){return t instanceof Gs||t instanceof qs?t.getAttributes():null}class ka{constructor(t){this._dispatchers=t}add(t){for(const e of this._dispatchers)t(e);return this}}var Ma=function(t){return Xn(t,5)};class Sa extends ka{elementToElement(t){return this.add(function(t){return(t=Ma(t)).view=Ta(t.view,"container"),e=>{var n;if(e.on("insert:"+t.model,(n=t.view,(t,e,i)=>{const r=n(e.item,i);if(!r)return;if(!i.consumable.consume(e.item,"insert"))return;const o=i.mapper.toViewPosition(e.range.start);i.mapper.bindElements(e.item,r),i.writer.insert(o,r)}),{priority:t.converterPriority||"normal"}),t.triggerBy){if(t.triggerBy.attributes)for(const n of t.triggerBy.attributes)e._mapReconversionTriggerEvent(t.model,`attribute:${n}:${t.model}`);if(t.triggerBy.children)for(const n of t.triggerBy.children)e._mapReconversionTriggerEvent(t.model,"insert:"+n),e._mapReconversionTriggerEvent(t.model,"remove:"+n)}}}(t))}attributeToElement(t){return this.add(function(t){let e="attribute:"+((t=Ma(t)).model.key?t.model.key:t.model);if(t.model.name&&(e+=":"+t.model.name),t.model.values)for(const e of t.model.values)t.view[e]=Ta(t.view[e],"attribute");else t.view=Ta(t.view,"attribute");const n=Ca(t);return i=>{i.on(e,function(t){return(e,n,i)=>{const r=t(n.attributeOldValue,i),o=t(n.attributeNewValue,i);if(!r&&!o)return;if(!i.consumable.consume(n.item,e.name))return;const s=i.writer,a=s.document.selection;if(n.item instanceof ha||n.item instanceof ya)s.wrap(a.getFirstRange(),o);else{let t=i.mapper.toViewRange(n.range);null!==n.attributeOldValue&&r&&(t=s.unwrap(t,r)),null!==n.attributeNewValue&&o&&s.wrap(t,o)}}}(n),{priority:t.converterPriority||"normal"})}}(t))}attributeToAttribute(t){return this.add(function(t){let e="attribute:"+((t=Ma(t)).model.key?t.model.key:t.model);if(t.model.name&&(e+=":"+t.model.name),t.model.values)for(const e of t.model.values)t.view[e]=Da(t.view[e]);else t.view=Da(t.view);const n=Ca(t);return i=>{var r;i.on(e,(r=n,(t,e,n)=>{const i=r(e.attributeOldValue,n),o=r(e.attributeNewValue,n);if(!i&&!o)return;if(!n.consumable.consume(e.item,t.name))return;const s=n.mapper.toViewElement(e.item),a=n.writer;if(!s)throw new l.a("conversion-attribute-to-attribute-on-text",[e,n]);if(null!==e.attributeOldValue&&i)if("class"==i.key){const t=ei(i.value);for(const e of t)a.removeClass(e,s)}else if("style"==i.key){const t=Object.keys(i.value);for(const e of t)a.removeStyle(e,s)}else a.removeAttribute(i.key,s);if(null!==e.attributeNewValue&&o)if("class"==o.key){const t=ei(o.value);for(const e of t)a.addClass(e,s)}else if("style"==o.key){const t=Object.keys(o.value);for(const e of t)a.setStyle(e,o.value[e],s)}else a.setAttribute(o.key,o.value,s)}),{priority:t.converterPriority||"normal"})}}(t))}markerToElement(t){return this.add(function(t){return(t=Ma(t)).view=Ta(t.view,"ui"),e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,i)=>{e.isOpening=!0;const r=n(e,i);e.isOpening=!1;const o=n(e,i);if(!r||!o)return;const s=e.markerRange;if(s.isCollapsed&&!i.consumable.consume(s,t.name))return;for(const e of s)if(!i.consumable.consume(e.item,t.name))return;const a=i.mapper,l=i.writer;l.insert(a.toViewPosition(s.start),r),i.mapper.bindElementToMarker(r,e.markerName),s.isCollapsed||(l.insert(a.toViewPosition(s.end),o),i.mapper.bindElementToMarker(o,e.markerName)),t.stop()}),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,(t.view,(t,e,n)=>{const i=n.mapper.markerNameToElements(e.markerName);if(i){for(const t of i)n.mapper.unbindElementFromMarkerName(t,e.markerName),n.writer.clear(n.writer.createRangeOn(t),t);n.writer.clearClonedElementsGroup(e.markerName),t.stop()}}),{priority:t.converterPriority||"normal"})}}(t))}markerToHighlight(t){return this.add(function(t){return e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,i)=>{if(!e.item)return;if(!(e.item instanceof ha||e.item instanceof ya||e.item.is("$textProxy")))return;const r=Ea(n,e,i);if(!r)return;if(!i.consumable.consume(e.item,t.name))return;const o=i.writer,s=La(o,r),a=o.document.selection;if(e.item instanceof ha||e.item instanceof ya)o.wrap(a.getFirstRange(),s,a);else{const t=i.mapper.toViewRange(e.range),n=o.wrap(t,s);for(const t of n.getItems())if(t.is("attributeElement")&&t.isSimilar(s)){i.mapper.bindElementToMarker(t,e.markerName);break}}}),{priority:t.converterPriority||"normal"}),e.on("addMarker:"+t.model,function(t){return(e,n,i)=>{if(!n.item)return;if(!(n.item instanceof Zs))return;const r=Ea(t,n,i);if(!r)return;if(!i.consumable.test(n.item,e.name))return;const o=i.mapper.toViewElement(n.item);if(o&&o.getCustomProperty("addHighlight")){i.consumable.consume(n.item,e.name);for(const t of ra._createIn(n.item))i.consumable.consume(t.item,e.name);o.getCustomProperty("addHighlight")(o,r,i.writer),i.mapper.bindElementToMarker(o,n.markerName)}}}(t.view),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,function(t){return(e,n,i)=>{if(n.markerRange.isCollapsed)return;const r=Ea(t,n,i);if(!r)return;const o=La(i.writer,r),s=i.mapper.markerNameToElements(n.markerName);if(s){for(const t of s)i.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("attributeElement")?i.writer.unwrap(i.writer.createRangeOn(t),o):t.getCustomProperty("removeHighlight")(t,r.id,i.writer);i.writer.clearClonedElementsGroup(n.markerName),e.stop()}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}markerToData(t){return this.add(function(t){const e=(t=Ma(t)).model;return t.view||(t.view=n=>({group:e,name:n.substr(t.model.length+1)})),n=>{var i;n.on("addMarker:"+e,(i=t.view,(t,e,n)=>{const r=i(e.markerName,n);if(!r)return;const o=e.markerRange;n.consumable.consume(o,t.name)&&(Aa(o,!1,n,e,r),Aa(o,!0,n,e,r),t.stop())}),{priority:t.converterPriority||"normal"}),n.on("removeMarker:"+e,function(t){return(e,n,i)=>{const r=t(n.markerName,i);if(!r)return;const o=i.mapper.markerNameToElements(n.markerName);if(o){for(const t of o)i.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("containerElement")?(s(`data-${r.group}-start-before`,t),s(`data-${r.group}-start-after`,t),s(`data-${r.group}-end-before`,t),s(`data-${r.group}-end-after`,t)):i.writer.clear(i.writer.createRangeOn(t),t);i.writer.clearClonedElementsGroup(n.markerName),e.stop()}function s(t,e){if(e.hasAttribute(t)){const n=new Set(e.getAttribute(t).split(","));n.delete(r.name),0==n.size?i.writer.removeAttribute(t,e):i.writer.setAttribute(t,Array.from(n).join(","),e)}}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}}function La(t,e){const n=t.createAttributeElement("span",e.attributes);return e.classes&&n._addClass(e.classes),"number"==typeof e.priority&&(n._priority=e.priority),n._id=e.id,n}function Aa(t,e,n,i,r){const o=e?t.start:t.end,s=o.nodeAfter&&o.nodeAfter.is("element")?o.nodeAfter:null,a=o.nodeBefore&&o.nodeBefore.is("element")?o.nodeBefore:null;if(s||a){let t,o;e&&s||!e&&!a?(t=s,o=!0):(t=a,o=!1);const l=n.mapper.toViewElement(t);if(l)return void function(t,e,n,i,r,o){const s=`data-${o.group}-${e?"start":"end"}-${n?"before":"after"}`,a=t.hasAttribute(s)?t.getAttribute(s).split(","):[];a.unshift(o.name),i.writer.setAttribute(s,a.join(","),t),i.mapper.bindElementToMarker(t,r.markerName)}(l,e,o,n,i,r)}!function(t,e,n,i,r){const o=`${r.group}-${e?"start":"end"}`,s=r.name?{name:r.name}:null,a=n.writer.createUIElement(o,s);n.writer.insert(t,a),n.mapper.bindElementToMarker(a,i.markerName)}(n.mapper.toViewPosition(o),e,n,i,r)}function Ta(t,e){return"function"==typeof t?t:(n,i)=>function(t,e,n){let i;"string"==typeof t&&(t={name:t});const r=e.writer,o=Object.assign({},t.attributes);if("container"==n)i=r.createContainerElement(t.name,o);else if("attribute"==n){const e={priority:t.priority||xr.DEFAULT_PRIORITY};i=r.createAttributeElement(t.name,o,e)}else i=r.createUIElement(t.name,o);if(t.styles){const e=Object.keys(t.styles);for(const n of e)r.setStyle(n,t.styles[n],i)}if(t.classes){const e=t.classes;if("string"==typeof e)r.addClass(e,i);else for(const t of e)r.addClass(t,i)}return i}(t,i,e)}function Ca(t){return t.model.values?(e,n)=>{const i=t.view[e];return i?i(e,n):null}:t.view}function Da(t){return"string"==typeof t?e=>({key:t,value:e}):"object"==typeof t?t.value?()=>t:e=>({key:t.key,value:e}):t}function Ea(t,e,n){const i="function"==typeof t?t(e,n):t;return i?(i.priority||(i.priority=10),i.id||(i.id=e.markerName),i):null}function Pa(t){const{schema:e,document:n}=t.model;for(const i of n.getRootNames()){const r=n.getRoot(i);if(r.isEmpty&&!e.checkChild(r,"$text")&&e.checkChild(r,"paragraph"))return t.insertElement("paragraph",r),!0}return!1}function Ya(t,e,n){const i=n.createContext(t);return!!n.checkChild(i,"paragraph")&&!!n.checkChild(i.push("paragraph"),e)}function Oa(t,e){const n=e.createElement("paragraph");return e.insert(n,t),e.createPositionAt(n,0)}class Ia extends ka{elementToElement(t){return this.add(Ra(t))}elementToAttribute(t){return this.add(function(t){za(t=Ma(t));const e=Ha(t,!1),n=Na(t.view),i=n?"element:"+n:"element";return n=>{n.on(i,e,{priority:t.converterPriority||"low"})}}(t))}attributeToAttribute(t){return this.add(function(t){let e=null;("string"==typeof(t=Ma(t)).view||t.view.key)&&(e=function(t){"string"==typeof t.view&&(t.view={key:t.view});const e=t.view.key;let n;return n="class"==e||"style"==e?{["class"==e?"classes":"styles"]:t.view.value}:{attributes:{[e]:void 0===t.view.value?/[\s\S]*/:t.view.value}},t.view.name&&(n.name=t.view.name),t.view=n,e}(t)),za(t,e);const n=Ha(t,!0);return e=>{e.on("element",n,{priority:t.converterPriority||"low"})}}(t))}elementToMarker(t){return this.add(function(t){return function(t){const e=t.model;t.model=(t,n)=>{const i="string"==typeof e?e:e(t,n);return n.writer.createElement("$marker",{"data-name":i})}}(t=Ma(t)),Ra(t)}(t))}dataToMarker(t){return this.add(function(t){(t=Ma(t)).model||(t.model=e=>e?t.view+":"+e:t.view);const e=ja(Fa(t,"start")),n=ja(Fa(t,"end"));return i=>{i.on("element:"+t.view+"-start",e,{priority:t.converterPriority||"normal"}),i.on("element:"+t.view+"-end",n,{priority:t.converterPriority||"normal"});const r=a.get("low"),o=a.get("highest"),s=a.get(t.converterPriority)/o;i.on("element",function(t){return(e,n,i)=>{const r="data-"+t.view;function o(e,r){for(const o of r){const r=t.model(o,i),s=i.writer.createElement("$marker",{"data-name":r});i.writer.insert(s,e),n.modelCursor.isEqual(e)?n.modelCursor=n.modelCursor.getShiftedBy(1):n.modelCursor=n.modelCursor._getTransformedByInsertion(e,1),n.modelRange=n.modelRange._getTransformedByInsertion(e,1)[0]}}(i.consumable.test(n.viewItem,{attributes:r+"-end-after"})||i.consumable.test(n.viewItem,{attributes:r+"-start-after"})||i.consumable.test(n.viewItem,{attributes:r+"-end-before"})||i.consumable.test(n.viewItem,{attributes:r+"-start-before"}))&&(n.modelRange||Object.assign(n,i.convertChildren(n.viewItem,n.modelCursor)),i.consumable.consume(n.viewItem,{attributes:r+"-end-after"})&&o(n.modelRange.end,n.viewItem.getAttribute(r+"-end-after").split(",")),i.consumable.consume(n.viewItem,{attributes:r+"-start-after"})&&o(n.modelRange.end,n.viewItem.getAttribute(r+"-start-after").split(",")),i.consumable.consume(n.viewItem,{attributes:r+"-end-before"})&&o(n.modelRange.start,n.viewItem.getAttribute(r+"-end-before").split(",")),i.consumable.consume(n.viewItem,{attributes:r+"-start-before"})&&o(n.modelRange.start,n.viewItem.getAttribute(r+"-start-before").split(",")))}}(t),{priority:r+s})}}(t))}}function Ra(t){const e=ja(t=Ma(t)),n=Na(t.view),i=n?"element:"+n:"element";return n=>{n.on(i,e,{priority:t.converterPriority||"normal"})}}function Na(t){return"string"==typeof t?t:"object"==typeof t&&"string"==typeof t.name?t.name:null}function ja(t){const e=new pi(t.view);return(n,i,r)=>{const o=e.match(i.viewItem);if(!o)return;const s=o.match;if(s.name=!0,!r.consumable.test(i.viewItem,s))return;const a=function(t,e,n){return t instanceof Function?t(e,n):n.writer.createElement(t)}(t.model,i.viewItem,r);a&&r.safeInsert(a,i.modelCursor)&&(r.consumable.consume(i.viewItem,s),r.convertChildren(i.viewItem,a),r.updateConversionResult(a,i))}}function za(t,e=null){const n=null===e||(t=>t.getAttribute(e)),i="object"!=typeof t.model?t.model:t.model.key,r="object"!=typeof t.model||void 0===t.model.value?n:t.model.value;t.model={key:i,value:r}}function Ha(t,e){const n=new pi(t.view);return(i,r,o)=>{const s=n.match(r.viewItem);if(!s)return;if(function(t,e){const n="function"==typeof t?t(e):t;return!("object"==typeof n&&!Na(n)||n.classes||n.attributes||n.styles)}(t.view,r.viewItem)?s.match.name=!0:delete s.match.name,!o.consumable.test(r.viewItem,s.match))return;const a=t.model.key,l="function"==typeof t.model.value?t.model.value(r.viewItem,o):t.model.value;null!==l&&(r.modelRange||Object.assign(r,o.convertChildren(r.viewItem,r.modelCursor)),function(t,e,n,i){let r=!1;for(const o of Array.from(t.getItems({shallow:n})))i.schema.checkAttribute(o,e.key)&&(r=!0,o.hasAttribute(e.key)||i.writer.setAttribute(e.key,e.value,o));return r}(r.modelRange,{key:a,value:l},e,o)&&o.consumable.consume(r.viewItem,s.match))}}function Fa(t,e){const n={};return n.view=t.view+"-"+e,n.model=(e,n)=>{const i=e.getAttribute("name"),r=t.model(i,n);return n.writer.createElement("$marker",{"data-name":r})},n}class Ba{constructor(t,e){this.model=t,this.view=new Xs(e),this.mapper=new oa,this.downcastDispatcher=new la({mapper:this.mapper,schema:t.schema});const n=this.model.document,i=n.selection,r=this.model.markers;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(n,"change",(()=>{this.view.change((t=>{this.downcastDispatcher.convertChanges(n.differ,r,t),this.downcastDispatcher.convertSelection(i,r,t)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(t,e){return(n,i)=>{const r=i.newSelection,o=[];for(const t of r.getRanges())o.push(e.toModelRange(t));const s=t.createSelection(o,{backward:r.isBackward});s.isEqual(t.document.selection)||t.change((t=>{t.setSelection(s)}))}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,"insert"))return;const i=n.writer,r=n.mapper.toViewPosition(e.range.start),o=i.createText(e.item.data);i.insert(r,o)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((t,e,n)=>{const i=n.mapper.toViewPosition(e.position),r=e.position.getShiftedBy(e.length),o=n.mapper.toViewPosition(r,{isPhantom:!0}),s=n.writer.createRange(i,o),a=n.writer.remove(s.getTrimmed());for(const t of n.writer.createRangeIn(a).getItems())n.mapper.unbindViewElement(t)}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const i=n.writer,r=i.document.selection;for(const t of r.getRanges())t.isCollapsed&&t.end.parent.isAttached()&&n.writer.mergeAttributes(t.start);i.setSelection(null)}),{priority:"high"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const i=e.selection;if(i.isCollapsed)return;if(!n.consumable.consume(i,"selection"))return;const r=[];for(const t of i.getRanges()){const e=n.mapper.toViewRange(t);r.push(e)}n.writer.setSelection(r,{backward:i.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const i=e.selection;if(!i.isCollapsed)return;if(!n.consumable.consume(i,"selection"))return;const r=n.writer,o=i.getFirstPosition(),s=n.mapper.toViewPosition(o),a=r.breakAttributes(s);r.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((t=>{if("$graveyard"==t.rootName)return null;const e=new sr(this.view.document,t.name);return e.rootName=t.rootName,this.mapper.bindElements(t,e),e}))}destroy(){this.view.destroy(),this.stopListening()}}Gt(Ba,Vt);class Va{constructor(){this._commands=new Map}add(t,e){this._commands.set(t,e)}get(t){return this._commands.get(t)}execute(t,...e){const n=this.get(t);if(!n)throw new l.a("commandcollection-command-not-found",this,{commandName:t});return n.execute(...e)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const t of this.commands())t.destroy()}}class Wa{constructor(){this._consumables=new Map}add(t,e){let n;t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):(this._consumables.has(t)?n=this._consumables.get(t):(n=new Ua(t),this._consumables.set(t,n)),n.add(e))}test(t,e){const n=this._consumables.get(t);return void 0===n?null:t.is("$text")||t.is("documentFragment")?n:n.test(e)}consume(t,e){return!!this.test(t,e)&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!1):this._consumables.get(t).consume(e),!0)}revert(t,e){const n=this._consumables.get(t);void 0!==n&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):n.revert(e))}static consumablesFromElement(t){const e={element:t,name:!0,attributes:[],classes:[],styles:[]},n=t.getAttributeKeys();for(const t of n)"style"!=t&&"class"!=t&&e.attributes.push(t);const i=t.getClassNames();for(const t of i)e.classes.push(t);const r=t.getStyleNames();for(const t of r)e.styles.push(t);return e}static createFrom(t,e){if(e||(e=new Wa(t)),t.is("$text"))return e.add(t),e;t.is("element")&&e.add(t,Wa.consumablesFromElement(t)),t.is("documentFragment")&&e.add(t);for(const n of t.getChildren())e=Wa.createFrom(n,e);return e}}class Ua{constructor(t){this.element=t,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._add(e,t[e])}test(t){if(t.name&&!this._canConsumeName)return this._canConsumeName;for(const e in this._consumables)if(e in t){const n=this._test(e,t[e]);if(!0!==n)return n}return!0}consume(t){t.name&&(this._canConsumeName=!1);for(const e in this._consumables)e in t&&this._consume(e,t[e])}revert(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._revert(e,t[e])}_add(t,e){const n=yt(e)?e:[e],i=this._consumables[t];for(const e of n){if("attributes"===t&&("class"===e||"style"===e))throw new l.a("viewconsumable-invalid-attribute",this);if(i.set(e,!0),"styles"===t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))i.set(t,!0)}}_test(t,e){const n=yt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){const t=i.get(e);if(void 0===t)return null;if(!t)return!1}else{const t="class"==e?"classes":"styles",n=this._test(t,[...this._consumables[t].keys()]);if(!0!==n)return n}return!0}_consume(t,e){const n=yt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){if(i.set(e,!1),"styles"==t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))i.set(t,!1)}else{const t="class"==e?"classes":"styles";this._consume(t,[...this._consumables[t].keys()])}}_revert(t,e){const n=yt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e)!1===i.get(e)&&i.set(e,!0);else{const t="class"==e?"classes":"styles";this._revert(t,[...this._consumables[t].keys()])}}}class Xa{constructor(){this._sourceDefinitions={},this._attributeProperties={},this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((t,e)=>{e[0]=new $a(e[0])}),{priority:"highest"}),this.on("checkChild",((t,e)=>{e[0]=new $a(e[0]),e[1]=this.getDefinition(e[1])}),{priority:"highest"})}register(t,e){if(this._sourceDefinitions[t])throw new l.a("schema-cannot-register-item-twice",this,{itemName:t});this._sourceDefinitions[t]=[Object.assign({},e)],this._clearCache()}extend(t,e){if(!this._sourceDefinitions[t])throw new l.a("schema-cannot-extend-missing-item",this,{itemName:t});this._sourceDefinitions[t].push(Object.assign({},e)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(t){let e;return e="string"==typeof t?t:t.is&&(t.is("$text")||t.is("$textProxy"))?"$text":t.name,this.getDefinitions()[e]}isRegistered(t){return!!this.getDefinition(t)}isBlock(t){const e=this.getDefinition(t);return!(!e||!e.isBlock)}isLimit(t){const e=this.getDefinition(t);return!(!e||!e.isLimit&&!e.isObject)}isObject(t){const e=this.getDefinition(t);return!!e&&!!(e.isObject||e.isLimit&&e.isSelectable&&e.isContent)}isInline(t){const e=this.getDefinition(t);return!(!e||!e.isInline)}isSelectable(t){const e=this.getDefinition(t);return!(!e||!e.isSelectable&&!e.isObject)}isContent(t){const e=this.getDefinition(t);return!(!e||!e.isContent&&!e.isObject)}checkChild(t,e){return!!e&&this._checkContextMatch(e,t)}checkAttribute(t,e){const n=this.getDefinition(t.last);return!!n&&n.allowAttributes.includes(e)}checkMerge(t,e=null){if(t instanceof ta){const e=t.nodeBefore,n=t.nodeAfter;if(!(e instanceof Zs))throw new l.a("schema-check-merge-no-element-before",this);if(!(n instanceof Zs))throw new l.a("schema-check-merge-no-element-after",this);return this.checkMerge(e,n)}for(const n of e.getChildren())if(!this.checkChild(t,n))return!1;return!0}addChildCheck(t){this.on("checkChild",((e,[n,i])=>{if(!i)return;const r=t(n,i);"boolean"==typeof r&&(e.stop(),e.return=r)}),{priority:"high"})}addAttributeCheck(t){this.on("checkAttribute",((e,[n,i])=>{const r=t(n,i);"boolean"==typeof r&&(e.stop(),e.return=r)}),{priority:"high"})}setAttributeProperties(t,e){this._attributeProperties[t]=Object.assign(this.getAttributeProperties(t),e)}getAttributeProperties(t){return this._attributeProperties[t]||{}}getLimitElement(t){let e;for(e=t instanceof ta?t.parent:(t instanceof ra?[t]:Array.from(t.getRanges())).reduce(((t,e)=>{const n=e.getCommonAncestor();return t?t.getCommonAncestor(n,{includeSelf:!0}):n}),null);!this.isLimit(e)&&e.parent;)e=e.parent;return e}checkAttributeInSelection(t,e){if(t.isCollapsed){const n=[...t.getFirstPosition().getAncestors(),new qs("",t.getAttributes())];return this.checkAttribute(n,e)}{const n=t.getRanges();for(const t of n)for(const n of t)if(this.checkAttribute(n.item,e))return!0}return!1}*getValidRanges(t,e){t=function*(t){for(const e of t)yield*e.getMinimalFlatRanges()}(t);for(const n of t)yield*this._getValidRangesForRange(n,e)}getNearestSelectionRange(t,e="both"){if(this.checkChild(t,"$text"))return new ra(t);let n,i;const r=t.getAncestors().reverse().find((t=>this.isLimit(t)))||t.root;"both"!=e&&"backward"!=e||(n=new Ks({boundaries:ra._createIn(r),startPosition:t,direction:"backward"})),"both"!=e&&"forward"!=e||(i=new Ks({boundaries:ra._createIn(r),startPosition:t}));for(const t of function*(t,e){let n=!1;for(;!n;){if(n=!0,t){const e=t.next();e.done||(n=!1,yield{walker:t,value:e.value})}if(e){const t=e.next();t.done||(n=!1,yield{walker:e,value:t.value})}}}(n,i)){const e=t.walker==n?"elementEnd":"elementStart",i=t.value;if(i.type==e&&this.isObject(i.item))return ra._createOn(i.item);if(this.checkChild(i.nextPosition,"$text"))return new ra(i.nextPosition)}return null}findAllowedParent(t,e){let n=t.parent;for(;n;){if(this.checkChild(n,e))return n;if(this.isLimit(n))return null;n=n.parent}return null}removeDisallowedAttributes(t,e){for(const n of t)if(n.is("$text"))sl(this,n,e);else{const t=ra._createIn(n).getPositions();for(const n of t)sl(this,n.nodeBefore||n.parent,e)}}createContext(t){return new $a(t)}_clearCache(){this._compiledDefinitions=null}_compile(){const t={},e=this._sourceDefinitions,n=Object.keys(e);for(const i of n)t[i]=qa(e[i],i);for(const e of n)Ga(t,e);for(const e of n)Ja(t,e);for(const e of n)Za(t,e);for(const e of n)Ka(t,e),Qa(t,e);for(const e of n)tl(t,e),el(t,e),nl(t,e);this._compiledDefinitions=t}_checkContextMatch(t,e,n=e.length-1){const i=e.getItem(n);if(t.allowIn.includes(i.name)){if(0==n)return!0;{const t=this.getDefinition(i);return this._checkContextMatch(t,e,n-1)}}return!1}*_getValidRangesForRange(t,e){let n=t.start,i=t.start;for(const r of t.getItems({shallow:!0}))r.is("element")&&(yield*this._getValidRangesForRange(ra._createIn(r),e)),this.checkAttribute(r,e)||(n.isEqual(i)||(yield new ra(n,i)),n=ta._createAfter(r)),i=ta._createAfter(r);n.isEqual(i)||(yield new ra(n,i))}}Gt(Xa,Vt);class $a{constructor(t){if(t instanceof $a)return t;"string"==typeof t?t=[t]:Array.isArray(t)||(t=t.getAncestors({includeSelf:!0})),this._items=t.map(ol)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(t){const e=new $a([t]);return e._items=[...this._items,...e._items],e}getItem(t){return this._items[t]}*getNames(){yield*this._items.map((t=>t.name))}endsWith(t){return Array.from(this.getNames()).join(" ").endsWith(t)}startsWith(t){return Array.from(this.getNames()).join(" ").startsWith(t)}}function qa(t,e){const n={name:e,allowIn:[],allowContentOf:[],allowWhere:[],allowAttributes:[],allowAttributesOf:[],allowChildren:[],inheritTypesFrom:[]};return function(t,e){for(const n of t){const t=Object.keys(n).filter((t=>t.startsWith("is")));for(const i of t)e[i]=n[i]}}(t,n),il(t,n,"allowIn"),il(t,n,"allowContentOf"),il(t,n,"allowWhere"),il(t,n,"allowAttributes"),il(t,n,"allowAttributesOf"),il(t,n,"allowChildren"),il(t,n,"inheritTypesFrom"),function(t,e){for(const n of t){const t=n.inheritAllFrom;t&&(e.allowContentOf.push(t),e.allowWhere.push(t),e.allowAttributesOf.push(t),e.inheritTypesFrom.push(t))}}(t,n),n}function Ga(t,e){const n=t[e];for(const i of n.allowChildren){const n=t[i];n&&n.allowIn.push(e)}n.allowChildren.length=0}function Ja(t,e){for(const n of t[e].allowContentOf)t[n]&&rl(t,n).forEach((t=>{t.allowIn.push(e)}));delete t[e].allowContentOf}function Za(t,e){for(const n of t[e].allowWhere){const i=t[n];if(i){const n=i.allowIn;t[e].allowIn.push(...n)}}delete t[e].allowWhere}function Ka(t,e){for(const n of t[e].allowAttributesOf){const i=t[n];if(i){const n=i.allowAttributes;t[e].allowAttributes.push(...n)}}delete t[e].allowAttributesOf}function Qa(t,e){const n=t[e];for(const e of n.inheritTypesFrom){const i=t[e];if(i){const t=Object.keys(i).filter((t=>t.startsWith("is")));for(const e of t)e in n||(n[e]=i[e])}}delete n.inheritTypesFrom}function tl(t,e){const n=t[e],i=n.allowIn.filter((e=>t[e]));n.allowIn=Array.from(new Set(i))}function el(t,e){const n=t[e];for(const i of n.allowIn)t[i].allowChildren.push(e)}function nl(t,e){const n=t[e];n.allowAttributes=Array.from(new Set(n.allowAttributes))}function il(t,e,n){for(const i of t)"string"==typeof i[n]?e[n].push(i[n]):Array.isArray(i[n])&&e[n].push(...i[n])}function rl(t,e){const n=t[e];return(i=t,Object.keys(i).map((t=>i[t]))).filter((t=>t.allowIn.includes(n.name)));var i}function ol(t){return"string"==typeof t||t.is("documentFragment")?{name:"string"==typeof t?t:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:t.is("element")?t.name:"$text",*getAttributeKeys(){yield*t.getAttributeKeys()},getAttribute:e=>t.getAttribute(e)}}function sl(t,e,n){for(const i of e.getAttributeKeys())t.checkAttribute(e,i)||n.removeAttribute(i,e)}class al{constructor(t={}){this._splitParts=new Map,this._cursorParents=new Map,this._modelCursor=null,this.conversionApi=Object.assign({},t),this.conversionApi.convertItem=this._convertItem.bind(this),this.conversionApi.convertChildren=this._convertChildren.bind(this),this.conversionApi.safeInsert=this._safeInsert.bind(this),this.conversionApi.updateConversionResult=this._updateConversionResult.bind(this),this.conversionApi.splitToAllowedParent=this._splitToAllowedParent.bind(this),this.conversionApi.getSplitParts=this._getSplitParts.bind(this)}convert(t,e,n=["$root"]){this.fire("viewCleanup",t),this._modelCursor=function(t,e){let n;for(const i of new $a(t)){const t={};for(const e of i.getAttributeKeys())t[e]=i.getAttribute(e);const r=e.createElement(i.name,t);n&&e.append(r,n),n=ta._createAt(r,0)}return n}(n,e),this.conversionApi.writer=e,this.conversionApi.consumable=Wa.createFrom(t),this.conversionApi.store={};const{modelRange:i}=this._convertItem(t,this._modelCursor),r=e.createDocumentFragment();if(i){this._removeEmptyElements();for(const t of Array.from(this._modelCursor.parent.getChildren()))e.append(t,r);r.markers=function(t,e){const n=new Set,i=new Map,r=ra._createIn(t).getItems();for(const t of r)"$marker"==t.name&&n.add(t);for(const t of n){const n=t.getAttribute("data-name"),r=e.createPositionBefore(t);i.has(n)?i.get(n).end=r.clone():i.set(n,new ra(r.clone())),e.remove(t)}return i}(r,e)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,r}_convertItem(t,e){const n=Object.assign({viewItem:t,modelCursor:e,modelRange:null});if(t.is("element")?this.fire("element:"+t.name,n,this.conversionApi):t.is("$text")?this.fire("text",n,this.conversionApi):this.fire("documentFragment",n,this.conversionApi),n.modelRange&&!(n.modelRange instanceof ra))throw new l.a("view-conversion-dispatcher-incorrect-result",this);return{modelRange:n.modelRange,modelCursor:n.modelCursor}}_convertChildren(t,e){let n=e.is("position")?e:ta._createAt(e,0);const i=new ra(n);for(const e of Array.from(t.getChildren())){const t=this._convertItem(e,n);t.modelRange instanceof ra&&(i.end=t.modelRange.end,n=t.modelCursor)}return{modelRange:i,modelCursor:n}}_safeInsert(t,e){const n=this._splitToAllowedParent(t,e);return!!n&&(this.conversionApi.writer.insert(t,n.position),!0)}_updateConversionResult(t,e){const n=this._getSplitParts(t),i=this.conversionApi.writer;e.modelRange||(e.modelRange=i.createRange(i.createPositionBefore(t),i.createPositionAfter(n[n.length-1])));const r=this._cursorParents.get(t);e.modelCursor=r?i.createPositionAt(r,0):e.modelRange.end}_splitToAllowedParent(t,e){const{schema:n,writer:i}=this.conversionApi;let r=n.findAllowedParent(e,t);if(r){if(r===e.parent)return{position:e};this._modelCursor.parent.getAncestors().includes(r)&&(r=null)}if(!r)return Ya(e,t,n)?{position:Oa(e,i)}:null;const o=this.conversionApi.writer.split(e,r),s=[];for(const t of o.range.getWalker())if("elementEnd"==t.type)s.push(t.item);else{const e=s.pop(),n=t.item;this._registerSplitPair(e,n)}const a=o.range.end.parent;return this._cursorParents.set(t,a),{position:o.position,cursorParent:a}}_registerSplitPair(t,e){this._splitParts.has(t)||this._splitParts.set(t,[t]);const n=this._splitParts.get(t);this._splitParts.set(e,n),n.push(e)}_getSplitParts(t){let e;return e=this._splitParts.has(t)?this._splitParts.get(t):[t],e}_removeEmptyElements(){let t=!1;for(const e of this._splitParts.keys())e.isEmpty&&(this.conversionApi.writer.remove(e),this._splitParts.delete(e),t=!0);t&&this._removeEmptyElements()}}Gt(al,d);class ll{getHtml(t){const e=document.implementation.createHTMLDocument("").createElement("div");return e.appendChild(t),e.innerHTML}}class cl{constructor(t){this._domParser=new DOMParser,this._domConverter=new Ao(t,{blockFillerMode:"nbsp"}),this._htmlWriter=new ll}toData(t){const e=this._domConverter.viewToDom(t,document);return this._htmlWriter.getHtml(e)}toView(t){const e=this._toDom(t);return this._domConverter.domToView(e)}registerRawContentMatcher(t){this._domConverter.registerRawContentMatcher(t)}useFillerType(t){this._domConverter.blockFillerMode="marked"==t?"markedNbsp":"nbsp"}_toDom(t){const e=this._domParser.parseFromString(t,"text/html"),n=e.createDocumentFragment();let i=e.firstChild;for(;!i.isSameNode(e.documentElement);){const t=i;i=i.nextSibling,t.nodeType==Node.COMMENT_NODE&&n.appendChild(t)}const r=e.body.childNodes;for(;r.length>0;)n.appendChild(r[0]);return n}}class ul{constructor(t,e){this.model=t,this.mapper=new oa,this.downcastDispatcher=new la({mapper:this.mapper,schema:t.schema}),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,"insert"))return;const i=n.writer,r=n.mapper.toViewPosition(e.range.start),o=i.createText(e.item.data);i.insert(r,o)}),{priority:"lowest"}),this.upcastDispatcher=new al({schema:t.schema}),this.viewDocument=new wr(e),this.stylesProcessor=e,this.htmlProcessor=new cl(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new Wr(this.viewDocument),this.upcastDispatcher.on("text",((t,e,{schema:n,consumable:i,writer:r})=>{let o=e.modelCursor;if(!i.test(e.viewItem))return;if(!n.checkChild(o,"$text")){if(!Ya(o,"$text",n))return;o=Oa(o,r)}i.consume(e.viewItem);const s=r.createText(e.viewItem.data);r.insert(s,o),e.modelRange=r.createRange(o,o.getShiftedBy(s.offsetSize)),e.modelCursor=e.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=i}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=i}}),{priority:"lowest"}),this.decorate("init"),this.decorate("set"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange("transparent",Pa)}),{priority:"lowest"})}get(t={}){const{rootName:e="main",trim:n="empty"}=t;if(!this._checkIfRootsExists([e]))throw new l.a("datacontroller-get-non-existent-root",this);const i=this.model.document.getRoot(e);return"empty"!==n||this.model.hasContent(i,{ignoreWhitespaces:!0})?this.stringify(i,t):""}stringify(t,e={}){const n=this.toView(t,e);return this.processor.toData(n)}toView(t,e={}){const n=this.viewDocument,i=this._viewWriter;this.mapper.clearBindings();const r=ra._createIn(t),o=new Vr(n);this.mapper.bindElements(t,o),this.downcastDispatcher.conversionApi.options=e,this.downcastDispatcher.convertInsert(r,i);const s=t.is("documentFragment")?Array.from(t.markers):function(t){const e=[],n=t.root.document;if(!n)return[];const i=ra._createIn(t);for(const t of n.model.markers){const n=t.getRange(),r=n.isCollapsed,o=n.start.isEqual(i.start)||n.end.isEqual(i.end);if(r&&o)e.push([t.name,n]);else{const r=i.getIntersection(n);r&&e.push([t.name,r])}}return e}(t);for(const[t,e]of s)this.downcastDispatcher.convertMarkerAdd(t,e,i);return delete this.downcastDispatcher.conversionApi.options,o}init(t){if(this.model.document.version)throw new l.a("datacontroller-init-document-not-empty",this);let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new l.a("datacontroller-init-non-existent-root",this);return this.model.enqueueChange("transparent",(t=>{for(const n of Object.keys(e)){const i=this.model.document.getRoot(n);t.insert(this.parse(e[n],i),i,0)}})),Promise.resolve()}set(t,e={}){let n={};if("string"==typeof t?n.main=t:n=t,!this._checkIfRootsExists(Object.keys(n)))throw new l.a("datacontroller-set-non-existent-root",this);const i=e.batchType||"default";this.model.enqueueChange(i,(t=>{t.setSelection(null),t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const e of Object.keys(n)){const i=this.model.document.getRoot(e);t.remove(t.createRangeIn(i)),t.insert(this.parse(n[e],i),i,0)}}))}parse(t,e="$root"){const n=this.processor.toView(t);return this.toModel(n,e)}toModel(t,e="$root"){return this.model.change((n=>this.upcastDispatcher.convert(t,n,e)))}addStyleProcessorRules(t){t(this.stylesProcessor)}registerRawContentMatcher(t){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(t),this.htmlProcessor.registerRawContentMatcher(t)}destroy(){this.stopListening()}_checkIfRootsExists(t){for(const e of t)if(!this.model.document.getRootNames().includes(e))return!1;return!0}}Gt(ul,Vt);class dl{constructor(t,e){this._helpers=new Map,this._downcast=ei(t),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=ei(e),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(t,e){const n=this._downcast.includes(e);if(!this._upcast.includes(e)&&!n)throw new l.a("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:t,dispatchers:[e],isDowncast:n})}for(t){if(!this._helpers.has(t))throw new l.a("conversion-for-unknown-group",this);return this._helpers.get(t)}elementToElement(t){this.for("downcast").elementToElement(t);for(const{model:e,view:n}of hl(t))this.for("upcast").elementToElement({model:e,view:n,converterPriority:t.converterPriority})}attributeToElement(t){this.for("downcast").attributeToElement(t);for(const{model:e,view:n}of hl(t))this.for("upcast").elementToAttribute({view:n,model:e,converterPriority:t.converterPriority})}attributeToAttribute(t){this.for("downcast").attributeToAttribute(t);for(const{model:e,view:n}of hl(t))this.for("upcast").attributeToAttribute({view:n,model:e})}_createConversionHelpers({name:t,dispatchers:e,isDowncast:n}){if(this._helpers.has(t))throw new l.a("conversion-group-exists",this);const i=n?new Sa(e):new Ia(e);this._helpers.set(t,i)}}function*hl(t){if(t.model.values)for(const e of t.model.values){const n={key:t.model.key,value:e},i=t.view[e],r=t.upcastAlso?t.upcastAlso[e]:void 0;yield*fl(n,i,r)}else yield*fl(t.model,t.view,t.upcastAlso)}function*fl(t,e,n){if(yield{model:t,view:e},n)for(const e of ei(n))yield{model:t,view:e}}class pl{constructor(t="default"){this.operations=[],this.type=t}get baseVersion(){for(const t of this.operations)if(null!==t.baseVersion)return t.baseVersion;return null}addOperation(t){return t.batch=this,this.operations.push(t),t}}class ml{constructor(t){this.baseVersion=t,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const t=Object.assign({},this);return t.__className=this.constructor.className,delete t.batch,delete t.isDocumentOperation,t}static get className(){return"Operation"}static fromJSON(t){return new this(t.baseVersion)}}class gl{constructor(t){this.markers=new Map,this._children=new Js,t&&this._insertChild(0,t)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"model:documentFragment"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}getPath(){return[]}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}offsetToIndex(t){return this._children.offsetToIndex(t)}toJSON(){const t=[];for(const e of this._children)t.push(e.toJSON());return t}static fromJSON(t){const e=[];for(const n of t)n.name?e.push(Zs.fromJSON(n)):e.push(qs.fromJSON(n));return new gl(e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){return"string"==typeof t?[new qs(t)]:(Kn(t)||(t=[t]),Array.from(t).map((t=>"string"==typeof t?new qs(t):t instanceof Gs?new qs(t.data,t.getAttributes()):t)))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}}function bl(t,e){const n=(e=yl(e)).reduce(((t,e)=>t+e.offsetSize),0),i=t.parent;xl(t);const r=t.index;return i._insertChild(r,e),wl(i,r+e.length),wl(i,r),new ra(t,t.getShiftedBy(n))}function _l(t){if(!t.isFlat)throw new l.a("operation-utils-remove-range-not-flat",this);const e=t.start.parent;xl(t.start),xl(t.end);const n=e._removeChildren(t.start.index,t.end.index-t.start.index);return wl(e,t.start.index),n}function vl(t,e){if(!t.isFlat)throw new l.a("operation-utils-move-range-not-flat",this);const n=_l(t);return bl(e=e._getTransformedByDeletion(t.start,t.end.offset-t.start.offset),n)}function yl(t){const e=[];t instanceof Array||(t=[t]);for(let n=0;nt.maxOffset)throw new l.a("move-operation-nodes-do-not-exist",this);if(t===e&&n=n&&this.targetPosition.path[t]t._clone(!0)))),e=new Tl(this.position,t,this.baseVersion);return e.shouldReceiveAttributes=this.shouldReceiveAttributes,e}getReversed(){const t=this.position.root.document.graveyard,e=new ta(t,[0]);return new Al(this.position,this.nodes.maxOffset,e,this.baseVersion+1)}_validate(){const t=this.position.parent;if(!t||t.maxOffsett._clone(!0)))),bl(this.position,t)}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t.nodes=this.nodes.toJSON(),t}static get className(){return"InsertOperation"}static fromJSON(t,e){const n=[];for(const e of t.nodes)e.name?n.push(Zs.fromJSON(e)):n.push(qs.fromJSON(e));const i=new Tl(ta.fromJSON(t.position,e),n,t.baseVersion);return i.shouldReceiveAttributes=t.shouldReceiveAttributes,i}}class Cl extends ml{constructor(t,e,n,i,r,o){super(o),this.name=t,this.oldRange=e?e.clone():null,this.newRange=n?n.clone():null,this.affectsData=r,this._markers=i}get type(){return"marker"}clone(){return new Cl(this.name,this.oldRange,this.newRange,this._markers,this.affectsData,this.baseVersion)}getReversed(){return new Cl(this.name,this.newRange,this.oldRange,this._markers,this.affectsData,this.baseVersion+1)}_execute(){const t=this.newRange?"_set":"_remove";this._markers[t](this.name,this.newRange,!0,this.affectsData)}toJSON(){const t=super.toJSON();return this.oldRange&&(t.oldRange=this.oldRange.toJSON()),this.newRange&&(t.newRange=this.newRange.toJSON()),delete t._markers,t}static get className(){return"MarkerOperation"}static fromJSON(t,e){return new Cl(t.name,t.oldRange?ra.fromJSON(t.oldRange,e):null,t.newRange?ra.fromJSON(t.newRange,e):null,e.model.markers,t.affectsData,t.baseVersion)}}class Dl extends ml{constructor(t,e,n,i){super(i),this.position=t,this.position.stickiness="toNext",this.oldName=e,this.newName=n}get type(){return"rename"}clone(){return new Dl(this.position.clone(),this.oldName,this.newName,this.baseVersion)}getReversed(){return new Dl(this.position.clone(),this.newName,this.oldName,this.baseVersion+1)}_validate(){const t=this.position.nodeAfter;if(!(t instanceof Zs))throw new l.a("rename-operation-wrong-position",this);if(t.name!==this.oldName)throw new l.a("rename-operation-wrong-name",this)}_execute(){this.position.nodeAfter.name=this.newName}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t}static get className(){return"RenameOperation"}static fromJSON(t,e){return new Dl(ta.fromJSON(t.position,e),t.oldName,t.newName,t.baseVersion)}}class El extends ml{constructor(t,e,n,i,r){super(r),this.root=t,this.key=e,this.oldValue=n,this.newValue=i}get type(){return null===this.oldValue?"addRootAttribute":null===this.newValue?"removeRootAttribute":"changeRootAttribute"}clone(){return new El(this.root,this.key,this.oldValue,this.newValue,this.baseVersion)}getReversed(){return new El(this.root,this.key,this.newValue,this.oldValue,this.baseVersion+1)}_validate(){if(this.root!=this.root.root||this.root.is("documentFragment"))throw new l.a("rootattribute-operation-not-a-root",this,{root:this.root,key:this.key});if(null!==this.oldValue&&this.root.getAttribute(this.key)!==this.oldValue)throw new l.a("rootattribute-operation-wrong-old-value",this,{root:this.root,key:this.key});if(null===this.oldValue&&null!==this.newValue&&this.root.hasAttribute(this.key))throw new l.a("rootattribute-operation-attribute-exists",this,{root:this.root,key:this.key})}_execute(){null!==this.newValue?this.root._setAttribute(this.key,this.newValue):this.root._removeAttribute(this.key)}toJSON(){const t=super.toJSON();return t.root=this.root.toJSON(),t}static get className(){return"RootAttributeOperation"}static fromJSON(t,e){if(!e.getRoot(t.root))throw new l.a("rootattribute-operation-fromjson-no-root",this,{rootName:t.root});return new El(e.getRoot(t.root),t.key,t.oldValue,t.newValue,t.baseVersion)}}class Pl extends ml{constructor(t,e,n,i,r){super(r),this.sourcePosition=t.clone(),this.sourcePosition.stickiness="toPrevious",this.howMany=e,this.targetPosition=n.clone(),this.targetPosition.stickiness="toNext",this.graveyardPosition=i.clone()}get type(){return"merge"}get deletionPosition(){return new ta(this.sourcePosition.root,this.sourcePosition.path.slice(0,-1))}get movedRange(){const t=this.sourcePosition.getShiftedBy(Number.POSITIVE_INFINITY);return new ra(this.sourcePosition,t)}clone(){return new this.constructor(this.sourcePosition,this.howMany,this.targetPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.targetPosition._getTransformedByMergeOperation(this),e=this.sourcePosition.path.slice(0,-1),n=new ta(this.sourcePosition.root,e)._getTransformedByMergeOperation(this);return new Yl(t,this.howMany,n,this.graveyardPosition,this.baseVersion+1)}_validate(){const t=this.sourcePosition.parent,e=this.targetPosition.parent;if(!t.parent)throw new l.a("merge-operation-source-position-invalid",this);if(!e.parent)throw new l.a("merge-operation-target-position-invalid",this);if(this.howMany!=t.maxOffset)throw new l.a("merge-operation-how-many-invalid",this)}_execute(){const t=this.sourcePosition.parent;vl(ra._createIn(t),this.targetPosition),vl(ra._createOn(t),this.graveyardPosition)}toJSON(){const t=super.toJSON();return t.sourcePosition=t.sourcePosition.toJSON(),t.targetPosition=t.targetPosition.toJSON(),t.graveyardPosition=t.graveyardPosition.toJSON(),t}static get className(){return"MergeOperation"}static fromJSON(t,e){const n=ta.fromJSON(t.sourcePosition,e),i=ta.fromJSON(t.targetPosition,e),r=ta.fromJSON(t.graveyardPosition,e);return new this(n,t.howMany,i,r,t.baseVersion)}}class Yl extends ml{constructor(t,e,n,i,r){super(r),this.splitPosition=t.clone(),this.splitPosition.stickiness="toNext",this.howMany=e,this.insertionPosition=n,this.graveyardPosition=i?i.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const t=this.insertionPosition.path.slice();return t.push(0),new ta(this.insertionPosition.root,t)}get movedRange(){const t=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new ra(this.splitPosition,t)}clone(){return new this.constructor(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.splitPosition.root.document.graveyard,e=new ta(t,[0]);return new Pl(this.moveTargetPosition,this.howMany,this.splitPosition,e,this.baseVersion+1)}_validate(){const t=this.splitPosition.parent,e=this.splitPosition.offset;if(!t||t.maxOffset{for(const e of t.getAttributeKeys())this.removeAttribute(e,t)};if(t instanceof ra)for(const n of t.getItems())e(n);else e(t)}move(t,e,n){if(this._assertWriterUsedCorrectly(),!(t instanceof ra))throw new l.a("writer-move-invalid-range",this);if(!t.isFlat)throw new l.a("writer-move-range-not-flat",this);const i=ta._createAt(e,n);if(i.isEqual(t.start))return;if(this._addOperationForAffectedMarkers("move",t),!Hl(t.root,i.root))throw new l.a("writer-move-different-document",this);const r=t.root.document?t.root.document.version:null,o=new Al(t.start,t.end.offset-t.start.offset,i,r);this.batch.addOperation(o),this.model.applyOperation(o)}remove(t){this._assertWriterUsedCorrectly();const e=(t instanceof ra?t:ra._createOn(t)).getMinimalFlatRanges().reverse();for(const t of e)this._addOperationForAffectedMarkers("move",t),zl(t.start,t.end.offset-t.start.offset,this.batch,this.model)}merge(t){this._assertWriterUsedCorrectly();const e=t.nodeBefore,n=t.nodeAfter;if(this._addOperationForAffectedMarkers("merge",t),!(e instanceof Zs))throw new l.a("writer-merge-no-element-before",this);if(!(n instanceof Zs))throw new l.a("writer-merge-no-element-after",this);t.root.document?this._merge(t):this._mergeDetached(t)}createPositionFromPath(t,e,n){return this.model.createPositionFromPath(t,e,n)}createPositionAt(t,e){return this.model.createPositionAt(t,e)}createPositionAfter(t){return this.model.createPositionAfter(t)}createPositionBefore(t){return this.model.createPositionBefore(t)}createRange(t,e){return this.model.createRange(t,e)}createRangeIn(t){return this.model.createRangeIn(t)}createRangeOn(t){return this.model.createRangeOn(t)}createSelection(t,e,n){return this.model.createSelection(t,e,n)}_mergeDetached(t){const e=t.nodeBefore,n=t.nodeAfter;this.move(ra._createIn(n),ta._createAt(e,"end")),this.remove(n)}_merge(t){const e=ta._createAt(t.nodeBefore,"end"),n=ta._createAt(t.nodeAfter,0),i=t.root.document.graveyard,r=new ta(i,[0]),o=t.root.document.version,s=new Pl(n,t.nodeAfter.maxOffset,e,r,o);this.batch.addOperation(s),this.model.applyOperation(s)}rename(t,e){if(this._assertWriterUsedCorrectly(),!(t instanceof Zs))throw new l.a("writer-rename-not-element-instance",this);const n=t.root.document?t.root.document.version:null,i=new Dl(ta._createBefore(t),t.name,e,n);this.batch.addOperation(i),this.model.applyOperation(i)}split(t,e){this._assertWriterUsedCorrectly();let n,i,r=t.parent;if(!r.parent)throw new l.a("writer-split-element-no-parent",this);if(e||(e=r.parent),!t.parent.getAncestors({includeSelf:!0}).includes(e))throw new l.a("writer-split-invalid-limit-element",this);do{const e=r.root.document?r.root.document.version:null,o=r.maxOffset-t.offset,s=Yl.getInsertionPosition(t),a=new Yl(t,o,s,null,e);this.batch.addOperation(a),this.model.applyOperation(a),n||i||(n=r,i=t.parent.nextSibling),r=(t=this.createPositionAfter(t.parent)).parent}while(r!==e);return{position:t,range:new ra(ta._createAt(n,"end"),ta._createAt(i,0))}}wrap(t,e){if(this._assertWriterUsedCorrectly(),!t.isFlat)throw new l.a("writer-wrap-range-not-flat",this);const n=e instanceof Zs?e:new Zs(e);if(n.childCount>0)throw new l.a("writer-wrap-element-not-empty",this);if(null!==n.parent)throw new l.a("writer-wrap-element-attached",this);this.insert(n,t.start);const i=new ra(t.start.getShiftedBy(1),t.end.getShiftedBy(1));this.move(i,ta._createAt(n,0))}unwrap(t){if(this._assertWriterUsedCorrectly(),null===t.parent)throw new l.a("writer-unwrap-element-no-parent",this);this.move(ra._createIn(t),this.createPositionAfter(t)),this.remove(t)}addMarker(t,e){if(this._assertWriterUsedCorrectly(),!e||"boolean"!=typeof e.usingOperation)throw new l.a("writer-addmarker-no-usingoperation",this);const n=e.usingOperation,i=e.range,r=void 0!==e.affectsData&&e.affectsData;if(this.model.markers.has(t))throw new l.a("writer-addmarker-marker-exists",this);if(!i)throw new l.a("writer-addmarker-no-range",this);return n?(jl(this,t,null,i,r),this.model.markers.get(t)):this.model.markers._set(t,i,n,r)}updateMarker(t,e){this._assertWriterUsedCorrectly();const n="string"==typeof t?t:t.name,i=this.model.markers.get(n);if(!i)throw new l.a("writer-updatemarker-marker-not-exists",this);if(!e)return void this.model.markers._refresh(i);const r="boolean"==typeof e.usingOperation,o="boolean"==typeof e.affectsData,s=o?e.affectsData:i.affectsData;if(!r&&!e.range&&!o)throw new l.a("writer-updatemarker-wrong-options",this);const a=i.getRange(),c=e.range?e.range:a;r&&e.usingOperation!==i.managedUsingOperations?e.usingOperation?jl(this,n,null,c,s):(jl(this,n,a,null,s),this.model.markers._set(n,c,void 0,s)):i.managedUsingOperations?jl(this,n,a,c,s):this.model.markers._set(n,c,void 0,s)}removeMarker(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?t:t.name;if(!this.model.markers.has(e))throw new l.a("writer-removemarker-no-marker",this);const n=this.model.markers.get(e);n.managedUsingOperations?jl(this,e,n.getRange(),null,n.affectsData):this.model.markers._remove(e)}setSelection(t,e,n){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(t,e,n)}setSelectionFocus(t,e){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(t,e)}setSelectionAttribute(t,e){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._setSelectionAttribute(t,e);else for(const[e,n]of fi(t))this._setSelectionAttribute(e,n)}removeSelectionAttribute(t){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._removeSelectionAttribute(t);else for(const e of t)this._removeSelectionAttribute(e)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(t){this.model.document.selection._restoreGravity(t)}_setSelectionAttribute(t,e){const n=this.model.document.selection;if(n.isCollapsed&&n.anchor.parent.isEmpty){const i=ya._getStoreAttributeKey(t);this.setAttribute(i,e,n.anchor.parent)}n._setAttribute(t,e)}_removeSelectionAttribute(t){const e=this.model.document.selection;if(e.isCollapsed&&e.anchor.parent.isEmpty){const n=ya._getStoreAttributeKey(t);this.removeAttribute(n,e.anchor.parent)}e._removeAttribute(t)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new l.a("writer-incorrect-use",this)}_addOperationForAffectedMarkers(t,e){for(const n of this.model.markers){if(!n.managedUsingOperations)continue;const i=n.getRange();let r=!1;if("move"===t)r=e.containsPosition(i.start)||e.start.isEqual(i.start)||e.containsPosition(i.end)||e.end.isEqual(i.end);else{const t=e.nodeBefore,n=e.nodeAfter,o=i.start.parent==t&&i.start.isAtEnd,s=i.end.parent==n&&0==i.end.offset,a=i.end.nodeAfter==n,l=i.start.nodeAfter==n;r=o||s||a||l}r&&this.updateMarker(n.name,{range:i})}}}function Rl(t,e,n,i){const r=t.model,o=r.document;let s,a,l,c=i.start;for(const t of i.getWalker({shallow:!0}))l=t.item.getAttribute(e),s&&a!=l&&(a!=n&&u(),c=s),s=t.nextPosition,a=l;function u(){const i=new ra(c,s),l=i.root.document?o.version:null,u=new Sl(i,e,a,n,l);t.batch.addOperation(u),r.applyOperation(u)}s instanceof ta&&s!=c&&a!=n&&u()}function Nl(t,e,n,i){const r=t.model,o=r.document,s=i.getAttribute(e);let a,l;if(s!=n){if(i.root===i){const t=i.document?o.version:null;l=new El(i,e,s,n,t)}else{a=new ra(ta._createBefore(i),t.createPositionAfter(i));const r=a.root.document?o.version:null;l=new Sl(a,e,s,n,r)}t.batch.addOperation(l),r.applyOperation(l)}}function jl(t,e,n,i,r){const o=t.model,s=o.document,a=new Cl(e,n,i,o.markers,r,s.version);t.batch.addOperation(a),o.applyOperation(a)}function zl(t,e,n,i){let r;if(t.root.document){const n=i.document,o=new ta(n.graveyard,[0]);r=new Al(t,e,o,n.version)}else r=new Ll(t,e);n.addOperation(r),i.applyOperation(r)}function Hl(t,e){return t===e||t instanceof Ol&&e instanceof Ol}class Fl{constructor(t){this._markerCollection=t,this._changesInElement=new Map,this._elementSnapshots=new Map,this._changedMarkers=new Map,this._changeCount=0,this._cachedChanges=null,this._cachedChangesWithGraveyard=null}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size}refreshItem(t){if(this._isInInsertedElement(t.parent))return;this._markRemove(t.parent,t.startOffset,t.offsetSize),this._markInsert(t.parent,t.startOffset,t.offsetSize);const e=ra._createOn(t);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getRange();this.bufferMarkerChange(t.name,e,e,t.affectsData)}this._cachedChanges=null}bufferOperation(t){switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),n=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),n||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=ra._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getRange();this.bufferMarkerChange(t.name,e,e,t.affectsData)}break}case"split":{const e=t.splitPosition.parent;this._isInInsertedElement(e)||this._markRemove(e,t.splitPosition.offset,t.howMany),this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1);break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const n=t.graveyardPosition.parent;this._markInsert(n,t.graveyardPosition.offset,1);const i=t.targetPosition.parent;this._isInInsertedElement(i)||this._markInsert(i,t.targetPosition.offset,e.maxOffset);break}}this._cachedChanges=null}bufferMarkerChange(t,e,n,i){const r=this._changedMarkers.get(t);r?(r.newRange=n,r.affectsData=i,null==r.oldRange&&null==r.newRange&&this._changedMarkers.delete(t)):this._changedMarkers.set(t,{oldRange:e,newRange:n,affectsData:i})}getMarkersToRemove(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.oldRange&&t.push({name:e,range:n.oldRange});return t}getMarkersToAdd(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.newRange&&t.push({name:e,range:n.newRange});return t}getChangedMarkers(){return Array.from(this._changedMarkers).map((t=>({name:t[0],data:{oldRange:t[1].oldRange,newRange:t[1].newRange}})))}hasDataChanges(){for(const[,t]of this._changedMarkers)if(t.affectsData)return!0;return this._changesInElement.size>0}getChanges(t={includeChangesInGraveyard:!1}){if(this._cachedChanges)return t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let e=[];for(const t of this._changesInElement.keys()){const n=this._changesInElement.get(t).sort(((t,e)=>t.offset===e.offset?t.type!=e.type?"remove"==t.type?-1:1:0:t.offsett.position.root!=e.position.root?t.position.root.rootNamet));for(const t of e)delete t.changeCount,"attribute"==t.type&&(delete t.position,delete t.length);return this._changeCount=0,this._cachedChangesWithGraveyard=e.slice(),this._cachedChanges=e.filter(Wl),t.includeChangesInGraveyard?this._cachedChangesWithGraveyard:this._cachedChanges}reset(){this._changesInElement.clear(),this._elementSnapshots.clear(),this._changedMarkers.clear(),this._cachedChanges=null}_markInsert(t,e,n){const i={type:"insert",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,i)}_markRemove(t,e,n){const i={type:"remove",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,i),this._removeAllNestedChanges(t,e,n)}_markAttribute(t){const e={type:"attribute",offset:t.startOffset,howMany:t.offsetSize,count:this._changeCount++};this._markChange(t.parent,e)}_markChange(t,e){this._makeSnapshot(t);const n=this._getChangesForElement(t);this._handleChange(e,n),n.push(e);for(let t=0;tn.offset){if(i>r){const t={type:"attribute",offset:r,howMany:i-r,count:this._changeCount++};this._handleChange(t,e),e.push(t)}t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}else t.offset>=n.offset&&t.offsetr?(t.nodesToHandle=i-r,t.offset=r):t.nodesToHandle=0);if("remove"==n.type&&t.offsetn.offset){const r={type:"attribute",offset:n.offset,howMany:i-n.offset,count:this._changeCount++};this._handleChange(r,e),e.push(r),t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}"attribute"==n.type&&(t.offset>=n.offset&&i<=r?(t.nodesToHandle=0,t.howMany=0,t.offset=0):t.offset<=n.offset&&i>=r&&(n.howMany=0))}}t.howMany=t.nodesToHandle,delete t.nodesToHandle}_getInsertDiff(t,e,n){return{type:"insert",position:ta._createAt(t,e),name:n,length:1,changeCount:this._changeCount++}}_getRemoveDiff(t,e,n){return{type:"remove",position:ta._createAt(t,e),name:n,length:1,changeCount:this._changeCount++}}_getAttributesDiff(t,e,n){const i=[];n=new Map(n);for(const[r,o]of e){const e=n.has(r)?n.get(r):null;e!==o&&i.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:r,attributeOldValue:o,attributeNewValue:e,changeCount:this._changeCount++}),n.delete(r)}for(const[e,r]of n)i.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:e,attributeOldValue:null,attributeNewValue:r,changeCount:this._changeCount++});return i}_isInInsertedElement(t){const e=t.parent;if(!e)return!1;const n=this._changesInElement.get(e),i=t.startOffset;if(n)for(const t of n)if("insert"==t.type&&i>=t.offset&&ii){for(let e=0;e=t&&i.baseVersion{const n=e[0];if(n.isDocumentOperation&&n.baseVersion!==this.version)throw new l.a("model-document-applyoperation-wrong-version",this,{operation:n})}),{priority:"highest"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.differ.bufferOperation(n)}),{priority:"high"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&(this.version++,this.history.addOperation(n))}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(t.markers,"update",((t,e,n,i)=>{this.differ.bufferMarkerChange(e.name,n,i,e.affectsData),null===n&&e.on("change",((t,n)=>{this.differ.bufferMarkerChange(e.name,n,e.getRange(),e.affectsData)}))}))}get graveyard(){return this.getRoot("$graveyard")}createRoot(t="$root",e="main"){if(this.roots.get(e))throw new l.a("model-document-createroot-name-exists",this,{name:e});const n=new Ol(this,t,e);return this.roots.add(n),n}destroy(){this.selection.destroy(),this.stopListening()}getRoot(t="main"){return this.roots.get(t)}getRootNames(){return Array.from(this.roots,(t=>t.rootName)).filter((t=>"$graveyard"!=t))}registerPostFixer(t){this._postFixers.add(t)}toJSON(){const t=ci(this);return t.selection="[engine.model.DocumentSelection]",t.model="[engine.model.Model]",t}_handleChangeBlock(t){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(t),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",t.batch):this.fire("change",t.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){for(const t of this.roots)if(t!==this.graveyard)return t;return this.graveyard}_getDefaultRange(){const t=this._getDefaultRoot(),e=this.model,n=e.schema,i=e.createPositionFromPath(t,[0]);return n.getNearestSelectionRange(i)||e.createRange(i)}_validateSelectionRange(t){return Gl(t.start)&&Gl(t.end)}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(this.selection.refresh(),e=n(t),e)break}while(e)}}function Gl(t){const e=t.textNode;if(e){const n=e.data,i=t.offset-e.startOffset;return!Xl(n,i)&&!$l(n,i)}return!0}Gt(ql,d);class Jl{constructor(){this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(t){return this._markers.has(t)}get(t){return this._markers.get(t)||null}_set(t,e,n=!1,i=!1){const r=t instanceof Zl?t.name:t;if(r.includes(","))throw new l.a("markercollection-incorrect-marker-name",this);const o=this._markers.get(r);if(o){const t=o.getRange();let s=!1;return t.isEqual(e)||(o._attachLiveRange(ba.fromRange(e)),s=!0),n!=o.managedUsingOperations&&(o._managedUsingOperations=n,s=!0),"boolean"==typeof i&&i!=o.affectsData&&(o._affectsData=i,s=!0),s&&this.fire("update:"+r,o,t,e),o}const s=ba.fromRange(e),a=new Zl(r,s,n,i);return this._markers.set(r,a),this.fire("update:"+r,a,null,e),a}_remove(t){const e=t instanceof Zl?t.name:t,n=this._markers.get(e);return!!n&&(this._markers.delete(e),this.fire("update:"+e,n,n.getRange(),null),this._destroyMarker(n),!0)}_refresh(t){const e=t instanceof Zl?t.name:t,n=this._markers.get(e);if(!n)throw new l.a("markercollection-refresh-marker-not-exists",this);const i=n.getRange();this.fire("update:"+e,n,i,i,n.managedUsingOperations,n.affectsData)}*getMarkersAtPosition(t){for(const e of this)e.getRange().containsPosition(t)&&(yield e)}*getMarkersIntersectingRange(t){for(const e of this)null!==e.getRange().getIntersection(t)&&(yield e)}destroy(){for(const t of this._markers.values())this._destroyMarker(t);this._markers=null,this.stopListening()}*getMarkersGroup(t){for(const e of this._markers.values())e.name.startsWith(t+":")&&(yield e)}_destroyMarker(t){t.stopListening(),t._detachLiveRange()}}Gt(Jl,d);class Zl{constructor(t,e,n,i){this.name=t,this._liveRange=this._attachLiveRange(e),this._managedUsingOperations=n,this._affectsData=i}get managedUsingOperations(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._affectsData}getStart(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._liveRange.toRange()}is(t){return"marker"===t||"model:marker"===t}_attachLiveRange(t){return this._liveRange&&this._detachLiveRange(),t.delegate("change:range").to(this),t.delegate("change:content").to(this),this._liveRange=t,t}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}Gt(Zl,d);class Kl extends ml{get type(){return"noop"}clone(){return new Kl(this.baseVersion)}getReversed(){return new Kl(this.baseVersion+1)}_execute(){}static get className(){return"NoOperation"}}const Ql={};Ql[Sl.className]=Sl,Ql[Tl.className]=Tl,Ql[Cl.className]=Cl,Ql[Al.className]=Al,Ql[Kl.className]=Kl,Ql[ml.className]=ml,Ql[Dl.className]=Dl,Ql[El.className]=El,Ql[Yl.className]=Yl,Ql[Pl.className]=Pl;class tc extends ta{constructor(t,e,n="toNone"){if(super(t,e,n),!this.root.is("rootElement"))throw new l.a("model-liveposition-root-not-rootelement",t);ec.call(this)}detach(){this.stopListening()}is(t){return"livePosition"===t||"model:livePosition"===t||"position"==t||"model:position"===t}toPosition(){return new ta(this.root,this.path.slice(),this.stickiness)}static fromPosition(t,e){return new this(t.root,t.path.slice(),e||t.stickiness)}}function ec(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&nc.call(this,n)}),{priority:"low"})}function nc(t){const e=this.getTransformedByOperation(t);if(!this.isEqual(e)){const t=this.toPosition();this.path=e.path,this.root=e.root,this.fire("change",t)}}Gt(tc,d);class ic{constructor(t,e,n){this.model=t,this.writer=e,this.position=n,this.canMergeWith=new Set([this.position.parent]),this.schema=t.schema,this._documentFragment=e.createDocumentFragment(),this._documentFragmentPosition=e.createPositionAt(this._documentFragment,0),this._firstNode=null,this._lastNode=null,this._lastAutoParagraph=null,this._filterAttributesOf=[],this._affectedStart=null,this._affectedEnd=null}handleNodes(t){for(const e of Array.from(t))this._handleNode(e);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesOf,this.writer),this._filterAttributesOf=[]}_updateLastNodeFromAutoParagraph(t){const e=this.writer.createPositionAfter(this._lastNode),n=this.writer.createPositionAfter(t);if(n.isAfter(e)){if(this._lastNode=t,this.position.parent!=t||!this.position.isAtEnd)throw new l.a("insertcontent-invalid-insertion-position",this);this.position=n,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this.nodeToSelect?ra._createOn(this.nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new ra(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(t){if(this.schema.isObject(t))return void this._handleObject(t);let e=this._checkAndAutoParagraphToAllowedPosition(t);e||(e=this._checkAndSplitToAllowedPosition(t),e)?(this._appendToFragment(t),this._firstNode||(this._firstNode=t),this._lastNode=t):this._handleDisallowedNode(t)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const t=tc.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=t.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=t.toPosition(),t.detach()}_handleObject(t){this._checkAndSplitToAllowedPosition(t)?this._appendToFragment(t):this._tryAutoparagraphing(t)}_handleDisallowedNode(t){t.is("element")?this.handleNodes(t.getChildren()):this._tryAutoparagraphing(t)}_appendToFragment(t){if(!this.schema.checkChild(this.position,t))throw new l.a("insertcontent-wrong-position",this,{node:t,position:this.position});this.writer.insert(t,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(t.offsetSize),this.schema.isObject(t)&&!this.schema.checkChild(this.position,"$text")?this.nodeToSelect=t:this.nodeToSelect=null,this._filterAttributesOf.push(t)}_setAffectedBoundaries(t){this._affectedStart||(this._affectedStart=tc.fromPosition(t,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(t)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=tc.fromPosition(t,"toNext"))}_mergeOnLeft(){const t=this._firstNode;if(!(t instanceof Zs))return;if(!this._canMergeLeft(t))return;const e=tc._createBefore(t);e.stickiness="toNext";const n=tc.fromPosition(this.position,"toNext");this._affectedStart.isEqual(e)&&(this._affectedStart.detach(),this._affectedStart=tc._createAt(e.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=tc._createAt(e.nodeBefore,"end","toNext")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_mergeOnRight(){const t=this._lastNode;if(!(t instanceof Zs))return;if(!this._canMergeRight(t))return;const e=tc._createAfter(t);if(e.stickiness="toNext",!this.position.isEqual(e))throw new l.a("insertcontent-invalid-insertion-position",this);this.position=ta._createAt(e.nodeBefore,"end");const n=tc.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(e)&&(this._affectedEnd.detach(),this._affectedEnd=tc._createAt(e.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=tc._createAt(e.nodeBefore,0,"toPrevious")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_canMergeLeft(t){const e=t.previousSibling;return e instanceof Zs&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(e,t)}_canMergeRight(t){const e=t.nextSibling;return e instanceof Zs&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(t,e)}_tryAutoparagraphing(t){const e=this.writer.createElement("paragraph");this._getAllowedIn(this.position.parent,e)&&this.schema.checkChild(e,t)&&(e._appendChild(t),this._handleNode(e))}_checkAndAutoParagraphToAllowedPosition(t){if(this.schema.checkChild(this.position.parent,t))return!0;if(!this.schema.checkChild(this.position.parent,"paragraph")||!this.schema.checkChild("paragraph",t))return!1;this._insertPartialFragment();const e=this.writer.createElement("paragraph");return this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0),!0}_checkAndSplitToAllowedPosition(t){const e=this._getAllowedIn(this.position.parent,t);if(!e)return!1;for(e!=this.position.parent&&this._insertPartialFragment();e!=this.position.parent;)if(this.position.isAtStart){const t=this.position.parent;this.position=this.writer.createPositionBefore(t),t.isEmpty&&t.parent===e&&this.writer.remove(t)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const t=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=t,this.canMergeWith.add(this.position.nodeAfter)}return!0}_getAllowedIn(t,e){return this.schema.checkChild(t,e)?t:this.schema.isLimit(t)?null:this._getAllowedIn(t.parent,e)}}function rc(t,e,n={}){if(e.isCollapsed)return;const i=e.getFirstRange();if("$graveyard"==i.root.rootName)return;const r=t.schema;t.change((t=>{if(!n.doNotResetEntireContent&&function(t,e){const n=t.getLimitElement(e);if(!e.containsEntireContent(n))return!1;const i=e.getFirstRange();return i.start.parent!=i.end.parent&&t.checkChild(n,"paragraph")}(r,e))return void function(t,e){const n=t.model.schema.getLimitElement(e);t.remove(t.createRangeIn(n)),sc(t,t.createPositionAt(n,0),e)}(t,e);const[o,s]=function(t){const e=t.root.document.model,n=t.start;let i=t.end;if(e.hasContent(t,{ignoreMarkers:!0})){const n=function(t){const e=t.parent,n=e.root.document.model.schema,i=e.getAncestors({parentFirst:!0,includeSelf:!0});for(const t of i){if(n.isLimit(t))return null;if(n.isBlock(t))return t}}(i);if(n&&i.isTouching(e.createPositionAt(n,0))){const n=e.createSelection(t);e.modifySelection(n,{direction:"backward"});const r=n.getLastPosition(),o=e.createRange(r,i);e.hasContent(o,{ignoreMarkers:!0})||(i=r)}}return[tc.fromPosition(n,"toPrevious"),tc.fromPosition(i,"toNext")]}(i);o.isTouching(s)||t.remove(t.createRange(o,s)),n.leaveUnmerged||(function(t,e,n){const i=t.model;if(!oc(t.model.schema,e,n))return;const[r,o]=function(t,e){const n=t.getAncestors(),i=e.getAncestors();let r=0;for(;n[r]&&n[r]==i[r];)r++;return[n[r],i[r]]}(e,n);r&&o&&(!i.hasContent(r,{ignoreMarkers:!0})&&i.hasContent(o,{ignoreMarkers:!0})?function t(e,n,i,r){const o=n.parent,s=i.parent;if(o!=r&&s!=r){for(n=e.createPositionAfter(o),(i=e.createPositionBefore(s)).isEqual(n)||e.insert(o,i);n.parent.isEmpty;){const t=n.parent;n=e.createPositionBefore(t),e.remove(t)}i=e.createPositionBefore(s),function(t,e){const n=e.nodeBefore,i=e.nodeAfter;n.name!=i.name&&t.rename(n,i.name),t.clearAttributes(n),t.setAttributes(Object.fromEntries(i.getAttributes()),n),t.merge(e)}(e,i),oc(e.model.schema,n,i)&&t(e,n,i,r)}}(t,e,n,r.parent):function t(e,n,i,r){const o=n.parent,s=i.parent;if(o!=r&&s!=r){for(n=e.createPositionAfter(o),(i=e.createPositionBefore(s)).isEqual(n)||e.insert(s,n),e.merge(n);i.parent.isEmpty;){const t=i.parent;i=e.createPositionBefore(t),e.remove(t)}oc(e.model.schema,n,i)&&t(e,n,i,r)}}(t,e,n,r.parent))}(t,o,s),r.removeDisallowedAttributes(o.parent.getChildren(),t)),ac(t,e,o),!n.doNotAutoparagraph&&function(t,e){const n=t.checkChild(e,"$text"),i=t.checkChild(e,"paragraph");return!n&&i}(r,o)&&sc(t,o,e),o.detach(),s.detach()}))}function oc(t,e,n){const i=e.parent,r=n.parent;return i!=r&&!t.isLimit(i)&&!t.isLimit(r)&&function(t,e,n){const i=new ra(t,e);for(const t of i.getWalker())if(n.isLimit(t.item))return!1;return!0}(e,n,t)}function sc(t,e,n){const i=t.createElement("paragraph");t.insert(i,e),ac(t,n,t.createPositionAt(i,0))}function ac(t,e,n){e instanceof ya?t.setSelection(n):e.setTo(n)}function lc(t,e){const{isForward:n,walker:i,unit:r,schema:o}=t,{type:s,item:a,nextPosition:l}=e;if("text"==s)return"word"===t.unit?function(t,e){let n=t.position.textNode;if(n){let i=t.position.offset-n.startOffset;for(;!uc(n.data,i,e)&&!dc(n,i,e);){t.next();const r=e?t.position.nodeAfter:t.position.nodeBefore;if(r&&r.is("$text")){const i=r.data.charAt(e?0:r.data.length-1);' ,.?!:;"-()'.includes(i)||(t.next(),n=t.position.textNode)}i=t.position.offset-n.startOffset}}return t.position}(i,n):function(t,e){const n=t.position.textNode;if(n){const i=n.data;let r=t.position.offset-n.startOffset;for(;Xl(i,r)||"character"==e&&$l(i,r);)t.next(),r=t.position.offset-n.startOffset}return t.position}(i,r);if(s==(n?"elementStart":"elementEnd")){if(o.isSelectable(a))return ta._createAt(a,n?"after":"before");if(o.checkChild(l,"$text"))return l}else{if(o.isLimit(a))return void i.skip((()=>!0));if(o.checkChild(l,"$text"))return l}}function cc(t,e){const n=t.root,i=ta._createAt(n,e?"end":0);return e?new ra(t,i):new ra(i,t)}function uc(t,e,n){const i=e+(n?0:-1);return' ,.?!:;"-()'.includes(t.charAt(i))}function dc(t,e,n){return e===(n?t.endOffset:0)}function hc(t,e){const n=[];Array.from(t.getItems({direction:"backward"})).map((t=>e.createRangeOn(t))).filter((e=>(e.start.isAfter(t.start)||e.start.isEqual(t.start))&&(e.end.isBefore(t.end)||e.end.isEqual(t.end)))).forEach((t=>{n.push(t.start.parent),e.remove(t)})),n.forEach((t=>{let n=t;for(;n.parent&&n.isEmpty;){const t=e.createRangeOn(n);n=n.parent,e.remove(t)}}))}function fc(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.selection,i=e.schema,r=[];let o=!1;for(const t of n.getRanges()){const e=pc(t,i);e&&!e.isEqual(t)?(r.push(e),o=!0):r.push(t)}o&&t.setSelection(function(t){const e=[];e.push(t.shift());for(const n of t){const t=e.pop();if(n.isEqual(t))e.push(t);else if(n.isIntersecting(t)){const i=t.start.isAfter(n.start)?n.start:t.start,r=t.end.isAfter(n.end)?t.end:n.end,o=new ra(i,r);e.push(o)}else e.push(t),e.push(n)}return e}(r),{backward:n.isBackward})}(e,t)))}function pc(t,e){return t.isCollapsed?function(t,e){const n=t.start,i=e.getNearestSelectionRange(n);if(!i)return null;if(!i.isCollapsed)return i;const r=i.start;return n.isEqual(r)?null:new ra(r)}(t,e):function(t,e){const{start:n,end:i}=t,r=e.checkChild(n,"$text"),o=e.checkChild(i,"$text"),s=e.getLimitElement(n),a=e.getLimitElement(i);if(s===a){if(r&&o)return null;if(function(t,e,n){const i=t.nodeAfter&&!n.isLimit(t.nodeAfter)||n.checkChild(t,"$text"),r=e.nodeBefore&&!n.isLimit(e.nodeBefore)||n.checkChild(e,"$text");return i||r}(n,i,e)){const t=n.nodeAfter&&e.isSelectable(n.nodeAfter)?null:e.getNearestSelectionRange(n,"forward"),r=i.nodeBefore&&e.isSelectable(i.nodeBefore)?null:e.getNearestSelectionRange(i,"backward"),o=t?t.start:n,s=r?r.end:i;return new ra(o,s)}}const l=s&&!s.is("rootElement"),c=a&&!a.is("rootElement");if(l||c){const t=n.nodeAfter&&i.nodeBefore&&n.nodeAfter.parent===i.nodeBefore.parent,r=l&&(!t||!gc(n.nodeAfter,e)),o=c&&(!t||!gc(i.nodeBefore,e));let u=n,d=i;return r&&(u=ta._createBefore(mc(s,e))),o&&(d=ta._createAfter(mc(a,e))),new ra(u,d)}return null}(t,e)}function mc(t,e){let n=t,i=n;for(;e.isLimit(i)&&i.parent;)n=i,i=i.parent;return n}function gc(t,e){return t&&e.isSelectable(t)}class bc{constructor(){this.markers=new Jl,this.document=new ql(this),this.schema=new Xa,this._pendingChanges=[],this._currentWriter=null,["insertContent","deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((t=>this.decorate(t))),this.on("applyOperation",((t,e)=>{e[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$block",{allowIn:"$root",isBlock:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck(((t,e)=>{if("$marker"===e.name)return!0})),fc(this),this.document.registerPostFixer(Pa)}change(t){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new pl,callback:t}),this._runPendingChanges()[0]):t(this._currentWriter)}catch(t){l.a.rethrowUnexpectedError(t,this)}}enqueueChange(t,e){try{"string"==typeof t?t=new pl(t):"function"==typeof t&&(e=t,t=new pl),this._pendingChanges.push({batch:t,callback:e}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(t){l.a.rethrowUnexpectedError(t,this)}}applyOperation(t){t._execute()}insertContent(t,e,n){return function(t,e,n,i){return t.change((r=>{let o;o=n?n instanceof ha||n instanceof ya?n:r.createSelection(n,i):t.document.selection,o.isCollapsed||t.deleteContent(o,{doNotAutoparagraph:!0});const s=new ic(t,r,o.anchor);let a;a=e.is("documentFragment")?e.getChildren():[e],s.handleNodes(a);const l=s.getSelectionRange();l&&(o instanceof ya?r.setSelection(l):o.setTo(l));const c=s.getAffectedRange()||t.createRange(o.anchor);return s.destroy(),c}))}(this,t,e,n)}deleteContent(t,e){rc(this,t,e)}modifySelection(t,e){!function(t,e,n={}){const i=t.schema,r="backward"!=n.direction,o=n.unit?n.unit:"character",s=e.focus,a=new Ks({boundaries:cc(s,r),singleCharacters:!0,direction:r?"forward":"backward"}),l={walker:a,schema:i,isForward:r,unit:o};let c;for(;c=a.next();){if(c.done)return;const n=lc(l,c.value);if(n)return void(e instanceof ya?t.change((t=>{t.setSelectionFocus(n)})):e.setFocus(n))}}(this,t,e)}getSelectedContent(t){return function(t,e){return t.change((t=>{const n=t.createDocumentFragment(),i=e.getFirstRange();if(!i||i.isCollapsed)return n;const r=i.start.root,o=i.start.getCommonPath(i.end),s=r.getNodeByPath(o);let a;a=i.start.parent==i.end.parent?i:t.createRange(t.createPositionAt(s,i.start.path[o.length]),t.createPositionAt(s,i.end.path[o.length]+1));const l=a.end.offset-a.start.offset;for(const e of a.getItems({shallow:!0}))e.is("$textProxy")?t.appendText(e.data,e.getAttributes(),n):t.append(t.cloneElement(e,!0),n);if(a!=i){const e=i._getTransformedByMove(a.start,t.createPositionAt(n,0),l)[0],r=t.createRange(t.createPositionAt(n,0),e.start);hc(t.createRange(e.end,t.createPositionAt(n,"end")),t),hc(r,t)}return n}))}(this,t)}hasContent(t,e={}){const n=t instanceof Zs?ra._createIn(t):t;if(n.isCollapsed)return!1;const{ignoreWhitespaces:i=!1,ignoreMarkers:r=!1}=e;if(!r)for(const t of this.markers.getMarkersIntersectingRange(n))if(t.affectsData)return!0;for(const t of n.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!i)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}createPositionFromPath(t,e,n){return new ta(t,e,n)}createPositionAt(t,e){return ta._createAt(t,e)}createPositionAfter(t){return ta._createAfter(t)}createPositionBefore(t){return ta._createBefore(t)}createRange(t,e){return new ra(t,e)}createRangeIn(t){return ra._createIn(t)}createRangeOn(t){return ra._createOn(t)}createSelection(t,e,n){return new ha(t,e,n)}createBatch(t){return new pl(t)}createOperationFromJSON(t){return class{static fromJSON(t,e){return Ql[t.__className].fromJSON(t,e)}}.fromJSON(t,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const t=[];for(this.fire("_beforeChanges");this._pendingChanges.length;){const e=this._pendingChanges[0].batch;this._currentWriter=new Il(this,e);const n=this._pendingChanges[0].callback(this._currentWriter);t.push(n),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}return this.fire("_afterChanges"),t}}Gt(bc,Vt);class _c extends Os{constructor(t){super(),this.editor=t}set(t,e,n={}){if("string"==typeof e){const t=e;e=(e,n)=>{this.editor.execute(t),n()}}super.set(t,e,n)}}class vc{constructor(t={}){this._context=t.context||new si({language:t.language}),this._context._addEditor(this,!t.context);const e=Array.from(this.constructor.builtinPlugins||[]);this.config=new Gn(t,this.constructor.defaultConfig),this.config.define("plugins",e),this.config.define(this._context._getEditorConfig()),this.plugins=new ti(this,e,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this.commands=new Va,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.set("isReadOnly",!1),this.model=new bc;const n=new Zi;this.data=new ul(this.model,n),this.editing=new Ba(this.model,n),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new dl([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new _c(this),this.keystrokes.listenTo(this.editing.view.document)}initPlugins(){const t=this.config,e=t.get("plugins"),n=t.get("removePlugins")||[],i=t.get("extraPlugins")||[],r=t.get("substitutePlugins")||[];return this.plugins.init(e.concat(i),n,r)}destroy(){let t=Promise.resolve();return"initializing"==this.state&&(t=new Promise((t=>this.once("ready",t)))),t.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(...t){try{return this.commands.execute(...t)}catch(t){l.a.rethrowUnexpectedError(t,this)}}focus(){this.editing.view.focus()}}Gt(vc,Vt);class yc{constructor(t){this.editor=t,this._components=new Map}*names(){for(const t of this._components.values())yield t.originalName}add(t,e){this._components.set(wc(t),{callback:e,originalName:t})}create(t){if(!this.has(t))throw new l.a("componentfactory-item-missing",this,{name:t});return this._components.get(wc(t)).callback(this.editor.locale)}has(t){return this._components.has(wc(t))}}function wc(t){return String(t).toLowerCase()}class xc{constructor(t){this.editor=t,this.componentFactory=new yc(t),this.focusTracker=new Ys,this._editableElementsMap=new Map,this.listenTo(t.editing.view.document,"layoutChanged",(()=>this.update()))}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy();for(const t of this._editableElementsMap.values())t.ckeditorInstance=null;this._editableElementsMap=new Map}setEditableElement(t,e){this._editableElementsMap.set(t,e),e.ckeditorInstance||(e.ckeditorInstance=this.editor)}getEditableElement(t="main"){return this._editableElementsMap.get(t)}getEditableElementsNames(){return this._editableElementsMap.keys()}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}}Gt(xc,d);var kc={setData(t){this.data.set(t)},getData(t){return this.data.get(t)}},Mc={updateSourceElement(){if(!this.sourceElement)throw new l.a("editor-missing-sourceelement",this);var t,e;t=this.sourceElement,e=this.data.get(),t instanceof HTMLTextAreaElement&&(t.value=e),t.innerHTML=e}};class Sc extends ai{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",!1),this._actions=new Qn({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(t){if("string"!=typeof t)throw new l.a("pendingactions-add-invalid-message",this);const e=Object.create(Vt);return e.set("message",t),this._actions.add(e),this.hasAny=!0,e}remove(t){this._actions.remove(t),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}const Lc={cancel:'',caption:'',check:'',eraser:'',lowVision:'',image:'',alignBottom:'',alignMiddle:'',alignTop:'',alignLeft:'',alignCenter:'',alignRight:'',alignJustify:'',objectLeft:'',objectCenter:'',objectRight:'',objectFullWidth:'',objectInline:'',objectBlockLeft:'',objectBlockRight:'',objectSizeFull:'',objectSizeLarge:'',objectSizeSmall:'',objectSizeMedium:'',pencil:'',pilcrow:'',quote:'',threeVerticalDots:''};function Ac({emitter:t,activator:e,callback:n,contextElements:i}){t.listenTo(document,"mousedown",((t,r)=>{if(!e())return;const o="function"==typeof r.composedPath?r.composedPath():[];for(const t of i)if(t.contains(r.target)||o.includes(t))return;n()}))}function Tc(t){t.set("_isCssTransitionsDisabled",!1),t.disableCssTransitions=()=>{t._isCssTransitionsDisabled=!0},t.enableCssTransitions=()=>{t._isCssTransitionsDisabled=!1},t.extendTemplate({attributes:{class:[t.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}function Cc({view:t}){t.listenTo(t.element,"submit",((e,n)=>{n.preventDefault(),t.fire("submit")}),{useCapture:!0})}class Dc extends Qn{constructor(t=[]){super(t,{idProperty:"viewUid"}),this.on("add",((t,e,n)=>{this._renderViewIntoCollectionParent(e,n)})),this.on("remove",((t,e)=>{e.element&&this._parentElement&&e.element.remove()})),this._parentElement=null}destroy(){this.map((t=>t.destroy()))}setParent(t){this._parentElement=t;for(const t of this)this._renderViewIntoCollectionParent(t)}delegate(...t){if(!t.length||!t.every((t=>"string"==typeof t)))throw new l.a("ui-viewcollection-delegate-wrong-events",this);return{to:e=>{for(const n of this)for(const i of t)n.delegate(i).to(e);this.on("add",((n,i)=>{for(const n of t)i.delegate(n).to(e)})),this.on("remove",((n,i)=>{for(const n of t)i.stopDelegating(n,e)}))}}}_renderViewIntoCollectionParent(t,e){t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[e])}}n(15);class Ec{constructor(t){this.element=null,this.isRendered=!1,this.locale=t,this.t=t&&t.t,this._viewCollections=new Qn,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((e,n)=>{n.locale=t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=Pc.bind(this,this)}createCollection(t){const e=new Dc(t);return this._viewCollections.add(e),e}registerChild(t){Kn(t)||(t=[t]);for(const e of t)this._unboundChildren.add(e)}deregisterChild(t){Kn(t)||(t=[t]);for(const e of t)this._unboundChildren.remove(e)}setTemplate(t){this.template=new Pc(t)}extendTemplate(t){Pc.extend(this.template,t)}render(){if(this.isRendered)throw new l.a("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((t=>t.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}Gt(Ec,Eo),Gt(Ec,Vt);class Pc{constructor(t){Object.assign(this,Bc(Fc(t))),this._isRendered=!1,this._revertData=null}render(){const t=this._renderNode({intoFragment:!0});return this._isRendered=!0,t}apply(t){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:t,isApplying:!0,revertData:this._revertData}),t}revert(t){if(!this._revertData)throw new l.a("ui-template-revert-not-applied",[this,t]);this._revertTemplateFromNode(t,this._revertData)}*getViews(){yield*function*t(e){if(e.children)for(const n of e.children)$c(n)?yield n:qc(n)&&(yield*t(n))}(this)}static bind(t,e){return{to:(n,i)=>new Oc({eventNameOrFunction:n,attribute:n,observable:t,emitter:e,callback:i}),if:(n,i,r)=>new Ic({observable:t,emitter:e,attribute:n,valueIfTrue:i,callback:r})}}static extend(t,e){if(t._isRendered)throw new l.a("template-extend-render",[this,t]);!function t(e,n){if(n.attributes&&(e.attributes||(e.attributes={}),Uc(e.attributes,n.attributes)),n.eventListeners&&(e.eventListeners||(e.eventListeners={}),Uc(e.eventListeners,n.eventListeners)),n.text&&e.text.push(...n.text),n.children&&n.children.length){if(e.children.length!=n.children.length)throw new l.a("ui-template-extend-children-mismatch",e);let i=0;for(const r of n.children)t(e.children[i++],r)}}(t,Bc(Fc(e)))}_renderNode(t){let e;if(e=t.node?this.tag&&this.text:this.tag?this.text:!this.text,e)throw new l.a("ui-template-wrong-syntax",this);return this.text?this._renderText(t):this._renderElement(t)}_renderElement(t){let e=t.node;return e||(e=t.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(t),this._renderElementChildren(t),this._setUpListeners(t),e}_renderText(t){let e=t.node;return e?t.revertData.text=e.textContent:e=t.node=document.createTextNode(""),Rc(this.text)?this._bindToObservable({schema:this.text,updater:jc(e),data:t}):e.textContent=this.text.join(""),e}_renderAttributes(t){let e,n,i,r;if(!this.attributes)return;const o=t.node,s=t.revertData;for(e in this.attributes)if(i=o.getAttribute(e),n=this.attributes[e],s&&(s.attributes[e]=i),r=v(n[0])&&n[0].ns?n[0].ns:null,Rc(n)){const a=r?n[0].value:n;s&&Jc(e)&&a.unshift(i),this._bindToObservable({schema:a,updater:zc(o,e,r),data:t})}else"style"==e&&"string"!=typeof n[0]?this._renderStyleAttribute(n[0],t):(s&&i&&Jc(e)&&n.unshift(i),n=n.map((t=>t&&t.value||t)).reduce(((t,e)=>t.concat(e)),[]).reduce(Wc,""),Xc(n)||o.setAttributeNS(r,e,n))}_renderStyleAttribute(t,e){const n=e.node;for(const i in t){const r=t[i];Rc(r)?this._bindToObservable({schema:[r],updater:Hc(n,i),data:e}):n.style[i]=r}}_renderElementChildren(t){const e=t.node,n=t.intoFragment?document.createDocumentFragment():e,i=t.isApplying;let r=0;for(const o of this.children)if(Gc(o)){if(!i){o.setParent(e);for(const t of o)n.appendChild(t.element)}}else if($c(o))i||(o.isRendered||o.render(),n.appendChild(o.element));else if(go(o))n.appendChild(o);else if(i){const e={children:[],bindings:[],attributes:{}};t.revertData.children.push(e),o._renderNode({node:n.childNodes[r++],isApplying:!0,revertData:e})}else n.appendChild(o.render());t.intoFragment&&e.appendChild(n)}_setUpListeners(t){if(this.eventListeners)for(const e in this.eventListeners){const n=this.eventListeners[e].map((n=>{const[i,r]=e.split("@");return n.activateDomEventListener(i,r,t)}));t.revertData&&t.revertData.bindings.push(n)}}_bindToObservable({schema:t,updater:e,data:n}){const i=n.revertData;Nc(t,e,n);const r=t.filter((t=>!Xc(t))).filter((t=>t.observable)).map((i=>i.activateAttributeListener(t,e,n)));i&&i.bindings.push(r)}_revertTemplateFromNode(t,e){for(const t of e.bindings)for(const e of t)e();if(e.text)t.textContent=e.text;else{for(const n in e.attributes){const i=e.attributes[n];null===i?t.removeAttribute(n):t.setAttribute(n,i)}for(let n=0;nNc(t,e,n);return this.emitter.listenTo(this.observable,"change:"+this.attribute,i),()=>{this.emitter.stopListening(this.observable,"change:"+this.attribute,i)}}}class Oc extends Yc{activateDomEventListener(t,e,n){const i=(t,n)=>{e&&!n.target.matches(e)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(n):this.observable.fire(this.eventNameOrFunction,n))};return this.emitter.listenTo(n.node,t,i),()=>{this.emitter.stopListening(n.node,t,i)}}}class Ic extends Yc{getValue(t){return!Xc(super.getValue(t))&&(this.valueIfTrue||!0)}}function Rc(t){return!!t&&(t.value&&(t=t.value),Array.isArray(t)?t.some(Rc):t instanceof Yc)}function Nc(t,e,{node:n}){let i=function(t,e){return t.map((t=>t instanceof Yc?t.getValue(e):t))}(t,n);i=1==t.length&&t[0]instanceof Ic?i[0]:i.reduce(Wc,""),Xc(i)?e.remove():e.set(i)}function jc(t){return{set(e){t.textContent=e},remove(){t.textContent=""}}}function zc(t,e,n){return{set(i){t.setAttributeNS(n,e,i)},remove(){t.removeAttributeNS(n,e)}}}function Hc(t,e){return{set(n){t.style[e]=n},remove(){t.style[e]=null}}}function Fc(t){return $n(t,(t=>{if(t&&(t instanceof Yc||qc(t)||$c(t)||Gc(t)))return t}))}function Bc(t){if("string"==typeof t?t=function(t){return{text:[t]}}(t):t.text&&function(t){t.text=ei(t.text)}(t),t.on&&(t.eventListeners=function(t){for(const e in t)Vc(t,e);return t}(t.on),delete t.on),!t.text){t.attributes&&function(t){for(const e in t)t[e].value&&(t[e].value=ei(t[e].value)),Vc(t,e)}(t.attributes);const e=[];if(t.children)if(Gc(t.children))e.push(t.children);else for(const n of t.children)qc(n)||$c(n)||go(n)?e.push(n):e.push(new Pc(n));t.children=e}return t}function Vc(t,e){t[e]=ei(t[e])}function Wc(t,e){return Xc(e)?t:Xc(t)?e:`${t} ${e}`}function Uc(t,e){for(const n in e)t[n]?t[n].push(...e[n]):t[n]=e[n]}function Xc(t){return!t&&0!==t}function $c(t){return t instanceof Ec}function qc(t){return t instanceof Pc}function Gc(t){return t instanceof Dc}function Jc(t){return"class"==t||"style"==t}class Zc extends Dc{constructor(t,e=[]){super(e),this.locale=t}attachToDom(){this._bodyCollectionContainer=new Pc({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection},children:this}).render();let t=document.querySelector(".ck-body-wrapper");t||(t=function(t,e,n={},i=[]){const r=n&&n.xmlns,o=r?t.createElementNS(r,e):t.createElement(e);for(const t in n)o.setAttribute(t,n[t]);!xs(i)&&Kn(i)||(i=[i]);for(let e of i)xs(e)&&(e=t.createTextNode(e)),o.appendChild(e);return o}(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(t)),t.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const t=document.querySelector(".ck-body-wrapper");t&&0==t.childElementCount&&t.remove()}}n(17);class Kc extends Ec{constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon"],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");for(e&&(this.viewBox=e),this.element.innerHTML="";t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((t=>{t.style.fill=this.fillColor}))}}n(19);class Qc extends Ec{constructor(t){super(t),this.set("text",""),this.set("position","s");const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip",e.to("position",(t=>"ck-tooltip_"+t)),e.if("text","ck-hidden",(t=>!t.trim()))]},children:[{tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:e.to("text")}]}]})}}n(21);class tu extends Ec{constructor(t){super(t);const e=this.bindTemplate,n=s();this.set("class"),this.set("labelStyle"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.tooltipView=this._createTooltipView(),this.labelView=this._createLabelView(n),this.iconView=new Kc,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this)),this.setTemplate({tag:"button",attributes:{class:["ck","ck-button",e.to("class"),e.if("isEnabled","ck-disabled",(t=>!t)),e.if("isVisible","ck-hidden",(t=>!t)),e.to("isOn",(t=>t?"ck-on":"ck-off")),e.if("withText","ck-button_with-text"),e.if("withKeystroke","ck-button_with-keystroke")],type:e.to("type",(t=>t||"button")),tabindex:e.to("tabindex"),"aria-labelledby":"ck-editor__aria-label_"+n,"aria-disabled":e.if("isEnabled",!0,(t=>!t)),"aria-pressed":e.to("isOn",(t=>!!this.isToggleable&&String(t)))},children:this.children,on:{mousedown:e.to((t=>{t.preventDefault()})),click:e.to((t=>{this.isEnabled?this.fire("execute"):t.preventDefault()}))}})}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.tooltipView),this.children.add(this.labelView),this.withKeystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}_createTooltipView(){const t=new Qc;return t.bind("text").to(this,"_tooltipString"),t.bind("position").to(this,"tooltipPosition"),t}_createLabelView(t){const e=new Ec,n=this.bindTemplate;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:n.to("labelStyle"),id:"ck-editor__aria-label_"+t},children:[{text:this.bindTemplate.to("label")}]}),e}_createKeystrokeView(){const t=new Ec;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(t=>Ir(t)))}]}),t}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=Ir(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}n(23);class eu extends tu{constructor(t){super(t),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new Ec;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}class nu{constructor(t){if(Object.assign(this,t),t.actions&&t.keystrokeHandler)for(const e in t.actions){let n=t.actions[e];"string"==typeof n&&(n=[n]);for(const i of n)t.keystrokeHandler.set(i,((t,n)=>{this[e](),n()}))}}get first(){return this.focusables.find(iu)||null}get last(){return this.focusables.filter(iu).slice(-1)[0]||null}get next(){return this._getFocusableItem(1)}get previous(){return this._getFocusableItem(-1)}get current(){let t=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((e,n)=>{const i=e.element===this.focusTracker.focusedElement;return i&&(t=n),i})),t)}focusFirst(){this._focus(this.first)}focusLast(){this._focus(this.last)}focusNext(){this._focus(this.next)}focusPrevious(){this._focus(this.previous)}_focus(t){t&&t.focus()}_getFocusableItem(t){const e=this.current,n=this.focusables.length;if(!n)return null;if(null===e)return this[1===t?"first":"last"];let i=(e+n+t)%n;do{const e=this.focusables.get(i);if(iu(e))return e;i=(i+n+t)%n}while(i!==e);return null}}function iu(t){return!(!t.focus||"none"==wo.window.getComputedStyle(t.element).display)}n(25);var ru='';class ou extends tu{constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new Kc;return t.content=ru,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}n(27);class su extends Ec{constructor(t){super(t);const e=this.bindTemplate;this.set("class"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(),this.arrowView=this._createArrowView(),this.keystrokes=new Os,this.focusTracker=new Ys,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",e.to("class"),e.if("isVisible","ck-hidden",(t=>!t)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((t,e)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),e())})),this.keystrokes.set("arrowleft",((t,e)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),e())}))}focus(){this.actionView.focus()}_createActionView(){const t=new tu;return t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const t=new tu,e=t.bindTemplate;return t.icon=ru,t.extendTemplate({attributes:{class:"ck-splitbutton__arrow","aria-haspopup":!0,"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("isEnabled").to(this),t.delegate("execute").to(this,"open"),t}}class au extends Ec{constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",(t=>"ck-dropdown__panel_"+t)),e.if("isVisible","ck-dropdown__panel-visible")]},children:this.children,on:{selectstart:e.to((t=>t.preventDefault()))}})}focus(){this.children.length&&this.children.first.focus()}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}function lu({element:t,target:e,positions:n,limiter:i,fitInViewport:r}){E(e)&&(e=e()),E(i)&&(i=i());const o=function(t){return t&&t.parentNode?t.offsetParent===wo.document.body?null:t.offsetParent:null}(t),s=new Ls(t),a=new Ls(e);let l,c;if(i||r){const t=function(t,e){const{elementRect:n,viewportRect:i}=e,r=n.getArea(),o=function(t,{targetRect:e,elementRect:n,limiterRect:i,viewportRect:r}){const o=[],s=n.getArea();for(const a of t){const t=cu(a,e,n);if(!t)continue;const[l,c]=t;let u=0,d=0;if(i)if(r){const t=i.getIntersection(r);t&&(u=t.getIntersectionArea(c))}else u=i.getIntersectionArea(c);r&&(d=r.getIntersectionArea(c));const h={positionName:l,positionRect:c,limiterIntersectArea:u,viewportIntersectArea:d};if(u===s)return[h];o.push(h)}return o}(t,e);if(i){const t=uu(o.filter((({viewportIntersectArea:t})=>t===r)),r);if(t)return t}return uu(o,r)}(n,{targetRect:a,elementRect:s,limiterRect:i&&new Ls(i).getVisible(),viewportRect:r&&new Ls(wo.window)});[c,l]=t||cu(n[0],a,s)}else[c,l]=cu(n[0],a,s);let u=du(l);return o&&(u=function({left:t,top:e},n){const i=du(new Ls(n)),r=Ms(n);return t-=i.left,e-=i.top,t+=n.scrollLeft,e+=n.scrollTop,{left:t-=r.left,top:e-=r.top}}(u,o)),{left:u.left,top:u.top,name:c}}function cu(t,e,n){const i=t(e,n);if(!i)return null;const{left:r,top:o,name:s}=i;return[s,n.clone().moveTo(r,o)]}function uu(t,e){let n,i,r=0;for(const{positionName:o,positionRect:s,limiterIntersectArea:a,viewportIntersectArea:l}of t){if(a===e)return[o,s];const t=l**2+a**2;t>r&&(r=t,n=s,i=o)}return n?[i,n]:null}function du({left:t,top:e}){const{scrollX:n,scrollY:i}=wo.window;return{left:t+n,top:e+i}}n(29);class hu extends Ec{constructor(t,e,n){super(t);const i=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class"),this.set("id"),this.set("panelPosition","auto"),this.keystrokes=new Os,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",i.to("class"),i.if("isEnabled","ck-disabled",(t=>!t))],id:i.to("id"),"aria-describedby":i.to("ariaDescribedById")},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"]}})}render(){super.render(),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.panelView.bind("isVisible").to(this,"isOpen"),this.on("change:isOpen",(()=>{this.isOpen&&("auto"===this.panelPosition?this.panelView.position=hu._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions}).name:this.panelView.position=this.panelPosition)})),this.keystrokes.listenTo(this.element);const t=(t,e)=>{this.isOpen&&(this.buttonView.focus(),this.isOpen=!1,e())};this.keystrokes.set("arrowdown",((t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())})),this.keystrokes.set("arrowright",((t,e)=>{this.isOpen&&e()})),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:t,north:e,southEast:n,southWest:i,northEast:r,northWest:o,southMiddleEast:s,southMiddleWest:a,northMiddleEast:l,northMiddleWest:c}=hu.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[n,i,s,a,t,r,o,l,c,e]:[i,n,a,s,t,o,r,c,l,e]}}hu.defaultPanelPositions={south:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/2,name:"s"}),southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),southMiddleEast:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/4,name:"sme"}),southMiddleWest:(t,e)=>({top:t.bottom,left:t.left-3*(e.width-t.width)/4,name:"smw"}),north:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/2,name:"n"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),northMiddleEast:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/4,name:"nme"}),northMiddleWest:(t,e)=>({top:t.top-e.height,left:t.left-3*(e.width-t.width)/4,name:"nmw"})},hu._getOptimalPosition=lu;class fu extends Ec{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class pu extends Ec{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function mu(t){return Array.isArray(t)?{items:t,removeItems:[]}:t?Object.assign({items:[],removeItems:[]},t):{items:[],removeItems:[]}}n(31);class gu extends Ec{constructor(t,e){super(t);const n=this.bindTemplate,i=this.t;this.options=e||{},this.set("ariaLabel",i("Editor toolbar")),this.set("maxWidth","auto"),this.items=this.createCollection(),this.focusTracker=new Ys,this.keystrokes=new Os,this.set("class"),this.set("isCompact",!1),this.itemsView=new bu(t),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const r="rtl"===t.uiLanguageDirection;this._focusCycler=new nu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[r?"arrowright":"arrowleft","arrowup"],focusNext:[r?"arrowleft":"arrowright","arrowdown"]}});const o=["ck","ck-toolbar",n.to("class"),n.if("isCompact","ck-toolbar_compact")];var s;this.options.shouldGroupWhenFull&&this.options.isFloating&&o.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:o,role:"toolbar","aria-label":n.to("ariaLabel"),style:{maxWidth:n.to("maxWidth")}},children:this.children,on:{mousedown:(s=this,s.bindTemplate.to((t=>{t.target===s.element&&t.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new vu(this):new _u(this)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(t,e){const n=mu(t),i=n.items.filter(((t,i,r)=>"|"===t||-1===n.removeItems.indexOf(t)&&("-"===t?!this.options.shouldGroupWhenFull||(Object(l.b)("toolbarview-line-break-ignored-when-grouping-items",r),!1):!!e.has(t)||(Object(l.b)("toolbarview-item-unavailable",{name:t}),!1)))),r=this._cleanSeparators(i).map((t=>"|"===t?new fu:"-"===t?new pu:e.create(t)));this.items.addMany(r)}_cleanSeparators(t){const e=t=>"-"!==t&&"|"!==t,n=t.length,i=t.findIndex(e),r=n-t.slice().reverse().findIndex(e);return t.slice(i,r).filter(((t,n,i)=>!!e(t)||!(n>0&&i[n-1]===t)))}}class bu extends Ec{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class _u{constructor(t){const e=t.bindTemplate;t.set("isVertical",!1),t.itemsView.children.bindTo(t.items).using((t=>t)),t.focusables.bindTo(t.items).using((t=>t)),t.extendTemplate({attributes:{class:[e.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class vu{constructor(t){this.view=t,this.viewChildren=t.children,this.viewFocusables=t.focusables,this.viewItemsView=t.itemsView,this.viewFocusTracker=t.focusTracker,this.viewLocale=t.locale,this.ungroupedItems=t.createCollection(),this.groupedItems=t.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),this.resizeObserver=null,this.cachedPadding=null,this.shouldUpdateGroupingOnNextResize=!1,t.itemsView.children.bindTo(this.ungroupedItems).using((t=>t)),this.ungroupedItems.on("add",this._updateFocusCycleableItems.bind(this)),this.ungroupedItems.on("remove",this._updateFocusCycleableItems.bind(this)),t.children.on("add",this._updateFocusCycleableItems.bind(this)),t.children.on("remove",this._updateFocusCycleableItems.bind(this)),t.items.on("change",((t,e)=>{const n=e.index;for(const t of e.removed)n>=this.ungroupedItems.length?this.groupedItems.remove(t):this.ungroupedItems.remove(t);for(let t=n;tthis.ungroupedItems.length?this.groupedItems.add(i,t-this.ungroupedItems.length):this.ungroupedItems.add(i,t)}this._updateGrouping()})),t.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(t){this.viewElement=t.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(t)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!this.viewElement.offsetParent)return void(this.shouldUpdateGroupingOnNextResize=!0);const t=this.groupedItems.length;let e;for(;this._areItemsOverflowing;)this._groupLastItem(),e=!0;if(!e&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==t&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const t=this.viewElement,e=this.viewLocale.uiLanguageDirection,n=new Ls(t.lastChild),i=new Ls(t);if(!this.cachedPadding){const n=wo.window.getComputedStyle(t),i="ltr"===e?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[i])}return"ltr"===e?n.right>i.right-this.cachedPadding:n.left{t&&t===e.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),t=e.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(t){t.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new fu),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const t=this.viewLocale,e=t.t,n=ku(t);return n.class="ck-toolbar__grouped-dropdown",n.panelPosition="ltr"===t.uiLanguageDirection?"sw":"se",Mu(n,[]),n.buttonView.set({label:e("Show more items"),tooltip:!0,tooltipPosition:"rtl"===t.uiLanguageDirection?"se":"sw",icon:Lc.threeVerticalDots}),n.toolbarView.items.bindTo(this.groupedItems).using((t=>t)),n}_updateFocusCycleableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((t=>{this.viewFocusables.add(t)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}n(33);class yu extends Ec{constructor(){super(),this.items=this.createCollection(),this.focusTracker=new Ys,this.keystrokes=new Os,this._focusCycler=new nu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"]},children:this.items})}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}class wu extends Ec{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item"]},children:this.children})}focus(){this.children.first.focus()}}class xu extends Ec{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}function ku(t,e=ou){const n=new e(t),i=new au(t),r=new hu(t,n,i);return n.bind("isEnabled").to(r),n instanceof ou?n.bind("isOn").to(r,"isOpen"):n.arrowView.bind("isOn").to(r,"isOpen"),function(t){(function(t){t.on("render",(()=>{Ac({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:[t.element]})}))})(t),function(t){t.on("execute",(e=>{e.source instanceof eu||(t.isOpen=!1)}))}(t),function(t){t.keystrokes.set("arrowdown",((e,n)=>{t.isOpen&&(t.panelView.focus(),n())})),t.keystrokes.set("arrowup",((e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())}))}(t)}(r),r}function Mu(t,e){const n=t.locale,i=n.t,r=t.toolbarView=new gu(n);r.set("ariaLabel",i("Dropdown toolbar")),t.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.map((t=>r.items.add(t))),t.panelView.children.add(r),r.items.delegate("execute").to(t)}function Su(t,e){const n=t.locale,i=t.listView=new yu(n);i.items.bindTo(e).using((({type:t,model:e})=>{if("separator"===t)return new xu(n);if("button"===t||"switchbutton"===t){const i=new wu(n);let r;return r="button"===t?new tu(n):new eu(n),r.bind(...Object.keys(e)).to(e),r.delegate("execute").to(i),i.children.add(r),i}})),t.panelView.children.add(i),i.items.delegate("execute").to(t)}n(35),n(37),n(39);class Lu extends Ec{constructor(t){super(t),this.body=new Zc(t)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}n(41);class Au extends Ec{constructor(t){super(t),this.set("text"),this.set("for"),this.id="ck-editor__label_"+s();const e=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:e.to("for")},children:[{text:e.to("text")}]})}}class Tu extends Lu{constructor(t){super(t),this.top=this.createCollection(),this.main=this.createCollection(),this._voiceLabelView=this._createVoiceLabel(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-editor","ck-rounded-corners"],role:"application",dir:t.uiLanguageDirection,lang:t.uiLanguage,"aria-labelledby":this._voiceLabelView.id},children:[this._voiceLabelView,{tag:"div",attributes:{class:["ck","ck-editor__top","ck-reset_all"],role:"presentation"},children:this.top},{tag:"div",attributes:{class:["ck","ck-editor__main"],role:"presentation"},children:this.main}]})}_createVoiceLabel(){const t=this.t,e=new Au;return e.text=t("Rich Text Editor"),e.extendTemplate({attributes:{class:"ck-voice-label"}}),e}}class Cu extends Ec{constructor(t,e,n){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:t.contentLanguage,dir:t.contentLanguageDirection}}),this.name=null,this.set("isFocused",!1),this._editableElement=n,this._hasExternalElement=!!this._editableElement,this._editingView=e}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}_updateIsFocusedClasses(){const t=this._editingView;function e(e){t.change((n=>{const i=t.document.getRoot(e.name);n.addClass(e.isFocused?"ck-focused":"ck-blurred",i),n.removeClass(e.isFocused?"ck-blurred":"ck-focused",i)}))}t.isRenderingInProgress?function n(i){t.once("change:isRenderingInProgress",((t,r,o)=>{o?n(i):e(i)}))}(this):e(this)}}class Du extends Cu{constructor(t,e,n){super(t,e,n),this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const t=this._editingView,e=this.t;t.change((n=>{const i=t.document.getRoot(this.name);n.setAttribute("aria-label",e("Rich Text Editor, %0",this.name),i)}))}}n(43),n(45);class Eu extends Ec{constructor(t){super(t),this.set("value"),this.set("id"),this.set("placeholder"),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById"),this.focusTracker=new Ys,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{type:"text",class:["ck","ck-input","ck-input-text",e.if("isFocused","ck-input_focused"),e.if("isEmpty","ck-input-text_empty"),e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),readonly:e.to("isReadOnly"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById")},on:{input:e.to("input"),change:e.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((t,e,n)=>{this._setDomElementValue(n),this._updateIsEmpty()}))}select(){this.element.select()}focus(){this.element.focus()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(t){this.element.value=t||0===t?t:""}}n(47);class Pu extends Ec{constructor(t,e){super(t);const n="ck-labeled-field-view-"+s(),i="ck-labeled-field-view-status-"+s();this.fieldView=e(this,n,i),this.set("label"),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class"),this.set("placeholder"),this.labelView=this._createLabelView(n),this.statusView=this._createStatusView(i),this.bind("_statusText").to(this,"errorText",this,"infoText",((t,e)=>t||e));const r=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",r.to("class"),r.if("isEnabled","ck-disabled",(t=>!t)),r.if("isEmpty","ck-labeled-field-view_empty"),r.if("isFocused","ck-labeled-field-view_focused"),r.if("placeholder","ck-labeled-field-view_placeholder"),r.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:[this.fieldView,this.labelView]},this.statusView]})}_createLabelView(t){const e=new Au(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createStatusView(t){const e=new Ec(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",(t=>!t))],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]}),e}focus(){this.fieldView.focus()}}function Yu(t,e,n){const i=new Eu(t.locale);return i.set({id:e,ariaDescribedById:n}),i.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),i.bind("hasError").to(t,"errorText",(t=>!!t)),i.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(i),i}class Ou extends ai{static get pluginName(){return"Notification"}init(){this.on("show:warning",((t,e)=>{window.alert(e.message)}),{priority:"lowest"})}showSuccess(t,e={}){this._showNotification({message:t,type:"success",namespace:e.namespace,title:e.title})}showInfo(t,e={}){this._showNotification({message:t,type:"info",namespace:e.namespace,title:e.title})}showWarning(t,e={}){this._showNotification({message:t,type:"warning",namespace:e.namespace,title:e.title})}_showNotification(t){const e="show:"+t.type+(t.namespace?":"+t.namespace:"");this.fire(e,{message:t.message,type:t.type,title:t.title||""})}}class Iu{constructor(t,e){e&&Rt(this,e),t&&this.set(t)}}Gt(Iu,Vt),n(49);const Ru=Es("px"),Nu=wo.document.body;class ju extends Ec{constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class"),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",(t=>"ck-balloon-panel_"+t)),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",Ru),left:e.to("left",Ru)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=ju.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthMiddleWest,e.southArrowNorthMiddleEast,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthMiddleWest,e.northArrowSouthMiddleEast,e.northArrowSouthWest,e.northArrowSouthEast],limiter:Nu,fitInViewport:!0},t),i=ju._getOptimalPosition(n),r=parseInt(i.left),o=parseInt(i.top),s=i.name;Object.assign(this,{top:o,left:r,position:s})}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(t):this._stopPinning()},this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=zu(t.target),n=t.limiter?zu(t.limiter):Nu;this.listenTo(wo.document,"scroll",((i,r)=>{const o=r.target,s=e&&o.contains(e),a=n&&o.contains(n);!s&&!a&&e&&n||this.attachTo(t)}),{useCapture:!0}),this.listenTo(wo.window,"resize",(()=>{this.attachTo(t)}))}_stopPinning(){this.stopListening(wo.document,"scroll"),this.stopListening(wo.window,"resize")}}function zu(t){return qn(t)?t:ks(t)?t.commonAncestorContainer:"function"==typeof t?zu(t()):null}function Hu(t,e){return t.top-e.height-ju.arrowVerticalOffset}function Fu(t){return t.bottom+ju.arrowVerticalOffset}ju.arrowHorizontalOffset=25,ju.arrowVerticalOffset=10,ju._getOptimalPosition=lu,ju.defaultPositions={northWestArrowSouthWest:(t,e)=>({top:Hu(t,e),left:t.left-ju.arrowHorizontalOffset,name:"arrow_sw"}),northWestArrowSouthMiddleWest:(t,e)=>({top:Hu(t,e),left:t.left-.25*e.width-ju.arrowHorizontalOffset,name:"arrow_smw"}),northWestArrowSouth:(t,e)=>({top:Hu(t,e),left:t.left-e.width/2,name:"arrow_s"}),northWestArrowSouthMiddleEast:(t,e)=>({top:Hu(t,e),left:t.left-.75*e.width+ju.arrowHorizontalOffset,name:"arrow_sme"}),northWestArrowSouthEast:(t,e)=>({top:Hu(t,e),left:t.left-e.width+ju.arrowHorizontalOffset,name:"arrow_se"}),northArrowSouthWest:(t,e)=>({top:Hu(t,e),left:t.left+t.width/2-ju.arrowHorizontalOffset,name:"arrow_sw"}),northArrowSouthMiddleWest:(t,e)=>({top:Hu(t,e),left:t.left+t.width/2-.25*e.width-ju.arrowHorizontalOffset,name:"arrow_smw"}),northArrowSouth:(t,e)=>({top:Hu(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s"}),northArrowSouthMiddleEast:(t,e)=>({top:Hu(t,e),left:t.left+t.width/2-.75*e.width+ju.arrowHorizontalOffset,name:"arrow_sme"}),northArrowSouthEast:(t,e)=>({top:Hu(t,e),left:t.left+t.width/2-e.width+ju.arrowHorizontalOffset,name:"arrow_se"}),northEastArrowSouthWest:(t,e)=>({top:Hu(t,e),left:t.right-ju.arrowHorizontalOffset,name:"arrow_sw"}),northEastArrowSouthMiddleWest:(t,e)=>({top:Hu(t,e),left:t.right-.25*e.width-ju.arrowHorizontalOffset,name:"arrow_smw"}),northEastArrowSouth:(t,e)=>({top:Hu(t,e),left:t.right-e.width/2,name:"arrow_s"}),northEastArrowSouthMiddleEast:(t,e)=>({top:Hu(t,e),left:t.right-.75*e.width+ju.arrowHorizontalOffset,name:"arrow_sme"}),northEastArrowSouthEast:(t,e)=>({top:Hu(t,e),left:t.right-e.width+ju.arrowHorizontalOffset,name:"arrow_se"}),southWestArrowNorthWest:(t,e)=>({top:Fu(t),left:t.left-ju.arrowHorizontalOffset,name:"arrow_nw"}),southWestArrowNorthMiddleWest:(t,e)=>({top:Fu(t),left:t.left-.25*e.width-ju.arrowHorizontalOffset,name:"arrow_nmw"}),southWestArrowNorth:(t,e)=>({top:Fu(t),left:t.left-e.width/2,name:"arrow_n"}),southWestArrowNorthMiddleEast:(t,e)=>({top:Fu(t),left:t.left-.75*e.width+ju.arrowHorizontalOffset,name:"arrow_nme"}),southWestArrowNorthEast:(t,e)=>({top:Fu(t),left:t.left-e.width+ju.arrowHorizontalOffset,name:"arrow_ne"}),southArrowNorthWest:(t,e)=>({top:Fu(t),left:t.left+t.width/2-ju.arrowHorizontalOffset,name:"arrow_nw"}),southArrowNorthMiddleWest:(t,e)=>({top:Fu(t),left:t.left+t.width/2-.25*e.width-ju.arrowHorizontalOffset,name:"arrow_nmw"}),southArrowNorth:(t,e)=>({top:Fu(t),left:t.left+t.width/2-e.width/2,name:"arrow_n"}),southArrowNorthMiddleEast:(t,e)=>({top:Fu(t),left:t.left+t.width/2-.75*e.width+ju.arrowHorizontalOffset,name:"arrow_nme"}),southArrowNorthEast:(t,e)=>({top:Fu(t),left:t.left+t.width/2-e.width+ju.arrowHorizontalOffset,name:"arrow_ne"}),southEastArrowNorthWest:(t,e)=>({top:Fu(t),left:t.right-ju.arrowHorizontalOffset,name:"arrow_nw"}),southEastArrowNorthMiddleWest:(t,e)=>({top:Fu(t),left:t.right-.25*e.width-ju.arrowHorizontalOffset,name:"arrow_nmw"}),southEastArrowNorth:(t,e)=>({top:Fu(t),left:t.right-e.width/2,name:"arrow_n"}),southEastArrowNorthMiddleEast:(t,e)=>({top:Fu(t),left:t.right-.75*e.width+ju.arrowHorizontalOffset,name:"arrow_nme"}),southEastArrowNorthEast:(t,e)=>({top:Fu(t),left:t.right-e.width+ju.arrowHorizontalOffset,name:"arrow_ne"})},n(51),n(53);const Bu=Es("px");class Vu extends Jt{static get pluginName(){return"ContextualBalloon"}constructor(t){super(t),this.positionLimiter=()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null},this.set("visibleView",null),this.view=new ju(t.locale),t.ui.view.body.add(this.view),t.ui.focusTracker.add(this.view.element),this._viewToStack=new Map,this._idToStack=new Map,this.set("_numberOfStacks",0),this.set("_singleViewMode",!1),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this.hasView(t.view))throw new l.a("contextualballoon-add-view-exist",[this,t]);const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new l.a("contextualballoon-remove-view-not-exist",[this,t]);const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new l.a("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find((e=>e[1]===t))[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new Wu(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>1)),t.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((t,n)=>{if(n<2)return"";const i=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[i,n])})),t.buttonNextView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),t.buttonPrevView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),t}_createFakePanelsView(){const t=new Uu(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>=2?Math.min(t-1,2):0)),t.listenTo(this.view,"change:top",(()=>t.updatePosition())),t.listenTo(this.view,"change:left",(()=>t.updatePosition())),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:i=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),i&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&!t.limiter&&(t=Object.assign({},t,{limiter:this.positionLimiter})),t}}class Wu extends Ec{constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new Ys,this.buttonPrevView=this._createButtonView(e("Previous"),''),this.buttonNextView=this._createButtonView(e("Next"),''),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",(t=>t?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new tu(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class Uu extends Ec{constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",(t=>t?"":"ck-hidden"))],style:{top:n.to("top",Bu),left:n.to("left",Bu),width:n.to("width",Bu),height:n.to("height",Bu)}},children:this.content}),this.on("change:numberOfPanels",((t,e,n,i)=>{n>i?this._addPanels(n-i):this._removePanels(i-n),this.updatePosition()}))}_addPanels(t){for(;t--;){const t=new Ec;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:i}=new Ls(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:i})}}}n(55);const Xu=Es("px");class $u extends Ec{constructor(t){super(t);const e=this.bindTemplate;this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheLimiter",!1),this.set("_hasViewportTopOffset",!1),this.content=this.createCollection(),this._contentPanelPlaceholder=new Pc({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:e.to("isSticky",(t=>t?"block":"none")),height:e.to("isSticky",(t=>t?Xu(this._panelRect.height):null))}}}).render(),this._contentPanel=new Pc({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",e.if("isSticky","ck-sticky-panel__content_sticky"),e.if("_isStickyToTheLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{width:e.to("isSticky",(t=>t?Xu(this._contentPanelPlaceholder.getBoundingClientRect().width):null)),top:e.to("_hasViewportTopOffset",(t=>t?Xu(this.viewportTopOffset):null)),bottom:e.to("_isStickyToTheLimiter",(t=>t?Xu(this.limiterBottomOffset):null)),marginLeft:e.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this._contentPanel]})}render(){super.render(),this._checkIfShouldBeSticky(),this.listenTo(wo.window,"scroll",(()=>{this._checkIfShouldBeSticky()})),this.listenTo(this,"change:isActive",(()=>{this._checkIfShouldBeSticky()}))}_checkIfShouldBeSticky(){const t=this._panelRect=this._contentPanel.getBoundingClientRect();let e;this.limiterElement?(e=this._limiterRect=this.limiterElement.getBoundingClientRect(),this.isSticky=this.isActive&&e.topZu(s,t)))),qu.get(s).set(n,{text:i,isDirectHost:r,keepOnFocus:o,hostElement:r?n:null}),e.change((t=>Zu(s,t)))}function Ju(t,e){return!!e.hasClass("ck-placeholder")&&(t.removeClass("ck-placeholder",e),!0)}function Zu(t,e){const n=qu.get(t),i=[];let r=!1;for(const[t,o]of n)o.isDirectHost&&(i.push(t),Ku(e,t,o)&&(r=!0));for(const[t,o]of n){if(o.isDirectHost)continue;const n=Qu(t);n&&(i.includes(n)||(o.hostElement=n,Ku(e,t,o)&&(r=!0)))}return r}function Ku(t,e,n){const{text:i,isDirectHost:r,hostElement:o}=n;let s=!1;return o.getAttribute("data-placeholder")!==i&&(t.setAttribute("data-placeholder",i,o),s=!0),(r||1==e.childCount)&&function(t,e){if(!t.isAttached())return!1;if(Array.from(t.getChildren()).some((t=>!t.is("uiElement"))))return!1;if(e)return!0;const n=t.document;if(!n.isFocused)return!0;const i=n.selection.anchor;return i&&i.parent!==t}(o,n.keepOnFocus)?function(t,e){return!e.hasClass("ck-placeholder")&&(t.addClass("ck-placeholder",e),!0)}(t,o)&&(s=!0):Ju(t,o)&&(s=!0),s}function Qu(t){if(t.childCount){const e=t.getChild(0);if(e.is("element")&&!e.is("uiElement"))return e}return null}const td=new Map;function ed(t,e,n){let i=td.get(t);i||(i=new Map,td.set(t,i)),i.set(e,n)}function nd(t){return[t]}function id(t,e,n={}){const i=function(t,e){const n=td.get(t);return n&&n.has(e)?n.get(e):nd}(t.constructor,e.constructor);try{return i(t=t.clone(),e,n)}catch(t){throw t}}function rd(t,e,n){t=t.slice(),e=e.slice();const i=new od(n.document,n.useRelations,n.forceWeakRemove);i.setOriginalOperations(t),i.setOriginalOperations(e);const r=i.originalOperations;if(0==t.length||0==e.length)return{operationsA:t,operationsB:e,originalOperations:r};const o=new WeakMap;for(const e of t)o.set(e,0);const s={nextBaseVersionA:t[t.length-1].baseVersion+1,nextBaseVersionB:e[e.length-1].baseVersion+1,originalOperationsACount:t.length,originalOperationsBCount:e.length};let a=0;for(;a{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const i=t.range.getDifference(e.range).map((e=>new Sl(e,t.key,t.oldValue,t.newValue,0))),r=t.range.getIntersection(e.range);return r&&n.aIsStrong&&i.push(new Sl(r,e.key,e.newValue,t.newValue,0)),0==i.length?[new Kl(0)]:i}return[t]})),ed(Sl,Tl,((t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes).map((e=>new Sl(e,t.key,t.oldValue,t.newValue,t.baseVersion)));if(e.shouldReceiveAttributes){const i=ld(e,t.key,t.oldValue);i&&n.unshift(i)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]})),ed(Sl,Pl,((t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(ra._createFromPositionAndShift(e.graveyardPosition,1));const i=t.range._getTransformedByMergeOperation(e);return i.isCollapsed||n.push(i),n.map((e=>new Sl(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),ed(Sl,Al,((t,e)=>function(t,e){const n=ra._createFromPositionAndShift(e.sourcePosition,e.howMany);let i=null,r=[];n.containsRange(t,!0)?i=t:t.start.hasSameParentAs(n.start)?(r=t.getDifference(n),i=t.getIntersection(n)):r=[t];const o=[];for(let t of r){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart(),i=t.start.hasSameParentAs(n);t=t._getTransformedByInsertion(n,e.howMany,i),o.push(...t)}return i&&o.push(i._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]),o}(t.range,e).map((e=>new Sl(e,t.key,t.oldValue,t.newValue,t.baseVersion))))),ed(Sl,Yl,((t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new ra(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]})),ed(Tl,Sl,((t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const i=ld(t,e.key,e.newValue);i&&n.push(i)}return n})),ed(Tl,Tl,((t,e,n)=>(t.position.isEqual(e.position)&&n.aIsStrong||(t.position=t.position._getTransformedByInsertOperation(e)),[t]))),ed(Tl,Al,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),ed(Tl,Yl,((t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t]))),ed(Tl,Pl,((t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t]))),ed(Cl,Tl,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t]))),ed(Cl,Cl,((t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new Kl(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]})),ed(Cl,Pl,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t]))),ed(Cl,Al,((t,e,n)=>{if(t.oldRange&&(t.oldRange=ra._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const i=ra._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.start.path=n.abRelation.path,t.newRange.end=i.end,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=i.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=ra._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]})),ed(Cl,Yl,((t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const i=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=ta._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=ta._createAt(e.moveTargetPosition)),t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?t.newRange.end=ta._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?t.newRange.end=ta._createAt(e.insertionPosition):t.newRange.end=i.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]})),ed(Pl,Tl,((t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t]))),ed(Pl,Pl,((t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new ta(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new Kl(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const i="$graveyard"==t.targetPosition.root.rootName,r="$graveyard"==e.targetPosition.root.rootName,o=i&&!r;if(r&&!i||!o&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),i=t.targetPosition._getTransformedByMergeOperation(e);return[new Al(n,t.howMany,i,0)]}return[new Kl(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),ed(Pl,Al,((t,e,n)=>{const i=ra._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.sourcePosition)?[new Kl(0)]:(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])})),ed(Pl,Yl,((t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const i=0!=e.howMany,r=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(i||r||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]})),ed(Al,Tl,((t,e)=>{const n=ra._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]})),ed(Al,Al,((t,e,n)=>{const i=ra._createFromPositionAndShift(t.sourcePosition,t.howMany),r=ra._createFromPositionAndShift(e.sourcePosition,e.howMany);let o,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),o=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),cd(t,e)&&cd(e,t))return[e.getReversed()];if(i.containsPosition(e.targetPosition)&&i.containsRange(r,!0))return i.start=i.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),i.end=i.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),ud([i],o);if(r.containsPosition(t.targetPosition)&&r.containsRange(i,!0))return i.start=i.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),i.end=i.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),ud([i],o);const l=li(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return i.start=i.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),i.end=i.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),ud([i],o);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const c=[],u=i.getDifference(r);for(const t of u){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany),t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n="same"==li(t.start.getParentPath(),e.getMovedRangeStart().getParentPath()),i=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);c.push(...i)}const d=i.getIntersection(r);return null!==d&&s&&(d.start=d.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),d.end=d.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===c.length?c.push(d):1==c.length?r.start.isBefore(i.start)||r.start.isEqual(i.start)?c.unshift(d):c.push(d):c.splice(1,0,d)),0===c.length?[new Kl(t.baseVersion)]:ud(c,o)})),ed(Al,Yl,((t,e,n)=>{let i=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(i=t.targetPosition._getTransformedBySplitOperation(e));const r=ra._createFromPositionAndShift(t.sourcePosition,t.howMany);if(r.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=i,[t];if(r.start.hasSameParentAs(e.splitPosition)&&r.containsPosition(e.splitPosition)){let t=new ra(e.splitPosition,r.end);return t=t._getTransformedBySplitOperation(e),ud([new ra(r.start,e.splitPosition),t],i)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(i=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(i=t.targetPosition);const o=[r._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const i=r.start.isEqual(e.graveyardPosition)||r.containsPosition(e.graveyardPosition);t.howMany>1&&i&&!n.aWasUndone&&o.push(ra._createFromPositionAndShift(e.insertionPosition,1))}return ud(o,i)})),ed(Al,Pl,((t,e,n)=>{const i=ra._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new Kl(0)]}else if(!n.aWasUndone){const n=[];let i=e.graveyardPosition.clone(),r=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new Al(t.sourcePosition,t.howMany-1,t.targetPosition,0)),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),r=r._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const o=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new Al(i,1,o,0),a=s.getMovedRangeStart().path.slice();a.push(0);const l=new ta(s.targetPosition.root,a);r=r._getTransformedByMove(i,o,1);const c=new Al(r,e.howMany,l,0);return n.push(s),n.push(c),n}const r=ra._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=r.start,t.howMany=r.end.offset-r.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]})),ed(Dl,Tl,((t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t]))),ed(Dl,Pl,((t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t]))),ed(Dl,Al,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),ed(Dl,Dl,((t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new Kl(0)];t.oldName=e.newName}return[t]})),ed(Dl,Yl,((t,e)=>{if("same"==li(t.position.path,e.splitPosition.getParentPath())&&!e.graveyardPosition){const e=new Dl(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}return t.position=t.position._getTransformedBySplitOperation(e),[t]})),ed(El,El,((t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new Kl(0)];t.oldValue=e.newValue}return[t]})),ed(Yl,Tl,((t,e)=>(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const i=new ta(e.graveyardPosition.root,n),r=Yl.getInsertionPosition(new ta(e.graveyardPosition.root,n)),o=new Yl(i,0,r,null,0);return t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Yl.getInsertionPosition(t.splitPosition),t.graveyardPosition=o.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[o,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Yl.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),ed(Yl,Al,((t,e,n)=>{const i=ra._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const r=i.start.isEqual(t.graveyardPosition)||i.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&r){const n=t.splitPosition._getTransformedByMoveOperation(e),i=t.graveyardPosition._getTransformedByMoveOperation(e),r=i.path.slice();r.push(0);const o=new ta(i.root,r);return[new Al(n,t.howMany,o,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}const r=t.splitPosition.isEqual(e.targetPosition);if(r&&("insertAtSource"==n.baRelation||"splitBefore"==n.abRelation))return t.howMany+=e.howMany,t.splitPosition=t.splitPosition._getTransformedByDeletion(e.sourcePosition,e.howMany),t.insertionPosition=Yl.getInsertionPosition(t.splitPosition),[t];if(r&&n.abRelation&&n.abRelation.howMany){const{howMany:e,offset:i}=n.abRelation;return t.howMany+=e,t.splitPosition=t.splitPosition.getShiftedBy(i),[t]}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);return t.howMany-=n,t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new Kl(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new Kl(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const i="$graveyard"==t.splitPosition.root.rootName,r="$graveyard"==e.splitPosition.root.rootName,o=i&&!r;if(r&&!i||!o&&n.aIsStrong){const n=[];return e.howMany&&n.push(new Al(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new Al(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new Kl(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const i=new ta(e.insertionPosition.root,n);return[t,new Al(t.insertionPosition,1,i,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset{n.isFocused&&!i.focusTracker.isFocused&&(r&&r(),i.focus(),e())})),i.keystrokes.set("Esc",((e,n)=>{i.focusTracker.isFocused&&(t.focus(),o&&o(),n())}))}({origin:n,originFocusTracker:this.focusTracker,originKeystrokeHandler:t.keystrokes,toolbar:e.toolbar})}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),i=t.sourceElement,r=t.config.get("placeholder")||i&&"textarea"===i.tagName.toLowerCase()&&i.getAttribute("placeholder");r&&Gu({view:e,element:n,text:r,isDirectHost:!1,keepOnFocus:!0})}}n(61);class md extends Tu{constructor(t,e,n={}){super(t),this.stickyPanel=new $u(t),this.toolbar=new gu(t,{shouldGroupWhenFull:n.shouldToolbarGroupWhenFull}),this.editable=new Du(t,e)}render(){super.render(),this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}class gd extends vc{constructor(t,e){super(e),qn(t)&&(this.sourceElement=t),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),i=new md(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:n});this.ui=new pd(this,i),function(t){if(!E(t.updateSourceElement))throw new l.a("attachtoform-missing-elementapi-interface",t);const e=t.sourceElement;if(e&&"textarea"===e.tagName.toLowerCase()&&e.form){let n;const i=e.form,r=()=>t.updateSourceElement();E(i.submit)&&(n=i.submit,i.submit=()=>{r(),n.apply(i)}),i.addEventListener("submit",r),t.on("destroy",(()=>{i.removeEventListener("submit",r),n&&(i.submit=n)}))}}(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise((n=>{const i=new this(t,e);n(i.initPlugins().then((()=>i.ui.init(qn(t)?t:null))).then((()=>{if(!qn(t)&&e.initialData)throw new l.a("editor-create-initial-data",null);const n=void 0!==e.initialData?e.initialData:function(t){return qn(t)?(e=t)instanceof HTMLTextAreaElement?e.value:e.innerHTML:t;var e}(t);return i.data.init(n)})).then((()=>i.fire("ready"))).then((()=>i)))}))}}Gt(gd,kc),Gt(gd,Mc);class bd{constructor(t){this.files=function(t){const e=t.files?Array.from(t.files):[],n=t.items?Array.from(t.items):[];return e.length?e:n.filter((t=>"file"===t.kind)).map((t=>t.getAsFile()))}(t),this._native=t}get types(){return this._native.types}getData(t){return this._native.getData(t)}setData(t,e){this._native.setData(t,e)}set effectAllowed(t){this._native.effectAllowed=t}get effectAllowed(){return this._native.effectAllowed}set dropEffect(t){this._native.dropEffect=t}get dropEffect(){return this._native.dropEffect}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}class _d extends es{constructor(t){super(t);const e=this.document;function n(t){return(n,i)=>{i.preventDefault();const o=i.dropRange?[i.dropRange]:null,s=new r(e,t);e.fire(s,{dataTransfer:i.dataTransfer,method:n.name,targetRanges:o,target:i.target}),s.stop.called&&i.stopPropagation()}}this.domEventType=["paste","copy","cut","drop","dragover","dragstart","dragend","dragenter","dragleave"],this.listenTo(e,"paste",n("clipboardInput"),{priority:"low"}),this.listenTo(e,"drop",n("clipboardInput"),{priority:"low"}),this.listenTo(e,"dragover",n("dragging"),{priority:"low"})}onDomEvent(t){const e={dataTransfer:new bd(t.clipboardData?t.clipboardData:t.dataTransfer)};"drop"!=t.type&&"dragover"!=t.type||(e.dropRange=function(t,e){const n=e.target.ownerDocument,i=e.clientX,r=e.clientY;let o;return n.caretRangeFromPoint&&n.caretRangeFromPoint(i,r)?o=n.caretRangeFromPoint(i,r):e.rangeParent&&(o=n.createRange(),o.setStart(e.rangeParent,e.rangeOffset),o.collapse(!0)),o?t.domConverter.domRangeToView(o):null}(this.view,t)),this.fire(t.type,t,e)}}const vd=["figcaption","li"];class yd extends Jt{static get pluginName(){return"ClipboardPipeline"}init(){this.editor.editing.view.addObserver(_d),this._setupPasteDrop(),this._setupCopyCut()}_setupPasteDrop(){const t=this.editor,e=t.model,n=t.editing.view,i=n.document;this.listenTo(i,"clipboardInput",(e=>{t.isReadOnly&&e.stop()}),{priority:"highest"}),this.listenTo(i,"clipboardInput",((t,e)=>{const i=e.dataTransfer;let o=e.content||"";var s;o||(i.getData("text/html")?o=function(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1==e.length?" ":e))}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(//g,">").replace(/\r?\n\r?\n/g,"

    ").replace(/\r?\n/g,"
    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

    ")||s.includes("
    "))&&(s=`

    ${s}

    `),o=s),o=this.editor.data.htmlProcessor.toView(o));const a=new r(this,"inputTransformation");this.fire(a,{content:o,dataTransfer:i,targetRanges:e.targetRanges,method:e.method}),a.stop.called&&t.stop(),n.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((t,n)=>{if(n.content.isEmpty)return;const i=this.editor.data.toModel(n.content,"$clipboardHolder");0!=i.childCount&&(t.stop(),e.change((()=>{this.fire("contentInsertion",{content:i,method:n.method,dataTransfer:n.dataTransfer,targetRanges:n.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((t,n)=>{n.resultRange=e.insertContent(n.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor,e=t.model.document,n=t.editing.view.document;function i(i,r){const o=r.dataTransfer;r.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));n.fire("clipboardOutput",{dataTransfer:o,content:s,method:i.name})}this.listenTo(n,"copy",i,{priority:"low"}),this.listenTo(n,"cut",((e,n)=>{t.isReadOnly?n.preventDefault():i(e,n)}),{priority:"low"}),this.listenTo(n,"clipboardOutput",((n,i)=>{i.content.isEmpty||(i.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(i.content)),i.dataTransfer.setData("text/plain",function t(e){let n="";if(e.is("$text")||e.is("$textProxy"))n=e.data;else if(e.is("element","img")&&e.hasAttribute("alt"))n=e.getAttribute("alt");else if(e.is("element","br"))n="\n";else{let i=null;for(const r of e.getChildren()){const e=t(r);i&&(i.is("containerElement")||r.is("containerElement"))&&(vd.includes(i.name)||vd.includes(r.name)?n+="\n":n+="\n\n"),n+=e,i=r}}return n}(i.content))),"cut"==i.method&&t.model.deleteContent(e.selection)}),{priority:"low"})}}function*wd(t,e){for(const n of e)n&&t.getAttributeProperties(n[0]).copyOnEnter&&(yield n)}class xd extends Kt{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n,i){const r=n.isCollapsed,o=n.getFirstRange(),s=o.start.parent,a=o.end.parent;if(i.isLimit(s)||i.isLimit(a))r||s!=a||t.deleteContent(n);else if(r){const t=wd(e.model.schema,n.getAttributes());kd(e,o.start),e.setSelectionAttribute(t)}else{const i=!(o.start.isAtStart&&o.end.isAtEnd),r=s==a;t.deleteContent(n,{leaveUnmerged:i}),i&&(r?kd(e,n.focus):e.setSelection(a,0))}}(this.editor.model,n,e.selection,t.schema),this.fire("afterExecute",{writer:n})}))}}function kd(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}class Md extends Oo{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(this.isEnabled&&n.keyCode==Er.enter){const i=new pr(e,"enter",e.selection.getFirstRange());e.fire(i,new ts(e,n.domEvent,{isSoft:n.shiftKey})),i.stop.called&&t.stop()}}))}observe(){}}class Sd extends Jt{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(Md),t.commands.add("enter",new xd(t)),this.listenTo(n,"enter",((n,i)=>{i.preventDefault(),i.isSoft||(t.execute("enter"),e.scrollToTheSelection())}),{priority:"low"})}}class Ld{constructor(t,e=20){this.model=t,this.size=0,this.limit=e,this.isLocked=!1,this._changeCallback=(t,e)=>{"transparent"!=e.type&&e!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch()),this._batch}input(t){this.size+=t,this.size>=this.limit&&this._reset(!0)}lock(){this.isLocked=!0}unlock(){this.isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(t){this.isLocked&&!t||(this._batch=null,this.size=0)}}class Ad extends Kt{constructor(t,e){super(t),this.direction=e,this._buffer=new Ld(t.model,t.config.get("typing.undoStep"))}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,(i=>{this._buffer.lock();const r=i.createSelection(t.selection||n.selection),o=t.sequence||1,s=r.isCollapsed;if(r.isCollapsed&&e.modifySelection(r,{direction:this.direction,unit:t.unit}),this._shouldEntireContentBeReplacedWithParagraph(o))return void this._replaceEntireContentWithParagraph(i);if(this._shouldReplaceFirstBlockWithParagraph(r,o))return void this.editor.execute("paragraph",{selection:r});if(r.isCollapsed)return;let a=0;r.getFirstRange().getMinimalFlatRanges().forEach((t=>{a+=dr(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),e.deleteContent(r,{doNotResetEntireContent:s,direction:this.direction}),this._buffer.input(a),i.setSelection(r),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,i=e.schema.getLimitElement(n);if(!n.isCollapsed||!n.containsEntireContent(i))return!1;if(!e.schema.checkChild(i,"paragraph"))return!1;const r=i.getChild(0);return!r||"paragraph"!==r.name}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.document.selection,i=e.schema.getLimitElement(n),r=t.createElement("paragraph");t.remove(t.createRangeIn(i)),t.insert(r,i),t.setSelection(r,0)}_shouldReplaceFirstBlockWithParagraph(t,e){const n=this.editor.model;if(e>1||"backward"!=this.direction)return!1;if(!t.isCollapsed)return!1;const i=t.getFirstPosition(),r=n.schema.getLimitElement(i),o=r.getChild(0);return i.parent==o&&!!t.containsEntireContent(o)&&!!n.schema.checkChild(r,"paragraph")&&"paragraph"!=o.name}}class Td extends Oo{constructor(t){super(t);const e=t.document;let n=0;function i(t,n,i){const r=new pr(e,"delete",e.selection.getFirstRange());e.fire(r,new ts(e,n,i)),r.stop.called&&t.stop()}e.on("keyup",((t,e)=>{e.keyCode!=Er.delete&&e.keyCode!=Er.backspace||(n=0)})),e.on("keydown",((t,e)=>{const r={};if(e.keyCode==Er.delete)r.direction="forward",r.unit="character";else{if(e.keyCode!=Er.backspace)return;r.direction="backward",r.unit="codePoint"}const o=Tr.isMac?e.altKey:e.ctrlKey;r.unit=o?"word":r.unit,r.sequence=++n,i(t,e.domEvent,r)})),Tr.isAndroid&&e.on("beforeinput",((e,n)=>{if("deleteContentBackward"!=n.domEvent.inputType)return;const r={unit:"codepoint",direction:"backward",sequence:1},o=n.domTarget.ownerDocument.defaultView.getSelection();o.anchorNode==o.focusNode&&o.anchorOffset+1!=o.focusOffset&&(r.selectionToRemove=t.domConverter.domSelectionToView(o)),i(e,n.domEvent,r)}))}observe(){}}class Cd extends Jt{static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(Td);const i=new Ad(t,"forward");if(t.commands.add("deleteForward",i),t.commands.add("forwardDelete",i),t.commands.add("delete",new Ad(t,"backward")),this.listenTo(n,"delete",((n,i)=>{const r={unit:i.unit,sequence:i.sequence};if(i.selectionToRemove){const e=t.model.createSelection(),n=[];for(const e of i.selectionToRemove.getRanges())n.push(t.editing.mapper.toModelRange(e));e.setTo(n),r.selection=e}t.execute("forward"==i.direction?"deleteForward":"delete",r),i.preventDefault(),e.scrollToTheSelection()}),{priority:"low"}),Tr.isAndroid){let t=null;this.listenTo(n,"delete",((e,n)=>{const i=n.domTarget.ownerDocument.defaultView.getSelection();t={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}}),{priority:"lowest"}),this.listenTo(n,"keyup",((e,n)=>{if(t){const e=n.domTarget.ownerDocument.defaultView.getSelection();e.collapse(t.anchorNode,t.anchorOffset),e.extend(t.focusNode,t.focusOffset),t=null}}))}}}class Dd{constructor(){this._stack=[]}add(t,e){const n=this._stack,i=n[0];this._insertDescriptor(t);const r=n[0];i===r||Ed(i,r)||this.fire("change:top",{oldDescriptor:i,newDescriptor:r,writer:e})}remove(t,e){const n=this._stack,i=n[0];this._removeDescriptor(t);const r=n[0];i===r||Ed(i,r)||this.fire("change:top",{oldDescriptor:i,newDescriptor:r,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t.id));if(Ed(t,e[n]))return;n>-1&&e.splice(n,1);let i=0;for(;e[i]&&Pd(e[i],t);)i++;e.splice(i,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t));n>-1&&e.splice(n,1)}}function Ed(t,e){return t&&e&&t.priority==e.priority&&Yd(t.classes)==Yd(e.classes)}function Pd(t,e){return t.priority>e.priority||!(t.priorityYd(e.classes)}function Yd(t){return Array.isArray(t)?t.sort().join(","):t}function Od(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function Id(t,e,n={}){if(!t.is("containerElement"))throw new l.a("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass("ck-widget",t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=Vd,n.label&&function(t,e,n){n.setCustomProperty("widgetLabel",e,t)}(t,n.label,e),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new Kc;return n.set("content",''),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),jd(t,e,Rd,Nd),t}function Rd(t,e,n){if(e.classes&&n.addClass(ei(e.classes),t),e.attributes)for(const i in e.attributes)n.setAttribute(i,e.attributes[i],t)}function Nd(t,e,n){if(e.classes&&n.removeClass(ei(e.classes),t),e.attributes)for(const i in e.attributes)n.removeAttribute(i,t)}function jd(t,e,n,i){const r=new Dd;r.on("change:top",((e,r)=>{r.oldDescriptor&&i(t,r.oldDescriptor,r.writer),r.newDescriptor&&n(t,r.newDescriptor,r.writer)})),e.setCustomProperty("addHighlight",((t,e,n)=>r.add(e,n)),t),e.setCustomProperty("removeHighlight",((t,e,n)=>r.remove(e,n)),t)}function zd(t){const e=t.getCustomProperty("widgetLabel");return e?"function"==typeof e?e():e:""}function Hd(t,e){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",((n,i,r)=>{e.setAttribute("contenteditable",r?"false":"true",t)})),t.on("change:isFocused",((n,i,r)=>{r?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)})),t}function Fd(t,e){const n=t.getSelectedElement();if(n){const i=Ud(t);if(i)return e.createRange(e.createPositionAt(n,i));if(e.schema.isObject(n)&&!e.schema.isInline(n))return e.createRangeOn(n)}const i=t.getSelectedBlocks().next().value;if(i){if(i.isEmpty)return e.createRange(e.createPositionAt(i,0));const n=e.createPositionAfter(i);return t.focus.isTouching(n)?e.createRange(n):e.createRange(e.createPositionBefore(i))}return e.createRange(t.focus)}function Bd(t,e){const n=new Ls(wo.window),i=n.getIntersection(t),r=e.height+ju.arrowVerticalOffset;if(t.top-r>n.top||t.bottom+r',"image/svg+xml").firstChild;class Jd extends Jt{static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Sd,Cd]}constructor(t){super(t),this._currentFakeCaretModelElement=null}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",((n,i,r)=>{e.change((t=>{for(const n of e.document.roots)r?t.removeClass("ck-widget__type-around_disabled",n):t.addClass("ck-widget__type-around_disabled",n)})),r||t.model.change((t=>{t.removeSelectionAttribute("widget-type-around")}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableDeleteContentIntegration()}destroy(){this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,i=n.editing.view;n.execute("insertParagraph",{position:n.model.createPositionAt(t,e)}),i.focus(),i.scrollToTheSelection()}_listenToIfEnabled(t,e,n,i){this.listenTo(t,e,((...t)=>{this.isEnabled&&n(...t)}),i)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=Ud(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,i={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,n,r)=>{const o=r.mapper.toViewElement(n.item);Wd(o,n.item,e)&&function(t,e,n){const i=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of qd){const i=new Pc({tag:"div",attributes:{class:["ck","ck-widget__type-around__button","ck-widget__type-around__button_"+n],title:e[n]},children:[t.ownerDocument.importNode(Gd,!0)]});t.appendChild(i.render())}}(n,e),function(t){const e=new Pc({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),i)}(r.writer,i,o)}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,i=e.schema,r=t.editing.view;function o(t){return"ck-widget_type-around_show-fake-caret_"+t}this._listenToIfEnabled(r.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[Od,"$text"],priority:"high"}),this._listenToIfEnabled(n,"change:range",((e,n)=>{n.directChange&&t.model.change((t=>{t.removeSelectionAttribute("widget-type-around")}))})),this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();e&&Wd(t.editing.mapper.toViewElement(e),e,i)||t.model.change((t=>{t.removeSelectionAttribute("widget-type-around")}))})),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const r=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(r.removeClass(qd.map(o),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!Wd(a,s,i))return;const l=Ud(e.selection);l&&(r.addClass(o(l),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,i)=>{i||t.model.change((t=>{t.removeSelectionAttribute("widget-type-around")}))}))}_handleArrowKeyPress(t,e){const n=this.editor,i=n.model,r=i.document.selection,o=i.schema,s=n.editing.view,a=Nr(e.keyCode,n.locale.contentLanguageDirection),l=s.document.selection.getSelectedElement();let c;Wd(l,n.editing.mapper.toModelElement(l),o)?c=this._handleArrowKeyPressOnSelectedWidget(a):r.isCollapsed&&(c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a)),c&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=Ud(e.document.selection);return e.change((e=>n?n!==(t?"after":"before")&&(e.removeSelectionAttribute("widget-type-around"),!0):(e.setSelectionAttribute("widget-type-around",t?"after":"before"),!0)))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,i=n.schema,r=e.plugins.get("Widget"),o=r._getObjectElementNextToSelection(t);return!!Wd(e.editing.mapper.toViewElement(o),o,i)&&(n.change((e=>{r._setSelectionOverElement(o),e.setSelectionAttribute("widget-type-around",t?"before":"after")})),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,i)=>{const r=i.domTarget.closest(".ck-widget__type-around__button");if(!r)return;const o=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(r),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(r,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,o),i.preventDefault(),n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.model.document.selection,n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,i)=>{if("atTarget"!=n.eventPhase)return;const r=e.getSelectedElement(),o=t.editing.mapper.toViewElement(r),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:Wd(o,r,s)&&(this._insertParagraph(r,i.isSoft?"before":"after"),a=!0),a&&(i.preventDefault(),n.stop())}),{context:Od})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view,e=[Er.enter,Er.delete,Er.backspace];this._listenToIfEnabled(t.document,"keydown",((t,n)=>{e.includes(n.keyCode)||$d(n)||this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,i=n.schema;this._listenToIfEnabled(e.document,"delete",((e,r)=>{if("atTarget"!=e.eventPhase)return;const o=Ud(n.document.selection);if(!o)return;const s=r.direction,a=n.document.selection.getSelectedElement(),l="forward"==s;if("before"===o===l)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=i.getNearestSelectionRange(n.createPositionAt(a,o),s);if(e)if(e.isCollapsed){const r=n.createSelection(e.start);if(n.modifySelection(r,{direction:s}),r.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const i of e.getAncestors({parentFirst:!0})){if(i.childCount>1||t.isLimit(i))break;n=i}return n}(i,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}r.preventDefault(),e.stop()}),{context:Od})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[i,r])=>{if(r&&!r.is("documentSelection"))return;const o=Ud(n);return o?(t.stop(),e.change((t=>{const r=n.getSelectedElement(),s=e.createPositionAt(r,o),a=t.createSelection(s),l=e.insertContent(i,a);return t.setSelection(a),l}))):void 0}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[n])=>{n&&!n.is("documentSelection")||Ud(e)&&t.stop()}),{priority:"high"})}}function Zd(t){const e=t.model;return(n,i)=>{const r=i.keyCode==Er.arrowup,o=i.keyCode==Er.arrowdown,s=i.shiftKey,a=e.document.selection;if(!r&&!o)return;const l=o;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,l))return;const c=function(t,e,n){const i=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=Kd(i,t,"forward");if(!n)return null;const r=i.createRange(t,n),o=Qd(i.schema,r,"backward");return o&&t.isBefore(o)?i.createRange(t,o):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=Kd(i,t,"backward");if(!n)return null;const r=i.createRange(n,t),o=Qd(i.schema,r,"forward");return o&&t.isAfter(o)?i.createRange(o,t):null}}(t,a,l);c&&!c.isCollapsed&&function(t,e,n){const i=t.model,r=t.view.domConverter;if(n){const t=i.createSelection(e.start);i.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=i.createRange(t.focus,e.end))}const o=t.mapper.toViewRange(e),s=r.viewRangeToDom(o),a=Ls.getDomRangeRects(s);let l;for(const t of a)if(void 0!==l){if(Math.round(t.top)>=l)return!1;l=Math.max(l,Math.round(t.bottom))}else l=Math.round(t.bottom);return!0}(t,c,l)&&(e.change((t=>{const n=l?c.end:c.start;if(s){const i=e.createSelection(a.anchor);i.setFocus(n),t.setSelection(i)}else t.setSelection(n)})),n.stop(),i.preventDefault(),i.stopPropagation())}}function Kd(t,e,n){const i=t.schema,r=t.createRangeIn(e.root),o="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of r.getWalker({startPosition:e,direction:n})){if(i.isLimit(s)&&!i.isInline(s))return t;if(a==o&&i.isBlock(s))return null}return null}function Qd(t,e,n){const i="backward"==n?e.end:e.start;if(t.checkChild(i,"$text"))return i;for(const{nextPosition:i}of e.getWalker({direction:n}))if(t.checkChild(i,"$text"))return i}n(65);class th extends Jt{static get pluginName(){return"Widget"}static get requires(){return[Jd,Cd]}init(){const t=this.editor,e=t.editing.view,n=e.document;this._previouslySelected=new Set,this.editor.editing.downcastDispatcher.on("selection",((e,n,i)=>{const r=i.writer,o=n.selection;if(o.isCollapsed)return;const s=o.getSelectedElement();if(!s)return;const a=t.editing.mapper.toViewElement(s);Od(a)&&i.consumable.consume(o,"selection")&&r.setSelection(r.createRangeOn(a),{fake:!0,label:zd(a)})})),this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const i=n.writer,r=i.document.selection;let o=null;for(const t of r.getRanges())for(const e of t){const t=e.item;Od(t)&&!eh(t,o)&&(i.addClass("ck-widget_selected",t),this._previouslySelected.add(t),o=t)}}),{priority:"low"}),e.addObserver(hd),this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t))),this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[Od,"$text"]}),this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"}),this.listenTo(n,"arrowKey",Zd(this.editor.editing),{context:"$text"}),this.listenTo(n,"delete",((t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())}),{context:"$root"})}_onMousedown(t,e){const n=this.editor,i=n.editing.view,r=i.document;let o=e.target;if(function(t){for(;t;){if(t.is("editableElement")&&!t.is("rootElement"))return!0;if(Od(t))return!1;t=t.parent}return!1}(o)){if((Tr.isSafari||Tr.isGecko)&&e.domEvent.detail>=3){const t=n.editing.mapper,i=o.is("attributeElement")?o.findAncestor((t=>!t.is("attributeElement"))):o,r=t.toModelElement(i);e.preventDefault(),this.editor.model.change((t=>{t.setSelection(r,"in")}))}return}if(!Od(o)&&(o=o.findAncestor(Od),!o))return;Tr.isAndroid&&e.preventDefault(),r.isFocused||i.focus();const s=n.editing.mapper.toModelElement(o);this._setSelectionOverElement(s)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode,i=this.editor.model,r=i.schema,o=i.document.selection,s=o.getSelectedElement(),a=Nr(n,this.editor.locale.contentLanguageDirection);if(s&&r.isObject(s)){const n=a?o.getLastPosition():o.getFirstPosition(),s=r.getNearestSelectionRange(n,a?"forward":"backward");return void(s&&(i.change((t=>{t.setSelection(s)})),e.preventDefault(),t.stop()))}if(!o.isCollapsed)return;const l=this._getObjectElementNextToSelection(a);l&&r.isObject(l)&&(this._setSelectionOverElement(l),e.preventDefault(),t.stop())}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model,i=n.schema,r=n.document.selection.getSelectedElement();r&&i.isObject(r)&&(e.preventDefault(),t.stop())}_handleDelete(t){if(this.editor.isReadOnly)return;const e=this.editor.model.document.selection;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change((t=>{let i=e.anchor.parent;for(;i.isEmpty;){const e=i;i=e.parent,t.remove(e)}this._setSelectionOverElement(n)})),!0):void 0}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,i=e.document.selection,r=e.createSelection(i);e.modifySelection(r,{direction:t?"forward":"backward"});const o=t?r.focus.nodeBefore:r.focus.nodeAfter;return o&&n.isObject(o)?o:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass("ck-widget_selected",e);this._previouslySelected.clear()}}function eh(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}var nh=function(t,e,n){var i=!0,r=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return v(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),ms(t,e,{leading:i,maxWait:e,trailing:r})};n(67);class ih extends Jt{static get pluginName(){return"DragDrop"}static get requires(){return[yd,th]}init(){const t=this.editor,e=t.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,this._updateDropMarkerThrottled=nh((t=>this._updateDropMarker(t)),40),this._removeDropMarkerDelayed=sh((()=>this._removeDropMarker()),40),this._clearDraggableAttributesDelayed=sh((()=>this._clearDraggableAttributes()),40),e.addObserver(_d),e.addObserver(hd),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDropMarker(),this._setupDraggableAttributeHandling(),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((t,e,n)=>{n||this._finalizeDragging(!1)})),Tr.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._updateDropMarkerThrottled.cancel(),this._removeDropMarkerDelayed.cancel(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const t=this.editor,e=t.model,n=e.document,i=t.editing.view,r=i.document;this.listenTo(r,"dragstart",((i,o)=>{const a=n.selection;if(o.target&&o.target.is("editableElement"))return void o.preventDefault();const l=o.target?ah(o.target):null;if(l){const n=t.editing.mapper.toModelElement(l);this._draggedRange=ba.fromRange(e.createRangeOn(n)),t.plugins.has("WidgetToolbarRepository")&&t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}else if(!r.selection.isCollapsed){const t=r.selection.getSelectedElement();t&&Od(t)||(this._draggedRange=ba.fromRange(a.getFirstRange()))}if(!this._draggedRange)return void o.preventDefault();this._draggingUid=s(),o.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",o.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const c=e.createSelection(this._draggedRange.toRange()),u=t.data.toView(e.getSelectedContent(c));r.fire("clipboardOutput",{dataTransfer:o.dataTransfer,content:u,method:i.name}),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(r,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&"move"==e.dataTransfer.dropEffect)}),{priority:"low"}),this.listenTo(r,"dragenter",(()=>{this.isEnabled&&i.focus()})),this.listenTo(r,"dragleave",(()=>{this._removeDropMarkerDelayed()})),this.listenTo(r,"dragging",((e,n)=>{if(!this.isEnabled)return void(n.dataTransfer.dropEffect="none");this._removeDropMarkerDelayed.cancel();const i=rh(t,n.targetRanges,n.target);this._draggedRange||(n.dataTransfer.dropEffect="copy"),Tr.isGecko||("copy"==n.dataTransfer.effectAllowed?n.dataTransfer.dropEffect="copy":["all","copyMove"].includes(n.dataTransfer.effectAllowed)&&(n.dataTransfer.dropEffect="move")),i&&this._updateDropMarkerThrottled(i)}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"clipboardInput",((e,n)=>{if("drop"!=n.method)return;const i=rh(t,n.targetRanges,n.target);return this._removeDropMarker(),i?(this._draggedRange&&this._draggingUid!=n.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid=""),"move"==oh(n.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(i,!0)?(this._finalizeDragging(!1),void e.stop()):void(n.targetRanges=[t.editing.mapper.toViewRange(i)])):(this._finalizeDragging(!1),void e.stop())}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(yd);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"}),t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n="move"==oh(e.dataTransfer),i=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(i&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor,e=t.editing.view,n=e.document;this.listenTo(n,"mousedown",((i,r)=>{if(Tr.isAndroid||!r)return;this._clearDraggableAttributesDelayed.cancel();let o=ah(r.target);if(Tr.isBlink&&!t.isReadOnly&&!o&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();t&&Od(t)||(o=n.selection.editableElement)}o&&(e.change((t=>{t.setAttribute("draggable","true",o)})),this._draggableElement=t.editing.mapper.toModelElement(o))})),this.listenTo(n,"mouseup",(()=>{Tr.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_setupDropMarker(){const t=this.editor;t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text"))return n.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);return e.innerHTML="⁠⁠",e}))}})}_updateDropMarker(t){const e=this.editor,n=e.model.markers;e.model.change((e=>{n.has("drop-target")?n.get("drop-target").getRange().isEqual(t)||e.updateMarker("drop-target",{range:t}):e.addMarker("drop-target",{range:t,usingOperation:!1,affectsData:!1})}))}_removeDropMarker(){const t=this.editor.model;this._removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),t.markers.has("drop-target")&&t.change((t=>{t.removeMarker("drop-target")}))}_finalizeDragging(t){const e=this.editor,n=e.model;this._removeDropMarker(),this._clearDraggableAttributes(),e.plugins.has("WidgetToolbarRepository")&&e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),this._draggingUid="",this._draggedRange&&(t&&this.isEnabled&&n.deleteContent(n.createSelection(this._draggedRange),{doNotAutoparagraph:!0}),this._draggedRange.detach(),this._draggedRange=null)}}function rh(t,e,n){const i=t.model,r=t.editing.mapper;let o=null;const s=e?e[0].start:null;if(n.is("uiElement")&&(n=n.parent),o=function(t,e){const n=t.model,i=t.editing.mapper;if(Od(e))return n.createRangeOn(i.toModelElement(e));if(!e.is("editableElement")){const t=e.findAncestor((t=>Od(t)||t.is("editableElement")));if(Od(t))return n.createRangeOn(i.toModelElement(t))}return null}(t,n),o)return o;const a=function(t,e){const n=t.editing.mapper,i=t.editing.view,r=n.toModelElement(e);if(r)return r;const o=i.createPositionBefore(e),s=n.findMappedViewAncestor(o);return n.toModelElement(s)}(t,n),l=s?r.toModelPosition(s):null;return l?(o=function(t,e,n){const i=t.model;if(!i.schema.checkChild(n,"$block"))return null;const r=i.createPositionAt(n,0),o=e.path.slice(0,r.path.length),s=i.createPositionFromPath(e.root,o).nodeAfter;return s&&i.schema.isObject(s)?i.createRangeOn(s):null}(t,l,a),o||(o=i.schema.getNearestSelectionRange(l,Tr.isGecko?"forward":"backward"),o||function(t,e){const n=t.model;for(;e;){if(n.schema.isObject(e))return n.createRangeOn(e);e=e.parent}}(t,l.parent))):function(t,e){const n=t.model,i=n.schema,r=n.createPositionAt(e,0);return i.getNearestSelectionRange(r,"forward")}(t,a)}function oh(t){return Tr.isGecko?t.dropEffect:["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function sh(t,e){let n;function i(...r){i.cancel(),n=setTimeout((()=>t(...r)),e)}return i.cancel=()=>{clearTimeout(n)},i}function ah(t){if(t.is("editableElement"))return null;if(t.hasClass("ck-widget__selection-handle"))return t.findAncestor(Od);if(Od(t))return t;const e=t.findAncestor((t=>Od(t)||t.is("editableElement")));return Od(e)?e:null}class lh extends Jt{static get pluginName(){return"PastePlainText"}static get requires(){return[yd]}init(){const t=this.editor,e=t.model,n=t.editing.view,i=n.document,r=e.document.selection;let o=!1;n.addObserver(_d),this.listenTo(i,"keydown",((t,e)=>{o=e.shiftKey})),t.plugins.get(yd).on("contentInsertion",((t,n)=>{(o||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);return!e.isObject(n)&&0==[...n.getAttributeKeys()].length}(n.content,e.schema))&&e.change((t=>{const i=Array.from(r.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));r.isCollapsed||e.deleteContent(r,{doNotAutoparagraph:!0}),i.push(...r.getAttributes());const o=t.createRangeIn(n.content);for(const e of o.getItems())e.is("$textProxy")&&t.setAttributes(i,e)}))}))}}class ch extends Jt{static get pluginName(){return"Clipboard"}static get requires(){return[yd,ih,lh]}}class uh extends Kt{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n){const i=n.isCollapsed,r=n.getFirstRange(),o=r.start.parent,s=r.end.parent,a=o==s;if(i){const i=wd(t.schema,n.getAttributes());dh(t,e,r.end),e.removeSelectionAttribute(n.getAttributeKeys()),e.setSelectionAttribute(i)}else{const i=!(r.start.isAtStart&&r.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:i}),a?dh(t,e,n.focus):i&&e.setSelection(s,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})}))}refresh(){const t=this.editor.model,e=t.document;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const i=e.getFirstRange(),r=i.start.parent,o=i.end.parent;return!hh(r,t)&&!hh(o,t)||r===o}(t.schema,e.selection)}}function dh(t,e,n){const i=e.createElement("softBreak");t.insertContent(i,n),e.setSelection(i,"after")}function hh(t,e){return!t.is("rootElement")&&(e.isLimit(t)||hh(t.parent,e))}class fh extends Jt{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.model.schema,n=t.conversion,i=t.editing.view,r=i.document;e.register("softBreak",{allowWhere:"$text",isInline:!0}),n.for("upcast").elementToElement({model:"softBreak",view:"br"}),n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")}),i.addObserver(Md),t.commands.add("shiftEnter",new uh(t)),this.listenTo(r,"enter",((e,n)=>{n.preventDefault(),n.isSoft&&(t.execute("shiftEnter"),i.scrollToTheSelection())}),{priority:"low"})}}class ph extends Kt{execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!mh(t.schema,n))do{if(n=n.parent,!n)return}while(!mh(t.schema,n));t.change((t=>{t.setSelection(n,"in")}))}}function mh(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const gh=Or("Ctrl+A");class bh extends Jt{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.editing.view.document;t.commands.add("selectAll",new ph(t)),this.listenTo(e,"keydown",((e,n)=>{Yr(n)===gh&&(t.execute("selectAll"),n.preventDefault())}))}}class _h extends Jt{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(e=>{const n=t.commands.get("selectAll"),i=new tu(e),r=e.t;return i.set({label:r("Select all"),icon:'',keystroke:"Ctrl+A",tooltip:!0}),i.bind("isOn","isEnabled").to(n,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),i}))}}class vh extends Jt{static get requires(){return[bh,_h]}static get pluginName(){return"SelectAll"}}class yh extends Kt{constructor(t,e){super(t),this._buffer=new Ld(t.model,e),this._batches=new WeakSet}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,i=t.text||"",r=i.length,o=t.range?e.createSelection(t.range):n.selection,s=t.resultRange;e.enqueueChange(this._buffer.batch,(t=>{this._buffer.lock(),this._batches.add(this._buffer.batch),e.deleteContent(o),i&&e.insertContent(t.createText(i,n.selection.getAttributes()),o),s?t.setSelection(s):o.is("documentSelection")||t.setSelection(o),this._buffer.unlock(),this._buffer.input(r)}))}}function wh(t){if(t.newChildren.length-t.oldChildren.length!=1)return;const e=function(t,e){const n=[];let i,r=0;return t.forEach((t=>{"equal"==t?(o(),r++):"insert"==t?(s("insert")?i.values.push(e[r]):(o(),i={type:"insert",index:r,values:[e[r]]}),r++):s("delete")?i.howMany++:(o(),i={type:"delete",index:r,howMany:1})})),o(),n;function o(){i&&(n.push(i),i=null)}function s(t){return i&&i.type==t}}(fo(t.oldChildren,t.newChildren,xh),t.newChildren);if(e.length>1)return;const n=e[0];return n.values[0]&&n.values[0].is("$text")?n:void 0}function xh(t,e){return t&&t.is("$text")&&e&&e.is("$text")?t.data===e.data:t===e}class kh{constructor(t){this.editor=t,this.editing=this.editor.editing}handle(t,e){if(function(t){if(0==t.length)return!1;for(const e of t)if("children"===e.type&&!wh(e))return!0;return!1}(t))this._handleContainerChildrenMutations(t,e);else for(const n of t)this._handleTextMutation(n,e),this._handleTextNodeInsertion(n)}_handleContainerChildrenMutations(t,e){const n=function(t){const e=t.map((t=>t.node)).reduce(((t,e)=>t.getCommonAncestor(e,{includeSelf:!0})));if(e)return e.getAncestors({includeSelf:!0,parentFirst:!0}).find((t=>t.is("containerElement")||t.is("rootElement")))}(t);if(!n)return;const i=this.editor.editing.view.domConverter.mapViewToDom(n),r=new Ao(this.editor.editing.view.document),o=this.editor.data.toModel(r.domToView(i)).getChild(0),s=this.editor.editing.mapper.toModelElement(n);if(!s)return;const a=Array.from(o.getChildren()),l=Array.from(s.getChildren()),c=a[a.length-1],u=l[l.length-1],d=c&&c.is("element","softBreak"),h=u&&!u.is("element","softBreak");d&&h&&a.pop();const f=this.editor.model.schema;if(!Mh(a,f)||!Mh(l,f))return;const p=a.map((t=>t.is("$text")?t.data:"@")).join("").replace(/\u00A0/g," "),m=l.map((t=>t.is("$text")?t.data:"@")).join("").replace(/\u00A0/g," ");if(m===p)return;const g=fo(m,p),{firstChangeAt:b,insertions:_,deletions:v}=Sh(g);let y=null;e&&(y=this.editing.mapper.toModelRange(e.getFirstRange()));const w=p.substr(b,_),x=this.editor.model.createRange(this.editor.model.createPositionAt(s,b),this.editor.model.createPositionAt(s,b+v));this.editor.execute("input",{text:w,range:x,resultRange:y})}_handleTextMutation(t,e){if("text"!=t.type)return;const n=t.newText.replace(/\u00A0/g," "),i=t.oldText.replace(/\u00A0/g," ");if(i===n)return;const r=fo(i,n),{firstChangeAt:o,insertions:s,deletions:a}=Sh(r);let l=null;e&&(l=this.editing.mapper.toModelRange(e.getFirstRange()));const c=this.editing.view.createPositionAt(t.node,o),u=this.editing.mapper.toModelPosition(c),d=this.editor.model.createRange(u,u.getShiftedBy(a)),h=n.substr(o,s);this.editor.execute("input",{text:h,range:d,resultRange:l})}_handleTextNodeInsertion(t){if("children"!=t.type)return;const e=wh(t),n=this.editing.view.createPositionAt(t.node,e.index),i=this.editing.mapper.toModelPosition(n),r=e.values[0].data;this.editor.execute("input",{text:r.replace(/\u00A0/g," "),range:this.editor.model.createRange(i)})}}function Mh(t,e){return t.every((t=>e.isInline(t)))}function Sh(t){let e=null,n=null;for(let i=0;i{n.deleteContent(n.document.selection)})),t.unlock()}Tr.isAndroid?i.document.on("beforeinput",((t,e)=>o(e)),{priority:"lowest"}):i.document.on("keydown",((t,e)=>o(e)),{priority:"lowest"}),i.document.on("compositionstart",(function(){const t=n.document,e=1!==t.selection.rangeCount||t.selection.getFirstRange().isFlat;t.selection.isCollapsed||e||s()}),{priority:"lowest"}),i.document.on("compositionend",(()=>{e=n.createSelection(n.document.selection)}),{priority:"lowest"})}(t),function(t){t.editing.view.document.on("mutations",((e,n,i)=>{new kh(t).handle(n,i)}))}(t)}isInput(t){return this.editor.commands.get("input")._batches.has(t)}}class Ah extends Jt{static get requires(){return[Lh,Cd]}static get pluginName(){return"Typing"}}function Th(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,i)=>i.is("$text")||i.is("$textProxy")?t+i.data:(n=e.createPositionAfter(i),"")),""),range:e.createRange(n,t.end)}}class Ch{constructor(t,e){this.model=t,this.testCallback=e,this.hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(t.document.selection),this.stopListening(t.document))})),this._startListening()}_startListening(){const t=this.model.document;this.listenTo(t.selection,"change:range",((e,{directChange:n})=>{n&&(t.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this.hasMatch=!1))})),this.listenTo(t,"change:data",((t,e)=>{"transparent"!=e.type&&this._evaluateTextBeforeSelection("data",{batch:e})}))}_evaluateTextBeforeSelection(t,e={}){const n=this.model,i=n.document.selection,r=n.createRange(n.createPositionAt(i.focus.parent,0),i.focus),{text:o,range:s}=Th(r,n),a=this.testCallback(o);if(!a&&this.hasMatch&&this.fire("unmatched"),this.hasMatch=!!a,a){const n=Object.assign(e,{text:o,range:s});"object"==typeof a&&Object.assign(n,a),this.fire("matched:"+t,n)}}}Gt(Ch,Vt);class Dh extends Jt{static get pluginName(){return"TwoStepCaretMovement"}constructor(t){super(t),this.attributes=new Set,this._overrideUid=null}init(){const t=this.editor,e=t.model,n=t.editing.view,i=t.locale,r=e.document.selection;this.listenTo(n.document,"arrowKey",((t,e)=>{if(!r.isCollapsed)return;if(e.shiftKey||e.altKey||e.ctrlKey)return;const n=e.keyCode==Er.arrowright,o=e.keyCode==Er.arrowleft;if(!n&&!o)return;const s=i.contentLanguageDirection;let a=!1;a="ltr"===s&&n||"rtl"===s&&o?this._handleForwardMovement(e):this._handleBackwardMovement(e),!0===a&&t.stop()}),{context:"$text",priority:"highest"}),this._isNextGravityRestorationSkipped=!1,this.listenTo(r,"change:range",((t,e)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!e.directChange&&Oh(r.getFirstPosition(),this.attributes)||this._restoreGravity())}))}registerAttribute(t){this.attributes.add(t)}_handleForwardMovement(t){const e=this.attributes,n=this.editor.model.document.selection,i=n.getFirstPosition();return!this._isGravityOverridden&&(!i.isAtStart||!Eh(n,e))&&(Oh(i,e)?(Yh(t),this._overrideGravity(),!0):void 0)}_handleBackwardMovement(t){const e=this.attributes,n=this.editor.model,i=n.document.selection,r=i.getFirstPosition();return this._isGravityOverridden?(Yh(t),this._restoreGravity(),Ph(n,e,r),!0):r.isAtStart?!!Eh(i,e)&&(Yh(t),Ph(n,e,r),!0):function(t,e){return Oh(t.getShiftedBy(-1),e)}(r,e)?r.isAtEnd&&!Eh(i,e)&&Oh(r,e)?(Yh(t),Ph(n,e,r),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1):void 0}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((t=>t.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((t=>{t.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function Eh(t,e){for(const n of e)if(t.hasAttribute(n))return!0;return!1}function Ph(t,e,n){const i=n.nodeBefore;t.change((t=>{i?t.setSelectionAttribute(i.getAttributes()):t.removeSelectionAttribute(e)}))}function Yh(t){t.preventDefault()}function Oh(t,e){const{nodeBefore:n,nodeAfter:i}=t;for(const t of e){const e=n?n.getAttribute(t):void 0;if((i?i.getAttribute(t):void 0)!==e)return!0}return!1}var Ih=/[\\^$.*+?()[\]{}|]/g,Rh=RegExp(Ih.source),Nh=function(t){return(t=Di(t))&&Rh.test(t)?t.replace(Ih,"\\$&"):t};const jh={copyright:{from:"(c)",to:"©"},registeredTrademark:{from:"(r)",to:"®"},trademark:{from:"(tm)",to:"™"},oneHalf:{from:"1/2",to:"½"},oneThird:{from:"1/3",to:"⅓"},twoThirds:{from:"2/3",to:"⅔"},oneForth:{from:"1/4",to:"¼"},threeQuarters:{from:"3/4",to:"¾"},lessThanOrEqual:{from:"<=",to:"≤"},greaterThanOrEqual:{from:">=",to:"≥"},notEqual:{from:"!=",to:"≠"},arrowLeft:{from:"<-",to:"←"},arrowRight:{from:"->",to:"→"},horizontalEllipsis:{from:"...",to:"…"},enDash:{from:/(^| )(--)( )$/,to:[null,"–",null]},emDash:{from:/(^| )(---)( )$/,to:[null,"—",null]},quotesPrimary:{from:Wh('"'),to:[null,"“",null,"”"]},quotesSecondary:{from:Wh("'"),to:[null,"‘",null,"’"]},quotesPrimaryEnGb:{from:Wh("'"),to:[null,"‘",null,"’"]},quotesSecondaryEnGb:{from:Wh('"'),to:[null,"“",null,"”"]},quotesPrimaryPl:{from:Wh('"'),to:[null,"„",null,"”"]},quotesSecondaryPl:{from:Wh("'"),to:[null,"‚",null,"’"]}},zh={symbols:["copyright","registeredTrademark","trademark"],mathematical:["oneHalf","oneThird","twoThirds","oneForth","threeQuarters","lessThanOrEqual","greaterThanOrEqual","notEqual","arrowLeft","arrowRight"],typography:["horizontalEllipsis","enDash","emDash"],quotes:["quotesPrimary","quotesSecondary"]},Hh=["symbols","mathematical","typography","quotes"];function Fh(t){return"string"==typeof t?new RegExp(`(${Nh(t)})$`):t}function Bh(t){return"string"==typeof t?()=>[t]:t instanceof Array?()=>t:t}function Vh(t){return(t.textNode?t.textNode:t.nodeAfter).getAttributes()}function Wh(t){return new RegExp(`(^|\\s)(${t})([^${t}]*)(${t})$`)}function Uh(t,e,n,i){return i.createRange(Xh(t,e,n,!0,i),Xh(t,e,n,!1,i))}function Xh(t,e,n,i,r){let o=t.textNode||(i?t.nodeBefore:t.nodeAfter),s=null;for(;o&&o.getAttribute(e)==n;)s=o,o=i?o.previousSibling:o.nextSibling;return s?r.createPositionAt(s,i?"before":"after"):t}class $h extends Kt{constructor(t){super(t),this._stack=[],this._createdBatches=new WeakSet,this.refresh(),this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];n.batchType||(n.batchType="transparent")}),{priority:"high"}),this.listenTo(t.data,"set",((t,e)=>{"transparent"===e[1].batchType&&this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const i=this.editor.model,r=i.document,o=[],s=t.map((t=>t.getTransformedByOperations(n))),a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=r.graveyard)).filter((t=>!Gh(t,a)));e.length&&(qh(e),o.push(e[0]))}o.length&&i.change((t=>{t.setSelection(o,{backward:e})}))}_undo(t,e){const n=this.editor.model,i=n.document;this._createdBatches.add(e);const r=t.operations.slice().filter((t=>t.isDocumentOperation));r.reverse();for(const t of r){const r=t.baseVersion+1,o=Array.from(i.history.getOperations(r)),s=rd([t.getReversed()],o,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(const r of s)e.addOperation(r),n.applyOperation(r),i.history.setOperationAsUndone(t,r)}}}function qh(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,!0)))}class Jh extends $h{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1,n=this._stack.splice(e,1)[0],i=this.editor.model.createBatch("transparent");this.editor.model.enqueueChange(i,(()=>{this._undo(n.batch,i);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t),this.fire("revert",n.batch,i)})),this.refresh()}}class Zh extends $h{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch("transparent");this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,i=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,i),this._undo(t.batch,e)})),this.refresh()}}class Kh extends Jt{static get pluginName(){return"UndoEditing"}constructor(t){super(t),this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new Jh(t),this._redoCommand=new Zh(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const i=n.batch,r=this._redoCommand._createdBatches.has(i),o=this._undoCommand._createdBatches.has(i);this._batchRegistry.has(i)||"transparent"==i.type&&!r&&!o||(r?this._undoCommand.addBatch(i):o||(this._undoCommand.addBatch(i),this._redoCommand.clearStack()),this._batchRegistry.add(i))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)})),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo")}}var Qh='',tf='';class ef extends Jt{static get pluginName(){return"UndoUI"}init(){const t=this.editor,e=t.locale,n=t.t,i="ltr"==e.uiLanguageDirection?Qh:tf,r="ltr"==e.uiLanguageDirection?tf:Qh;this._addButton("undo",n("Undo"),"CTRL+Z",i),this._addButton("redo",n("Redo"),"CTRL+Y",r)}_addButton(t,e,n,i){const r=this.editor;r.ui.componentFactory.add(t,(o=>{const s=r.commands.get(t),a=new tu(o);return a.set({label:e,icon:i,keystroke:n,tooltip:!0}),a.bind("isEnabled").to(s,"isEnabled"),this.listenTo(a,"execute",(()=>{r.execute(t),r.editing.view.focus()})),a}))}}class nf extends Jt{static get requires(){return[Kh,ef]}static get pluginName(){return"Undo"}}class rf{constructor(){const t=new window.FileReader;this._reader=t,this._data=void 0,this.set("loaded",0),t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;return this.total=t.size,new Promise(((n,i)=>{e.onload=()=>{const t=e.result;this._data=t,n(t)},e.onerror=()=>{i("error")},e.onabort=()=>{i("aborted")},this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}Gt(rf,Vt);class of extends Jt{static get pluginName(){return"FileRepository"}static get requires(){return[Sc]}init(){this.loaders=new Qn,this.loaders.on("add",(()=>this._updatePendingAction())),this.loaders.on("remove",(()=>this._updatePendingAction())),this._loadersMap=new Map,this._pendingAction=null,this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter)return Object(l.b)("filerepository-no-upload-adapter"),null;const e=new sf(Promise.resolve(t),this.createUploadAdapter);return this.loaders.add(e),this._loadersMap.set(t,e),t instanceof Promise&&e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{})),e.on("change:uploaded",(()=>{let t=0;for(const e of this.loaders)t+=e.uploaded;this.uploaded=t})),e.on("change:uploadTotal",(()=>{let t=0;for(const e of this.loaders)e.uploadTotal&&(t+=e.uploadTotal);this.uploadTotal=t})),e}destroyLoader(t){const e=t instanceof sf?t:this.getLoader(t);e._destroy(),this.loaders.remove(e),this._loadersMap.forEach(((t,n)=>{t===e&&this._loadersMap.delete(n)}))}_updatePendingAction(){const t=this.editor.plugins.get(Sc);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t,n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else t.remove(this._pendingAction),this._pendingAction=null}}Gt(of,Vt);class sf{constructor(t,e){this.id=s(),this._filePromiseWrapper=this._createFilePromiseWrapper(t),this._adapter=e(this),this._reader=new rf,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new l.a("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((t=>this._reader.read(t))).then((t=>{if("reading"!==this.status)throw this.status;return this.status="idle",t})).catch((t=>{if("aborted"===t)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:t}))}upload(){if("idle"!=this.status)throw new l.a("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>this._adapter.upload())).then((t=>(this.uploadResponse=t,this.status="idle",t))).catch((t=>{if("aborted"===this.status)throw"aborted";throw this.status="error",t}))}abort(){const t=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==t?this._reader.abort():"uploading"==t&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(t){const e={};return e.promise=new Promise(((n,i)=>{e.rejecter=i,e.isFulfilled=!1,t.then((t=>{e.isFulfilled=!0,n(t)})).catch((t=>{e.isFulfilled=!0,i(t)}))})),e}}Gt(sf,Vt);class af extends Ec{constructor(t){super(t),this.buttonView=new tu(t),this._fileInputView=new lf(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",(()=>{this._fileInputView.open()}))}focus(){this.buttonView.focus()}}class lf extends Ec{constructor(t){super(t),this.set("acceptedType"),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}function cf(){let t=function(t){t=t.toLowerCase();const e=document.cookie.split(";");for(const n of e){const e=n.split("=");if(decodeURIComponent(e[0].trim().toLowerCase())===t)return decodeURIComponent(e[1])}return null}("ckCsrfToken");var e,n;return t&&40==t.length||(t=function(t){let e="";const n=new Uint8Array(40);window.crypto.getRandomValues(n);for(let t=0;t.5?i.toUpperCase():i}return e}(),e="ckCsrfToken",n=t,document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(n)+";path=/"),t}class uf{constructor(t,e,n){this.loader=t,this.url=e,this.t=n}upload(){return this.loader.file.then((t=>new Promise(((e,n)=>{this._initRequest(),this._initListeners(e,n,t),this._sendRequest(t)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.url,!0),t.responseType="json"}_initListeners(t,e,n){const i=this.xhr,r=this.loader,o=(0,this.t)("Cannot upload file:")+` ${n.name}.`;i.addEventListener("error",(()=>e(o))),i.addEventListener("abort",(()=>e())),i.addEventListener("load",(()=>{const n=i.response;if(!n||!n.uploaded)return e(n&&n.error&&n.error.message?n.error.message:o);t({default:n.url})})),i.upload&&i.upload.addEventListener("progress",(t=>{t.lengthComputable&&(r.uploadTotal=t.total,r.uploaded=t.loaded)}))}_sendRequest(t){const e=new FormData;e.append("upload",t),e.append("ckCsrfToken",cf()),this.xhr.send(e)}}function df(t,e,n,i){let r,o=null;"function"==typeof i?r=i:(o=t.commands.get(i),r=()=>{t.execute(i)}),t.model.document.on("change:data",((s,a)=>{if(o&&!o.isEnabled||!e.isEnabled)return;const l=Ps(t.model.document.selection.getRanges());if(!l.isCollapsed)return;if("transparent"==a.type)return;const c=Array.from(t.model.document.differ.getChanges()),u=c[0];if(1!=c.length||"insert"!==u.type||"$text"!=u.name||1!=u.length)return;const d=u.position.parent;if(d.is("element","codeBlock"))return;if(d.is("element","listItem")&&"function"!=typeof i&&!["numberedList","bulletedList","todoList"].includes(i))return;if(o&&!0===o.value)return;const h=d.getChild(0),f=t.model.createRangeOn(h);if(!f.containsRange(l)&&!l.end.isEqual(f.end))return;const p=n.exec(h.data.substr(0,l.end.offset));p&&t.model.enqueueChange((e=>{const n=e.createPositionAt(d,0),i=e.createPositionAt(d,p[0].length),o=new ba(n,i);if(!1!==r({match:p})){e.remove(o);const n=t.model.document.selection.getFirstRange(),i=e.createRangeIn(d);!d.isEmpty||i.isEqual(n)||i.containsRange(n,!0)||e.remove(d)}o.detach()}))}))}function hf(t,e,n,i){let r,o;n instanceof RegExp?r=n:o=n,o=o||(t=>{let e;const n=[],i=[];for(;null!==(e=r.exec(t))&&!(e&&e.length<4);){let{index:t,1:r,2:o,3:s}=e;const a=r+o+s;t+=e[0].length-a.length;const l=[t,t+r.length],c=[t+r.length+o.length,t+r.length+o.length+s.length];n.push(l),n.push(c),i.push([t+r.length,t+r.length+o.length])}return{remove:n,format:i}}),t.model.document.on("change:data",((n,r)=>{if("transparent"==r.type||!e.isEnabled)return;const s=t.model,a=s.document.selection;if(!a.isCollapsed)return;const l=Array.from(s.document.differ.getChanges()),c=l[0];if(1!=l.length||"insert"!==c.type||"$text"!=c.name||1!=c.length)return;const u=a.focus,d=u.parent,{text:h,range:f}=function(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,i)=>!i.is("$text")&&!i.is("$textProxy")||i.getAttribute("code")?(n=e.createPositionAfter(i),""):t+i.data),""),range:e.createRange(n,t.end)}}(s.createRange(s.createPositionAt(d,0),u),s),p=o(h),m=ff(f.start,p.format,s),g=ff(f.start,p.remove,s);m.length&&g.length&&s.enqueueChange((t=>{if(!1!==i(t,m))for(const e of g.reverse())t.remove(e)}))}))}function ff(t,e,n){return e.filter((t=>void 0!==t[0]&&void 0!==t[1])).map((e=>n.createRange(t.getShiftedBy(e[0]),t.getShiftedBy(e[1]))))}function pf(t,e){return(n,i)=>{if(!t.commands.get(e).isEnabled)return!1;const r=t.model.schema.getValidRanges(i,e);for(const t of r)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}class mf extends Kt{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,i=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(n.isCollapsed)i?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const r=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of r)i?t.setAttribute(this.attributeKey,i,e):t.removeAttribute(this.attributeKey,e)}}))}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const t of n.getRanges())for(const n of t.getItems())if(e.checkAttribute(n,this.attributeKey))return n.hasAttribute(this.attributeKey);return!1}}class gf extends Jt{static get pluginName(){return"BoldEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"bold"}),t.model.schema.setAttributeProperties("bold",{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:"bold",view:"strong",upcastAlso:["b",t=>{const e=t.getStyle("font-weight");return e?"bold"==e||Number(e)>=600?{name:!0,styles:["font-weight"]}:void 0:null}]}),t.commands.add("bold",new mf(t,"bold")),t.keystrokes.set("CTRL+B","bold")}}class bf extends Jt{static get pluginName(){return"BoldUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("bold",(n=>{const i=t.commands.get("bold"),r=new tu(n);return r.set({label:e("Bold"),icon:'',keystroke:"CTRL+B",tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(r,"execute",(()=>{t.execute("bold"),t.editing.view.focus()})),r}))}}class _f extends Jt{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"italic"}),t.model.schema.setAttributeProperties("italic",{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:"italic",view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add("italic",new mf(t,"italic")),t.keystrokes.set("CTRL+I","italic")}}class vf extends Jt{static get pluginName(){return"ItalicUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("italic",(n=>{const i=t.commands.get("italic"),r=new tu(n);return r.set({label:e("Italic"),icon:'',keystroke:"CTRL+I",tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(r,"execute",(()=>{t.execute("italic"),t.editing.view.focus()})),r}))}}class yf extends Kt{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,i=e.document.selection,r=Array.from(i.getSelectedBlocks()),o=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(o){const e=r.filter((t=>wf(t)||kf(n,t)));this._applyQuote(t,e)}else this._removeQuote(t,r.filter(wf))}))}_getValue(){const t=Ps(this.editor.model.document.selection.getSelectedBlocks());return!(!t||!wf(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.document.selection,e=this.editor.model.schema,n=Ps(t.getSelectedBlocks());return!!n&&kf(e,n)}_removeQuote(t,e){xf(t,e).reverse().forEach((e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)}))}_applyQuote(t,e){const n=[];xf(t,e).reverse().forEach((e=>{let i=wf(e.start);i||(i=t.createElement("blockQuote"),t.wrap(e,i)),n.push(i)})),n.reverse().reduce(((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n))}}function wf(t){return"blockQuote"==t.parent.name?t.parent:null}function xf(t,e){let n,i=0;const r=[];for(;i{const i=t.model.document.differ.getChanges();for(const t of i)if("insert"==t.type){const i=t.position.nodeAfter;if(!i)continue;if(i.is("element","blockQuote")&&i.isEmpty)return n.remove(i),!0;if(i.is("element","blockQuote")&&!e.checkChild(t.position,i))return n.unwrap(i),!0;if(i.is("element")){const t=n.createRangeIn(i);for(const i of t.getItems())if(i.is("element","blockQuote")&&!e.checkChild(n.createPositionBefore(i),i))return n.unwrap(i),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("element","blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1}));const n=this.editor.editing.view.document,i=t.model.document.selection,r=t.commands.get("blockQuote");this.listenTo(n,"enter",((e,n)=>{i.isCollapsed&&r.value&&i.getLastPosition().parent.isEmpty&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"}),this.listenTo(n,"delete",((e,n)=>{if("backward"!=n.direction||!i.isCollapsed||!r.value)return;const o=i.getLastPosition().parent;o.isEmpty&&!o.previousSibling&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"})}}n(69);class Sf extends Jt{static get pluginName(){return"BlockQuoteUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("blockQuote",(n=>{const i=t.commands.get("blockQuote"),r=new tu(n);return r.set({label:e("Block quote"),icon:Lc.quote,tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(r,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),r}))}}class Lf extends Jt{static get pluginName(){return"CKFinderUI"}init(){const t=this.editor,e=t.ui.componentFactory,n=t.t;e.add("ckfinder",(e=>{const i=t.commands.get("ckfinder"),r=new tu(e);return r.set({label:n("Insert image or file"),icon:'',tooltip:!0}),r.bind("isEnabled").to(i),r.on("execute",(()=>{t.execute("ckfinder"),t.editing.view.focus()})),r}))}}class Af extends Kt{constructor(t){super(t),this.stopListening(this.editor.model.document,"change"),this.listenTo(this.editor.model.document,"change",(()=>this.refresh()),{priority:"low"})}refresh(){const t=this.editor.commands.get("insertImage"),e=this.editor.commands.get("link");this.isEnabled=t.isEnabled||e.isEnabled}execute(){const t=this.editor,e=this.editor.config.get("ckfinder.openerMethod")||"modal";if("popup"!=e&&"modal"!=e)throw new l.a("ckfinder-unknown-openermethod",t);const n=this.editor.config.get("ckfinder.options")||{};n.chooseFiles=!0;const i=n.onInit;n.language||(n.language=t.locale.uiLanguage),n.onInit=e=>{i&&i(e),e.on("files:choose",(n=>{const i=n.data.files.toArray(),r=i.filter((t=>!t.isImage())),o=i.filter((t=>t.isImage()));for(const e of r)t.execute("link",e.getUrl());const s=[];for(const t of o){const n=t.getUrl();s.push(n||e.request("file:getProxyUrl",{file:t}))}s.length&&Tf(t,s)})),e.on("file:choose:resizedImage",(e=>{const n=e.data.resizedUrl;if(n)Tf(t,[n]);else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("Could not obtain resized image URL."),{title:n("Selecting resized image failed"),namespace:"ckfinder"})}}))},window.CKFinder[e](n)}}function Tf(t,e){if(t.commands.get("insertImage").isEnabled)t.execute("insertImage",{source:e});else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("Could not insert image at the current position."),{title:n("Inserting image failed"),namespace:"ckfinder"})}}class Cf extends Jt{static get pluginName(){return"CKFinderEditing"}static get requires(){return[Ou,"LinkEditing"]}init(){const t=this.editor;if(!t.plugins.has("ImageBlockEditing")&&!t.plugins.has("ImageInlineEditing"))throw new l.a("ckfinder-missing-image-plugin",t);t.commands.add("ckfinder",new Af(t))}}class Df extends Jt{static get pluginName(){return"CloudServicesUploadAdapter"}static get requires(){return["CloudServices",of]}init(){const t=this.editor,e=t.plugins.get("CloudServices"),n=e.token,i=e.uploadUrl;n&&(this._uploadGateway=t.plugins.get("CloudServicesCore").createUploadGateway(n,i),t.plugins.get(of).createUploadAdapter=t=>new Ef(this._uploadGateway,t))}}class Ef{constructor(t,e){this.uploadGateway=t,this.loader=e}upload(){return this.loader.file.then((t=>(this.fileUploader=this.uploadGateway.upload(t),this.fileUploader.on("progress",((t,e)=>{this.loader.uploadTotal=e.total,this.loader.uploaded=e.uploaded})),this.fileUploader.send())))}abort(){this.fileUploader.abort()}}class Pf extends Kt{refresh(){const t=this.editor.model,e=Ps(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&Yf(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document;e.change((i=>{const r=(t.selection||n.selection).getSelectedBlocks();for(const t of r)!t.is("element","paragraph")&&Yf(t,e.schema)&&i.rename(t,"paragraph")}))}}function Yf(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class Of extends Kt{execute(t){const e=this.editor.model;let n=t.position;e.change((t=>{const i=t.createElement("paragraph");if(!e.schema.checkChild(n.parent,i)){const r=e.schema.findAllowedParent(n,i);if(!r)return;n=t.split(n,r).position}e.insertContent(i,n),t.setSelection(i,"in")}))}}class If extends Jt{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new Pf(t)),t.commands.add("insertParagraph",new Of(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>If.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}If.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class Rf extends Kt{constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Ps(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some((e=>Nf(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model,n=e.document,i=t.value;e.change((t=>{const r=Array.from(n.selection.getSelectedBlocks()).filter((t=>Nf(t,i,e.schema)));for(const e of r)e.is("element",i)||t.rename(e,i)}))}}function Nf(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}class jf extends Jt{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[If]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const i of e)"paragraph"!==i.model&&(t.model.schema.register(i.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(i),n.push(i.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new Rf(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",((e,i)=>{const r=t.model.document.selection.getFirstPosition().parent;n.some((t=>r.is("element",t.model)))&&!r.is("element","paragraph")&&0===r.childCount&&i.writer.rename(r,"paragraph")}))}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:a.get("low")+1})}}n(13);class zf extends Jt{static get pluginName(){return"HeadingUI"}init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t}))}(t),i=e("Choose heading"),r=e("Heading");t.ui.componentFactory.add("heading",(e=>{const o={},s=new Qn,a=t.commands.get("heading"),l=t.commands.get("paragraph"),c=[a];for(const t of n){const e={type:"button",model:new Iu({label:t.title,class:t.class,withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(l,"value"),e.model.set("commandName","paragraph"),c.push(l)):(e.model.bind("isOn").to(a,"value",(e=>e===t.model)),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),o[t.model]=t.title}const u=ku(e);return Su(u,s),u.buttonView.set({isOn:!1,withText:!0,tooltip:r}),u.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),u.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some((t=>t)))),u.buttonView.bind("label").to(a,"value",l,"value",((t,e)=>{const n=t||e&&"paragraph";return o[n]?o[n]:i})),this.listenTo(u,"execute",(e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:void 0),t.editing.view.focus()})),u}))}}class Hf extends Jt{static get requires(){return[Vu]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{(function(t){const e=t.getSelectedElement();return!(!e||!Od(e))})(t.editing.view.document.selection)&&e.stop()}),{priority:"high"})}this._toolbarDefinitions=new Map,this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:i,balloonClassName:r="ck-toolbar-container"}){if(!n.length)return void Object(l.b)("widget-toolbar-no-items",{toolbarId:t});const o=this.editor,s=o.t,a=new gu(o.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new l.a("widget-toolbar-duplicated",this,{toolbarId:t});a.fillFromConfig(n,o.ui.componentFactory),this._toolbarDefinitions.set(t,{view:a,getRelatedElement:i,balloonClassName:r})}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const i of this._toolbarDefinitions.values()){const r=i.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&r)if(this.editor.ui.focusTracker.isFocused){const o=r.getAncestors().length;o>t&&(t=o,e=r,n=i)}else this._isToolbarVisible(i)&&this._hideToolbar(i);else this._isToolbarInBalloon(i)&&this._hideToolbar(i)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?Ff(this.editor,e):this._isToolbarInBalloon(t)||(this._balloon.add({view:t.view,position:Bf(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);Ff(this.editor,e)}})))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function Ff(t,e){const n=t.plugins.get("ContextualBalloon"),i=Bf(t,e);n.updatePosition(i)}function Bf(t,e){const n=t.editing.view,i=ju.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[i.northArrowSouth,i.northArrowSouthWest,i.northArrowSouthEast,i.southArrowNorth,i.southArrowNorthWest,i.southArrowNorthEast,Bd]}}class Vf{constructor(t){this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=t,this._referenceCoordinates=null}begin(t,e,n){const i=new Ls(e);this.activeHandlePosition=function(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e)if(t.classList.contains("ck-widget__resizer__handle-"+n))return n}(t),this._referenceCoordinates=function(t,e){const n=new Ls(t),i=e.split("-"),r={x:"right"==i[1]?n.right:n.left,y:"bottom"==i[0]?n.bottom:n.top};return r.x+=t.ownerDocument.defaultView.scrollX,r.y+=t.ownerDocument.defaultView.scrollY,r}(e,function(t){const e=t.split("-"),n={top:"bottom",bottom:"top",left:"right",right:"left"};return`${n[e[0]]}-${n[e[1]]}`}(this.activeHandlePosition)),this.originalWidth=i.width,this.originalHeight=i.height,this.aspectRatio=i.width/i.height;const r=n.style.width;r&&r.match(/^\d+(\.\d*)?%$/)?this.originalWidthPercents=parseFloat(r):this.originalWidthPercents=function(t,e){const n=t.parentElement,i=parseFloat(n.ownerDocument.defaultView.getComputedStyle(n).width);return e.width/i*100}(n,i)}update(t){this.proposedWidth=t.width,this.proposedHeight=t.height,this.proposedWidthPercents=t.widthPercents,this.proposedHandleHostWidth=t.handleHostWidth,this.proposedHandleHostHeight=t.handleHostHeight}}Gt(Vf,Vt);class Wf extends Ec{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("_viewPosition",(t=>t?"ck-orientation-"+t:""))],style:{display:t.if("_isVisible","none",(t=>!t))}},children:[{text:t.to("_label")}]})}_bindToState(t,e){this.bind("_isVisible").to(e,"proposedWidth",e,"proposedHeight",((t,e)=>null!==t&&null!==e)),this.bind("_label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",((e,n,i)=>"px"===t.unit?`${e}×${n}`:i+"%")),this.bind("_viewPosition").to(e,"activeHandlePosition",e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",((t,e,n)=>e<50||n<50?"above-center":t))}_dismiss(){this.unbind(),this._isVisible=!1}}class Uf{constructor(t){this._options=t,this._viewResizerWrapper=null,this.set("isEnabled",!0),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(t=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),t.stop())}),{priority:"high"}),this.on("change:isEnabled",(()=>{this.isEnabled&&this.redraw()}))}attach(){const t=this,e=this._options.viewElement;this._options.editor.editing.view.change((n=>{const i=n.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const n=this.toDomElement(e);return t._appendHandles(n),t._appendSizeUI(n),t.on("change:isEnabled",((t,e,i)=>{n.style.display=i?"":"none"})),n.style.display=t.isEnabled?"":"none",n}));n.insert(n.createPositionAt(e,"end"),i),n.addClass("ck-widget_with-resizer",e),this._viewResizerWrapper=i}))}begin(t){this.state=new Vf(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);this._options.editor.editing.view.change((t=>{const n=this._options.unit||"%",i=("%"===n?e.widthPercents:e.width)+n;t.setStyle("width",i,this._options.viewElement)}));const n=this._getHandleHost(),i=new Ls(n);e.handleHostWidth=Math.round(i.width),e.handleHostHeight=Math.round(i.height);const r=new Ls(n);e.width=Math.round(r.width),e.height=Math.round(r.height),this.redraw(i),this.state.update(e)}commit(){const t=this._options.unit||"%",e=("%"===t?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(e)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;if(!((n=e)&&n.ownerDocument&&n.ownerDocument.contains(n)))return;var n;const i=e.parentElement,r=this._getHandleHost(),o=this._viewResizerWrapper,s=[o.getStyle("width"),o.getStyle("height"),o.getStyle("left"),o.getStyle("top")];let a;if(i.isSameNode(r)){const e=t||new Ls(r);a=[e.width+"px",e.height+"px",void 0,void 0]}else a=[r.offsetWidth+"px",r.offsetHeight+"px",r.offsetLeft+"px",r.offsetTop+"px"];"same"!==li(s,a)&&this._options.editor.editing.view.change((t=>{t.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},o)}))}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss(),this._options.editor.editing.view.change((t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(t){const e=this.state,n={x:(i=t).pageX,y:i.pageY};var i;const r=!this._options.isCentered||this._options.isCentered(this),o={x:e._referenceCoordinates.x-(n.x+e.originalWidth),y:n.y-e.originalHeight-e._referenceCoordinates.y};r&&e.activeHandlePosition.endsWith("-right")&&(o.x=n.x-(e._referenceCoordinates.x+e.originalWidth)),r&&(o.x*=2);const s={width:Math.abs(e.originalWidth+o.x),height:Math.abs(e.originalHeight+o.y)};s.dominant=s.width/e.aspectRatio>s.height?"width":"height",s.max=s[s.dominant];const a={width:s.width,height:s.height};return"width"==s.dominant?a.height=a.width/e.aspectRatio:a.width=a.height*e.aspectRatio,{width:Math.round(a.width),height:Math.round(a.height),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*a.width*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const i of e)t.appendChild(new Pc({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(n=i,"ck-widget__resizer__handle-"+n)}}).render());var n}_appendSizeUI(t){this._sizeView=new Wf,this._sizeView.render(),t.appendChild(this._sizeView.element)}}Gt(Uf,Vt),n(72),Gt(class extends Jt{static get pluginName(){return"WidgetResize"}init(){const t=this.editor.editing,e=wo.window.document;this.set("visibleResizer",null),this.set("_activeResizer",null),this._resizers=new Map,t.view.addObserver(hd),this._observer=Object.create(Eo),this.listenTo(t.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(e,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(e,"mouseup",this._mouseUpListener.bind(this));const n=()=>{this.visibleResizer&&this.visibleResizer.redraw()};this._redrawFocusedResizerThrottled=nh(n,200),this.on("change:visibleResizer",n),this.editor.ui.on("update",this._redrawFocusedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[t,e]of this._resizers)t.isAttached()||(this._resizers.delete(t),e.destroy())}),{priority:"lowest"}),this._observer.listenTo(wo.window,"resize",this._redrawFocusedResizerThrottled);const i=this.editor.editing.view.document.selection;i.on("change",(()=>{const t=i.getSelectedElement();this.visibleResizer=this.getResizerByViewElement(t)||null}))}destroy(){this._observer.stopListening();for(const t of this._resizers.values())t.destroy();this._redrawFocusedResizerThrottled.cancel()}attachTo(t){const e=new Uf(t),n=this.editor.plugins;if(e.attach(),n.has("WidgetToolbarRepository")){const t=n.get("WidgetToolbarRepository");e.on("begin",(()=>{t.forceDisabled("resize")}),{priority:"lowest"}),e.on("cancel",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"}),e.on("commit",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(t.viewElement,e);const i=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(i)==e&&(this.visibleResizer=e),e}getResizerByViewElement(t){return this._resizers.get(t)}_getResizerByHandle(t){for(const e of this._resizers.values())if(e.containsHandle(t))return e}_mouseDownListener(t,e){const n=e.domTarget;Uf.isResizeHandle(n)&&(this._activeResizer=this._getResizerByHandle(n),this._activeResizer&&(this._activeResizer.begin(n),t.stop(),e.preventDefault()))}_mouseMoveListener(t,e){this._activeResizer&&this._activeResizer.updateSize(e)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}},Vt);class Xf extends Kt{refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor,n=e.plugins.get("ImageUtils"),i=e.model,r=n.getClosestSelectedImageElement(i.document.selection);i.change((e=>{e.setAttribute("alt",t.newValue,r)}))}}function $f(t,e){const n=t.createEmptyElement("img"),i="imageBlock"===e?t.createContainerElement("figure",{class:"image"}):t.createContainerElement("span",{class:"image-inline"},{isAllowedInsideAttributeElement:!0});return t.insert(t.createPositionAt(i,0),n),i}function qf(t,e){if(t.plugins.has("ImageInlineEditing")!==t.plugins.has("ImageBlockEditing"))return{name:"img",attributes:{src:!0}};const n=t.plugins.get("ImageUtils");return t=>n.isInlineImageView(t)&&t.hasAttribute("src")?(t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline")!==e?null:{name:!0,attributes:["src"]}:null}function Gf(t,e){const n=Ps(e.getSelectedBlocks());return!n||t.isObject(n)||n.isEmpty&&"listItem"!=n.name?"imageBlock":"imageInline"}class Jf extends Jt{static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null){const i=this.editor,r=i.model,o=r.document.selection;n=Zf(i,e||o,n),t={...Object.fromEntries(o.getAttributes()),...t};for(const e in t)r.schema.checkAttribute(n,e)||delete t[e];return r.change((i=>{const s=i.createElement(n,t);return e||"imageInline"==n||(e=Fd(o,r)),r.insertContent(s,e),s.parent?(i.setSelection(s,"on"),s):null}))}getClosestSelectedImageWidget(t){const e=t.getSelectedElement();if(e&&this.isImageWidget(e))return e;let n=t.getFirstPosition().parent;for(;n;){if(n.is("element")&&this.isImageWidget(n))return n;n=n.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}isImageAllowed(){const t=this.editor.model.document.selection;return function(t,e){if("imageBlock"==Zf(t,e)){const n=function(t,e){const n=Fd(t,e).start.parent;return n.isEmpty&&!n.is("element","$root")?n.parent:n}(e,t.model);if(t.model.schema.checkChild(n,"imageBlock"))return!0}else if(t.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}(this.editor,t)&&function(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}(t)}toImageWidget(t,e,n){return e.setCustomProperty("image",!0,t),Id(t,e,{label:()=>{const e=this.findViewImgElement(t).getAttribute("alt");return e?`${e} ${n}`:n}})}isImageWidget(t){return!!t.getCustomProperty("image")&&Od(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t))return t;const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t))if(this.isInlineImageView(n))return n}}function Zf(t,e,n){const i=t.model.schema,r=t.config.get("image.insert.type");return t.plugins.has("ImageBlockEditing")?t.plugins.has("ImageInlineEditing")?n||("inline"===r?"imageInline":"block"===r?"imageBlock":e.is("selection")?Gf(i,e):i.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}class Kf extends Jt{static get requires(){return[Jf]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Xf(this.editor))}}n(74),n(7);class Qf extends Ec{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new Ys,this.keystrokes=new Os,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),Lc.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Lc.cancel,"ck-button-cancel","cancel"),this._focusables=new Dc,this._focusCycler=new nu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),Tc(this)}render(){super.render(),this.keystrokes.listenTo(this.element),Cc({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}_createButton(t,e,n,i){const r=new tu(this.locale);return r.set({label:t,icon:e,tooltip:!0}),r.extendTemplate({attributes:{class:n}}),i&&r.delegate("execute").to(this,i),r}_createLabeledInputView(){const t=this.locale.t,e=new Pu(this.locale,Yu);return e.label=t("Text alternative"),e}}function tp(t){const e=t.editing.view,n=ju.defaultPositions,i=t.plugins.get("ImageUtils");return{target:e.domConverter.viewToDom(i.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast]}}class ep extends Jt{static get requires(){return[Vu]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const i=t.commands.get("imageTextAlternative"),r=new tu(n);return r.set({label:e("Change image text alternative"),icon:Lc.lowVision,tooltip:!0}),r.bind("isEnabled").to(i,"isEnabled"),this.listenTo(r,"execute",(()=>{this._showForm()})),r}))}_createForm(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new Qf(t.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),this.listenTo(t.ui,"update",(()=>{n.getClosestSelectedImageWidget(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=tp(t);e.updatePosition(n)}}(t):this._hideForm(!0)})),Ac({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:tp(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class np extends Jt{static get requires(){return[Kf,ep]}static get pluginName(){return"ImageTextAlternative"}}function ip(t,e){return t=>{t.on("attribute:srcset:"+e,n)};function n(e,n,i){if(!i.consumable.consume(n.item,e.name))return;const r=i.writer,o=i.mapper.toViewElement(n.item),s=t.findViewImgElement(o);if(null===n.attributeNewValue){const t=n.attributeOldValue;t.data&&(r.removeAttribute("srcset",s),r.removeAttribute("sizes",s),t.width&&r.removeAttribute("width",s))}else{const t=n.attributeNewValue;t.data&&(r.setAttribute("srcset",t.data,s),r.setAttribute("sizes","100vw",s),t.width&&r.setAttribute("width",t.width,s))}}}function rp(t,e,n){return t=>{t.on(`attribute:${n}:${e}`,i)};function i(e,n,i){if(!i.consumable.consume(n.item,e.name))return;const r=i.writer,o=i.mapper.toViewElement(n.item),s=t.findViewImgElement(o);r.setAttribute(n.attributeKey,n.attributeNewValue||"",s)}}class op extends Oo{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)}),{useCapture:!0})}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class sp extends Kt{constructor(t){super(t);const e=t.config.get("image.insert.type");t.plugins.has("ImageBlockEditing")||"block"===e&&Object(l.b)("image-block-plugin-required"),t.plugins.has("ImageInlineEditing")||"inline"===e&&Object(l.b)("image-inline-plugin-required")}refresh(){this.isEnabled=this.editor.plugins.get("ImageUtils").isImageAllowed()}execute(t){const e=ei(t.source),n=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),r=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const o=n.getSelectedElement();if("string"==typeof t&&(t={src:t}),e&&o&&i.isImage(o)){const e=this.editor.model.createPositionAfter(o);i.insertImage({...t,...r},e)}else i.insertImage({...t,...r})}))}}class ap extends Jt{static get requires(){return[Jf]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.conversion;t.editing.view.addObserver(op),e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:{key:"srcset",value:t=>{const e={data:t.getAttribute("srcset")};return t.hasAttribute("width")&&(e.width=t.getAttribute("width")),e}}});const n=new sp(t);t.commands.add("insertImage",n),t.commands.add("imageInsert",n)}}class lp extends Kt{constructor(t,e){super(t),this._modelElementName=e}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=t.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=t.isInlineImage(e):this.isEnabled=t.isBlockImage(e)}execute(){const t=this.editor,e=this.editor.model,n=t.plugins.get("ImageUtils"),i=n.getClosestSelectedImageElement(e.document.selection),r=Object.fromEntries(i.getAttributes());return r.src||r.uploadId?e.change((t=>{const o=Array.from(e.markers).filter((t=>t.getRange().containsItem(i))),s=n.insertImage(r,e.createSelection(i,"on"),this._modelElementName);if(!s)return null;const a=t.createRangeOn(s);for(const e of o){const n=e.getRange(),i="$graveyard"!=n.root.rootName?n.getJoined(a,!0):a;t.updateMarker(e,{range:i})}return{oldElement:i,newElement:s}})):null}}class cp extends Jt{static get requires(){return[ap,Jf,yd]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;t.model.schema.register("imageBlock",{isObject:!0,isBlock:!0,allowWhere:"$block",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),t.plugins.has("ImageInlineEditing")&&(t.commands.add("imageTypeBlock",new lp(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,i=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageBlock",view:(t,{writer:e})=>$f(e,"imageBlock")}),n.for("editingDowncast").elementToElement({model:"imageBlock",view:(t,{writer:n})=>i.toImageWidget($f(n,"imageBlock"),n,e("image widget"))}),n.for("downcast").add(rp(i,"imageBlock","src")).add(rp(i,"imageBlock","alt")).add(ip(i,"imageBlock")),n.for("upcast").elementToElement({view:qf(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",{src:t.getAttribute("src")})}).add(function(t){return t=>{t.on("element:figure",e)};function e(e,n,i){if(!i.consumable.test(n.viewItem,{name:!0,classes:"image"}))return;const r=t.findViewImgElement(n.viewItem);if(!r||!r.hasAttribute("src")||!i.consumable.test(r,{name:!0}))return;const o=Ps(i.convertItem(r,n.modelCursor).modelRange.getItems());o&&(i.convertChildren(n.viewItem,o),i.updateConversionResult(o,n))}}(i))}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,i=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((r,o)=>{const s=Array.from(o.content.getChildren());let a;if(!s.every(i.isInlineImageView))return;a=o.targetRanges?t.editing.mapper.toModelRange(o.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageBlock"===Gf(e.schema,l)){const t=new fd(n.document),e=s.map((e=>t.createElement("figure",{class:"image"},e)));o.content=t.createDocumentFragment(e)}}))}}n(11);class up extends Jt{static get requires(){return[cp,th,np]}static get pluginName(){return"ImageBlock"}}class dp extends Jt{static get requires(){return[ap,Jf,yd]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor,e=t.model.schema;e.register("imageInline",{isObject:!0,isInline:!0,allowWhere:"$text",allowAttributes:["alt","src","srcset"]}),e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&"imageInline"===e.name)return!1})),this._setupConversion(),t.plugins.has("ImageBlockEditing")&&(t.commands.add("imageTypeInline",new lp(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,i=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")}),n.for("editingDowncast").elementToElement({model:"imageInline",view:(t,{writer:n})=>i.toImageWidget($f(n,"imageInline"),n,e("image widget"))}),n.for("downcast").add(rp(i,"imageInline","src")).add(rp(i,"imageInline","alt")).add(ip(i,"imageInline")),n.for("upcast").elementToElement({view:qf(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",{src:t.getAttribute("src")})})}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,i=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((r,o)=>{const s=Array.from(o.content.getChildren());let a;if(!s.every(i.isBlockImageView))return;a=o.targetRanges?t.editing.mapper.toModelRange(o.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageInline"===Gf(e.schema,l)){const t=new fd(n.document),e=s.map((e=>1===e.childCount?(Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,i.findViewImgElement(e)))),e.getChild(0)):e));o.content=t.createDocumentFragment(e)}}))}}class hp extends Jt{static get requires(){return[dp,th,np]}static get pluginName(){return"ImageInline"}}function fp(t){for(const e of t.getChildren())if(e&&e.is("element","caption"))return e;return null}function pp(t,e){const n=e.getFirstPosition().findAncestor("caption");return n&&t.isBlockImage(n.parent)?n:null}class mp extends Kt{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils");if(!t.plugins.has(cp))return this.isEnabled=!1,void(this.value=!1);const n=t.model.document.selection,i=n.getSelectedElement();if(!i){const t=pp(e,n);return this.isEnabled=!!t,void(this.value=!!t)}this.isEnabled=this.editor.plugins.get("ImageUtils").isImage(i),this.isEnabled?this.value=!!fp(i):this.value=!1}execute(t={}){const{focusCaptionOnShow:e}=t;this.editor.model.change((t=>{this.value?this._hideImageCaption(t):this._showImageCaption(t,e)}))}_showImageCaption(t,e){const n=this.editor.model.document.selection,i=this.editor.plugins.get("ImageCaptionEditing");let r=n.getSelectedElement();const o=i._getSavedCaption(r);this.editor.plugins.get("ImageUtils").isInlineImage(r)&&(this.editor.execute("imageTypeBlock"),r=n.getSelectedElement());const s=o||t.createElement("caption");t.append(s,r),e&&t.setSelection(s,"in")}_hideImageCaption(t){const e=this.editor,n=e.model.document.selection,i=e.plugins.get("ImageCaptionEditing"),r=e.plugins.get("ImageUtils");let o,s=n.getSelectedElement();s?o=fp(s):(o=pp(r,n),s=o.parent),i._saveCaption(s,o),t.setSelection(s,"on"),t.remove(o)}}class gp extends Jt{static get requires(){return[Jf]}static get pluginName(){return"ImageCaptionEditing"}constructor(t){super(t),this._savedCaptionsMap=new WeakMap}init(){const t=this.editor,e=t.model.schema;e.isRegistered("caption")?e.extend("caption",{allowIn:"imageBlock"}):e.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),t.commands.add("toggleImageCaption",new mp(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration()}_setupConversion(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils"),i=t.t;t.conversion.for("upcast").elementToElement({view:t=>function(t,e){return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}(n,t),model:"caption"}),t.conversion.for("dataDowncast").elementToElement({model:"caption",view:(t,{writer:e})=>n.isBlockImage(t.parent)?e.createContainerElement("figcaption"):null}),t.conversion.for("editingDowncast").elementToElement({model:"caption",view:(t,{writer:r})=>{if(!n.isBlockImage(t.parent))return null;const o=r.createEditableElement("figcaption");r.setCustomProperty("imageCaption",!0,o),Gu({view:e,element:o,text:i("Enter image caption"),keepOnFocus:!0});const s=Hd(o,r);return jd(s,r,((t,e,n)=>n.addClass(ei(e.classes),t)),((t,e,n)=>n.removeClass(ei(e.classes),t))),s}}),t.editing.mapper.on("modelToViewPosition",bp(e)),t.data.mapper.on("modelToViewPosition",bp(e))}_setupImageTypeCommandsIntegration(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.commands.get("imageTypeInline"),i=t.commands.get("imageTypeBlock"),r=t=>{if(!t.return)return;const{oldElement:n,newElement:i}=t.return;if(!n)return;if(e.isBlockImage(n)){const t=fp(n);if(t)return void this._saveCaption(i,t)}const r=this._getSavedCaption(n);r&&this._saveCaption(i,r)};n&&this.listenTo(n,"execute",r,{priority:"low"}),i&&this.listenTo(i,"execute",r,{priority:"low"})}_getSavedCaption(t){const e=this._savedCaptionsMap.get(t);return e?Zs.fromJSON(e):null}_saveCaption(t,e){this._savedCaptionsMap.set(t,e.toJSON())}}function bp(t){return(e,n)=>{const i=n.modelPosition,r=i.parent;if(!r.is("element","imageBlock"))return;const o=n.mapper.toViewElement(r);n.viewPosition=t.createPositionAt(o,i.offset+1)}}class _p extends Jt{static get requires(){return[Jf]}static get pluginName(){return"ImageCaptionUI"}init(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils"),i=t.t;t.ui.componentFactory.add("toggleImageCaption",(r=>{const o=t.commands.get("toggleImageCaption"),s=new tu(r);return s.set({icon:Lc.caption,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(o,"value","isEnabled"),s.bind("label").to(o,"value",(t=>i(t?"Toggle caption off":"Toggle caption on"))),this.listenTo(s,"execute",(()=>{t.execute("toggleImageCaption",{focusCaptionOnShow:!0});const i=pp(n,t.model.document.selection);if(i){const n=t.editing.mapper.toViewElement(i);e.scrollToTheSelection(),e.change((t=>{t.addClass("image__caption_highlighted",n)}))}})),s}))}}n(78);class vp extends Kt{constructor(t,e){super(t),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(e.map((t=>{if(t.isDefault)for(const e of t.modelElements)this._defaultStyles[e]=t.name;return[t.name,t]})))}refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled?t.hasAttribute("imageStyle")?this.value=t.getAttribute("imageStyle"):this.value=this._defaultStyles[t.name]:this.value=!1}execute(t={}){const e=this.editor,n=e.model,i=e.plugins.get("ImageUtils");n.change((e=>{const r=t.value;let o=i.getClosestSelectedImageElement(n.document.selection);r&&this.shouldConvertImageType(r,o)&&(this.editor.execute(i.isBlockImage(o)?"imageTypeInline":"imageTypeBlock"),o=i.getClosestSelectedImageElement(n.document.selection)),!r||this._styles.get(r).isDefault?e.removeAttribute("imageStyle",o):e.setAttribute("imageStyle",r,o)}))}shouldConvertImageType(t,e){return!this._styles.get(t).modelElements.includes(e.name)}}const{objectFullWidth:yp,objectInline:wp,objectLeft:xp,objectRight:kp,objectCenter:Mp,objectBlockLeft:Sp,objectBlockRight:Lp}=Lc,Ap={inline:{name:"inline",title:"In line",icon:wp,modelElements:["imageInline"],isDefault:!0},alignLeft:{name:"alignLeft",title:"Left aligned image",icon:xp,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"},alignBlockLeft:{name:"alignBlockLeft",title:"Left aligned image",icon:Sp,modelElements:["imageBlock"],className:"image-style-block-align-left"},alignCenter:{name:"alignCenter",title:"Centered image",icon:Mp,modelElements:["imageBlock"],className:"image-style-align-center"},alignRight:{name:"alignRight",title:"Right aligned image",icon:kp,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"},alignBlockRight:{name:"alignBlockRight",title:"Right aligned image",icon:Lp,modelElements:["imageBlock"],className:"image-style-block-align-right"},block:{name:"block",title:"Centered image",icon:Mp,modelElements:["imageBlock"],isDefault:!0},side:{name:"side",title:"Side image",icon:kp,modelElements:["imageBlock"],className:"image-style-side"}},Tp={full:yp,left:Sp,right:Lp,center:Mp,inlineLeft:xp,inlineRight:kp,inline:wp},Cp=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Dp(t){Object(l.b)("image-style-configuration-definition-invalid",t)}var Ep={normalizeStyles:function(t){return(t.configuredStyles.options||[]).map((t=>function(t){return"string"==typeof(t="string"==typeof t?Ap[t]?{...Ap[t]}:{name:t}:function(t,e){const n={...e};for(const i in t)Object.prototype.hasOwnProperty.call(e,i)||(n[i]=t[i]);return n}(Ap[t.name],t)).icon&&(t.icon=Tp[t.icon]||t.icon),t}(t))).filter((e=>function(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:i,name:r}=t;if(!(i&&i.length&&r))return Dp({style:t}),!1;{const r=[e?"imageBlock":null,n?"imageInline":null];if(!i.some((t=>r.includes(t))))return Object(l.b)("image-style-missing-dependency",{style:t,missingPlugins:i.map((t=>"imageBlock"===t?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(e,t)))},getDefaultStylesConfiguration:function(t,e){return t&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:t?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(t){return t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")?[...Cp]:[]},warnInvalidStyle:Dp,DEFAULT_OPTIONS:Ap,DEFAULT_ICONS:Tp,DEFAULT_DROPDOWN_DEFINITIONS:Cp};function Pp(t,e){for(const n of e)if(n.name===t)return n}class Yp extends Jt{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[Jf]}init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=Ep,n=this.editor,i=n.plugins.has("ImageBlockEditing"),r=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(i,r)),this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:i,isInlinePluginLoaded:r}),this._setupConversion(i,r),this._setupPostFixer(),n.commands.add("imageStyle",new vp(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor,i=n.model.schema,r=(o=this.normalizedStyles,(t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const i=Pp(e.attributeNewValue,o),r=Pp(e.attributeOldValue,o),s=n.mapper.toViewElement(e.item),a=n.writer;r&&a.removeClass(r.className,s),i&&a.addClass(i.className,s)});var o;const s=function(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,i)=>{if(!n.modelRange)return;const r=n.viewItem,o=Ps(n.modelRange.getItems());if(o&&i.schema.checkAttribute(o,"imageStyle"))for(const t of e[o.name])i.consumable.consume(r,{classes:t.className})&&i.writer.setAttribute("imageStyle",t.name,o)}}(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",r),n.data.downcastDispatcher.on("attribute:imageStyle",r),t&&(i.extend("imageBlock",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),e&&(i.extend("imageInline",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const t=this.editor,e=t.model.document,n=t.plugins.get(Jf),i=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let r=!1;for(const o of e.differ.getChanges())if("insert"==o.type||"attribute"==o.type&&"imageStyle"==o.attributeKey){let e="insert"==o.type?o.position.nodeAfter:o.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0&&(e=e.getChild(0)),!n.isImage(e))continue;const s=e.getAttribute("imageStyle");if(!s)continue;const a=i.get(s);a&&a.modelElements.includes(e.name)||(t.removeAttribute("imageStyle",e),r=!0)}return r}))}}n(80);class Op extends Jt{static get requires(){return[Yp]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins,e=this.editor.config.get("image.toolbar")||[],n=Ip(t.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const t of n)this._createButton(t);const i=Ip([...e.filter(v),...Ep.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of i)this._createDropdown(t,n)}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(i=>{let r;const{defaultItem:o,items:s,title:a}=t,l=s.filter((t=>e.find((({name:e})=>Rp(e)===t)))).map((t=>{const e=n.create(t);return t===o&&(r=e),e}));s.length!==l.length&&Ep.warnInvalidStyle({dropdown:t});const c=ku(i,su),u=c.buttonView;return Mu(c,l),u.set({label:Np(a,r.label),class:null,tooltip:!0}),u.bind("icon").toMany(l,"isOn",((...t)=>{const e=t.findIndex(K);return e<0?r.icon:l[e].icon})),u.bind("label").toMany(l,"isOn",((...t)=>{const e=t.findIndex(K);return Np(a,e<0?r.label:l[e].label)})),u.bind("isOn").toMany(l,"isOn",((...t)=>t.some(K))),u.bind("class").toMany(l,"isOn",((...t)=>t.some(K)?"ck-splitbutton_flatten":null)),u.on("execute",(()=>{l.some((({isOn:t})=>t))?c.isOpen=!c.isOpen:r.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some(K))),c}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add(Rp(e),(n=>{const i=this.editor.commands.get("imageStyle"),r=new tu(n);return r.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),r.bind("isEnabled").to(i,"isEnabled"),r.bind("isOn").to(i,"value",(t=>t===e)),r.on("execute",this._executeCommand.bind(this,e)),r}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t}),this.editor.editing.view.focus()}}function Ip(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}function Rp(t){return"imageStyle:"+t}function Np(t,e){return(t?t+": ":"")+e}function jp(t){const e=t.map((t=>t.replace("+","\\+")));return new RegExp(`^image\\/(${e.join("|")})$`)}function zp(t){return new Promise(((e,n)=>{const i=t.getAttribute("src");fetch(i).then((t=>t.blob())).then((t=>{const n=Hp(t,i),r=n.replace("image/",""),o=new File([t],"image."+r,{type:n});e(o)})).catch((t=>t&&"TypeError"===t.name?function(t){return function(t){return new Promise(((e,n)=>{const i=wo.document.createElement("img");i.addEventListener("load",(()=>{const t=wo.document.createElement("canvas");t.width=i.width,t.height=i.height,t.getContext("2d").drawImage(i,0,0),t.toBlob((t=>t?e(t):n()))})),i.addEventListener("error",(()=>n())),i.src=t}))}(t).then((e=>{const n=Hp(e,t),i=n.replace("image/","");return new File([e],"image."+i,{type:n})}))}(i).then(e).catch(n):n(t)))}))}function Hp(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class Fp extends Jt{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor,e=t.t,n=n=>{const i=new af(n),r=t.commands.get("uploadImage"),o=t.config.get("image.upload.types"),s=jp(o);return i.set({acceptedType:o.map((t=>"image/"+t)).join(","),allowMultipleFiles:!0}),i.buttonView.set({label:e("Insert image"),icon:Lc.image,tooltip:!0}),i.buttonView.bind("isEnabled").to(r),i.on("done",((e,n)=>{const i=Array.from(n).filter((t=>s.test(t.type)));i.length&&t.execute("uploadImage",{file:i})})),i};t.ui.componentFactory.add("uploadImage",n),t.ui.componentFactory.add("imageUpload",n)}}n(82),n(84),n(86);class Bp extends Jt{static get pluginName(){return"ImageUploadProgress"}constructor(t){super(t),this.placeholder="data:image/svg+xml;utf8,"+encodeURIComponent('')}init(){const t=this.editor;t.plugins.has("ImageBlockEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",((...t)=>this.uploadStatusChange(...t))),t.plugins.has("ImageInlineEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",((...t)=>this.uploadStatusChange(...t)))}uploadStatusChange(t,e,n){const i=this.editor,r=e.item,o=r.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name))return;const s=i.plugins.get("ImageUtils"),a=i.plugins.get(of),l=o?e.attributeNewValue:null,c=this.placeholder,u=i.editing.mapper.toViewElement(r),d=n.writer;if("reading"==l)return Vp(u,d),void Wp(s,c,u,d);if("uploading"==l){const t=a.loaders.get(o);return Vp(u,d),void(t?(Up(u,d),function(t,e,n,i){const r=function(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});return t.setCustomProperty("progressBar",!0,e),e}(e);e.insert(e.createPositionAt(t,"end"),r),n.on("change:uploadedPercent",((t,e,n)=>{i.change((t=>{t.setStyle("width",n+"%",r)}))}))}(u,d,t,i.editing.view),function(t,e,n,i){if(i.data){const r=t.findViewImgElement(e);n.setAttribute("src",i.data,r)}}(s,u,d,t)):Wp(s,c,u,d))}"complete"==l&&a.loaders.get(o)&&function(t,e,n){const i=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),i),setTimeout((()=>{n.change((t=>t.remove(t.createRangeOn(i))))}),3e3)}(u,d,i.editing.view),function(t,e){$p(t,e,"progressBar")}(u,d),Up(u,d),function(t,e){e.removeClass("ck-appear",t)}(u,d)}}function Vp(t,e){t.hasClass("ck-appear")||e.addClass("ck-appear",t)}function Wp(t,e,n,i){n.hasClass("ck-image-upload-placeholder")||i.addClass("ck-image-upload-placeholder",n);const r=t.findViewImgElement(n);r.getAttribute("src")!==e&&i.setAttribute("src",e,r),Xp(n,"placeholder")||i.insert(i.createPositionAfter(r),function(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});return t.setCustomProperty("placeholder",!0,e),e}(i))}function Up(t,e){t.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",t),$p(t,e,"placeholder")}function Xp(t,e){for(const n of t.getChildren())if(n.getCustomProperty(e))return n}function $p(t,e,n){const i=Xp(t,n);i&&e.remove(e.createRangeOn(i))}class qp extends Kt{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.model.document.selection.getSelectedElement();this.isEnabled=e.isImageAllowed()||e.isImage(n)}execute(t){const e=ei(t.file),n=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),r=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const o=n.getSelectedElement();if(e&&o&&i.isImage(o)){const e=this.editor.model.createPositionAfter(o);this._uploadImage(t,r,e)}else this._uploadImage(t,r)}))}_uploadImage(t,e,n){const i=this.editor,r=i.plugins.get(of).createLoader(t),o=i.plugins.get("ImageUtils");r&&o.insertImage({...e,uploadId:r.id},n)}}class Gp extends Jt{static get requires(){return[of,Ou,yd,Jf]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t),t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const t=this.editor,e=t.model.document,n=t.conversion,i=t.plugins.get(of),r=t.plugins.get("ImageUtils"),o=jp(t.config.get("image.upload.types")),s=new qp(t);t.commands.add("uploadImage",s),t.commands.add("imageUpload",s),n.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",((e,n)=>{if(i=n.dataTransfer,Array.from(i.types).includes("text/html")&&""!==i.getData("text/html"))return;var i;const r=Array.from(n.dataTransfer.files).filter((t=>!!t&&o.test(t.type)));r.length&&(e.stop(),t.model.change((e=>{n.targetRanges&&e.setSelection(n.targetRanges.map((e=>t.editing.mapper.toModelRange(e)))),t.model.enqueueChange("default",(()=>{t.execute("uploadImage",{file:r})}))})))})),this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((e,n)=>{const o=Array.from(t.editing.view.createRangeIn(n.content)).filter((t=>function(t,e){return!(!t.isInlineImageView(e)||!e.getAttribute("src"))&&(e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||e.getAttribute("src").match(/^blob:/g))}(r,t.item)&&!t.item.getAttribute("uploadProcessed"))).map((t=>({promise:zp(t.item),imageElement:t.item})));if(!o.length)return;const s=new fd(t.editing.view.document);for(const t of o){s.setAttribute("uploadProcessed",!0,t.imageElement);const e=i.createLoader(t.promise);e&&(s.setAttribute("src","",t.imageElement),s.setAttribute("uploadId",e.id,t.imageElement))}})),t.editing.view.document.on("dragover",((t,e)=>{e.preventDefault()})),e.on("change",(()=>{const n=e.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),r=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name){const n=e.position.nodeAfter,o="$graveyard"==e.position.root.rootName;for(const e of Jp(t,n)){const t=e.getAttribute("uploadId");if(!t)continue;const n=i.loaders.get(t);n&&(o?r.has(t)||n.abort():(r.add(t),this._uploadImageElements.set(t,e),"idle"==n.status&&this._readAndUpload(n)))}}})),this.on("uploadComplete",((t,{imageElement:e,data:n})=>{const i=n.urls?n.urls:n;this.editor.model.change((t=>{t.setAttribute("src",i.default,e),this._parseAndSetSrcsetAttributeOnImage(i,e,t)}))}),{priority:"low"})}afterInit(){const t=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&t.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this.editor.plugins.has("ImageInlineEditing")&&t.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(t){const e=this.editor,n=e.model,i=e.locale.t,r=e.plugins.get(of),o=e.plugins.get(Ou),s=e.plugins.get("ImageUtils"),a=this._uploadImageElements;return n.enqueueChange("transparent",(e=>{e.setAttribute("uploadStatus","reading",a.get(t.id))})),t.read().then((()=>{const i=t.upload(),r=a.get(t.id);if(Tr.isSafari){const t=e.editing.mapper.toViewElement(r),n=s.findViewImgElement(t);e.editing.view.once("render",(()=>{if(!n.parent)return;const t=e.editing.view.domConverter.mapViewToDom(n.parent);if(!t)return;const i=t.style.display;t.style.display="none",t._ckHack=t.offsetHeight,t.style.display=i}))}return n.enqueueChange("transparent",(t=>{t.setAttribute("uploadStatus","uploading",r)})),i})).then((e=>{n.enqueueChange("transparent",(n=>{const i=a.get(t.id);n.setAttribute("uploadStatus","complete",i),this.fire("uploadComplete",{data:e,imageElement:i})})),l()})).catch((e=>{if("error"!==t.status&&"aborted"!==t.status)throw e;"error"==t.status&&e&&o.showWarning(e,{title:i("Upload failed"),namespace:"upload"}),n.enqueueChange("transparent",(e=>{e.remove(a.get(t.id))})),l()}));function l(){n.enqueueChange("transparent",(e=>{const n=a.get(t.id);e.removeAttribute("uploadId",n),e.removeAttribute("uploadStatus",n),a.delete(t.id)})),r.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let i=0;const r=Object.keys(t).filter((t=>{const e=parseInt(t,10);if(!isNaN(e))return i=Math.max(i,e),!0})).map((e=>`${t[e]} ${e}w`)).join(", ");""!=r&&n.setAttribute("srcset",{data:r,width:i},e)}}function Jp(t,e){const n=t.plugins.get("ImageUtils");return Array.from(t.model.createRangeOn(e)).filter((t=>n.isImage(t.item))).map((t=>t.item))}class Zp extends Jt{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new te(t)),t.commands.add("outdent",new te(t))}}var Kp='',Qp='';class tm extends Jt{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,i="ltr"==e.uiLanguageDirection?Kp:Qp,r="ltr"==e.uiLanguageDirection?Qp:Kp;this._defineButton("indent",n("Increase indent"),i),this._defineButton("outdent",n("Decrease indent"),r)}_defineButton(t,e,n){const i=this.editor;i.ui.componentFactory.add(t,(r=>{const o=i.commands.get(t),s=new tu(r);return s.set({label:e,icon:n,tooltip:!0}),s.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(s,"execute",(()=>{i.execute(t),i.editing.view.focus()})),s}))}}class em{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){Array.isArray(t)?t.forEach((t=>this._definitions.add(t))):this._definitions.add(t)}getDispatcher(){return t=>{t.on("attribute:linkHref",((t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref"))return;const i=n.writer,r=i.document.selection;for(const t of this._definitions){const o=i.createAttributeElement("a",t.attributes,{priority:5});t.classes&&i.addClass(t.classes,o);for(const e in t.styles)i.setStyle(e,t.styles[e],o);i.setCustomProperty("link",!0,o),t.callback(e.attributeNewValue)?e.item.is("selection")?i.wrap(r.getFirstRange(),o):i.wrap(n.mapper.toViewRange(e.range),o):i.unwrap(n.mapper.toViewRange(e.range),o)}}),{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:imageBlock",((t,e,{writer:n,mapper:i})=>{const r=i.toViewElement(e.item),o=Array.from(r.getChildren()).find((t=>"a"===t.name));for(const t of this._definitions){const i=fi(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of i)"class"===t?n.addClass(e,o):n.setAttribute(t,e,o);t.classes&&n.addClass(t.classes,o);for(const e in t.styles)n.setStyle(e,t.styles[e],o)}else{for(const[t,e]of i)"class"===t?n.removeClass(e,o):n.removeAttribute(t,o);t.classes&&n.removeClass(t.classes,o);for(const e in t.styles)n.removeStyle(e,o)}}}))}}}var nm=function(t,e,n){var i=t.length;return n=void 0===n?i:n,!e&&n>=i?t:Ii(t,e,n)},im=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),rm=function(t){return im.test(t)},om=function(t){return t.split("")},sm="[\\ud800-\\udfff]",am="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",lm="\\ud83c[\\udffb-\\udfff]",cm="[^\\ud800-\\udfff]",um="(?:\\ud83c[\\udde6-\\uddff]){2}",dm="[\\ud800-\\udbff][\\udc00-\\udfff]",hm="(?:"+am+"|"+lm+")?",fm="[\\ufe0e\\ufe0f]?"+hm+"(?:\\u200d(?:"+[cm,um,dm].join("|")+")[\\ufe0e\\ufe0f]?"+hm+")*",pm="(?:"+[cm+am+"?",am,um,dm,sm].join("|")+")",mm=RegExp(lm+"(?="+lm+")|"+pm+fm,"g"),gm=function(t){return t.match(mm)||[]},bm=function(t){return rm(t)?gm(t):om(t)},_m=function(t){return function(e){e=Di(e);var n=rm(e)?bm(e):void 0,i=n?n[0]:e.charAt(0),r=n?nm(n,1).join(""):e.slice(1);return i[t]()+r}}("toUpperCase");const vm=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,ym=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,wm=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,xm=/^((\w+:(\/{2,})?)|(\W))/i;function km(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,n),n}function Mm(t){return function(t){return t.replace(vm,"").match(ym)}(t=String(t))?t:"#"}function Sm(t,e){return!!t&&e.checkAttribute(t.name,"linkHref")}function Lm(t,e){const n=(i=t,wm.test(i)?"mailto:":e);var i;const r=!!n&&!xm.test(t);return t&&r?n+t:t}class Am extends Kt{constructor(t){super(t),this.manualDecorators=new Qn,this.automaticDecorators=new em}restoreManualDecoratorStates(){for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement()||Ps(e.getSelectedBlocks());Sm(n,t.schema)?(this.value=n.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttribute(n,"linkHref")):(this.value=e.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref"));for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}execute(t,e={}){const n=this.editor.model,i=n.document.selection,r=[],o=[];for(const t in e)e[t]?r.push(t):o.push(t);n.change((e=>{if(i.isCollapsed){const s=i.getFirstPosition();if(i.hasAttribute("linkHref")){const a=Uh(s,"linkHref",i.getAttribute("linkHref"),n);e.setAttribute("linkHref",t,a),r.forEach((t=>{e.setAttribute(t,!0,a)})),o.forEach((t=>{e.removeAttribute(t,a)})),e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(""!==t){const o=fi(i.getAttributes());o.set("linkHref",t),r.forEach((t=>{o.set(t,!0)}));const{end:a}=n.insertContent(e.createText(t,o),s);e.setSelection(a)}["linkHref",...r,...o].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(i.getRanges(),"linkHref"),a=[];for(const t of i.getSelectedBlocks())n.schema.checkAttribute(t,"linkHref")&&a.push(e.createRangeOn(t));const l=a.slice();for(const t of s)this._isRangeToUpdate(t,a)&&l.push(t);for(const n of l)e.setAttribute("linkHref",t,n),r.forEach((t=>{e.setAttribute(t,!0,n)})),o.forEach((t=>{e.removeAttribute(t,n)}))}}))}_getDecoratorStateFromModel(t){const e=this.editor.model,n=e.document.selection,i=n.getSelectedElement();return Sm(i,e.schema)?i.getAttribute(t):n.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e)if(n.containsRange(t))return!1;return!0}}class Tm extends Kt{refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement();Sm(n,t.schema)?this.isEnabled=t.schema.checkAttribute(n,"linkHref"):this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref")}execute(){const t=this.editor,e=this.editor.model,n=e.document.selection,i=t.commands.get("link");e.change((t=>{const r=n.isCollapsed?[Uh(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of r)if(t.removeAttribute("linkHref",e),i)for(const n of i.manualDecorators)t.removeAttribute(n.id,e)}))}}class Cm{constructor({id:t,label:e,attributes:n,classes:i,styles:r,defaultValue:o}){this.id=t,this.set("value"),this.defaultValue=o,this.label=e,this.attributes=n,this.classes=i,this.styles=r}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}Gt(Cm,Vt),n(88);const Dm=/^(https?:)?\/\//;class Em extends Jt{static get pluginName(){return"LinkEditing"}static get requires(){return[Dh,Lh,yd]}constructor(t){super(t),t.config.define("link",{addTargetToExternalLinks:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:km}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>km(Mm(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new Am(t)),t.commands.add("unlink",new Tm(t));const e=function(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach((t=>(t.label&&n[t.label]&&(t.label=n[t.label]),t))),e}(t.t,function(t){const e=[];if(t)for(const[n,i]of Object.entries(t)){const t=Object.assign({},i,{id:"link"+_m(n)});e.push(t)}return e}(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter((t=>"automatic"===t.mode))),this._enableManualDecorators(e.filter((t=>"manual"===t.mode))),t.plugins.get(Dh).registerAttribute("linkHref"),function(t,e,n,i){const r=t.editing.view,o=new Set;r.document.registerPostFixer((r=>{const s=t.model.document.selection;let a=!1;if(s.hasAttribute(e)){const l=Uh(s.getFirstPosition(),e,s.getAttribute(e),t.model),c=t.editing.mapper.toViewRange(l);for(const t of c.getItems())t.is("element",n)&&!t.hasClass(i)&&(r.addClass(i,t),o.add(t),a=!0)}return a})),t.conversion.for("editingDowncast").add((t=>{function e(){r.change((t=>{for(const e of o.values())t.removeClass(i,e),o.delete(e)}))}t.on("insert",e,{priority:"highest"}),t.on("remove",e,{priority:"highest"}),t.on("attribute",e,{priority:"highest"}),t.on("selection",e,{priority:"highest"})}))}(t,"linkHref","a","ck-link_selected"),this._enableInsertContentSelectionAttributesFixer(),this._enableClickingAfterLink(),this._enableTypingOverLink(),this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor,n=e.commands.get("link").automaticDecorators;e.config.get("link.addTargetToExternalLinks")&&n.add({id:"linkIsExternal",mode:"automatic",callback:t=>Dm.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}}),n.add(t),n.length&&e.conversion.for("downcast").add(n.getDispatcher())}_enableManualDecorators(t){if(!t.length)return;const e=this.editor,n=e.commands.get("link").manualDecorators;t.forEach((t=>{e.model.schema.extend("$text",{allowAttributes:t.id}),t=new Cm(t),n.add(t),e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,{writer:n})=>{if(e){const e=n.createAttributeElement("a",t.attributes,{priority:5});t.classes&&n.addClass(t.classes,e);for(const i in t.styles)n.setStyle(i,t.styles[i],e);return n.setCustomProperty("link",!0,e),e}}}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",...t._createPattern()},model:{key:t.id}})}))}_enableInsertContentSelectionAttributesFixer(){const t=this.editor.model,e=t.document.selection;this.listenTo(t,"insertContent",(()=>{const n=e.anchor.nodeBefore,i=e.anchor.nodeAfter;e.hasAttribute("linkHref")&&n&&n.hasAttribute("linkHref")&&(i&&i.hasAttribute("linkHref")||t.change((e=>{Pm(e,Om(t.schema))})))}),{priority:"low"})}_enableClickingAfterLink(){const t=this.editor,e=t.model;t.editing.view.addObserver(hd);let n=!1;this.listenTo(t.editing.view.document,"mousedown",(()=>{n=!0})),this.listenTo(t.editing.view.document,"selectionChange",(()=>{if(!n)return;n=!1;const t=e.document.selection;if(!t.isCollapsed)return;if(!t.hasAttribute("linkHref"))return;const i=t.getFirstPosition(),r=Uh(i,"linkHref",t.getAttribute("linkHref"),e);(i.isTouching(r.start)||i.isTouching(r.end))&&e.change((t=>{Pm(t,Om(e.schema))}))}))}_enableTypingOverLink(){const t=this.editor,e=t.editing.view;let n,i;this.listenTo(e.document,"delete",(()=>{i=!0}),{priority:"high"}),this.listenTo(t.model,"deleteContent",(()=>{const e=t.model.document.selection;e.isCollapsed||(i?i=!1:Ym(t)&&function(t){const e=t.document.selection,n=e.getFirstPosition(),i=e.getLastPosition(),r=n.nodeAfter;return!!r&&!!r.is("$text")&&!!r.hasAttribute("linkHref")&&(r===(i.textNode||i.nodeBefore)||Uh(n,"linkHref",r.getAttribute("linkHref"),t).containsRange(t.createRange(n,i),!0))}(t.model)&&(n=e.getAttributes()))}),{priority:"high"}),this.listenTo(t.model,"insertContent",((e,[r])=>{i=!1,Ym(t)&&n&&(t.model.change((t=>{for(const[e,i]of n)t.setAttribute(e,i,r)})),n=null)}),{priority:"high"})}_handleDeleteContentAfterLink(){const t=this.editor,e=t.model,n=e.document.selection,i=t.editing.view;let r=!1,o=!1;this.listenTo(i.document,"delete",((t,e)=>{o=e.domEvent.keyCode===Er.backspace}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{r=!1;const t=n.getFirstPosition(),i=n.getAttribute("linkHref");if(!i)return;const o=Uh(t,"linkHref",i,e);r=o.containsPosition(t)||o.end.isEqual(t)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{o&&(o=!1,r||t.model.enqueueChange((t=>{Pm(t,Om(e.schema))})))}),{priority:"low"})}}function Pm(t,e){t.removeSelectionAttribute("linkHref");for(const n of e)t.removeSelectionAttribute(n)}function Ym(t){return t.plugins.get("Input").isInput(t.model.change((t=>t.batch)))}function Om(t){return t.getDefinition("$text").allowAttributes.filter((t=>t.startsWith("link")))}n(90);class Im extends Ec{constructor(t,e){super(t);const n=t.t;this.focusTracker=new Ys,this.keystrokes=new Os,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Lc.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Lc.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e),this.children=this._createFormChildren(e.manualDecorators),this._focusables=new Dc,this._focusCycler=new nu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const i=["ck","ck-link-form","ck-responsive-form"];e.manualDecorators.length&&i.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:i,tabindex:"-1"},children:this.children}),Tc(this)}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((t,e)=>(t[e.name]=e.isOn,t)),{})}render(){super.render(),Cc({view:this}),[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new Pu(this.locale,Yu);return e.label=t("Link URL"),e}_createButton(t,e,n,i){const r=new tu(this.locale);return r.set({label:t,icon:e,tooltip:!0}),r.extendTemplate({attributes:{class:n}}),i&&r.delegate("execute").to(this,i),r}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const i=new eu(this.locale);i.set({name:n.id,label:n.label,withText:!0}),i.bind("isOn").toMany([n,t],"value",((t,e)=>void 0===e&&void 0===t?n.defaultValue:t)),i.on("execute",(()=>{n.set("value",!i.isOn)})),e.add(i)}return e}_createFormChildren(t){const e=this.createCollection();if(e.add(this.urlInputView),t.length){const t=new Ec;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}}),e.add(t)}return e.add(this.saveButtonView),e.add(this.cancelButtonView),e}}n(92);class Rm extends Ec{constructor(t){super(t);const e=t.t;this.focusTracker=new Ys,this.keystrokes=new Os,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("Unlink"),'',"unlink"),this.editButtonView=this._createButton(e("Edit link"),Lc.pencil,"edit"),this.set("href"),this._focusables=new Dc,this._focusCycler=new nu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render(),[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const i=new tu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.delegate("execute").to(this,n),i}_createPreviewButton(){const t=new tu(this.locale),e=this.bindTemplate,n=this.t;return t.set({withText:!0,tooltip:n("Open link in new tab")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",(t=>t&&Mm(t))),target:"_blank",rel:"noopener noreferrer"}}),t.bind("label").to(this,"href",(t=>t||n("This link has no URL"))),t.bind("isEnabled").to(this,"href",(t=>!!t)),t.template.tag="a",t.template.eventListeners={},t}}class Nm extends Jt{static get requires(){return[Vu]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(dd),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(Vu),this._createToolbarLinkButton(),this._enableUserBalloonInteractions(),t.conversion.for("editingDowncast").markerToHighlight({model:"link-ui",view:{classes:["ck-fake-link-selection"]}}),t.conversion.for("editingDowncast").markerToElement({model:"link-ui",view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new Rm(t.locale),n=t.commands.get("link"),i=t.commands.get("unlink");return e.bind("href").to(n,"value"),e.editButtonView.bind("isEnabled").to(n),e.unlinkButtonView.bind("isEnabled").to(i),this.listenTo(e,"edit",(()=>{this._addFormView()})),this.listenTo(e,"unlink",(()=>{t.execute("unlink"),this._hideUI()})),e.keystrokes.set("Esc",((t,e)=>{this._hideUI(),e()})),e.keystrokes.set("Ctrl+K",((t,e)=>{this._addFormView(),e()})),e}_createFormView(){const t=this.editor,e=t.commands.get("link"),n=t.config.get("link.defaultProtocol"),i=new Im(t.locale,e);return i.urlInputView.fieldView.bind("value").to(e,"value"),i.urlInputView.bind("isReadOnly").to(e,"isEnabled",(t=>!t)),i.saveButtonView.bind("isEnabled").to(e),this.listenTo(i,"submit",(()=>{const{value:e}=i.urlInputView.fieldView.element,r=Lm(e,n);t.execute("link",r,i.getDecoratorSwitchesState()),this._closeFormView()})),this.listenTo(i,"cancel",(()=>{this._closeFormView()})),i.keystrokes.set("Esc",((t,e)=>{this._closeFormView(),e()})),i}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),n=t.t;t.keystrokes.set("Ctrl+K",((t,n)=>{n(),e.isEnabled&&this._showUI(!0)})),t.ui.componentFactory.add("link",(t=>{const i=new tu(t);return i.isEnabled=!0,i.label=n("Link"),i.icon='',i.keystroke="Ctrl+K",i.tooltip=!0,i.isToggleable=!0,i.bind("isEnabled").to(e,"isEnabled"),i.bind("isOn").to(e,"value",(t=>!!t)),this.listenTo(i,"execute",(()=>this._showUI(!0))),i}))}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),this.editor.keystrokes.set("Tab",((t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((t,e)=>{this._isUIVisible&&(this._hideUI(),e())})),Ac({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this.formView.disableCssTransitions(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions(),this.formView.urlInputView.fieldView.element.value=t.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates(),void 0!==t.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(t=!1){this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const t=this.editor;this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),t.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let n=this._getSelectedLinkElement(),i=o();const r=()=>{const t=this._getSelectedLinkElement(),e=o();n&&!t||!n&&e!==i?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),n=t,i=e};function o(){return e.selection.focus.getAncestors().reverse().find((t=>t.is("element")))}this.listenTo(t.ui,"update",r),this.listenTo(this._balloon,"change:visibleView",r)}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=this.editor.model,n=t.document;let i=null;if(e.markers.has("link-ui")){const e=Array.from(this.editor.editing.mapper.markerNameToElements("link-ui")),n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));i=t.domConverter.viewRangeToDom(n)}else i=()=>{const e=this._getSelectedLinkElement();return e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(n.selection.getFirstRange())};return{target:i}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection,n=e.getSelectedElement();if(e.isCollapsed||n&&Od(n))return jm(e.getFirstPosition());{const n=e.getFirstRange().getTrimmed(),i=jm(n.start),r=jm(n.end);return i&&i==r&&t.createRangeIn(i).getTrimmed().isEqual(n)?i:null}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const n=t.document.selection.getFirstRange();if(t.markers.has("link-ui"))e.updateMarker("link-ui",{range:n});else if(n.start.isAtEnd){const i=n.start.getLastMatchingPosition((({item:e})=>!t.schema.isContent(e)),{boundaries:n});e.addMarker("link-ui",{usingOperation:!1,affectsData:!1,range:e.createRange(i,n.end)})}else e.addMarker("link-ui",{usingOperation:!1,affectsData:!1,range:n})}))}_hideFakeVisualSelection(){const t=this.editor.model;t.markers.has("link-ui")&&t.change((t=>{t.removeMarker("link-ui")}))}}function jm(t){return t.getAncestors().find((t=>{return(e=t).is("attributeElement")&&!!e.getCustomProperty("link");var e}))}const zm=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class Hm extends Jt{static get pluginName(){return"AutoLink"}init(){const t=this.editor.model.document.selection;t.on("change:range",(()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling()}_enableTypingHandling(){const t=this.editor,e=new Ch(t.model,(t=>{if(!function(t){return t.length>4&&" "===t[t.length-1]&&" "!==t[t.length-2]}(t))return;const e=Fm(t.substr(0,t.length-1));return e?{url:e}:void 0})),n=t.plugins.get("Input");e.on("matched:data",((e,i)=>{const{batch:r,range:o,url:s}=i;if(!n.isInput(r))return;const a=o.end.getShiftedBy(-1),l=a.getShiftedBy(-s.length),c=t.model.createRange(l,a);this._applyAutoLink(s,c)})),e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("enter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling)return;const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)}))}_enableShiftEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("shiftEnter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition(),n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)}))}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model,{text:n,range:i}=Th(t,e),r=Fm(n);if(r){const t=e.createRange(i.end.getShiftedBy(-r.length),i.end);this._applyAutoLink(r,t)}}_applyAutoLink(t,e){const n=this.editor.model;this.isEnabled&&function(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}(e,n)&&n.enqueueChange((n=>{const i=this.editor.config.get("link.defaultProtocol"),r=Lm(t,i);n.setAttribute("linkHref",r,e)}))}}function Fm(t){const e=zm.exec(t);return e?e[2]:null}class Bm extends Kt{constructor(t,e){super(t),this.type=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document,i=Array.from(n.selection.getSelectedBlocks()).filter((t=>Wm(t,e.schema))),r=void 0!==t.forceValue?!t.forceValue:this.value;e.change((t=>{if(r){let e=i[i.length-1].nextSibling,n=Number.POSITIVE_INFINITY,r=[];for(;e&&"listItem"==e.name&&0!==e.getAttribute("listIndent");){const t=e.getAttribute("listIndent");t=n;)o>r.getAttribute("listIndent")&&(o=r.getAttribute("listIndent")),r.getAttribute("listIndent")==o&&t[e?"unshift":"push"](r),r=r[e?"previousSibling":"nextSibling"]}}function Wm(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class Um extends Kt{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change((t=>{const e=n[n.length-1];let i=e.nextSibling;for(;i&&"listItem"==i.name&&i.getAttribute("listIndent")>e.getAttribute("listIndent");)n.push(i),i=i.nextSibling;this._indentBy<0&&(n=n.reverse());for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;n<0?t.rename(e,"paragraph"):t.setAttribute("listIndent",n,e)}this.fire("_executeCleanup",n)}))}_checkEnabled(){const t=Ps(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),n=t.getAttribute("listType");let i=t.previousSibling;for(;i&&i.is("element","listItem")&&i.getAttribute("listIndent")>=e;){if(i.getAttribute("listIndent")==e)return i.getAttribute("listType")==n;i=i.previousSibling}return!1}return!0}}function Xm(t,e){const n=e.mapper,i=e.writer,r="numbered"==t.getAttribute("listType")?"ol":"ul",o=function(t){const e=t.createContainerElement("li");return e.getFillerOffset=Km,e}(i),s=i.createContainerElement(r,null);return i.insert(i.createPositionAt(s,0),o),n.bindElements(t,o),o}function $m(t,e,n,i){const r=e.parent,o=n.mapper,s=n.writer;let a=o.toViewPosition(i.createPositionBefore(t));const l=Jm(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),c=t.previousSibling;if(l&&l.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=o.toViewElement(l);a=s.breakContainer(s.createPositionAfter(t))}else if(c&&"listItem"==c.name){a=o.toViewPosition(i.createPositionAt(c,"end"));const t=o.findMappedViewAncestor(a),e=function(t){for(const e of t.getChildren())if("ul"==e.name||"ol"==e.name)return e;return null}(t);a=e?s.createPositionBefore(e):s.createPositionAt(t,"end")}else a=o.toViewPosition(i.createPositionBefore(t));if(a=Gm(a),s.insert(a,r),c&&"listItem"==c.name){const t=o.toViewElement(c),n=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const t of n)if(t.item.is("element","li")){const i=s.breakContainer(s.createPositionBefore(t.item)),r=t.item.parent,o=s.createPositionAt(e,"end");qm(s,o.nodeBefore,o.nodeAfter),s.move(s.createRangeOn(r),o),n.position=i}}else{const n=r.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let i=null;for(const e of n.getChildren()){const n=o.toModelElement(e);if(!(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")))break;i=e}i&&(s.breakContainer(s.createPositionAfter(i)),s.move(s.createRangeOn(i.parent),s.createPositionAt(e,"end")))}}qm(s,r,r.nextSibling),qm(s,r.previousSibling,r)}function qm(t,e,n){return!e||!n||"ul"!=e.name&&"ol"!=e.name||e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")?null:t.mergeContainers(t.createPositionAfter(e))}function Gm(t){return t.getLastMatchingPosition((t=>t.item.is("uiElement")))}function Jm(t,e){const n=!!e.sameIndent,i=!!e.smallerIndent,r=e.listIndent;let o=t;for(;o&&"listItem"==o.name;){const t=o.getAttribute("listIndent");if(n&&r==t||i&&r>t)return o;o="forward"===e.direction?o.nextSibling:o.previousSibling}return null}function Zm(t,e,n,i){t.ui.componentFactory.add(e,(r=>{const o=t.commands.get(e),s=new tu(r);return s.set({label:n,icon:i,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(o,"value","isEnabled"),s.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),s}))}function Km(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:ir.call(this)}function Qm(t){return(e,n,i)=>{const r=i.consumable;if(!r.test(n.item,"insert")||!r.test(n.item,"attribute:listType")||!r.test(n.item,"attribute:listIndent"))return;r.consume(n.item,"insert"),r.consume(n.item,"attribute:listType"),r.consume(n.item,"attribute:listIndent");const o=n.item;$m(o,Xm(o,i),i,t)}}function tg(t,e,n){if(!n.consumable.consume(e.item,"attribute:listType"))return;const i=n.mapper.toViewElement(e.item),r=n.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const o=i.parent,s="numbered"==e.attributeNewValue?"ol":"ul";r.rename(s,o)}function eg(t,e,n){const i=n.mapper.toViewElement(e.item).parent,r=n.writer;qm(r,i,i.nextSibling),qm(r,i.previousSibling,i);for(const t of e.item.getChildren())n.consumable.consume(t,"insert")}function ng(t,e,n){if("listItem"!=e.item.name){let t=n.mapper.toViewPosition(e.range.start);const i=n.writer,r=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&(t=i.breakContainer(t),"li"==t.parent.name);){const e=t,n=i.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=i.remove(i.createRange(e,n));r.push(t)}t=i.createPositionAfter(t.parent)}if(r.length>0){for(let e=0;e0){const e=qm(i,n,n.nextSibling);e&&e.parent==n&&t.offset--}}qm(i,t.nodeBefore,t.nodeAfter)}}}function ig(t,e,n){const i=n.mapper.toViewPosition(e.position),r=i.nodeBefore,o=i.nodeAfter;qm(n.writer,r,o)}function rg(t,e,n){if(n.consumable.consume(e.viewItem,{name:!0})){const t=n.writer,i=t.createElement("listItem"),r=function(t){let e=0,n=t.parent;for(;n;){if(n.is("element","li"))e++;else{const t=n.previousSibling;t&&t.is("element","li")&&e++}n=n.parent}return e}(e.viewItem);t.setAttribute("listIndent",r,i);const o=e.viewItem.parent&&"ol"==e.viewItem.parent.name?"numbered":"bulleted";if(t.setAttribute("listType",o,i),!n.safeInsert(i,e.modelCursor))return;const s=function(t,e,n){const{writer:i,schema:r}=n;let o=i.createPositionAfter(t);for(const s of e)if("ul"==s.name||"ol"==s.name)o=n.convertItem(s,o).modelCursor;else{const e=n.convertItem(s,i.createPositionAt(t,"end")),a=e.modelRange.start.nodeAfter;a&&a.is("element")&&!r.checkChild(t,a.name)&&(t=e.modelCursor.parent.is("element","listItem")?e.modelCursor.parent:cg(e.modelCursor),o=i.createPositionAfter(t))}return o}(i,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s),n.updateConversionResult(i,e)}}function og(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){const t=Array.from(e.viewItem.getChildren());for(const e of t)!e.is("element","li")&&!dg(e)&&e._remove()}}function sg(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){if(0===e.viewItem.childCount)return;const t=[...e.viewItem.getChildren()];let n=!1,i=!0;for(const e of t)n&&!dg(e)&&e._remove(),e.is("$text")?(i&&(e._data=e.data.trimStart()),e.nextSibling&&!dg(e.nextSibling)||(e._data=e.data.trimEnd())):dg(e)&&(n=!0),i=!1}}function ag(t){return(e,n)=>{if(n.isPhantom)return;const i=n.modelPosition.nodeBefore;if(i&&i.is("element","listItem")){const e=n.mapper.toViewElement(i),r=e.getAncestors().find(dg),o=t.createPositionAt(e,0).getWalker();for(const t of o){if("elementStart"==t.type&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}if("elementEnd"==t.type&&t.item==r){n.viewPosition=t.nextPosition;break}}}}}function lg(t,[e,n]){let i,r=e.is("documentFragment")?e.getChild(0):e;if(i=n?this.createSelection(n):this.document.selection,r&&r.is("element","listItem")){const t=i.getFirstPosition();let e=null;if(t.parent.is("element","listItem")?e=t.parent:t.nodeBefore&&t.nodeBefore.is("element","listItem")&&(e=t.nodeBefore),e){const t=e.getAttribute("listIndent");if(t>0)for(;r&&r.is("element","listItem");)r._setAttribute("listIndent",r.getAttribute("listIndent")+t),r=r.nextSibling}}}function cg(t){const e=new Ks({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function ug(t,e,n,i,r,o){const s=Jm(e.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:t,foo:"b"}),a=r.mapper,l=r.writer,c=s?s.getAttribute("listIndent"):null;let u;if(s)if(c==t){const t=a.toViewElement(s).parent;u=l.createPositionAfter(t)}else{const t=o.createPositionAt(s,"end");u=a.toViewPosition(t)}else u=n;u=Gm(u);for(const t of[...i.getChildren()])dg(t)&&(u=l.move(l.createRangeOn(t),u).end,qm(l,t,t.nextSibling),qm(l,t.previousSibling,t))}function dg(t){return t.is("element","ol")||t.is("element","ul")}class hg extends Jt{static get pluginName(){return"ListEditing"}static get requires(){return[Sd,Cd]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data,n=t.editing;var i;t.model.document.registerPostFixer((e=>function(t,e){const n=t.document.differ.getChanges(),i=new Map;let r=!1;for(const i of n)if("insert"==i.type&&"listItem"==i.name)o(i.position);else if("insert"==i.type&&"listItem"!=i.name){if("$text"!=i.name){const n=i.position.nodeAfter;n.hasAttribute("listIndent")&&(e.removeAttribute("listIndent",n),r=!0),n.hasAttribute("listType")&&(e.removeAttribute("listType",n),r=!0),n.hasAttribute("listStyle")&&(e.removeAttribute("listStyle",n),r=!0);for(const e of Array.from(t.createRangeIn(n)).filter((t=>t.item.is("element","listItem"))))o(e.previousPosition)}o(i.position.getShiftedBy(i.length))}else"remove"==i.type&&"listItem"==i.name?o(i.position):("attribute"==i.type&&"listIndent"==i.attributeKey||"attribute"==i.type&&"listType"==i.attributeKey)&&o(i.range.start);for(const t of i.values())s(t),a(t);return r;function o(t){const e=t.nodeBefore;if(e&&e.is("element","listItem")){let t=e;if(i.has(t))return;for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling)if(t=e,i.has(t))return;i.set(e,t)}else{const e=t.nodeAfter;e&&e.is("element","listItem")&&i.set(e,e)}}function s(t){let n=0,i=null;for(;t&&t.is("element","listItem");){const o=t.getAttribute("listIndent");if(o>n){let s;null===i?(i=o-n,s=n):(i>o&&(i=o),s=o-i),e.setAttribute("listIndent",s,t),r=!0}else i=null,n=t.getAttribute("listIndent")+1;t=t.nextSibling}}function a(t){let n=[],i=null;for(;t&&t.is("element","listItem");){const o=t.getAttribute("listIndent");if(i&&i.getAttribute("listIndent")>o&&(n=n.slice(0,o+1)),0!=o)if(n[o]){const i=n[o];t.getAttribute("listType")!=i&&(e.setAttribute("listType",i,t),r=!0)}else n[o]=t.getAttribute("listType");i=t,t=t.nextSibling}}}(t.model,e))),n.mapper.registerViewToModelLength("li",fg),e.mapper.registerViewToModelLength("li",fg),n.mapper.on("modelToViewPosition",ag(n.view)),n.mapper.on("viewToModelPosition",(i=t.model,(t,e)=>{const n=e.viewPosition,r=n.parent,o=e.mapper;if("ul"==r.name||"ol"==r.name){if(n.isAtEnd){const t=o.toModelElement(n.nodeBefore),r=o.getModelLength(n.nodeBefore);e.modelPosition=i.createPositionBefore(t).getShiftedBy(r)}else{const t=o.toModelElement(n.nodeAfter);e.modelPosition=i.createPositionBefore(t)}t.stop()}else if("li"==r.name&&n.nodeBefore&&("ul"==n.nodeBefore.name||"ol"==n.nodeBefore.name)){const s=o.toModelElement(r);let a=1,l=n.nodeBefore;for(;l&&dg(l);)a+=o.getModelLength(l),l=l.previousSibling;e.modelPosition=i.createPositionBefore(s).getShiftedBy(a),t.stop()}})),e.mapper.on("modelToViewPosition",ag(n.view)),t.conversion.for("editingDowncast").add((e=>{e.on("insert",ng,{priority:"high"}),e.on("insert:listItem",Qm(t.model)),e.on("attribute:listType:listItem",tg,{priority:"high"}),e.on("attribute:listType:listItem",eg,{priority:"low"}),e.on("attribute:listIndent:listItem",function(t){return(e,n,i)=>{if(!i.consumable.consume(n.item,"attribute:listIndent"))return;const r=i.mapper.toViewElement(n.item),o=i.writer;o.breakContainer(o.createPositionBefore(r)),o.breakContainer(o.createPositionAfter(r));const s=r.parent,a=s.previousSibling,l=o.createRangeOn(s);o.remove(l),a&&a.nextSibling&&qm(o,a,a.nextSibling),ug(n.attributeOldValue+1,n.range.start,l.start,r,i,t),$m(n.item,r,i,t);for(const t of n.item.getChildren())i.consumable.consume(t,"insert")}}(t.model)),e.on("remove:listItem",function(t){return(e,n,i)=>{const r=i.mapper.toViewPosition(n.position).getLastMatchingPosition((t=>!t.item.is("element","li"))).nodeAfter,o=i.writer;o.breakContainer(o.createPositionBefore(r)),o.breakContainer(o.createPositionAfter(r));const s=r.parent,a=s.previousSibling,l=o.createRangeOn(s),c=o.remove(l);a&&a.nextSibling&&qm(o,a,a.nextSibling),ug(i.mapper.toModelElement(r).getAttribute("listIndent")+1,n.position,l.start,r,i,t);for(const t of o.createRangeIn(c).getItems())i.mapper.unbindViewElement(t);e.stop()}}(t.model)),e.on("remove",ig,{priority:"low"})})),t.conversion.for("dataDowncast").add((e=>{e.on("insert",ng,{priority:"high"}),e.on("insert:listItem",Qm(t.model))})),t.conversion.for("upcast").add((t=>{t.on("element:ul",og,{priority:"high"}),t.on("element:ol",og,{priority:"high"}),t.on("element:li",sg,{priority:"high"}),t.on("element:li",rg)})),t.model.on("insertContent",lg,{priority:"high"}),t.commands.add("numberedList",new Bm(t,"numbered")),t.commands.add("bulletedList",new Bm(t,"bulleted")),t.commands.add("indentList",new Um(t,"forward")),t.commands.add("outdentList",new Um(t,"backward"));const r=n.view.document;this.listenTo(r,"enter",((t,e)=>{const n=this.editor.model.document,i=n.selection.getLastPosition().parent;n.selection.isCollapsed&&"listItem"==i.name&&i.isEmpty&&(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(r,"delete",((t,e)=>{if("backward"!==e.direction)return;const n=this.editor.model.document.selection;if(!n.isCollapsed)return;const i=n.getFirstPosition();if(!i.isAtStart)return;const r=i.parent;"listItem"===r.name&&(r.previousSibling&&"listItem"===r.previousSibling.name||(this.editor.execute("outdentList"),e.preventDefault(),t.stop()))}),{context:"li"});const o=t=>(e,n)=>{this.editor.commands.get(t).isEnabled&&(this.editor.execute(t),n())};t.keystrokes.set("Tab",o("indentList")),t.keystrokes.set("Shift+Tab",o("outdentList"))}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList")),n&&n.registerChildCommand(t.get("outdentList"))}}function fg(t){let e=1;for(const n of t.getChildren())if("ul"==n.name||"ol"==n.name)for(const t of n.getChildren())e+=fg(t);return e}class pg extends Jt{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;Zm(this.editor,"numberedList",t("Numbered List"),''),Zm(this.editor,"bulletedList",t("Bulleted List"),'')}}function mg(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,i,r){if(!r.consumable.consume(i.item,n.name))return;const o=i.attributeNewValue,s=r.writer,a=r.mapper.toViewElement(i.item),l=[...a.getChildren()].find((t=>t.getCustomProperty("media-content")));s.remove(l);const c=t.getMediaViewElement(s,o,e);s.insert(s.createPositionAt(a,0),c)}}function gg(t,e,n,i){const r=t.createContainerElement("figure",{class:"media"});return t.insert(t.createPositionAt(r,0),e.getMediaViewElement(t,n,i)),r}function bg(t){const e=t.getSelectedElement();return e&&e.is("element","media")?e:null}function _g(t,e,n){t.change((i=>{const r=i.createElement("media",{url:e});t.insertContent(r,n),i.setSelection(r,"on")}))}class vg extends Kt{refresh(){const t=this.editor.model,e=t.document.selection,n=bg(e);this.value=n?n.getAttribute("url"):null,this.isEnabled=function(t){const e=t.getSelectedElement();return!!e&&"media"===e.name}(e)||function(t,e){let n=Fd(t,e).start.parent;return n.isEmpty&&!e.schema.isLimit(n)&&(n=n.parent),e.schema.checkChild(n,"media")}(e,t)}execute(t){const e=this.editor.model,n=e.document.selection,i=bg(n);i?e.change((e=>{e.setAttribute("url",t,i)})):_g(e,t,Fd(n,e))}}class yg{constructor(t,e){const n=e.providers,i=e.extraProviders||[],r=new Set(e.removeProviders),o=n.concat(i).filter((t=>{const e=t.name;return e?!r.has(e):(Object(l.b)("media-embed-no-provider-name",{provider:t}),!1)}));this.locale=t,this.providerDefinitions=o}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t)return new wg(this.locale);t=t.trim();for(const e of this.providerDefinitions){const n=e.html,i=ei(e.url);for(const e of i){const i=this._getUrlMatches(t,e);if(i)return new wg(this.locale,t,i,n)}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n)return n;let i=t.replace(/^https?:\/\//,"");return n=i.match(e),n||(i=i.replace(/^www\./,""),n=i.match(e),n||null)}}class wg{constructor(t,e,n,i){this.url=this._getValidUrl(e),this._t=t.t,this._match=n,this._previewRenderer=i}getViewElement(t,e){const n={};let i;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(n["data-oembed-url"]=this.url),e.renderForEditingView&&(n.class="ck-media__wrapper");const r=this._getPreviewHtml(e);i=t.createRawElement("div",n,(function(t){t.innerHTML=r}))}else this.url&&(n.url=this.url),i=t.createEmptyElement(e.elementName,n);return t.setCustomProperty("media-content",!0,i),i}_getPreviewHtml(t){return this._previewRenderer?this._previewRenderer(this._match):this.url&&t.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const t=new Qc,e=new Kc;return t.text=this._t("Open media in new tab"),e.content='',e.viewBox="0 0 64 42",new Pc({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[e]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]},t]}]}).render().outerHTML}_getValidUrl(t){return t?t.match(/^https?/)?t:"https://"+t:null}}n(94);class xg extends Jt{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t),t.config.define("mediaEmbed",{elementName:"oembed",providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>`
    `},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>`
    `},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)/,/^youtube\.com\/embed\/([\w-]+)/,/^youtu\.be\/([\w-]+)/],html:t=>`
    `},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>`
    `},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:[/^google\.com\/maps/,/^goo\.gl\/maps/,/^maps\.google\.com/,/^maps\.app\.goo\.gl/]},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new yg(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor,e=t.model.schema,n=t.t,i=t.conversion,r=t.config.get("mediaEmbed.previewsInData"),o=t.config.get("mediaEmbed.elementName"),s=this.registry;t.commands.add("mediaEmbed",new vg(t)),e.register("media",{isObject:!0,isBlock:!0,allowWhere:"$block",allowAttributes:["url"]}),i.for("dataDowncast").elementToElement({model:"media",view:(t,{writer:e})=>{const n=t.getAttribute("url");return gg(e,s,n,{elementName:o,renderMediaPreview:n&&r})}}),i.for("dataDowncast").add(mg(s,{elementName:o,renderMediaPreview:r})),i.for("editingDowncast").elementToElement({model:"media",view:(t,{writer:e})=>{const i=t.getAttribute("url");return function(t,e,n){return e.setCustomProperty("media",!0,t),Id(t,e,{label:n})}(gg(e,s,i,{elementName:o,renderForEditingView:!0}),e,n("media widget"))}}),i.for("editingDowncast").add(mg(s,{elementName:o,renderForEditingView:!0})),i.for("upcast").elementToElement({view:t=>["oembed",o].includes(t.name)&&t.getAttribute("url")?{name:!0}:null,model:(t,{writer:e})=>{const n=t.getAttribute("url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(t,{writer:e})=>{const n=t.getAttribute("data-oembed-url");if(s.hasMedia(n))return e.createElement("media",{url:n})}})}}const kg=/^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;class Mg extends Jt{static get requires(){return[ch,nf]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t),this._timeoutId=null,this._positionToInsert=null}init(){const t=this.editor,e=t.model.document;this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",(()=>{const t=e.selection.getFirstRange(),n=tc.fromPosition(t.start);n.stickiness="toPrevious";const i=tc.fromPosition(t.end);i.stickiness="toNext",e.once("change:data",(()=>{this._embedMediaBetweenPositions(n,i),n.detach(),i.detach()}),{priority:"high"})})),t.commands.get("undo").on("execute",(()=>{this._timeoutId&&(wo.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)}),{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor,i=n.plugins.get(xg).registry,r=new ba(t,e),o=r.getWalker({ignoreElementEnd:!0});let s="";for(const t of o)t.item.is("$textProxy")&&(s+=t.item.data);s=s.trim(),s.match(kg)&&i.hasMedia(s)&&n.commands.get("mediaEmbed").isEnabled?(this._positionToInsert=tc.fromPosition(t),this._timeoutId=wo.window.setTimeout((()=>{n.model.change((t=>{let e;this._timeoutId=null,t.remove(r),r.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(e=this._positionToInsert),_g(n.model,s,e),this._positionToInsert.detach(),this._positionToInsert=null}))}),100)):r.detach()}}n(96);class Sg extends Ec{constructor(t,e){super(e);const n=e.t;this.focusTracker=new Ys,this.keystrokes=new Os,this.set("mediaURLInputValue",""),this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Lc.check,"ck-button-save"),this.saveButtonView.type="submit",this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",(t=>!!t)),this.cancelButtonView=this._createButton(n("Cancel"),Lc.cancel,"ck-button-cancel","cancel"),this._focusables=new Dc,this._focusCycler=new nu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=t,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]}),Tc(this)}render(){super.render(),Cc({view:this}),[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t),this.listenTo(this.urlInputView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"})}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(t){this.urlInputView.fieldView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.urlInputView.errorText=e,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t,e=new Pu(this.locale,Yu),n=e.fieldView;return this._urlInputViewInfoDefault=t("Paste the media URL in the input."),this._urlInputViewInfoTip=t("Tip: Paste the URL into the content to embed faster."),e.label=t("Media URL"),e.infoText=this._urlInputViewInfoDefault,n.on("input",(()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault,this.mediaURLInputValue=n.element.value.trim()})),e}_createButton(t,e,n,i){const r=new tu(this.locale);return r.set({label:t,icon:e,tooltip:!0}),r.extendTemplate({attributes:{class:n}}),i&&r.delegate("execute").to(this,i),r}}class Lg extends Jt{static get requires(){return[xg]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor,e=t.commands.get("mediaEmbed"),n=t.plugins.get(xg).registry;t.ui.componentFactory.add("mediaEmbed",(i=>{const r=ku(i),o=new Sg(function(t,e){return[e=>{if(!e.url.length)return t("The URL must not be empty.")},n=>{if(!e.hasMedia(n.url))return t("This media URL is not supported.")}]}(t.t,n),t.locale);return this._setUpDropdown(r,o,e,t),this._setUpForm(r,o,e),r}))}_setUpDropdown(t,e,n){const i=this.editor,r=i.t,o=t.buttonView;function s(){i.editing.view.focus(),t.isOpen=!1}t.bind("isEnabled").to(n),t.panelView.children.add(e),o.set({label:r("Insert media"),icon:'',tooltip:!0}),o.on("open",(()=>{e.disableCssTransitions(),e.url=n.value||"",e.urlInputView.fieldView.select(),e.focus(),e.enableCssTransitions()}),{priority:"low"}),t.on("submit",(()=>{e.isValid()&&(i.execute("mediaEmbed",e.url),s())})),t.on("change:isOpen",(()=>e.resetFormStatus())),t.on("cancel",(()=>s()))}_setUpForm(t,e,n){e.delegate("submit","cancel").to(t),e.urlInputView.bind("value").to(n,"value"),e.urlInputView.bind("isReadOnly").to(n,"isEnabled",(t=>!t))}}function Ag(t,e){if(!t.childCount)return;const n=new fd(t.document),i=function(t,e){const n=e.createRangeIn(t),i=new pi({name:/^p|h\d+$/,styles:{"mso-list":/.*/}}),r=[];for(const t of n)if("elementStart"===t.type&&i.match(t.item)){const e=Dg(t.item);r.push({element:t.item,id:e.id,order:e.order,indent:e.indent})}return r}(t,n);if(!i.length)return;let r=null,o=1;i.forEach(((t,s)=>{const a=function(t,e){if(!t)return!0;if(t.id!==e.id)return e.indent-t.indent!=1;const n=e.element.previousSibling;return!n||!((i=n).is("element","ol")||i.is("element","ul"));var i}(i[s-1],t),l=(u=t,(c=a?null:i[s-1])?u.indent-c.indent:u.indent-1);var c,u;if(a&&(r=null,o=1),!r||0!==l){const i=function(t,e){const n=/mso-level-number-format:([^;]{0,100});/gi,i=new RegExp(`@list l${t.id}:level${t.indent}\\s*({[^}]*)`,"gi").exec(e);let r="decimal",o="ol";if(i&&i[1]){const e=n.exec(i[1]);if(e&&e[1]&&(r=e[1].trim(),o="bullet"!==r&&"image"!==r?"ol":"ul"),"bullet"===r){const e=function(t){const e=function(t){if(t.getChild(0).is("$text"))return null;for(const e of t.getChildren()){if(!e.is("element","span"))continue;const t=e.getChild(0);return t.is("$text")?t:t.getChild(0)}}(t);if(!e)return null;const n=e._data;return"o"===n?"circle":"·"===n?"disc":"§"===n?"square":null}(t.element);e&&(r=e)}}return{type:o,style:Tg(r)}}(t,e);if(r){if(t.indent>o){const t=r.getChild(r.childCount-1),e=t.getChild(t.childCount-1);r=Cg(i,e,n),o+=1}else if(t.indentt.indexOf(e)>-1))?o.push(n):n.getAttribute("src")||o.push(n)}for(const t of o)n.remove(t)}(function(t,e){const n=e.createRangeIn(t),i=new pi({name:/v:(.+)/}),r=[];for(const t of n){const e=t.item,n=e.previousSibling&&e.previousSibling.name||null;i.match(e)&&e.getAttribute("o:gfxdata")&&"v:shapetype"!==n&&r.push(t.item.getAttribute("id"))}return r}(t,n),t,n),function(t,e){const n=e.createRangeIn(t),i=new pi({name:/v:(.+)/}),r=[];for(const t of n)i.match(t.item)&&r.push(t.item);for(const t of r)e.remove(t)}(t,n);const i=function(t,e){const n=e.createRangeIn(t),i=new pi({name:"img"}),r=[];for(const t of n)i.match(t.item)&&t.item.getAttribute("src").startsWith("file://")&&r.push(t.item);return r}(t,n);i.length&&function(t,e,n){if(t.length===e.length)for(let r=0;rString.fromCharCode(parseInt(t,16)))).join(""))}`;n.setAttribute("src",o,t[r])}var i}(i,function(t){if(!t)return[];const e=/{\\pict[\s\S]+?\\bliptag-?\d+(\\blipupi-?\d+)?({\\\*\\blipuid\s?[\da-fA-F]+)?[\s}]*?/,n=new RegExp("(?:("+e.source+"))([\\da-fA-F\\s]+)\\}","g"),i=t.match(n),r=[];if(i)for(const t of i){let n=!1;t.includes("\\pngblip")?n="image/png":t.includes("\\jpegblip")&&(n="image/jpeg"),n&&r.push({hex:t.replace(e,"").replace(/[^\da-fA-F]/g,""),type:n})}return r}(e),n)}const Og=//i,Ig=/xmlns:o="urn:schemas-microsoft-com/i;class Rg{constructor(t){this.document=t}isActive(t){return Og.test(t)||Ig.test(t)}execute(t){const{body:e,stylesString:n}=t._parsedData;Ag(e,n),Yg(e,t.dataTransfer.getData("text/rtf")),t.content=e}}function Ng(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1===e.length?" ":Array(e.length+1).join("  ").substr(0,e.length)))}function jg(t,e){const n=new DOMParser,i=function(t){return Ng(Ng(t)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(t){const e=t.indexOf("");if(e<0)return t;const n=t.indexOf("",e+"".length);return t.substring(0,e+"".length)+(n>=0?t.substring(n):"")}(t=t.replace(//g,"$1").replace(//g,"$1")),Xo(u,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""}));l+=t.length-h.length,t=h,L(u,l-c,l)}else{var f=t.indexOf("<");if(0===f){if(jo.test(t)){var p=t.indexOf("--\x3e");if(p>=0){e.shouldKeepComment&&e.comment(t.substring(4,p),l,l+p+3),k(p+3);continue}}if(zo.test(t)){var m=t.indexOf("]>");if(m>=0){k(m+2);continue}}var g=t.match(No);if(g){k(g[0].length);continue}var b=t.match(Ro);if(b){var _=l;k(b[0].length),L(b[1],_,l);continue}var v=M();if(v){S(v),Xo(v.tagName,t)&&k(1);continue}}var y=void 0,w=void 0,x=void 0;if(f>=0){for(w=t.slice(f);!(Ro.test(w)||Oo.test(w)||jo.test(w)||zo.test(w)||(x=w.indexOf("<",1))<0);)f+=x,w=t.slice(f);y=t.substring(0,f)}f<0&&(y=t),y&&k(y.length),e.chars&&y&&e.chars(y,l-y.length,l)}if(t===n){e.chars&&e.chars(t);break}}function k(e){l+=e,t=t.substring(e)}function M(){var e=t.match(Oo);if(e){var n,i,r={tagName:e[1],attrs:[],start:l};for(k(e[0].length);!(n=t.match(Io))&&(i=t.match(Eo)||t.match(Do));)i.start=l,k(i[0].length),i.end=l,r.attrs.push(i);if(n)return r.unarySlash=n[1],k(n[0].length),r.end=l,r}}function S(t){var n=t.tagName,l=t.unarySlash;o&&("p"===i&&Co(n)&&L(i),a(n)&&i===n&&L(n));for(var c=s(n)||!!l,u=t.attrs.length,d=new Array(u),h=0;h=0&&r[s].lowerCasedTag!==a;s--);else s=0;if(s>=0){for(var c=r.length-1;c>=s;c--)e.end&&e.end(r[c].tag,n,o);r.length=s,i=s&&r[s-1].tag}else"br"===a?e.start&&e.start(t,[],!0,n,o):"p"===a&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}L()}(t,{warn:qo,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,n,s,a,d){var h=r&&r.ns||es(t);K&&"svg"===h&&(n=function(t){for(var e=[],n=0;nl&&(a.push(o=t.slice(l,r)),s.push(JSON.stringify(o)));var c=Oi(i[1].trim());s.push("_s("+c+")"),a.push({"@binding":c}),l=r+i[0].length}return l-1"+("true"===o?":("+e+")":":_q("+e+","+o+")")),Vi(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+s+");if(Array.isArray($$a)){var $$v="+(i?"_n("+r+")":r)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Gi(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Gi(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Gi(e,"$$c")+"}",null,!0)}(t,i,r);else if("input"===o&&"radio"===s)!function(t,e,n){var i=n&&n.number,r=Wi(t,"value")||"null";ji(t,"checked","_q("+e+","+(r=i?"_n("+r+")":r)+")"),Vi(t,"change",Gi(e,r),null,!0)}(t,i,r);else if("input"===o||"textarea"===o)!function(t,e,n){var i=t.attrsMap.type;0;var r=n||{},o=r.lazy,s=r.number,a=r.trim,l=!o&&"range"!==i,c=o?"change":"range"===i?nr:"input",u="$event.target.value";a&&(u="$event.target.value.trim()");s&&(u="_n("+u+")");var d=Gi(e,u);l&&(d="if($event.target.composing)return;"+d);ji(t,"value","("+e+")"),Vi(t,c,d,null,!0),(a||s)&&Vi(t,"blur","$forceUpdate()")}(t,i,r);else{if(!F.isReservedTag(o))return qi(t,i,r),!1}return!0},text:function(t,e){e.value&&ji(t,"textContent","_s("+e.value+")",e)},html:function(t,e){e.value&&ji(t,"innerHTML","_s("+e.value+")",e)}},isPreTag:function(t){return"pre"===t},isUnaryTag:Ao,mustUseProp:Fn,canBeLeftOpenTag:To,isReservedTag:ni,getTagNamespace:ii,staticKeys:function(t){return t.reduce((function(t,e){return t.concat(e.staticKeys||[])}),[]).join(",")}(As)},Es=x((function(t){return g("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))}));function Ps(t,e){t&&(Ts=Es(e.staticKeys||""),Cs=e.isReservedTag||Y,Ys(t),Os(t,!1))}function Ys(t){if(t.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||b(t.tag)||!Cs(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(Ts)))}(t),1===t.type){if(!Cs(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var e=0,n=t.children.length;e|^function(?:\s+[\w$]+)?\s*\(/,Rs=/\([^)]*?\);*$/,Ns=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,js={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},zs={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Hs=function(t){return"if("+t+")return null;"},Fs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Hs("$event.target !== $event.currentTarget"),ctrl:Hs("!$event.ctrlKey"),shift:Hs("!$event.shiftKey"),alt:Hs("!$event.altKey"),meta:Hs("!$event.metaKey"),left:Hs("'button' in $event && $event.button !== 0"),middle:Hs("'button' in $event && $event.button !== 1"),right:Hs("'button' in $event && $event.button !== 2")};function Bs(t,e){var n=e?"nativeOn:":"on:",i="",r="";for(var o in t){var s=Vs(t[o]);t[o]&&t[o].dynamic?r+=o+","+s+",":i+='"'+o+'":'+s+","}return i="{"+i.slice(0,-1)+"}",r?n+"_d("+i+",["+r.slice(0,-1)+"])":n+i}function Vs(t){if(!t)return"function(){}";if(Array.isArray(t))return"["+t.map((function(t){return Vs(t)})).join(",")+"]";var e=Ns.test(t.value),n=Is.test(t.value),i=Ns.test(t.value.replace(Rs,""));if(t.modifiers){var r="",o="",s=[];for(var a in t.modifiers)if(Fs[a])o+=Fs[a],js[a]&&s.push(a);else if("exact"===a){var l=t.modifiers;o+=Hs(["ctrl","shift","alt","meta"].filter((function(t){return!l[t]})).map((function(t){return"$event."+t+"Key"})).join("||"))}else s.push(a);return s.length&&(r+=function(t){return"if(!$event.type.indexOf('key')&&"+t.map(Ws).join("&&")+")return null;"}(s)),o&&(r+=o),"function($event){"+r+(e?"return "+t.value+".apply(null, arguments)":n?"return ("+t.value+").apply(null, arguments)":i?"return "+t.value:t.value)+"}"}return e||n?t.value:"function($event){"+(i?"return "+t.value:t.value)+"}"}function Ws(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=js[t],i=zs[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(i)+")"}var Us={on:function(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:P},Xs=function(t){this.options=t,this.warn=t.warn||Ri,this.transforms=Ni(t.modules,"transformCode"),this.dataGenFns=Ni(t.modules,"genData"),this.directives=D(D({},Us),t.directives);var e=t.isReservedTag||Y;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function $s(t,e){var n=new Xs(e);return{render:"with(this){return "+(t?"script"===t.tag?"null":qs(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function qs(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Gs(t,e);if(t.once&&!t.onceProcessed)return Js(t,e);if(t.for&&!t.forProcessed)return Qs(t,e);if(t.if&&!t.ifProcessed)return Zs(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',i=ia(t,e),r="_t("+n+(i?",function(){return "+i+"}":""),o=t.attrs||t.dynamicAttrs?sa((t.attrs||[]).concat(t.dynamicAttrs||[]).map((function(t){return{name:M(t.name),value:t.value,dynamic:t.dynamic}}))):null,s=t.attrsMap["v-bind"];!o&&!s||i||(r+=",null");o&&(r+=","+o);s&&(r+=(o?"":",null")+","+s);return r+")"}(t,e);var n;if(t.component)n=function(t,e,n){var i=e.inlineTemplate?null:ia(e,n,!0);return"_c("+t+","+ta(e,n)+(i?","+i:"")+")"}(t.component,t,e);else{var i;(!t.plain||t.pre&&e.maybeComponent(t))&&(i=ta(t,e));var r=t.inlineTemplate?null:ia(t,e,!0);n="_c('"+t.tag+"'"+(i?","+i:"")+(r?","+r:"")+")"}for(var o=0;o>>0}(s):"")+")"}(t,t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var o=function(t,e){var n=t.children[0];0;if(n&&1===n.type){var i=$s(n,e.options);return"inlineTemplate:{render:function(){"+i.render+"},staticRenderFns:["+i.staticRenderFns.map((function(t){return"function(){"+t+"}"})).join(",")+"]}"}}(t,e);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b("+n+',"'+t.tag+'",'+sa(t.dynamicAttrs)+")"),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function ea(t){return 1===t.type&&("slot"===t.tag||t.children.some(ea))}function na(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Zs(t,e,na,"null");if(t.for&&!t.forProcessed)return Qs(t,e,na);var i=t.slotScope===ms?"":String(t.slotScope),r="function("+i+"){return "+("template"===t.tag?t.if&&n?"("+t.if+")?"+(ia(t,e)||"undefined")+":undefined":ia(t,e)||"undefined":qs(t,e))+"}",o=i?"":",proxy:true";return"{key:"+(t.slotTarget||'"default"')+",fn:"+r+o+"}"}function ia(t,e,n,i,r){var o=t.children;if(o.length){var s=o[0];if(1===o.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag){var a=n?e.maybeComponent(s)?",1":",0":"";return""+(i||qs)(s,e)+a}var l=n?function(t,e){for(var n=0,i=0;i':'
    ',da.innerHTML.indexOf(" ")>0}var ma=!!q&&pa(!1),ga=!!q&&pa(!0),ba=x((function(t){var e=si(t);return e&&e.innerHTML})),_a=En.prototype.$mount;En.prototype.$mount=function(t,e){if((t=t&&si(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var i=n.template;if(i)if("string"==typeof i)"#"===i.charAt(0)&&(i=ba(i));else{if(!i.nodeType)return this;i=i.innerHTML}else t&&(i=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(i){0;var r=fa(i,{outputSourceRange:!1,shouldDecodeNewlines:ma,shouldDecodeNewlinesForHref:ga,delimiters:n.delimiters,comments:n.comments},this),o=r.render,s=r.staticRenderFns;n.render=o,n.staticRenderFns=s}}return _a.call(this,t,e)},En.compile=fa;const va=En}}]); +(self.webpackChunkNexoPOS_4x=self.webpackChunkNexoPOS_4x||[]).push([[898],{7757:(t,e,n)=>{t.exports=n(3076)},5234:(t,e)=>{!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 of %1",Aquamarine:"Aquamarine",Black:"Black","Block quote":"Block quote",Blue:"Blue",Bold:"Bold","Break text":"Break text","Bulleted List":"Bulleted List",Cancel:"Cancel","Cannot upload file:":"Cannot upload file:","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Column:"Column","Could not insert image at the current position.":"Could not insert image at the current position.","Could not obtain resized image URL.":"Could not obtain resized image URL.","Decrease indent":"Decrease indent","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey",Downloadable:"Downloadable","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Full size image":"Full size image",Green:"Green",Grey:"Grey","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6","Image toolbar":"Image toolbar","image widget":"image widget","In line":"In line","Increase indent":"Increase indent","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image or file":"Insert image or file","Insert media":"Insert media","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table","Inserting image failed":"Inserting image failed",Italic:"Italic","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link URL":"Link URL","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","Numbered List":"Numbered List","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab",Orange:"Orange",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.",Previous:"Previous",Purple:"Purple",Red:"Red",Redo:"Redo","Rich Text Editor":"Rich Text Editor","Rich Text Editor, %0":"Rich Text Editor, %0","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Selecting resized image failed":"Selecting resized image failed","Show more items":"Show more items","Side image":"Side image","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically","Table toolbar":"Table toolbar","Text alternative":"Text alternative","The URL must not be empty.":"The URL must not be empty.","This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on",Turquoise:"Turquoise",Undo:"Undo",Unlink:"Unlink","Upload failed":"Upload failed","Upload in progress":"Upload in progress",White:"White","Widget toolbar":"Widget toolbar","Wrap text":"Wrap text",Yellow:"Yellow"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),window,t.exports=function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=108)}([function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return r}));class i extends Error{constructor(t,e,n){super(`${t}${n?" "+JSON.stringify(n):""}${o(t)}`),this.name="CKEditorError",this.context=e,this.data=n}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const n=new i(t.message,e);throw n.stack=t.stack,n}}function r(t,e){console.warn(...s(t,e))}function o(t){return"\nRead more: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html#error-"+t}function s(t,e){const n=o(t);return e?[t,e,n]:[t,n]}},function(t,e,n){"use strict";var i,r=function(){return void 0===i&&(i=Boolean(window&&document&&document.all&&!window.atob)),i},o=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n.ck-button .ck-tooltip{display:none}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-top-right-radius:unset;border-bottom-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-top-left-radius:unset;border-bottom-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-top-left-radius:unset;border-bottom-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-top-right-radius:unset;border-bottom-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{content:"";position:absolute;width:1px;height:100%;background-color:var(--ck-color-split-button-hover-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}'},function(t,e,n){var i=n(1),r=n(30);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on .ck-tooltip{display:none}.ck.ck-dropdown .ck-dropdown__panel{-webkit-backface-visibility:hidden;display:none;z-index:var(--ck-z-modal);max-width:var(--ck-dropdown-max-width);position:absolute}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{top:100%;bottom:auto}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-modal) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{right:var(--ck-spacing-standard);margin-left:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:7em;overflow:hidden;text-overflow:ellipsis}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{box-shadow:var(--ck-drop-shadow),0 0;background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}"},function(t,e,n){var i=n(1),r=n(32);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-toolbar{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-flow:row nowrap;align-items:center}.ck.ck-toolbar>.ck-toolbar__items{display:flex;flex-flow:row wrap;align-items:center;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);padding:0 var(--ck-spacing-small);border:1px solid var(--ck-color-toolbar-border)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;width:1px;min-width:1px;background:var(--ck-color-toolbar-border);margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{width:100%;margin:0;border-radius:0;border:0}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar[dir=rtl].ck-toolbar_compact>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.ck.ck-toolbar[dir=rtl].ck-toolbar_compact>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl].ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child){margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar[dir=ltr].ck-toolbar_compact>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ck.ck-toolbar[dir=ltr].ck-toolbar_compact>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr].ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child){margin-right:var(--ck-spacing-small)}"},function(t,e,n){var i=n(1),r=n(34);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-list{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{list-style-type:none;background:var(--ck-color-list-background)}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item .ck-button{min-height:unset;width:100%;text-align:left;border-radius:0;padding:calc(var(--ck-line-height-base)*0.2*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*0.4*var(--ck-font-size-base))}.ck.ck-list__item .ck-button .ck-button__label{line-height:calc(var(--ck-line-height-base)*1.2*var(--ck-font-size-base))}.ck.ck-list__item .ck-button:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item .ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item .ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item .ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck.ck-list__separator{height:1px;width:100%;background:var(--ck-color-base-border)}"},function(t,e,n){var i=n(1),r=n(36);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{width:max-content;max-width:var(--ck-toolbar-dropdown-max-width)}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}"},function(t,e,n){var i=n(1),r=n(38);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-dropdown .ck-dropdown__panel .ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list,.ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}"},function(t,e,n){var i=n(1),r=n(40);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0}.ck.ck-editor__editable_inline{overflow:auto;padding:0 var(--ck-spacing-standard);border:1px solid transparent}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-base-foreground)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-base-foreground)}"},function(t,e,n){var i=n(1),r=n(42);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}"},function(t,e,n){var i=n(1),r=n(44);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-form__header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between}:root{--ck-form-header-height:38px}.ck.ck-form__header{padding:var(--ck-spacing-small) var(--ck-spacing-large);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-form__header .ck-form__header__label{font-weight:700}"},function(t,e,n){var i=n(1),r=n(46);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-input-text-width:18em}.ck.ck-input-text{border-radius:0}.ck-rounded-corners .ck.ck-input-text,.ck.ck-input-text.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-text{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);min-width:var(--ck-input-text-width);min-height:var(--ck-ui-component-min-height);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck.ck-input-text:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-input-text[readonly]{border:1px solid var(--ck-color-input-disabled-border);background:var(--ck-color-input-disabled-background);color:var(--ck-color-input-disabled-text)}.ck.ck-input-text[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input-text.ck-error{border-color:var(--ck-color-input-error-border);animation:ck-text-input-shake .3s ease both}.ck.ck-input-text.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-text-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}"},function(t,e,n){var i=n(1),r=n(48);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{pointer-events:none;transform-origin:0 0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);background:var(--ck-color-labeled-field-label-background);padding:0 calc(var(--ck-font-size-tiny)*0.5);line-height:normal;font-weight:400;text-overflow:ellipsis;overflow:hidden;max-width:100%;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-spacing-medium),calc(var(--ck-font-size-base)*0.6)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-spacing-medium)*-1),calc(var(--ck-font-size-base)*0.6)) scale(1)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));background:transparent;padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}"},function(t,e,n){var i=n(1),r=n(50);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{box-shadow:var(--ck-drop-shadow),0 0;min-height:15px;background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{width:0;height:0;border-style:solid}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-left-width:var(--ck-balloon-arrow-half-width);border-bottom-width:var(--ck-balloon-arrow-height);border-right-width:var(--ck-balloon-arrow-half-width);border-top-width:0}.ck.ck-balloon-panel[class*=arrow_n]:before{border-bottom-color:var(--ck-color-panel-border)}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-left-color:transparent;border-right-color:transparent;border-top-color:transparent}.ck.ck-balloon-panel[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background);margin-top:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-left-width:var(--ck-balloon-arrow-half-width);border-bottom-width:0;border-right-width:var(--ck-balloon-arrow-half-width);border-top-width:var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-top-color:var(--ck-color-panel-border);filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent}.ck.ck-balloon-panel[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background);margin-bottom:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{right:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{right:25%;margin-right:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{right:25%;margin-right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}'},function(t,e,n){var i=n(1),r=n(52);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-balloon-rotator__navigation{display:flex;align-items:center;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-right:var(--ck-spacing-standard);margin-left:var(--ck-spacing-small)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}"},function(t,e,n){var i=n(1),r=n(54);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-modal) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{box-shadow:var(--ck-drop-shadow),0 0;min-height:15px;background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);width:100%;height:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}"},function(t,e,n){var i=n(1),r=n(56);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{z-index:var(--ck-z-modal);position:fixed;top:0}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{top:auto;position:absolute}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{box-shadow:var(--ck-drop-shadow),0 0;border-width:0 1px 1px;border-top-left-radius:0;border-top-right-radius:0}"},function(t,e,n){var i=n(1),r=n(58);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}"},function(t,e,n){var i=n(1),r=n(60);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-placeholder,.ck .ck-placeholder{position:relative}.ck.ck-placeholder:before,.ck .ck-placeholder:before{position:absolute;left:0;right:0;content:attr(data-placeholder);pointer-events:none}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-placeholder:before,.ck .ck-placeholder:before{cursor:text;color:var(--ck-color-engine-placeholder-text)}"},function(t,e,n){var i=n(1),r=n(62);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-modal)}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-bottom-width:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar{border-bottom-width:1px;border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}"},function(t,e,n){var i=n(1),r=n(64);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck .ck-widget .ck-widget__type-around__button{display:block;position:absolute;overflow:hidden;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{position:absolute;top:50%;left:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{top:calc(var(--ck-widget-outline-thickness)*-0.5);left:min(10%,30px);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-0.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;position:absolute;top:1px;left:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;position:absolute;left:0;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{top:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{width:var(--ck-widget-type-around-button-size);height:var(--ck-widget-type-around-button-size);background:var(--ck-color-widget-type-around-button);border-radius:100px;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);opacity:0;pointer-events:none}.ck .ck-widget .ck-widget__type-around__button svg{width:10px;height:8px;transform:translate(-50%,-50%);transition:transform .5s ease;margin-top:1px}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{width:calc(var(--ck-widget-type-around-button-size) - 2px);height:calc(var(--ck-widget-type-around-button-size) - 2px);border-radius:100px;background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3))}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{pointer-events:none;height:1px;animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;outline:1px solid hsla(0,0%,100%,.5);background:var(--ck-color-base-text)}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}'},function(t,e,n){var i=n(1),r=n(66);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);color:var(--ck-color-resizer-tooltip-text);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);font-size:var(--ck-font-size-tiny);display:block;padding:0 var(--ck-spacing-small);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{top:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{top:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{top:calc(var(--ck-resizer-tooltip-height)*-1);left:50%;transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-width:var(--ck-widget-outline-thickness);outline-style:solid;outline-color:transparent;transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;background-color:var(--ck-color-widget-editable-focus-background)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{padding:4px;box-sizing:border-box;background-color:transparent;opacity:0;transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;transform:translateY(-100%);left:calc(0px - var(--ck-widget-outline-thickness));top:0}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{width:var(--ck-widget-handler-icon-size);height:var(--ck-widget-handler-icon-size);color:var(--ck-color-widget-drag-handler-icon-color)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{opacity:1;background-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:1;background-color:var(--ck-color-focus-border)}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}"},function(t,e,n){var i=n(1),r=n(68);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;position:relative;pointer-events:none}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-0.5);top:calc(var(--ck-clipboard-drop-target-dot-height)*-0.5);border:1px solid var(--ck-clipboard-drop-target-color);background:var(--ck-clipboard-drop-target-color);margin-left:-1px}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{content:"";width:0;height:0;display:block;position:absolute;left:50%;top:calc(var(--ck-clipboard-drop-target-dot-height)*-0.5);transform:translateX(-50%);border-left:calc(var(--ck-clipboard-drop-target-dot-width)*0.5) solid transparent;border-bottom:0 solid transparent;border-right:calc(var(--ck-clipboard-drop-target-dot-width)*0.5) solid transparent;border-top:calc(var(--ck-clipboard-drop-target-dot-height)) solid var(--ck-clipboard-drop-target-color)}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}'},function(t,e,n){var i=n(1),r=n(70);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck-content blockquote{overflow:hidden;padding-right:1.5em;padding-left:1.5em;margin-left:0;margin-right:0;font-style:italic;border-left:5px solid #ccc}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}"},function(t,e){t.exports=".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}"},function(t,e,n){var i=n(1),r=n(73);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;position:absolute;pointer-events:none;left:0;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{position:absolute;pointer-events:all}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{width:var(--ck-resizer-size);height:var(--ck-resizer-size);background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{top:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{top:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}"},function(t,e,n){var i=n(1),r=n(75);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}"},function(t,e){t.exports='.ck-vertical-form .ck-button:after{content:"";width:0;position:absolute;right:-1px;top:var(--ck-spacing-small);bottom:var(--ck-spacing-small);z-index:1}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{content:"";width:0;position:absolute;right:-1px;top:var(--ck-spacing-small);bottom:var(--ck-spacing-small);z-index:1}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-text-width)*0.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){padding:var(--ck-spacing-standard);margin-top:var(--ck-spacing-large);border-radius:0;border:0;border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after,[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}'},function(t,e){t.exports=".ck-content .image{display:table;clear:both;text-align:center;margin:.9em auto;min-width:50px}.ck-content .image img{display:block;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{display:inline-flex;max-width:100%;align-items:flex-start}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{padding-left:inherit;padding-right:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ck.ck-editor__editable .image-inline.ck-widget_selected,.ck.ck-editor__editable .image.ck-widget_selected{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}"},function(t,e,n){var i=n(1),r=n(79);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highligted-background:#fd0}.ck-content .image>figcaption{display:table-caption;caption-side:bottom;word-break:break-word;color:var(--ck-color-image-caption-text);background-color:var(--ck-color-image-caption-background);padding:.6em;font-size:.75em;outline-offset:-1px}.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highligted-background)}to{background-color:var(--ck-color-image-caption-background)}}"},function(t,e,n){var i=n(1),r=n(81);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-right:0;margin-left:auto}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-top:var(--ck-inline-image-style-spacing);margin-bottom:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}"},function(t,e,n){var i=n(1),r=n(83);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image-inline .ck-progress-bar,.ck.ck-editor__editable .image .ck-progress-bar{position:absolute;top:0;left:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}.ck.ck-editor__editable .image-inline .ck-progress-bar,.ck.ck-editor__editable .image .ck-progress-bar{height:2px;width:0;background:var(--ck-color-upload-bar-background);transition:width .1s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}"},function(t,e,n){var i=n(1),r=n(85);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck-image-upload-complete-icon{display:block;position:absolute;top:min(var(--ck-spacing-medium),6%);right:min(var(--ck-spacing-medium),6%);border-radius:50%;z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{opacity:0;background:var(--ck-color-image-upload-icon-background);animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;animation-fill-mode:forwards,forwards;animation-duration:.5s,.5s;font-size:calc(1px*var(--ck-image-upload-icon-size));animation-delay:0ms,3s;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{left:25%;top:50%;opacity:0;height:0;width:0;transform:scaleX(-1) rotate(135deg);transform-origin:left top;border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);animation-name:ck-upload-complete-icon-check;animation-duration:.5s;animation-delay:.5s;animation-fill-mode:forwards;box-sizing:border-box}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{opacity:1;width:0;height:0}33%{width:.3em;height:0}to{opacity:1;width:.3em;height:.45em}}'},function(t,e,n){var i=n(1),r=n(87);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck .ck-upload-placeholder-loader{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px}.ck .ck-image-upload-placeholder{width:100%;margin:0}.ck .ck-upload-placeholder-loader{width:100%;height:100%}.ck .ck-upload-placeholder-loader:before{width:var(--ck-upload-placeholder-loader-size);height:var(--ck-upload-placeholder-loader-size);border-radius:50%;border-top:3px solid var(--ck-color-upload-placeholder-loader);border-right:2px solid transparent;animation:ck-upload-placeholder-loader 1s linear infinite}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}'},function(t,e,n){var i=n(1),r=n(89);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{height:100%;border-right:1px solid var(--ck-color-base-text);margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}"},function(t,e,n){var i=n(1),r=n(91);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-link-form{display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{padding:0;min-width:var(--ck-input-text-width)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical .ck-button{padding:var(--ck-spacing-standard);margin:0;border-radius:0;border:0;border-top:1px solid var(--ck-color-base-border);width:50%}[dir=ltr] .ck.ck-link-form_layout-vertical .ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:var(--ck-spacing-standard) var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{border:0;padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}"},function(t,e,n){var i=n(1),r=n(93);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{padding:0 var(--ck-spacing-medium);color:var(--ck-color-link-default);text-overflow:ellipsis;cursor:pointer;max-width:var(--ck-input-text-width);min-width:3em;text-align:center}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{min-width:0;max-width:100%}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}"},function(t,e,n){var i=n(1),r=n(95);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports='.ck-media__wrapper .ck-media__placeholder{display:flex;flex-direction:column;align-items:center}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:block}@media (hover:none){.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:none}}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url{max-width:100%;position:relative}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url:hover .ck-tooltip{visibility:visible;opacity:1}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text{overflow:hidden;display:block}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *{display:none}.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper>:not(.ck-media__placeholder),.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder{pointer-events:none}:root{--ck-media-embed-placeholder-icon-size:3em;--ck-color-media-embed-placeholder-url-text:#757575;--ck-color-media-embed-placeholder-url-text-hover:var(--ck-color-base-text)}.ck-media__wrapper{margin:0 auto}.ck-media__wrapper .ck-media__placeholder{padding:calc(var(--ck-spacing-standard)*3);background:var(--ck-color-base-foreground)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon{min-width:var(--ck-media-embed-placeholder-icon-size);height:var(--ck-media-embed-placeholder-icon-size);margin-bottom:var(--ck-spacing-large);background-position:50%;background-size:cover}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon{width:100%;height:100%}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text{color:var(--ck-color-media-embed-placeholder-url-text);white-space:nowrap;text-align:center;font-style:italic;text-overflow:ellipsis}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:var(--ck-color-media-embed-placeholder-url-text-hover);cursor:pointer;text-decoration:underline}.ck-media__wrapper[data-oembed-url*="open.spotify.com"]{max-width:300px;max-height:380px}.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMDAzLjc4IDEuNjFoNDkuNjIxYzEuNjk0IDAgMy4xOS0uNzk4IDQuMTQ2LTIuMDM3eiIgZmlsbD0iIzVjODhjNSIvPjxwYXRoIGQ9Ik0yMjYuNzQyIDIyMi45ODhjLTkuMjY2IDAtMTYuNzc3IDcuMTctMTYuNzc3IDE2LjAxNC4wMDcgMi43NjIuNjYzIDUuNDc0IDIuMDkzIDcuODc1LjQzLjcwMy44MyAxLjQwOCAxLjE5IDIuMTA3LjMzMy41MDIuNjUgMS4wMDUuOTUgMS41MDguMzQzLjQ3Ny42NzMuOTU3Ljk4OCAxLjQ0IDEuMzEgMS43NjkgMi41IDMuNTAyIDMuNjM3IDUuMTY4Ljc5MyAxLjI3NSAxLjY4MyAyLjY0IDIuNDY2IDMuOTkgMi4zNjMgNC4wOTQgNC4wMDcgOC4wOTIgNC42IDEzLjkxNHYuMDEyYy4xODIuNDEyLjUxNi42NjYuODc5LjY2Ny40MDMtLjAwMS43NjgtLjMxNC45My0uNzk5LjYwMy01Ljc1NiAyLjIzOC05LjcyOSA0LjU4NS0xMy43OTQuNzgyLTEuMzUgMS42NzMtMi43MTUgMi40NjUtMy45OSAxLjEzNy0xLjY2NiAyLjMyOC0zLjQgMy42MzgtNS4xNjkuMzE1LS40ODIuNjQ1LS45NjIuOTg4LTEuNDM5LjMtLjUwMy42MTctMS4wMDYuOTUtMS41MDguMzU5LS43Ljc2LTEuNDA0IDEuMTktMi4xMDcgMS40MjYtMi40MDIgMi01LjExNCAyLjAwNC03Ljg3NSAwLTguODQ0LTcuNTExLTE2LjAxNC0xNi43NzYtMTYuMDE0eiIgZmlsbD0iI2RkNGIzZSIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48ZWxsaXBzZSByeT0iNS41NjQiIHJ4PSI1LjgyOCIgY3k9IjIzOS4wMDIiIGN4PSIyMjYuNzQyIiBmaWxsPSIjODAyZDI3IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0xOTAuMzAxIDIzNy4yODNjLTQuNjcgMC04LjQ1NyAzLjg1My04LjQ1NyA4LjYwNnMzLjc4NiA4LjYwNyA4LjQ1NyA4LjYwN2MzLjA0MyAwIDQuODA2LS45NTggNi4zMzctMi41MTYgMS41My0xLjU1NyAyLjA4Ny0zLjkxMyAyLjA4Ny02LjI5IDAtLjM2Mi0uMDIzLS43MjItLjA2NC0xLjA3OWgtOC4yNTd2My4wNDNoNC44NWMtLjE5Ny43NTktLjUzMSAxLjQ1LTEuMDU4IDEuOTg2LS45NDIuOTU4LTIuMDI4IDEuNTQ4LTMuOTAxIDEuNTQ4LTIuODc2IDAtNS4yMDgtMi4zNzItNS4yMDgtNS4yOTkgMC0yLjkyNiAyLjMzMi01LjI5OSA1LjIwOC01LjI5OSAxLjM5OSAwIDIuNjE4LjQwNyAzLjU4NCAxLjI5M2wyLjM4MS0yLjM4YzAtLjAwMi0uMDAzLS4wMDQtLjAwNC0uMDA1LTEuNTg4LTEuNTI0LTMuNjItMi4yMTUtNS45NTUtMi4yMTV6bTQuNDMgNS42NmwuMDAzLjAwNnYtLjAwM3oiIGZpbGw9IiNmZmYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTIxNS4xODQgMjUxLjkyOWwtNy45OCA3Ljk3OSAyOC40NzcgMjguNDc1YTUuMjMzIDUuMjMzIDAgMDAuNDQ5LTIuMTIzdi0zMS4xNjVjLS40NjkuNjc1LS45MzQgMS4zNDktMS4zODIgMi4wMDUtLjc5MiAxLjI3NS0xLjY4MiAyLjY0LTIuNDY1IDMuOTktMi4zNDcgNC4wNjUtMy45ODIgOC4wMzgtNC41ODUgMTMuNzk0LS4xNjIuNDg1LS41MjcuNzk4LS45My43OTktLjM2My0uMDAxLS42OTctLjI1NS0uODc5LS42Njd2LS4wMTJjLS41OTMtNS44MjItMi4yMzctOS44Mi00LjYtMTMuOTE0LS43ODMtMS4zNS0xLjY3My0yLjcxNS0yLjQ2Ni0zLjk5LTEuMTM3LTEuNjY2LTIuMzI3LTMuNC0zLjYzNy01LjE2OWwtLjAwMi0uMDAzeiIgZmlsbD0iI2MzYzNjMyIvPjxwYXRoIGQ9Ik0yMTIuOTgzIDI0OC40OTVsLTM2Ljk1MiAzNi45NTN2LjgxMmE1LjIyNyA1LjIyNyAwIDAwNS4yMzggNS4yMzhoMS4wMTVsMzUuNjY2LTM1LjY2NmExMzYuMjc1IDEzNi4yNzUgMCAwMC0yLjc2NC0zLjkgMzcuNTc1IDM3LjU3NSAwIDAwLS45ODktMS40NCAzNS4xMjcgMzUuMTI3IDAgMDAtLjk1LTEuNTA4Yy0uMDgzLS4xNjItLjE3Ni0uMzI2LS4yNjQtLjQ4OXoiIGZpbGw9IiNmZGRjNGYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTIxMS45OTggMjYxLjA4M2wtNi4xNTIgNi4xNTEgMjQuMjY0IDI0LjI2NGguNzgxYTUuMjI3IDUuMjI3IDAgMDA1LjIzOS01LjIzOHYtMS4wNDV6IiBmaWxsPSIjZmZmIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjwvZz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder{background:#4268b3}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05NjcuNDg0IDBINTYuNTE3QzI1LjMwNCAwIDAgMjUuMzA0IDAgNTYuNTE3djkxMC45NjZDMCA5OTguNjk0IDI1LjI5NyAxMDI0IDU2LjUyMiAxMDI0SDU0N1Y2MjhINDE0VjQ3M2gxMzNWMzU5LjAyOWMwLTEzMi4yNjIgODAuNzczLTIwNC4yODIgMTk4Ljc1Ni0yMDQuMjgyIDU2LjUxMyAwIDEwNS4wODYgNC4yMDggMTE5LjI0NCA2LjA4OVYyOTlsLTgxLjYxNi4wMzdjLTYzLjk5MyAwLTc2LjM4NCAzMC40OTItNzYuMzg0IDc1LjIzNlY0NzNoMTUzLjQ4N2wtMTkuOTg2IDE1NUg3MDd2Mzk2aDI2MC40ODRjMzEuMjEzIDAgNTYuNTE2LTI1LjMwMyA1Ni41MTYtNTYuNTE2VjU2LjUxNUMxMDI0IDI1LjMwMyA5OTguNjk3IDAgOTY3LjQ4NCAwIiBmaWxsPSIjRkZGRkZFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#cdf}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder{background:linear-gradient(-135deg,#1400c7,#b800b1,#f50000)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTA0IiBoZWlnaHQ9IjUwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIC4xNTloNTAzLjg0MVY1MDMuOTRIMHoiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48cGF0aCBkPSJNMjUxLjkyMS4xNTljLTY4LjQxOCAwLTc2Ljk5Ny4yOS0xMDMuODY3IDEuNTE2LTI2LjgxNCAxLjIyMy00NS4xMjcgNS40ODItNjEuMTUxIDExLjcxLTE2LjU2NiA2LjQzNy0zMC42MTUgMTUuMDUxLTQ0LjYyMSAyOS4wNTYtMTQuMDA1IDE0LjAwNi0yMi42MTkgMjguMDU1LTI5LjA1NiA0NC42MjEtNi4yMjggMTYuMDI0LTEwLjQ4NyAzNC4zMzctMTEuNzEgNjEuMTUxQy4yOSAxNzUuMDgzIDAgMTgzLjY2MiAwIDI1Mi4wOGMwIDY4LjQxNy4yOSA3Ni45OTYgMS41MTYgMTAzLjg2NiAxLjIyMyAyNi44MTQgNS40ODIgNDUuMTI3IDExLjcxIDYxLjE1MSA2LjQzNyAxNi41NjYgMTUuMDUxIDMwLjYxNSAyOS4wNTYgNDQuNjIxIDE0LjAwNiAxNC4wMDUgMjguMDU1IDIyLjYxOSA0NC42MjEgMjkuMDU3IDE2LjAyNCA2LjIyNyAzNC4zMzcgMTAuNDg2IDYxLjE1MSAxMS43MDkgMjYuODcgMS4yMjYgMzUuNDQ5IDEuNTE2IDEwMy44NjcgMS41MTYgNjguNDE3IDAgNzYuOTk2LS4yOSAxMDMuODY2LTEuNTE2IDI2LjgxNC0xLjIyMyA0NS4xMjctNS40ODIgNjEuMTUxLTExLjcwOSAxNi41NjYtNi40MzggMzAuNjE1LTE1LjA1MiA0NC42MjEtMjkuMDU3IDE0LjAwNS0xNC4wMDYgMjIuNjE5LTI4LjA1NSAyOS4wNTctNDQuNjIxIDYuMjI3LTE2LjAyNCAxMC40ODYtMzQuMzM3IDExLjcwOS02MS4xNTEgMS4yMjYtMjYuODcgMS41MTYtMzUuNDQ5IDEuNTE2LTEwMy44NjYgMC02OC40MTgtLjI5LTc2Ljk5Ny0xLjUxNi0xMDMuODY3LTEuMjIzLTI2LjgxNC01LjQ4Mi00NS4xMjctMTEuNzA5LTYxLjE1MS02LjQzOC0xNi41NjYtMTUuMDUyLTMwLjYxNS0yOS4wNTctNDQuNjIxLTE0LjAwNi0xNC4wMDUtMjguMDU1LTIyLjYxOS00NC42MjEtMjkuMDU2LTE2LjAyNC02LjIyOC0zNC4zMzctMTAuNDg3LTYxLjE1MS0xMS43MUMzMjguOTE3LjQ0OSAzMjAuMzM4LjE1OSAyNTEuOTIxLjE1OXptMCA0NS4zOTFjNjcuMjY1IDAgNzUuMjMzLjI1NyAxMDEuNzk3IDEuNDY5IDI0LjU2MiAxLjEyIDM3LjkwMSA1LjIyNCA0Ni43NzggOC42NzQgMTEuNzU5IDQuNTcgMjAuMTUxIDEwLjAyOSAyOC45NjYgMTguODQ1IDguODE2IDguODE1IDE0LjI3NSAxNy4yMDcgMTguODQ1IDI4Ljk2NiAzLjQ1IDguODc3IDcuNTU0IDIyLjIxNiA4LjY3NCA0Ni43NzggMS4yMTIgMjYuNTY0IDEuNDY5IDM0LjUzMiAxLjQ2OSAxMDEuNzk4IDAgNjcuMjY1LS4yNTcgNzUuMjMzLTEuNDY5IDEwMS43OTctMS4xMiAyNC41NjItNS4yMjQgMzcuOTAxLTguNjc0IDQ2Ljc3OC00LjU3IDExLjc1OS0xMC4wMjkgMjAuMTUxLTE4Ljg0NSAyOC45NjYtOC44MTUgOC44MTYtMTcuMjA3IDE0LjI3NS0yOC45NjYgMTguODQ1LTguODc3IDMuNDUtMjIuMjE2IDcuNTU0LTQ2Ljc3OCA4LjY3NC0yNi41NiAxLjIxMi0zNC41MjcgMS40NjktMTAxLjc5NyAxLjQ2OS02Ny4yNzEgMC03NS4yMzctLjI1Ny0xMDEuNzk4LTEuNDY5LTI0LjU2Mi0xLjEyLTM3LjkwMS01LjIyNC00Ni43NzgtOC42NzQtMTEuNzU5LTQuNTctMjAuMTUxLTEwLjAyOS0yOC45NjYtMTguODQ1LTguODE1LTguODE1LTE0LjI3NS0xNy4yMDctMTguODQ1LTI4Ljk2Ni0zLjQ1LTguODc3LTcuNTU0LTIyLjIxNi04LjY3NC00Ni43NzgtMS4yMTItMjYuNTY0LTEuNDY5LTM0LjUzMi0xLjQ2OS0xMDEuNzk3IDAtNjcuMjY2LjI1Ny03NS4yMzQgMS40NjktMTAxLjc5OCAxLjEyLTI0LjU2MiA1LjIyNC0zNy45MDEgOC42NzQtNDYuNzc4IDQuNTctMTEuNzU5IDEwLjAyOS0yMC4xNTEgMTguODQ1LTI4Ljk2NiA4LjgxNS04LjgxNiAxNy4yMDctMTQuMjc1IDI4Ljk2Ni0xOC44NDUgOC44NzctMy40NSAyMi4yMTYtNy41NTQgNDYuNzc4LTguNjc0IDI2LjU2NC0xLjIxMiAzNC41MzItMS40NjkgMTAxLjc5OC0xLjQ2OXoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48cGF0aCBkPSJNMjUxLjkyMSAzMzYuMDUzYy00Ni4zNzggMC04My45NzQtMzcuNTk2LTgzLjk3NC04My45NzMgMC00Ni4zNzggMzcuNTk2LTgzLjk3NCA4My45NzQtODMuOTc0IDQ2LjM3NyAwIDgzLjk3MyAzNy41OTYgODMuOTczIDgzLjk3NCAwIDQ2LjM3Ny0zNy41OTYgODMuOTczLTgzLjk3MyA4My45NzN6bTAtMjEzLjMzOGMtNzEuNDQ3IDAtMTI5LjM2NSA1Ny45MTgtMTI5LjM2NSAxMjkuMzY1IDAgNzEuNDQ2IDU3LjkxOCAxMjkuMzY0IDEyOS4zNjUgMTI5LjM2NCA3MS40NDYgMCAxMjkuMzY0LTU3LjkxOCAxMjkuMzY0LTEyOS4zNjQgMC03MS40NDctNTcuOTE4LTEyOS4zNjUtMTI5LjM2NC0xMjkuMzY1ek00MTYuNjI3IDExNy42MDRjMCAxNi42OTYtMTMuNTM1IDMwLjIzLTMwLjIzMSAzMC4yMy0xNi42OTUgMC0zMC4yMy0xMy41MzQtMzAuMjMtMzAuMjMgMC0xNi42OTYgMTMuNTM1LTMwLjIzMSAzMC4yMy0zMC4yMzEgMTYuNjk2IDAgMzAuMjMxIDEzLjUzNSAzMC4yMzEgMzAuMjMxIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg==)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#ffe0fe}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder{background:linear-gradient(90deg,#71c6f4,#0d70a5)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDAwIj48cGF0aCBkPSJNNDAwIDIwMGMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDBTMCAzMTAuNSAwIDIwMCA4OS41IDAgMjAwIDBzMjAwIDg5LjUgMjAwIDIwMHpNMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItLjEtNi4yIDkuNC02LjggMTcuNi0xNS4zIDI0LjEtMjUtOC42IDMuOC0xNy45IDYuNC0yNy43IDcuNiAxMC02IDE3LjYtMTUuNCAyMS4yLTI2LjctOS4zIDUuNS0xOS42IDkuNS0zMC42IDExLjctOC44LTkuNC0yMS4zLTE1LjItMzUuMi0xNS4yLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4yIDAgMy44LjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LS4yLTE1LjMtMi40LTIxLjgtNnYuNmMwIDIzLjQgMTYuNiA0Mi44IDM4LjcgNDcuMy00IDEuMS04LjMgMS43LTEyLjcgMS43LTMuMSAwLTYuMS0uMy05LjEtLjkgNi4xIDE5LjIgMjMuOSAzMy4xIDQ1IDMzLjUtMTYuNSAxMi45LTM3LjMgMjAuNi01OS45IDIwLjYtMy45IDAtNy43LS4yLTExLjUtLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiIGZpbGw9IiNmZmYiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text{color:#b8e6ff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}'},function(t,e,n){var i=n(1),r=n(97);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck.ck-media-form{display:flex;align-items:flex-start;flex-direction:row;flex-wrap:nowrap}.ck.ck-media-form .ck-labeled-field-view{display:inline-block}.ck.ck-media-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-media-form{flex-wrap:wrap}.ck.ck-media-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-media-form .ck-button{flex-basis:50%}}"},function(t,e,n){var i=n(1),r=n(99);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck-content .media{clear:both;margin:.9em 0;display:block;min-width:15em}"},function(t,e,n){var i=n(1),r=n(101);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=":root{--ck-color-table-focused-cell-background:rgba(158,207,250,0.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-table-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}"},function(t,e,n){var i=n(1),r=n(103);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2);padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0}.ck .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{width:var(--ck-insert-table-dropdown-box-width);height:var(--ck-insert-table-dropdown-box-height);margin:var(--ck-insert-table-dropdown-box-margin);border:1px solid var(--ck-color-base-border);border-radius:1px}.ck .ck-insert-table-dropdown-grid-box.ck-on{border-color:var(--ck-color-focus-border);background:var(--ck-color-focus-outer-shadow)}"},function(t,e,n){var i=n(1),r=n(105);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=':root{--ck-table-selected-cell-background:rgba(158,207,250,0.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{position:relative;caret-color:transparent;outline:unset;box-shadow:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{content:"";pointer-events:none;background-color:var(--ck-table-selected-cell-background);position:absolute;top:0;left:0;right:0;bottom:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget_selected{outline:unset}'},function(t,e,n){var i=n(1),r=n(107);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[t.i,r,""]]),i(r,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),t.exports=r.locals||{}},function(t,e){t.exports=".ck-content .table{margin:.9em auto;display:table}.ck-content .table table{border-collapse:collapse;border-spacing:0;width:100%;height:100%;border:1px double #b3b3b3}.ck-content .table table td,.ck-content .table table th{min-width:2em;padding:.4em;border:1px solid #bfbfbf}.ck-content .table table th{font-weight:700;background:hsla(0,0%,0%,5%)}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}"},function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return Cv}));var i=function(){return function t(){t.called=!0}};class r{constructor(t,e){this.source=t,this.name=e,this.path=[],this.stop=i(),this.off=i()}}const o=new Array(256).fill().map(((t,e)=>("0"+e.toString(16)).slice(-2)));function s(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0,i=4294967296*Math.random()>>>0;return"e"+o[t>>0&255]+o[t>>8&255]+o[t>>16&255]+o[t>>24&255]+o[e>>0&255]+o[e>>8&255]+o[e>>16&255]+o[e>>24&255]+o[n>>0&255]+o[n>>8&255]+o[n>>16&255]+o[n>>24&255]+o[i>>0&255]+o[i>>8&255]+o[i>>16&255]+o[i>>24&255]}var a={get(t){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5},l=(n(6),n(0));const c=Symbol("listeningTo"),u=Symbol("emitterId");var d={on(t,e,n={}){this.listenTo(this,t,e,n)},once(t,e,n){let i=!1;this.listenTo(this,t,(function(t,...n){i||(i=!0,t.off(),e.call(this,t,...n))}),n)},off(t,e){this.stopListening(this,t,e)},listenTo(t,e,n,i={}){let r,o;this[c]||(this[c]={});const s=this[c];f(t)||h(t);const a=f(t);(r=s[a])||(r=s[a]={emitter:t,callbacks:{}}),(o=r.callbacks[e])||(o=r.callbacks[e]=[]),o.push(n),function(t,e,n,i,r){e._addEventListener?e._addEventListener(n,i,r):t._addEventListener.call(e,n,i,r)}(this,t,e,n,i)},stopListening(t,e,n){const i=this[c];let r=t&&f(t);const o=i&&r&&i[r],s=o&&e&&o.callbacks[e];if(!(!i||t&&!o||e&&!s))if(n)b(this,t,e,n),-1!==s.indexOf(n)&&(1===s.length?delete o.callbacks[e]:b(this,t,e,n));else if(s){for(;n=s.pop();)b(this,t,e,n);delete o.callbacks[e]}else if(o){for(e in o.callbacks)this.stopListening(t,e);delete i[r]}else{for(r in i)this.stopListening(i[r].emitter);delete this[c]}},fire(t,...e){try{const n=t instanceof r?t:new r(this,t),i=n.name;let o=function t(e,n){let i;return e._events&&(i=e._events[n])&&i.callbacks.length?i.callbacks:n.indexOf(":")>-1?t(e,n.substr(0,n.lastIndexOf(":"))):null}(this,i);if(n.path.push(this),o){const t=[n,...e];o=Array.from(o);for(let e=0;e{this._delegations||(this._delegations=new Map),t.forEach((t=>{const i=this._delegations.get(t);i?i.set(e,n):this._delegations.set(t,new Map([[e,n]]))}))}}},stopDelegating(t,e){if(this._delegations)if(t)if(e){const n=this._delegations.get(t);n&&n.delete(e)}else this._delegations.delete(t);else this._delegations.clear()},_addEventListener(t,e,n){!function(t,e){const n=p(t);if(n[e])return;let i=e,r=null;const o=[];for(;""!==i&&!n[i];)n[i]={callbacks:[],childEvents:[]},o.push(n[i]),r&&n[i].childEvents.push(r),r=i,i=i.substr(0,i.lastIndexOf(":"));if(""!==i){for(const t of o)t.callbacks=n[i].callbacks.slice();n[i].childEvents.push(r)}}(this,t);const i=m(this,t),r=a.get(n.priority),o={callback:e,priority:r};for(const t of i){let e=!1;for(let n=0;n0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(it),st=function(t,e){return ot(et(t,e,K),t+"")},at=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},lt=function(t){return null!=t&&at(t.length)&&!E(t)},ct=/^(?:0|[1-9]\d*)$/,ut=function(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&ct.test(t))&&t>-1&&t%1==0&&t1?n[r-1]:void 0,s=r>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(r--,o):void 0,s&&dt(n[0],n[1],s)&&(o=r<3?void 0:o,r=1),e=Object(e);++i{this.set(e,t[e])}),this);Wt(this);const n=this[Nt];if(t in this&&!n.has(t))throw new l.a("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n.get(t),set(e){const i=n.get(t);let r=this.fire("set:"+t,t,e,i);void 0===r&&(r=e),i===r&&n.has(t)||(n.set(t,r),this.fire("change:"+t,t,r,i))}}),this[t]=e},bind(...t){if(!t.length||!$t(t))throw new l.a("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new l.a("observable-bind-duplicate-properties",this);Wt(this);const e=this[jt];t.forEach((t=>{if(e.has(t))throw new l.a("observable-bind-rebind",this)}));const n=new Map;return t.forEach((t=>{const i={property:t,to:[]};e.set(t,i),n.set(t,i)})),{to:Ut,toMany:Xt,_observable:this,_bindProperties:t,_to:[],_bindings:n}},unbind(...t){if(!this[Nt])return;const e=this[jt],n=this[Rt];if(t.length){if(!$t(t))throw new l.a("observable-unbind-wrong-properties",this);t.forEach((t=>{const i=e.get(t);if(!i)return;let r,o,s,a;i.to.forEach((t=>{r=t[0],o=t[1],s=n.get(r),a=s[o],a.delete(i),a.size||delete s[o],Object.keys(s).length||(n.delete(r),this.stopListening(r,"change"))})),e.delete(t)}))}else n.forEach(((t,e)=>{this.stopListening(e,"change")})),n.clear(),e.clear()},decorate(t){const e=this[t];if(!e)throw new l.a("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,((t,n)=>{t.return=e.apply(this,n)})),this[t]=function(...e){return this.fire(t,e)},this[t][Ht]=e,this[Ft]||(this[Ft]=[]),this[Ft].push(t)}};zt(Bt,d),Bt.stopListening=function(t,e,n){if(!t&&this[Ft]){for(const t of this[Ft])this[t]=this[t][Ht];delete this[Ft]}d.stopListening.call(this,t,e,n)};var Vt=Bt;function Wt(t){t[Nt]||(Object.defineProperty(t,Nt,{value:new Map}),Object.defineProperty(t,Rt,{value:new Map}),Object.defineProperty(t,jt,{value:new Map}))}function Ut(...t){const e=function(...t){if(!t.length)throw new l.a("observable-bind-to-parse-error",null);const e={to:[]};let n;return"function"==typeof t[t.length-1]&&(e.callback=t.pop()),t.forEach((t=>{if("string"==typeof t)n.properties.push(t);else{if("object"!=typeof t)throw new l.a("observable-bind-to-parse-error",null);n={observable:t,properties:[]},e.to.push(n)}})),e}(...t),n=Array.from(this._bindings.keys()),i=n.length;if(!e.callback&&e.to.length>1)throw new l.a("observable-bind-to-no-callback",this);if(i>1&&e.callback)throw new l.a("observable-bind-to-extra-callback",this);var r;e.to.forEach((t=>{if(t.properties.length&&t.properties.length!==i)throw new l.a("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)})),this._to=e.to,e.callback&&(this._bindings.get(n[0]).callback=e.callback),r=this._observable,this._to.forEach((t=>{const e=r[Rt];let n;e.get(t.observable)||r.listenTo(t.observable,"change",((i,o)=>{n=e.get(t.observable)[o],n&&n.forEach((t=>{qt(r,t.property)}))}))})),function(t){let e;t._bindings.forEach(((n,i)=>{t._to.forEach((r=>{e=r.properties[n.callback?0:t._bindProperties.indexOf(i)],n.to.push([r.observable,e]),function(t,e,n,i){const r=t[Rt],o=r.get(n),s=o||{};s[i]||(s[i]=new Set),s[i].add(e),o||r.set(n,s)}(t._observable,n,r.observable,e)}))}))}(this),this._bindProperties.forEach((t=>{qt(this._observable,t)}))}function Xt(t,e,n){if(this._bindings.size>1)throw new l.a("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const n=t.map((t=>[t,e]));return Array.prototype.concat.apply([],n)}(t,e),n)}function $t(t){return t.every((t=>"string"==typeof t))}function qt(t,e){const n=t[jt].get(e);let i;n.callback?i=n.callback.apply(t,n.to.map((t=>t[0][t[1]]))):(i=n.to[0],i=i[0][i[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=i:t.set(e,i)}function Gt(t,...e){e.forEach((e=>{Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)).forEach((n=>{if(n in t.prototype)return;const i=Object.getOwnPropertyDescriptor(e,n);i.enumerable=!1,Object.defineProperty(t.prototype,n,i)}))}))}class Jt{constructor(t){this.editor=t,this.set("isEnabled",!0),this._disableStack=new Set}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",Zt,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",Zt),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function Zt(t){t.return=!1,t.stop()}Gt(Jt,Vt);class Kt{constructor(t){this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.on("execute",(t=>{this.isEnabled||t.stop()}),{priority:"high"}),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")}))}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",Qt,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",Qt),this.refresh())}execute(){}destroy(){this.stopListening()}}function Qt(t){t.return=!1,t.stop()}Gt(Kt,Vt);class te extends Kt{constructor(t){super(t),this._childCommands=[]}refresh(){}execute(...t){const e=this._getFirstEnabledCommand();return null!=e&&e.execute(t)}registerChildCommand(t){this._childCommands.push(t),t.on("change:isEnabled",(()=>this._checkEnabled())),this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){return this._childCommands.find((t=>t.isEnabled))}}var ee=function(t,e){return function(n){return t(e(n))}},ne=ee(Object.getPrototypeOf,Object),ie=Function.prototype,re=Object.prototype,oe=ie.toString,se=re.hasOwnProperty,ae=oe.call(Object),le=function(t){if(!pt(t)||"[object Object]"!=D(t))return!1;var e=ne(t);if(null===e)return!0;var n=se.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&oe.call(n)==ae},ce=function(){this.__data__=[],this.size=0},ue=function(t,e){for(var n=t.length;n--;)if(q(t[n][0],e))return n;return-1},de=Array.prototype.splice,he=function(t){var e=this.__data__,n=ue(e,t);return!(n<0||(n==e.length-1?e.pop():de.call(e,n,1),--this.size,0))},fe=function(t){var e=this.__data__,n=ue(e,t);return n<0?void 0:e[n][1]},pe=function(t){return ue(this.__data__,t)>-1},me=function(t,e){var n=this.__data__,i=ue(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};function ge(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e{this._setToTarget(t,i,e[i],n)}))}}function Jn(t){return $n(t,Zn)}function Zn(t){return qn(t)?t:void 0}function Kn(t){return!(!t||!t[Symbol.iterator])}class Qn{constructor(t={},e={}){const n=Kn(t);if(n||(e=t),this._items=[],this._itemMap=new Map,this._idProperty=e.idProperty||"id",this._bindToExternalToInternalMap=new WeakMap,this._bindToInternalToExternalMap=new WeakMap,this._skippedIndexesFromExternal=[],n)for(const e of t)this._items.push(e),this._itemMap.set(this._getItemIdBeforeAdding(e),e)}get length(){return this._items.length}get first(){return this._items[0]||null}get last(){return this._items[this.length-1]||null}add(t,e){return this.addMany([t],e)}addMany(t,e){if(void 0===e)e=this._items.length;else if(e>this._items.length||e<0)throw new l.a("collection-add-item-invalid-index",this);for(let n=0;n{this._setUpBindToBinding((e=>new t(e)))},using:t=>{"function"==typeof t?this._setUpBindToBinding((e=>t(e))):this._setUpBindToBinding((e=>e[t]))}}}_setUpBindToBinding(t){const e=this._bindToCollection,n=(n,i,r)=>{const o=e._bindToCollection==this,s=e._bindToInternalToExternalMap.get(i);if(o&&s)this._bindToExternalToInternalMap.set(i,s),this._bindToInternalToExternalMap.set(s,i);else{const n=t(i);if(!n)return void this._skippedIndexesFromExternal.push(r);let o=r;for(const t of this._skippedIndexesFromExternal)r>t&&o--;for(const t of e._skippedIndexesFromExternal)o>=t&&o++;this._bindToExternalToInternalMap.set(i,n),this._bindToInternalToExternalMap.set(n,i),this.add(n,o);for(let t=0;t{const i=this._bindToExternalToInternalMap.get(e);i&&this.remove(i),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((t,e)=>(ne&&t.push(e),t)),[])}))}_getItemIdBeforeAdding(t){const e=this._idProperty;let n;if(e in t){if(n=t[e],"string"!=typeof n)throw new l.a("collection-add-invalid-id",this);if(this.get(n))throw new l.a("collection-add-item-already-exists",this)}else t[e]=n=s();return n}_remove(t){let e,n,i,r=!1;const o=this._idProperty;if("string"==typeof t?(n=t,i=this._itemMap.get(n),r=!i,i&&(e=this._items.indexOf(i))):"number"==typeof t?(e=t,i=this._items[e],r=!i,i&&(n=i[o])):(i=t,n=i[o],e=this._items.indexOf(i),r=-1==e||!this._itemMap.get(n)),r)throw new l.a("collection-remove-404",this);this._items.splice(e,1),this._itemMap.delete(n);const s=this._bindToInternalToExternalMap.get(i);return this._bindToInternalToExternalMap.delete(i),this._bindToExternalToInternalMap.delete(s),this.fire("remove",i,e),[i,e]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}Gt(Qn,d);class ti{constructor(t,e=[],n=[]){this._context=t,this._plugins=new Map,this._availablePlugins=new Map;for(const t of e)t.pluginName&&this._availablePlugins.set(t.pluginName,t);this._contextPlugins=new Map;for(const[t,e]of n)this._contextPlugins.set(t,e),this._contextPlugins.set(e,t),t.pluginName&&this._availablePlugins.set(t.pluginName,t)}*[Symbol.iterator](){for(const t of this._plugins)"function"==typeof t[0]&&(yield t)}get(t){const e=this._plugins.get(t);if(!e){let e=t;throw"function"==typeof t&&(e=t.pluginName||t.name),new l.a("plugincollection-plugin-not-loaded",this._context,{plugin:e})}return e}has(t){return this._plugins.has(t)}init(t,e=[],n=[]){const i=this,r=this._context;!function t(e,n=new Set){e.forEach((e=>{a(e)&&(n.has(e)||(n.add(e),e.pluginName&&!i._availablePlugins.has(e.pluginName)&&i._availablePlugins.set(e.pluginName,e),e.requires&&t(e.requires,n)))}))}(t),h(t);const o=[...function t(e,n=new Set){return e.map((t=>a(t)?t:i._availablePlugins.get(t))).reduce(((e,i)=>n.has(i)?e:(n.add(i),i.requires&&(h(i.requires,i),t(i.requires,n).forEach((t=>e.add(t)))),e.add(i))),new Set)}(t.filter((t=>!u(t,e))))];!function(t,e){for(const n of e){if("function"!=typeof n)throw new l.a("plugincollection-replace-plugin-invalid-type",null,{pluginItem:n});const e=n.pluginName;if(!e)throw new l.a("plugincollection-replace-plugin-missing-name",null,{pluginItem:n});if(n.requires&&n.requires.length)throw new l.a("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:e});const r=i._availablePlugins.get(e);if(!r)throw new l.a("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:e});const o=t.indexOf(r);if(-1===o){if(i._contextPlugins.has(r))return;throw new l.a("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:e})}if(r.requires&&r.requires.length)throw new l.a("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:e});t.splice(o,1,n),i._availablePlugins.set(e,n)}}(o,n);const s=function(t){return t.map((t=>{const e=i._contextPlugins.get(t)||new t(r);return i._add(t,e),e}))}(o);return f(s,"init").then((()=>f(s,"afterInit"))).then((()=>s));function a(t){return"function"==typeof t}function c(t){return a(t)&&t.isContextPlugin}function u(t,e){return e.some((e=>e===t||d(t)===e||d(e)===t))}function d(t){return a(t)?t.pluginName||t.name:t}function h(t,n=null){t.map((t=>a(t)?t:i._availablePlugins.get(t)||t)).forEach((t=>{!function(t,e){if(!a(t)){if(e)throw new l.a("plugincollection-soft-required",r,{missingPlugin:t,requiredBy:d(e)});throw new l.a("plugincollection-plugin-not-found",r,{plugin:t})}}(t,n),function(t,e){if(c(e)&&!c(t))throw new l.a("plugincollection-context-required",r,{plugin:d(t),requiredBy:d(e)})}(t,n),function(t,n){if(n&&u(t,e))throw new l.a("plugincollection-required",r,{plugin:d(t),requiredBy:d(n)})}(t,n)}))}function f(t,e){return t.reduce(((t,n)=>n[e]?i._contextPlugins.has(n)?t:t.then(n[e].bind(n)):t),Promise.resolve())}}destroy(){const t=[];for(const[,e]of this)"function"!=typeof e.destroy||this._contextPlugins.has(e)||t.push(e.destroy());return Promise.all(t)}_add(t,e){this._plugins.set(t,e);const n=t.pluginName;if(n){if(this._plugins.has(n))throw new l.a("plugincollection-plugin-name-conflict",null,{pluginName:n,plugin1:this._plugins.get(n).constructor,plugin2:t});this._plugins.set(n,e)}}}function ei(t){return Array.isArray(t)?t:[t]}function ni(t,e,n=1){if("number"!=typeof n)throw new l.a("translation-service-quantity-not-a-number",null,{quantity:n});const i=Object.keys(window.CKEDITOR_TRANSLATIONS).length;1===i&&(t=Object.keys(window.CKEDITOR_TRANSLATIONS)[0]);const r=e.id||e.string;if(0===i||!function(t,e){return!!window.CKEDITOR_TRANSLATIONS[t]&&!!window.CKEDITOR_TRANSLATIONS[t].dictionary[e]}(t,r))return 1!==n?e.plural:e.string;const o=window.CKEDITOR_TRANSLATIONS[t].dictionary,s=window.CKEDITOR_TRANSLATIONS[t].getPluralForm||(t=>1===t?0:1);if("string"==typeof o[r])return o[r];const a=Number(s(n));return o[r][a]}Gt(ti,d),window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={});const ii=["ar","ara","fa","per","fas","he","heb","ku","kur","ug","uig"];function ri(t){return ii.includes(t)?"rtl":"ltr"}class oi{constructor(t={}){this.uiLanguage=t.uiLanguage||"en",this.contentLanguage=t.contentLanguage||this.uiLanguage,this.uiLanguageDirection=ri(this.uiLanguage),this.contentLanguageDirection=ri(this.contentLanguage),this.t=(t,e)=>this._t(t,e)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(t,e=[]){e=ei(e),"string"==typeof t&&(t={string:t});const n=t.plural?e[0]:1;return function(t,e){return t.replace(/%(\d+)/g,((t,n)=>nt.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(t,e){if(this._contextOwner)throw new l.a("context-addeditor-private-context");this.editors.add(t),e&&(this._contextOwner=t)}_removeEditor(t){return this.editors.has(t)&&this.editors.remove(t),this._contextOwner===t?this.destroy():Promise.resolve()}_getEditorConfig(){const t={};for(const e of this.config.names())["plugins","removePlugins","extraPlugins"].includes(e)||(t[e]=this.config.get(e));return t}static create(t){return new Promise((e=>{const n=new this(t);e(n.initPlugins().then((()=>n)))}))}}class ai{constructor(t){this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}function li(t,e){const n=Math.min(t.length,e.length);for(let i=0;it.data.length)throw new l.a("view-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.data.length)throw new l.a("view-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}is(t){return"$textProxy"===t||"view:$textProxy"===t||"textProxy"===t||"view:textProxy"===t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this.textNode:this.parent;for(;null!==n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}}function fi(t){return Kn(t)?new Map(t):function(t){const e=new Map;for(const n in t)e.set(n,t[n]);return e}(t)}class pi{constructor(...t){this._patterns=[],this.add(...t)}add(...t){for(let e of t)("string"==typeof e||e instanceof RegExp)&&(e={name:e}),this._patterns.push(e)}match(...t){for(const e of t)for(const t of this._patterns){const n=mi(e,t);if(n)return{element:e,pattern:t,match:n}}return null}matchAll(...t){const e=[];for(const n of t)for(const t of this._patterns){const i=mi(n,t);i&&e.push({element:n,pattern:t,match:i})}return e.length>0?e:null}getElementName(){if(1!==this._patterns.length)return null;const t=this._patterns[0],e=t.name;return"function"==typeof t||!e||e instanceof RegExp?null:e}}function mi(t,e){if("function"==typeof e)return e(t);const n={};return e.name&&(n.name=function(t,e){return t instanceof RegExp?t.test(e):t===e}(e.name,t.name),!n.name)||e.attributes&&(n.attributes=function(t,e){const n=new Set(e.getAttributeKeys());return le(t)?(void 0!==t.style&&Object(l.b)("matcher-pattern-deprecated-attributes-style-key",t),void 0!==t.class&&Object(l.b)("matcher-pattern-deprecated-attributes-class-key",t)):(n.delete("style"),n.delete("class")),gi(t,n,(t=>e.getAttribute(t)))}(e.attributes,t),!n.attributes)?null:!(e.classes&&(n.classes=function(t,e){return gi(t,e.getClassNames())}(e.classes,t),!n.classes))&&!(e.styles&&(n.styles=function(t,e){return gi(t,e.getStyleNames(!0),(t=>e.getStyle(t)))}(e.styles,t),!n.styles))&&n}function gi(t,e,n){const i=function(t){return Array.isArray(t)?t.map((t=>le(t)?(void 0!==t.key&&void 0!==t.value||Object(l.b)("matcher-pattern-missing-key-or-value",t),[t.key,t.value]):[t,!0])):le(t)?Object.entries(t):[[t,!0]]}(t),r=Array.from(e),o=[];return i.forEach((([t,e])=>{r.forEach((i=>{(function(t,e){return!0===t||t===e||t instanceof RegExp&&t.test(e)})(t,i)&&function(t,e,n){if(!0===t)return!0;const i=n(e);return t===i||t instanceof RegExp&&t.test(i)}(e,i,n)&&o.push(i)}))})),!i.length||o.lengthr?0:r+e),(n=n>r?r:n)<0&&(n+=r),r=e>n?0:n-e>>>0,e>>>=0;for(var o=Array(r);++ie===t));return Array.isArray(e)}set(t,e){if(_(t))for(const[e,n]of Object.entries(t))this._styleProcessor.toNormalizedForm(e,n,this._styles);else this._styleProcessor.toNormalizedForm(t,e,this._styles)}remove(t){const e=Ki(t);Ri(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}getNormalized(t){return this._styleProcessor.getNormalized(t,this._styles)}toString(){return this.isEmpty?"":this._getStylesEntries().map((t=>t.join(":"))).sort().join(";")+";"}getAsString(t){if(this.isEmpty)return;if(this._styles[t]&&!_(this._styles[t]))return this._styles[t];const e=this._styleProcessor.getReducedForm(t,this._styles).find((([e])=>e===t));return Array.isArray(e)?e[1]:void 0}getStyleNames(t=!1){return this.isEmpty?[]:t?this._styleProcessor.getStyleNames(this._styles):this._getStylesEntries().map((([t])=>t))}clear(){this._styles={}}_getStylesEntries(){const t=[],e=Object.keys(this._styles);for(const n of e)t.push(...this._styleProcessor.getReducedForm(n,this._styles));return t}_cleanEmptyObjectsOnPath(t){const e=t.split(".");if(!(e.length>1))return;const n=e.splice(0,e.length-1).join("."),i=ji(this._styles,n);i&&!Array.from(Object.keys(i)).length&&this.remove(n)}}class Zi{constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(t,e,n){if(_(e))Qi(n,Ki(t),e);else if(this._normalizers.has(t)){const i=this._normalizers.get(t),{path:r,value:o}=i(e);Qi(n,r,o)}else Qi(n,t,e)}getNormalized(t,e){if(!t)return $i({},e);if(void 0!==e[t])return e[t];if(this._extractors.has(t)){const n=this._extractors.get(t);if("string"==typeof n)return ji(e,n);const i=n(t,e);if(i)return i}return ji(e,Ki(t))}getReducedForm(t,e){const n=this.getNormalized(t,e);return void 0===n?[]:this._reducers.has(t)?this._reducers.get(t)(n):[[t,n]]}getStyleNames(t){const e=Array.from(this._consumables.keys()).filter((e=>{const n=this.getNormalized(e,t);return n&&"object"==typeof n?Object.keys(n).length:n})),n=new Set([...e,...Object.keys(t)]);return Array.from(n.values())}getRelatedStyles(t){return this._consumables.get(t)||[]}setNormalizer(t,e){this._normalizers.set(t,e)}setExtractor(t,e){this._extractors.set(t,e)}setReducer(t,e){this._reducers.set(t,e)}setStyleRelation(t,e){this._mapStyleNames(t,e);for(const n of e)this._mapStyleNames(n,[t])}_mapStyleNames(t,e){this._consumables.has(t)||this._consumables.set(t,[]),this._consumables.get(t).push(...e)}}function Ki(t){return t.replace("-",".")}function Qi(t,e,n){let i=n;_(n)&&(i=$i({},ji(t,e),n)),Gi(t,e,i)}class tr extends ui{constructor(t,e,n,i){if(super(t),this.name=e,this._attrs=function(t){t=fi(t);for(const[e,n]of t)null===n?t.delete(e):"string"!=typeof n&&t.set(e,String(n));return t}(n),this._children=[],i&&this._insertChild(0,i),this._classes=new Set,this._attrs.has("class")){const t=this._attrs.get("class");er(this._classes,t),this._attrs.delete("class")}this._styles=new Ji(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style")),this._customProperties=new Map,this._isAllowedInsideAttributeElement=!1}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}get isAllowedInsideAttributeElement(){return this._isAllowedInsideAttributeElement}is(t,e=null){return e?e===this.name&&("element"===t||"view:element"===t):"element"===t||"view:element"===t||"node"===t||"view:node"===t}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(t){if("class"==t)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==t){const t=this._styles.toString();return""==t?void 0:t}return this._attrs.get(t)}hasAttribute(t){return"class"==t?this._classes.size>0:"style"==t?!this._styles.isEmpty:this._attrs.has(t)}isSimilar(t){if(!(t instanceof tr))return!1;if(this===t)return!0;if(this.name!=t.name)return!1;if(this.isAllowedInsideAttributeElement!=t.isAllowedInsideAttributeElement)return!1;if(this._attrs.size!==t._attrs.size||this._classes.size!==t._classes.size||this._styles.size!==t._styles.size)return!1;for(const[e,n]of this._attrs)if(!t._attrs.has(e)||t._attrs.get(e)!==n)return!1;for(const e of this._classes)if(!t._classes.has(e))return!1;for(const e of this._styles.getStyleNames())if(!t._styles.has(e)||t._styles.getAsString(e)!==this._styles.getAsString(e))return!1;return!0}hasClass(...t){for(const e of t)if(!this._classes.has(e))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(t){return this._styles.getAsString(t)}getNormalizedStyle(t){return this._styles.getNormalized(t)}getStyleNames(t=!1){return this._styles.getStyleNames(t)}hasStyle(...t){for(const e of t)if(!this._styles.has(e))return!1;return!0}findAncestor(...t){const e=new pi(...t);let n=this.parent;for(;n;){if(e.match(n))return n;n=n.parent}return null}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const t=Array.from(this._classes).sort().join(","),e=this._styles.toString(),n=Array.from(this._attrs).map((t=>`${t[0]}="${t[1]}"`)).sort().join(" ");return this.name+(""==t?"":` class="${t}"`)+(e?` style="${e}"`:"")+(""==n?"":" "+n)}_clone(t=!1){const e=[];if(t)for(const n of this.getChildren())e.push(n._clone(t));const n=new this.constructor(this.document,this.name,this._attrs,e);return n._classes=new Set(this._classes),n._styles.set(this._styles.getNormalized()),n._customProperties=new Map(this._customProperties),n.getFillerOffset=this.getFillerOffset,n._isAllowedInsideAttributeElement=this.isAllowedInsideAttributeElement,n}_appendChild(t){return this._insertChild(this.childCount,t)}_insertChild(t,e){this._fireChange("children",this);let n=0;const i=function(t,e){return"string"==typeof e?[new di(t,e)]:(Kn(e)||(e=[e]),Array.from(e).map((e=>"string"==typeof e?new di(t,e):e instanceof hi?new di(t,e.data):e)))}(this.document,e);for(const e of i)null!==e.parent&&e._remove(),e.parent=this,e.document=this.document,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n0&&(this._classes.clear(),!0):"style"==t?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(t)}_addClass(t){this._fireChange("attributes",this);for(const e of ei(t))this._classes.add(e)}_removeClass(t){this._fireChange("attributes",this);for(const e of ei(t))this._classes.delete(e)}_setStyle(t,e){this._fireChange("attributes",this),this._styles.set(t,e)}_removeStyle(t){this._fireChange("attributes",this);for(const e of ei(t))this._styles.remove(e)}_setCustomProperty(t,e){this._customProperties.set(t,e)}_removeCustomProperty(t){return this._customProperties.delete(t)}}function er(t,e){const n=e.split(/\s+/);t.clear(),n.forEach((e=>t.add(e)))}class nr extends tr{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=ir}is(t,e=null){return e?e===this.name&&("containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}}function ir(){const t=[...this.getChildren()],e=t[this.childCount-1];if(e&&e.is("element","br"))return this.childCount;for(const e of t)if(!e.is("uiElement"))return null;return this.childCount}class rr extends nr{constructor(t,e,n,i){super(t,e,n,i),this.set("isReadOnly",!1),this.set("isFocused",!1),this.bind("isReadOnly").to(t),this.bind("isFocused").to(t,"isFocused",(e=>e&&t.selection.editableElement==this)),this.listenTo(t.selection,"change",(()=>{this.isFocused=t.isFocused&&t.selection.editableElement==this}))}is(t,e=null){return e?e===this.name&&("editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}destroy(){this.stopListening()}}Gt(rr,Vt);const or=Symbol("rootName");class sr extends rr{constructor(t,e){super(t,e),this.rootName="main"}is(t,e=null){return e?e===this.name&&("rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}get rootName(){return this.getCustomProperty(or)}set rootName(t){this._setCustomProperty(or,t)}set _name(t){this.name=t}}class ar{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new l.a("view-tree-walker-no-start-position",null);if(t.direction&&"forward"!=t.direction&&"backward"!=t.direction)throw new l.a("view-tree-walker-unknown-direction",t.startPosition,{direction:t.direction});this.boundaries=t.boundaries||null,t.startPosition?this.position=lr._createAt(t.startPosition):this.position=lr._createAt(t.boundaries["backward"==t.direction?"end":"start"]),this.direction=t.direction||"forward",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}skip(t){let e,n,i;do{i=this.position,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=i)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&t.offset===n.childCount)return{done:!0};if(n===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0};let i;if(n instanceof di){if(t.isAtEnd)return this.position=lr._createAfter(n),this._next();i=n.data[t.offset]}else i=n.getChild(t.offset);if(i instanceof tr)return this.shallow?t.offset++:t=new lr(i,0),this.position=t,this._formatReturnValue("elementStart",i,e,t,1);if(i instanceof di){if(this.singleCharacters)return t=new lr(i,0),this.position=t,this._next();{let n,r=i.data.length;return i==this._boundaryEndParent?(r=this.boundaries.end.offset,n=new hi(i,0,r),t=lr._createAfter(n)):(n=new hi(i,0,i.data.length),t.offset++),this.position=t,this._formatReturnValue("text",n,e,t,r)}}if("string"==typeof i){let i;i=this.singleCharacters?1:(n===this._boundaryEndParent?this.boundaries.end.offset:n.data.length)-t.offset;const r=new hi(n,t.offset,i);return t.offset+=i,this.position=t,this._formatReturnValue("text",r,e,t,i)}return t=lr._createAfter(n),this.position=t,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",n,e,t)}_previous(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&0===t.offset)return{done:!0};if(n==this._boundaryStartParent&&t.offset==this.boundaries.start.offset)return{done:!0};let i;if(n instanceof di){if(t.isAtStart)return this.position=lr._createBefore(n),this._previous();i=n.data[t.offset-1]}else i=n.getChild(t.offset-1);if(i instanceof tr)return this.shallow?(t.offset--,this.position=t,this._formatReturnValue("elementStart",i,e,t,1)):(t=new lr(i,i.childCount),this.position=t,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",i,e,t));if(i instanceof di){if(this.singleCharacters)return t=new lr(i,i.data.length),this.position=t,this._previous();{let n,r=i.data.length;if(i==this._boundaryStartParent){const e=this.boundaries.start.offset;n=new hi(i,e,i.data.length-e),r=n.data.length,t=lr._createBefore(n)}else n=new hi(i,0,i.data.length),t.offset--;return this.position=t,this._formatReturnValue("text",n,e,t,r)}}if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{const e=n===this._boundaryStartParent?this.boundaries.start.offset:0;i=t.offset-e}t.offset-=i;const r=new hi(n,t.offset,i);return this.position=t,this._formatReturnValue("text",r,e,t,i)}return t=lr._createBefore(n),this.position=t,this._formatReturnValue("elementStart",n,e,t,1)}_formatReturnValue(t,e,n,i,r){return e instanceof hi&&(e.offsetInText+e.data.length==e.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?n=lr._createAfter(e.textNode):(i=lr._createAfter(e.textNode),this.position=i)),0===e.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?n=lr._createBefore(e.textNode):(i=lr._createBefore(e.textNode),this.position=i))),{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:i,length:r}}}}class lr{constructor(t,e){this.parent=t,this.offset=e}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const t=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===t}get root(){return this.parent.root}get editableElement(){let t=this.parent;for(;!(t instanceof rr);){if(!t.parent)return null;t=t.parent}return t}getShiftedBy(t){const e=lr._createAt(this),n=e.offset+t;return e.offset=n<0?0:n,e}getLastMatchingPosition(t,e={}){e.startPosition=this;const n=new ar(e);return n.skip(t),n.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(t){const e=this.getAncestors(),n=t.getAncestors();let i=0;for(;e[i]==n[i]&&e[i];)i++;return 0===i?null:e[i-1]}is(t){return"position"===t||"view:position"===t}isEqual(t){return this.parent==t.parent&&this.offset==t.offset}isBefore(t){return"before"==this.compareWith(t)}isAfter(t){return"after"==this.compareWith(t)}compareWith(t){if(this.root!==t.root)return"different";if(this.isEqual(t))return"same";const e=this.parent.is("node")?this.parent.getPath():[],n=t.parent.is("node")?t.parent.getPath():[];e.push(this.offset),n.push(t.offset);const i=li(e,n);switch(i){case"prefix":return"before";case"extension":return"after";default:return e[i]0?new this(n,i):new this(i,n)}static _createIn(t){return this._createFromParentsAndOffsets(t,0,t,t.childCount)}static _createOn(t){const e=t.is("$textProxy")?t.offsetSize:1;return this._createFromPositionAndShift(lr._createBefore(t),e)}}function ur(t){return!(!t.item.is("attributeElement")&&!t.item.is("uiElement"))}function dr(t){let e=0;for(const n of t)e++;return e}class hr{constructor(t=null,e,n){this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",this.setTo(t,e,n)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.end:t.start).clone()}get focus(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.start:t.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const t of this._ranges)yield t.clone()}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?t.clone():null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?t.clone():null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}isEqual(t){if(this.isFake!=t.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=t.fakeSelectionLabel)return!1;if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const i of t._ranges)if(e.isEqual(i)){n=!0;break}if(!n)return!1}return!0}isSimilar(t){if(this.isBackward!=t.isBackward)return!1;const e=dr(this.getRanges());if(e!=dr(t.getRanges()))return!1;if(0==e)return!0;for(let e of this.getRanges()){e=e.getTrimmed();let n=!1;for(let i of t.getRanges())if(i=i.getTrimmed(),e.start.isEqual(i.start)&&e.end.isEqual(i.end)){n=!0;break}if(!n)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(t,e,n){if(null===t)this._setRanges([]),this._setFakeOptions(e);else if(t instanceof hr||t instanceof fr)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof cr)this._setRanges([t],e&&e.backward),this._setFakeOptions(e);else if(t instanceof lr)this._setRanges([new cr(t)]),this._setFakeOptions(e);else if(t instanceof ui){const i=!!n&&!!n.backward;let r;if(void 0===e)throw new l.a("view-selection-setto-required-second-parameter",this);r="in"==e?cr._createIn(t):"on"==e?cr._createOn(t):new cr(lr._createAt(t,e)),this._setRanges([r],i),this._setFakeOptions(n)}else{if(!Kn(t))throw new l.a("view-selection-setto-not-selectable",this);this._setRanges(t,e&&e.backward),this._setFakeOptions(e)}this.fire("change")}setFocus(t,e){if(null===this.anchor)throw new l.a("view-selection-setfocus-no-ranges",this);const n=lr._createAt(t,e);if("same"==n.compareWith(this.focus))return;const i=this.anchor;this._ranges.pop(),"before"==n.compareWith(i)?this._addRange(new cr(n,i),!0):this._addRange(new cr(i,n)),this.fire("change")}is(t){return"selection"===t||"view:selection"===t}_setRanges(t,e=!1){t=Array.from(t),this._ranges=[];for(const e of t)this._addRange(e);this._lastRangeBackward=!!e}_setFakeOptions(t={}){this._isFake=!!t.fake,this._fakeSelectionLabel=t.fake&&t.label||""}_addRange(t,e=!1){if(!(t instanceof cr))throw new l.a("view-selection-add-range-not-range",this);this._pushRange(t),this._lastRangeBackward=!!e}_pushRange(t){for(const e of this._ranges)if(t.isIntersecting(e))throw new l.a("view-selection-range-intersects",this,{addedRange:t,intersectingRange:e});this._ranges.push(new cr(t.start,t.end))}}Gt(hr,d);class fr{constructor(t=null,e,n){this._selection=new hr,this._selection.delegate("change").to(this),this._selection.setTo(t,e,n)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(t){return this._selection.isEqual(t)}isSimilar(t){return this._selection.isSimilar(t)}is(t){return"selection"===t||"documentSelection"==t||"view:selection"==t||"view:documentSelection"==t}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setFocus(t,e){this._selection.setFocus(t,e)}}Gt(fr,d);class pr extends r{constructor(t,e,n){super(t,e),this.startRange=n,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const mr=Symbol("bubbling contexts");var gr={fire(t,...e){try{const n=t instanceof r?t:new r(this,t),i=yr(this);if(!i.size)return;if(br(n,"capturing",this),vr(i,"$capture",n,...e))return n.return;const o=n.startRange||this.selection.getFirstRange(),s=o?o.getContainedElement():null,a=!!s&&Boolean(_r(i,s));let l=s||function(t){if(!t)return null;const e=t.start.parent,n=t.end.parent,i=e.getPath(),r=n.getPath();return i.length>r.length?e:n}(o);if(br(n,"atTarget",l),!a){if(vr(i,"$text",n,...e))return n.return;br(n,"bubbling",l)}for(;l;){if(l.is("rootElement")){if(vr(i,"$root",n,...e))return n.return}else if(l.is("element")&&vr(i,l.name,n,...e))return n.return;if(vr(i,l,n,...e))return n.return;l=l.parent,br(n,"bubbling",l)}return br(n,"bubbling",this),vr(i,"$document",n,...e),n.return}catch(t){l.a.rethrowUnexpectedError(t,this)}},_addEventListener(t,e,n){const i=ei(n.context||"$document"),r=yr(this);for(const o of i){let i=r.get(o);i||(i=Object.create(d),r.set(o,i)),this.listenTo(i,t,e,n)}},_removeEventListener(t,e){const n=yr(this);for(const i of n.values())this.stopListening(i,t,e)}};function br(t,e,n){t instanceof pr&&(t._eventPhase=e,t._currentTarget=n)}function vr(t,e,n,...i){const r="string"==typeof e?t.get(e):_r(t,e);return!!r&&(r.fire(n,...i),n.stop.called)}function _r(t,e){for(const[n,i]of t)if("function"==typeof n&&n(e))return i;return null}function yr(t){return t[mr]||(t[mr]=new Map),t[mr]}class wr{constructor(t){this.selection=new fr,this.roots=new Qn({idProperty:"rootName"}),this.stylesProcessor=t,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isComposing",!1),this._postFixers=new Set}getRoot(t="main"){return this.roots.get(t)}registerPostFixer(t){this._postFixers.add(t)}destroy(){this.roots.map((t=>t.destroy())),this.stopListening()}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(e=n(t),e)break}while(e)}}Gt(wr,gr),Gt(wr,Vt);class xr extends tr{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=kr,this._priority=10,this._id=null,this._clonesGroup=null}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new l.a("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}is(t,e=null){return e?e===this.name&&("attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t):"attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}isSimilar(t){return null!==this.id||null!==t.id?this.id===t.id:super.isSimilar(t)&&this.priority==t.priority}_clone(t){const e=super._clone(t);return e._priority=this._priority,e._id=this._id,e}}function kr(){if(Mr(this))return null;let t=this.parent;for(;t&&t.is("attributeElement");){if(Mr(t)>1)return null;t=t.parent}return!t||Mr(t)>1?null:this.childCount}function Mr(t){return Array.from(t.getChildren()).filter((t=>!t.is("uiElement"))).length}xr.DEFAULT_PRIORITY=10;class Sr extends tr{constructor(t,e,n,i){super(t,e,n,i),this._isAllowedInsideAttributeElement=!0,this.getFillerOffset=Ar}is(t,e=null){return e?e===this.name&&("emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t):"emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof ui||Array.from(e).length>0))throw new l.a("view-emptyelement-cannot-add",[this,e])}}function Ar(){return null}const Cr=navigator.userAgent.toLowerCase();var Lr={isMac:function(t){return t.indexOf("macintosh")>-1}(Cr),isGecko:function(t){return!!t.match(/gecko\/\d+/)}(Cr),isSafari:function(t){return t.indexOf(" applewebkit/")>-1&&-1===t.indexOf("chrome")}(Cr),isAndroid:function(t){return t.indexOf("android")>-1}(Cr),isBlink:function(t){return t.indexOf("chrome/")>-1&&t.indexOf("edge/")<0}(Cr),features:{isRegExpUnicodePropertySupported:function(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}return t}()}};const Tr={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},Dr={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},Er=function(){const t={arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++)t[String.fromCharCode(e).toLowerCase()]=e;for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;return t}(),Pr=Object.fromEntries(Object.entries(Er).map((([t,e])=>[e,t.charAt(0).toUpperCase()+t.slice(1)])));function Or(t){let e;if("string"==typeof t){if(e=Er[t.toLowerCase()],!e)throw new l.a("keyboard-unknown-key",null,{key:t})}else e=t.keyCode+(t.altKey?Er.alt:0)+(t.ctrlKey?Er.ctrl:0)+(t.shiftKey?Er.shift:0)+(t.metaKey?Er.cmd:0);return e}function Yr(t){return"string"==typeof t&&(t=function(t){return t.split("+").map((t=>t.trim()))}(t)),t.map((t=>"string"==typeof t?function(t){if(t.endsWith("!"))return Or(t.slice(0,-1));const e=Or(t);return Lr.isMac&&e==Er.ctrl?Er.cmd:e}(t):t)).reduce(((t,e)=>e+t),0)}function Ir(t){let e=Yr(t);return Object.entries(Lr.isMac?Tr:Dr).reduce(((t,[n,i])=>(0!=(e&Er[n])&&(e&=~Er[n],t+=i),t)),"")+(e?Pr[e]:"")}function zr(t,e){const n="ltr"===e;switch(t){case Er.arrowleft:return n?"left":"right";case Er.arrowright:return n?"right":"left";case Er.arrowup:return"up";case Er.arrowdown:return"down"}}function Nr(t,e){const n=zr(t,e);return"down"===n||"right"===n}class Rr extends tr{constructor(t,e,n,i){super(t,e,n,i),this._isAllowedInsideAttributeElement=!0,this.getFillerOffset=Fr}is(t,e=null){return e?e===this.name&&("uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t):"uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof ui||Array.from(e).length>0))throw new l.a("view-uielement-cannot-add",this)}render(t){return this.toDomElement(t)}toDomElement(t){const e=t.createElement(this.name);for(const t of this.getAttributeKeys())e.setAttribute(t,this.getAttribute(t));return e}}function jr(t){t.document.on("arrowKey",((e,n)=>function(t,e,n){if(e.keyCode==Er.arrowright){const t=e.domTarget.ownerDocument.defaultView.getSelection(),i=1==t.rangeCount&&t.getRangeAt(0).collapsed;if(i||e.shiftKey){const e=t.focusNode,r=t.focusOffset,o=n.domPositionToView(e,r);if(null===o)return;let s=!1;const a=o.getLastMatchingPosition((t=>(t.item.is("uiElement")&&(s=!0),!(!t.item.is("uiElement")&&!t.item.is("attributeElement")))));if(s){const e=n.viewPositionToDom(a);i?t.collapse(e.parent,e.offset):t.extend(e.parent,e.offset)}}}}(0,n,t.domConverter)),{priority:"low"})}function Fr(){return null}class Hr extends tr{constructor(t,e,n,i){super(t,e,n,i),this._isAllowedInsideAttributeElement=!0,this.getFillerOffset=Br}is(t,e=null){return e?e===this.name&&("rawElement"===t||"view:rawElement"===t||"element"===t||"view:element"===t):"rawElement"===t||"view:rawElement"===t||t===this.name||t==="view:"+this.name||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof ui||Array.from(e).length>0))throw new l.a("view-rawelement-cannot-add",[this,e])}}function Br(){return null}class Vr{constructor(t,e){this.document=t,this._children=[],e&&this._insertChild(0,e)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"view:documentFragment"===t}_appendChild(t){return this._insertChild(this.childCount,t)}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(t,e){this._fireChange("children",this);let n=0;const i=function(t,e){return"string"==typeof e?[new di(t,e)]:(Kn(e)||(e=[e]),Array.from(e).map((e=>"string"==typeof e?new di(t,e):e instanceof hi?new di(t,e.data):e)))}(this.document,e);for(const e of i)null!==e.parent&&e._remove(),e.parent=this,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n{}),void 0!==i.isAllowedInsideAttributeElement&&(r._isAllowedInsideAttributeElement=i.isAllowedInsideAttributeElement),r}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){le(t)&&void 0===n&&(n=e),n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}breakAttributes(t){return t instanceof lr?this._breakAttributes(t):this._breakAttributesRange(t)}breakContainer(t){const e=t.parent;if(!e.is("containerElement"))throw new l.a("view-writer-break-non-container-element",this.document);if(!e.parent)throw new l.a("view-writer-break-root",this.document);if(t.isAtStart)return lr._createBefore(e);if(!t.isAtEnd){const n=e._clone(!1);this.insert(lr._createAfter(e),n);const i=new cr(t,lr._createAt(e,"end")),r=new lr(n,0);this.move(i,r)}return lr._createAfter(e)}mergeAttributes(t){const e=t.offset,n=t.parent;if(n.is("$text"))return t;if(n.is("attributeElement")&&0===n.childCount){const t=n.parent,e=n.index;return n._remove(),this._removeFromClonedElementsGroup(n),this.mergeAttributes(new lr(t,e))}const i=n.getChild(e-1),r=n.getChild(e);if(!i||!r)return t;if(i.is("$text")&&r.is("$text"))return Gr(i,r);if(i.is("attributeElement")&&r.is("attributeElement")&&i.isSimilar(r)){const t=i.childCount;return i._appendChild(r.getChildren()),r._remove(),this._removeFromClonedElementsGroup(r),this.mergeAttributes(new lr(i,t))}return t}mergeContainers(t){const e=t.nodeBefore,n=t.nodeAfter;if(!(e&&n&&e.is("containerElement")&&n.is("containerElement")))throw new l.a("view-writer-merge-containers-invalid-position",this.document);const i=e.getChild(e.childCount-1),r=i instanceof di?lr._createAt(i,"end"):lr._createAt(e,"end");return this.move(cr._createIn(n),lr._createAt(e,"end")),this.remove(cr._createOn(n)),r}insert(t,e){!function t(e,n){for(const i of e){if(!Jr.some((t=>i instanceof t)))throw new l.a("view-writer-insert-invalid-node-type",n);i.is("$text")||t(i.getChildren(),n)}}(e=Kn(e)?[...e]:[e],this.document);const n=e.reduce(((t,e)=>{const n=t[t.length-1],i=!(e.is("uiElement")&&e.isAllowedInsideAttributeElement);return n&&n.breakAttributes==i?n.nodes.push(e):t.push({breakAttributes:i,nodes:[e]}),t}),[]);let i=null,r=t;for(const{nodes:t,breakAttributes:e}of n){const n=this._insertNodes(r,t,e);i||(i=n.start),r=n.end}return i?new cr(i,r):new cr(t)}remove(t){const e=t instanceof cr?t:cr._createOn(t);if(Kr(e,this.document),e.isCollapsed)return new Vr(this.document);const{start:n,end:i}=this._breakAttributesRange(e,!0),r=n.parent,o=i.offset-n.offset,s=r._removeChildren(n.offset,o);for(const t of s)this._removeFromClonedElementsGroup(t);const a=this.mergeAttributes(n);return e.start=a,e.end=a.clone(),new Vr(this.document,s)}clear(t,e){Kr(t,this.document);const n=t.getWalker({direction:"backward",ignoreElementEnd:!0});for(const i of n){const n=i.item;let r;if(n.is("element")&&e.isSimilar(n))r=cr._createOn(n);else if(!i.nextPosition.isAfter(t.start)&&n.is("$textProxy")){const t=n.getAncestors().find((t=>t.is("element")&&e.isSimilar(t)));t&&(r=cr._createIn(t))}r&&(r.end.isAfter(t.end)&&(r.end=t.end),r.start.isBefore(t.start)&&(r.start=t.start),this.remove(r))}}move(t,e){let n;if(e.isAfter(t.end)){const i=(e=this._breakAttributes(e,!0)).parent,r=i.childCount;t=this._breakAttributesRange(t,!0),n=this.remove(t),e.offset+=i.childCount-r}else n=this.remove(t);return this.insert(e,n)}wrap(t,e){if(!(e instanceof xr))throw new l.a("view-writer-wrap-invalid-attribute",this.document);if(Kr(t,this.document),t.isCollapsed){let i=t.start;i.parent.is("element")&&(n=i.parent,!Array.from(n.getChildren()).some((t=>!t.is("uiElement"))))&&(i=i.getLastMatchingPosition((t=>t.item.is("uiElement")))),i=this._wrapPosition(i,e);const r=this.document.selection;return r.isCollapsed&&r.getFirstPosition().isEqual(t.start)&&this.setSelection(i),new cr(i)}return this._wrapRange(t,e);var n}unwrap(t,e){if(!(e instanceof xr))throw new l.a("view-writer-unwrap-invalid-attribute",this.document);if(Kr(t,this.document),t.isCollapsed)return t;const{start:n,end:i}=this._breakAttributesRange(t,!0),r=n.parent,o=this._unwrapChildren(r,n.offset,i.offset,e),s=this.mergeAttributes(o.start);s.isEqual(o.start)||o.end.offset--;const a=this.mergeAttributes(o.end);return new cr(s,a)}rename(t,e){const n=new nr(this.document,t,e.getAttributes());return this.insert(lr._createAfter(e),n),this.move(cr._createIn(e),lr._createAt(n,0)),this.remove(cr._createOn(e)),n}clearClonedElementsGroup(t){this._cloneGroups.delete(t)}createPositionAt(t,e){return lr._createAt(t,e)}createPositionAfter(t){return lr._createAfter(t)}createPositionBefore(t){return lr._createBefore(t)}createRange(t,e){return new cr(t,e)}createRangeOn(t){return cr._createOn(t)}createRangeIn(t){return cr._createIn(t)}createSelection(t,e,n){return new hr(t,e,n)}_insertNodes(t,e,n){let i,r;if(i=n?Ur(t):t.parent.is("$text")?t.parent.parent:t.parent,!i)throw new l.a("view-writer-invalid-position-container",this.document);r=n?this._breakAttributes(t,!0):t.parent.is("$text")?qr(t):t;const o=i._insertChild(r.offset,e);for(const t of e)this._addToClonedElementsGroup(t);const s=r.getShiftedBy(o),a=this.mergeAttributes(r);a.isEqual(r)||s.offset--;const c=this.mergeAttributes(s);return new cr(a,c)}_wrapChildren(t,e,n,i){let r=e;const o=[];for(;r!1,t.parent._insertChild(t.offset,n);const i=new cr(t,t.getShiftedBy(1));this.wrap(i,e);const r=new lr(n.parent,n.index);n._remove();const o=r.nodeBefore,s=r.nodeAfter;return o instanceof di&&s instanceof di?Gr(o,s):$r(r)}_wrapAttributeElement(t,e){if(!Qr(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&e.hasAttribute(n)&&e.getAttribute(n)!==t.getAttribute(n))return!1;for(const n of t.getStyleNames())if(e.hasStyle(n)&&e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&(e.hasAttribute(n)||this.setAttribute(n,t.getAttribute(n),e));for(const n of t.getStyleNames())e.hasStyle(n)||this.setStyle(n,t.getStyle(n),e);for(const n of t.getClassNames())e.hasClass(n)||this.addClass(n,e);return!0}_unwrapAttributeElement(t,e){if(!Qr(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&(!e.hasAttribute(n)||e.getAttribute(n)!==t.getAttribute(n)))return!1;if(!e.hasClass(...t.getClassNames()))return!1;for(const n of t.getStyleNames())if(!e.hasStyle(n)||e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&this.removeAttribute(n,e);return this.removeClass(Array.from(t.getClassNames()),e),this.removeStyle(Array.from(t.getStyleNames()),e),!0}_breakAttributesRange(t,e=!1){const n=t.start,i=t.end;if(Kr(t,this.document),t.isCollapsed){const n=this._breakAttributes(t.start,e);return new cr(n,n)}const r=this._breakAttributes(i,e),o=r.parent.childCount,s=this._breakAttributes(n,e);return r.offset+=r.parent.childCount-o,new cr(s,r)}_breakAttributes(t,e=!1){const n=t.offset,i=t.parent;if(t.parent.is("emptyElement"))throw new l.a("view-writer-cannot-break-empty-element",this.document);if(t.parent.is("uiElement"))throw new l.a("view-writer-cannot-break-ui-element",this.document);if(t.parent.is("rawElement"))throw new l.a("view-writer-cannot-break-raw-element",this.document);if(!e&&i.is("$text")&&Zr(i.parent))return t.clone();if(Zr(i))return t.clone();if(i.is("$text"))return this._breakAttributes(qr(t),e);if(n==i.childCount){const t=new lr(i.parent,i.index+1);return this._breakAttributes(t,e)}if(0===n){const t=new lr(i.parent,i.index);return this._breakAttributes(t,e)}{const t=i.index+1,r=i._clone();i.parent._insertChild(t,r),this._addToClonedElementsGroup(r);const o=i.childCount-n,s=i._removeChildren(n,o);r._appendChild(s);const a=new lr(i.parent,t);return this._breakAttributes(a,e)}}_addToClonedElementsGroup(t){if(!t.root.is("rootElement"))return;if(t.is("element"))for(const e of t.getChildren())this._addToClonedElementsGroup(e);const e=t.id;if(!e)return;let n=this._cloneGroups.get(e);n||(n=new Set,this._cloneGroups.set(e,n)),n.add(t),t._clonesGroup=n}_removeFromClonedElementsGroup(t){if(t.is("element"))for(const e of t.getChildren())this._removeFromClonedElementsGroup(e);const e=t.id;if(!e)return;const n=this._cloneGroups.get(e);n&&n.delete(t)}}function Ur(t){let e=t.parent;for(;!Zr(e);){if(!e)return;e=e.parent}return e}function Xr(t,e){return t.prioritye.priority)&&t.getIdentity()t.createTextNode(" "),no=t=>{const e=t.createElement("span");return e.dataset.ckeFiller=!0,e.innerHTML=" ",e},io=t=>{const e=t.createElement("br");return e.dataset.ckeFiller=!0,e},ro="⁠".repeat(7);function oo(t){return to(t)&&t.data.substr(0,7)===ro}function so(t){return 7==t.data.length&&oo(t)}function ao(t){return oo(t)?t.data.slice(7):t.data}function lo(t,e){if(e.keyCode==Er.arrowleft){const t=e.domTarget.ownerDocument.defaultView.getSelection();if(1==t.rangeCount&&t.getRangeAt(0).collapsed){const e=t.getRangeAt(0).startContainer,n=t.getRangeAt(0).startOffset;oo(e)&&n<=7&&t.collapse(e,0)}}}function co(t,e,n,i=!1){n=n||function(t,e){return t===e},Array.isArray(t)||(t=Array.prototype.slice.call(t)),Array.isArray(e)||(e=Array.prototype.slice.call(e));const r=function(t,e,n){const i=uo(t,e,n);if(-1===i)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const r=uo(ho(t,i),ho(e,i),n);return{firstIndex:i,lastIndexOld:t.length-r,lastIndexNew:e.length-r}}(t,e,n);return i?function(t,e){const{firstIndex:n,lastIndexOld:i,lastIndexNew:r}=t;if(-1===n)return Array(e).fill("equal");let o=[];return n>0&&(o=o.concat(Array(n).fill("equal"))),r-n>0&&(o=o.concat(Array(r-n).fill("insert"))),i-n>0&&(o=o.concat(Array(i-n).fill("delete"))),r0&&n.push({index:i,type:"insert",values:t.slice(i,o)}),r-i>0&&n.push({index:i+(o-i),type:"delete",howMany:r-i}),n}(e,r)}function uo(t,e,n){for(let i=0;i200||r>200||i+r>300)return fo.fastDiff(t,e,n,!0);let o,s;if(rc?-1:1;u[i+h]&&(u[i]=u[i+h].slice(0)),u[i]||(u[i]=[]),u[i].push(r>c?o:s);let f=Math.max(r,c),p=f-i;for(;pc;f--)d[f]=h(f);d[c]=h(c),p++}while(d[c]!==l);return u[c].slice(1)}function po(t,e,n){t.insertBefore(n,t.childNodes[e]||null)}function mo(t){const e=t.parentNode;e&&e.removeChild(t)}function go(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}fo.fastDiff=co;class bo{constructor(t,e){this.domDocuments=new Set,this.domConverter=t,this.markedAttributes=new Set,this.markedChildren=new Set,this.markedTexts=new Set,this.selection=e,this.isFocused=!1,this._inlineFiller=null,this._fakeSelectionContainer=null}markToSync(t,e){if("text"===t)this.domConverter.mapViewToDom(e.parent)&&this.markedTexts.add(e);else{if(!this.domConverter.mapViewToDom(e))return;if("attributes"===t)this.markedAttributes.add(e);else{if("children"!==t)throw new l.a("view-renderer-unknown-type",this);this.markedChildren.add(e)}}}render(){let t;for(const t of this.markedChildren)this._updateChildrenMappings(t);this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?t=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(t=this.selection.getFirstPosition(),this.markedChildren.add(t.parent));for(const t of this.markedAttributes)this._updateAttrs(t);for(const e of this.markedChildren)this._updateChildren(e,{inlineFillerPosition:t});for(const e of this.markedTexts)!this.markedChildren.has(e.parent)&&this.domConverter.mapViewToDom(e.parent)&&this._updateText(e,{inlineFillerPosition:t});if(t){const e=this.domConverter.viewPositionToDom(t),n=e.parent.ownerDocument;oo(e.parent)?this._inlineFiller=e.parent:this._inlineFiller=vo(n,e.parent,e.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(this.domConverter.mapViewToDom(t).childNodes),i=Array.from(this.domConverter.viewChildrenToDom(t,e.ownerDocument,{withChildren:!1})),r=this._diffNodeLists(n,i),o=this._findReplaceActions(r,n,i);if(-1!==o.indexOf("replace")){const e={equal:0,insert:0,delete:0};for(const r of o)if("replace"===r){const r=e.equal+e.insert,o=e.equal+e.delete,s=t.getChild(r);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,n[o]),mo(i[r]),e.equal++}else e[r]++}}_updateElementMappings(t,e){this.domConverter.unbindDomElement(e),this.domConverter.bindElements(e,t),this.markedChildren.add(t),this.markedAttributes.add(t)}_getInlineFillerPosition(){const t=this.selection.getFirstPosition();return t.parent.is("$text")?lr._createBefore(this.selection.getFirstPosition().parent):t}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=this.domConverter.viewPositionToDom(t);return!!(e&&to(e.parent)&&oo(e.parent))}_removeInlineFiller(){const t=this._inlineFiller;if(!oo(t))throw new l.a("view-renderer-filler-was-lost",this);so(t)?t.parentNode.removeChild(t):t.data=t.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=t.parent,n=t.offset;if(!this.domConverter.mapViewToDom(e.root))return!1;if(!e.is("element"))return!1;if(!function(t){if("false"==t.getAttribute("contenteditable"))return!1;const e=t.findAncestor((t=>t.hasAttribute("contenteditable")));return!e||"true"==e.getAttribute("contenteditable")}(e))return!1;if(n===e.getFillerOffset())return!1;const i=t.nodeBefore,r=t.nodeAfter;return!(i instanceof di||r instanceof di)}_updateText(t,e){const n=this.domConverter.findCorrespondingDomText(t),i=this.domConverter.viewToDom(t,n.ownerDocument),r=n.data;let o=i.data;const s=e.inlineFillerPosition;if(s&&s.parent==t.parent&&s.offset==t.index&&(o=ro+o),r!=o){const t=co(r,o);for(const e of t)"insert"===e.type?n.insertData(e.index,e.values.join("")):n.deleteData(e.index,e.howMany)}}_updateAttrs(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.attributes).map((t=>t.name)),i=t.getAttributeKeys();for(const n of i)e.setAttribute(n,t.getAttribute(n));for(const i of n)t.hasAttribute(i)||e.removeAttribute(i)}_updateChildren(t,e){const n=this.domConverter.mapViewToDom(t);if(!n)return;const i=e.inlineFillerPosition,r=this.domConverter.mapViewToDom(t).childNodes,o=Array.from(this.domConverter.viewChildrenToDom(t,n.ownerDocument,{bind:!0,inlineFillerPosition:i}));i&&i.parent===t&&vo(n.ownerDocument,o,i.offset);const s=this._diffNodeLists(r,o);let a=0;const l=new Set;for(const t of s)"delete"===t?(l.add(r[a]),mo(r[a])):"equal"===t&&a++;a=0;for(const t of s)"insert"===t?(po(n,a,o[a]),a++):"equal"===t&&(this._markDescendantTextToSync(this.domConverter.domToView(o[a])),a++);for(const t of l)t.parentNode||this.domConverter.unbindDomElement(t)}_diffNodeLists(t,e){return fo(t=function(t,e){const n=Array.from(t);return 0!=n.length&&e?(n[n.length-1]==e&&n.pop(),n):n}(t,this._fakeSelectionContainer),e,yo.bind(null,this.domConverter))}_findReplaceActions(t,e,n){if(-1===t.indexOf("insert")||-1===t.indexOf("delete"))return t;let i=[],r=[],o=[];const s={equal:0,insert:0,delete:0};for(const a of t)"insert"===a?o.push(n[s.equal+s.insert]):"delete"===a?r.push(e[s.equal+s.delete]):(i=i.concat(fo(r,o,_o).map((t=>"equal"===t?"replace":t))),i.push("equal"),r=[],o=[]),s[a]++;return i.concat(fo(r,o,_o).map((t=>"equal"===t?"replace":t)))}_markDescendantTextToSync(t){if(t)if(t.is("$text"))this.markedTexts.add(t);else if(t.is("element"))for(const e of t.getChildren())this._markDescendantTextToSync(e)}_updateSelection(){if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const t=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&t&&(this.selection.isFake?this._updateFakeSelection(t):(this._removeFakeSelection(),this._updateDomSelection(t)))}_updateFakeSelection(t){const e=t.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(t){const e=t.createElement("div");return e.className="ck-fake-selection-container",Object.assign(e.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),e.textContent=" ",e}(e));const n=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(n,this.selection),!this._fakeSelectionNeedsUpdate(t))return;n.parentElement&&n.parentElement==t||t.appendChild(n),n.textContent=this.selection.fakeSelectionLabel||" ";const i=e.getSelection(),r=e.createRange();i.removeAllRanges(),r.selectNodeContents(n),i.addRange(r)}_updateDomSelection(t){const e=t.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(e))return;const n=this.domConverter.viewPositionToDom(this.selection.anchor),i=this.domConverter.viewPositionToDom(this.selection.focus);e.collapse(n.parent,n.offset),e.extend(i.parent,i.offset),Lr.isGecko&&function(t,e){const n=t.parent;if(n.nodeType!=Node.ELEMENT_NODE||t.offset!=n.childNodes.length-1)return;const i=n.childNodes[t.offset];i&&"BR"==i.tagName&&e.addRange(e.getRangeAt(0))}(i,e)}_domSelectionNeedsUpdate(t){if(!this.domConverter.isDomSelectionCorrect(t))return!0;const e=t&&this.domConverter.domSelectionToView(t);return!(e&&this.selection.isEqual(e)||!this.selection.isCollapsed&&this.selection.isSimilar(e))}_fakeSelectionNeedsUpdate(t){const e=this._fakeSelectionContainer,n=t.ownerDocument.getSelection();return!e||e.parentElement!==t||n.anchorNode!==e&&!e.contains(n.anchorNode)||e.textContent!==this.selection.fakeSelectionLabel}_removeDomSelection(){for(const t of this.domDocuments)if(t.getSelection().rangeCount){const e=t.activeElement,n=this.domConverter.mapDomToView(e);e&&n&&t.getSelection().removeAllRanges()}}_removeFakeSelection(){const t=this._fakeSelectionContainer;t&&t.remove()}_updateFocus(){if(this.isFocused){const t=this.selection.editableElement;t&&this.domConverter.focus(t)}}}function vo(t,e,n){const i=e instanceof Array?e:e.childNodes,r=i[n];if(to(r))return r.data=ro+r.data,r;{const r=t.createTextNode(ro);return Array.isArray(e)?i.splice(n,0,r):po(e,n,r),r}}function _o(t,e){return go(t)&&go(e)&&!to(t)&&!to(e)&&t.nodeType!==Node.COMMENT_NODE&&e.nodeType!==Node.COMMENT_NODE&&t.tagName.toLowerCase()===e.tagName.toLowerCase()}function yo(t,e,n){return e===n||(to(e)&&to(n)?e.data===n.data:!(!t.isBlockFiller(e)||!t.isBlockFiller(n)))}Gt(bo,Vt);var wo={window,document};function xo(t){let e=0;for(;t.previousSibling;)t=t.previousSibling,e++;return e}function ko(t){const e=[];for(;t&&t.nodeType!=Node.DOCUMENT_NODE;)e.unshift(t),t=t.parentNode;return e}const Mo=io(document),So=eo(document),Ao=no(document);class Co{constructor(t,e={}){this.document=t,this.blockFillerMode=e.blockFillerMode||"br",this.preElements=["pre"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap,this._rawContentElementMatcher=new pi,this._encounteredRawContentDomNodes=new WeakSet}bindFakeSelection(t,e){this._fakeSelectionMapping.set(t,new hr(e))}fakeSelectionToView(t){return this._fakeSelectionMapping.get(t)}bindElements(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}unbindDomElement(t){const e=this._domToViewMapping.get(t);if(e){this._domToViewMapping.delete(t),this._viewToDomMapping.delete(e);for(const e of t.childNodes)this.unbindDomElement(e)}}bindDocumentFragments(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}viewToDom(t,e,n={}){if(t.is("$text")){const n=this._processDataFromViewText(t);return e.createTextNode(n)}{if(this.mapViewToDom(t))return this.mapViewToDom(t);let i;if(t.is("documentFragment"))i=e.createDocumentFragment(),n.bind&&this.bindDocumentFragments(i,t);else{if(t.is("uiElement"))return i="$comment"===t.name?e.createComment(t.getCustomProperty("$rawContent")):t.render(e),n.bind&&this.bindElements(i,t),i;i=t.hasAttribute("xmlns")?e.createElementNS(t.getAttribute("xmlns"),t.name):e.createElement(t.name),t.is("rawElement")&&t.render(i),n.bind&&this.bindElements(i,t);for(const e of t.getAttributeKeys())i.setAttribute(e,t.getAttribute(e))}if(!1!==n.withChildren)for(const r of this.viewChildrenToDom(t,e,n))i.appendChild(r);return i}}*viewChildrenToDom(t,e,n={}){const i=t.getFillerOffset&&t.getFillerOffset();let r=0;for(const o of t.getChildren())i===r&&(yield this._getBlockFiller(e)),yield this.viewToDom(o,e,n),r++;i===r&&(yield this._getBlockFiller(e))}viewRangeToDom(t){const e=this.viewPositionToDom(t.start),n=this.viewPositionToDom(t.end),i=document.createRange();return i.setStart(e.parent,e.offset),i.setEnd(n.parent,n.offset),i}viewPositionToDom(t){const e=t.parent;if(e.is("$text")){const n=this.findCorrespondingDomText(e);if(!n)return null;let i=t.offset;return oo(n)&&(i+=7),{parent:n,offset:i}}{let n,i,r;if(0===t.offset){if(n=this.mapViewToDom(e),!n)return null;r=n.childNodes[0]}else{const e=t.nodeBefore;if(i=e.is("$text")?this.findCorrespondingDomText(e):this.mapViewToDom(t.nodeBefore),!i)return null;n=i.parentNode,r=i.nextSibling}return to(r)&&oo(r)?{parent:r,offset:7}:{parent:n,offset:i?xo(i)+1:0}}}domToView(t,e={}){if(this.isBlockFiller(t))return null;const n=this.getHostViewElement(t);if(n)return n;if(this.isComment(t)&&e.skipComments)return null;if(to(t)){if(so(t))return null;{const e=this._processDataFromDomText(t);return""===e?null:new di(this.document,e)}}{if(this.mapDomToView(t))return this.mapDomToView(t);let n;if(this.isDocumentFragment(t))n=new Vr(this.document),e.bind&&this.bindDocumentFragments(t,n);else{n=this._createViewElement(t,e),e.bind&&this.bindElements(t,n);const i=t.attributes;if(i)for(let t=i.length-1;t>=0;t--)n._setAttribute(i[t].name,i[t].value);if(this._isViewElementWithRawContent(n,e)||this.isComment(t)){const e=this.isComment(t)?t.data:t.innerHTML;return n._setCustomProperty("$rawContent",e),this._encounteredRawContentDomNodes.add(t),n}}if(!1!==e.withChildren)for(const i of this.domChildrenToView(t,e))n._appendChild(i);return n}}*domChildrenToView(t,e={}){for(let n=0;n{const{scrollLeft:e,scrollTop:n}=t;i.push([e,n])})),e.focus(),Lo(e,(t=>{const[e,n]=i.shift();t.scrollLeft=e,t.scrollTop=n})),wo.window.scrollTo(t,n)}}isElement(t){return t&&t.nodeType==Node.ELEMENT_NODE}isDocumentFragment(t){return t&&t.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isComment(t){return t&&t.nodeType==Node.COMMENT_NODE}isBlockFiller(t){return"br"==this.blockFillerMode?t.isEqualNode(Mo):!("BR"!==t.tagName||!To(t,this.blockElements)||1!==t.parentNode.childNodes.length)||t.isEqualNode(Ao)||function(t,e){return t.isEqualNode(So)&&To(t,e)&&1===t.parentNode.childNodes.length}(t,this.blockElements)}isDomSelectionBackward(t){if(t.isCollapsed)return!1;const e=document.createRange();e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset);const n=e.collapsed;return e.detach(),n}getHostViewElement(t){const e=ko(t);for(e.pop();e.length;){const t=e.pop(),n=this._domToViewMapping.get(t);if(n&&(n.is("uiElement")||n.is("rawElement")))return n}return null}isDomSelectionCorrect(t){return this._isDomSelectionPositionCorrect(t.anchorNode,t.anchorOffset)&&this._isDomSelectionPositionCorrect(t.focusNode,t.focusOffset)}registerRawContentMatcher(t){this._rawContentElementMatcher.add(t)}_getBlockFiller(t){switch(this.blockFillerMode){case"nbsp":return eo(t);case"markedNbsp":return no(t);case"br":return io(t)}}_isDomSelectionPositionCorrect(t,e){if(to(t)&&oo(t)&&e<7)return!1;if(this.isElement(t)&&oo(t.childNodes[e]))return!1;const n=this.mapDomToView(t);return!n||!n.is("uiElement")&&!n.is("rawElement")}_processDataFromViewText(t){let e=t.data;if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return e;if(" "==e.charAt(0)){const n=this._getTouchingInlineViewNode(t,!1);!(n&&n.is("$textProxy")&&this._nodeEndsWithSpace(n))&&n||(e=" "+e.substr(1))}if(" "==e.charAt(e.length-1)){const n=this._getTouchingInlineViewNode(t,!0),i=n&&n.is("$textProxy")&&" "==n.data.charAt(0);" "!=e.charAt(e.length-2)&&n&&!i||(e=e.substr(0,e.length-1)+" ")}return e.replace(/ {2}/g,"  ")}_nodeEndsWithSpace(t){if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return!1;const e=this._processDataFromViewText(t);return" "==e.charAt(e.length-1)}_processDataFromDomText(t){let e=t.data;if(function(t,e){return ko(t).some((t=>t.tagName&&e.includes(t.tagName.toLowerCase())))}(t,this.preElements))return ao(t);e=e.replace(/[ \n\t\r]{1,}/g," ");const n=this._getTouchingInlineDomNode(t,!1),i=this._getTouchingInlineDomNode(t,!0),r=this._checkShouldLeftTrimDomText(t,n),o=this._checkShouldRightTrimDomText(t,i);r&&(e=e.replace(/^ /,"")),o&&(e=e.replace(/ $/,"")),e=ao(new Text(e)),e=e.replace(/ \u00A0/g," ");const s=i&&this.isElement(i)&&"BR"!=i.tagName,a=i&&to(i)&&" "==i.data.charAt(0);return(/( |\u00A0)\u00A0$/.test(e)||!i||s||a)&&(e=e.replace(/\u00A0$/," ")),(r||n&&this.isElement(n)&&"BR"!=n.tagName)&&(e=e.replace(/^\u00A0/," ")),e}_checkShouldLeftTrimDomText(t,e){return!e||(this.isElement(e)?"BR"===e.tagName:!this._encounteredRawContentDomNodes.has(t.previousSibling)&&/[^\S\u00A0]/.test(e.data.charAt(e.data.length-1)))}_checkShouldRightTrimDomText(t,e){return!e&&!oo(t)}_getTouchingInlineViewNode(t,e){const n=new ar({startPosition:e?lr._createAfter(t):lr._createBefore(t),direction:e?"forward":"backward"});for(const t of n){if(t.item.is("element")&&this.inlineObjectElements.includes(t.item.name))return t.item;if(t.item.is("containerElement"))return null;if(t.item.is("element","br"))return null;if(t.item.is("$textProxy"))return t.item}return null}_getTouchingInlineDomNode(t,e){if(!t.parentNode)return null;const n=e?"firstChild":"lastChild",i=e?"nextSibling":"previousSibling";let r=!0;do{if(!r&&t[n]?t=t[n]:t[i]?(t=t[i],r=!1):(t=t.parentNode,r=!0),!t||this._isBlockElement(t))return null}while(!to(t)&&"BR"!=t.tagName&&!this._isInlineObjectElement(t));return t}_isBlockElement(t){return this.isElement(t)&&this.blockElements.includes(t.tagName.toLowerCase())}_isInlineObjectElement(t){return this.isElement(t)&&this.inlineObjectElements.includes(t.tagName.toLowerCase())}_createViewElement(t,e){if(this.isComment(t))return new Rr(this.document,"$comment");const n=e.keepOriginalCase?t.tagName:t.tagName.toLowerCase();return new tr(this.document,n)}_isViewElementWithRawContent(t,e){return!1!==e.withChildren&&this._rawContentElementMatcher.match(t)}}function Lo(t,e){for(;t&&t!=wo.document;)e(t),t=t.parentNode}function To(t,e){const n=t.parentNode;return n&&n.tagName&&e.includes(n.tagName.toLowerCase())}function Do(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}var Eo=zt({},d,{listenTo(t,...e){if(go(t)||Do(t)){const n=this._getProxyEmitter(t)||new Po(t);n.attach(...e),t=n}d.listenTo.call(this,t,...e)},stopListening(t,e,n){if(go(t)||Do(t)){const e=this._getProxyEmitter(t);if(!e)return;t=e}d.stopListening.call(this,t,e,n),t instanceof Po&&t.detach(e)},_getProxyEmitter(t){return e=this,n=Oo(t),e[c]&&e[c][n]?e[c][n].emitter:null;var e,n}});class Po{constructor(t){h(this,Oo(t)),this._domNode=t}}function Oo(t){return t["data-ck-expando"]||(t["data-ck-expando"]=s())}zt(Po.prototype,d,{attach(t,e,n={}){if(this._domListeners&&this._domListeners[t])return;const i={capture:!!n.useCapture,passive:!!n.usePassive},r=this._createDomListener(t,i);this._domNode.addEventListener(t,r,i),this._domListeners||(this._domListeners={}),this._domListeners[t]=r},detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()},_createDomListener(t,e){const n=e=>{this.fire(t,e)};return n.removeListener=()=>{this._domNode.removeEventListener(t,n,e),delete this._domListeners[t]},n}});class Yo{constructor(t){this.view=t,this.document=t.document,this.isEnabled=!1}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(t){return t&&3===t.nodeType&&(t=t.parentNode),!(!t||1!==t.nodeType)&&t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}Gt(Yo,Eo);var Io=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},zo=function(t){return this.__data__.has(t)};function No(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new He;++ea))return!1;var c=o.get(t),u=o.get(e);if(c&&u)return c==e&&u==t;var d=-1,h=!0,f=2&n?new Ro:void 0;for(o.set(t,e),o.set(e,t);++d{this.listenTo(t,e,((t,e)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(e.target)&&this.onDomEvent(e)}),{useCapture:this.useCapture})}))}fire(t,e,n){this.isEnabled&&this.document.fire(t,new ts(this.view,e,n))}}class ns extends es{constructor(t){super(t),this.domEventType=["keydown","keyup"]}onDomEvent(t){this.fire(t.type,t,{keyCode:t.keyCode,altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,get keystroke(){return Or(this)}})}}var is=function(){return y.a.Date.now()},rs=/\s/,os=function(t){for(var e=t.length;e--&&rs.test(t.charAt(e)););return e},ss=/^\s+/,as=function(t){return t?t.slice(0,os(t)+1).replace(ss,""):t},ls=/^[-+]0x[0-9a-f]+$/i,cs=/^0b[01]+$/i,us=/^0o[0-7]+$/i,ds=parseInt,hs=function(t){if("number"==typeof t)return t;if(bi(t))return NaN;if(_(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=_(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=as(t);var n=cs.test(t);return n||us.test(t)?ds(t.slice(2),n?2:8):ls.test(t)?NaN:+t},fs=Math.max,ps=Math.min,ms=function(t,e,n){var i,r,o,s,a,l,c=0,u=!1,d=!1,h=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function f(e){var n=i,o=r;return i=r=void 0,c=e,s=t.apply(o,n)}function p(t){return c=t,a=setTimeout(g,e),u?f(t):s}function m(t){var n=t-l;return void 0===l||n>=e||n<0||d&&t-c>=o}function g(){var t=is();if(m(t))return b(t);a=setTimeout(g,function(t){var n=e-(t-l);return d?ps(n,o-(t-c)):n}(t))}function b(t){return a=void 0,h&&i?f(t):(i=r=void 0,s)}function v(){var t=is(),n=m(t);if(i=arguments,r=this,l=t,n){if(void 0===a)return p(l);if(d)return clearTimeout(a),a=setTimeout(g,e),f(l)}return void 0===a&&(a=setTimeout(g,e)),s}return e=hs(e)||0,_(n)&&(u=!!n.leading,o=(d="maxWait"in n)?fs(hs(n.maxWait)||0,e):o,h="trailing"in n?!!n.trailing:h),v.cancel=function(){void 0!==a&&clearTimeout(a),c=0,i=l=r=a=void 0},v.flush=function(){return void 0===a?s:b(is())},v};class gs extends Yo{constructor(t){super(t),this._fireSelectionChangeDoneDebounced=ms((t=>this.document.fire("selectionChangeDone",t)),200)}observe(){const t=this.document;t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&n.preventDefault()}),{context:"$capture"}),t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&this._handleSelectionMove(n.keyCode)}),{priority:"lowest"})}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(t){const e=this.document.selection,n=new hr(e.getRanges(),{backward:e.isBackward,fake:!1});t!=Er.arrowleft&&t!=Er.arrowup||n.setTo(n.getFirstPosition()),t!=Er.arrowright&&t!=Er.arrowdown||n.setTo(n.getLastPosition());const i={oldSelection:e,newSelection:n,domSelection:null};this.document.fire("selectionChange",i),this._fireSelectionChangeDoneDebounced(i)}}class bs extends Yo{constructor(t){super(t),this.mutationObserver=t.getObserver(Qo),this.selection=this.document.selection,this.domConverter=t.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=ms((t=>this.document.fire("selectionChangeDone",t)),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._loopbackCounter=0}observe(t){const e=t.ownerDocument;this._documents.has(e)||(this.listenTo(e,"selectionchange",((t,n)=>{this._handleSelectionChange(n,e)})),this._documents.add(e))}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionChange(t,e){if(!this.isEnabled)return;const n=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(n.anchorNode))return;this.mutationObserver.flush();const i=this.domConverter.domSelectionToView(n);if(0!=i.rangeCount){if(this.view.hasDomSelection=!0,!(this.selection.isEqual(i)&&this.domConverter.isDomSelectionCorrect(n)||++this._loopbackCounter>60))if(this.selection.isSimilar(i))this.view.forceRender();else{const t={oldSelection:this.selection,newSelection:i,domSelection:n};this.document.fire("selectionChange",t),this._fireSelectionChangeDoneDebounced(t)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class vs extends es{constructor(t){super(t),this.domEventType=["focus","blur"],this.useCapture=!0;const e=this.document;e.on("focus",(()=>{e.isFocused=!0,this._renderTimeoutId=setTimeout((()=>t.change((()=>{}))),50)})),e.on("blur",((n,i)=>{const r=e.selection.editableElement;null!==r&&r!==i.target||(e.isFocused=!1,t.change((()=>{})))}))}onDomEvent(t){this.fire(t.type,t)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class _s extends es{constructor(t){super(t),this.domEventType=["compositionstart","compositionupdate","compositionend"];const e=this.document;e.on("compositionstart",(()=>{e.isComposing=!0})),e.on("compositionend",(()=>{e.isComposing=!1}))}onDomEvent(t){this.fire(t.type,t)}}class ys extends es{constructor(t){super(t),this.domEventType=["beforeinput"]}onDomEvent(t){this.fire(t.type,t)}}class ws{constructor(){this._replacedElements=[]}replace(t,e){this._replacedElements.push({element:t,newElement:e}),t.style.display="none",e&&t.parentNode.insertBefore(e,t.nextSibling)}restore(){this._replacedElements.forEach((({element:t,newElement:e})=>{t.style.display="",e&&e.remove()})),this._replacedElements=[]}}var xs=function(t){return"string"==typeof t||!yt(t)&&pt(t)&&"[object String]"==D(t)};function ks(t){return"[object Range]"==Object.prototype.toString.apply(t)}function Ms(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}const Ss=["top","right","bottom","left","width","height"];class As{constructor(t){const e=ks(t);if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),qn(t)||e)if(e){const e=As.getDomRangeRects(t);Cs(this,As.getBoundingRect(e))}else Cs(this,t.getBoundingClientRect());else if(Do(t)){const{innerWidth:e,innerHeight:n}=t;Cs(this,{top:0,right:e,bottom:n,left:0,width:e,height:n})}else Cs(this,t)}clone(){return new As(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left)};return e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0?null:new As(e)}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if(!Ls(t)){let n=t.parentNode||t.commonAncestorContainer;for(;n&&!Ls(n);){const t=new As(n),i=e.getIntersection(t);if(!i)return null;i.getArea(){for(const e of t){const t=Ts._getElementCallbacks(e.target);if(t)for(const n of t)n(e)}}))}}Ts._observerInstance=null,Ts._elementCallbacks=null;class Ds{constructor(t){this._callback=t,this._elements=new Set,this._previousRects=new Map,this._periodicCheckTimeout=null}observe(t){this._elements.add(t),this._checkElementRectsAndExecuteCallback(),1===this._elements.size&&this._startPeriodicCheck()}unobserve(t){this._elements.delete(t),this._previousRects.delete(t),this._elements.size||this._stopPeriodicCheck()}_startPeriodicCheck(){const t=()=>{this._checkElementRectsAndExecuteCallback(),this._periodicCheckTimeout=setTimeout(t,100)};this.listenTo(wo.window,"resize",(()=>{this._checkElementRectsAndExecuteCallback()})),this._periodicCheckTimeout=setTimeout(t,100)}_stopPeriodicCheck(){clearTimeout(this._periodicCheckTimeout),this.stopListening(),this._previousRects.clear()}_checkElementRectsAndExecuteCallback(){const t=[];for(const e of this._elements)this._hasRectChanged(e)&&t.push({target:e,contentRect:this._previousRects.get(e)});t.length&&this._callback(t)}_hasRectChanged(t){if(!t.ownerDocument.body.contains(t))return!1;const e=new As(t),n=this._previousRects.get(t),i=!n||!n.isEqual(e);return this._previousRects.set(t,e),i}}function Es(t){return e=>e+t}function Ps(t){const e=t.next();return e.done?null:e.value}Gt(Ds,Eo);class Os{constructor(){this.set("isFocused",!1),this.set("focusedElement",null),this._elements=new Set,this._nextEventLoopTimeout=null}add(t){if(this._elements.has(t))throw new l.a("focustracker-add-element-already-exist",this);this.listenTo(t,"focus",(()=>this._focus(t)),{useCapture:!0}),this.listenTo(t,"blur",(()=>this._blur()),{useCapture:!0}),this._elements.add(t)}remove(t){t===this.focusedElement&&this._blur(t),this._elements.has(t)&&(this.stopListening(t),this._elements.delete(t))}destroy(){this.stopListening()}_focus(t){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=t,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0)}}Gt(Os,Eo),Gt(Os,Vt);class Ys{constructor(){this._listener=Object.create(Eo)}listenTo(t){this._listener.listenTo(t,"keydown",((t,e)=>{this._listener.fire("_keydown:"+Or(e),e)}))}set(t,e,n={}){const i=Yr(t),r=n.priority;this._listener.listenTo(this._listener,"_keydown:"+i,((t,n)=>{e(n,(()=>{n.preventDefault(),n.stopPropagation(),t.stop()})),t.return=!0}),{priority:r})}press(t){return!!this._listener.fire("_keydown:"+Or(t),t)}destroy(){this._listener.stopListening()}}class Is extends Yo{constructor(t){super(t),this.document.on("keydown",((t,e)=>{if(this.isEnabled&&((n=e.keyCode)==Er.arrowright||n==Er.arrowleft||n==Er.arrowup||n==Er.arrowdown)){const n=new pr(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(n,e),n.stop.called&&t.stop()}var n}))}observe(){}}function zs({target:t,viewportOffset:e=0}){const n=Vs(t);let i=n,r=null;for(;i;){let o;o=Ws(i==n?t:r),Rs(o,(()=>Us(t,i)));const s=Us(t,i);if(Ns(i,s,e),i.parent!=i){if(r=i.frameElement,i=i.parent,!r)return}else i=null}}function Ns(t,e,n){const i=e.clone().moveBy(0,n),r=e.clone().moveBy(0,-n),o=new As(t).excludeScrollbarsAndBorders();if(![r,i].every((t=>o.contains(t)))){let{scrollX:s,scrollY:a}=t;Fs(r,o)?a-=o.top-e.top+n:js(i,o)&&(a+=e.bottom-o.bottom+n),Hs(e,o)?s-=o.left-e.left+n:Bs(e,o)&&(s+=e.right-o.right+n),t.scrollTo(s,a)}}function Rs(t,e){const n=Vs(t);let i,r;for(;t!=n.document.body;)r=e(),i=new As(t).excludeScrollbarsAndBorders(),i.contains(r)||(Fs(r,i)?t.scrollTop-=i.top-r.top:js(r,i)&&(t.scrollTop+=r.bottom-i.bottom),Hs(r,i)?t.scrollLeft-=i.left-r.left:Bs(r,i)&&(t.scrollLeft+=r.right-i.right)),t=t.parentNode}function js(t,e){return t.bottom>e.bottom}function Fs(t,e){return t.tope.right}function Vs(t){return ks(t)?t.startContainer.ownerDocument.defaultView:t.ownerDocument.defaultView}function Ws(t){if(ks(t)){let e=t.commonAncestorContainer;return to(e)&&(e=e.parentNode),e}return t.parentNode}function Us(t,e){const n=Vs(t),i=new As(t);if(n===e)return i;{let t=n;for(;t!=e;){const e=t.frameElement,n=new As(e).excludeScrollbarsAndBorders();i.moveBy(n.left,n.top),t=t.parent}}return i}Object.assign({},{scrollViewportToShowTarget:zs,scrollAncestorsToShowTarget:function(t){Rs(Ws(t),(()=>new As(t)))}});class Xs{constructor(t){this.document=new wr(t),this.domConverter=new Co(this.document),this.domRoots=new Map,this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new bo(this.domConverter,this.document.selection),this._renderer.bind("isFocused").to(this.document),this._initialDomRootAttributes=new WeakMap,this._observers=new Map,this._ongoingChange=!1,this._postFixersInProgress=!1,this._renderingDisabled=!1,this._hasChangedSinceTheLastRendering=!1,this._writer=new Wr(this.document),this.addObserver(Qo),this.addObserver(bs),this.addObserver(vs),this.addObserver(ns),this.addObserver(gs),this.addObserver(_s),this.addObserver(Is),Lr.isAndroid&&this.addObserver(ys),this.document.on("arrowKey",lo,{priority:"low"}),jr(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0}))}attachDomRoot(t,e="main"){const n=this.document.getRoot(e);n._name=t.tagName.toLowerCase();const i={};for(const{name:e,value:r}of Array.from(t.attributes))i[e]=r,"class"===e?this._writer.addClass(r.split(" "),n):this._writer.setAttribute(e,r,n);this._initialDomRootAttributes.set(t,i);const r=()=>{this._writer.setAttribute("contenteditable",!n.isReadOnly,n),n.isReadOnly?this._writer.addClass("ck-read-only",n):this._writer.removeClass("ck-read-only",n)};r(),this.domRoots.set(e,t),this.domConverter.bindElements(t,n),this._renderer.markToSync("children",n),this._renderer.markToSync("attributes",n),this._renderer.domDocuments.add(t.ownerDocument),n.on("change:children",((t,e)=>this._renderer.markToSync("children",e))),n.on("change:attributes",((t,e)=>this._renderer.markToSync("attributes",e))),n.on("change:text",((t,e)=>this._renderer.markToSync("text",e))),n.on("change:isReadOnly",(()=>this.change(r))),n.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const n of this._observers.values())n.observe(t,e)}detachDomRoot(t){const e=this.domRoots.get(t);Array.from(e.attributes).forEach((({name:t})=>e.removeAttribute(t)));const n=this._initialDomRootAttributes.get(e);for(const t in n)e.setAttribute(t,n[t]);this.domRoots.delete(t),this.domConverter.unbindDomElement(e)}getDomRoot(t="main"){return this.domRoots.get(t)}addObserver(t){let e=this._observers.get(t);if(e)return e;e=new t(this),this._observers.set(t,e);for(const[t,n]of this.domRoots)e.observe(n,t);return e.enable(),e}getObserver(t){return this._observers.get(t)}disableObservers(){for(const t of this._observers.values())t.disable()}enableObservers(){for(const t of this._observers.values())t.enable()}scrollToTheSelection(){const t=this.document.selection.getFirstRange();t&&zs({target:this.domConverter.viewRangeToDom(t),viewportOffset:20})}focus(){if(!this.document.isFocused){const t=this.document.selection.editableElement;t&&(this.domConverter.focus(t),this.forceRender())}}change(t){if(this.isRenderingInProgress||this._postFixersInProgress)throw new l.a("cannot-change-view-tree",this);try{if(this._ongoingChange)return t(this._writer);this._ongoingChange=!0;const e=t(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),e}catch(t){l.a.rethrowUnexpectedError(t,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.change((()=>{}))}destroy(){for(const t of this._observers.values())t.destroy();this.document.destroy(),this.stopListening()}createPositionAt(t,e){return lr._createAt(t,e)}createPositionAfter(t){return lr._createAfter(t)}createPositionBefore(t){return lr._createBefore(t)}createRange(t,e){return new cr(t,e)}createRangeOn(t){return cr._createOn(t)}createRangeIn(t){return cr._createIn(t)}createSelection(t,e,n){return new hr(t,e,n)}_disableRendering(t){this._renderingDisabled=t,0==t&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}Gt(Xs,Vt);class $s{constructor(t){this.parent=null,this._attrs=fi(t)}get index(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildIndex(this)))throw new l.a("model-node-not-found-in-parent",this);return t}get startOffset(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildStartOffset(this)))throw new l.a("model-node-not-found-in-parent",this);return t}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return this.root.is("rootElement")}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.startOffset),e=e.parent;return t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),i=t.getAncestors(e);let r=0;for(;n[r]==i[r]&&n[r];)r++;return 0===r?null:n[r-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),i=li(e,n);switch(i){case"prefix":return!0;case"extension":return!1;default:return e[i](t[e[0]]=e[1],t)),{})),t}is(t){return"node"===t||"model:node"===t}_clone(){return new $s(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(t,e){this._attrs.set(t,e)}_setAttributesTo(t){this._attrs=fi(t)}_removeAttribute(t){return this._attrs.delete(t)}_clearAttributes(){this._attrs.clear()}}class qs extends $s{constructor(t,e){super(e),this._data=t||""}get offsetSize(){return this.data.length}get data(){return this._data}is(t){return"$text"===t||"model:$text"===t||"text"===t||"model:text"===t||"node"===t||"model:node"===t}toJSON(){const t=super.toJSON();return t.data=this.data,t}_clone(){return new qs(this.data,this.getAttributes())}static fromJSON(t){return new qs(t.data,t.attributes)}}class Gs{constructor(t,e,n){if(this.textNode=t,e<0||e>t.offsetSize)throw new l.a("model-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.offsetSize)throw new l.a("model-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}is(t){return"$textProxy"===t||"model:$textProxy"===t||"textProxy"===t||"model:textProxy"===t}getPath(){const t=this.textNode.getPath();return t.length>0&&(t[t.length-1]+=this.offsetInText),t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}hasAttribute(t){return this.textNode.hasAttribute(t)}getAttribute(t){return this.textNode.getAttribute(t)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}class Js{constructor(t){this._nodes=[],t&&this._insertNodes(0,t)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce(((t,e)=>t+e.offsetSize),0)}getNode(t){return this._nodes[t]||null}getNodeIndex(t){const e=this._nodes.indexOf(t);return-1==e?null:e}getNodeStartOffset(t){const e=this.getNodeIndex(t);return null===e?null:this._nodes.slice(0,e).reduce(((t,e)=>t+e.offsetSize),0)}indexToOffset(t){if(t==this._nodes.length)return this.maxOffset;const e=this._nodes[t];if(!e)throw new l.a("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(e)}offsetToIndex(t){let e=0;for(const n of this._nodes){if(t>=e&&tt.toJSON()))}}class Zs extends $s{constructor(t,e,n){super(e),this.name=t,this._children=new Js,n&&this._insertChild(0,n)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}is(t,e=null){return e?e===this.name&&("element"===t||"model:element"===t):"element"===t||"model:element"===t||"node"===t||"model:node"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}offsetToIndex(t){return this._children.offsetToIndex(t)}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}findAncestor(t,e={includeSelf:!1}){let n=e.includeSelf?this:this.parent;for(;n;){if(n.name===t)return n;n=n.parent}return null}toJSON(){const t=super.toJSON();if(t.name=this.name,this._children.length>0){t.children=[];for(const e of this._children)t.children.push(e.toJSON())}return t}_clone(t=!1){const e=t?Array.from(this._children).map((t=>t._clone(!0))):null;return new Zs(this.name,this.getAttributes(),e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){return"string"==typeof t?[new qs(t)]:(Kn(t)||(t=[t]),Array.from(t).map((t=>"string"==typeof t?new qs(t):t instanceof Gs?new qs(t.data,t.getAttributes()):t)))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}static fromJSON(t){let e=null;if(t.children){e=[];for(const n of t.children)n.name?e.push(Zs.fromJSON(n)):e.push(qs.fromJSON(n))}return new Zs(t.name,t.attributes,e)}}class Ks{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new l.a("model-tree-walker-no-start-position",null);const e=t.direction||"forward";if("forward"!=e&&"backward"!=e)throw new l.a("model-tree-walker-unknown-direction",t,{direction:e});this.direction=e,this.boundaries=t.boundaries||null,t.startPosition?this.position=t.startPosition.clone():this.position=ta._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}skip(t){let e,n,i,r;do{i=this.position,r=this._visitedParent,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=i,this._visitedParent=r)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const t=this.position,e=this.position.clone(),n=this._visitedParent;if(null===n.parent&&e.offset===n.maxOffset)return{done:!0};if(n===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0};const i=e.parent,r=ea(e,i),o=r||na(e,i,r);if(o instanceof Zs)return this.shallow?e.offset++:(e.path.push(0),this._visitedParent=o),this.position=e,Qs("elementStart",o,t,e,1);if(o instanceof qs){let i;if(this.singleCharacters)i=1;else{let t=o.endOffset;this._boundaryEndParent==n&&this.boundaries.end.offsett&&(t=this.boundaries.start.offset),i=e.offset-t}const r=e.offset-o.startOffset,s=new Gs(o,r-i,i);return e.offset-=i,this.position=e,Qs("text",s,t,e,i)}return e.path.pop(),this.position=e,this._visitedParent=n.parent,Qs("elementStart",n,t,e,1)}}function Qs(t,e,n,i,r){return{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:i,length:r}}}class ta{constructor(t,e,n="toNone"){if(!t.is("element")&&!t.is("documentFragment"))throw new l.a("model-position-root-invalid",t);if(!(e instanceof Array)||0===e.length)throw new l.a("model-position-path-incorrect-format",t,{path:e});t.is("rootElement")?e=e.slice():(e=[...t.getPath(),...e],t=t.root),this.root=t,this.path=e,this.stickiness=n}get offset(){return this.path[this.path.length-1]}set offset(t){this.path[this.path.length-1]=t}get parent(){let t=this.root;for(let e=0;en.path.length){if(e.offset!==i.maxOffset)return!1;e.path=e.path.slice(0,-1),i=i.parent,e.offset++}else{if(0!==n.offset)return!1;n.path=n.path.slice(0,-1)}}}is(t){return"position"===t||"model:position"===t}hasSameParentAs(t){return this.root===t.root&&"same"==li(this.getParentPath(),t.getParentPath())}getTransformedByOperation(t){let e;switch(t.type){case"insert":e=this._getTransformedByInsertOperation(t);break;case"move":case"remove":case"reinsert":e=this._getTransformedByMoveOperation(t);break;case"split":e=this._getTransformedBySplitOperation(t);break;case"merge":e=this._getTransformedByMergeOperation(t);break;default:e=ta._createAt(this)}return e}_getTransformedByInsertOperation(t){return this._getTransformedByInsertion(t.position,t.howMany)}_getTransformedByMoveOperation(t){return this._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany)}_getTransformedBySplitOperation(t){const e=t.movedRange;return e.containsPosition(this)||e.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(t.splitPosition,t.moveTargetPosition):t.graveyardPosition?this._getTransformedByMove(t.graveyardPosition,t.insertionPosition,1):this._getTransformedByInsertion(t.insertionPosition,1)}_getTransformedByMergeOperation(t){const e=t.movedRange;let n;return e.containsPosition(this)||e.start.isEqual(this)?(n=this._getCombined(t.sourcePosition,t.targetPosition),t.sourcePosition.isBefore(t.targetPosition)&&(n=n._getTransformedByDeletion(t.deletionPosition,1))):n=this.isEqual(t.deletionPosition)?ta._createAt(t.deletionPosition):this._getTransformedByMove(t.deletionPosition,t.graveyardPosition,1),n}_getTransformedByDeletion(t,e){const n=ta._createAt(this);if(this.root!=t.root)return n;if("same"==li(t.getParentPath(),this.getParentPath())){if(t.offsetthis.offset)return null;n.offset-=e}}else if("prefix"==li(t.getParentPath(),this.getParentPath())){const i=t.path.length-1;if(t.offset<=this.path[i]){if(t.offset+e>this.path[i])return null;n.path[i]-=e}}return n}_getTransformedByInsertion(t,e){const n=ta._createAt(this);if(this.root!=t.root)return n;if("same"==li(t.getParentPath(),this.getParentPath()))(t.offsete+1;){const e=i.maxOffset-n.offset;0!==e&&t.push(new ra(n,n.getShiftedBy(e))),n.path=n.path.slice(0,-1),n.offset++,i=i.parent}for(;n.path.length<=this.end.path.length;){const e=this.end.path[n.path.length-1],i=e-n.offset;0!==i&&t.push(new ra(n,n.getShiftedBy(i))),n.offset=e,n.path.push(0)}return t}getWalker(t={}){return t.boundaries=this,new Ks(t)}*getItems(t={}){t.boundaries=this,t.ignoreElementEnd=!0;const e=new Ks(t);for(const t of e)yield t.item}*getPositions(t={}){t.boundaries=this;const e=new Ks(t);yield e.position;for(const t of e)yield t.nextPosition}getTransformedByOperation(t){switch(t.type){case"insert":return this._getTransformedByInsertOperation(t);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(t);case"split":return[this._getTransformedBySplitOperation(t)];case"merge":return[this._getTransformedByMergeOperation(t)]}return[new ra(this.start,this.end)]}getTransformedByOperations(t){const e=[new ra(this.start,this.end)];for(const n of t)for(let t=0;t0?new this(n,i):new this(i,n)}static _createIn(t){return new this(ta._createAt(t,0),ta._createAt(t,t.maxOffset))}static _createOn(t){return this._createFromPositionAndShift(ta._createBefore(t),t.offsetSize)}static _createFromRanges(t){if(0===t.length)throw new l.a("range-create-from-ranges-empty-array",null);if(1==t.length)return t[0].clone();const e=t[0];t.sort(((t,e)=>t.start.isAfter(e.start)?1:-1));const n=t.indexOf(e),i=new this(e.start,e.end);if(n>0)for(let e=n-1;t[e].end.isEqual(i.start);e++)i.start=ta._createAt(t[e].start);for(let e=n+1;e{if(e.viewPosition)return;const n=this._modelToViewMapping.get(e.modelPosition.parent);e.viewPosition=this.findPositionIn(n,e.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((t,e)=>{if(e.modelPosition)return;const n=this.findMappedViewAncestor(e.viewPosition),i=this._viewToModelMapping.get(n),r=this._toModelOffset(e.viewPosition.parent,e.viewPosition.offset,n);e.modelPosition=ta._createAt(i,r)}),{priority:"low"})}bindElements(t,e){this._modelToViewMapping.set(t,e),this._viewToModelMapping.set(e,t)}unbindViewElement(t){const e=this.toModelElement(t);if(this._viewToModelMapping.delete(t),this._elementToMarkerNames.has(t))for(const e of this._elementToMarkerNames.get(t))this._unboundMarkerNames.add(e);this._modelToViewMapping.get(e)==t&&this._modelToViewMapping.delete(e)}unbindModelElement(t){const e=this.toViewElement(t);this._modelToViewMapping.delete(t),this._viewToModelMapping.get(e)==t&&this._viewToModelMapping.delete(e)}bindElementToMarker(t,e){const n=this._markerNameToElements.get(e)||new Set;n.add(t);const i=this._elementToMarkerNames.get(t)||new Set;i.add(e),this._markerNameToElements.set(e,n),this._elementToMarkerNames.set(t,i)}unbindElementFromMarkerName(t,e){const n=this._markerNameToElements.get(e);n&&(n.delete(t),0==n.size&&this._markerNameToElements.delete(e));const i=this._elementToMarkerNames.get(t);i&&(i.delete(e),0==i.size&&this._elementToMarkerNames.delete(t))}flushUnboundMarkerNames(){const t=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),t}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set}toModelElement(t){return this._viewToModelMapping.get(t)}toViewElement(t){return this._modelToViewMapping.get(t)}toModelRange(t){return new ra(this.toModelPosition(t.start),this.toModelPosition(t.end))}toViewRange(t){return new cr(this.toViewPosition(t.start),this.toViewPosition(t.end))}toModelPosition(t){const e={viewPosition:t,mapper:this};return this.fire("viewToModelPosition",e),e.modelPosition}toViewPosition(t,e={isPhantom:!1}){const n={modelPosition:t,mapper:this,isPhantom:e.isPhantom};return this.fire("modelToViewPosition",n),n.viewPosition}markerNameToElements(t){const e=this._markerNameToElements.get(t);if(!e)return null;const n=new Set;for(const t of e)if(t.is("attributeElement"))for(const e of t.getElementsWithSameId())n.add(e);else n.add(t);return n}registerViewToModelLength(t,e){this._viewToModelLengthCallbacks.set(t,e)}findMappedViewAncestor(t){let e=t.parent;for(;!this._viewToModelMapping.has(e);)e=e.parent;return e}_toModelOffset(t,e,n){if(n!=t)return this._toModelOffset(t.parent,t.index,n)+this._toModelOffset(t,e,t);if(t.is("$text"))return e;let i=0;for(let n=0;n1?e[0]+":"+e[1]:e[0]}class la{constructor(t){this.conversionApi=Object.assign({dispatcher:this},t),this._reconversionEventsMapping=new Map}convertChanges(t,e,n){for(const e of t.getMarkersToRemove())this.convertMarkerRemove(e.name,e.range,n);const i=this._mapChangesWithAutomaticReconversion(t);for(const t of i)"insert"===t.type?this.convertInsert(ra._createFromPositionAndShift(t.position,t.length),n):"remove"===t.type?this.convertRemove(t.position,t.length,t.name,n):"reconvert"===t.type?this.reconvertElement(t.element,n):this.convertAttribute(t.range,t.attributeKey,t.attributeOldValue,t.attributeNewValue,n);for(const t of this.conversionApi.mapper.flushUnboundMarkerNames()){const i=e.get(t).getRange();this.convertMarkerRemove(t,i,n),this.convertMarkerAdd(t,i,n)}for(const e of t.getMarkersToAdd())this.convertMarkerAdd(e.name,e.range,n)}convertInsert(t,e){this.conversionApi.writer=e,this.conversionApi.consumable=this._createInsertConsumable(t);for(const e of Array.from(t).map(ua))this._convertInsertWithAttributes(e);this._clearConversionApi()}convertRemove(t,e,n,i){this.conversionApi.writer=i,this.fire("remove:"+n,{position:t,length:e},this.conversionApi),this._clearConversionApi()}convertAttribute(t,e,n,i,r){this.conversionApi.writer=r,this.conversionApi.consumable=this._createConsumableForRange(t,"attribute:"+e);for(const r of t){const t={item:r.item,range:ra._createFromPositionAndShift(r.previousPosition,r.length),attributeKey:e,attributeOldValue:n,attributeNewValue:i};this._testAndFire("attribute:"+e,t)}this._clearConversionApi()}reconvertElement(t,e){const n=ra._createOn(t);this.conversionApi.writer=e,this.conversionApi.consumable=this._createInsertConsumable(n);const i=this.conversionApi.mapper,r=i.toViewElement(t);e.remove(r),this._convertInsertWithAttributes({item:t,range:n});const o=i.toViewElement(t);for(const n of ra._createIn(t)){const{item:t}=n,r=da(t,i);r?r.root!==o.root&&e.move(e.createRangeOn(r),i.toViewPosition(ta._createBefore(t))):this._convertInsertWithAttributes(ua(n))}i.unbindViewElement(r),this._clearConversionApi()}convertSelection(t,e,n){const i=Array.from(e.getMarkersAtPosition(t.getFirstPosition()));if(this.conversionApi.writer=n,this.conversionApi.consumable=this._createSelectionConsumable(t,i),this.fire("selection",{selection:t},this.conversionApi),t.isCollapsed){for(const e of i){const n=e.getRange();if(!ca(t.getFirstPosition(),e,this.conversionApi.mapper))continue;const i={item:t,markerName:e.name,markerRange:n};this.conversionApi.consumable.test(t,"addMarker:"+e.name)&&this.fire("addMarker:"+e.name,i,this.conversionApi)}for(const e of t.getAttributeKeys()){const n={item:t,range:t.getFirstRange(),attributeKey:e,attributeOldValue:null,attributeNewValue:t.getAttribute(e)};this.conversionApi.consumable.test(t,"attribute:"+n.attributeKey)&&this.fire("attribute:"+n.attributeKey+":$text",n,this.conversionApi)}this._clearConversionApi()}else this._clearConversionApi()}convertMarkerAdd(t,e,n){if("$graveyard"==e.root.rootName)return;this.conversionApi.writer=n;const i="addMarker:"+t,r=new sa;if(r.add(e,i),this.conversionApi.consumable=r,this.fire(i,{markerName:t,markerRange:e},this.conversionApi),r.test(e,i)){this.conversionApi.consumable=this._createConsumableForRange(e,i);for(const n of e.getItems()){if(!this.conversionApi.consumable.test(n,i))continue;const r={item:n,range:ra._createOn(n),markerName:t,markerRange:e};this.fire(i,r,this.conversionApi)}this._clearConversionApi()}else this._clearConversionApi()}convertMarkerRemove(t,e,n){"$graveyard"!=e.root.rootName&&(this.conversionApi.writer=n,this.fire("removeMarker:"+t,{markerName:t,markerRange:e},this.conversionApi),this._clearConversionApi())}_mapReconversionTriggerEvent(t,e){this._reconversionEventsMapping.set(e,t)}_createInsertConsumable(t){const e=new sa;for(const n of t){const t=n.item;e.add(t,"insert");for(const n of t.getAttributeKeys())e.add(t,"attribute:"+n)}return e}_createConsumableForRange(t,e){const n=new sa;for(const i of t.getItems())n.add(i,e);return n}_createSelectionConsumable(t,e){const n=new sa;n.add(t,"selection");for(const i of e)n.add(t,"addMarker:"+i.name);for(const e of t.getAttributeKeys())n.add(t,"attribute:"+e);return n}_testAndFire(t,e){this.conversionApi.consumable.test(e.item,t)&&this.fire(function(t,e){return`${t}:${e.item.name||"$text"}`}(t,e),e,this.conversionApi)}_clearConversionApi(){delete this.conversionApi.writer,delete this.conversionApi.consumable}_convertInsertWithAttributes(t){this._testAndFire("insert",t);for(const e of t.item.getAttributeKeys())t.attributeKey=e,t.attributeOldValue=null,t.attributeNewValue=t.item.getAttribute(e),this._testAndFire("attribute:"+e,t)}_mapChangesWithAutomaticReconversion(t){const e=new Set,n=[];for(const i of t.getChanges()){const t=i.position||i.range.start,r=t.parent;if(ea(t,r)){n.push(i);continue}const o="attribute"===i.type?na(t,r,null):r;if(o.is("$text")){n.push(i);continue}let s;if(s="attribute"===i.type?`attribute:${i.attributeKey}:${o.name}`:`${i.type}:${i.name}`,this._isReconvertTriggerEvent(s,o.name)){if(e.has(o))continue;e.add(o),n.push({type:"reconvert",element:o})}else n.push(i)}return n}_isReconvertTriggerEvent(t,e){return this._reconversionEventsMapping.get(t)===e}}function ca(t,e,n){const i=e.getRange(),r=Array.from(t.getAncestors());return r.shift(),r.reverse(),!r.some((t=>{if(i.containsItem(t))return!!n.toViewElement(t).getCustomProperty("addHighlight")}))}function ua(t){return{item:t.item,range:ra._createFromPositionAndShift(t.previousPosition,t.length)}}function da(t,e){if(t.is("textProxy")){const n=e.toViewPosition(ta._createBefore(t)).parent;return n.is("$text")?n:null}return e.toViewElement(t)}Gt(la,d);class ha{constructor(t,e,n){this._lastRangeBackward=!1,this._ranges=[],this._attrs=new Map,t&&this.setTo(t,e,n)}get anchor(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.end:t.start}return null}get focus(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.start:t.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(t){if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const i of t._ranges)if(e.isEqual(i)){n=!0;break}if(!n)return!1}return!0}*getRanges(){for(const t of this._ranges)yield new ra(t.start,t.end)}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?new ra(t.start,t.end):null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?new ra(t.start,t.end):null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}setTo(t,e,n){if(null===t)this._setRanges([]);else if(t instanceof ha)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof ra)this._setRanges([t],!!e&&!!e.backward);else if(t instanceof ta)this._setRanges([new ra(t)]);else if(t instanceof $s){const i=!!n&&!!n.backward;let r;if("in"==e)r=ra._createIn(t);else if("on"==e)r=ra._createOn(t);else{if(void 0===e)throw new l.a("model-selection-setto-required-second-parameter",[this,t]);r=new ra(ta._createAt(t,e))}this._setRanges([r],i)}else{if(!Kn(t))throw new l.a("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,e&&!!e.backward)}}_setRanges(t,e=!1){const n=(t=Array.from(t)).some((e=>{if(!(e instanceof ra))throw new l.a("model-selection-set-ranges-not-range",[this,t]);return this._ranges.every((t=>!t.isEqual(e)))}));if(t.length!==this._ranges.length||n){this._removeAllRanges();for(const e of t)this._pushRange(e);this._lastRangeBackward=!!e,this.fire("change:range",{directChange:!0})}}setFocus(t,e){if(null===this.anchor)throw new l.a("model-selection-setfocus-no-ranges",[this,t]);const n=ta._createAt(t,e);if("same"==n.compareWith(this.focus))return;const i=this.anchor;this._ranges.length&&this._popRange(),"before"==n.compareWith(i)?(this._pushRange(new ra(n,i)),this._lastRangeBackward=!0):(this._pushRange(new ra(i,n)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(t){return this._attrs.get(t)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(t){return this._attrs.has(t)}removeAttribute(t){this.hasAttribute(t)&&(this._attrs.delete(t),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}setAttribute(t,e){this.getAttribute(t)!==e&&(this._attrs.set(t,e),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}is(t){return"selection"===t||"model:selection"===t}*getSelectedBlocks(){const t=new WeakSet;for(const e of this.getRanges()){const n=ma(e.start,t);n&&ga(n,e)&&(yield n);for(const n of e.getWalker()){const i=n.item;"elementEnd"==n.type&&pa(i,t,e)&&(yield i)}const i=ma(e.end,t);i&&!e.end.isTouching(ta._createAt(i,0))&&ga(i,e)&&(yield i)}}containsEntireContent(t=this.anchor.root){const e=ta._createAt(t,0),n=ta._createAt(t,"end");return e.isTouching(this.getFirstPosition())&&n.isTouching(this.getLastPosition())}_pushRange(t){this._checkRange(t),this._ranges.push(new ra(t.start,t.end))}_checkRange(t){for(let e=0;e0;)this._popRange()}_popRange(){this._ranges.pop()}}function fa(t,e){return!e.has(t)&&(e.add(t),t.root.document.model.schema.isBlock(t)&&t.parent)}function pa(t,e,n){return fa(t,e)&&ga(t,n)}function ma(t,e){const n=t.parent.root.document.model.schema,i=t.parent.getAncestors({parentFirst:!0,includeSelf:!0});let r=!1;const o=i.find((t=>!r&&(r=n.isLimit(t),!r&&fa(t,e))));return i.forEach((t=>e.add(t))),o}function ga(t,e){const n=function(t){const e=t.root.document.model.schema;let n=t.parent;for(;n;){if(e.isBlock(n))return n;n=n.parent}}(t);return!n||!e.containsRange(ra._createOn(n),!0)}Gt(ha,d);class ba extends ra{constructor(t,e){super(t,e),va.call(this)}detach(){this.stopListening()}is(t){return"liveRange"===t||"model:liveRange"===t||"range"==t||"model:range"===t}toRange(){return new ra(this.start,this.end)}static fromRange(t){return new ba(t.start,t.end)}}function va(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&_a.call(this,n)}),{priority:"low"})}function _a(t){const e=this.getTransformedByOperation(t),n=ra._createFromRanges(e),i=!n.isEqual(this),r=function(t,e){switch(e.type){case"insert":return t.containsPosition(e.position);case"move":case"remove":case"reinsert":case"merge":return t.containsPosition(e.sourcePosition)||t.start.isEqual(e.sourcePosition)||t.containsPosition(e.targetPosition);case"split":return t.containsPosition(e.splitPosition)||t.containsPosition(e.insertionPosition)}return!1}(this,t);let o=null;if(i){"$graveyard"==n.root.rootName&&(o="remove"==t.type?t.sourcePosition:t.deletionPosition);const e=this.toRange();this.start=n.start,this.end=n.end,this.fire("change:range",e,{deletionPosition:o})}else r&&this.fire("change:content",this.toRange(),{deletionPosition:o})}Gt(ba,d);class ya{constructor(t){this._selection=new wa(t),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(t){return this._selection.containsEntireContent(t)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(t){return this._selection.getAttribute(t)}hasAttribute(t){return this._selection.hasAttribute(t)}refresh(){this._selection._updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(t){this._selection.observeMarkers(t)}is(t){return"selection"===t||"model:selection"==t||"documentSelection"==t||"model:documentSelection"==t}_setFocus(t,e){this._selection.setFocus(t,e)}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setAttribute(t,e){this._selection.setAttribute(t,e)}_removeAttribute(t){this._selection.removeAttribute(t)}_getStoredAttributes(){return this._selection._getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(t){this._selection.restoreGravity(t)}static _getStoreAttributeKey(t){return"selection:"+t}static _isStoreAttributeKey(t){return t.startsWith("selection:")}}Gt(ya,d);class wa extends ha{constructor(t){super(),this.markers=new Qn({idProperty:"name"}),this._model=t.model,this._document=t,this._attributePriority=new Map,this._selectionRestorePosition=null,this._hasChangedRange=!1,this._overriddenGravityRegister=new Set,this._observedMarkers=new Set,this.listenTo(this._model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&"marker"!=n.type&&"rename"!=n.type&&"noop"!=n.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{for(const t of this.getRanges())if(!this._document._validateSelectionRange(t))throw new l.a("document-selection-wrong-position",this,{range:t})})),this.listenTo(this._model.markers,"update",((t,e,n,i)=>{this._updateMarker(e,i)})),this.listenTo(this._document,"change",((t,e)=>{!function(t,e){const n=t.document.differ;for(const i of n.getChanges()){if("insert"!=i.type)continue;const n=i.position.parent;i.length===n.maxOffset&&t.enqueueChange(e,(t=>{const e=Array.from(n.getAttributeKeys()).filter((t=>t.startsWith("selection:")));for(const i of e)t.removeAttribute(i,n)}))}}(this._model,e)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let t=0;t{if(this._hasChangedRange=!0,e.root==this._document.graveyard){this._selectionRestorePosition=i.deletionPosition;const t=this._ranges.indexOf(e);this._ranges.splice(t,1),e.detach()}})),e}_updateMarkers(){if(!this._observedMarkers.size)return;const t=[];let e=!1;for(const e of this._model.markers){const n=e.name.split(":",1)[0];if(!this._observedMarkers.has(n))continue;const i=e.getRange();for(const n of this.getRanges())i.containsRange(n,!n.isCollapsed)&&t.push(e)}const n=Array.from(this.markers);for(const n of t)this.markers.has(n)||(this.markers.add(n),e=!0);for(const n of Array.from(this.markers))t.includes(n)||(this.markers.remove(n),e=!0);e&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateMarker(t,e){const n=t.name.split(":",1)[0];if(!this._observedMarkers.has(n))return;let i=!1;const r=Array.from(this.markers),o=this.markers.has(t);if(e){let n=!1;for(const t of this.getRanges())if(e.containsRange(t,!t.isCollapsed)){n=!0;break}n&&!o?(this.markers.add(t),i=!0):!n&&o&&(this.markers.remove(t),i=!0)}else o&&(this.markers.remove(t),i=!0);i&&this.fire("change:marker",{oldMarkers:r,directChange:!1})}_updateAttributes(t){const e=fi(this._getSurroundingAttributes()),n=fi(this.getAttributes());if(t)this._attributePriority=new Map,this._attrs=new Map;else for(const[t,e]of this._attributePriority)"low"==e&&(this._attrs.delete(t),this._attributePriority.delete(t));this._setAttributesTo(e);const i=[];for(const[t,e]of this.getAttributes())n.has(t)&&n.get(t)===e||i.push(t);for(const[t]of n)this.hasAttribute(t)||i.push(t);i.length>0&&this.fire("change:attribute",{attributeKeys:i,directChange:!1})}_setAttribute(t,e,n=!0){const i=n?"normal":"low";return("low"!=i||"normal"!=this._attributePriority.get(t))&&super.getAttribute(t)!==e&&(this._attrs.set(t,e),this._attributePriority.set(t,i),!0)}_removeAttribute(t,e=!0){const n=e?"normal":"low";return!("low"==n&&"normal"==this._attributePriority.get(t)||(this._attributePriority.set(t,n),!super.hasAttribute(t)||(this._attrs.delete(t),0)))}_setAttributesTo(t){const e=new Set;for(const[e,n]of this.getAttributes())t.get(e)!==n&&this._removeAttribute(e,!1);for(const[n,i]of t)this._setAttribute(n,i,!1)&&e.add(n);return e}*_getStoredAttributes(){const t=this.getFirstPosition().parent;if(this.isCollapsed&&t.isEmpty)for(const e of t.getAttributeKeys())if(e.startsWith("selection:")){const n=e.substr("selection:".length);yield[n,t.getAttribute(e)]}}_getSurroundingAttributes(){const t=this.getFirstPosition(),e=this._model.schema;let n=null;if(this.isCollapsed){const i=t.textNode?t.textNode:t.nodeBefore,r=t.textNode?t.textNode:t.nodeAfter;if(this.isGravityOverridden||(n=xa(i)),n||(n=xa(r)),!this.isGravityOverridden&&!n){let t=i;for(;t&&!e.isInline(t)&&!n;)t=t.previousSibling,n=xa(t)}if(!n){let t=r;for(;t&&!e.isInline(t)&&!n;)t=t.nextSibling,n=xa(t)}n||(n=this._getStoredAttributes())}else{const t=this.getFirstRange();for(const i of t){if(i.item.is("element")&&e.isObject(i.item))break;if("text"==i.type){n=i.item.getAttributes();break}}}return n}_fixGraveyardSelection(t){const e=this._model.schema.getNearestSelectionRange(t);e&&this._pushRange(e)}}function xa(t){return t instanceof Gs||t instanceof qs?t.getAttributes():null}class ka{constructor(t){this._dispatchers=t}add(t){for(const e of this._dispatchers)t(e);return this}}var Ma=function(t){return Xn(t,5)};class Sa extends ka{elementToElement(t){return this.add(function(t){return(t=Ma(t)).view=La(t.view,"container"),e=>{var n;if(e.on("insert:"+t.model,(n=t.view,(t,e,i)=>{const r=n(e.item,i);if(!r)return;if(!i.consumable.consume(e.item,"insert"))return;const o=i.mapper.toViewPosition(e.range.start);i.mapper.bindElements(e.item,r),i.writer.insert(o,r)}),{priority:t.converterPriority||"normal"}),t.triggerBy){if(t.triggerBy.attributes)for(const n of t.triggerBy.attributes)e._mapReconversionTriggerEvent(t.model,`attribute:${n}:${t.model}`);if(t.triggerBy.children)for(const n of t.triggerBy.children)e._mapReconversionTriggerEvent(t.model,"insert:"+n),e._mapReconversionTriggerEvent(t.model,"remove:"+n)}}}(t))}attributeToElement(t){return this.add(function(t){let e="attribute:"+((t=Ma(t)).model.key?t.model.key:t.model);if(t.model.name&&(e+=":"+t.model.name),t.model.values)for(const e of t.model.values)t.view[e]=La(t.view[e],"attribute");else t.view=La(t.view,"attribute");const n=Ta(t);return i=>{i.on(e,function(t){return(e,n,i)=>{const r=t(n.attributeOldValue,i),o=t(n.attributeNewValue,i);if(!r&&!o)return;if(!i.consumable.consume(n.item,e.name))return;const s=i.writer,a=s.document.selection;if(n.item instanceof ha||n.item instanceof ya)s.wrap(a.getFirstRange(),o);else{let t=i.mapper.toViewRange(n.range);null!==n.attributeOldValue&&r&&(t=s.unwrap(t,r)),null!==n.attributeNewValue&&o&&s.wrap(t,o)}}}(n),{priority:t.converterPriority||"normal"})}}(t))}attributeToAttribute(t){return this.add(function(t){let e="attribute:"+((t=Ma(t)).model.key?t.model.key:t.model);if(t.model.name&&(e+=":"+t.model.name),t.model.values)for(const e of t.model.values)t.view[e]=Da(t.view[e]);else t.view=Da(t.view);const n=Ta(t);return i=>{var r;i.on(e,(r=n,(t,e,n)=>{const i=r(e.attributeOldValue,n),o=r(e.attributeNewValue,n);if(!i&&!o)return;if(!n.consumable.consume(e.item,t.name))return;const s=n.mapper.toViewElement(e.item),a=n.writer;if(!s)throw new l.a("conversion-attribute-to-attribute-on-text",[e,n]);if(null!==e.attributeOldValue&&i)if("class"==i.key){const t=ei(i.value);for(const e of t)a.removeClass(e,s)}else if("style"==i.key){const t=Object.keys(i.value);for(const e of t)a.removeStyle(e,s)}else a.removeAttribute(i.key,s);if(null!==e.attributeNewValue&&o)if("class"==o.key){const t=ei(o.value);for(const e of t)a.addClass(e,s)}else if("style"==o.key){const t=Object.keys(o.value);for(const e of t)a.setStyle(e,o.value[e],s)}else a.setAttribute(o.key,o.value,s)}),{priority:t.converterPriority||"normal"})}}(t))}markerToElement(t){return this.add(function(t){return(t=Ma(t)).view=La(t.view,"ui"),e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,i)=>{e.isOpening=!0;const r=n(e,i);e.isOpening=!1;const o=n(e,i);if(!r||!o)return;const s=e.markerRange;if(s.isCollapsed&&!i.consumable.consume(s,t.name))return;for(const e of s)if(!i.consumable.consume(e.item,t.name))return;const a=i.mapper,l=i.writer;l.insert(a.toViewPosition(s.start),r),i.mapper.bindElementToMarker(r,e.markerName),s.isCollapsed||(l.insert(a.toViewPosition(s.end),o),i.mapper.bindElementToMarker(o,e.markerName)),t.stop()}),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,(t.view,(t,e,n)=>{const i=n.mapper.markerNameToElements(e.markerName);if(i){for(const t of i)n.mapper.unbindElementFromMarkerName(t,e.markerName),n.writer.clear(n.writer.createRangeOn(t),t);n.writer.clearClonedElementsGroup(e.markerName),t.stop()}}),{priority:t.converterPriority||"normal"})}}(t))}markerToHighlight(t){return this.add(function(t){return e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,i)=>{if(!e.item)return;if(!(e.item instanceof ha||e.item instanceof ya||e.item.is("$textProxy")))return;const r=Ea(n,e,i);if(!r)return;if(!i.consumable.consume(e.item,t.name))return;const o=i.writer,s=Aa(o,r),a=o.document.selection;if(e.item instanceof ha||e.item instanceof ya)o.wrap(a.getFirstRange(),s,a);else{const t=i.mapper.toViewRange(e.range),n=o.wrap(t,s);for(const t of n.getItems())if(t.is("attributeElement")&&t.isSimilar(s)){i.mapper.bindElementToMarker(t,e.markerName);break}}}),{priority:t.converterPriority||"normal"}),e.on("addMarker:"+t.model,function(t){return(e,n,i)=>{if(!n.item)return;if(!(n.item instanceof Zs))return;const r=Ea(t,n,i);if(!r)return;if(!i.consumable.test(n.item,e.name))return;const o=i.mapper.toViewElement(n.item);if(o&&o.getCustomProperty("addHighlight")){i.consumable.consume(n.item,e.name);for(const t of ra._createIn(n.item))i.consumable.consume(t.item,e.name);o.getCustomProperty("addHighlight")(o,r,i.writer),i.mapper.bindElementToMarker(o,n.markerName)}}}(t.view),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,function(t){return(e,n,i)=>{if(n.markerRange.isCollapsed)return;const r=Ea(t,n,i);if(!r)return;const o=Aa(i.writer,r),s=i.mapper.markerNameToElements(n.markerName);if(s){for(const t of s)i.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("attributeElement")?i.writer.unwrap(i.writer.createRangeOn(t),o):t.getCustomProperty("removeHighlight")(t,r.id,i.writer);i.writer.clearClonedElementsGroup(n.markerName),e.stop()}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}markerToData(t){return this.add(function(t){const e=(t=Ma(t)).model;return t.view||(t.view=n=>({group:e,name:n.substr(t.model.length+1)})),n=>{var i;n.on("addMarker:"+e,(i=t.view,(t,e,n)=>{const r=i(e.markerName,n);if(!r)return;const o=e.markerRange;n.consumable.consume(o,t.name)&&(Ca(o,!1,n,e,r),Ca(o,!0,n,e,r),t.stop())}),{priority:t.converterPriority||"normal"}),n.on("removeMarker:"+e,function(t){return(e,n,i)=>{const r=t(n.markerName,i);if(!r)return;const o=i.mapper.markerNameToElements(n.markerName);if(o){for(const t of o)i.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("containerElement")?(s(`data-${r.group}-start-before`,t),s(`data-${r.group}-start-after`,t),s(`data-${r.group}-end-before`,t),s(`data-${r.group}-end-after`,t)):i.writer.clear(i.writer.createRangeOn(t),t);i.writer.clearClonedElementsGroup(n.markerName),e.stop()}function s(t,e){if(e.hasAttribute(t)){const n=new Set(e.getAttribute(t).split(","));n.delete(r.name),0==n.size?i.writer.removeAttribute(t,e):i.writer.setAttribute(t,Array.from(n).join(","),e)}}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}}function Aa(t,e){const n=t.createAttributeElement("span",e.attributes);return e.classes&&n._addClass(e.classes),"number"==typeof e.priority&&(n._priority=e.priority),n._id=e.id,n}function Ca(t,e,n,i,r){const o=e?t.start:t.end,s=o.nodeAfter&&o.nodeAfter.is("element")?o.nodeAfter:null,a=o.nodeBefore&&o.nodeBefore.is("element")?o.nodeBefore:null;if(s||a){let t,o;e&&s||!e&&!a?(t=s,o=!0):(t=a,o=!1);const l=n.mapper.toViewElement(t);if(l)return void function(t,e,n,i,r,o){const s=`data-${o.group}-${e?"start":"end"}-${n?"before":"after"}`,a=t.hasAttribute(s)?t.getAttribute(s).split(","):[];a.unshift(o.name),i.writer.setAttribute(s,a.join(","),t),i.mapper.bindElementToMarker(t,r.markerName)}(l,e,o,n,i,r)}!function(t,e,n,i,r){const o=`${r.group}-${e?"start":"end"}`,s=r.name?{name:r.name}:null,a=n.writer.createUIElement(o,s);n.writer.insert(t,a),n.mapper.bindElementToMarker(a,i.markerName)}(n.mapper.toViewPosition(o),e,n,i,r)}function La(t,e){return"function"==typeof t?t:(n,i)=>function(t,e,n){let i;"string"==typeof t&&(t={name:t});const r=e.writer,o=Object.assign({},t.attributes);if("container"==n)i=r.createContainerElement(t.name,o);else if("attribute"==n){const e={priority:t.priority||xr.DEFAULT_PRIORITY};i=r.createAttributeElement(t.name,o,e)}else i=r.createUIElement(t.name,o);if(t.styles){const e=Object.keys(t.styles);for(const n of e)r.setStyle(n,t.styles[n],i)}if(t.classes){const e=t.classes;if("string"==typeof e)r.addClass(e,i);else for(const t of e)r.addClass(t,i)}return i}(t,i,e)}function Ta(t){return t.model.values?(e,n)=>{const i=t.view[e];return i?i(e,n):null}:t.view}function Da(t){return"string"==typeof t?e=>({key:t,value:e}):"object"==typeof t?t.value?()=>t:e=>({key:t.key,value:e}):t}function Ea(t,e,n){const i="function"==typeof t?t(e,n):t;return i?(i.priority||(i.priority=10),i.id||(i.id=e.markerName),i):null}function Pa(t){const{schema:e,document:n}=t.model;for(const i of n.getRootNames()){const r=n.getRoot(i);if(r.isEmpty&&!e.checkChild(r,"$text")&&e.checkChild(r,"paragraph"))return t.insertElement("paragraph",r),!0}return!1}function Oa(t,e,n){const i=n.createContext(t);return!!n.checkChild(i,"paragraph")&&!!n.checkChild(i.push("paragraph"),e)}function Ya(t,e){const n=e.createElement("paragraph");return e.insert(n,t),e.createPositionAt(n,0)}class Ia extends ka{elementToElement(t){return this.add(za(t))}elementToAttribute(t){return this.add(function(t){ja(t=Ma(t));const e=Fa(t,!1),n=Na(t.view),i=n?"element:"+n:"element";return n=>{n.on(i,e,{priority:t.converterPriority||"low"})}}(t))}attributeToAttribute(t){return this.add(function(t){let e=null;("string"==typeof(t=Ma(t)).view||t.view.key)&&(e=function(t){"string"==typeof t.view&&(t.view={key:t.view});const e=t.view.key;let n;return n="class"==e||"style"==e?{["class"==e?"classes":"styles"]:t.view.value}:{attributes:{[e]:void 0===t.view.value?/[\s\S]*/:t.view.value}},t.view.name&&(n.name=t.view.name),t.view=n,e}(t)),ja(t,e);const n=Fa(t,!0);return e=>{e.on("element",n,{priority:t.converterPriority||"low"})}}(t))}elementToMarker(t){return this.add(function(t){return function(t){const e=t.model;t.model=(t,n)=>{const i="string"==typeof e?e:e(t,n);return n.writer.createElement("$marker",{"data-name":i})}}(t=Ma(t)),za(t)}(t))}dataToMarker(t){return this.add(function(t){(t=Ma(t)).model||(t.model=e=>e?t.view+":"+e:t.view);const e=Ra(Ha(t,"start")),n=Ra(Ha(t,"end"));return i=>{i.on("element:"+t.view+"-start",e,{priority:t.converterPriority||"normal"}),i.on("element:"+t.view+"-end",n,{priority:t.converterPriority||"normal"});const r=a.get("low"),o=a.get("highest"),s=a.get(t.converterPriority)/o;i.on("element",function(t){return(e,n,i)=>{const r="data-"+t.view;function o(e,r){for(const o of r){const r=t.model(o,i),s=i.writer.createElement("$marker",{"data-name":r});i.writer.insert(s,e),n.modelCursor.isEqual(e)?n.modelCursor=n.modelCursor.getShiftedBy(1):n.modelCursor=n.modelCursor._getTransformedByInsertion(e,1),n.modelRange=n.modelRange._getTransformedByInsertion(e,1)[0]}}(i.consumable.test(n.viewItem,{attributes:r+"-end-after"})||i.consumable.test(n.viewItem,{attributes:r+"-start-after"})||i.consumable.test(n.viewItem,{attributes:r+"-end-before"})||i.consumable.test(n.viewItem,{attributes:r+"-start-before"}))&&(n.modelRange||Object.assign(n,i.convertChildren(n.viewItem,n.modelCursor)),i.consumable.consume(n.viewItem,{attributes:r+"-end-after"})&&o(n.modelRange.end,n.viewItem.getAttribute(r+"-end-after").split(",")),i.consumable.consume(n.viewItem,{attributes:r+"-start-after"})&&o(n.modelRange.end,n.viewItem.getAttribute(r+"-start-after").split(",")),i.consumable.consume(n.viewItem,{attributes:r+"-end-before"})&&o(n.modelRange.start,n.viewItem.getAttribute(r+"-end-before").split(",")),i.consumable.consume(n.viewItem,{attributes:r+"-start-before"})&&o(n.modelRange.start,n.viewItem.getAttribute(r+"-start-before").split(",")))}}(t),{priority:r+s})}}(t))}}function za(t){const e=Ra(t=Ma(t)),n=Na(t.view),i=n?"element:"+n:"element";return n=>{n.on(i,e,{priority:t.converterPriority||"normal"})}}function Na(t){return"string"==typeof t?t:"object"==typeof t&&"string"==typeof t.name?t.name:null}function Ra(t){const e=new pi(t.view);return(n,i,r)=>{const o=e.match(i.viewItem);if(!o)return;const s=o.match;if(s.name=!0,!r.consumable.test(i.viewItem,s))return;const a=function(t,e,n){return t instanceof Function?t(e,n):n.writer.createElement(t)}(t.model,i.viewItem,r);a&&r.safeInsert(a,i.modelCursor)&&(r.consumable.consume(i.viewItem,s),r.convertChildren(i.viewItem,a),r.updateConversionResult(a,i))}}function ja(t,e=null){const n=null===e||(t=>t.getAttribute(e)),i="object"!=typeof t.model?t.model:t.model.key,r="object"!=typeof t.model||void 0===t.model.value?n:t.model.value;t.model={key:i,value:r}}function Fa(t,e){const n=new pi(t.view);return(i,r,o)=>{const s=n.match(r.viewItem);if(!s)return;if(function(t,e){const n="function"==typeof t?t(e):t;return!("object"==typeof n&&!Na(n)||n.classes||n.attributes||n.styles)}(t.view,r.viewItem)?s.match.name=!0:delete s.match.name,!o.consumable.test(r.viewItem,s.match))return;const a=t.model.key,l="function"==typeof t.model.value?t.model.value(r.viewItem,o):t.model.value;null!==l&&(r.modelRange||Object.assign(r,o.convertChildren(r.viewItem,r.modelCursor)),function(t,e,n,i){let r=!1;for(const o of Array.from(t.getItems({shallow:n})))i.schema.checkAttribute(o,e.key)&&(r=!0,o.hasAttribute(e.key)||i.writer.setAttribute(e.key,e.value,o));return r}(r.modelRange,{key:a,value:l},e,o)&&o.consumable.consume(r.viewItem,s.match))}}function Ha(t,e){const n={};return n.view=t.view+"-"+e,n.model=(e,n)=>{const i=e.getAttribute("name"),r=t.model(i,n);return n.writer.createElement("$marker",{"data-name":r})},n}class Ba{constructor(t,e){this.model=t,this.view=new Xs(e),this.mapper=new oa,this.downcastDispatcher=new la({mapper:this.mapper,schema:t.schema});const n=this.model.document,i=n.selection,r=this.model.markers;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(n,"change",(()=>{this.view.change((t=>{this.downcastDispatcher.convertChanges(n.differ,r,t),this.downcastDispatcher.convertSelection(i,r,t)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(t,e){return(n,i)=>{const r=i.newSelection,o=[];for(const t of r.getRanges())o.push(e.toModelRange(t));const s=t.createSelection(o,{backward:r.isBackward});s.isEqual(t.document.selection)||t.change((t=>{t.setSelection(s)}))}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,"insert"))return;const i=n.writer,r=n.mapper.toViewPosition(e.range.start),o=i.createText(e.item.data);i.insert(r,o)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((t,e,n)=>{const i=n.mapper.toViewPosition(e.position),r=e.position.getShiftedBy(e.length),o=n.mapper.toViewPosition(r,{isPhantom:!0}),s=n.writer.createRange(i,o),a=n.writer.remove(s.getTrimmed());for(const t of n.writer.createRangeIn(a).getItems())n.mapper.unbindViewElement(t)}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const i=n.writer,r=i.document.selection;for(const t of r.getRanges())t.isCollapsed&&t.end.parent.isAttached()&&n.writer.mergeAttributes(t.start);i.setSelection(null)}),{priority:"high"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const i=e.selection;if(i.isCollapsed)return;if(!n.consumable.consume(i,"selection"))return;const r=[];for(const t of i.getRanges()){const e=n.mapper.toViewRange(t);r.push(e)}n.writer.setSelection(r,{backward:i.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const i=e.selection;if(!i.isCollapsed)return;if(!n.consumable.consume(i,"selection"))return;const r=n.writer,o=i.getFirstPosition(),s=n.mapper.toViewPosition(o),a=r.breakAttributes(s);r.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((t=>{if("$graveyard"==t.rootName)return null;const e=new sr(this.view.document,t.name);return e.rootName=t.rootName,this.mapper.bindElements(t,e),e}))}destroy(){this.view.destroy(),this.stopListening()}}Gt(Ba,Vt);class Va{constructor(){this._commands=new Map}add(t,e){this._commands.set(t,e)}get(t){return this._commands.get(t)}execute(t,...e){const n=this.get(t);if(!n)throw new l.a("commandcollection-command-not-found",this,{commandName:t});return n.execute(...e)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const t of this.commands())t.destroy()}}class Wa{constructor(){this._consumables=new Map}add(t,e){let n;t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):(this._consumables.has(t)?n=this._consumables.get(t):(n=new Ua(t),this._consumables.set(t,n)),n.add(e))}test(t,e){const n=this._consumables.get(t);return void 0===n?null:t.is("$text")||t.is("documentFragment")?n:n.test(e)}consume(t,e){return!!this.test(t,e)&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!1):this._consumables.get(t).consume(e),!0)}revert(t,e){const n=this._consumables.get(t);void 0!==n&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):n.revert(e))}static consumablesFromElement(t){const e={element:t,name:!0,attributes:[],classes:[],styles:[]},n=t.getAttributeKeys();for(const t of n)"style"!=t&&"class"!=t&&e.attributes.push(t);const i=t.getClassNames();for(const t of i)e.classes.push(t);const r=t.getStyleNames();for(const t of r)e.styles.push(t);return e}static createFrom(t,e){if(e||(e=new Wa(t)),t.is("$text"))return e.add(t),e;t.is("element")&&e.add(t,Wa.consumablesFromElement(t)),t.is("documentFragment")&&e.add(t);for(const n of t.getChildren())e=Wa.createFrom(n,e);return e}}class Ua{constructor(t){this.element=t,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._add(e,t[e])}test(t){if(t.name&&!this._canConsumeName)return this._canConsumeName;for(const e in this._consumables)if(e in t){const n=this._test(e,t[e]);if(!0!==n)return n}return!0}consume(t){t.name&&(this._canConsumeName=!1);for(const e in this._consumables)e in t&&this._consume(e,t[e])}revert(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._revert(e,t[e])}_add(t,e){const n=yt(e)?e:[e],i=this._consumables[t];for(const e of n){if("attributes"===t&&("class"===e||"style"===e))throw new l.a("viewconsumable-invalid-attribute",this);if(i.set(e,!0),"styles"===t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))i.set(t,!0)}}_test(t,e){const n=yt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){const t=i.get(e);if(void 0===t)return null;if(!t)return!1}else{const t="class"==e?"classes":"styles",n=this._test(t,[...this._consumables[t].keys()]);if(!0!==n)return n}return!0}_consume(t,e){const n=yt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){if(i.set(e,!1),"styles"==t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))i.set(t,!1)}else{const t="class"==e?"classes":"styles";this._consume(t,[...this._consumables[t].keys()])}}_revert(t,e){const n=yt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e)!1===i.get(e)&&i.set(e,!0);else{const t="class"==e?"classes":"styles";this._revert(t,[...this._consumables[t].keys()])}}}class Xa{constructor(){this._sourceDefinitions={},this._attributeProperties={},this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((t,e)=>{e[0]=new $a(e[0])}),{priority:"highest"}),this.on("checkChild",((t,e)=>{e[0]=new $a(e[0]),e[1]=this.getDefinition(e[1])}),{priority:"highest"})}register(t,e){if(this._sourceDefinitions[t])throw new l.a("schema-cannot-register-item-twice",this,{itemName:t});this._sourceDefinitions[t]=[Object.assign({},e)],this._clearCache()}extend(t,e){if(!this._sourceDefinitions[t])throw new l.a("schema-cannot-extend-missing-item",this,{itemName:t});this._sourceDefinitions[t].push(Object.assign({},e)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(t){let e;return e="string"==typeof t?t:t.is&&(t.is("$text")||t.is("$textProxy"))?"$text":t.name,this.getDefinitions()[e]}isRegistered(t){return!!this.getDefinition(t)}isBlock(t){const e=this.getDefinition(t);return!(!e||!e.isBlock)}isLimit(t){const e=this.getDefinition(t);return!(!e||!e.isLimit&&!e.isObject)}isObject(t){const e=this.getDefinition(t);return!!e&&!!(e.isObject||e.isLimit&&e.isSelectable&&e.isContent)}isInline(t){const e=this.getDefinition(t);return!(!e||!e.isInline)}isSelectable(t){const e=this.getDefinition(t);return!(!e||!e.isSelectable&&!e.isObject)}isContent(t){const e=this.getDefinition(t);return!(!e||!e.isContent&&!e.isObject)}checkChild(t,e){return!!e&&this._checkContextMatch(e,t)}checkAttribute(t,e){const n=this.getDefinition(t.last);return!!n&&n.allowAttributes.includes(e)}checkMerge(t,e=null){if(t instanceof ta){const e=t.nodeBefore,n=t.nodeAfter;if(!(e instanceof Zs))throw new l.a("schema-check-merge-no-element-before",this);if(!(n instanceof Zs))throw new l.a("schema-check-merge-no-element-after",this);return this.checkMerge(e,n)}for(const n of e.getChildren())if(!this.checkChild(t,n))return!1;return!0}addChildCheck(t){this.on("checkChild",((e,[n,i])=>{if(!i)return;const r=t(n,i);"boolean"==typeof r&&(e.stop(),e.return=r)}),{priority:"high"})}addAttributeCheck(t){this.on("checkAttribute",((e,[n,i])=>{const r=t(n,i);"boolean"==typeof r&&(e.stop(),e.return=r)}),{priority:"high"})}setAttributeProperties(t,e){this._attributeProperties[t]=Object.assign(this.getAttributeProperties(t),e)}getAttributeProperties(t){return this._attributeProperties[t]||{}}getLimitElement(t){let e;for(e=t instanceof ta?t.parent:(t instanceof ra?[t]:Array.from(t.getRanges())).reduce(((t,e)=>{const n=e.getCommonAncestor();return t?t.getCommonAncestor(n,{includeSelf:!0}):n}),null);!this.isLimit(e)&&e.parent;)e=e.parent;return e}checkAttributeInSelection(t,e){if(t.isCollapsed){const n=[...t.getFirstPosition().getAncestors(),new qs("",t.getAttributes())];return this.checkAttribute(n,e)}{const n=t.getRanges();for(const t of n)for(const n of t)if(this.checkAttribute(n.item,e))return!0}return!1}*getValidRanges(t,e){t=function*(t){for(const e of t)yield*e.getMinimalFlatRanges()}(t);for(const n of t)yield*this._getValidRangesForRange(n,e)}getNearestSelectionRange(t,e="both"){if(this.checkChild(t,"$text"))return new ra(t);let n,i;const r=t.getAncestors().reverse().find((t=>this.isLimit(t)))||t.root;"both"!=e&&"backward"!=e||(n=new Ks({boundaries:ra._createIn(r),startPosition:t,direction:"backward"})),"both"!=e&&"forward"!=e||(i=new Ks({boundaries:ra._createIn(r),startPosition:t}));for(const t of function*(t,e){let n=!1;for(;!n;){if(n=!0,t){const e=t.next();e.done||(n=!1,yield{walker:t,value:e.value})}if(e){const t=e.next();t.done||(n=!1,yield{walker:e,value:t.value})}}}(n,i)){const e=t.walker==n?"elementEnd":"elementStart",i=t.value;if(i.type==e&&this.isObject(i.item))return ra._createOn(i.item);if(this.checkChild(i.nextPosition,"$text"))return new ra(i.nextPosition)}return null}findAllowedParent(t,e){let n=t.parent;for(;n;){if(this.checkChild(n,e))return n;if(this.isLimit(n))return null;n=n.parent}return null}removeDisallowedAttributes(t,e){for(const n of t)if(n.is("$text"))sl(this,n,e);else{const t=ra._createIn(n).getPositions();for(const n of t)sl(this,n.nodeBefore||n.parent,e)}}createContext(t){return new $a(t)}_clearCache(){this._compiledDefinitions=null}_compile(){const t={},e=this._sourceDefinitions,n=Object.keys(e);for(const i of n)t[i]=qa(e[i],i);for(const e of n)Ga(t,e);for(const e of n)Ja(t,e);for(const e of n)Za(t,e);for(const e of n)Ka(t,e),Qa(t,e);for(const e of n)tl(t,e),el(t,e),nl(t,e);this._compiledDefinitions=t}_checkContextMatch(t,e,n=e.length-1){const i=e.getItem(n);if(t.allowIn.includes(i.name)){if(0==n)return!0;{const t=this.getDefinition(i);return this._checkContextMatch(t,e,n-1)}}return!1}*_getValidRangesForRange(t,e){let n=t.start,i=t.start;for(const r of t.getItems({shallow:!0}))r.is("element")&&(yield*this._getValidRangesForRange(ra._createIn(r),e)),this.checkAttribute(r,e)||(n.isEqual(i)||(yield new ra(n,i)),n=ta._createAfter(r)),i=ta._createAfter(r);n.isEqual(i)||(yield new ra(n,i))}}Gt(Xa,Vt);class $a{constructor(t){if(t instanceof $a)return t;"string"==typeof t?t=[t]:Array.isArray(t)||(t=t.getAncestors({includeSelf:!0})),this._items=t.map(ol)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(t){const e=new $a([t]);return e._items=[...this._items,...e._items],e}getItem(t){return this._items[t]}*getNames(){yield*this._items.map((t=>t.name))}endsWith(t){return Array.from(this.getNames()).join(" ").endsWith(t)}startsWith(t){return Array.from(this.getNames()).join(" ").startsWith(t)}}function qa(t,e){const n={name:e,allowIn:[],allowContentOf:[],allowWhere:[],allowAttributes:[],allowAttributesOf:[],allowChildren:[],inheritTypesFrom:[]};return function(t,e){for(const n of t){const t=Object.keys(n).filter((t=>t.startsWith("is")));for(const i of t)e[i]=n[i]}}(t,n),il(t,n,"allowIn"),il(t,n,"allowContentOf"),il(t,n,"allowWhere"),il(t,n,"allowAttributes"),il(t,n,"allowAttributesOf"),il(t,n,"allowChildren"),il(t,n,"inheritTypesFrom"),function(t,e){for(const n of t){const t=n.inheritAllFrom;t&&(e.allowContentOf.push(t),e.allowWhere.push(t),e.allowAttributesOf.push(t),e.inheritTypesFrom.push(t))}}(t,n),n}function Ga(t,e){const n=t[e];for(const i of n.allowChildren){const n=t[i];n&&n.allowIn.push(e)}n.allowChildren.length=0}function Ja(t,e){for(const n of t[e].allowContentOf)t[n]&&rl(t,n).forEach((t=>{t.allowIn.push(e)}));delete t[e].allowContentOf}function Za(t,e){for(const n of t[e].allowWhere){const i=t[n];if(i){const n=i.allowIn;t[e].allowIn.push(...n)}}delete t[e].allowWhere}function Ka(t,e){for(const n of t[e].allowAttributesOf){const i=t[n];if(i){const n=i.allowAttributes;t[e].allowAttributes.push(...n)}}delete t[e].allowAttributesOf}function Qa(t,e){const n=t[e];for(const e of n.inheritTypesFrom){const i=t[e];if(i){const t=Object.keys(i).filter((t=>t.startsWith("is")));for(const e of t)e in n||(n[e]=i[e])}}delete n.inheritTypesFrom}function tl(t,e){const n=t[e],i=n.allowIn.filter((e=>t[e]));n.allowIn=Array.from(new Set(i))}function el(t,e){const n=t[e];for(const i of n.allowIn)t[i].allowChildren.push(e)}function nl(t,e){const n=t[e];n.allowAttributes=Array.from(new Set(n.allowAttributes))}function il(t,e,n){for(const i of t)"string"==typeof i[n]?e[n].push(i[n]):Array.isArray(i[n])&&e[n].push(...i[n])}function rl(t,e){const n=t[e];return(i=t,Object.keys(i).map((t=>i[t]))).filter((t=>t.allowIn.includes(n.name)));var i}function ol(t){return"string"==typeof t||t.is("documentFragment")?{name:"string"==typeof t?t:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:t.is("element")?t.name:"$text",*getAttributeKeys(){yield*t.getAttributeKeys()},getAttribute:e=>t.getAttribute(e)}}function sl(t,e,n){for(const i of e.getAttributeKeys())t.checkAttribute(e,i)||n.removeAttribute(i,e)}class al{constructor(t={}){this._splitParts=new Map,this._cursorParents=new Map,this._modelCursor=null,this.conversionApi=Object.assign({},t),this.conversionApi.convertItem=this._convertItem.bind(this),this.conversionApi.convertChildren=this._convertChildren.bind(this),this.conversionApi.safeInsert=this._safeInsert.bind(this),this.conversionApi.updateConversionResult=this._updateConversionResult.bind(this),this.conversionApi.splitToAllowedParent=this._splitToAllowedParent.bind(this),this.conversionApi.getSplitParts=this._getSplitParts.bind(this)}convert(t,e,n=["$root"]){this.fire("viewCleanup",t),this._modelCursor=function(t,e){let n;for(const i of new $a(t)){const t={};for(const e of i.getAttributeKeys())t[e]=i.getAttribute(e);const r=e.createElement(i.name,t);n&&e.append(r,n),n=ta._createAt(r,0)}return n}(n,e),this.conversionApi.writer=e,this.conversionApi.consumable=Wa.createFrom(t),this.conversionApi.store={};const{modelRange:i}=this._convertItem(t,this._modelCursor),r=e.createDocumentFragment();if(i){this._removeEmptyElements();for(const t of Array.from(this._modelCursor.parent.getChildren()))e.append(t,r);r.markers=function(t,e){const n=new Set,i=new Map,r=ra._createIn(t).getItems();for(const t of r)"$marker"==t.name&&n.add(t);for(const t of n){const n=t.getAttribute("data-name"),r=e.createPositionBefore(t);i.has(n)?i.get(n).end=r.clone():i.set(n,new ra(r.clone())),e.remove(t)}return i}(r,e)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,r}_convertItem(t,e){const n=Object.assign({viewItem:t,modelCursor:e,modelRange:null});if(t.is("element")?this.fire("element:"+t.name,n,this.conversionApi):t.is("$text")?this.fire("text",n,this.conversionApi):this.fire("documentFragment",n,this.conversionApi),n.modelRange&&!(n.modelRange instanceof ra))throw new l.a("view-conversion-dispatcher-incorrect-result",this);return{modelRange:n.modelRange,modelCursor:n.modelCursor}}_convertChildren(t,e){let n=e.is("position")?e:ta._createAt(e,0);const i=new ra(n);for(const e of Array.from(t.getChildren())){const t=this._convertItem(e,n);t.modelRange instanceof ra&&(i.end=t.modelRange.end,n=t.modelCursor)}return{modelRange:i,modelCursor:n}}_safeInsert(t,e){const n=this._splitToAllowedParent(t,e);return!!n&&(this.conversionApi.writer.insert(t,n.position),!0)}_updateConversionResult(t,e){const n=this._getSplitParts(t),i=this.conversionApi.writer;e.modelRange||(e.modelRange=i.createRange(i.createPositionBefore(t),i.createPositionAfter(n[n.length-1])));const r=this._cursorParents.get(t);e.modelCursor=r?i.createPositionAt(r,0):e.modelRange.end}_splitToAllowedParent(t,e){const{schema:n,writer:i}=this.conversionApi;let r=n.findAllowedParent(e,t);if(r){if(r===e.parent)return{position:e};this._modelCursor.parent.getAncestors().includes(r)&&(r=null)}if(!r)return Oa(e,t,n)?{position:Ya(e,i)}:null;const o=this.conversionApi.writer.split(e,r),s=[];for(const t of o.range.getWalker())if("elementEnd"==t.type)s.push(t.item);else{const e=s.pop(),n=t.item;this._registerSplitPair(e,n)}const a=o.range.end.parent;return this._cursorParents.set(t,a),{position:o.position,cursorParent:a}}_registerSplitPair(t,e){this._splitParts.has(t)||this._splitParts.set(t,[t]);const n=this._splitParts.get(t);this._splitParts.set(e,n),n.push(e)}_getSplitParts(t){let e;return e=this._splitParts.has(t)?this._splitParts.get(t):[t],e}_removeEmptyElements(){let t=!1;for(const e of this._splitParts.keys())e.isEmpty&&(this.conversionApi.writer.remove(e),this._splitParts.delete(e),t=!0);t&&this._removeEmptyElements()}}Gt(al,d);class ll{getHtml(t){const e=document.implementation.createHTMLDocument("").createElement("div");return e.appendChild(t),e.innerHTML}}class cl{constructor(t){this._domParser=new DOMParser,this._domConverter=new Co(t,{blockFillerMode:"nbsp"}),this._htmlWriter=new ll}toData(t){const e=this._domConverter.viewToDom(t,document);return this._htmlWriter.getHtml(e)}toView(t){const e=this._toDom(t);return this._domConverter.domToView(e)}registerRawContentMatcher(t){this._domConverter.registerRawContentMatcher(t)}useFillerType(t){this._domConverter.blockFillerMode="marked"==t?"markedNbsp":"nbsp"}_toDom(t){const e=this._domParser.parseFromString(t,"text/html"),n=e.createDocumentFragment();let i=e.firstChild;for(;!i.isSameNode(e.documentElement);){const t=i;i=i.nextSibling,t.nodeType==Node.COMMENT_NODE&&n.appendChild(t)}const r=e.body.childNodes;for(;r.length>0;)n.appendChild(r[0]);return n}}class ul{constructor(t,e){this.model=t,this.mapper=new oa,this.downcastDispatcher=new la({mapper:this.mapper,schema:t.schema}),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,"insert"))return;const i=n.writer,r=n.mapper.toViewPosition(e.range.start),o=i.createText(e.item.data);i.insert(r,o)}),{priority:"lowest"}),this.upcastDispatcher=new al({schema:t.schema}),this.viewDocument=new wr(e),this.stylesProcessor=e,this.htmlProcessor=new cl(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new Wr(this.viewDocument),this.upcastDispatcher.on("text",((t,e,{schema:n,consumable:i,writer:r})=>{let o=e.modelCursor;if(!i.test(e.viewItem))return;if(!n.checkChild(o,"$text")){if(!Oa(o,"$text",n))return;o=Ya(o,r)}i.consume(e.viewItem);const s=r.createText(e.viewItem.data);r.insert(s,o),e.modelRange=r.createRange(o,o.getShiftedBy(s.offsetSize)),e.modelCursor=e.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=i}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=i}}),{priority:"lowest"}),this.decorate("init"),this.decorate("set"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange("transparent",Pa)}),{priority:"lowest"})}get(t={}){const{rootName:e="main",trim:n="empty"}=t;if(!this._checkIfRootsExists([e]))throw new l.a("datacontroller-get-non-existent-root",this);const i=this.model.document.getRoot(e);return"empty"!==n||this.model.hasContent(i,{ignoreWhitespaces:!0})?this.stringify(i,t):""}stringify(t,e={}){const n=this.toView(t,e);return this.processor.toData(n)}toView(t,e={}){const n=this.viewDocument,i=this._viewWriter;this.mapper.clearBindings();const r=ra._createIn(t),o=new Vr(n);this.mapper.bindElements(t,o),this.downcastDispatcher.conversionApi.options=e,this.downcastDispatcher.convertInsert(r,i);const s=t.is("documentFragment")?Array.from(t.markers):function(t){const e=[],n=t.root.document;if(!n)return[];const i=ra._createIn(t);for(const t of n.model.markers){const n=t.getRange(),r=n.isCollapsed,o=n.start.isEqual(i.start)||n.end.isEqual(i.end);if(r&&o)e.push([t.name,n]);else{const r=i.getIntersection(n);r&&e.push([t.name,r])}}return e}(t);for(const[t,e]of s)this.downcastDispatcher.convertMarkerAdd(t,e,i);return delete this.downcastDispatcher.conversionApi.options,o}init(t){if(this.model.document.version)throw new l.a("datacontroller-init-document-not-empty",this);let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new l.a("datacontroller-init-non-existent-root",this);return this.model.enqueueChange("transparent",(t=>{for(const n of Object.keys(e)){const i=this.model.document.getRoot(n);t.insert(this.parse(e[n],i),i,0)}})),Promise.resolve()}set(t,e={}){let n={};if("string"==typeof t?n.main=t:n=t,!this._checkIfRootsExists(Object.keys(n)))throw new l.a("datacontroller-set-non-existent-root",this);const i=e.batchType||"default";this.model.enqueueChange(i,(t=>{t.setSelection(null),t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const e of Object.keys(n)){const i=this.model.document.getRoot(e);t.remove(t.createRangeIn(i)),t.insert(this.parse(n[e],i),i,0)}}))}parse(t,e="$root"){const n=this.processor.toView(t);return this.toModel(n,e)}toModel(t,e="$root"){return this.model.change((n=>this.upcastDispatcher.convert(t,n,e)))}addStyleProcessorRules(t){t(this.stylesProcessor)}registerRawContentMatcher(t){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(t),this.htmlProcessor.registerRawContentMatcher(t)}destroy(){this.stopListening()}_checkIfRootsExists(t){for(const e of t)if(!this.model.document.getRootNames().includes(e))return!1;return!0}}Gt(ul,Vt);class dl{constructor(t,e){this._helpers=new Map,this._downcast=ei(t),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=ei(e),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(t,e){const n=this._downcast.includes(e);if(!this._upcast.includes(e)&&!n)throw new l.a("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:t,dispatchers:[e],isDowncast:n})}for(t){if(!this._helpers.has(t))throw new l.a("conversion-for-unknown-group",this);return this._helpers.get(t)}elementToElement(t){this.for("downcast").elementToElement(t);for(const{model:e,view:n}of hl(t))this.for("upcast").elementToElement({model:e,view:n,converterPriority:t.converterPriority})}attributeToElement(t){this.for("downcast").attributeToElement(t);for(const{model:e,view:n}of hl(t))this.for("upcast").elementToAttribute({view:n,model:e,converterPriority:t.converterPriority})}attributeToAttribute(t){this.for("downcast").attributeToAttribute(t);for(const{model:e,view:n}of hl(t))this.for("upcast").attributeToAttribute({view:n,model:e})}_createConversionHelpers({name:t,dispatchers:e,isDowncast:n}){if(this._helpers.has(t))throw new l.a("conversion-group-exists",this);const i=n?new Sa(e):new Ia(e);this._helpers.set(t,i)}}function*hl(t){if(t.model.values)for(const e of t.model.values){const n={key:t.model.key,value:e},i=t.view[e],r=t.upcastAlso?t.upcastAlso[e]:void 0;yield*fl(n,i,r)}else yield*fl(t.model,t.view,t.upcastAlso)}function*fl(t,e,n){if(yield{model:t,view:e},n)for(const e of ei(n))yield{model:t,view:e}}class pl{constructor(t="default"){this.operations=[],this.type=t}get baseVersion(){for(const t of this.operations)if(null!==t.baseVersion)return t.baseVersion;return null}addOperation(t){return t.batch=this,this.operations.push(t),t}}class ml{constructor(t){this.baseVersion=t,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const t=Object.assign({},this);return t.__className=this.constructor.className,delete t.batch,delete t.isDocumentOperation,t}static get className(){return"Operation"}static fromJSON(t){return new this(t.baseVersion)}}class gl{constructor(t){this.markers=new Map,this._children=new Js,t&&this._insertChild(0,t)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"model:documentFragment"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}getPath(){return[]}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}offsetToIndex(t){return this._children.offsetToIndex(t)}toJSON(){const t=[];for(const e of this._children)t.push(e.toJSON());return t}static fromJSON(t){const e=[];for(const n of t)n.name?e.push(Zs.fromJSON(n)):e.push(qs.fromJSON(n));return new gl(e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){return"string"==typeof t?[new qs(t)]:(Kn(t)||(t=[t]),Array.from(t).map((t=>"string"==typeof t?new qs(t):t instanceof Gs?new qs(t.data,t.getAttributes()):t)))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}}function bl(t,e){const n=(e=yl(e)).reduce(((t,e)=>t+e.offsetSize),0),i=t.parent;xl(t);const r=t.index;return i._insertChild(r,e),wl(i,r+e.length),wl(i,r),new ra(t,t.getShiftedBy(n))}function vl(t){if(!t.isFlat)throw new l.a("operation-utils-remove-range-not-flat",this);const e=t.start.parent;xl(t.start),xl(t.end);const n=e._removeChildren(t.start.index,t.end.index-t.start.index);return wl(e,t.start.index),n}function _l(t,e){if(!t.isFlat)throw new l.a("operation-utils-move-range-not-flat",this);const n=vl(t);return bl(e=e._getTransformedByDeletion(t.start,t.end.offset-t.start.offset),n)}function yl(t){const e=[];t instanceof Array||(t=[t]);for(let n=0;nt.maxOffset)throw new l.a("move-operation-nodes-do-not-exist",this);if(t===e&&n=n&&this.targetPosition.path[t]t._clone(!0)))),e=new Ll(this.position,t,this.baseVersion);return e.shouldReceiveAttributes=this.shouldReceiveAttributes,e}getReversed(){const t=this.position.root.document.graveyard,e=new ta(t,[0]);return new Cl(this.position,this.nodes.maxOffset,e,this.baseVersion+1)}_validate(){const t=this.position.parent;if(!t||t.maxOffsett._clone(!0)))),bl(this.position,t)}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t.nodes=this.nodes.toJSON(),t}static get className(){return"InsertOperation"}static fromJSON(t,e){const n=[];for(const e of t.nodes)e.name?n.push(Zs.fromJSON(e)):n.push(qs.fromJSON(e));const i=new Ll(ta.fromJSON(t.position,e),n,t.baseVersion);return i.shouldReceiveAttributes=t.shouldReceiveAttributes,i}}class Tl extends ml{constructor(t,e,n,i,r,o){super(o),this.name=t,this.oldRange=e?e.clone():null,this.newRange=n?n.clone():null,this.affectsData=r,this._markers=i}get type(){return"marker"}clone(){return new Tl(this.name,this.oldRange,this.newRange,this._markers,this.affectsData,this.baseVersion)}getReversed(){return new Tl(this.name,this.newRange,this.oldRange,this._markers,this.affectsData,this.baseVersion+1)}_execute(){const t=this.newRange?"_set":"_remove";this._markers[t](this.name,this.newRange,!0,this.affectsData)}toJSON(){const t=super.toJSON();return this.oldRange&&(t.oldRange=this.oldRange.toJSON()),this.newRange&&(t.newRange=this.newRange.toJSON()),delete t._markers,t}static get className(){return"MarkerOperation"}static fromJSON(t,e){return new Tl(t.name,t.oldRange?ra.fromJSON(t.oldRange,e):null,t.newRange?ra.fromJSON(t.newRange,e):null,e.model.markers,t.affectsData,t.baseVersion)}}class Dl extends ml{constructor(t,e,n,i){super(i),this.position=t,this.position.stickiness="toNext",this.oldName=e,this.newName=n}get type(){return"rename"}clone(){return new Dl(this.position.clone(),this.oldName,this.newName,this.baseVersion)}getReversed(){return new Dl(this.position.clone(),this.newName,this.oldName,this.baseVersion+1)}_validate(){const t=this.position.nodeAfter;if(!(t instanceof Zs))throw new l.a("rename-operation-wrong-position",this);if(t.name!==this.oldName)throw new l.a("rename-operation-wrong-name",this)}_execute(){this.position.nodeAfter.name=this.newName}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t}static get className(){return"RenameOperation"}static fromJSON(t,e){return new Dl(ta.fromJSON(t.position,e),t.oldName,t.newName,t.baseVersion)}}class El extends ml{constructor(t,e,n,i,r){super(r),this.root=t,this.key=e,this.oldValue=n,this.newValue=i}get type(){return null===this.oldValue?"addRootAttribute":null===this.newValue?"removeRootAttribute":"changeRootAttribute"}clone(){return new El(this.root,this.key,this.oldValue,this.newValue,this.baseVersion)}getReversed(){return new El(this.root,this.key,this.newValue,this.oldValue,this.baseVersion+1)}_validate(){if(this.root!=this.root.root||this.root.is("documentFragment"))throw new l.a("rootattribute-operation-not-a-root",this,{root:this.root,key:this.key});if(null!==this.oldValue&&this.root.getAttribute(this.key)!==this.oldValue)throw new l.a("rootattribute-operation-wrong-old-value",this,{root:this.root,key:this.key});if(null===this.oldValue&&null!==this.newValue&&this.root.hasAttribute(this.key))throw new l.a("rootattribute-operation-attribute-exists",this,{root:this.root,key:this.key})}_execute(){null!==this.newValue?this.root._setAttribute(this.key,this.newValue):this.root._removeAttribute(this.key)}toJSON(){const t=super.toJSON();return t.root=this.root.toJSON(),t}static get className(){return"RootAttributeOperation"}static fromJSON(t,e){if(!e.getRoot(t.root))throw new l.a("rootattribute-operation-fromjson-no-root",this,{rootName:t.root});return new El(e.getRoot(t.root),t.key,t.oldValue,t.newValue,t.baseVersion)}}class Pl extends ml{constructor(t,e,n,i,r){super(r),this.sourcePosition=t.clone(),this.sourcePosition.stickiness="toPrevious",this.howMany=e,this.targetPosition=n.clone(),this.targetPosition.stickiness="toNext",this.graveyardPosition=i.clone()}get type(){return"merge"}get deletionPosition(){return new ta(this.sourcePosition.root,this.sourcePosition.path.slice(0,-1))}get movedRange(){const t=this.sourcePosition.getShiftedBy(Number.POSITIVE_INFINITY);return new ra(this.sourcePosition,t)}clone(){return new this.constructor(this.sourcePosition,this.howMany,this.targetPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.targetPosition._getTransformedByMergeOperation(this),e=this.sourcePosition.path.slice(0,-1),n=new ta(this.sourcePosition.root,e)._getTransformedByMergeOperation(this);return new Ol(t,this.howMany,n,this.graveyardPosition,this.baseVersion+1)}_validate(){const t=this.sourcePosition.parent,e=this.targetPosition.parent;if(!t.parent)throw new l.a("merge-operation-source-position-invalid",this);if(!e.parent)throw new l.a("merge-operation-target-position-invalid",this);if(this.howMany!=t.maxOffset)throw new l.a("merge-operation-how-many-invalid",this)}_execute(){const t=this.sourcePosition.parent;_l(ra._createIn(t),this.targetPosition),_l(ra._createOn(t),this.graveyardPosition)}toJSON(){const t=super.toJSON();return t.sourcePosition=t.sourcePosition.toJSON(),t.targetPosition=t.targetPosition.toJSON(),t.graveyardPosition=t.graveyardPosition.toJSON(),t}static get className(){return"MergeOperation"}static fromJSON(t,e){const n=ta.fromJSON(t.sourcePosition,e),i=ta.fromJSON(t.targetPosition,e),r=ta.fromJSON(t.graveyardPosition,e);return new this(n,t.howMany,i,r,t.baseVersion)}}class Ol extends ml{constructor(t,e,n,i,r){super(r),this.splitPosition=t.clone(),this.splitPosition.stickiness="toNext",this.howMany=e,this.insertionPosition=n,this.graveyardPosition=i?i.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const t=this.insertionPosition.path.slice();return t.push(0),new ta(this.insertionPosition.root,t)}get movedRange(){const t=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new ra(this.splitPosition,t)}clone(){return new this.constructor(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.splitPosition.root.document.graveyard,e=new ta(t,[0]);return new Pl(this.moveTargetPosition,this.howMany,this.splitPosition,e,this.baseVersion+1)}_validate(){const t=this.splitPosition.parent,e=this.splitPosition.offset;if(!t||t.maxOffset{for(const e of t.getAttributeKeys())this.removeAttribute(e,t)};if(t instanceof ra)for(const n of t.getItems())e(n);else e(t)}move(t,e,n){if(this._assertWriterUsedCorrectly(),!(t instanceof ra))throw new l.a("writer-move-invalid-range",this);if(!t.isFlat)throw new l.a("writer-move-range-not-flat",this);const i=ta._createAt(e,n);if(i.isEqual(t.start))return;if(this._addOperationForAffectedMarkers("move",t),!Fl(t.root,i.root))throw new l.a("writer-move-different-document",this);const r=t.root.document?t.root.document.version:null,o=new Cl(t.start,t.end.offset-t.start.offset,i,r);this.batch.addOperation(o),this.model.applyOperation(o)}remove(t){this._assertWriterUsedCorrectly();const e=(t instanceof ra?t:ra._createOn(t)).getMinimalFlatRanges().reverse();for(const t of e)this._addOperationForAffectedMarkers("move",t),jl(t.start,t.end.offset-t.start.offset,this.batch,this.model)}merge(t){this._assertWriterUsedCorrectly();const e=t.nodeBefore,n=t.nodeAfter;if(this._addOperationForAffectedMarkers("merge",t),!(e instanceof Zs))throw new l.a("writer-merge-no-element-before",this);if(!(n instanceof Zs))throw new l.a("writer-merge-no-element-after",this);t.root.document?this._merge(t):this._mergeDetached(t)}createPositionFromPath(t,e,n){return this.model.createPositionFromPath(t,e,n)}createPositionAt(t,e){return this.model.createPositionAt(t,e)}createPositionAfter(t){return this.model.createPositionAfter(t)}createPositionBefore(t){return this.model.createPositionBefore(t)}createRange(t,e){return this.model.createRange(t,e)}createRangeIn(t){return this.model.createRangeIn(t)}createRangeOn(t){return this.model.createRangeOn(t)}createSelection(t,e,n){return this.model.createSelection(t,e,n)}_mergeDetached(t){const e=t.nodeBefore,n=t.nodeAfter;this.move(ra._createIn(n),ta._createAt(e,"end")),this.remove(n)}_merge(t){const e=ta._createAt(t.nodeBefore,"end"),n=ta._createAt(t.nodeAfter,0),i=t.root.document.graveyard,r=new ta(i,[0]),o=t.root.document.version,s=new Pl(n,t.nodeAfter.maxOffset,e,r,o);this.batch.addOperation(s),this.model.applyOperation(s)}rename(t,e){if(this._assertWriterUsedCorrectly(),!(t instanceof Zs))throw new l.a("writer-rename-not-element-instance",this);const n=t.root.document?t.root.document.version:null,i=new Dl(ta._createBefore(t),t.name,e,n);this.batch.addOperation(i),this.model.applyOperation(i)}split(t,e){this._assertWriterUsedCorrectly();let n,i,r=t.parent;if(!r.parent)throw new l.a("writer-split-element-no-parent",this);if(e||(e=r.parent),!t.parent.getAncestors({includeSelf:!0}).includes(e))throw new l.a("writer-split-invalid-limit-element",this);do{const e=r.root.document?r.root.document.version:null,o=r.maxOffset-t.offset,s=Ol.getInsertionPosition(t),a=new Ol(t,o,s,null,e);this.batch.addOperation(a),this.model.applyOperation(a),n||i||(n=r,i=t.parent.nextSibling),r=(t=this.createPositionAfter(t.parent)).parent}while(r!==e);return{position:t,range:new ra(ta._createAt(n,"end"),ta._createAt(i,0))}}wrap(t,e){if(this._assertWriterUsedCorrectly(),!t.isFlat)throw new l.a("writer-wrap-range-not-flat",this);const n=e instanceof Zs?e:new Zs(e);if(n.childCount>0)throw new l.a("writer-wrap-element-not-empty",this);if(null!==n.parent)throw new l.a("writer-wrap-element-attached",this);this.insert(n,t.start);const i=new ra(t.start.getShiftedBy(1),t.end.getShiftedBy(1));this.move(i,ta._createAt(n,0))}unwrap(t){if(this._assertWriterUsedCorrectly(),null===t.parent)throw new l.a("writer-unwrap-element-no-parent",this);this.move(ra._createIn(t),this.createPositionAfter(t)),this.remove(t)}addMarker(t,e){if(this._assertWriterUsedCorrectly(),!e||"boolean"!=typeof e.usingOperation)throw new l.a("writer-addmarker-no-usingoperation",this);const n=e.usingOperation,i=e.range,r=void 0!==e.affectsData&&e.affectsData;if(this.model.markers.has(t))throw new l.a("writer-addmarker-marker-exists",this);if(!i)throw new l.a("writer-addmarker-no-range",this);return n?(Rl(this,t,null,i,r),this.model.markers.get(t)):this.model.markers._set(t,i,n,r)}updateMarker(t,e){this._assertWriterUsedCorrectly();const n="string"==typeof t?t:t.name,i=this.model.markers.get(n);if(!i)throw new l.a("writer-updatemarker-marker-not-exists",this);if(!e)return void this.model.markers._refresh(i);const r="boolean"==typeof e.usingOperation,o="boolean"==typeof e.affectsData,s=o?e.affectsData:i.affectsData;if(!r&&!e.range&&!o)throw new l.a("writer-updatemarker-wrong-options",this);const a=i.getRange(),c=e.range?e.range:a;r&&e.usingOperation!==i.managedUsingOperations?e.usingOperation?Rl(this,n,null,c,s):(Rl(this,n,a,null,s),this.model.markers._set(n,c,void 0,s)):i.managedUsingOperations?Rl(this,n,a,c,s):this.model.markers._set(n,c,void 0,s)}removeMarker(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?t:t.name;if(!this.model.markers.has(e))throw new l.a("writer-removemarker-no-marker",this);const n=this.model.markers.get(e);n.managedUsingOperations?Rl(this,e,n.getRange(),null,n.affectsData):this.model.markers._remove(e)}setSelection(t,e,n){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(t,e,n)}setSelectionFocus(t,e){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(t,e)}setSelectionAttribute(t,e){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._setSelectionAttribute(t,e);else for(const[e,n]of fi(t))this._setSelectionAttribute(e,n)}removeSelectionAttribute(t){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._removeSelectionAttribute(t);else for(const e of t)this._removeSelectionAttribute(e)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(t){this.model.document.selection._restoreGravity(t)}_setSelectionAttribute(t,e){const n=this.model.document.selection;if(n.isCollapsed&&n.anchor.parent.isEmpty){const i=ya._getStoreAttributeKey(t);this.setAttribute(i,e,n.anchor.parent)}n._setAttribute(t,e)}_removeSelectionAttribute(t){const e=this.model.document.selection;if(e.isCollapsed&&e.anchor.parent.isEmpty){const n=ya._getStoreAttributeKey(t);this.removeAttribute(n,e.anchor.parent)}e._removeAttribute(t)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new l.a("writer-incorrect-use",this)}_addOperationForAffectedMarkers(t,e){for(const n of this.model.markers){if(!n.managedUsingOperations)continue;const i=n.getRange();let r=!1;if("move"===t)r=e.containsPosition(i.start)||e.start.isEqual(i.start)||e.containsPosition(i.end)||e.end.isEqual(i.end);else{const t=e.nodeBefore,n=e.nodeAfter,o=i.start.parent==t&&i.start.isAtEnd,s=i.end.parent==n&&0==i.end.offset,a=i.end.nodeAfter==n,l=i.start.nodeAfter==n;r=o||s||a||l}r&&this.updateMarker(n.name,{range:i})}}}function zl(t,e,n,i){const r=t.model,o=r.document;let s,a,l,c=i.start;for(const t of i.getWalker({shallow:!0}))l=t.item.getAttribute(e),s&&a!=l&&(a!=n&&u(),c=s),s=t.nextPosition,a=l;function u(){const i=new ra(c,s),l=i.root.document?o.version:null,u=new Sl(i,e,a,n,l);t.batch.addOperation(u),r.applyOperation(u)}s instanceof ta&&s!=c&&a!=n&&u()}function Nl(t,e,n,i){const r=t.model,o=r.document,s=i.getAttribute(e);let a,l;if(s!=n){if(i.root===i){const t=i.document?o.version:null;l=new El(i,e,s,n,t)}else{a=new ra(ta._createBefore(i),t.createPositionAfter(i));const r=a.root.document?o.version:null;l=new Sl(a,e,s,n,r)}t.batch.addOperation(l),r.applyOperation(l)}}function Rl(t,e,n,i,r){const o=t.model,s=o.document,a=new Tl(e,n,i,o.markers,r,s.version);t.batch.addOperation(a),o.applyOperation(a)}function jl(t,e,n,i){let r;if(t.root.document){const n=i.document,o=new ta(n.graveyard,[0]);r=new Cl(t,e,o,n.version)}else r=new Al(t,e);n.addOperation(r),i.applyOperation(r)}function Fl(t,e){return t===e||t instanceof Yl&&e instanceof Yl}class Hl{constructor(t){this._markerCollection=t,this._changesInElement=new Map,this._elementSnapshots=new Map,this._changedMarkers=new Map,this._changeCount=0,this._cachedChanges=null,this._cachedChangesWithGraveyard=null}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size}refreshItem(t){if(this._isInInsertedElement(t.parent))return;this._markRemove(t.parent,t.startOffset,t.offsetSize),this._markInsert(t.parent,t.startOffset,t.offsetSize);const e=ra._createOn(t);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getRange();this.bufferMarkerChange(t.name,e,e,t.affectsData)}this._cachedChanges=null}bufferOperation(t){switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),n=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),n||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=ra._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getRange();this.bufferMarkerChange(t.name,e,e,t.affectsData)}break}case"split":{const e=t.splitPosition.parent;this._isInInsertedElement(e)||this._markRemove(e,t.splitPosition.offset,t.howMany),this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1);break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const n=t.graveyardPosition.parent;this._markInsert(n,t.graveyardPosition.offset,1);const i=t.targetPosition.parent;this._isInInsertedElement(i)||this._markInsert(i,t.targetPosition.offset,e.maxOffset);break}}this._cachedChanges=null}bufferMarkerChange(t,e,n,i){const r=this._changedMarkers.get(t);r?(r.newRange=n,r.affectsData=i,null==r.oldRange&&null==r.newRange&&this._changedMarkers.delete(t)):this._changedMarkers.set(t,{oldRange:e,newRange:n,affectsData:i})}getMarkersToRemove(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.oldRange&&t.push({name:e,range:n.oldRange});return t}getMarkersToAdd(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.newRange&&t.push({name:e,range:n.newRange});return t}getChangedMarkers(){return Array.from(this._changedMarkers).map((t=>({name:t[0],data:{oldRange:t[1].oldRange,newRange:t[1].newRange}})))}hasDataChanges(){for(const[,t]of this._changedMarkers)if(t.affectsData)return!0;return this._changesInElement.size>0}getChanges(t={includeChangesInGraveyard:!1}){if(this._cachedChanges)return t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let e=[];for(const t of this._changesInElement.keys()){const n=this._changesInElement.get(t).sort(((t,e)=>t.offset===e.offset?t.type!=e.type?"remove"==t.type?-1:1:0:t.offsett.position.root!=e.position.root?t.position.root.rootNamet));for(const t of e)delete t.changeCount,"attribute"==t.type&&(delete t.position,delete t.length);return this._changeCount=0,this._cachedChangesWithGraveyard=e.slice(),this._cachedChanges=e.filter(Wl),t.includeChangesInGraveyard?this._cachedChangesWithGraveyard:this._cachedChanges}reset(){this._changesInElement.clear(),this._elementSnapshots.clear(),this._changedMarkers.clear(),this._cachedChanges=null}_markInsert(t,e,n){const i={type:"insert",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,i)}_markRemove(t,e,n){const i={type:"remove",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,i),this._removeAllNestedChanges(t,e,n)}_markAttribute(t){const e={type:"attribute",offset:t.startOffset,howMany:t.offsetSize,count:this._changeCount++};this._markChange(t.parent,e)}_markChange(t,e){this._makeSnapshot(t);const n=this._getChangesForElement(t);this._handleChange(e,n),n.push(e);for(let t=0;tn.offset){if(i>r){const t={type:"attribute",offset:r,howMany:i-r,count:this._changeCount++};this._handleChange(t,e),e.push(t)}t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}else t.offset>=n.offset&&t.offsetr?(t.nodesToHandle=i-r,t.offset=r):t.nodesToHandle=0);if("remove"==n.type&&t.offsetn.offset){const r={type:"attribute",offset:n.offset,howMany:i-n.offset,count:this._changeCount++};this._handleChange(r,e),e.push(r),t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}"attribute"==n.type&&(t.offset>=n.offset&&i<=r?(t.nodesToHandle=0,t.howMany=0,t.offset=0):t.offset<=n.offset&&i>=r&&(n.howMany=0))}}t.howMany=t.nodesToHandle,delete t.nodesToHandle}_getInsertDiff(t,e,n){return{type:"insert",position:ta._createAt(t,e),name:n,length:1,changeCount:this._changeCount++}}_getRemoveDiff(t,e,n){return{type:"remove",position:ta._createAt(t,e),name:n,length:1,changeCount:this._changeCount++}}_getAttributesDiff(t,e,n){const i=[];n=new Map(n);for(const[r,o]of e){const e=n.has(r)?n.get(r):null;e!==o&&i.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:r,attributeOldValue:o,attributeNewValue:e,changeCount:this._changeCount++}),n.delete(r)}for(const[e,r]of n)i.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:e,attributeOldValue:null,attributeNewValue:r,changeCount:this._changeCount++});return i}_isInInsertedElement(t){const e=t.parent;if(!e)return!1;const n=this._changesInElement.get(e),i=t.startOffset;if(n)for(const t of n)if("insert"==t.type&&i>=t.offset&&ii){for(let e=0;e=t&&i.baseVersion{const n=e[0];if(n.isDocumentOperation&&n.baseVersion!==this.version)throw new l.a("model-document-applyoperation-wrong-version",this,{operation:n})}),{priority:"highest"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.differ.bufferOperation(n)}),{priority:"high"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&(this.version++,this.history.addOperation(n))}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(t.markers,"update",((t,e,n,i)=>{this.differ.bufferMarkerChange(e.name,n,i,e.affectsData),null===n&&e.on("change",((t,n)=>{this.differ.bufferMarkerChange(e.name,n,e.getRange(),e.affectsData)}))}))}get graveyard(){return this.getRoot("$graveyard")}createRoot(t="$root",e="main"){if(this.roots.get(e))throw new l.a("model-document-createroot-name-exists",this,{name:e});const n=new Yl(this,t,e);return this.roots.add(n),n}destroy(){this.selection.destroy(),this.stopListening()}getRoot(t="main"){return this.roots.get(t)}getRootNames(){return Array.from(this.roots,(t=>t.rootName)).filter((t=>"$graveyard"!=t))}registerPostFixer(t){this._postFixers.add(t)}toJSON(){const t=ci(this);return t.selection="[engine.model.DocumentSelection]",t.model="[engine.model.Model]",t}_handleChangeBlock(t){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(t),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",t.batch):this.fire("change",t.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){for(const t of this.roots)if(t!==this.graveyard)return t;return this.graveyard}_getDefaultRange(){const t=this._getDefaultRoot(),e=this.model,n=e.schema,i=e.createPositionFromPath(t,[0]);return n.getNearestSelectionRange(i)||e.createRange(i)}_validateSelectionRange(t){return Gl(t.start)&&Gl(t.end)}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(this.selection.refresh(),e=n(t),e)break}while(e)}}function Gl(t){const e=t.textNode;if(e){const n=e.data,i=t.offset-e.startOffset;return!Xl(n,i)&&!$l(n,i)}return!0}Gt(ql,d);class Jl{constructor(){this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(t){return this._markers.has(t)}get(t){return this._markers.get(t)||null}_set(t,e,n=!1,i=!1){const r=t instanceof Zl?t.name:t;if(r.includes(","))throw new l.a("markercollection-incorrect-marker-name",this);const o=this._markers.get(r);if(o){const t=o.getRange();let s=!1;return t.isEqual(e)||(o._attachLiveRange(ba.fromRange(e)),s=!0),n!=o.managedUsingOperations&&(o._managedUsingOperations=n,s=!0),"boolean"==typeof i&&i!=o.affectsData&&(o._affectsData=i,s=!0),s&&this.fire("update:"+r,o,t,e),o}const s=ba.fromRange(e),a=new Zl(r,s,n,i);return this._markers.set(r,a),this.fire("update:"+r,a,null,e),a}_remove(t){const e=t instanceof Zl?t.name:t,n=this._markers.get(e);return!!n&&(this._markers.delete(e),this.fire("update:"+e,n,n.getRange(),null),this._destroyMarker(n),!0)}_refresh(t){const e=t instanceof Zl?t.name:t,n=this._markers.get(e);if(!n)throw new l.a("markercollection-refresh-marker-not-exists",this);const i=n.getRange();this.fire("update:"+e,n,i,i,n.managedUsingOperations,n.affectsData)}*getMarkersAtPosition(t){for(const e of this)e.getRange().containsPosition(t)&&(yield e)}*getMarkersIntersectingRange(t){for(const e of this)null!==e.getRange().getIntersection(t)&&(yield e)}destroy(){for(const t of this._markers.values())this._destroyMarker(t);this._markers=null,this.stopListening()}*getMarkersGroup(t){for(const e of this._markers.values())e.name.startsWith(t+":")&&(yield e)}_destroyMarker(t){t.stopListening(),t._detachLiveRange()}}Gt(Jl,d);class Zl{constructor(t,e,n,i){this.name=t,this._liveRange=this._attachLiveRange(e),this._managedUsingOperations=n,this._affectsData=i}get managedUsingOperations(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._affectsData}getStart(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new l.a("marker-destroyed",this);return this._liveRange.toRange()}is(t){return"marker"===t||"model:marker"===t}_attachLiveRange(t){return this._liveRange&&this._detachLiveRange(),t.delegate("change:range").to(this),t.delegate("change:content").to(this),this._liveRange=t,t}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}Gt(Zl,d);class Kl extends ml{get type(){return"noop"}clone(){return new Kl(this.baseVersion)}getReversed(){return new Kl(this.baseVersion+1)}_execute(){}static get className(){return"NoOperation"}}const Ql={};Ql[Sl.className]=Sl,Ql[Ll.className]=Ll,Ql[Tl.className]=Tl,Ql[Cl.className]=Cl,Ql[Kl.className]=Kl,Ql[ml.className]=ml,Ql[Dl.className]=Dl,Ql[El.className]=El,Ql[Ol.className]=Ol,Ql[Pl.className]=Pl;class tc extends ta{constructor(t,e,n="toNone"){if(super(t,e,n),!this.root.is("rootElement"))throw new l.a("model-liveposition-root-not-rootelement",t);ec.call(this)}detach(){this.stopListening()}is(t){return"livePosition"===t||"model:livePosition"===t||"position"==t||"model:position"===t}toPosition(){return new ta(this.root,this.path.slice(),this.stickiness)}static fromPosition(t,e){return new this(t.root,t.path.slice(),e||t.stickiness)}}function ec(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&nc.call(this,n)}),{priority:"low"})}function nc(t){const e=this.getTransformedByOperation(t);if(!this.isEqual(e)){const t=this.toPosition();this.path=e.path,this.root=e.root,this.fire("change",t)}}Gt(tc,d);class ic{constructor(t,e,n){this.model=t,this.writer=e,this.position=n,this.canMergeWith=new Set([this.position.parent]),this.schema=t.schema,this._documentFragment=e.createDocumentFragment(),this._documentFragmentPosition=e.createPositionAt(this._documentFragment,0),this._firstNode=null,this._lastNode=null,this._lastAutoParagraph=null,this._filterAttributesOf=[],this._affectedStart=null,this._affectedEnd=null}handleNodes(t){for(const e of Array.from(t))this._handleNode(e);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesOf,this.writer),this._filterAttributesOf=[]}_updateLastNodeFromAutoParagraph(t){const e=this.writer.createPositionAfter(this._lastNode),n=this.writer.createPositionAfter(t);if(n.isAfter(e)){if(this._lastNode=t,this.position.parent!=t||!this.position.isAtEnd)throw new l.a("insertcontent-invalid-insertion-position",this);this.position=n,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this.nodeToSelect?ra._createOn(this.nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new ra(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(t){if(this.schema.isObject(t))return void this._handleObject(t);let e=this._checkAndAutoParagraphToAllowedPosition(t);e||(e=this._checkAndSplitToAllowedPosition(t),e)?(this._appendToFragment(t),this._firstNode||(this._firstNode=t),this._lastNode=t):this._handleDisallowedNode(t)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const t=tc.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=t.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=t.toPosition(),t.detach()}_handleObject(t){this._checkAndSplitToAllowedPosition(t)?this._appendToFragment(t):this._tryAutoparagraphing(t)}_handleDisallowedNode(t){t.is("element")?this.handleNodes(t.getChildren()):this._tryAutoparagraphing(t)}_appendToFragment(t){if(!this.schema.checkChild(this.position,t))throw new l.a("insertcontent-wrong-position",this,{node:t,position:this.position});this.writer.insert(t,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(t.offsetSize),this.schema.isObject(t)&&!this.schema.checkChild(this.position,"$text")?this.nodeToSelect=t:this.nodeToSelect=null,this._filterAttributesOf.push(t)}_setAffectedBoundaries(t){this._affectedStart||(this._affectedStart=tc.fromPosition(t,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(t)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=tc.fromPosition(t,"toNext"))}_mergeOnLeft(){const t=this._firstNode;if(!(t instanceof Zs))return;if(!this._canMergeLeft(t))return;const e=tc._createBefore(t);e.stickiness="toNext";const n=tc.fromPosition(this.position,"toNext");this._affectedStart.isEqual(e)&&(this._affectedStart.detach(),this._affectedStart=tc._createAt(e.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=tc._createAt(e.nodeBefore,"end","toNext")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_mergeOnRight(){const t=this._lastNode;if(!(t instanceof Zs))return;if(!this._canMergeRight(t))return;const e=tc._createAfter(t);if(e.stickiness="toNext",!this.position.isEqual(e))throw new l.a("insertcontent-invalid-insertion-position",this);this.position=ta._createAt(e.nodeBefore,"end");const n=tc.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(e)&&(this._affectedEnd.detach(),this._affectedEnd=tc._createAt(e.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=tc._createAt(e.nodeBefore,0,"toPrevious")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_canMergeLeft(t){const e=t.previousSibling;return e instanceof Zs&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(e,t)}_canMergeRight(t){const e=t.nextSibling;return e instanceof Zs&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(t,e)}_tryAutoparagraphing(t){const e=this.writer.createElement("paragraph");this._getAllowedIn(this.position.parent,e)&&this.schema.checkChild(e,t)&&(e._appendChild(t),this._handleNode(e))}_checkAndAutoParagraphToAllowedPosition(t){if(this.schema.checkChild(this.position.parent,t))return!0;if(!this.schema.checkChild(this.position.parent,"paragraph")||!this.schema.checkChild("paragraph",t))return!1;this._insertPartialFragment();const e=this.writer.createElement("paragraph");return this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0),!0}_checkAndSplitToAllowedPosition(t){const e=this._getAllowedIn(this.position.parent,t);if(!e)return!1;for(e!=this.position.parent&&this._insertPartialFragment();e!=this.position.parent;)if(this.position.isAtStart){const t=this.position.parent;this.position=this.writer.createPositionBefore(t),t.isEmpty&&t.parent===e&&this.writer.remove(t)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const t=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=t,this.canMergeWith.add(this.position.nodeAfter)}return!0}_getAllowedIn(t,e){return this.schema.checkChild(t,e)?t:this.schema.isLimit(t)?null:this._getAllowedIn(t.parent,e)}}function rc(t,e,n={}){if(e.isCollapsed)return;const i=e.getFirstRange();if("$graveyard"==i.root.rootName)return;const r=t.schema;t.change((t=>{if(!n.doNotResetEntireContent&&function(t,e){const n=t.getLimitElement(e);if(!e.containsEntireContent(n))return!1;const i=e.getFirstRange();return i.start.parent!=i.end.parent&&t.checkChild(n,"paragraph")}(r,e))return void function(t,e){const n=t.model.schema.getLimitElement(e);t.remove(t.createRangeIn(n)),sc(t,t.createPositionAt(n,0),e)}(t,e);const[o,s]=function(t){const e=t.root.document.model,n=t.start;let i=t.end;if(e.hasContent(t,{ignoreMarkers:!0})){const n=function(t){const e=t.parent,n=e.root.document.model.schema,i=e.getAncestors({parentFirst:!0,includeSelf:!0});for(const t of i){if(n.isLimit(t))return null;if(n.isBlock(t))return t}}(i);if(n&&i.isTouching(e.createPositionAt(n,0))){const n=e.createSelection(t);e.modifySelection(n,{direction:"backward"});const r=n.getLastPosition(),o=e.createRange(r,i);e.hasContent(o,{ignoreMarkers:!0})||(i=r)}}return[tc.fromPosition(n,"toPrevious"),tc.fromPosition(i,"toNext")]}(i);o.isTouching(s)||t.remove(t.createRange(o,s)),n.leaveUnmerged||(function(t,e,n){const i=t.model;if(!oc(t.model.schema,e,n))return;const[r,o]=function(t,e){const n=t.getAncestors(),i=e.getAncestors();let r=0;for(;n[r]&&n[r]==i[r];)r++;return[n[r],i[r]]}(e,n);r&&o&&(!i.hasContent(r,{ignoreMarkers:!0})&&i.hasContent(o,{ignoreMarkers:!0})?function t(e,n,i,r){const o=n.parent,s=i.parent;if(o!=r&&s!=r){for(n=e.createPositionAfter(o),(i=e.createPositionBefore(s)).isEqual(n)||e.insert(o,i);n.parent.isEmpty;){const t=n.parent;n=e.createPositionBefore(t),e.remove(t)}i=e.createPositionBefore(s),function(t,e){const n=e.nodeBefore,i=e.nodeAfter;n.name!=i.name&&t.rename(n,i.name),t.clearAttributes(n),t.setAttributes(Object.fromEntries(i.getAttributes()),n),t.merge(e)}(e,i),oc(e.model.schema,n,i)&&t(e,n,i,r)}}(t,e,n,r.parent):function t(e,n,i,r){const o=n.parent,s=i.parent;if(o!=r&&s!=r){for(n=e.createPositionAfter(o),(i=e.createPositionBefore(s)).isEqual(n)||e.insert(s,n),e.merge(n);i.parent.isEmpty;){const t=i.parent;i=e.createPositionBefore(t),e.remove(t)}oc(e.model.schema,n,i)&&t(e,n,i,r)}}(t,e,n,r.parent))}(t,o,s),r.removeDisallowedAttributes(o.parent.getChildren(),t)),ac(t,e,o),!n.doNotAutoparagraph&&function(t,e){const n=t.checkChild(e,"$text"),i=t.checkChild(e,"paragraph");return!n&&i}(r,o)&&sc(t,o,e),o.detach(),s.detach()}))}function oc(t,e,n){const i=e.parent,r=n.parent;return i!=r&&!t.isLimit(i)&&!t.isLimit(r)&&function(t,e,n){const i=new ra(t,e);for(const t of i.getWalker())if(n.isLimit(t.item))return!1;return!0}(e,n,t)}function sc(t,e,n){const i=t.createElement("paragraph");t.insert(i,e),ac(t,n,t.createPositionAt(i,0))}function ac(t,e,n){e instanceof ya?t.setSelection(n):e.setTo(n)}function lc(t,e){const{isForward:n,walker:i,unit:r,schema:o}=t,{type:s,item:a,nextPosition:l}=e;if("text"==s)return"word"===t.unit?function(t,e){let n=t.position.textNode;if(n){let i=t.position.offset-n.startOffset;for(;!uc(n.data,i,e)&&!dc(n,i,e);){t.next();const r=e?t.position.nodeAfter:t.position.nodeBefore;if(r&&r.is("$text")){const i=r.data.charAt(e?0:r.data.length-1);' ,.?!:;"-()'.includes(i)||(t.next(),n=t.position.textNode)}i=t.position.offset-n.startOffset}}return t.position}(i,n):function(t,e){const n=t.position.textNode;if(n){const i=n.data;let r=t.position.offset-n.startOffset;for(;Xl(i,r)||"character"==e&&$l(i,r);)t.next(),r=t.position.offset-n.startOffset}return t.position}(i,r);if(s==(n?"elementStart":"elementEnd")){if(o.isSelectable(a))return ta._createAt(a,n?"after":"before");if(o.checkChild(l,"$text"))return l}else{if(o.isLimit(a))return void i.skip((()=>!0));if(o.checkChild(l,"$text"))return l}}function cc(t,e){const n=t.root,i=ta._createAt(n,e?"end":0);return e?new ra(t,i):new ra(i,t)}function uc(t,e,n){const i=e+(n?0:-1);return' ,.?!:;"-()'.includes(t.charAt(i))}function dc(t,e,n){return e===(n?t.endOffset:0)}function hc(t,e){const n=[];Array.from(t.getItems({direction:"backward"})).map((t=>e.createRangeOn(t))).filter((e=>(e.start.isAfter(t.start)||e.start.isEqual(t.start))&&(e.end.isBefore(t.end)||e.end.isEqual(t.end)))).forEach((t=>{n.push(t.start.parent),e.remove(t)})),n.forEach((t=>{let n=t;for(;n.parent&&n.isEmpty;){const t=e.createRangeOn(n);n=n.parent,e.remove(t)}}))}function fc(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.selection,i=e.schema,r=[];let o=!1;for(const t of n.getRanges()){const e=pc(t,i);e&&!e.isEqual(t)?(r.push(e),o=!0):r.push(t)}o&&t.setSelection(function(t){const e=[];e.push(t.shift());for(const n of t){const t=e.pop();if(n.isEqual(t))e.push(t);else if(n.isIntersecting(t)){const i=t.start.isAfter(n.start)?n.start:t.start,r=t.end.isAfter(n.end)?t.end:n.end,o=new ra(i,r);e.push(o)}else e.push(t),e.push(n)}return e}(r),{backward:n.isBackward})}(e,t)))}function pc(t,e){return t.isCollapsed?function(t,e){const n=t.start,i=e.getNearestSelectionRange(n);if(!i)return null;if(!i.isCollapsed)return i;const r=i.start;return n.isEqual(r)?null:new ra(r)}(t,e):function(t,e){const{start:n,end:i}=t,r=e.checkChild(n,"$text"),o=e.checkChild(i,"$text"),s=e.getLimitElement(n),a=e.getLimitElement(i);if(s===a){if(r&&o)return null;if(function(t,e,n){const i=t.nodeAfter&&!n.isLimit(t.nodeAfter)||n.checkChild(t,"$text"),r=e.nodeBefore&&!n.isLimit(e.nodeBefore)||n.checkChild(e,"$text");return i||r}(n,i,e)){const t=n.nodeAfter&&e.isSelectable(n.nodeAfter)?null:e.getNearestSelectionRange(n,"forward"),r=i.nodeBefore&&e.isSelectable(i.nodeBefore)?null:e.getNearestSelectionRange(i,"backward"),o=t?t.start:n,s=r?r.end:i;return new ra(o,s)}}const l=s&&!s.is("rootElement"),c=a&&!a.is("rootElement");if(l||c){const t=n.nodeAfter&&i.nodeBefore&&n.nodeAfter.parent===i.nodeBefore.parent,r=l&&(!t||!gc(n.nodeAfter,e)),o=c&&(!t||!gc(i.nodeBefore,e));let u=n,d=i;return r&&(u=ta._createBefore(mc(s,e))),o&&(d=ta._createAfter(mc(a,e))),new ra(u,d)}return null}(t,e)}function mc(t,e){let n=t,i=n;for(;e.isLimit(i)&&i.parent;)n=i,i=i.parent;return n}function gc(t,e){return t&&e.isSelectable(t)}class bc{constructor(){this.markers=new Jl,this.document=new ql(this),this.schema=new Xa,this._pendingChanges=[],this._currentWriter=null,["insertContent","deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((t=>this.decorate(t))),this.on("applyOperation",((t,e)=>{e[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$block",{allowIn:"$root",isBlock:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck(((t,e)=>{if("$marker"===e.name)return!0})),fc(this),this.document.registerPostFixer(Pa)}change(t){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new pl,callback:t}),this._runPendingChanges()[0]):t(this._currentWriter)}catch(t){l.a.rethrowUnexpectedError(t,this)}}enqueueChange(t,e){try{"string"==typeof t?t=new pl(t):"function"==typeof t&&(e=t,t=new pl),this._pendingChanges.push({batch:t,callback:e}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(t){l.a.rethrowUnexpectedError(t,this)}}applyOperation(t){t._execute()}insertContent(t,e,n){return function(t,e,n,i){return t.change((r=>{let o;o=n?n instanceof ha||n instanceof ya?n:r.createSelection(n,i):t.document.selection,o.isCollapsed||t.deleteContent(o,{doNotAutoparagraph:!0});const s=new ic(t,r,o.anchor);let a;a=e.is("documentFragment")?e.getChildren():[e],s.handleNodes(a);const l=s.getSelectionRange();l&&(o instanceof ya?r.setSelection(l):o.setTo(l));const c=s.getAffectedRange()||t.createRange(o.anchor);return s.destroy(),c}))}(this,t,e,n)}deleteContent(t,e){rc(this,t,e)}modifySelection(t,e){!function(t,e,n={}){const i=t.schema,r="backward"!=n.direction,o=n.unit?n.unit:"character",s=e.focus,a=new Ks({boundaries:cc(s,r),singleCharacters:!0,direction:r?"forward":"backward"}),l={walker:a,schema:i,isForward:r,unit:o};let c;for(;c=a.next();){if(c.done)return;const n=lc(l,c.value);if(n)return void(e instanceof ya?t.change((t=>{t.setSelectionFocus(n)})):e.setFocus(n))}}(this,t,e)}getSelectedContent(t){return function(t,e){return t.change((t=>{const n=t.createDocumentFragment(),i=e.getFirstRange();if(!i||i.isCollapsed)return n;const r=i.start.root,o=i.start.getCommonPath(i.end),s=r.getNodeByPath(o);let a;a=i.start.parent==i.end.parent?i:t.createRange(t.createPositionAt(s,i.start.path[o.length]),t.createPositionAt(s,i.end.path[o.length]+1));const l=a.end.offset-a.start.offset;for(const e of a.getItems({shallow:!0}))e.is("$textProxy")?t.appendText(e.data,e.getAttributes(),n):t.append(t.cloneElement(e,!0),n);if(a!=i){const e=i._getTransformedByMove(a.start,t.createPositionAt(n,0),l)[0],r=t.createRange(t.createPositionAt(n,0),e.start);hc(t.createRange(e.end,t.createPositionAt(n,"end")),t),hc(r,t)}return n}))}(this,t)}hasContent(t,e={}){const n=t instanceof Zs?ra._createIn(t):t;if(n.isCollapsed)return!1;const{ignoreWhitespaces:i=!1,ignoreMarkers:r=!1}=e;if(!r)for(const t of this.markers.getMarkersIntersectingRange(n))if(t.affectsData)return!0;for(const t of n.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!i)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}createPositionFromPath(t,e,n){return new ta(t,e,n)}createPositionAt(t,e){return ta._createAt(t,e)}createPositionAfter(t){return ta._createAfter(t)}createPositionBefore(t){return ta._createBefore(t)}createRange(t,e){return new ra(t,e)}createRangeIn(t){return ra._createIn(t)}createRangeOn(t){return ra._createOn(t)}createSelection(t,e,n){return new ha(t,e,n)}createBatch(t){return new pl(t)}createOperationFromJSON(t){return class{static fromJSON(t,e){return Ql[t.__className].fromJSON(t,e)}}.fromJSON(t,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const t=[];for(this.fire("_beforeChanges");this._pendingChanges.length;){const e=this._pendingChanges[0].batch;this._currentWriter=new Il(this,e);const n=this._pendingChanges[0].callback(this._currentWriter);t.push(n),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}return this.fire("_afterChanges"),t}}Gt(bc,Vt);class vc extends Ys{constructor(t){super(),this.editor=t}set(t,e,n={}){if("string"==typeof e){const t=e;e=(e,n)=>{this.editor.execute(t),n()}}super.set(t,e,n)}}class _c{constructor(t={}){this._context=t.context||new si({language:t.language}),this._context._addEditor(this,!t.context);const e=Array.from(this.constructor.builtinPlugins||[]);this.config=new Gn(t,this.constructor.defaultConfig),this.config.define("plugins",e),this.config.define(this._context._getEditorConfig()),this.plugins=new ti(this,e,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this.commands=new Va,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.set("isReadOnly",!1),this.model=new bc;const n=new Zi;this.data=new ul(this.model,n),this.editing=new Ba(this.model,n),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new dl([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new vc(this),this.keystrokes.listenTo(this.editing.view.document)}initPlugins(){const t=this.config,e=t.get("plugins"),n=t.get("removePlugins")||[],i=t.get("extraPlugins")||[],r=t.get("substitutePlugins")||[];return this.plugins.init(e.concat(i),n,r)}destroy(){let t=Promise.resolve();return"initializing"==this.state&&(t=new Promise((t=>this.once("ready",t)))),t.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(...t){try{return this.commands.execute(...t)}catch(t){l.a.rethrowUnexpectedError(t,this)}}focus(){this.editing.view.focus()}}Gt(_c,Vt);class yc{constructor(t){this.editor=t,this._components=new Map}*names(){for(const t of this._components.values())yield t.originalName}add(t,e){this._components.set(wc(t),{callback:e,originalName:t})}create(t){if(!this.has(t))throw new l.a("componentfactory-item-missing",this,{name:t});return this._components.get(wc(t)).callback(this.editor.locale)}has(t){return this._components.has(wc(t))}}function wc(t){return String(t).toLowerCase()}class xc{constructor(t){this.editor=t,this.componentFactory=new yc(t),this.focusTracker=new Os,this._editableElementsMap=new Map,this.listenTo(t.editing.view.document,"layoutChanged",(()=>this.update()))}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy();for(const t of this._editableElementsMap.values())t.ckeditorInstance=null;this._editableElementsMap=new Map}setEditableElement(t,e){this._editableElementsMap.set(t,e),e.ckeditorInstance||(e.ckeditorInstance=this.editor)}getEditableElement(t="main"){return this._editableElementsMap.get(t)}getEditableElementsNames(){return this._editableElementsMap.keys()}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}}Gt(xc,d);var kc={setData(t){this.data.set(t)},getData(t){return this.data.get(t)}},Mc={updateSourceElement(){if(!this.sourceElement)throw new l.a("editor-missing-sourceelement",this);var t,e;t=this.sourceElement,e=this.data.get(),t instanceof HTMLTextAreaElement&&(t.value=e),t.innerHTML=e}};class Sc extends ai{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",!1),this._actions=new Qn({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(t){if("string"!=typeof t)throw new l.a("pendingactions-add-invalid-message",this);const e=Object.create(Vt);return e.set("message",t),this._actions.add(e),this.hasAny=!0,e}remove(t){this._actions.remove(t),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}const Ac={cancel:'',caption:'',check:'',eraser:'',lowVision:'',image:'',alignBottom:'',alignMiddle:'',alignTop:'',alignLeft:'',alignCenter:'',alignRight:'',alignJustify:'',objectLeft:'',objectCenter:'',objectRight:'',objectFullWidth:'',objectInline:'',objectBlockLeft:'',objectBlockRight:'',objectSizeFull:'',objectSizeLarge:'',objectSizeSmall:'',objectSizeMedium:'',pencil:'',pilcrow:'',quote:'',threeVerticalDots:''};function Cc({emitter:t,activator:e,callback:n,contextElements:i}){t.listenTo(document,"mousedown",((t,r)=>{if(!e())return;const o="function"==typeof r.composedPath?r.composedPath():[];for(const t of i)if(t.contains(r.target)||o.includes(t))return;n()}))}function Lc(t){t.set("_isCssTransitionsDisabled",!1),t.disableCssTransitions=()=>{t._isCssTransitionsDisabled=!0},t.enableCssTransitions=()=>{t._isCssTransitionsDisabled=!1},t.extendTemplate({attributes:{class:[t.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}function Tc({view:t}){t.listenTo(t.element,"submit",((e,n)=>{n.preventDefault(),t.fire("submit")}),{useCapture:!0})}class Dc extends Qn{constructor(t=[]){super(t,{idProperty:"viewUid"}),this.on("add",((t,e,n)=>{this._renderViewIntoCollectionParent(e,n)})),this.on("remove",((t,e)=>{e.element&&this._parentElement&&e.element.remove()})),this._parentElement=null}destroy(){this.map((t=>t.destroy()))}setParent(t){this._parentElement=t;for(const t of this)this._renderViewIntoCollectionParent(t)}delegate(...t){if(!t.length||!t.every((t=>"string"==typeof t)))throw new l.a("ui-viewcollection-delegate-wrong-events",this);return{to:e=>{for(const n of this)for(const i of t)n.delegate(i).to(e);this.on("add",((n,i)=>{for(const n of t)i.delegate(n).to(e)})),this.on("remove",((n,i)=>{for(const n of t)i.stopDelegating(n,e)}))}}}_renderViewIntoCollectionParent(t,e){t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[e])}}n(15);class Ec{constructor(t){this.element=null,this.isRendered=!1,this.locale=t,this.t=t&&t.t,this._viewCollections=new Qn,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((e,n)=>{n.locale=t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=Pc.bind(this,this)}createCollection(t){const e=new Dc(t);return this._viewCollections.add(e),e}registerChild(t){Kn(t)||(t=[t]);for(const e of t)this._unboundChildren.add(e)}deregisterChild(t){Kn(t)||(t=[t]);for(const e of t)this._unboundChildren.remove(e)}setTemplate(t){this.template=new Pc(t)}extendTemplate(t){Pc.extend(this.template,t)}render(){if(this.isRendered)throw new l.a("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((t=>t.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}Gt(Ec,Eo),Gt(Ec,Vt);class Pc{constructor(t){Object.assign(this,Bc(Hc(t))),this._isRendered=!1,this._revertData=null}render(){const t=this._renderNode({intoFragment:!0});return this._isRendered=!0,t}apply(t){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:t,isApplying:!0,revertData:this._revertData}),t}revert(t){if(!this._revertData)throw new l.a("ui-template-revert-not-applied",[this,t]);this._revertTemplateFromNode(t,this._revertData)}*getViews(){yield*function*t(e){if(e.children)for(const n of e.children)$c(n)?yield n:qc(n)&&(yield*t(n))}(this)}static bind(t,e){return{to:(n,i)=>new Yc({eventNameOrFunction:n,attribute:n,observable:t,emitter:e,callback:i}),if:(n,i,r)=>new Ic({observable:t,emitter:e,attribute:n,valueIfTrue:i,callback:r})}}static extend(t,e){if(t._isRendered)throw new l.a("template-extend-render",[this,t]);!function t(e,n){if(n.attributes&&(e.attributes||(e.attributes={}),Uc(e.attributes,n.attributes)),n.eventListeners&&(e.eventListeners||(e.eventListeners={}),Uc(e.eventListeners,n.eventListeners)),n.text&&e.text.push(...n.text),n.children&&n.children.length){if(e.children.length!=n.children.length)throw new l.a("ui-template-extend-children-mismatch",e);let i=0;for(const r of n.children)t(e.children[i++],r)}}(t,Bc(Hc(e)))}_renderNode(t){let e;if(e=t.node?this.tag&&this.text:this.tag?this.text:!this.text,e)throw new l.a("ui-template-wrong-syntax",this);return this.text?this._renderText(t):this._renderElement(t)}_renderElement(t){let e=t.node;return e||(e=t.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(t),this._renderElementChildren(t),this._setUpListeners(t),e}_renderText(t){let e=t.node;return e?t.revertData.text=e.textContent:e=t.node=document.createTextNode(""),zc(this.text)?this._bindToObservable({schema:this.text,updater:Rc(e),data:t}):e.textContent=this.text.join(""),e}_renderAttributes(t){let e,n,i,r;if(!this.attributes)return;const o=t.node,s=t.revertData;for(e in this.attributes)if(i=o.getAttribute(e),n=this.attributes[e],s&&(s.attributes[e]=i),r=_(n[0])&&n[0].ns?n[0].ns:null,zc(n)){const a=r?n[0].value:n;s&&Jc(e)&&a.unshift(i),this._bindToObservable({schema:a,updater:jc(o,e,r),data:t})}else"style"==e&&"string"!=typeof n[0]?this._renderStyleAttribute(n[0],t):(s&&i&&Jc(e)&&n.unshift(i),n=n.map((t=>t&&t.value||t)).reduce(((t,e)=>t.concat(e)),[]).reduce(Wc,""),Xc(n)||o.setAttributeNS(r,e,n))}_renderStyleAttribute(t,e){const n=e.node;for(const i in t){const r=t[i];zc(r)?this._bindToObservable({schema:[r],updater:Fc(n,i),data:e}):n.style[i]=r}}_renderElementChildren(t){const e=t.node,n=t.intoFragment?document.createDocumentFragment():e,i=t.isApplying;let r=0;for(const o of this.children)if(Gc(o)){if(!i){o.setParent(e);for(const t of o)n.appendChild(t.element)}}else if($c(o))i||(o.isRendered||o.render(),n.appendChild(o.element));else if(go(o))n.appendChild(o);else if(i){const e={children:[],bindings:[],attributes:{}};t.revertData.children.push(e),o._renderNode({node:n.childNodes[r++],isApplying:!0,revertData:e})}else n.appendChild(o.render());t.intoFragment&&e.appendChild(n)}_setUpListeners(t){if(this.eventListeners)for(const e in this.eventListeners){const n=this.eventListeners[e].map((n=>{const[i,r]=e.split("@");return n.activateDomEventListener(i,r,t)}));t.revertData&&t.revertData.bindings.push(n)}}_bindToObservable({schema:t,updater:e,data:n}){const i=n.revertData;Nc(t,e,n);const r=t.filter((t=>!Xc(t))).filter((t=>t.observable)).map((i=>i.activateAttributeListener(t,e,n)));i&&i.bindings.push(r)}_revertTemplateFromNode(t,e){for(const t of e.bindings)for(const e of t)e();if(e.text)t.textContent=e.text;else{for(const n in e.attributes){const i=e.attributes[n];null===i?t.removeAttribute(n):t.setAttribute(n,i)}for(let n=0;nNc(t,e,n);return this.emitter.listenTo(this.observable,"change:"+this.attribute,i),()=>{this.emitter.stopListening(this.observable,"change:"+this.attribute,i)}}}class Yc extends Oc{activateDomEventListener(t,e,n){const i=(t,n)=>{e&&!n.target.matches(e)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(n):this.observable.fire(this.eventNameOrFunction,n))};return this.emitter.listenTo(n.node,t,i),()=>{this.emitter.stopListening(n.node,t,i)}}}class Ic extends Oc{getValue(t){return!Xc(super.getValue(t))&&(this.valueIfTrue||!0)}}function zc(t){return!!t&&(t.value&&(t=t.value),Array.isArray(t)?t.some(zc):t instanceof Oc)}function Nc(t,e,{node:n}){let i=function(t,e){return t.map((t=>t instanceof Oc?t.getValue(e):t))}(t,n);i=1==t.length&&t[0]instanceof Ic?i[0]:i.reduce(Wc,""),Xc(i)?e.remove():e.set(i)}function Rc(t){return{set(e){t.textContent=e},remove(){t.textContent=""}}}function jc(t,e,n){return{set(i){t.setAttributeNS(n,e,i)},remove(){t.removeAttributeNS(n,e)}}}function Fc(t,e){return{set(n){t.style[e]=n},remove(){t.style[e]=null}}}function Hc(t){return $n(t,(t=>{if(t&&(t instanceof Oc||qc(t)||$c(t)||Gc(t)))return t}))}function Bc(t){if("string"==typeof t?t=function(t){return{text:[t]}}(t):t.text&&function(t){t.text=ei(t.text)}(t),t.on&&(t.eventListeners=function(t){for(const e in t)Vc(t,e);return t}(t.on),delete t.on),!t.text){t.attributes&&function(t){for(const e in t)t[e].value&&(t[e].value=ei(t[e].value)),Vc(t,e)}(t.attributes);const e=[];if(t.children)if(Gc(t.children))e.push(t.children);else for(const n of t.children)qc(n)||$c(n)||go(n)?e.push(n):e.push(new Pc(n));t.children=e}return t}function Vc(t,e){t[e]=ei(t[e])}function Wc(t,e){return Xc(e)?t:Xc(t)?e:`${t} ${e}`}function Uc(t,e){for(const n in e)t[n]?t[n].push(...e[n]):t[n]=e[n]}function Xc(t){return!t&&0!==t}function $c(t){return t instanceof Ec}function qc(t){return t instanceof Pc}function Gc(t){return t instanceof Dc}function Jc(t){return"class"==t||"style"==t}class Zc extends Dc{constructor(t,e=[]){super(e),this.locale=t}attachToDom(){this._bodyCollectionContainer=new Pc({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection},children:this}).render();let t=document.querySelector(".ck-body-wrapper");t||(t=function(t,e,n={},i=[]){const r=n&&n.xmlns,o=r?t.createElementNS(r,e):t.createElement(e);for(const t in n)o.setAttribute(t,n[t]);!xs(i)&&Kn(i)||(i=[i]);for(let e of i)xs(e)&&(e=t.createTextNode(e)),o.appendChild(e);return o}(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(t)),t.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const t=document.querySelector(".ck-body-wrapper");t&&0==t.childElementCount&&t.remove()}}n(17);class Kc extends Ec{constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon"],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");for(e&&(this.viewBox=e),this.element.innerHTML="";t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((t=>{t.style.fill=this.fillColor}))}}n(19);class Qc extends Ec{constructor(t){super(t),this.set("text",""),this.set("position","s");const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip",e.to("position",(t=>"ck-tooltip_"+t)),e.if("text","ck-hidden",(t=>!t.trim()))]},children:[{tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:e.to("text")}]}]})}}n(21);class tu extends Ec{constructor(t){super(t);const e=this.bindTemplate,n=s();this.set("class"),this.set("labelStyle"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.tooltipView=this._createTooltipView(),this.labelView=this._createLabelView(n),this.iconView=new Kc,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this)),this.setTemplate({tag:"button",attributes:{class:["ck","ck-button",e.to("class"),e.if("isEnabled","ck-disabled",(t=>!t)),e.if("isVisible","ck-hidden",(t=>!t)),e.to("isOn",(t=>t?"ck-on":"ck-off")),e.if("withText","ck-button_with-text"),e.if("withKeystroke","ck-button_with-keystroke")],type:e.to("type",(t=>t||"button")),tabindex:e.to("tabindex"),"aria-labelledby":"ck-editor__aria-label_"+n,"aria-disabled":e.if("isEnabled",!0,(t=>!t)),"aria-pressed":e.to("isOn",(t=>!!this.isToggleable&&String(t)))},children:this.children,on:{mousedown:e.to((t=>{t.preventDefault()})),click:e.to((t=>{this.isEnabled?this.fire("execute"):t.preventDefault()}))}})}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.tooltipView),this.children.add(this.labelView),this.withKeystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}_createTooltipView(){const t=new Qc;return t.bind("text").to(this,"_tooltipString"),t.bind("position").to(this,"tooltipPosition"),t}_createLabelView(t){const e=new Ec,n=this.bindTemplate;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:n.to("labelStyle"),id:"ck-editor__aria-label_"+t},children:[{text:this.bindTemplate.to("label")}]}),e}_createKeystrokeView(){const t=new Ec;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(t=>Ir(t)))}]}),t}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=Ir(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}n(23);class eu extends tu{constructor(t){super(t),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new Ec;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}class nu{constructor(t){if(Object.assign(this,t),t.actions&&t.keystrokeHandler)for(const e in t.actions){let n=t.actions[e];"string"==typeof n&&(n=[n]);for(const i of n)t.keystrokeHandler.set(i,((t,n)=>{this[e](),n()}))}}get first(){return this.focusables.find(iu)||null}get last(){return this.focusables.filter(iu).slice(-1)[0]||null}get next(){return this._getFocusableItem(1)}get previous(){return this._getFocusableItem(-1)}get current(){let t=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((e,n)=>{const i=e.element===this.focusTracker.focusedElement;return i&&(t=n),i})),t)}focusFirst(){this._focus(this.first)}focusLast(){this._focus(this.last)}focusNext(){this._focus(this.next)}focusPrevious(){this._focus(this.previous)}_focus(t){t&&t.focus()}_getFocusableItem(t){const e=this.current,n=this.focusables.length;if(!n)return null;if(null===e)return this[1===t?"first":"last"];let i=(e+n+t)%n;do{const e=this.focusables.get(i);if(iu(e))return e;i=(i+n+t)%n}while(i!==e);return null}}function iu(t){return!(!t.focus||"none"==wo.window.getComputedStyle(t.element).display)}n(25);var ru='';class ou extends tu{constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new Kc;return t.content=ru,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}n(27);class su extends Ec{constructor(t){super(t);const e=this.bindTemplate;this.set("class"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(),this.arrowView=this._createArrowView(),this.keystrokes=new Ys,this.focusTracker=new Os,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",e.to("class"),e.if("isVisible","ck-hidden",(t=>!t)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((t,e)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),e())})),this.keystrokes.set("arrowleft",((t,e)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),e())}))}focus(){this.actionView.focus()}_createActionView(){const t=new tu;return t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const t=new tu,e=t.bindTemplate;return t.icon=ru,t.extendTemplate({attributes:{class:"ck-splitbutton__arrow","aria-haspopup":!0,"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("isEnabled").to(this),t.delegate("execute").to(this,"open"),t}}class au extends Ec{constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",(t=>"ck-dropdown__panel_"+t)),e.if("isVisible","ck-dropdown__panel-visible")]},children:this.children,on:{selectstart:e.to((t=>t.preventDefault()))}})}focus(){this.children.length&&this.children.first.focus()}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}function lu({element:t,target:e,positions:n,limiter:i,fitInViewport:r}){E(e)&&(e=e()),E(i)&&(i=i());const o=function(t){return t&&t.parentNode?t.offsetParent===wo.document.body?null:t.offsetParent:null}(t),s=new As(t),a=new As(e);let l,c;if(i||r){const t=function(t,e){const{elementRect:n,viewportRect:i}=e,r=n.getArea(),o=function(t,{targetRect:e,elementRect:n,limiterRect:i,viewportRect:r}){const o=[],s=n.getArea();for(const a of t){const t=cu(a,e,n);if(!t)continue;const[l,c]=t;let u=0,d=0;if(i)if(r){const t=i.getIntersection(r);t&&(u=t.getIntersectionArea(c))}else u=i.getIntersectionArea(c);r&&(d=r.getIntersectionArea(c));const h={positionName:l,positionRect:c,limiterIntersectArea:u,viewportIntersectArea:d};if(u===s)return[h];o.push(h)}return o}(t,e);if(i){const t=uu(o.filter((({viewportIntersectArea:t})=>t===r)),r);if(t)return t}return uu(o,r)}(n,{targetRect:a,elementRect:s,limiterRect:i&&new As(i).getVisible(),viewportRect:r&&new As(wo.window)});[c,l]=t||cu(n[0],a,s)}else[c,l]=cu(n[0],a,s);let u=du(l);return o&&(u=function({left:t,top:e},n){const i=du(new As(n)),r=Ms(n);return t-=i.left,e-=i.top,t+=n.scrollLeft,e+=n.scrollTop,{left:t-=r.left,top:e-=r.top}}(u,o)),{left:u.left,top:u.top,name:c}}function cu(t,e,n){const i=t(e,n);if(!i)return null;const{left:r,top:o,name:s}=i;return[s,n.clone().moveTo(r,o)]}function uu(t,e){let n,i,r=0;for(const{positionName:o,positionRect:s,limiterIntersectArea:a,viewportIntersectArea:l}of t){if(a===e)return[o,s];const t=l**2+a**2;t>r&&(r=t,n=s,i=o)}return n?[i,n]:null}function du({left:t,top:e}){const{scrollX:n,scrollY:i}=wo.window;return{left:t+n,top:e+i}}n(29);class hu extends Ec{constructor(t,e,n){super(t);const i=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class"),this.set("id"),this.set("panelPosition","auto"),this.keystrokes=new Ys,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",i.to("class"),i.if("isEnabled","ck-disabled",(t=>!t))],id:i.to("id"),"aria-describedby":i.to("ariaDescribedById")},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"]}})}render(){super.render(),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.panelView.bind("isVisible").to(this,"isOpen"),this.on("change:isOpen",(()=>{this.isOpen&&("auto"===this.panelPosition?this.panelView.position=hu._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions}).name:this.panelView.position=this.panelPosition)})),this.keystrokes.listenTo(this.element);const t=(t,e)=>{this.isOpen&&(this.buttonView.focus(),this.isOpen=!1,e())};this.keystrokes.set("arrowdown",((t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())})),this.keystrokes.set("arrowright",((t,e)=>{this.isOpen&&e()})),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:t,north:e,southEast:n,southWest:i,northEast:r,northWest:o,southMiddleEast:s,southMiddleWest:a,northMiddleEast:l,northMiddleWest:c}=hu.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[n,i,s,a,t,r,o,l,c,e]:[i,n,a,s,t,o,r,c,l,e]}}hu.defaultPanelPositions={south:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/2,name:"s"}),southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),southMiddleEast:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/4,name:"sme"}),southMiddleWest:(t,e)=>({top:t.bottom,left:t.left-3*(e.width-t.width)/4,name:"smw"}),north:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/2,name:"n"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),northMiddleEast:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/4,name:"nme"}),northMiddleWest:(t,e)=>({top:t.top-e.height,left:t.left-3*(e.width-t.width)/4,name:"nmw"})},hu._getOptimalPosition=lu;class fu extends Ec{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class pu extends Ec{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function mu(t){return Array.isArray(t)?{items:t,removeItems:[]}:t?Object.assign({items:[],removeItems:[]},t):{items:[],removeItems:[]}}n(31);class gu extends Ec{constructor(t,e){super(t);const n=this.bindTemplate,i=this.t;this.options=e||{},this.set("ariaLabel",i("Editor toolbar")),this.set("maxWidth","auto"),this.items=this.createCollection(),this.focusTracker=new Os,this.keystrokes=new Ys,this.set("class"),this.set("isCompact",!1),this.itemsView=new bu(t),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const r="rtl"===t.uiLanguageDirection;this._focusCycler=new nu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[r?"arrowright":"arrowleft","arrowup"],focusNext:[r?"arrowleft":"arrowright","arrowdown"]}});const o=["ck","ck-toolbar",n.to("class"),n.if("isCompact","ck-toolbar_compact")];var s;this.options.shouldGroupWhenFull&&this.options.isFloating&&o.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:o,role:"toolbar","aria-label":n.to("ariaLabel"),style:{maxWidth:n.to("maxWidth")}},children:this.children,on:{mousedown:(s=this,s.bindTemplate.to((t=>{t.target===s.element&&t.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new _u(this):new vu(this)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(t,e){const n=mu(t),i=n.items.filter(((t,i,r)=>"|"===t||-1===n.removeItems.indexOf(t)&&("-"===t?!this.options.shouldGroupWhenFull||(Object(l.b)("toolbarview-line-break-ignored-when-grouping-items",r),!1):!!e.has(t)||(Object(l.b)("toolbarview-item-unavailable",{name:t}),!1)))),r=this._cleanSeparators(i).map((t=>"|"===t?new fu:"-"===t?new pu:e.create(t)));this.items.addMany(r)}_cleanSeparators(t){const e=t=>"-"!==t&&"|"!==t,n=t.length,i=t.findIndex(e),r=n-t.slice().reverse().findIndex(e);return t.slice(i,r).filter(((t,n,i)=>!!e(t)||!(n>0&&i[n-1]===t)))}}class bu extends Ec{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class vu{constructor(t){const e=t.bindTemplate;t.set("isVertical",!1),t.itemsView.children.bindTo(t.items).using((t=>t)),t.focusables.bindTo(t.items).using((t=>t)),t.extendTemplate({attributes:{class:[e.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class _u{constructor(t){this.view=t,this.viewChildren=t.children,this.viewFocusables=t.focusables,this.viewItemsView=t.itemsView,this.viewFocusTracker=t.focusTracker,this.viewLocale=t.locale,this.ungroupedItems=t.createCollection(),this.groupedItems=t.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),this.resizeObserver=null,this.cachedPadding=null,this.shouldUpdateGroupingOnNextResize=!1,t.itemsView.children.bindTo(this.ungroupedItems).using((t=>t)),this.ungroupedItems.on("add",this._updateFocusCycleableItems.bind(this)),this.ungroupedItems.on("remove",this._updateFocusCycleableItems.bind(this)),t.children.on("add",this._updateFocusCycleableItems.bind(this)),t.children.on("remove",this._updateFocusCycleableItems.bind(this)),t.items.on("change",((t,e)=>{const n=e.index;for(const t of e.removed)n>=this.ungroupedItems.length?this.groupedItems.remove(t):this.ungroupedItems.remove(t);for(let t=n;tthis.ungroupedItems.length?this.groupedItems.add(i,t-this.ungroupedItems.length):this.ungroupedItems.add(i,t)}this._updateGrouping()})),t.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(t){this.viewElement=t.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(t)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!this.viewElement.offsetParent)return void(this.shouldUpdateGroupingOnNextResize=!0);const t=this.groupedItems.length;let e;for(;this._areItemsOverflowing;)this._groupLastItem(),e=!0;if(!e&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==t&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const t=this.viewElement,e=this.viewLocale.uiLanguageDirection,n=new As(t.lastChild),i=new As(t);if(!this.cachedPadding){const n=wo.window.getComputedStyle(t),i="ltr"===e?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[i])}return"ltr"===e?n.right>i.right-this.cachedPadding:n.left{t&&t===e.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),t=e.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(t){t.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new fu),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const t=this.viewLocale,e=t.t,n=ku(t);return n.class="ck-toolbar__grouped-dropdown",n.panelPosition="ltr"===t.uiLanguageDirection?"sw":"se",Mu(n,[]),n.buttonView.set({label:e("Show more items"),tooltip:!0,tooltipPosition:"rtl"===t.uiLanguageDirection?"se":"sw",icon:Ac.threeVerticalDots}),n.toolbarView.items.bindTo(this.groupedItems).using((t=>t)),n}_updateFocusCycleableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((t=>{this.viewFocusables.add(t)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}n(33);class yu extends Ec{constructor(){super(),this.items=this.createCollection(),this.focusTracker=new Os,this.keystrokes=new Ys,this._focusCycler=new nu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"]},children:this.items})}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}class wu extends Ec{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item"]},children:this.children})}focus(){this.children.first.focus()}}class xu extends Ec{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}function ku(t,e=ou){const n=new e(t),i=new au(t),r=new hu(t,n,i);return n.bind("isEnabled").to(r),n instanceof ou?n.bind("isOn").to(r,"isOpen"):n.arrowView.bind("isOn").to(r,"isOpen"),function(t){(function(t){t.on("render",(()=>{Cc({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:[t.element]})}))})(t),function(t){t.on("execute",(e=>{e.source instanceof eu||(t.isOpen=!1)}))}(t),function(t){t.keystrokes.set("arrowdown",((e,n)=>{t.isOpen&&(t.panelView.focus(),n())})),t.keystrokes.set("arrowup",((e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())}))}(t)}(r),r}function Mu(t,e){const n=t.locale,i=n.t,r=t.toolbarView=new gu(n);r.set("ariaLabel",i("Dropdown toolbar")),t.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.map((t=>r.items.add(t))),t.panelView.children.add(r),r.items.delegate("execute").to(t)}function Su(t,e){const n=t.locale,i=t.listView=new yu(n);i.items.bindTo(e).using((({type:t,model:e})=>{if("separator"===t)return new xu(n);if("button"===t||"switchbutton"===t){const i=new wu(n);let r;return r="button"===t?new tu(n):new eu(n),r.bind(...Object.keys(e)).to(e),r.delegate("execute").to(i),i.children.add(r),i}})),t.panelView.children.add(i),i.items.delegate("execute").to(t)}n(35),n(37),n(39);class Au extends Ec{constructor(t){super(t),this.body=new Zc(t)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}n(41);class Cu extends Ec{constructor(t){super(t),this.set("text"),this.set("for"),this.id="ck-editor__label_"+s();const e=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:e.to("for")},children:[{text:e.to("text")}]})}}class Lu extends Au{constructor(t){super(t),this.top=this.createCollection(),this.main=this.createCollection(),this._voiceLabelView=this._createVoiceLabel(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-editor","ck-rounded-corners"],role:"application",dir:t.uiLanguageDirection,lang:t.uiLanguage,"aria-labelledby":this._voiceLabelView.id},children:[this._voiceLabelView,{tag:"div",attributes:{class:["ck","ck-editor__top","ck-reset_all"],role:"presentation"},children:this.top},{tag:"div",attributes:{class:["ck","ck-editor__main"],role:"presentation"},children:this.main}]})}_createVoiceLabel(){const t=this.t,e=new Cu;return e.text=t("Rich Text Editor"),e.extendTemplate({attributes:{class:"ck-voice-label"}}),e}}class Tu extends Ec{constructor(t,e,n){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:t.contentLanguage,dir:t.contentLanguageDirection}}),this.name=null,this.set("isFocused",!1),this._editableElement=n,this._hasExternalElement=!!this._editableElement,this._editingView=e}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}_updateIsFocusedClasses(){const t=this._editingView;function e(e){t.change((n=>{const i=t.document.getRoot(e.name);n.addClass(e.isFocused?"ck-focused":"ck-blurred",i),n.removeClass(e.isFocused?"ck-blurred":"ck-focused",i)}))}t.isRenderingInProgress?function n(i){t.once("change:isRenderingInProgress",((t,r,o)=>{o?n(i):e(i)}))}(this):e(this)}}class Du extends Tu{constructor(t,e,n){super(t,e,n),this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const t=this._editingView,e=this.t;t.change((n=>{const i=t.document.getRoot(this.name);n.setAttribute("aria-label",e("Rich Text Editor, %0",this.name),i)}))}}n(43),n(45);class Eu extends Ec{constructor(t){super(t),this.set("value"),this.set("id"),this.set("placeholder"),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById"),this.focusTracker=new Os,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{type:"text",class:["ck","ck-input","ck-input-text",e.if("isFocused","ck-input_focused"),e.if("isEmpty","ck-input-text_empty"),e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),readonly:e.to("isReadOnly"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById")},on:{input:e.to("input"),change:e.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((t,e,n)=>{this._setDomElementValue(n),this._updateIsEmpty()}))}select(){this.element.select()}focus(){this.element.focus()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(t){this.element.value=t||0===t?t:""}}n(47);class Pu extends Ec{constructor(t,e){super(t);const n="ck-labeled-field-view-"+s(),i="ck-labeled-field-view-status-"+s();this.fieldView=e(this,n,i),this.set("label"),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class"),this.set("placeholder"),this.labelView=this._createLabelView(n),this.statusView=this._createStatusView(i),this.bind("_statusText").to(this,"errorText",this,"infoText",((t,e)=>t||e));const r=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",r.to("class"),r.if("isEnabled","ck-disabled",(t=>!t)),r.if("isEmpty","ck-labeled-field-view_empty"),r.if("isFocused","ck-labeled-field-view_focused"),r.if("placeholder","ck-labeled-field-view_placeholder"),r.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:[this.fieldView,this.labelView]},this.statusView]})}_createLabelView(t){const e=new Cu(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createStatusView(t){const e=new Ec(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",(t=>!t))],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]}),e}focus(){this.fieldView.focus()}}function Ou(t,e,n){const i=new Eu(t.locale);return i.set({id:e,ariaDescribedById:n}),i.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),i.bind("hasError").to(t,"errorText",(t=>!!t)),i.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(i),i}class Yu extends ai{static get pluginName(){return"Notification"}init(){this.on("show:warning",((t,e)=>{window.alert(e.message)}),{priority:"lowest"})}showSuccess(t,e={}){this._showNotification({message:t,type:"success",namespace:e.namespace,title:e.title})}showInfo(t,e={}){this._showNotification({message:t,type:"info",namespace:e.namespace,title:e.title})}showWarning(t,e={}){this._showNotification({message:t,type:"warning",namespace:e.namespace,title:e.title})}_showNotification(t){const e="show:"+t.type+(t.namespace?":"+t.namespace:"");this.fire(e,{message:t.message,type:t.type,title:t.title||""})}}class Iu{constructor(t,e){e&&zt(this,e),t&&this.set(t)}}Gt(Iu,Vt),n(49);const zu=Es("px"),Nu=wo.document.body;class Ru extends Ec{constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class"),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",(t=>"ck-balloon-panel_"+t)),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",zu),left:e.to("left",zu)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=Ru.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthMiddleWest,e.southArrowNorthMiddleEast,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthMiddleWest,e.northArrowSouthMiddleEast,e.northArrowSouthWest,e.northArrowSouthEast],limiter:Nu,fitInViewport:!0},t),i=Ru._getOptimalPosition(n),r=parseInt(i.left),o=parseInt(i.top),s=i.name;Object.assign(this,{top:o,left:r,position:s})}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(t):this._stopPinning()},this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=ju(t.target),n=t.limiter?ju(t.limiter):Nu;this.listenTo(wo.document,"scroll",((i,r)=>{const o=r.target,s=e&&o.contains(e),a=n&&o.contains(n);!s&&!a&&e&&n||this.attachTo(t)}),{useCapture:!0}),this.listenTo(wo.window,"resize",(()=>{this.attachTo(t)}))}_stopPinning(){this.stopListening(wo.document,"scroll"),this.stopListening(wo.window,"resize")}}function ju(t){return qn(t)?t:ks(t)?t.commonAncestorContainer:"function"==typeof t?ju(t()):null}function Fu(t,e){return t.top-e.height-Ru.arrowVerticalOffset}function Hu(t){return t.bottom+Ru.arrowVerticalOffset}Ru.arrowHorizontalOffset=25,Ru.arrowVerticalOffset=10,Ru._getOptimalPosition=lu,Ru.defaultPositions={northWestArrowSouthWest:(t,e)=>({top:Fu(t,e),left:t.left-Ru.arrowHorizontalOffset,name:"arrow_sw"}),northWestArrowSouthMiddleWest:(t,e)=>({top:Fu(t,e),left:t.left-.25*e.width-Ru.arrowHorizontalOffset,name:"arrow_smw"}),northWestArrowSouth:(t,e)=>({top:Fu(t,e),left:t.left-e.width/2,name:"arrow_s"}),northWestArrowSouthMiddleEast:(t,e)=>({top:Fu(t,e),left:t.left-.75*e.width+Ru.arrowHorizontalOffset,name:"arrow_sme"}),northWestArrowSouthEast:(t,e)=>({top:Fu(t,e),left:t.left-e.width+Ru.arrowHorizontalOffset,name:"arrow_se"}),northArrowSouthWest:(t,e)=>({top:Fu(t,e),left:t.left+t.width/2-Ru.arrowHorizontalOffset,name:"arrow_sw"}),northArrowSouthMiddleWest:(t,e)=>({top:Fu(t,e),left:t.left+t.width/2-.25*e.width-Ru.arrowHorizontalOffset,name:"arrow_smw"}),northArrowSouth:(t,e)=>({top:Fu(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s"}),northArrowSouthMiddleEast:(t,e)=>({top:Fu(t,e),left:t.left+t.width/2-.75*e.width+Ru.arrowHorizontalOffset,name:"arrow_sme"}),northArrowSouthEast:(t,e)=>({top:Fu(t,e),left:t.left+t.width/2-e.width+Ru.arrowHorizontalOffset,name:"arrow_se"}),northEastArrowSouthWest:(t,e)=>({top:Fu(t,e),left:t.right-Ru.arrowHorizontalOffset,name:"arrow_sw"}),northEastArrowSouthMiddleWest:(t,e)=>({top:Fu(t,e),left:t.right-.25*e.width-Ru.arrowHorizontalOffset,name:"arrow_smw"}),northEastArrowSouth:(t,e)=>({top:Fu(t,e),left:t.right-e.width/2,name:"arrow_s"}),northEastArrowSouthMiddleEast:(t,e)=>({top:Fu(t,e),left:t.right-.75*e.width+Ru.arrowHorizontalOffset,name:"arrow_sme"}),northEastArrowSouthEast:(t,e)=>({top:Fu(t,e),left:t.right-e.width+Ru.arrowHorizontalOffset,name:"arrow_se"}),southWestArrowNorthWest:(t,e)=>({top:Hu(t),left:t.left-Ru.arrowHorizontalOffset,name:"arrow_nw"}),southWestArrowNorthMiddleWest:(t,e)=>({top:Hu(t),left:t.left-.25*e.width-Ru.arrowHorizontalOffset,name:"arrow_nmw"}),southWestArrowNorth:(t,e)=>({top:Hu(t),left:t.left-e.width/2,name:"arrow_n"}),southWestArrowNorthMiddleEast:(t,e)=>({top:Hu(t),left:t.left-.75*e.width+Ru.arrowHorizontalOffset,name:"arrow_nme"}),southWestArrowNorthEast:(t,e)=>({top:Hu(t),left:t.left-e.width+Ru.arrowHorizontalOffset,name:"arrow_ne"}),southArrowNorthWest:(t,e)=>({top:Hu(t),left:t.left+t.width/2-Ru.arrowHorizontalOffset,name:"arrow_nw"}),southArrowNorthMiddleWest:(t,e)=>({top:Hu(t),left:t.left+t.width/2-.25*e.width-Ru.arrowHorizontalOffset,name:"arrow_nmw"}),southArrowNorth:(t,e)=>({top:Hu(t),left:t.left+t.width/2-e.width/2,name:"arrow_n"}),southArrowNorthMiddleEast:(t,e)=>({top:Hu(t),left:t.left+t.width/2-.75*e.width+Ru.arrowHorizontalOffset,name:"arrow_nme"}),southArrowNorthEast:(t,e)=>({top:Hu(t),left:t.left+t.width/2-e.width+Ru.arrowHorizontalOffset,name:"arrow_ne"}),southEastArrowNorthWest:(t,e)=>({top:Hu(t),left:t.right-Ru.arrowHorizontalOffset,name:"arrow_nw"}),southEastArrowNorthMiddleWest:(t,e)=>({top:Hu(t),left:t.right-.25*e.width-Ru.arrowHorizontalOffset,name:"arrow_nmw"}),southEastArrowNorth:(t,e)=>({top:Hu(t),left:t.right-e.width/2,name:"arrow_n"}),southEastArrowNorthMiddleEast:(t,e)=>({top:Hu(t),left:t.right-.75*e.width+Ru.arrowHorizontalOffset,name:"arrow_nme"}),southEastArrowNorthEast:(t,e)=>({top:Hu(t),left:t.right-e.width+Ru.arrowHorizontalOffset,name:"arrow_ne"})},n(51),n(53);const Bu=Es("px");class Vu extends Jt{static get pluginName(){return"ContextualBalloon"}constructor(t){super(t),this.positionLimiter=()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null},this.set("visibleView",null),this.view=new Ru(t.locale),t.ui.view.body.add(this.view),t.ui.focusTracker.add(this.view.element),this._viewToStack=new Map,this._idToStack=new Map,this.set("_numberOfStacks",0),this.set("_singleViewMode",!1),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this.hasView(t.view))throw new l.a("contextualballoon-add-view-exist",[this,t]);const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new l.a("contextualballoon-remove-view-not-exist",[this,t]);const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new l.a("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find((e=>e[1]===t))[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new Wu(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>1)),t.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((t,n)=>{if(n<2)return"";const i=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[i,n])})),t.buttonNextView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),t.buttonPrevView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),t}_createFakePanelsView(){const t=new Uu(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>=2?Math.min(t-1,2):0)),t.listenTo(this.view,"change:top",(()=>t.updatePosition())),t.listenTo(this.view,"change:left",(()=>t.updatePosition())),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:i=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),i&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&!t.limiter&&(t=Object.assign({},t,{limiter:this.positionLimiter})),t}}class Wu extends Ec{constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new Os,this.buttonPrevView=this._createButtonView(e("Previous"),''),this.buttonNextView=this._createButtonView(e("Next"),''),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",(t=>t?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new tu(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class Uu extends Ec{constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",(t=>t?"":"ck-hidden"))],style:{top:n.to("top",Bu),left:n.to("left",Bu),width:n.to("width",Bu),height:n.to("height",Bu)}},children:this.content}),this.on("change:numberOfPanels",((t,e,n,i)=>{n>i?this._addPanels(n-i):this._removePanels(i-n),this.updatePosition()}))}_addPanels(t){for(;t--;){const t=new Ec;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:i}=new As(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:i})}}}n(55);const Xu=Es("px");class $u extends Ec{constructor(t){super(t);const e=this.bindTemplate;this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheLimiter",!1),this.set("_hasViewportTopOffset",!1),this.content=this.createCollection(),this._contentPanelPlaceholder=new Pc({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:e.to("isSticky",(t=>t?"block":"none")),height:e.to("isSticky",(t=>t?Xu(this._panelRect.height):null))}}}).render(),this._contentPanel=new Pc({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",e.if("isSticky","ck-sticky-panel__content_sticky"),e.if("_isStickyToTheLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{width:e.to("isSticky",(t=>t?Xu(this._contentPanelPlaceholder.getBoundingClientRect().width):null)),top:e.to("_hasViewportTopOffset",(t=>t?Xu(this.viewportTopOffset):null)),bottom:e.to("_isStickyToTheLimiter",(t=>t?Xu(this.limiterBottomOffset):null)),marginLeft:e.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this._contentPanel]})}render(){super.render(),this._checkIfShouldBeSticky(),this.listenTo(wo.window,"scroll",(()=>{this._checkIfShouldBeSticky()})),this.listenTo(this,"change:isActive",(()=>{this._checkIfShouldBeSticky()}))}_checkIfShouldBeSticky(){const t=this._panelRect=this._contentPanel.getBoundingClientRect();let e;this.limiterElement?(e=this._limiterRect=this.limiterElement.getBoundingClientRect(),this.isSticky=this.isActive&&e.topZu(s,t)))),qu.get(s).set(n,{text:i,isDirectHost:r,keepOnFocus:o,hostElement:r?n:null}),e.change((t=>Zu(s,t)))}function Ju(t,e){return!!e.hasClass("ck-placeholder")&&(t.removeClass("ck-placeholder",e),!0)}function Zu(t,e){const n=qu.get(t),i=[];let r=!1;for(const[t,o]of n)o.isDirectHost&&(i.push(t),Ku(e,t,o)&&(r=!0));for(const[t,o]of n){if(o.isDirectHost)continue;const n=Qu(t);n&&(i.includes(n)||(o.hostElement=n,Ku(e,t,o)&&(r=!0)))}return r}function Ku(t,e,n){const{text:i,isDirectHost:r,hostElement:o}=n;let s=!1;return o.getAttribute("data-placeholder")!==i&&(t.setAttribute("data-placeholder",i,o),s=!0),(r||1==e.childCount)&&function(t,e){if(!t.isAttached())return!1;if(Array.from(t.getChildren()).some((t=>!t.is("uiElement"))))return!1;if(e)return!0;const n=t.document;if(!n.isFocused)return!0;const i=n.selection.anchor;return i&&i.parent!==t}(o,n.keepOnFocus)?function(t,e){return!e.hasClass("ck-placeholder")&&(t.addClass("ck-placeholder",e),!0)}(t,o)&&(s=!0):Ju(t,o)&&(s=!0),s}function Qu(t){if(t.childCount){const e=t.getChild(0);if(e.is("element")&&!e.is("uiElement"))return e}return null}const td=new Map;function ed(t,e,n){let i=td.get(t);i||(i=new Map,td.set(t,i)),i.set(e,n)}function nd(t){return[t]}function id(t,e,n={}){const i=function(t,e){const n=td.get(t);return n&&n.has(e)?n.get(e):nd}(t.constructor,e.constructor);try{return i(t=t.clone(),e,n)}catch(t){throw t}}function rd(t,e,n){t=t.slice(),e=e.slice();const i=new od(n.document,n.useRelations,n.forceWeakRemove);i.setOriginalOperations(t),i.setOriginalOperations(e);const r=i.originalOperations;if(0==t.length||0==e.length)return{operationsA:t,operationsB:e,originalOperations:r};const o=new WeakMap;for(const e of t)o.set(e,0);const s={nextBaseVersionA:t[t.length-1].baseVersion+1,nextBaseVersionB:e[e.length-1].baseVersion+1,originalOperationsACount:t.length,originalOperationsBCount:e.length};let a=0;for(;a{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const i=t.range.getDifference(e.range).map((e=>new Sl(e,t.key,t.oldValue,t.newValue,0))),r=t.range.getIntersection(e.range);return r&&n.aIsStrong&&i.push(new Sl(r,e.key,e.newValue,t.newValue,0)),0==i.length?[new Kl(0)]:i}return[t]})),ed(Sl,Ll,((t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes).map((e=>new Sl(e,t.key,t.oldValue,t.newValue,t.baseVersion)));if(e.shouldReceiveAttributes){const i=ld(e,t.key,t.oldValue);i&&n.unshift(i)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]})),ed(Sl,Pl,((t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(ra._createFromPositionAndShift(e.graveyardPosition,1));const i=t.range._getTransformedByMergeOperation(e);return i.isCollapsed||n.push(i),n.map((e=>new Sl(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),ed(Sl,Cl,((t,e)=>function(t,e){const n=ra._createFromPositionAndShift(e.sourcePosition,e.howMany);let i=null,r=[];n.containsRange(t,!0)?i=t:t.start.hasSameParentAs(n.start)?(r=t.getDifference(n),i=t.getIntersection(n)):r=[t];const o=[];for(let t of r){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart(),i=t.start.hasSameParentAs(n);t=t._getTransformedByInsertion(n,e.howMany,i),o.push(...t)}return i&&o.push(i._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]),o}(t.range,e).map((e=>new Sl(e,t.key,t.oldValue,t.newValue,t.baseVersion))))),ed(Sl,Ol,((t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new ra(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]})),ed(Ll,Sl,((t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const i=ld(t,e.key,e.newValue);i&&n.push(i)}return n})),ed(Ll,Ll,((t,e,n)=>(t.position.isEqual(e.position)&&n.aIsStrong||(t.position=t.position._getTransformedByInsertOperation(e)),[t]))),ed(Ll,Cl,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),ed(Ll,Ol,((t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t]))),ed(Ll,Pl,((t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t]))),ed(Tl,Ll,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t]))),ed(Tl,Tl,((t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new Kl(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]})),ed(Tl,Pl,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t]))),ed(Tl,Cl,((t,e,n)=>{if(t.oldRange&&(t.oldRange=ra._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const i=ra._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.start.path=n.abRelation.path,t.newRange.end=i.end,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=i.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=ra._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]})),ed(Tl,Ol,((t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const i=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=ta._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=ta._createAt(e.moveTargetPosition)),t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?t.newRange.end=ta._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?t.newRange.end=ta._createAt(e.insertionPosition):t.newRange.end=i.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]})),ed(Pl,Ll,((t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t]))),ed(Pl,Pl,((t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new ta(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new Kl(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const i="$graveyard"==t.targetPosition.root.rootName,r="$graveyard"==e.targetPosition.root.rootName,o=i&&!r;if(r&&!i||!o&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),i=t.targetPosition._getTransformedByMergeOperation(e);return[new Cl(n,t.howMany,i,0)]}return[new Kl(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),ed(Pl,Cl,((t,e,n)=>{const i=ra._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.sourcePosition)?[new Kl(0)]:(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])})),ed(Pl,Ol,((t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const i=0!=e.howMany,r=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(i||r||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]})),ed(Cl,Ll,((t,e)=>{const n=ra._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]})),ed(Cl,Cl,((t,e,n)=>{const i=ra._createFromPositionAndShift(t.sourcePosition,t.howMany),r=ra._createFromPositionAndShift(e.sourcePosition,e.howMany);let o,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),o=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),cd(t,e)&&cd(e,t))return[e.getReversed()];if(i.containsPosition(e.targetPosition)&&i.containsRange(r,!0))return i.start=i.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),i.end=i.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),ud([i],o);if(r.containsPosition(t.targetPosition)&&r.containsRange(i,!0))return i.start=i.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),i.end=i.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),ud([i],o);const l=li(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return i.start=i.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),i.end=i.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),ud([i],o);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const c=[],u=i.getDifference(r);for(const t of u){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany),t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n="same"==li(t.start.getParentPath(),e.getMovedRangeStart().getParentPath()),i=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);c.push(...i)}const d=i.getIntersection(r);return null!==d&&s&&(d.start=d.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),d.end=d.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===c.length?c.push(d):1==c.length?r.start.isBefore(i.start)||r.start.isEqual(i.start)?c.unshift(d):c.push(d):c.splice(1,0,d)),0===c.length?[new Kl(t.baseVersion)]:ud(c,o)})),ed(Cl,Ol,((t,e,n)=>{let i=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(i=t.targetPosition._getTransformedBySplitOperation(e));const r=ra._createFromPositionAndShift(t.sourcePosition,t.howMany);if(r.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=i,[t];if(r.start.hasSameParentAs(e.splitPosition)&&r.containsPosition(e.splitPosition)){let t=new ra(e.splitPosition,r.end);return t=t._getTransformedBySplitOperation(e),ud([new ra(r.start,e.splitPosition),t],i)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(i=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(i=t.targetPosition);const o=[r._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const i=r.start.isEqual(e.graveyardPosition)||r.containsPosition(e.graveyardPosition);t.howMany>1&&i&&!n.aWasUndone&&o.push(ra._createFromPositionAndShift(e.insertionPosition,1))}return ud(o,i)})),ed(Cl,Pl,((t,e,n)=>{const i=ra._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new Kl(0)]}else if(!n.aWasUndone){const n=[];let i=e.graveyardPosition.clone(),r=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new Cl(t.sourcePosition,t.howMany-1,t.targetPosition,0)),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),r=r._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const o=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new Cl(i,1,o,0),a=s.getMovedRangeStart().path.slice();a.push(0);const l=new ta(s.targetPosition.root,a);r=r._getTransformedByMove(i,o,1);const c=new Cl(r,e.howMany,l,0);return n.push(s),n.push(c),n}const r=ra._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=r.start,t.howMany=r.end.offset-r.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]})),ed(Dl,Ll,((t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t]))),ed(Dl,Pl,((t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t]))),ed(Dl,Cl,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),ed(Dl,Dl,((t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new Kl(0)];t.oldName=e.newName}return[t]})),ed(Dl,Ol,((t,e)=>{if("same"==li(t.position.path,e.splitPosition.getParentPath())&&!e.graveyardPosition){const e=new Dl(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}return t.position=t.position._getTransformedBySplitOperation(e),[t]})),ed(El,El,((t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new Kl(0)];t.oldValue=e.newValue}return[t]})),ed(Ol,Ll,((t,e)=>(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const i=new ta(e.graveyardPosition.root,n),r=Ol.getInsertionPosition(new ta(e.graveyardPosition.root,n)),o=new Ol(i,0,r,null,0);return t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Ol.getInsertionPosition(t.splitPosition),t.graveyardPosition=o.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[o,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Ol.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),ed(Ol,Cl,((t,e,n)=>{const i=ra._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const r=i.start.isEqual(t.graveyardPosition)||i.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&r){const n=t.splitPosition._getTransformedByMoveOperation(e),i=t.graveyardPosition._getTransformedByMoveOperation(e),r=i.path.slice();r.push(0);const o=new ta(i.root,r);return[new Cl(n,t.howMany,o,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}const r=t.splitPosition.isEqual(e.targetPosition);if(r&&("insertAtSource"==n.baRelation||"splitBefore"==n.abRelation))return t.howMany+=e.howMany,t.splitPosition=t.splitPosition._getTransformedByDeletion(e.sourcePosition,e.howMany),t.insertionPosition=Ol.getInsertionPosition(t.splitPosition),[t];if(r&&n.abRelation&&n.abRelation.howMany){const{howMany:e,offset:i}=n.abRelation;return t.howMany+=e,t.splitPosition=t.splitPosition.getShiftedBy(i),[t]}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);return t.howMany-=n,t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new Kl(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new Kl(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const i="$graveyard"==t.splitPosition.root.rootName,r="$graveyard"==e.splitPosition.root.rootName,o=i&&!r;if(r&&!i||!o&&n.aIsStrong){const n=[];return e.howMany&&n.push(new Cl(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new Cl(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new Kl(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const i=new ta(e.insertionPosition.root,n);return[t,new Cl(t.insertionPosition,1,i,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset{n.isFocused&&!i.focusTracker.isFocused&&(r&&r(),i.focus(),e())})),i.keystrokes.set("Esc",((e,n)=>{i.focusTracker.isFocused&&(t.focus(),o&&o(),n())}))}({origin:n,originFocusTracker:this.focusTracker,originKeystrokeHandler:t.keystrokes,toolbar:e.toolbar})}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),i=t.sourceElement,r=t.config.get("placeholder")||i&&"textarea"===i.tagName.toLowerCase()&&i.getAttribute("placeholder");r&&Gu({view:e,element:n,text:r,isDirectHost:!1,keepOnFocus:!0})}}n(61);class md extends Lu{constructor(t,e,n={}){super(t),this.stickyPanel=new $u(t),this.toolbar=new gu(t,{shouldGroupWhenFull:n.shouldToolbarGroupWhenFull}),this.editable=new Du(t,e)}render(){super.render(),this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}class gd extends _c{constructor(t,e){super(e),qn(t)&&(this.sourceElement=t),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),i=new md(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:n});this.ui=new pd(this,i),function(t){if(!E(t.updateSourceElement))throw new l.a("attachtoform-missing-elementapi-interface",t);const e=t.sourceElement;if(e&&"textarea"===e.tagName.toLowerCase()&&e.form){let n;const i=e.form,r=()=>t.updateSourceElement();E(i.submit)&&(n=i.submit,i.submit=()=>{r(),n.apply(i)}),i.addEventListener("submit",r),t.on("destroy",(()=>{i.removeEventListener("submit",r),n&&(i.submit=n)}))}}(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise((n=>{const i=new this(t,e);n(i.initPlugins().then((()=>i.ui.init(qn(t)?t:null))).then((()=>{if(!qn(t)&&e.initialData)throw new l.a("editor-create-initial-data",null);const n=void 0!==e.initialData?e.initialData:function(t){return qn(t)?(e=t)instanceof HTMLTextAreaElement?e.value:e.innerHTML:t;var e}(t);return i.data.init(n)})).then((()=>i.fire("ready"))).then((()=>i)))}))}}Gt(gd,kc),Gt(gd,Mc);class bd{constructor(t){this.files=function(t){const e=t.files?Array.from(t.files):[],n=t.items?Array.from(t.items):[];return e.length?e:n.filter((t=>"file"===t.kind)).map((t=>t.getAsFile()))}(t),this._native=t}get types(){return this._native.types}getData(t){return this._native.getData(t)}setData(t,e){this._native.setData(t,e)}set effectAllowed(t){this._native.effectAllowed=t}get effectAllowed(){return this._native.effectAllowed}set dropEffect(t){this._native.dropEffect=t}get dropEffect(){return this._native.dropEffect}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}class vd extends es{constructor(t){super(t);const e=this.document;function n(t){return(n,i)=>{i.preventDefault();const o=i.dropRange?[i.dropRange]:null,s=new r(e,t);e.fire(s,{dataTransfer:i.dataTransfer,method:n.name,targetRanges:o,target:i.target}),s.stop.called&&i.stopPropagation()}}this.domEventType=["paste","copy","cut","drop","dragover","dragstart","dragend","dragenter","dragleave"],this.listenTo(e,"paste",n("clipboardInput"),{priority:"low"}),this.listenTo(e,"drop",n("clipboardInput"),{priority:"low"}),this.listenTo(e,"dragover",n("dragging"),{priority:"low"})}onDomEvent(t){const e={dataTransfer:new bd(t.clipboardData?t.clipboardData:t.dataTransfer)};"drop"!=t.type&&"dragover"!=t.type||(e.dropRange=function(t,e){const n=e.target.ownerDocument,i=e.clientX,r=e.clientY;let o;return n.caretRangeFromPoint&&n.caretRangeFromPoint(i,r)?o=n.caretRangeFromPoint(i,r):e.rangeParent&&(o=n.createRange(),o.setStart(e.rangeParent,e.rangeOffset),o.collapse(!0)),o?t.domConverter.domRangeToView(o):null}(this.view,t)),this.fire(t.type,t,e)}}const _d=["figcaption","li"];class yd extends Jt{static get pluginName(){return"ClipboardPipeline"}init(){this.editor.editing.view.addObserver(vd),this._setupPasteDrop(),this._setupCopyCut()}_setupPasteDrop(){const t=this.editor,e=t.model,n=t.editing.view,i=n.document;this.listenTo(i,"clipboardInput",(e=>{t.isReadOnly&&e.stop()}),{priority:"highest"}),this.listenTo(i,"clipboardInput",((t,e)=>{const i=e.dataTransfer;let o=e.content||"";var s;o||(i.getData("text/html")?o=function(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1==e.length?" ":e))}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(//g,">").replace(/\r?\n\r?\n/g,"

    ").replace(/\r?\n/g,"
    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

    ")||s.includes("
    "))&&(s=`

    ${s}

    `),o=s),o=this.editor.data.htmlProcessor.toView(o));const a=new r(this,"inputTransformation");this.fire(a,{content:o,dataTransfer:i,targetRanges:e.targetRanges,method:e.method}),a.stop.called&&t.stop(),n.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((t,n)=>{if(n.content.isEmpty)return;const i=this.editor.data.toModel(n.content,"$clipboardHolder");0!=i.childCount&&(t.stop(),e.change((()=>{this.fire("contentInsertion",{content:i,method:n.method,dataTransfer:n.dataTransfer,targetRanges:n.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((t,n)=>{n.resultRange=e.insertContent(n.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor,e=t.model.document,n=t.editing.view.document;function i(i,r){const o=r.dataTransfer;r.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));n.fire("clipboardOutput",{dataTransfer:o,content:s,method:i.name})}this.listenTo(n,"copy",i,{priority:"low"}),this.listenTo(n,"cut",((e,n)=>{t.isReadOnly?n.preventDefault():i(e,n)}),{priority:"low"}),this.listenTo(n,"clipboardOutput",((n,i)=>{i.content.isEmpty||(i.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(i.content)),i.dataTransfer.setData("text/plain",function t(e){let n="";if(e.is("$text")||e.is("$textProxy"))n=e.data;else if(e.is("element","img")&&e.hasAttribute("alt"))n=e.getAttribute("alt");else if(e.is("element","br"))n="\n";else{let i=null;for(const r of e.getChildren()){const e=t(r);i&&(i.is("containerElement")||r.is("containerElement"))&&(_d.includes(i.name)||_d.includes(r.name)?n+="\n":n+="\n\n"),n+=e,i=r}}return n}(i.content))),"cut"==i.method&&t.model.deleteContent(e.selection)}),{priority:"low"})}}function*wd(t,e){for(const n of e)n&&t.getAttributeProperties(n[0]).copyOnEnter&&(yield n)}class xd extends Kt{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n,i){const r=n.isCollapsed,o=n.getFirstRange(),s=o.start.parent,a=o.end.parent;if(i.isLimit(s)||i.isLimit(a))r||s!=a||t.deleteContent(n);else if(r){const t=wd(e.model.schema,n.getAttributes());kd(e,o.start),e.setSelectionAttribute(t)}else{const i=!(o.start.isAtStart&&o.end.isAtEnd),r=s==a;t.deleteContent(n,{leaveUnmerged:i}),i&&(r?kd(e,n.focus):e.setSelection(a,0))}}(this.editor.model,n,e.selection,t.schema),this.fire("afterExecute",{writer:n})}))}}function kd(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}class Md extends Yo{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(this.isEnabled&&n.keyCode==Er.enter){const i=new pr(e,"enter",e.selection.getFirstRange());e.fire(i,new ts(e,n.domEvent,{isSoft:n.shiftKey})),i.stop.called&&t.stop()}}))}observe(){}}class Sd extends Jt{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(Md),t.commands.add("enter",new xd(t)),this.listenTo(n,"enter",((n,i)=>{i.preventDefault(),i.isSoft||(t.execute("enter"),e.scrollToTheSelection())}),{priority:"low"})}}class Ad{constructor(t,e=20){this.model=t,this.size=0,this.limit=e,this.isLocked=!1,this._changeCallback=(t,e)=>{"transparent"!=e.type&&e!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch()),this._batch}input(t){this.size+=t,this.size>=this.limit&&this._reset(!0)}lock(){this.isLocked=!0}unlock(){this.isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(t){this.isLocked&&!t||(this._batch=null,this.size=0)}}class Cd extends Kt{constructor(t,e){super(t),this.direction=e,this._buffer=new Ad(t.model,t.config.get("typing.undoStep"))}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,(i=>{this._buffer.lock();const r=i.createSelection(t.selection||n.selection),o=t.sequence||1,s=r.isCollapsed;if(r.isCollapsed&&e.modifySelection(r,{direction:this.direction,unit:t.unit}),this._shouldEntireContentBeReplacedWithParagraph(o))return void this._replaceEntireContentWithParagraph(i);if(this._shouldReplaceFirstBlockWithParagraph(r,o))return void this.editor.execute("paragraph",{selection:r});if(r.isCollapsed)return;let a=0;r.getFirstRange().getMinimalFlatRanges().forEach((t=>{a+=dr(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),e.deleteContent(r,{doNotResetEntireContent:s,direction:this.direction}),this._buffer.input(a),i.setSelection(r),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,i=e.schema.getLimitElement(n);if(!n.isCollapsed||!n.containsEntireContent(i))return!1;if(!e.schema.checkChild(i,"paragraph"))return!1;const r=i.getChild(0);return!r||"paragraph"!==r.name}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.document.selection,i=e.schema.getLimitElement(n),r=t.createElement("paragraph");t.remove(t.createRangeIn(i)),t.insert(r,i),t.setSelection(r,0)}_shouldReplaceFirstBlockWithParagraph(t,e){const n=this.editor.model;if(e>1||"backward"!=this.direction)return!1;if(!t.isCollapsed)return!1;const i=t.getFirstPosition(),r=n.schema.getLimitElement(i),o=r.getChild(0);return i.parent==o&&!!t.containsEntireContent(o)&&!!n.schema.checkChild(r,"paragraph")&&"paragraph"!=o.name}}class Ld extends Yo{constructor(t){super(t);const e=t.document;let n=0;function i(t,n,i){const r=new pr(e,"delete",e.selection.getFirstRange());e.fire(r,new ts(e,n,i)),r.stop.called&&t.stop()}e.on("keyup",((t,e)=>{e.keyCode!=Er.delete&&e.keyCode!=Er.backspace||(n=0)})),e.on("keydown",((t,e)=>{const r={};if(e.keyCode==Er.delete)r.direction="forward",r.unit="character";else{if(e.keyCode!=Er.backspace)return;r.direction="backward",r.unit="codePoint"}const o=Lr.isMac?e.altKey:e.ctrlKey;r.unit=o?"word":r.unit,r.sequence=++n,i(t,e.domEvent,r)})),Lr.isAndroid&&e.on("beforeinput",((e,n)=>{if("deleteContentBackward"!=n.domEvent.inputType)return;const r={unit:"codepoint",direction:"backward",sequence:1},o=n.domTarget.ownerDocument.defaultView.getSelection();o.anchorNode==o.focusNode&&o.anchorOffset+1!=o.focusOffset&&(r.selectionToRemove=t.domConverter.domSelectionToView(o)),i(e,n.domEvent,r)}))}observe(){}}class Td extends Jt{static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(Ld);const i=new Cd(t,"forward");if(t.commands.add("deleteForward",i),t.commands.add("forwardDelete",i),t.commands.add("delete",new Cd(t,"backward")),this.listenTo(n,"delete",((n,i)=>{const r={unit:i.unit,sequence:i.sequence};if(i.selectionToRemove){const e=t.model.createSelection(),n=[];for(const e of i.selectionToRemove.getRanges())n.push(t.editing.mapper.toModelRange(e));e.setTo(n),r.selection=e}t.execute("forward"==i.direction?"deleteForward":"delete",r),i.preventDefault(),e.scrollToTheSelection()}),{priority:"low"}),Lr.isAndroid){let t=null;this.listenTo(n,"delete",((e,n)=>{const i=n.domTarget.ownerDocument.defaultView.getSelection();t={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}}),{priority:"lowest"}),this.listenTo(n,"keyup",((e,n)=>{if(t){const e=n.domTarget.ownerDocument.defaultView.getSelection();e.collapse(t.anchorNode,t.anchorOffset),e.extend(t.focusNode,t.focusOffset),t=null}}))}}}class Dd{constructor(){this._stack=[]}add(t,e){const n=this._stack,i=n[0];this._insertDescriptor(t);const r=n[0];i===r||Ed(i,r)||this.fire("change:top",{oldDescriptor:i,newDescriptor:r,writer:e})}remove(t,e){const n=this._stack,i=n[0];this._removeDescriptor(t);const r=n[0];i===r||Ed(i,r)||this.fire("change:top",{oldDescriptor:i,newDescriptor:r,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t.id));if(Ed(t,e[n]))return;n>-1&&e.splice(n,1);let i=0;for(;e[i]&&Pd(e[i],t);)i++;e.splice(i,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t));n>-1&&e.splice(n,1)}}function Ed(t,e){return t&&e&&t.priority==e.priority&&Od(t.classes)==Od(e.classes)}function Pd(t,e){return t.priority>e.priority||!(t.priorityOd(e.classes)}function Od(t){return Array.isArray(t)?t.sort().join(","):t}function Yd(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function Id(t,e,n={}){if(!t.is("containerElement"))throw new l.a("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass("ck-widget",t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=Vd,n.label&&function(t,e,n){n.setCustomProperty("widgetLabel",e,t)}(t,n.label,e),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new Kc;return n.set("content",''),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),Rd(t,e,zd,Nd),t}function zd(t,e,n){if(e.classes&&n.addClass(ei(e.classes),t),e.attributes)for(const i in e.attributes)n.setAttribute(i,e.attributes[i],t)}function Nd(t,e,n){if(e.classes&&n.removeClass(ei(e.classes),t),e.attributes)for(const i in e.attributes)n.removeAttribute(i,t)}function Rd(t,e,n,i){const r=new Dd;r.on("change:top",((e,r)=>{r.oldDescriptor&&i(t,r.oldDescriptor,r.writer),r.newDescriptor&&n(t,r.newDescriptor,r.writer)})),e.setCustomProperty("addHighlight",((t,e,n)=>r.add(e,n)),t),e.setCustomProperty("removeHighlight",((t,e,n)=>r.remove(e,n)),t)}function jd(t){const e=t.getCustomProperty("widgetLabel");return e?"function"==typeof e?e():e:""}function Fd(t,e){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",((n,i,r)=>{e.setAttribute("contenteditable",r?"false":"true",t)})),t.on("change:isFocused",((n,i,r)=>{r?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)})),t}function Hd(t,e){const n=t.getSelectedElement();if(n){const i=Ud(t);if(i)return e.createRange(e.createPositionAt(n,i));if(e.schema.isObject(n)&&!e.schema.isInline(n))return e.createRangeOn(n)}const i=t.getSelectedBlocks().next().value;if(i){if(i.isEmpty)return e.createRange(e.createPositionAt(i,0));const n=e.createPositionAfter(i);return t.focus.isTouching(n)?e.createRange(n):e.createRange(e.createPositionBefore(i))}return e.createRange(t.focus)}function Bd(t,e){const n=new As(wo.window),i=n.getIntersection(t),r=e.height+Ru.arrowVerticalOffset;if(t.top-r>n.top||t.bottom+r',"image/svg+xml").firstChild;class Jd extends Jt{static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Sd,Td]}constructor(t){super(t),this._currentFakeCaretModelElement=null}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",((n,i,r)=>{e.change((t=>{for(const n of e.document.roots)r?t.removeClass("ck-widget__type-around_disabled",n):t.addClass("ck-widget__type-around_disabled",n)})),r||t.model.change((t=>{t.removeSelectionAttribute("widget-type-around")}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableDeleteContentIntegration()}destroy(){this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,i=n.editing.view;n.execute("insertParagraph",{position:n.model.createPositionAt(t,e)}),i.focus(),i.scrollToTheSelection()}_listenToIfEnabled(t,e,n,i){this.listenTo(t,e,((...t)=>{this.isEnabled&&n(...t)}),i)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=Ud(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,i={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,n,r)=>{const o=r.mapper.toViewElement(n.item);Wd(o,n.item,e)&&function(t,e,n){const i=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of qd){const i=new Pc({tag:"div",attributes:{class:["ck","ck-widget__type-around__button","ck-widget__type-around__button_"+n],title:e[n]},children:[t.ownerDocument.importNode(Gd,!0)]});t.appendChild(i.render())}}(n,e),function(t){const e=new Pc({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),i)}(r.writer,i,o)}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,i=e.schema,r=t.editing.view;function o(t){return"ck-widget_type-around_show-fake-caret_"+t}this._listenToIfEnabled(r.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[Yd,"$text"],priority:"high"}),this._listenToIfEnabled(n,"change:range",((e,n)=>{n.directChange&&t.model.change((t=>{t.removeSelectionAttribute("widget-type-around")}))})),this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();e&&Wd(t.editing.mapper.toViewElement(e),e,i)||t.model.change((t=>{t.removeSelectionAttribute("widget-type-around")}))})),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const r=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(r.removeClass(qd.map(o),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!Wd(a,s,i))return;const l=Ud(e.selection);l&&(r.addClass(o(l),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,i)=>{i||t.model.change((t=>{t.removeSelectionAttribute("widget-type-around")}))}))}_handleArrowKeyPress(t,e){const n=this.editor,i=n.model,r=i.document.selection,o=i.schema,s=n.editing.view,a=Nr(e.keyCode,n.locale.contentLanguageDirection),l=s.document.selection.getSelectedElement();let c;Wd(l,n.editing.mapper.toModelElement(l),o)?c=this._handleArrowKeyPressOnSelectedWidget(a):r.isCollapsed&&(c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a)),c&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=Ud(e.document.selection);return e.change((e=>n?n!==(t?"after":"before")&&(e.removeSelectionAttribute("widget-type-around"),!0):(e.setSelectionAttribute("widget-type-around",t?"after":"before"),!0)))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,i=n.schema,r=e.plugins.get("Widget"),o=r._getObjectElementNextToSelection(t);return!!Wd(e.editing.mapper.toViewElement(o),o,i)&&(n.change((e=>{r._setSelectionOverElement(o),e.setSelectionAttribute("widget-type-around",t?"before":"after")})),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,i)=>{const r=i.domTarget.closest(".ck-widget__type-around__button");if(!r)return;const o=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(r),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(r,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,o),i.preventDefault(),n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.model.document.selection,n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,i)=>{if("atTarget"!=n.eventPhase)return;const r=e.getSelectedElement(),o=t.editing.mapper.toViewElement(r),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:Wd(o,r,s)&&(this._insertParagraph(r,i.isSoft?"before":"after"),a=!0),a&&(i.preventDefault(),n.stop())}),{context:Yd})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view,e=[Er.enter,Er.delete,Er.backspace];this._listenToIfEnabled(t.document,"keydown",((t,n)=>{e.includes(n.keyCode)||$d(n)||this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,i=n.schema;this._listenToIfEnabled(e.document,"delete",((e,r)=>{if("atTarget"!=e.eventPhase)return;const o=Ud(n.document.selection);if(!o)return;const s=r.direction,a=n.document.selection.getSelectedElement(),l="forward"==s;if("before"===o===l)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=i.getNearestSelectionRange(n.createPositionAt(a,o),s);if(e)if(e.isCollapsed){const r=n.createSelection(e.start);if(n.modifySelection(r,{direction:s}),r.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const i of e.getAncestors({parentFirst:!0})){if(i.childCount>1||t.isLimit(i))break;n=i}return n}(i,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}else n.change((n=>{n.setSelection(e),t.execute(l?"deleteForward":"delete")}))}r.preventDefault(),e.stop()}),{context:Yd})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[i,r])=>{if(r&&!r.is("documentSelection"))return;const o=Ud(n);return o?(t.stop(),e.change((t=>{const r=n.getSelectedElement(),s=e.createPositionAt(r,o),a=t.createSelection(s),l=e.insertContent(i,a);return t.setSelection(a),l}))):void 0}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[n])=>{n&&!n.is("documentSelection")||Ud(e)&&t.stop()}),{priority:"high"})}}function Zd(t){const e=t.model;return(n,i)=>{const r=i.keyCode==Er.arrowup,o=i.keyCode==Er.arrowdown,s=i.shiftKey,a=e.document.selection;if(!r&&!o)return;const l=o;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,l))return;const c=function(t,e,n){const i=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=Kd(i,t,"forward");if(!n)return null;const r=i.createRange(t,n),o=Qd(i.schema,r,"backward");return o&&t.isBefore(o)?i.createRange(t,o):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=Kd(i,t,"backward");if(!n)return null;const r=i.createRange(n,t),o=Qd(i.schema,r,"forward");return o&&t.isAfter(o)?i.createRange(o,t):null}}(t,a,l);c&&!c.isCollapsed&&function(t,e,n){const i=t.model,r=t.view.domConverter;if(n){const t=i.createSelection(e.start);i.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=i.createRange(t.focus,e.end))}const o=t.mapper.toViewRange(e),s=r.viewRangeToDom(o),a=As.getDomRangeRects(s);let l;for(const t of a)if(void 0!==l){if(Math.round(t.top)>=l)return!1;l=Math.max(l,Math.round(t.bottom))}else l=Math.round(t.bottom);return!0}(t,c,l)&&(e.change((t=>{const n=l?c.end:c.start;if(s){const i=e.createSelection(a.anchor);i.setFocus(n),t.setSelection(i)}else t.setSelection(n)})),n.stop(),i.preventDefault(),i.stopPropagation())}}function Kd(t,e,n){const i=t.schema,r=t.createRangeIn(e.root),o="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of r.getWalker({startPosition:e,direction:n})){if(i.isLimit(s)&&!i.isInline(s))return t;if(a==o&&i.isBlock(s))return null}return null}function Qd(t,e,n){const i="backward"==n?e.end:e.start;if(t.checkChild(i,"$text"))return i;for(const{nextPosition:i}of e.getWalker({direction:n}))if(t.checkChild(i,"$text"))return i}n(65);class th extends Jt{static get pluginName(){return"Widget"}static get requires(){return[Jd,Td]}init(){const t=this.editor,e=t.editing.view,n=e.document;this._previouslySelected=new Set,this.editor.editing.downcastDispatcher.on("selection",((e,n,i)=>{const r=i.writer,o=n.selection;if(o.isCollapsed)return;const s=o.getSelectedElement();if(!s)return;const a=t.editing.mapper.toViewElement(s);Yd(a)&&i.consumable.consume(o,"selection")&&r.setSelection(r.createRangeOn(a),{fake:!0,label:jd(a)})})),this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const i=n.writer,r=i.document.selection;let o=null;for(const t of r.getRanges())for(const e of t){const t=e.item;Yd(t)&&!eh(t,o)&&(i.addClass("ck-widget_selected",t),this._previouslySelected.add(t),o=t)}}),{priority:"low"}),e.addObserver(hd),this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t))),this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[Yd,"$text"]}),this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"}),this.listenTo(n,"arrowKey",Zd(this.editor.editing),{context:"$text"}),this.listenTo(n,"delete",((t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())}),{context:"$root"})}_onMousedown(t,e){const n=this.editor,i=n.editing.view,r=i.document;let o=e.target;if(function(t){for(;t;){if(t.is("editableElement")&&!t.is("rootElement"))return!0;if(Yd(t))return!1;t=t.parent}return!1}(o)){if((Lr.isSafari||Lr.isGecko)&&e.domEvent.detail>=3){const t=n.editing.mapper,i=o.is("attributeElement")?o.findAncestor((t=>!t.is("attributeElement"))):o,r=t.toModelElement(i);e.preventDefault(),this.editor.model.change((t=>{t.setSelection(r,"in")}))}return}if(!Yd(o)&&(o=o.findAncestor(Yd),!o))return;Lr.isAndroid&&e.preventDefault(),r.isFocused||i.focus();const s=n.editing.mapper.toModelElement(o);this._setSelectionOverElement(s)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode,i=this.editor.model,r=i.schema,o=i.document.selection,s=o.getSelectedElement(),a=Nr(n,this.editor.locale.contentLanguageDirection);if(s&&r.isObject(s)){const n=a?o.getLastPosition():o.getFirstPosition(),s=r.getNearestSelectionRange(n,a?"forward":"backward");return void(s&&(i.change((t=>{t.setSelection(s)})),e.preventDefault(),t.stop()))}if(!o.isCollapsed)return;const l=this._getObjectElementNextToSelection(a);l&&r.isObject(l)&&(this._setSelectionOverElement(l),e.preventDefault(),t.stop())}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model,i=n.schema,r=n.document.selection.getSelectedElement();r&&i.isObject(r)&&(e.preventDefault(),t.stop())}_handleDelete(t){if(this.editor.isReadOnly)return;const e=this.editor.model.document.selection;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change((t=>{let i=e.anchor.parent;for(;i.isEmpty;){const e=i;i=e.parent,t.remove(e)}this._setSelectionOverElement(n)})),!0):void 0}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,i=e.document.selection,r=e.createSelection(i);e.modifySelection(r,{direction:t?"forward":"backward"});const o=t?r.focus.nodeBefore:r.focus.nodeAfter;return o&&n.isObject(o)?o:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass("ck-widget_selected",e);this._previouslySelected.clear()}}function eh(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}var nh=function(t,e,n){var i=!0,r=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return _(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),ms(t,e,{leading:i,maxWait:e,trailing:r})};n(67);class ih extends Jt{static get pluginName(){return"DragDrop"}static get requires(){return[yd,th]}init(){const t=this.editor,e=t.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,this._updateDropMarkerThrottled=nh((t=>this._updateDropMarker(t)),40),this._removeDropMarkerDelayed=sh((()=>this._removeDropMarker()),40),this._clearDraggableAttributesDelayed=sh((()=>this._clearDraggableAttributes()),40),e.addObserver(vd),e.addObserver(hd),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDropMarker(),this._setupDraggableAttributeHandling(),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((t,e,n)=>{n||this._finalizeDragging(!1)})),Lr.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._updateDropMarkerThrottled.cancel(),this._removeDropMarkerDelayed.cancel(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const t=this.editor,e=t.model,n=e.document,i=t.editing.view,r=i.document;this.listenTo(r,"dragstart",((i,o)=>{const a=n.selection;if(o.target&&o.target.is("editableElement"))return void o.preventDefault();const l=o.target?ah(o.target):null;if(l){const n=t.editing.mapper.toModelElement(l);this._draggedRange=ba.fromRange(e.createRangeOn(n)),t.plugins.has("WidgetToolbarRepository")&&t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}else if(!r.selection.isCollapsed){const t=r.selection.getSelectedElement();t&&Yd(t)||(this._draggedRange=ba.fromRange(a.getFirstRange()))}if(!this._draggedRange)return void o.preventDefault();this._draggingUid=s(),o.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",o.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const c=e.createSelection(this._draggedRange.toRange()),u=t.data.toView(e.getSelectedContent(c));r.fire("clipboardOutput",{dataTransfer:o.dataTransfer,content:u,method:i.name}),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(r,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&"move"==e.dataTransfer.dropEffect)}),{priority:"low"}),this.listenTo(r,"dragenter",(()=>{this.isEnabled&&i.focus()})),this.listenTo(r,"dragleave",(()=>{this._removeDropMarkerDelayed()})),this.listenTo(r,"dragging",((e,n)=>{if(!this.isEnabled)return void(n.dataTransfer.dropEffect="none");this._removeDropMarkerDelayed.cancel();const i=rh(t,n.targetRanges,n.target);this._draggedRange||(n.dataTransfer.dropEffect="copy"),Lr.isGecko||("copy"==n.dataTransfer.effectAllowed?n.dataTransfer.dropEffect="copy":["all","copyMove"].includes(n.dataTransfer.effectAllowed)&&(n.dataTransfer.dropEffect="move")),i&&this._updateDropMarkerThrottled(i)}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"clipboardInput",((e,n)=>{if("drop"!=n.method)return;const i=rh(t,n.targetRanges,n.target);return this._removeDropMarker(),i?(this._draggedRange&&this._draggingUid!=n.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid=""),"move"==oh(n.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(i,!0)?(this._finalizeDragging(!1),void e.stop()):void(n.targetRanges=[t.editing.mapper.toViewRange(i)])):(this._finalizeDragging(!1),void e.stop())}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(yd);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"}),t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n="move"==oh(e.dataTransfer),i=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(i&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor,e=t.editing.view,n=e.document;this.listenTo(n,"mousedown",((i,r)=>{if(Lr.isAndroid||!r)return;this._clearDraggableAttributesDelayed.cancel();let o=ah(r.target);if(Lr.isBlink&&!t.isReadOnly&&!o&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();t&&Yd(t)||(o=n.selection.editableElement)}o&&(e.change((t=>{t.setAttribute("draggable","true",o)})),this._draggableElement=t.editing.mapper.toModelElement(o))})),this.listenTo(n,"mouseup",(()=>{Lr.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_setupDropMarker(){const t=this.editor;t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text"))return n.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);return e.innerHTML="⁠⁠",e}))}})}_updateDropMarker(t){const e=this.editor,n=e.model.markers;e.model.change((e=>{n.has("drop-target")?n.get("drop-target").getRange().isEqual(t)||e.updateMarker("drop-target",{range:t}):e.addMarker("drop-target",{range:t,usingOperation:!1,affectsData:!1})}))}_removeDropMarker(){const t=this.editor.model;this._removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),t.markers.has("drop-target")&&t.change((t=>{t.removeMarker("drop-target")}))}_finalizeDragging(t){const e=this.editor,n=e.model;this._removeDropMarker(),this._clearDraggableAttributes(),e.plugins.has("WidgetToolbarRepository")&&e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),this._draggingUid="",this._draggedRange&&(t&&this.isEnabled&&n.deleteContent(n.createSelection(this._draggedRange),{doNotAutoparagraph:!0}),this._draggedRange.detach(),this._draggedRange=null)}}function rh(t,e,n){const i=t.model,r=t.editing.mapper;let o=null;const s=e?e[0].start:null;if(n.is("uiElement")&&(n=n.parent),o=function(t,e){const n=t.model,i=t.editing.mapper;if(Yd(e))return n.createRangeOn(i.toModelElement(e));if(!e.is("editableElement")){const t=e.findAncestor((t=>Yd(t)||t.is("editableElement")));if(Yd(t))return n.createRangeOn(i.toModelElement(t))}return null}(t,n),o)return o;const a=function(t,e){const n=t.editing.mapper,i=t.editing.view,r=n.toModelElement(e);if(r)return r;const o=i.createPositionBefore(e),s=n.findMappedViewAncestor(o);return n.toModelElement(s)}(t,n),l=s?r.toModelPosition(s):null;return l?(o=function(t,e,n){const i=t.model;if(!i.schema.checkChild(n,"$block"))return null;const r=i.createPositionAt(n,0),o=e.path.slice(0,r.path.length),s=i.createPositionFromPath(e.root,o).nodeAfter;return s&&i.schema.isObject(s)?i.createRangeOn(s):null}(t,l,a),o||(o=i.schema.getNearestSelectionRange(l,Lr.isGecko?"forward":"backward"),o||function(t,e){const n=t.model;for(;e;){if(n.schema.isObject(e))return n.createRangeOn(e);e=e.parent}}(t,l.parent))):function(t,e){const n=t.model,i=n.schema,r=n.createPositionAt(e,0);return i.getNearestSelectionRange(r,"forward")}(t,a)}function oh(t){return Lr.isGecko?t.dropEffect:["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function sh(t,e){let n;function i(...r){i.cancel(),n=setTimeout((()=>t(...r)),e)}return i.cancel=()=>{clearTimeout(n)},i}function ah(t){if(t.is("editableElement"))return null;if(t.hasClass("ck-widget__selection-handle"))return t.findAncestor(Yd);if(Yd(t))return t;const e=t.findAncestor((t=>Yd(t)||t.is("editableElement")));return Yd(e)?e:null}class lh extends Jt{static get pluginName(){return"PastePlainText"}static get requires(){return[yd]}init(){const t=this.editor,e=t.model,n=t.editing.view,i=n.document,r=e.document.selection;let o=!1;n.addObserver(vd),this.listenTo(i,"keydown",((t,e)=>{o=e.shiftKey})),t.plugins.get(yd).on("contentInsertion",((t,n)=>{(o||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);return!e.isObject(n)&&0==[...n.getAttributeKeys()].length}(n.content,e.schema))&&e.change((t=>{const i=Array.from(r.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));r.isCollapsed||e.deleteContent(r,{doNotAutoparagraph:!0}),i.push(...r.getAttributes());const o=t.createRangeIn(n.content);for(const e of o.getItems())e.is("$textProxy")&&t.setAttributes(i,e)}))}))}}class ch extends Jt{static get pluginName(){return"Clipboard"}static get requires(){return[yd,ih,lh]}}class uh extends Kt{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n){const i=n.isCollapsed,r=n.getFirstRange(),o=r.start.parent,s=r.end.parent,a=o==s;if(i){const i=wd(t.schema,n.getAttributes());dh(t,e,r.end),e.removeSelectionAttribute(n.getAttributeKeys()),e.setSelectionAttribute(i)}else{const i=!(r.start.isAtStart&&r.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:i}),a?dh(t,e,n.focus):i&&e.setSelection(s,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})}))}refresh(){const t=this.editor.model,e=t.document;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const i=e.getFirstRange(),r=i.start.parent,o=i.end.parent;return!hh(r,t)&&!hh(o,t)||r===o}(t.schema,e.selection)}}function dh(t,e,n){const i=e.createElement("softBreak");t.insertContent(i,n),e.setSelection(i,"after")}function hh(t,e){return!t.is("rootElement")&&(e.isLimit(t)||hh(t.parent,e))}class fh extends Jt{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.model.schema,n=t.conversion,i=t.editing.view,r=i.document;e.register("softBreak",{allowWhere:"$text",isInline:!0}),n.for("upcast").elementToElement({model:"softBreak",view:"br"}),n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")}),i.addObserver(Md),t.commands.add("shiftEnter",new uh(t)),this.listenTo(r,"enter",((e,n)=>{n.preventDefault(),n.isSoft&&(t.execute("shiftEnter"),i.scrollToTheSelection())}),{priority:"low"})}}class ph extends Kt{execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!mh(t.schema,n))do{if(n=n.parent,!n)return}while(!mh(t.schema,n));t.change((t=>{t.setSelection(n,"in")}))}}function mh(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const gh=Yr("Ctrl+A");class bh extends Jt{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.editing.view.document;t.commands.add("selectAll",new ph(t)),this.listenTo(e,"keydown",((e,n)=>{Or(n)===gh&&(t.execute("selectAll"),n.preventDefault())}))}}class vh extends Jt{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(e=>{const n=t.commands.get("selectAll"),i=new tu(e),r=e.t;return i.set({label:r("Select all"),icon:'',keystroke:"Ctrl+A",tooltip:!0}),i.bind("isOn","isEnabled").to(n,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),i}))}}class _h extends Jt{static get requires(){return[bh,vh]}static get pluginName(){return"SelectAll"}}class yh extends Kt{constructor(t,e){super(t),this._buffer=new Ad(t.model,e),this._batches=new WeakSet}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,i=t.text||"",r=i.length,o=t.range?e.createSelection(t.range):n.selection,s=t.resultRange;e.enqueueChange(this._buffer.batch,(t=>{this._buffer.lock(),this._batches.add(this._buffer.batch),e.deleteContent(o),i&&e.insertContent(t.createText(i,n.selection.getAttributes()),o),s?t.setSelection(s):o.is("documentSelection")||t.setSelection(o),this._buffer.unlock(),this._buffer.input(r)}))}}function wh(t){if(t.newChildren.length-t.oldChildren.length!=1)return;const e=function(t,e){const n=[];let i,r=0;return t.forEach((t=>{"equal"==t?(o(),r++):"insert"==t?(s("insert")?i.values.push(e[r]):(o(),i={type:"insert",index:r,values:[e[r]]}),r++):s("delete")?i.howMany++:(o(),i={type:"delete",index:r,howMany:1})})),o(),n;function o(){i&&(n.push(i),i=null)}function s(t){return i&&i.type==t}}(fo(t.oldChildren,t.newChildren,xh),t.newChildren);if(e.length>1)return;const n=e[0];return n.values[0]&&n.values[0].is("$text")?n:void 0}function xh(t,e){return t&&t.is("$text")&&e&&e.is("$text")?t.data===e.data:t===e}class kh{constructor(t){this.editor=t,this.editing=this.editor.editing}handle(t,e){if(function(t){if(0==t.length)return!1;for(const e of t)if("children"===e.type&&!wh(e))return!0;return!1}(t))this._handleContainerChildrenMutations(t,e);else for(const n of t)this._handleTextMutation(n,e),this._handleTextNodeInsertion(n)}_handleContainerChildrenMutations(t,e){const n=function(t){const e=t.map((t=>t.node)).reduce(((t,e)=>t.getCommonAncestor(e,{includeSelf:!0})));if(e)return e.getAncestors({includeSelf:!0,parentFirst:!0}).find((t=>t.is("containerElement")||t.is("rootElement")))}(t);if(!n)return;const i=this.editor.editing.view.domConverter.mapViewToDom(n),r=new Co(this.editor.editing.view.document),o=this.editor.data.toModel(r.domToView(i)).getChild(0),s=this.editor.editing.mapper.toModelElement(n);if(!s)return;const a=Array.from(o.getChildren()),l=Array.from(s.getChildren()),c=a[a.length-1],u=l[l.length-1],d=c&&c.is("element","softBreak"),h=u&&!u.is("element","softBreak");d&&h&&a.pop();const f=this.editor.model.schema;if(!Mh(a,f)||!Mh(l,f))return;const p=a.map((t=>t.is("$text")?t.data:"@")).join("").replace(/\u00A0/g," "),m=l.map((t=>t.is("$text")?t.data:"@")).join("").replace(/\u00A0/g," ");if(m===p)return;const g=fo(m,p),{firstChangeAt:b,insertions:v,deletions:_}=Sh(g);let y=null;e&&(y=this.editing.mapper.toModelRange(e.getFirstRange()));const w=p.substr(b,v),x=this.editor.model.createRange(this.editor.model.createPositionAt(s,b),this.editor.model.createPositionAt(s,b+_));this.editor.execute("input",{text:w,range:x,resultRange:y})}_handleTextMutation(t,e){if("text"!=t.type)return;const n=t.newText.replace(/\u00A0/g," "),i=t.oldText.replace(/\u00A0/g," ");if(i===n)return;const r=fo(i,n),{firstChangeAt:o,insertions:s,deletions:a}=Sh(r);let l=null;e&&(l=this.editing.mapper.toModelRange(e.getFirstRange()));const c=this.editing.view.createPositionAt(t.node,o),u=this.editing.mapper.toModelPosition(c),d=this.editor.model.createRange(u,u.getShiftedBy(a)),h=n.substr(o,s);this.editor.execute("input",{text:h,range:d,resultRange:l})}_handleTextNodeInsertion(t){if("children"!=t.type)return;const e=wh(t),n=this.editing.view.createPositionAt(t.node,e.index),i=this.editing.mapper.toModelPosition(n),r=e.values[0].data;this.editor.execute("input",{text:r.replace(/\u00A0/g," "),range:this.editor.model.createRange(i)})}}function Mh(t,e){return t.every((t=>e.isInline(t)))}function Sh(t){let e=null,n=null;for(let i=0;i{n.deleteContent(n.document.selection)})),t.unlock()}Lr.isAndroid?i.document.on("beforeinput",((t,e)=>o(e)),{priority:"lowest"}):i.document.on("keydown",((t,e)=>o(e)),{priority:"lowest"}),i.document.on("compositionstart",(function(){const t=n.document,e=1!==t.selection.rangeCount||t.selection.getFirstRange().isFlat;t.selection.isCollapsed||e||s()}),{priority:"lowest"}),i.document.on("compositionend",(()=>{e=n.createSelection(n.document.selection)}),{priority:"lowest"})}(t),function(t){t.editing.view.document.on("mutations",((e,n,i)=>{new kh(t).handle(n,i)}))}(t)}isInput(t){return this.editor.commands.get("input")._batches.has(t)}}class Ch extends Jt{static get requires(){return[Ah,Td]}static get pluginName(){return"Typing"}}function Lh(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,i)=>i.is("$text")||i.is("$textProxy")?t+i.data:(n=e.createPositionAfter(i),"")),""),range:e.createRange(n,t.end)}}class Th{constructor(t,e){this.model=t,this.testCallback=e,this.hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(t.document.selection),this.stopListening(t.document))})),this._startListening()}_startListening(){const t=this.model.document;this.listenTo(t.selection,"change:range",((e,{directChange:n})=>{n&&(t.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this.hasMatch=!1))})),this.listenTo(t,"change:data",((t,e)=>{"transparent"!=e.type&&this._evaluateTextBeforeSelection("data",{batch:e})}))}_evaluateTextBeforeSelection(t,e={}){const n=this.model,i=n.document.selection,r=n.createRange(n.createPositionAt(i.focus.parent,0),i.focus),{text:o,range:s}=Lh(r,n),a=this.testCallback(o);if(!a&&this.hasMatch&&this.fire("unmatched"),this.hasMatch=!!a,a){const n=Object.assign(e,{text:o,range:s});"object"==typeof a&&Object.assign(n,a),this.fire("matched:"+t,n)}}}Gt(Th,Vt);class Dh extends Jt{static get pluginName(){return"TwoStepCaretMovement"}constructor(t){super(t),this.attributes=new Set,this._overrideUid=null}init(){const t=this.editor,e=t.model,n=t.editing.view,i=t.locale,r=e.document.selection;this.listenTo(n.document,"arrowKey",((t,e)=>{if(!r.isCollapsed)return;if(e.shiftKey||e.altKey||e.ctrlKey)return;const n=e.keyCode==Er.arrowright,o=e.keyCode==Er.arrowleft;if(!n&&!o)return;const s=i.contentLanguageDirection;let a=!1;a="ltr"===s&&n||"rtl"===s&&o?this._handleForwardMovement(e):this._handleBackwardMovement(e),!0===a&&t.stop()}),{context:"$text",priority:"highest"}),this._isNextGravityRestorationSkipped=!1,this.listenTo(r,"change:range",((t,e)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!e.directChange&&Yh(r.getFirstPosition(),this.attributes)||this._restoreGravity())}))}registerAttribute(t){this.attributes.add(t)}_handleForwardMovement(t){const e=this.attributes,n=this.editor.model.document.selection,i=n.getFirstPosition();return!this._isGravityOverridden&&(!i.isAtStart||!Eh(n,e))&&(Yh(i,e)?(Oh(t),this._overrideGravity(),!0):void 0)}_handleBackwardMovement(t){const e=this.attributes,n=this.editor.model,i=n.document.selection,r=i.getFirstPosition();return this._isGravityOverridden?(Oh(t),this._restoreGravity(),Ph(n,e,r),!0):r.isAtStart?!!Eh(i,e)&&(Oh(t),Ph(n,e,r),!0):function(t,e){return Yh(t.getShiftedBy(-1),e)}(r,e)?r.isAtEnd&&!Eh(i,e)&&Yh(r,e)?(Oh(t),Ph(n,e,r),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1):void 0}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((t=>t.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((t=>{t.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function Eh(t,e){for(const n of e)if(t.hasAttribute(n))return!0;return!1}function Ph(t,e,n){const i=n.nodeBefore;t.change((t=>{i?t.setSelectionAttribute(i.getAttributes()):t.removeSelectionAttribute(e)}))}function Oh(t){t.preventDefault()}function Yh(t,e){const{nodeBefore:n,nodeAfter:i}=t;for(const t of e){const e=n?n.getAttribute(t):void 0;if((i?i.getAttribute(t):void 0)!==e)return!0}return!1}var Ih=/[\\^$.*+?()[\]{}|]/g,zh=RegExp(Ih.source),Nh=function(t){return(t=Di(t))&&zh.test(t)?t.replace(Ih,"\\$&"):t};const Rh={copyright:{from:"(c)",to:"©"},registeredTrademark:{from:"(r)",to:"®"},trademark:{from:"(tm)",to:"™"},oneHalf:{from:"1/2",to:"½"},oneThird:{from:"1/3",to:"⅓"},twoThirds:{from:"2/3",to:"⅔"},oneForth:{from:"1/4",to:"¼"},threeQuarters:{from:"3/4",to:"¾"},lessThanOrEqual:{from:"<=",to:"≤"},greaterThanOrEqual:{from:">=",to:"≥"},notEqual:{from:"!=",to:"≠"},arrowLeft:{from:"<-",to:"←"},arrowRight:{from:"->",to:"→"},horizontalEllipsis:{from:"...",to:"…"},enDash:{from:/(^| )(--)( )$/,to:[null,"–",null]},emDash:{from:/(^| )(---)( )$/,to:[null,"—",null]},quotesPrimary:{from:Wh('"'),to:[null,"“",null,"”"]},quotesSecondary:{from:Wh("'"),to:[null,"‘",null,"’"]},quotesPrimaryEnGb:{from:Wh("'"),to:[null,"‘",null,"’"]},quotesSecondaryEnGb:{from:Wh('"'),to:[null,"“",null,"”"]},quotesPrimaryPl:{from:Wh('"'),to:[null,"„",null,"”"]},quotesSecondaryPl:{from:Wh("'"),to:[null,"‚",null,"’"]}},jh={symbols:["copyright","registeredTrademark","trademark"],mathematical:["oneHalf","oneThird","twoThirds","oneForth","threeQuarters","lessThanOrEqual","greaterThanOrEqual","notEqual","arrowLeft","arrowRight"],typography:["horizontalEllipsis","enDash","emDash"],quotes:["quotesPrimary","quotesSecondary"]},Fh=["symbols","mathematical","typography","quotes"];function Hh(t){return"string"==typeof t?new RegExp(`(${Nh(t)})$`):t}function Bh(t){return"string"==typeof t?()=>[t]:t instanceof Array?()=>t:t}function Vh(t){return(t.textNode?t.textNode:t.nodeAfter).getAttributes()}function Wh(t){return new RegExp(`(^|\\s)(${t})([^${t}]*)(${t})$`)}function Uh(t,e,n,i){return i.createRange(Xh(t,e,n,!0,i),Xh(t,e,n,!1,i))}function Xh(t,e,n,i,r){let o=t.textNode||(i?t.nodeBefore:t.nodeAfter),s=null;for(;o&&o.getAttribute(e)==n;)s=o,o=i?o.previousSibling:o.nextSibling;return s?r.createPositionAt(s,i?"before":"after"):t}class $h extends Kt{constructor(t){super(t),this._stack=[],this._createdBatches=new WeakSet,this.refresh(),this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];n.batchType||(n.batchType="transparent")}),{priority:"high"}),this.listenTo(t.data,"set",((t,e)=>{"transparent"===e[1].batchType&&this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const i=this.editor.model,r=i.document,o=[],s=t.map((t=>t.getTransformedByOperations(n))),a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=r.graveyard)).filter((t=>!Gh(t,a)));e.length&&(qh(e),o.push(e[0]))}o.length&&i.change((t=>{t.setSelection(o,{backward:e})}))}_undo(t,e){const n=this.editor.model,i=n.document;this._createdBatches.add(e);const r=t.operations.slice().filter((t=>t.isDocumentOperation));r.reverse();for(const t of r){const r=t.baseVersion+1,o=Array.from(i.history.getOperations(r)),s=rd([t.getReversed()],o,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(const r of s)e.addOperation(r),n.applyOperation(r),i.history.setOperationAsUndone(t,r)}}}function qh(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,!0)))}class Jh extends $h{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1,n=this._stack.splice(e,1)[0],i=this.editor.model.createBatch("transparent");this.editor.model.enqueueChange(i,(()=>{this._undo(n.batch,i);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t),this.fire("revert",n.batch,i)})),this.refresh()}}class Zh extends $h{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch("transparent");this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,i=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,i),this._undo(t.batch,e)})),this.refresh()}}class Kh extends Jt{static get pluginName(){return"UndoEditing"}constructor(t){super(t),this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new Jh(t),this._redoCommand=new Zh(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const i=n.batch,r=this._redoCommand._createdBatches.has(i),o=this._undoCommand._createdBatches.has(i);this._batchRegistry.has(i)||"transparent"==i.type&&!r&&!o||(r?this._undoCommand.addBatch(i):o||(this._undoCommand.addBatch(i),this._redoCommand.clearStack()),this._batchRegistry.add(i))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)})),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo")}}var Qh='',tf='';class ef extends Jt{static get pluginName(){return"UndoUI"}init(){const t=this.editor,e=t.locale,n=t.t,i="ltr"==e.uiLanguageDirection?Qh:tf,r="ltr"==e.uiLanguageDirection?tf:Qh;this._addButton("undo",n("Undo"),"CTRL+Z",i),this._addButton("redo",n("Redo"),"CTRL+Y",r)}_addButton(t,e,n,i){const r=this.editor;r.ui.componentFactory.add(t,(o=>{const s=r.commands.get(t),a=new tu(o);return a.set({label:e,icon:i,keystroke:n,tooltip:!0}),a.bind("isEnabled").to(s,"isEnabled"),this.listenTo(a,"execute",(()=>{r.execute(t),r.editing.view.focus()})),a}))}}class nf extends Jt{static get requires(){return[Kh,ef]}static get pluginName(){return"Undo"}}class rf{constructor(){const t=new window.FileReader;this._reader=t,this._data=void 0,this.set("loaded",0),t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;return this.total=t.size,new Promise(((n,i)=>{e.onload=()=>{const t=e.result;this._data=t,n(t)},e.onerror=()=>{i("error")},e.onabort=()=>{i("aborted")},this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}Gt(rf,Vt);class of extends Jt{static get pluginName(){return"FileRepository"}static get requires(){return[Sc]}init(){this.loaders=new Qn,this.loaders.on("add",(()=>this._updatePendingAction())),this.loaders.on("remove",(()=>this._updatePendingAction())),this._loadersMap=new Map,this._pendingAction=null,this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter)return Object(l.b)("filerepository-no-upload-adapter"),null;const e=new sf(Promise.resolve(t),this.createUploadAdapter);return this.loaders.add(e),this._loadersMap.set(t,e),t instanceof Promise&&e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{})),e.on("change:uploaded",(()=>{let t=0;for(const e of this.loaders)t+=e.uploaded;this.uploaded=t})),e.on("change:uploadTotal",(()=>{let t=0;for(const e of this.loaders)e.uploadTotal&&(t+=e.uploadTotal);this.uploadTotal=t})),e}destroyLoader(t){const e=t instanceof sf?t:this.getLoader(t);e._destroy(),this.loaders.remove(e),this._loadersMap.forEach(((t,n)=>{t===e&&this._loadersMap.delete(n)}))}_updatePendingAction(){const t=this.editor.plugins.get(Sc);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t,n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else t.remove(this._pendingAction),this._pendingAction=null}}Gt(of,Vt);class sf{constructor(t,e){this.id=s(),this._filePromiseWrapper=this._createFilePromiseWrapper(t),this._adapter=e(this),this._reader=new rf,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new l.a("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((t=>this._reader.read(t))).then((t=>{if("reading"!==this.status)throw this.status;return this.status="idle",t})).catch((t=>{if("aborted"===t)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:t}))}upload(){if("idle"!=this.status)throw new l.a("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>this._adapter.upload())).then((t=>(this.uploadResponse=t,this.status="idle",t))).catch((t=>{if("aborted"===this.status)throw"aborted";throw this.status="error",t}))}abort(){const t=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==t?this._reader.abort():"uploading"==t&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(t){const e={};return e.promise=new Promise(((n,i)=>{e.rejecter=i,e.isFulfilled=!1,t.then((t=>{e.isFulfilled=!0,n(t)})).catch((t=>{e.isFulfilled=!0,i(t)}))})),e}}Gt(sf,Vt);class af extends Ec{constructor(t){super(t),this.buttonView=new tu(t),this._fileInputView=new lf(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",(()=>{this._fileInputView.open()}))}focus(){this.buttonView.focus()}}class lf extends Ec{constructor(t){super(t),this.set("acceptedType"),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}function cf(){let t=function(t){t=t.toLowerCase();const e=document.cookie.split(";");for(const n of e){const e=n.split("=");if(decodeURIComponent(e[0].trim().toLowerCase())===t)return decodeURIComponent(e[1])}return null}("ckCsrfToken");var e,n;return t&&40==t.length||(t=function(t){let e="";const n=new Uint8Array(40);window.crypto.getRandomValues(n);for(let t=0;t.5?i.toUpperCase():i}return e}(),e="ckCsrfToken",n=t,document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(n)+";path=/"),t}class uf{constructor(t,e,n){this.loader=t,this.url=e,this.t=n}upload(){return this.loader.file.then((t=>new Promise(((e,n)=>{this._initRequest(),this._initListeners(e,n,t),this._sendRequest(t)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.url,!0),t.responseType="json"}_initListeners(t,e,n){const i=this.xhr,r=this.loader,o=(0,this.t)("Cannot upload file:")+` ${n.name}.`;i.addEventListener("error",(()=>e(o))),i.addEventListener("abort",(()=>e())),i.addEventListener("load",(()=>{const n=i.response;if(!n||!n.uploaded)return e(n&&n.error&&n.error.message?n.error.message:o);t({default:n.url})})),i.upload&&i.upload.addEventListener("progress",(t=>{t.lengthComputable&&(r.uploadTotal=t.total,r.uploaded=t.loaded)}))}_sendRequest(t){const e=new FormData;e.append("upload",t),e.append("ckCsrfToken",cf()),this.xhr.send(e)}}function df(t,e,n,i){let r,o=null;"function"==typeof i?r=i:(o=t.commands.get(i),r=()=>{t.execute(i)}),t.model.document.on("change:data",((s,a)=>{if(o&&!o.isEnabled||!e.isEnabled)return;const l=Ps(t.model.document.selection.getRanges());if(!l.isCollapsed)return;if("transparent"==a.type)return;const c=Array.from(t.model.document.differ.getChanges()),u=c[0];if(1!=c.length||"insert"!==u.type||"$text"!=u.name||1!=u.length)return;const d=u.position.parent;if(d.is("element","codeBlock"))return;if(d.is("element","listItem")&&"function"!=typeof i&&!["numberedList","bulletedList","todoList"].includes(i))return;if(o&&!0===o.value)return;const h=d.getChild(0),f=t.model.createRangeOn(h);if(!f.containsRange(l)&&!l.end.isEqual(f.end))return;const p=n.exec(h.data.substr(0,l.end.offset));p&&t.model.enqueueChange((e=>{const n=e.createPositionAt(d,0),i=e.createPositionAt(d,p[0].length),o=new ba(n,i);if(!1!==r({match:p})){e.remove(o);const n=t.model.document.selection.getFirstRange(),i=e.createRangeIn(d);!d.isEmpty||i.isEqual(n)||i.containsRange(n,!0)||e.remove(d)}o.detach()}))}))}function hf(t,e,n,i){let r,o;n instanceof RegExp?r=n:o=n,o=o||(t=>{let e;const n=[],i=[];for(;null!==(e=r.exec(t))&&!(e&&e.length<4);){let{index:t,1:r,2:o,3:s}=e;const a=r+o+s;t+=e[0].length-a.length;const l=[t,t+r.length],c=[t+r.length+o.length,t+r.length+o.length+s.length];n.push(l),n.push(c),i.push([t+r.length,t+r.length+o.length])}return{remove:n,format:i}}),t.model.document.on("change:data",((n,r)=>{if("transparent"==r.type||!e.isEnabled)return;const s=t.model,a=s.document.selection;if(!a.isCollapsed)return;const l=Array.from(s.document.differ.getChanges()),c=l[0];if(1!=l.length||"insert"!==c.type||"$text"!=c.name||1!=c.length)return;const u=a.focus,d=u.parent,{text:h,range:f}=function(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,i)=>!i.is("$text")&&!i.is("$textProxy")||i.getAttribute("code")?(n=e.createPositionAfter(i),""):t+i.data),""),range:e.createRange(n,t.end)}}(s.createRange(s.createPositionAt(d,0),u),s),p=o(h),m=ff(f.start,p.format,s),g=ff(f.start,p.remove,s);m.length&&g.length&&s.enqueueChange((t=>{if(!1!==i(t,m))for(const e of g.reverse())t.remove(e)}))}))}function ff(t,e,n){return e.filter((t=>void 0!==t[0]&&void 0!==t[1])).map((e=>n.createRange(t.getShiftedBy(e[0]),t.getShiftedBy(e[1]))))}function pf(t,e){return(n,i)=>{if(!t.commands.get(e).isEnabled)return!1;const r=t.model.schema.getValidRanges(i,e);for(const t of r)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}class mf extends Kt{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,i=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(n.isCollapsed)i?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const r=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of r)i?t.setAttribute(this.attributeKey,i,e):t.removeAttribute(this.attributeKey,e)}}))}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const t of n.getRanges())for(const n of t.getItems())if(e.checkAttribute(n,this.attributeKey))return n.hasAttribute(this.attributeKey);return!1}}class gf extends Jt{static get pluginName(){return"BoldEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"bold"}),t.model.schema.setAttributeProperties("bold",{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:"bold",view:"strong",upcastAlso:["b",t=>{const e=t.getStyle("font-weight");return e?"bold"==e||Number(e)>=600?{name:!0,styles:["font-weight"]}:void 0:null}]}),t.commands.add("bold",new mf(t,"bold")),t.keystrokes.set("CTRL+B","bold")}}class bf extends Jt{static get pluginName(){return"BoldUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("bold",(n=>{const i=t.commands.get("bold"),r=new tu(n);return r.set({label:e("Bold"),icon:'',keystroke:"CTRL+B",tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(r,"execute",(()=>{t.execute("bold"),t.editing.view.focus()})),r}))}}class vf extends Jt{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"italic"}),t.model.schema.setAttributeProperties("italic",{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:"italic",view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add("italic",new mf(t,"italic")),t.keystrokes.set("CTRL+I","italic")}}class _f extends Jt{static get pluginName(){return"ItalicUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("italic",(n=>{const i=t.commands.get("italic"),r=new tu(n);return r.set({label:e("Italic"),icon:'',keystroke:"CTRL+I",tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(r,"execute",(()=>{t.execute("italic"),t.editing.view.focus()})),r}))}}class yf extends Kt{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,i=e.document.selection,r=Array.from(i.getSelectedBlocks()),o=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(o){const e=r.filter((t=>wf(t)||kf(n,t)));this._applyQuote(t,e)}else this._removeQuote(t,r.filter(wf))}))}_getValue(){const t=Ps(this.editor.model.document.selection.getSelectedBlocks());return!(!t||!wf(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.document.selection,e=this.editor.model.schema,n=Ps(t.getSelectedBlocks());return!!n&&kf(e,n)}_removeQuote(t,e){xf(t,e).reverse().forEach((e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)}))}_applyQuote(t,e){const n=[];xf(t,e).reverse().forEach((e=>{let i=wf(e.start);i||(i=t.createElement("blockQuote"),t.wrap(e,i)),n.push(i)})),n.reverse().reduce(((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n))}}function wf(t){return"blockQuote"==t.parent.name?t.parent:null}function xf(t,e){let n,i=0;const r=[];for(;i{const i=t.model.document.differ.getChanges();for(const t of i)if("insert"==t.type){const i=t.position.nodeAfter;if(!i)continue;if(i.is("element","blockQuote")&&i.isEmpty)return n.remove(i),!0;if(i.is("element","blockQuote")&&!e.checkChild(t.position,i))return n.unwrap(i),!0;if(i.is("element")){const t=n.createRangeIn(i);for(const i of t.getItems())if(i.is("element","blockQuote")&&!e.checkChild(n.createPositionBefore(i),i))return n.unwrap(i),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("element","blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1}));const n=this.editor.editing.view.document,i=t.model.document.selection,r=t.commands.get("blockQuote");this.listenTo(n,"enter",((e,n)=>{i.isCollapsed&&r.value&&i.getLastPosition().parent.isEmpty&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"}),this.listenTo(n,"delete",((e,n)=>{if("backward"!=n.direction||!i.isCollapsed||!r.value)return;const o=i.getLastPosition().parent;o.isEmpty&&!o.previousSibling&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"})}}n(69);class Sf extends Jt{static get pluginName(){return"BlockQuoteUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("blockQuote",(n=>{const i=t.commands.get("blockQuote"),r=new tu(n);return r.set({label:e("Block quote"),icon:Ac.quote,tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(r,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),r}))}}class Af extends Jt{static get pluginName(){return"CKFinderUI"}init(){const t=this.editor,e=t.ui.componentFactory,n=t.t;e.add("ckfinder",(e=>{const i=t.commands.get("ckfinder"),r=new tu(e);return r.set({label:n("Insert image or file"),icon:'',tooltip:!0}),r.bind("isEnabled").to(i),r.on("execute",(()=>{t.execute("ckfinder"),t.editing.view.focus()})),r}))}}class Cf extends Kt{constructor(t){super(t),this.stopListening(this.editor.model.document,"change"),this.listenTo(this.editor.model.document,"change",(()=>this.refresh()),{priority:"low"})}refresh(){const t=this.editor.commands.get("insertImage"),e=this.editor.commands.get("link");this.isEnabled=t.isEnabled||e.isEnabled}execute(){const t=this.editor,e=this.editor.config.get("ckfinder.openerMethod")||"modal";if("popup"!=e&&"modal"!=e)throw new l.a("ckfinder-unknown-openermethod",t);const n=this.editor.config.get("ckfinder.options")||{};n.chooseFiles=!0;const i=n.onInit;n.language||(n.language=t.locale.uiLanguage),n.onInit=e=>{i&&i(e),e.on("files:choose",(n=>{const i=n.data.files.toArray(),r=i.filter((t=>!t.isImage())),o=i.filter((t=>t.isImage()));for(const e of r)t.execute("link",e.getUrl());const s=[];for(const t of o){const n=t.getUrl();s.push(n||e.request("file:getProxyUrl",{file:t}))}s.length&&Lf(t,s)})),e.on("file:choose:resizedImage",(e=>{const n=e.data.resizedUrl;if(n)Lf(t,[n]);else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("Could not obtain resized image URL."),{title:n("Selecting resized image failed"),namespace:"ckfinder"})}}))},window.CKFinder[e](n)}}function Lf(t,e){if(t.commands.get("insertImage").isEnabled)t.execute("insertImage",{source:e});else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("Could not insert image at the current position."),{title:n("Inserting image failed"),namespace:"ckfinder"})}}class Tf extends Jt{static get pluginName(){return"CKFinderEditing"}static get requires(){return[Yu,"LinkEditing"]}init(){const t=this.editor;if(!t.plugins.has("ImageBlockEditing")&&!t.plugins.has("ImageInlineEditing"))throw new l.a("ckfinder-missing-image-plugin",t);t.commands.add("ckfinder",new Cf(t))}}class Df extends Jt{static get pluginName(){return"CloudServicesUploadAdapter"}static get requires(){return["CloudServices",of]}init(){const t=this.editor,e=t.plugins.get("CloudServices"),n=e.token,i=e.uploadUrl;n&&(this._uploadGateway=t.plugins.get("CloudServicesCore").createUploadGateway(n,i),t.plugins.get(of).createUploadAdapter=t=>new Ef(this._uploadGateway,t))}}class Ef{constructor(t,e){this.uploadGateway=t,this.loader=e}upload(){return this.loader.file.then((t=>(this.fileUploader=this.uploadGateway.upload(t),this.fileUploader.on("progress",((t,e)=>{this.loader.uploadTotal=e.total,this.loader.uploaded=e.uploaded})),this.fileUploader.send())))}abort(){this.fileUploader.abort()}}class Pf extends Kt{refresh(){const t=this.editor.model,e=Ps(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&Of(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document;e.change((i=>{const r=(t.selection||n.selection).getSelectedBlocks();for(const t of r)!t.is("element","paragraph")&&Of(t,e.schema)&&i.rename(t,"paragraph")}))}}function Of(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class Yf extends Kt{execute(t){const e=this.editor.model;let n=t.position;e.change((t=>{const i=t.createElement("paragraph");if(!e.schema.checkChild(n.parent,i)){const r=e.schema.findAllowedParent(n,i);if(!r)return;n=t.split(n,r).position}e.insertContent(i,n),t.setSelection(i,"in")}))}}class If extends Jt{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new Pf(t)),t.commands.add("insertParagraph",new Yf(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>If.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}If.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class zf extends Kt{constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Ps(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some((e=>Nf(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model,n=e.document,i=t.value;e.change((t=>{const r=Array.from(n.selection.getSelectedBlocks()).filter((t=>Nf(t,i,e.schema)));for(const e of r)e.is("element",i)||t.rename(e,i)}))}}function Nf(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}class Rf extends Jt{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[If]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const i of e)"paragraph"!==i.model&&(t.model.schema.register(i.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(i),n.push(i.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new zf(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",((e,i)=>{const r=t.model.document.selection.getFirstPosition().parent;n.some((t=>r.is("element",t.model)))&&!r.is("element","paragraph")&&0===r.childCount&&i.writer.rename(r,"paragraph")}))}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:a.get("low")+1})}}n(13);class jf extends Jt{static get pluginName(){return"HeadingUI"}init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t}))}(t),i=e("Choose heading"),r=e("Heading");t.ui.componentFactory.add("heading",(e=>{const o={},s=new Qn,a=t.commands.get("heading"),l=t.commands.get("paragraph"),c=[a];for(const t of n){const e={type:"button",model:new Iu({label:t.title,class:t.class,withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(l,"value"),e.model.set("commandName","paragraph"),c.push(l)):(e.model.bind("isOn").to(a,"value",(e=>e===t.model)),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),o[t.model]=t.title}const u=ku(e);return Su(u,s),u.buttonView.set({isOn:!1,withText:!0,tooltip:r}),u.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),u.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some((t=>t)))),u.buttonView.bind("label").to(a,"value",l,"value",((t,e)=>{const n=t||e&&"paragraph";return o[n]?o[n]:i})),this.listenTo(u,"execute",(e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:void 0),t.editing.view.focus()})),u}))}}class Ff extends Jt{static get requires(){return[Vu]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{(function(t){const e=t.getSelectedElement();return!(!e||!Yd(e))})(t.editing.view.document.selection)&&e.stop()}),{priority:"high"})}this._toolbarDefinitions=new Map,this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:i,balloonClassName:r="ck-toolbar-container"}){if(!n.length)return void Object(l.b)("widget-toolbar-no-items",{toolbarId:t});const o=this.editor,s=o.t,a=new gu(o.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new l.a("widget-toolbar-duplicated",this,{toolbarId:t});a.fillFromConfig(n,o.ui.componentFactory),this._toolbarDefinitions.set(t,{view:a,getRelatedElement:i,balloonClassName:r})}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const i of this._toolbarDefinitions.values()){const r=i.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&r)if(this.editor.ui.focusTracker.isFocused){const o=r.getAncestors().length;o>t&&(t=o,e=r,n=i)}else this._isToolbarVisible(i)&&this._hideToolbar(i);else this._isToolbarInBalloon(i)&&this._hideToolbar(i)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?Hf(this.editor,e):this._isToolbarInBalloon(t)||(this._balloon.add({view:t.view,position:Bf(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);Hf(this.editor,e)}})))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function Hf(t,e){const n=t.plugins.get("ContextualBalloon"),i=Bf(t,e);n.updatePosition(i)}function Bf(t,e){const n=t.editing.view,i=Ru.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[i.northArrowSouth,i.northArrowSouthWest,i.northArrowSouthEast,i.southArrowNorth,i.southArrowNorthWest,i.southArrowNorthEast,Bd]}}class Vf{constructor(t){this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=t,this._referenceCoordinates=null}begin(t,e,n){const i=new As(e);this.activeHandlePosition=function(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e)if(t.classList.contains("ck-widget__resizer__handle-"+n))return n}(t),this._referenceCoordinates=function(t,e){const n=new As(t),i=e.split("-"),r={x:"right"==i[1]?n.right:n.left,y:"bottom"==i[0]?n.bottom:n.top};return r.x+=t.ownerDocument.defaultView.scrollX,r.y+=t.ownerDocument.defaultView.scrollY,r}(e,function(t){const e=t.split("-"),n={top:"bottom",bottom:"top",left:"right",right:"left"};return`${n[e[0]]}-${n[e[1]]}`}(this.activeHandlePosition)),this.originalWidth=i.width,this.originalHeight=i.height,this.aspectRatio=i.width/i.height;const r=n.style.width;r&&r.match(/^\d+(\.\d*)?%$/)?this.originalWidthPercents=parseFloat(r):this.originalWidthPercents=function(t,e){const n=t.parentElement,i=parseFloat(n.ownerDocument.defaultView.getComputedStyle(n).width);return e.width/i*100}(n,i)}update(t){this.proposedWidth=t.width,this.proposedHeight=t.height,this.proposedWidthPercents=t.widthPercents,this.proposedHandleHostWidth=t.handleHostWidth,this.proposedHandleHostHeight=t.handleHostHeight}}Gt(Vf,Vt);class Wf extends Ec{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("_viewPosition",(t=>t?"ck-orientation-"+t:""))],style:{display:t.if("_isVisible","none",(t=>!t))}},children:[{text:t.to("_label")}]})}_bindToState(t,e){this.bind("_isVisible").to(e,"proposedWidth",e,"proposedHeight",((t,e)=>null!==t&&null!==e)),this.bind("_label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",((e,n,i)=>"px"===t.unit?`${e}×${n}`:i+"%")),this.bind("_viewPosition").to(e,"activeHandlePosition",e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",((t,e,n)=>e<50||n<50?"above-center":t))}_dismiss(){this.unbind(),this._isVisible=!1}}class Uf{constructor(t){this._options=t,this._viewResizerWrapper=null,this.set("isEnabled",!0),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(t=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),t.stop())}),{priority:"high"}),this.on("change:isEnabled",(()=>{this.isEnabled&&this.redraw()}))}attach(){const t=this,e=this._options.viewElement;this._options.editor.editing.view.change((n=>{const i=n.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const n=this.toDomElement(e);return t._appendHandles(n),t._appendSizeUI(n),t.on("change:isEnabled",((t,e,i)=>{n.style.display=i?"":"none"})),n.style.display=t.isEnabled?"":"none",n}));n.insert(n.createPositionAt(e,"end"),i),n.addClass("ck-widget_with-resizer",e),this._viewResizerWrapper=i}))}begin(t){this.state=new Vf(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);this._options.editor.editing.view.change((t=>{const n=this._options.unit||"%",i=("%"===n?e.widthPercents:e.width)+n;t.setStyle("width",i,this._options.viewElement)}));const n=this._getHandleHost(),i=new As(n);e.handleHostWidth=Math.round(i.width),e.handleHostHeight=Math.round(i.height);const r=new As(n);e.width=Math.round(r.width),e.height=Math.round(r.height),this.redraw(i),this.state.update(e)}commit(){const t=this._options.unit||"%",e=("%"===t?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(e)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;if(!((n=e)&&n.ownerDocument&&n.ownerDocument.contains(n)))return;var n;const i=e.parentElement,r=this._getHandleHost(),o=this._viewResizerWrapper,s=[o.getStyle("width"),o.getStyle("height"),o.getStyle("left"),o.getStyle("top")];let a;if(i.isSameNode(r)){const e=t||new As(r);a=[e.width+"px",e.height+"px",void 0,void 0]}else a=[r.offsetWidth+"px",r.offsetHeight+"px",r.offsetLeft+"px",r.offsetTop+"px"];"same"!==li(s,a)&&this._options.editor.editing.view.change((t=>{t.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},o)}))}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss(),this._options.editor.editing.view.change((t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(t){const e=this.state,n={x:(i=t).pageX,y:i.pageY};var i;const r=!this._options.isCentered||this._options.isCentered(this),o={x:e._referenceCoordinates.x-(n.x+e.originalWidth),y:n.y-e.originalHeight-e._referenceCoordinates.y};r&&e.activeHandlePosition.endsWith("-right")&&(o.x=n.x-(e._referenceCoordinates.x+e.originalWidth)),r&&(o.x*=2);const s={width:Math.abs(e.originalWidth+o.x),height:Math.abs(e.originalHeight+o.y)};s.dominant=s.width/e.aspectRatio>s.height?"width":"height",s.max=s[s.dominant];const a={width:s.width,height:s.height};return"width"==s.dominant?a.height=a.width/e.aspectRatio:a.width=a.height*e.aspectRatio,{width:Math.round(a.width),height:Math.round(a.height),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*a.width*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const i of e)t.appendChild(new Pc({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(n=i,"ck-widget__resizer__handle-"+n)}}).render());var n}_appendSizeUI(t){this._sizeView=new Wf,this._sizeView.render(),t.appendChild(this._sizeView.element)}}Gt(Uf,Vt),n(72),Gt(class extends Jt{static get pluginName(){return"WidgetResize"}init(){const t=this.editor.editing,e=wo.window.document;this.set("visibleResizer",null),this.set("_activeResizer",null),this._resizers=new Map,t.view.addObserver(hd),this._observer=Object.create(Eo),this.listenTo(t.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(e,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(e,"mouseup",this._mouseUpListener.bind(this));const n=()=>{this.visibleResizer&&this.visibleResizer.redraw()};this._redrawFocusedResizerThrottled=nh(n,200),this.on("change:visibleResizer",n),this.editor.ui.on("update",this._redrawFocusedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[t,e]of this._resizers)t.isAttached()||(this._resizers.delete(t),e.destroy())}),{priority:"lowest"}),this._observer.listenTo(wo.window,"resize",this._redrawFocusedResizerThrottled);const i=this.editor.editing.view.document.selection;i.on("change",(()=>{const t=i.getSelectedElement();this.visibleResizer=this.getResizerByViewElement(t)||null}))}destroy(){this._observer.stopListening();for(const t of this._resizers.values())t.destroy();this._redrawFocusedResizerThrottled.cancel()}attachTo(t){const e=new Uf(t),n=this.editor.plugins;if(e.attach(),n.has("WidgetToolbarRepository")){const t=n.get("WidgetToolbarRepository");e.on("begin",(()=>{t.forceDisabled("resize")}),{priority:"lowest"}),e.on("cancel",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"}),e.on("commit",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(t.viewElement,e);const i=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(i)==e&&(this.visibleResizer=e),e}getResizerByViewElement(t){return this._resizers.get(t)}_getResizerByHandle(t){for(const e of this._resizers.values())if(e.containsHandle(t))return e}_mouseDownListener(t,e){const n=e.domTarget;Uf.isResizeHandle(n)&&(this._activeResizer=this._getResizerByHandle(n),this._activeResizer&&(this._activeResizer.begin(n),t.stop(),e.preventDefault()))}_mouseMoveListener(t,e){this._activeResizer&&this._activeResizer.updateSize(e)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}},Vt);class Xf extends Kt{refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor,n=e.plugins.get("ImageUtils"),i=e.model,r=n.getClosestSelectedImageElement(i.document.selection);i.change((e=>{e.setAttribute("alt",t.newValue,r)}))}}function $f(t,e){const n=t.createEmptyElement("img"),i="imageBlock"===e?t.createContainerElement("figure",{class:"image"}):t.createContainerElement("span",{class:"image-inline"},{isAllowedInsideAttributeElement:!0});return t.insert(t.createPositionAt(i,0),n),i}function qf(t,e){if(t.plugins.has("ImageInlineEditing")!==t.plugins.has("ImageBlockEditing"))return{name:"img",attributes:{src:!0}};const n=t.plugins.get("ImageUtils");return t=>n.isInlineImageView(t)&&t.hasAttribute("src")?(t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline")!==e?null:{name:!0,attributes:["src"]}:null}function Gf(t,e){const n=Ps(e.getSelectedBlocks());return!n||t.isObject(n)||n.isEmpty&&"listItem"!=n.name?"imageBlock":"imageInline"}class Jf extends Jt{static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null){const i=this.editor,r=i.model,o=r.document.selection;n=Zf(i,e||o,n),t={...Object.fromEntries(o.getAttributes()),...t};for(const e in t)r.schema.checkAttribute(n,e)||delete t[e];return r.change((i=>{const s=i.createElement(n,t);return e||"imageInline"==n||(e=Hd(o,r)),r.insertContent(s,e),s.parent?(i.setSelection(s,"on"),s):null}))}getClosestSelectedImageWidget(t){const e=t.getSelectedElement();if(e&&this.isImageWidget(e))return e;let n=t.getFirstPosition().parent;for(;n;){if(n.is("element")&&this.isImageWidget(n))return n;n=n.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}isImageAllowed(){const t=this.editor.model.document.selection;return function(t,e){if("imageBlock"==Zf(t,e)){const n=function(t,e){const n=Hd(t,e).start.parent;return n.isEmpty&&!n.is("element","$root")?n.parent:n}(e,t.model);if(t.model.schema.checkChild(n,"imageBlock"))return!0}else if(t.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}(this.editor,t)&&function(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}(t)}toImageWidget(t,e,n){return e.setCustomProperty("image",!0,t),Id(t,e,{label:()=>{const e=this.findViewImgElement(t).getAttribute("alt");return e?`${e} ${n}`:n}})}isImageWidget(t){return!!t.getCustomProperty("image")&&Yd(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t))return t;const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t))if(this.isInlineImageView(n))return n}}function Zf(t,e,n){const i=t.model.schema,r=t.config.get("image.insert.type");return t.plugins.has("ImageBlockEditing")?t.plugins.has("ImageInlineEditing")?n||("inline"===r?"imageInline":"block"===r?"imageBlock":e.is("selection")?Gf(i,e):i.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}class Kf extends Jt{static get requires(){return[Jf]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Xf(this.editor))}}n(74),n(7);class Qf extends Ec{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new Os,this.keystrokes=new Ys,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),Ac.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Ac.cancel,"ck-button-cancel","cancel"),this._focusables=new Dc,this._focusCycler=new nu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),Lc(this)}render(){super.render(),this.keystrokes.listenTo(this.element),Tc({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}_createButton(t,e,n,i){const r=new tu(this.locale);return r.set({label:t,icon:e,tooltip:!0}),r.extendTemplate({attributes:{class:n}}),i&&r.delegate("execute").to(this,i),r}_createLabeledInputView(){const t=this.locale.t,e=new Pu(this.locale,Ou);return e.label=t("Text alternative"),e}}function tp(t){const e=t.editing.view,n=Ru.defaultPositions,i=t.plugins.get("ImageUtils");return{target:e.domConverter.viewToDom(i.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast]}}class ep extends Jt{static get requires(){return[Vu]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const i=t.commands.get("imageTextAlternative"),r=new tu(n);return r.set({label:e("Change image text alternative"),icon:Ac.lowVision,tooltip:!0}),r.bind("isEnabled").to(i,"isEnabled"),this.listenTo(r,"execute",(()=>{this._showForm()})),r}))}_createForm(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new Qf(t.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),this.listenTo(t.ui,"update",(()=>{n.getClosestSelectedImageWidget(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=tp(t);e.updatePosition(n)}}(t):this._hideForm(!0)})),Cc({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:tp(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class np extends Jt{static get requires(){return[Kf,ep]}static get pluginName(){return"ImageTextAlternative"}}function ip(t,e){return t=>{t.on("attribute:srcset:"+e,n)};function n(e,n,i){if(!i.consumable.consume(n.item,e.name))return;const r=i.writer,o=i.mapper.toViewElement(n.item),s=t.findViewImgElement(o);if(null===n.attributeNewValue){const t=n.attributeOldValue;t.data&&(r.removeAttribute("srcset",s),r.removeAttribute("sizes",s),t.width&&r.removeAttribute("width",s))}else{const t=n.attributeNewValue;t.data&&(r.setAttribute("srcset",t.data,s),r.setAttribute("sizes","100vw",s),t.width&&r.setAttribute("width",t.width,s))}}}function rp(t,e,n){return t=>{t.on(`attribute:${n}:${e}`,i)};function i(e,n,i){if(!i.consumable.consume(n.item,e.name))return;const r=i.writer,o=i.mapper.toViewElement(n.item),s=t.findViewImgElement(o);r.setAttribute(n.attributeKey,n.attributeNewValue||"",s)}}class op extends Yo{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)}),{useCapture:!0})}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class sp extends Kt{constructor(t){super(t);const e=t.config.get("image.insert.type");t.plugins.has("ImageBlockEditing")||"block"===e&&Object(l.b)("image-block-plugin-required"),t.plugins.has("ImageInlineEditing")||"inline"===e&&Object(l.b)("image-inline-plugin-required")}refresh(){this.isEnabled=this.editor.plugins.get("ImageUtils").isImageAllowed()}execute(t){const e=ei(t.source),n=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),r=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const o=n.getSelectedElement();if("string"==typeof t&&(t={src:t}),e&&o&&i.isImage(o)){const e=this.editor.model.createPositionAfter(o);i.insertImage({...t,...r},e)}else i.insertImage({...t,...r})}))}}class ap extends Jt{static get requires(){return[Jf]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.conversion;t.editing.view.addObserver(op),e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:{key:"srcset",value:t=>{const e={data:t.getAttribute("srcset")};return t.hasAttribute("width")&&(e.width=t.getAttribute("width")),e}}});const n=new sp(t);t.commands.add("insertImage",n),t.commands.add("imageInsert",n)}}class lp extends Kt{constructor(t,e){super(t),this._modelElementName=e}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=t.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=t.isInlineImage(e):this.isEnabled=t.isBlockImage(e)}execute(){const t=this.editor,e=this.editor.model,n=t.plugins.get("ImageUtils"),i=n.getClosestSelectedImageElement(e.document.selection),r=Object.fromEntries(i.getAttributes());return r.src||r.uploadId?e.change((t=>{const o=Array.from(e.markers).filter((t=>t.getRange().containsItem(i))),s=n.insertImage(r,e.createSelection(i,"on"),this._modelElementName);if(!s)return null;const a=t.createRangeOn(s);for(const e of o){const n=e.getRange(),i="$graveyard"!=n.root.rootName?n.getJoined(a,!0):a;t.updateMarker(e,{range:i})}return{oldElement:i,newElement:s}})):null}}class cp extends Jt{static get requires(){return[ap,Jf,yd]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;t.model.schema.register("imageBlock",{isObject:!0,isBlock:!0,allowWhere:"$block",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),t.plugins.has("ImageInlineEditing")&&(t.commands.add("imageTypeBlock",new lp(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,i=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageBlock",view:(t,{writer:e})=>$f(e,"imageBlock")}),n.for("editingDowncast").elementToElement({model:"imageBlock",view:(t,{writer:n})=>i.toImageWidget($f(n,"imageBlock"),n,e("image widget"))}),n.for("downcast").add(rp(i,"imageBlock","src")).add(rp(i,"imageBlock","alt")).add(ip(i,"imageBlock")),n.for("upcast").elementToElement({view:qf(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",{src:t.getAttribute("src")})}).add(function(t){return t=>{t.on("element:figure",e)};function e(e,n,i){if(!i.consumable.test(n.viewItem,{name:!0,classes:"image"}))return;const r=t.findViewImgElement(n.viewItem);if(!r||!r.hasAttribute("src")||!i.consumable.test(r,{name:!0}))return;const o=Ps(i.convertItem(r,n.modelCursor).modelRange.getItems());o&&(i.convertChildren(n.viewItem,o),i.updateConversionResult(o,n))}}(i))}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,i=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((r,o)=>{const s=Array.from(o.content.getChildren());let a;if(!s.every(i.isInlineImageView))return;a=o.targetRanges?t.editing.mapper.toModelRange(o.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageBlock"===Gf(e.schema,l)){const t=new fd(n.document),e=s.map((e=>t.createElement("figure",{class:"image"},e)));o.content=t.createDocumentFragment(e)}}))}}n(11);class up extends Jt{static get requires(){return[cp,th,np]}static get pluginName(){return"ImageBlock"}}class dp extends Jt{static get requires(){return[ap,Jf,yd]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor,e=t.model.schema;e.register("imageInline",{isObject:!0,isInline:!0,allowWhere:"$text",allowAttributes:["alt","src","srcset"]}),e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&"imageInline"===e.name)return!1})),this._setupConversion(),t.plugins.has("ImageBlockEditing")&&(t.commands.add("imageTypeInline",new lp(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,i=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")}),n.for("editingDowncast").elementToElement({model:"imageInline",view:(t,{writer:n})=>i.toImageWidget($f(n,"imageInline"),n,e("image widget"))}),n.for("downcast").add(rp(i,"imageInline","src")).add(rp(i,"imageInline","alt")).add(ip(i,"imageInline")),n.for("upcast").elementToElement({view:qf(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",{src:t.getAttribute("src")})})}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,i=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((r,o)=>{const s=Array.from(o.content.getChildren());let a;if(!s.every(i.isBlockImageView))return;a=o.targetRanges?t.editing.mapper.toModelRange(o.targetRanges[0]):e.document.selection.getFirstRange();const l=e.createSelection(a);if("imageInline"===Gf(e.schema,l)){const t=new fd(n.document),e=s.map((e=>1===e.childCount?(Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,i.findViewImgElement(e)))),e.getChild(0)):e));o.content=t.createDocumentFragment(e)}}))}}class hp extends Jt{static get requires(){return[dp,th,np]}static get pluginName(){return"ImageInline"}}function fp(t){for(const e of t.getChildren())if(e&&e.is("element","caption"))return e;return null}function pp(t,e){const n=e.getFirstPosition().findAncestor("caption");return n&&t.isBlockImage(n.parent)?n:null}class mp extends Kt{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils");if(!t.plugins.has(cp))return this.isEnabled=!1,void(this.value=!1);const n=t.model.document.selection,i=n.getSelectedElement();if(!i){const t=pp(e,n);return this.isEnabled=!!t,void(this.value=!!t)}this.isEnabled=this.editor.plugins.get("ImageUtils").isImage(i),this.isEnabled?this.value=!!fp(i):this.value=!1}execute(t={}){const{focusCaptionOnShow:e}=t;this.editor.model.change((t=>{this.value?this._hideImageCaption(t):this._showImageCaption(t,e)}))}_showImageCaption(t,e){const n=this.editor.model.document.selection,i=this.editor.plugins.get("ImageCaptionEditing");let r=n.getSelectedElement();const o=i._getSavedCaption(r);this.editor.plugins.get("ImageUtils").isInlineImage(r)&&(this.editor.execute("imageTypeBlock"),r=n.getSelectedElement());const s=o||t.createElement("caption");t.append(s,r),e&&t.setSelection(s,"in")}_hideImageCaption(t){const e=this.editor,n=e.model.document.selection,i=e.plugins.get("ImageCaptionEditing"),r=e.plugins.get("ImageUtils");let o,s=n.getSelectedElement();s?o=fp(s):(o=pp(r,n),s=o.parent),i._saveCaption(s,o),t.setSelection(s,"on"),t.remove(o)}}class gp extends Jt{static get requires(){return[Jf]}static get pluginName(){return"ImageCaptionEditing"}constructor(t){super(t),this._savedCaptionsMap=new WeakMap}init(){const t=this.editor,e=t.model.schema;e.isRegistered("caption")?e.extend("caption",{allowIn:"imageBlock"}):e.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),t.commands.add("toggleImageCaption",new mp(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration()}_setupConversion(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils"),i=t.t;t.conversion.for("upcast").elementToElement({view:t=>function(t,e){return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}(n,t),model:"caption"}),t.conversion.for("dataDowncast").elementToElement({model:"caption",view:(t,{writer:e})=>n.isBlockImage(t.parent)?e.createContainerElement("figcaption"):null}),t.conversion.for("editingDowncast").elementToElement({model:"caption",view:(t,{writer:r})=>{if(!n.isBlockImage(t.parent))return null;const o=r.createEditableElement("figcaption");r.setCustomProperty("imageCaption",!0,o),Gu({view:e,element:o,text:i("Enter image caption"),keepOnFocus:!0});const s=Fd(o,r);return Rd(s,r,((t,e,n)=>n.addClass(ei(e.classes),t)),((t,e,n)=>n.removeClass(ei(e.classes),t))),s}}),t.editing.mapper.on("modelToViewPosition",bp(e)),t.data.mapper.on("modelToViewPosition",bp(e))}_setupImageTypeCommandsIntegration(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.commands.get("imageTypeInline"),i=t.commands.get("imageTypeBlock"),r=t=>{if(!t.return)return;const{oldElement:n,newElement:i}=t.return;if(!n)return;if(e.isBlockImage(n)){const t=fp(n);if(t)return void this._saveCaption(i,t)}const r=this._getSavedCaption(n);r&&this._saveCaption(i,r)};n&&this.listenTo(n,"execute",r,{priority:"low"}),i&&this.listenTo(i,"execute",r,{priority:"low"})}_getSavedCaption(t){const e=this._savedCaptionsMap.get(t);return e?Zs.fromJSON(e):null}_saveCaption(t,e){this._savedCaptionsMap.set(t,e.toJSON())}}function bp(t){return(e,n)=>{const i=n.modelPosition,r=i.parent;if(!r.is("element","imageBlock"))return;const o=n.mapper.toViewElement(r);n.viewPosition=t.createPositionAt(o,i.offset+1)}}class vp extends Jt{static get requires(){return[Jf]}static get pluginName(){return"ImageCaptionUI"}init(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils"),i=t.t;t.ui.componentFactory.add("toggleImageCaption",(r=>{const o=t.commands.get("toggleImageCaption"),s=new tu(r);return s.set({icon:Ac.caption,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(o,"value","isEnabled"),s.bind("label").to(o,"value",(t=>i(t?"Toggle caption off":"Toggle caption on"))),this.listenTo(s,"execute",(()=>{t.execute("toggleImageCaption",{focusCaptionOnShow:!0});const i=pp(n,t.model.document.selection);if(i){const n=t.editing.mapper.toViewElement(i);e.scrollToTheSelection(),e.change((t=>{t.addClass("image__caption_highlighted",n)}))}})),s}))}}n(78);class _p extends Kt{constructor(t,e){super(t),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(e.map((t=>{if(t.isDefault)for(const e of t.modelElements)this._defaultStyles[e]=t.name;return[t.name,t]})))}refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled?t.hasAttribute("imageStyle")?this.value=t.getAttribute("imageStyle"):this.value=this._defaultStyles[t.name]:this.value=!1}execute(t={}){const e=this.editor,n=e.model,i=e.plugins.get("ImageUtils");n.change((e=>{const r=t.value;let o=i.getClosestSelectedImageElement(n.document.selection);r&&this.shouldConvertImageType(r,o)&&(this.editor.execute(i.isBlockImage(o)?"imageTypeInline":"imageTypeBlock"),o=i.getClosestSelectedImageElement(n.document.selection)),!r||this._styles.get(r).isDefault?e.removeAttribute("imageStyle",o):e.setAttribute("imageStyle",r,o)}))}shouldConvertImageType(t,e){return!this._styles.get(t).modelElements.includes(e.name)}}const{objectFullWidth:yp,objectInline:wp,objectLeft:xp,objectRight:kp,objectCenter:Mp,objectBlockLeft:Sp,objectBlockRight:Ap}=Ac,Cp={inline:{name:"inline",title:"In line",icon:wp,modelElements:["imageInline"],isDefault:!0},alignLeft:{name:"alignLeft",title:"Left aligned image",icon:xp,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"},alignBlockLeft:{name:"alignBlockLeft",title:"Left aligned image",icon:Sp,modelElements:["imageBlock"],className:"image-style-block-align-left"},alignCenter:{name:"alignCenter",title:"Centered image",icon:Mp,modelElements:["imageBlock"],className:"image-style-align-center"},alignRight:{name:"alignRight",title:"Right aligned image",icon:kp,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"},alignBlockRight:{name:"alignBlockRight",title:"Right aligned image",icon:Ap,modelElements:["imageBlock"],className:"image-style-block-align-right"},block:{name:"block",title:"Centered image",icon:Mp,modelElements:["imageBlock"],isDefault:!0},side:{name:"side",title:"Side image",icon:kp,modelElements:["imageBlock"],className:"image-style-side"}},Lp={full:yp,left:Sp,right:Ap,center:Mp,inlineLeft:xp,inlineRight:kp,inline:wp},Tp=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Dp(t){Object(l.b)("image-style-configuration-definition-invalid",t)}var Ep={normalizeStyles:function(t){return(t.configuredStyles.options||[]).map((t=>function(t){return"string"==typeof(t="string"==typeof t?Cp[t]?{...Cp[t]}:{name:t}:function(t,e){const n={...e};for(const i in t)Object.prototype.hasOwnProperty.call(e,i)||(n[i]=t[i]);return n}(Cp[t.name],t)).icon&&(t.icon=Lp[t.icon]||t.icon),t}(t))).filter((e=>function(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:i,name:r}=t;if(!(i&&i.length&&r))return Dp({style:t}),!1;{const r=[e?"imageBlock":null,n?"imageInline":null];if(!i.some((t=>r.includes(t))))return Object(l.b)("image-style-missing-dependency",{style:t,missingPlugins:i.map((t=>"imageBlock"===t?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(e,t)))},getDefaultStylesConfiguration:function(t,e){return t&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:t?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(t){return t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")?[...Tp]:[]},warnInvalidStyle:Dp,DEFAULT_OPTIONS:Cp,DEFAULT_ICONS:Lp,DEFAULT_DROPDOWN_DEFINITIONS:Tp};function Pp(t,e){for(const n of e)if(n.name===t)return n}class Op extends Jt{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[Jf]}init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=Ep,n=this.editor,i=n.plugins.has("ImageBlockEditing"),r=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(i,r)),this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:i,isInlinePluginLoaded:r}),this._setupConversion(i,r),this._setupPostFixer(),n.commands.add("imageStyle",new _p(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor,i=n.model.schema,r=(o=this.normalizedStyles,(t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const i=Pp(e.attributeNewValue,o),r=Pp(e.attributeOldValue,o),s=n.mapper.toViewElement(e.item),a=n.writer;r&&a.removeClass(r.className,s),i&&a.addClass(i.className,s)});var o;const s=function(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,i)=>{if(!n.modelRange)return;const r=n.viewItem,o=Ps(n.modelRange.getItems());if(o&&i.schema.checkAttribute(o,"imageStyle"))for(const t of e[o.name])i.consumable.consume(r,{classes:t.className})&&i.writer.setAttribute("imageStyle",t.name,o)}}(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",r),n.data.downcastDispatcher.on("attribute:imageStyle",r),t&&(i.extend("imageBlock",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),e&&(i.extend("imageInline",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const t=this.editor,e=t.model.document,n=t.plugins.get(Jf),i=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let r=!1;for(const o of e.differ.getChanges())if("insert"==o.type||"attribute"==o.type&&"imageStyle"==o.attributeKey){let e="insert"==o.type?o.position.nodeAfter:o.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0&&(e=e.getChild(0)),!n.isImage(e))continue;const s=e.getAttribute("imageStyle");if(!s)continue;const a=i.get(s);a&&a.modelElements.includes(e.name)||(t.removeAttribute("imageStyle",e),r=!0)}return r}))}}n(80);class Yp extends Jt{static get requires(){return[Op]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins,e=this.editor.config.get("image.toolbar")||[],n=Ip(t.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const t of n)this._createButton(t);const i=Ip([...e.filter(_),...Ep.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of i)this._createDropdown(t,n)}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(i=>{let r;const{defaultItem:o,items:s,title:a}=t,l=s.filter((t=>e.find((({name:e})=>zp(e)===t)))).map((t=>{const e=n.create(t);return t===o&&(r=e),e}));s.length!==l.length&&Ep.warnInvalidStyle({dropdown:t});const c=ku(i,su),u=c.buttonView;return Mu(c,l),u.set({label:Np(a,r.label),class:null,tooltip:!0}),u.bind("icon").toMany(l,"isOn",((...t)=>{const e=t.findIndex(K);return e<0?r.icon:l[e].icon})),u.bind("label").toMany(l,"isOn",((...t)=>{const e=t.findIndex(K);return Np(a,e<0?r.label:l[e].label)})),u.bind("isOn").toMany(l,"isOn",((...t)=>t.some(K))),u.bind("class").toMany(l,"isOn",((...t)=>t.some(K)?"ck-splitbutton_flatten":null)),u.on("execute",(()=>{l.some((({isOn:t})=>t))?c.isOpen=!c.isOpen:r.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some(K))),c}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add(zp(e),(n=>{const i=this.editor.commands.get("imageStyle"),r=new tu(n);return r.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),r.bind("isEnabled").to(i,"isEnabled"),r.bind("isOn").to(i,"value",(t=>t===e)),r.on("execute",this._executeCommand.bind(this,e)),r}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t}),this.editor.editing.view.focus()}}function Ip(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}function zp(t){return"imageStyle:"+t}function Np(t,e){return(t?t+": ":"")+e}function Rp(t){const e=t.map((t=>t.replace("+","\\+")));return new RegExp(`^image\\/(${e.join("|")})$`)}function jp(t){return new Promise(((e,n)=>{const i=t.getAttribute("src");fetch(i).then((t=>t.blob())).then((t=>{const n=Fp(t,i),r=n.replace("image/",""),o=new File([t],"image."+r,{type:n});e(o)})).catch((t=>t&&"TypeError"===t.name?function(t){return function(t){return new Promise(((e,n)=>{const i=wo.document.createElement("img");i.addEventListener("load",(()=>{const t=wo.document.createElement("canvas");t.width=i.width,t.height=i.height,t.getContext("2d").drawImage(i,0,0),t.toBlob((t=>t?e(t):n()))})),i.addEventListener("error",(()=>n())),i.src=t}))}(t).then((e=>{const n=Fp(e,t),i=n.replace("image/","");return new File([e],"image."+i,{type:n})}))}(i).then(e).catch(n):n(t)))}))}function Fp(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class Hp extends Jt{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor,e=t.t,n=n=>{const i=new af(n),r=t.commands.get("uploadImage"),o=t.config.get("image.upload.types"),s=Rp(o);return i.set({acceptedType:o.map((t=>"image/"+t)).join(","),allowMultipleFiles:!0}),i.buttonView.set({label:e("Insert image"),icon:Ac.image,tooltip:!0}),i.buttonView.bind("isEnabled").to(r),i.on("done",((e,n)=>{const i=Array.from(n).filter((t=>s.test(t.type)));i.length&&t.execute("uploadImage",{file:i})})),i};t.ui.componentFactory.add("uploadImage",n),t.ui.componentFactory.add("imageUpload",n)}}n(82),n(84),n(86);class Bp extends Jt{static get pluginName(){return"ImageUploadProgress"}constructor(t){super(t),this.placeholder="data:image/svg+xml;utf8,"+encodeURIComponent('')}init(){const t=this.editor;t.plugins.has("ImageBlockEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",((...t)=>this.uploadStatusChange(...t))),t.plugins.has("ImageInlineEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",((...t)=>this.uploadStatusChange(...t)))}uploadStatusChange(t,e,n){const i=this.editor,r=e.item,o=r.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name))return;const s=i.plugins.get("ImageUtils"),a=i.plugins.get(of),l=o?e.attributeNewValue:null,c=this.placeholder,u=i.editing.mapper.toViewElement(r),d=n.writer;if("reading"==l)return Vp(u,d),void Wp(s,c,u,d);if("uploading"==l){const t=a.loaders.get(o);return Vp(u,d),void(t?(Up(u,d),function(t,e,n,i){const r=function(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});return t.setCustomProperty("progressBar",!0,e),e}(e);e.insert(e.createPositionAt(t,"end"),r),n.on("change:uploadedPercent",((t,e,n)=>{i.change((t=>{t.setStyle("width",n+"%",r)}))}))}(u,d,t,i.editing.view),function(t,e,n,i){if(i.data){const r=t.findViewImgElement(e);n.setAttribute("src",i.data,r)}}(s,u,d,t)):Wp(s,c,u,d))}"complete"==l&&a.loaders.get(o)&&function(t,e,n){const i=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),i),setTimeout((()=>{n.change((t=>t.remove(t.createRangeOn(i))))}),3e3)}(u,d,i.editing.view),function(t,e){$p(t,e,"progressBar")}(u,d),Up(u,d),function(t,e){e.removeClass("ck-appear",t)}(u,d)}}function Vp(t,e){t.hasClass("ck-appear")||e.addClass("ck-appear",t)}function Wp(t,e,n,i){n.hasClass("ck-image-upload-placeholder")||i.addClass("ck-image-upload-placeholder",n);const r=t.findViewImgElement(n);r.getAttribute("src")!==e&&i.setAttribute("src",e,r),Xp(n,"placeholder")||i.insert(i.createPositionAfter(r),function(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});return t.setCustomProperty("placeholder",!0,e),e}(i))}function Up(t,e){t.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",t),$p(t,e,"placeholder")}function Xp(t,e){for(const n of t.getChildren())if(n.getCustomProperty(e))return n}function $p(t,e,n){const i=Xp(t,n);i&&e.remove(e.createRangeOn(i))}class qp extends Kt{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.model.document.selection.getSelectedElement();this.isEnabled=e.isImageAllowed()||e.isImage(n)}execute(t){const e=ei(t.file),n=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),r=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const o=n.getSelectedElement();if(e&&o&&i.isImage(o)){const e=this.editor.model.createPositionAfter(o);this._uploadImage(t,r,e)}else this._uploadImage(t,r)}))}_uploadImage(t,e,n){const i=this.editor,r=i.plugins.get(of).createLoader(t),o=i.plugins.get("ImageUtils");r&&o.insertImage({...e,uploadId:r.id},n)}}class Gp extends Jt{static get requires(){return[of,Yu,yd,Jf]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t),t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const t=this.editor,e=t.model.document,n=t.conversion,i=t.plugins.get(of),r=t.plugins.get("ImageUtils"),o=Rp(t.config.get("image.upload.types")),s=new qp(t);t.commands.add("uploadImage",s),t.commands.add("imageUpload",s),n.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",((e,n)=>{if(i=n.dataTransfer,Array.from(i.types).includes("text/html")&&""!==i.getData("text/html"))return;var i;const r=Array.from(n.dataTransfer.files).filter((t=>!!t&&o.test(t.type)));r.length&&(e.stop(),t.model.change((e=>{n.targetRanges&&e.setSelection(n.targetRanges.map((e=>t.editing.mapper.toModelRange(e)))),t.model.enqueueChange("default",(()=>{t.execute("uploadImage",{file:r})}))})))})),this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((e,n)=>{const o=Array.from(t.editing.view.createRangeIn(n.content)).filter((t=>function(t,e){return!(!t.isInlineImageView(e)||!e.getAttribute("src"))&&(e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||e.getAttribute("src").match(/^blob:/g))}(r,t.item)&&!t.item.getAttribute("uploadProcessed"))).map((t=>({promise:jp(t.item),imageElement:t.item})));if(!o.length)return;const s=new fd(t.editing.view.document);for(const t of o){s.setAttribute("uploadProcessed",!0,t.imageElement);const e=i.createLoader(t.promise);e&&(s.setAttribute("src","",t.imageElement),s.setAttribute("uploadId",e.id,t.imageElement))}})),t.editing.view.document.on("dragover",((t,e)=>{e.preventDefault()})),e.on("change",(()=>{const n=e.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),r=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name){const n=e.position.nodeAfter,o="$graveyard"==e.position.root.rootName;for(const e of Jp(t,n)){const t=e.getAttribute("uploadId");if(!t)continue;const n=i.loaders.get(t);n&&(o?r.has(t)||n.abort():(r.add(t),this._uploadImageElements.set(t,e),"idle"==n.status&&this._readAndUpload(n)))}}})),this.on("uploadComplete",((t,{imageElement:e,data:n})=>{const i=n.urls?n.urls:n;this.editor.model.change((t=>{t.setAttribute("src",i.default,e),this._parseAndSetSrcsetAttributeOnImage(i,e,t)}))}),{priority:"low"})}afterInit(){const t=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&t.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this.editor.plugins.has("ImageInlineEditing")&&t.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(t){const e=this.editor,n=e.model,i=e.locale.t,r=e.plugins.get(of),o=e.plugins.get(Yu),s=e.plugins.get("ImageUtils"),a=this._uploadImageElements;return n.enqueueChange("transparent",(e=>{e.setAttribute("uploadStatus","reading",a.get(t.id))})),t.read().then((()=>{const i=t.upload(),r=a.get(t.id);if(Lr.isSafari){const t=e.editing.mapper.toViewElement(r),n=s.findViewImgElement(t);e.editing.view.once("render",(()=>{if(!n.parent)return;const t=e.editing.view.domConverter.mapViewToDom(n.parent);if(!t)return;const i=t.style.display;t.style.display="none",t._ckHack=t.offsetHeight,t.style.display=i}))}return n.enqueueChange("transparent",(t=>{t.setAttribute("uploadStatus","uploading",r)})),i})).then((e=>{n.enqueueChange("transparent",(n=>{const i=a.get(t.id);n.setAttribute("uploadStatus","complete",i),this.fire("uploadComplete",{data:e,imageElement:i})})),l()})).catch((e=>{if("error"!==t.status&&"aborted"!==t.status)throw e;"error"==t.status&&e&&o.showWarning(e,{title:i("Upload failed"),namespace:"upload"}),n.enqueueChange("transparent",(e=>{e.remove(a.get(t.id))})),l()}));function l(){n.enqueueChange("transparent",(e=>{const n=a.get(t.id);e.removeAttribute("uploadId",n),e.removeAttribute("uploadStatus",n),a.delete(t.id)})),r.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let i=0;const r=Object.keys(t).filter((t=>{const e=parseInt(t,10);if(!isNaN(e))return i=Math.max(i,e),!0})).map((e=>`${t[e]} ${e}w`)).join(", ");""!=r&&n.setAttribute("srcset",{data:r,width:i},e)}}function Jp(t,e){const n=t.plugins.get("ImageUtils");return Array.from(t.model.createRangeOn(e)).filter((t=>n.isImage(t.item))).map((t=>t.item))}class Zp extends Jt{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new te(t)),t.commands.add("outdent",new te(t))}}var Kp='',Qp='';class tm extends Jt{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,i="ltr"==e.uiLanguageDirection?Kp:Qp,r="ltr"==e.uiLanguageDirection?Qp:Kp;this._defineButton("indent",n("Increase indent"),i),this._defineButton("outdent",n("Decrease indent"),r)}_defineButton(t,e,n){const i=this.editor;i.ui.componentFactory.add(t,(r=>{const o=i.commands.get(t),s=new tu(r);return s.set({label:e,icon:n,tooltip:!0}),s.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(s,"execute",(()=>{i.execute(t),i.editing.view.focus()})),s}))}}class em{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){Array.isArray(t)?t.forEach((t=>this._definitions.add(t))):this._definitions.add(t)}getDispatcher(){return t=>{t.on("attribute:linkHref",((t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref"))return;const i=n.writer,r=i.document.selection;for(const t of this._definitions){const o=i.createAttributeElement("a",t.attributes,{priority:5});t.classes&&i.addClass(t.classes,o);for(const e in t.styles)i.setStyle(e,t.styles[e],o);i.setCustomProperty("link",!0,o),t.callback(e.attributeNewValue)?e.item.is("selection")?i.wrap(r.getFirstRange(),o):i.wrap(n.mapper.toViewRange(e.range),o):i.unwrap(n.mapper.toViewRange(e.range),o)}}),{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:imageBlock",((t,e,{writer:n,mapper:i})=>{const r=i.toViewElement(e.item),o=Array.from(r.getChildren()).find((t=>"a"===t.name));for(const t of this._definitions){const i=fi(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of i)"class"===t?n.addClass(e,o):n.setAttribute(t,e,o);t.classes&&n.addClass(t.classes,o);for(const e in t.styles)n.setStyle(e,t.styles[e],o)}else{for(const[t,e]of i)"class"===t?n.removeClass(e,o):n.removeAttribute(t,o);t.classes&&n.removeClass(t.classes,o);for(const e in t.styles)n.removeStyle(e,o)}}}))}}}var nm=function(t,e,n){var i=t.length;return n=void 0===n?i:n,!e&&n>=i?t:Ii(t,e,n)},im=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),rm=function(t){return im.test(t)},om=function(t){return t.split("")},sm="[\\ud800-\\udfff]",am="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",lm="\\ud83c[\\udffb-\\udfff]",cm="[^\\ud800-\\udfff]",um="(?:\\ud83c[\\udde6-\\uddff]){2}",dm="[\\ud800-\\udbff][\\udc00-\\udfff]",hm="(?:"+am+"|"+lm+")?",fm="[\\ufe0e\\ufe0f]?"+hm+"(?:\\u200d(?:"+[cm,um,dm].join("|")+")[\\ufe0e\\ufe0f]?"+hm+")*",pm="(?:"+[cm+am+"?",am,um,dm,sm].join("|")+")",mm=RegExp(lm+"(?="+lm+")|"+pm+fm,"g"),gm=function(t){return t.match(mm)||[]},bm=function(t){return rm(t)?gm(t):om(t)},vm=function(t){return function(e){e=Di(e);var n=rm(e)?bm(e):void 0,i=n?n[0]:e.charAt(0),r=n?nm(n,1).join(""):e.slice(1);return i[t]()+r}}("toUpperCase");const _m=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,ym=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,wm=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,xm=/^((\w+:(\/{2,})?)|(\W))/i;function km(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,n),n}function Mm(t){return function(t){return t.replace(_m,"").match(ym)}(t=String(t))?t:"#"}function Sm(t,e){return!!t&&e.checkAttribute(t.name,"linkHref")}function Am(t,e){const n=(i=t,wm.test(i)?"mailto:":e);var i;const r=!!n&&!xm.test(t);return t&&r?n+t:t}class Cm extends Kt{constructor(t){super(t),this.manualDecorators=new Qn,this.automaticDecorators=new em}restoreManualDecoratorStates(){for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement()||Ps(e.getSelectedBlocks());Sm(n,t.schema)?(this.value=n.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttribute(n,"linkHref")):(this.value=e.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref"));for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}execute(t,e={}){const n=this.editor.model,i=n.document.selection,r=[],o=[];for(const t in e)e[t]?r.push(t):o.push(t);n.change((e=>{if(i.isCollapsed){const s=i.getFirstPosition();if(i.hasAttribute("linkHref")){const a=Uh(s,"linkHref",i.getAttribute("linkHref"),n);e.setAttribute("linkHref",t,a),r.forEach((t=>{e.setAttribute(t,!0,a)})),o.forEach((t=>{e.removeAttribute(t,a)})),e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(""!==t){const o=fi(i.getAttributes());o.set("linkHref",t),r.forEach((t=>{o.set(t,!0)}));const{end:a}=n.insertContent(e.createText(t,o),s);e.setSelection(a)}["linkHref",...r,...o].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(i.getRanges(),"linkHref"),a=[];for(const t of i.getSelectedBlocks())n.schema.checkAttribute(t,"linkHref")&&a.push(e.createRangeOn(t));const l=a.slice();for(const t of s)this._isRangeToUpdate(t,a)&&l.push(t);for(const n of l)e.setAttribute("linkHref",t,n),r.forEach((t=>{e.setAttribute(t,!0,n)})),o.forEach((t=>{e.removeAttribute(t,n)}))}}))}_getDecoratorStateFromModel(t){const e=this.editor.model,n=e.document.selection,i=n.getSelectedElement();return Sm(i,e.schema)?i.getAttribute(t):n.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e)if(n.containsRange(t))return!1;return!0}}class Lm extends Kt{refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement();Sm(n,t.schema)?this.isEnabled=t.schema.checkAttribute(n,"linkHref"):this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref")}execute(){const t=this.editor,e=this.editor.model,n=e.document.selection,i=t.commands.get("link");e.change((t=>{const r=n.isCollapsed?[Uh(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of r)if(t.removeAttribute("linkHref",e),i)for(const n of i.manualDecorators)t.removeAttribute(n.id,e)}))}}class Tm{constructor({id:t,label:e,attributes:n,classes:i,styles:r,defaultValue:o}){this.id=t,this.set("value"),this.defaultValue=o,this.label=e,this.attributes=n,this.classes=i,this.styles=r}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}Gt(Tm,Vt),n(88);const Dm=/^(https?:)?\/\//;class Em extends Jt{static get pluginName(){return"LinkEditing"}static get requires(){return[Dh,Ah,yd]}constructor(t){super(t),t.config.define("link",{addTargetToExternalLinks:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:km}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>km(Mm(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new Cm(t)),t.commands.add("unlink",new Lm(t));const e=function(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach((t=>(t.label&&n[t.label]&&(t.label=n[t.label]),t))),e}(t.t,function(t){const e=[];if(t)for(const[n,i]of Object.entries(t)){const t=Object.assign({},i,{id:"link"+vm(n)});e.push(t)}return e}(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter((t=>"automatic"===t.mode))),this._enableManualDecorators(e.filter((t=>"manual"===t.mode))),t.plugins.get(Dh).registerAttribute("linkHref"),function(t,e,n,i){const r=t.editing.view,o=new Set;r.document.registerPostFixer((r=>{const s=t.model.document.selection;let a=!1;if(s.hasAttribute(e)){const l=Uh(s.getFirstPosition(),e,s.getAttribute(e),t.model),c=t.editing.mapper.toViewRange(l);for(const t of c.getItems())t.is("element",n)&&!t.hasClass(i)&&(r.addClass(i,t),o.add(t),a=!0)}return a})),t.conversion.for("editingDowncast").add((t=>{function e(){r.change((t=>{for(const e of o.values())t.removeClass(i,e),o.delete(e)}))}t.on("insert",e,{priority:"highest"}),t.on("remove",e,{priority:"highest"}),t.on("attribute",e,{priority:"highest"}),t.on("selection",e,{priority:"highest"})}))}(t,"linkHref","a","ck-link_selected"),this._enableInsertContentSelectionAttributesFixer(),this._enableClickingAfterLink(),this._enableTypingOverLink(),this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor,n=e.commands.get("link").automaticDecorators;e.config.get("link.addTargetToExternalLinks")&&n.add({id:"linkIsExternal",mode:"automatic",callback:t=>Dm.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}}),n.add(t),n.length&&e.conversion.for("downcast").add(n.getDispatcher())}_enableManualDecorators(t){if(!t.length)return;const e=this.editor,n=e.commands.get("link").manualDecorators;t.forEach((t=>{e.model.schema.extend("$text",{allowAttributes:t.id}),t=new Tm(t),n.add(t),e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,{writer:n})=>{if(e){const e=n.createAttributeElement("a",t.attributes,{priority:5});t.classes&&n.addClass(t.classes,e);for(const i in t.styles)n.setStyle(i,t.styles[i],e);return n.setCustomProperty("link",!0,e),e}}}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",...t._createPattern()},model:{key:t.id}})}))}_enableInsertContentSelectionAttributesFixer(){const t=this.editor.model,e=t.document.selection;this.listenTo(t,"insertContent",(()=>{const n=e.anchor.nodeBefore,i=e.anchor.nodeAfter;e.hasAttribute("linkHref")&&n&&n.hasAttribute("linkHref")&&(i&&i.hasAttribute("linkHref")||t.change((e=>{Pm(e,Ym(t.schema))})))}),{priority:"low"})}_enableClickingAfterLink(){const t=this.editor,e=t.model;t.editing.view.addObserver(hd);let n=!1;this.listenTo(t.editing.view.document,"mousedown",(()=>{n=!0})),this.listenTo(t.editing.view.document,"selectionChange",(()=>{if(!n)return;n=!1;const t=e.document.selection;if(!t.isCollapsed)return;if(!t.hasAttribute("linkHref"))return;const i=t.getFirstPosition(),r=Uh(i,"linkHref",t.getAttribute("linkHref"),e);(i.isTouching(r.start)||i.isTouching(r.end))&&e.change((t=>{Pm(t,Ym(e.schema))}))}))}_enableTypingOverLink(){const t=this.editor,e=t.editing.view;let n,i;this.listenTo(e.document,"delete",(()=>{i=!0}),{priority:"high"}),this.listenTo(t.model,"deleteContent",(()=>{const e=t.model.document.selection;e.isCollapsed||(i?i=!1:Om(t)&&function(t){const e=t.document.selection,n=e.getFirstPosition(),i=e.getLastPosition(),r=n.nodeAfter;return!!r&&!!r.is("$text")&&!!r.hasAttribute("linkHref")&&(r===(i.textNode||i.nodeBefore)||Uh(n,"linkHref",r.getAttribute("linkHref"),t).containsRange(t.createRange(n,i),!0))}(t.model)&&(n=e.getAttributes()))}),{priority:"high"}),this.listenTo(t.model,"insertContent",((e,[r])=>{i=!1,Om(t)&&n&&(t.model.change((t=>{for(const[e,i]of n)t.setAttribute(e,i,r)})),n=null)}),{priority:"high"})}_handleDeleteContentAfterLink(){const t=this.editor,e=t.model,n=e.document.selection,i=t.editing.view;let r=!1,o=!1;this.listenTo(i.document,"delete",((t,e)=>{o=e.domEvent.keyCode===Er.backspace}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{r=!1;const t=n.getFirstPosition(),i=n.getAttribute("linkHref");if(!i)return;const o=Uh(t,"linkHref",i,e);r=o.containsPosition(t)||o.end.isEqual(t)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{o&&(o=!1,r||t.model.enqueueChange((t=>{Pm(t,Ym(e.schema))})))}),{priority:"low"})}}function Pm(t,e){t.removeSelectionAttribute("linkHref");for(const n of e)t.removeSelectionAttribute(n)}function Om(t){return t.plugins.get("Input").isInput(t.model.change((t=>t.batch)))}function Ym(t){return t.getDefinition("$text").allowAttributes.filter((t=>t.startsWith("link")))}n(90);class Im extends Ec{constructor(t,e){super(t);const n=t.t;this.focusTracker=new Os,this.keystrokes=new Ys,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Ac.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Ac.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e),this.children=this._createFormChildren(e.manualDecorators),this._focusables=new Dc,this._focusCycler=new nu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const i=["ck","ck-link-form","ck-responsive-form"];e.manualDecorators.length&&i.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:i,tabindex:"-1"},children:this.children}),Lc(this)}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((t,e)=>(t[e.name]=e.isOn,t)),{})}render(){super.render(),Tc({view:this}),[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new Pu(this.locale,Ou);return e.label=t("Link URL"),e}_createButton(t,e,n,i){const r=new tu(this.locale);return r.set({label:t,icon:e,tooltip:!0}),r.extendTemplate({attributes:{class:n}}),i&&r.delegate("execute").to(this,i),r}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const i=new eu(this.locale);i.set({name:n.id,label:n.label,withText:!0}),i.bind("isOn").toMany([n,t],"value",((t,e)=>void 0===e&&void 0===t?n.defaultValue:t)),i.on("execute",(()=>{n.set("value",!i.isOn)})),e.add(i)}return e}_createFormChildren(t){const e=this.createCollection();if(e.add(this.urlInputView),t.length){const t=new Ec;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}}),e.add(t)}return e.add(this.saveButtonView),e.add(this.cancelButtonView),e}}n(92);class zm extends Ec{constructor(t){super(t);const e=t.t;this.focusTracker=new Os,this.keystrokes=new Ys,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("Unlink"),'',"unlink"),this.editButtonView=this._createButton(e("Edit link"),Ac.pencil,"edit"),this.set("href"),this._focusables=new Dc,this._focusCycler=new nu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render(),[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const i=new tu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.delegate("execute").to(this,n),i}_createPreviewButton(){const t=new tu(this.locale),e=this.bindTemplate,n=this.t;return t.set({withText:!0,tooltip:n("Open link in new tab")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",(t=>t&&Mm(t))),target:"_blank",rel:"noopener noreferrer"}}),t.bind("label").to(this,"href",(t=>t||n("This link has no URL"))),t.bind("isEnabled").to(this,"href",(t=>!!t)),t.template.tag="a",t.template.eventListeners={},t}}class Nm extends Jt{static get requires(){return[Vu]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(dd),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(Vu),this._createToolbarLinkButton(),this._enableUserBalloonInteractions(),t.conversion.for("editingDowncast").markerToHighlight({model:"link-ui",view:{classes:["ck-fake-link-selection"]}}),t.conversion.for("editingDowncast").markerToElement({model:"link-ui",view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new zm(t.locale),n=t.commands.get("link"),i=t.commands.get("unlink");return e.bind("href").to(n,"value"),e.editButtonView.bind("isEnabled").to(n),e.unlinkButtonView.bind("isEnabled").to(i),this.listenTo(e,"edit",(()=>{this._addFormView()})),this.listenTo(e,"unlink",(()=>{t.execute("unlink"),this._hideUI()})),e.keystrokes.set("Esc",((t,e)=>{this._hideUI(),e()})),e.keystrokes.set("Ctrl+K",((t,e)=>{this._addFormView(),e()})),e}_createFormView(){const t=this.editor,e=t.commands.get("link"),n=t.config.get("link.defaultProtocol"),i=new Im(t.locale,e);return i.urlInputView.fieldView.bind("value").to(e,"value"),i.urlInputView.bind("isReadOnly").to(e,"isEnabled",(t=>!t)),i.saveButtonView.bind("isEnabled").to(e),this.listenTo(i,"submit",(()=>{const{value:e}=i.urlInputView.fieldView.element,r=Am(e,n);t.execute("link",r,i.getDecoratorSwitchesState()),this._closeFormView()})),this.listenTo(i,"cancel",(()=>{this._closeFormView()})),i.keystrokes.set("Esc",((t,e)=>{this._closeFormView(),e()})),i}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),n=t.t;t.keystrokes.set("Ctrl+K",((t,n)=>{n(),e.isEnabled&&this._showUI(!0)})),t.ui.componentFactory.add("link",(t=>{const i=new tu(t);return i.isEnabled=!0,i.label=n("Link"),i.icon='',i.keystroke="Ctrl+K",i.tooltip=!0,i.isToggleable=!0,i.bind("isEnabled").to(e,"isEnabled"),i.bind("isOn").to(e,"value",(t=>!!t)),this.listenTo(i,"execute",(()=>this._showUI(!0))),i}))}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),this.editor.keystrokes.set("Tab",((t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((t,e)=>{this._isUIVisible&&(this._hideUI(),e())})),Cc({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this.formView.disableCssTransitions(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions(),this.formView.urlInputView.fieldView.element.value=t.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates(),void 0!==t.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(t=!1){this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const t=this.editor;this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),t.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let n=this._getSelectedLinkElement(),i=o();const r=()=>{const t=this._getSelectedLinkElement(),e=o();n&&!t||!n&&e!==i?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),n=t,i=e};function o(){return e.selection.focus.getAncestors().reverse().find((t=>t.is("element")))}this.listenTo(t.ui,"update",r),this.listenTo(this._balloon,"change:visibleView",r)}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=this.editor.model,n=t.document;let i=null;if(e.markers.has("link-ui")){const e=Array.from(this.editor.editing.mapper.markerNameToElements("link-ui")),n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));i=t.domConverter.viewRangeToDom(n)}else i=()=>{const e=this._getSelectedLinkElement();return e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(n.selection.getFirstRange())};return{target:i}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection,n=e.getSelectedElement();if(e.isCollapsed||n&&Yd(n))return Rm(e.getFirstPosition());{const n=e.getFirstRange().getTrimmed(),i=Rm(n.start),r=Rm(n.end);return i&&i==r&&t.createRangeIn(i).getTrimmed().isEqual(n)?i:null}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const n=t.document.selection.getFirstRange();if(t.markers.has("link-ui"))e.updateMarker("link-ui",{range:n});else if(n.start.isAtEnd){const i=n.start.getLastMatchingPosition((({item:e})=>!t.schema.isContent(e)),{boundaries:n});e.addMarker("link-ui",{usingOperation:!1,affectsData:!1,range:e.createRange(i,n.end)})}else e.addMarker("link-ui",{usingOperation:!1,affectsData:!1,range:n})}))}_hideFakeVisualSelection(){const t=this.editor.model;t.markers.has("link-ui")&&t.change((t=>{t.removeMarker("link-ui")}))}}function Rm(t){return t.getAncestors().find((t=>{return(e=t).is("attributeElement")&&!!e.getCustomProperty("link");var e}))}const jm=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class Fm extends Jt{static get pluginName(){return"AutoLink"}init(){const t=this.editor.model.document.selection;t.on("change:range",(()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling()}_enableTypingHandling(){const t=this.editor,e=new Th(t.model,(t=>{if(!function(t){return t.length>4&&" "===t[t.length-1]&&" "!==t[t.length-2]}(t))return;const e=Hm(t.substr(0,t.length-1));return e?{url:e}:void 0})),n=t.plugins.get("Input");e.on("matched:data",((e,i)=>{const{batch:r,range:o,url:s}=i;if(!n.isInput(r))return;const a=o.end.getShiftedBy(-1),l=a.getShiftedBy(-s.length),c=t.model.createRange(l,a);this._applyAutoLink(s,c)})),e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("enter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling)return;const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)}))}_enableShiftEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("shiftEnter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition(),n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)}))}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model,{text:n,range:i}=Lh(t,e),r=Hm(n);if(r){const t=e.createRange(i.end.getShiftedBy(-r.length),i.end);this._applyAutoLink(r,t)}}_applyAutoLink(t,e){const n=this.editor.model;this.isEnabled&&function(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}(e,n)&&n.enqueueChange((n=>{const i=this.editor.config.get("link.defaultProtocol"),r=Am(t,i);n.setAttribute("linkHref",r,e)}))}}function Hm(t){const e=jm.exec(t);return e?e[2]:null}class Bm extends Kt{constructor(t,e){super(t),this.type=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document,i=Array.from(n.selection.getSelectedBlocks()).filter((t=>Wm(t,e.schema))),r=void 0!==t.forceValue?!t.forceValue:this.value;e.change((t=>{if(r){let e=i[i.length-1].nextSibling,n=Number.POSITIVE_INFINITY,r=[];for(;e&&"listItem"==e.name&&0!==e.getAttribute("listIndent");){const t=e.getAttribute("listIndent");t=n;)o>r.getAttribute("listIndent")&&(o=r.getAttribute("listIndent")),r.getAttribute("listIndent")==o&&t[e?"unshift":"push"](r),r=r[e?"previousSibling":"nextSibling"]}}function Wm(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class Um extends Kt{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change((t=>{const e=n[n.length-1];let i=e.nextSibling;for(;i&&"listItem"==i.name&&i.getAttribute("listIndent")>e.getAttribute("listIndent");)n.push(i),i=i.nextSibling;this._indentBy<0&&(n=n.reverse());for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;n<0?t.rename(e,"paragraph"):t.setAttribute("listIndent",n,e)}this.fire("_executeCleanup",n)}))}_checkEnabled(){const t=Ps(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),n=t.getAttribute("listType");let i=t.previousSibling;for(;i&&i.is("element","listItem")&&i.getAttribute("listIndent")>=e;){if(i.getAttribute("listIndent")==e)return i.getAttribute("listType")==n;i=i.previousSibling}return!1}return!0}}function Xm(t,e){const n=e.mapper,i=e.writer,r="numbered"==t.getAttribute("listType")?"ol":"ul",o=function(t){const e=t.createContainerElement("li");return e.getFillerOffset=Km,e}(i),s=i.createContainerElement(r,null);return i.insert(i.createPositionAt(s,0),o),n.bindElements(t,o),o}function $m(t,e,n,i){const r=e.parent,o=n.mapper,s=n.writer;let a=o.toViewPosition(i.createPositionBefore(t));const l=Jm(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),c=t.previousSibling;if(l&&l.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=o.toViewElement(l);a=s.breakContainer(s.createPositionAfter(t))}else if(c&&"listItem"==c.name){a=o.toViewPosition(i.createPositionAt(c,"end"));const t=o.findMappedViewAncestor(a),e=function(t){for(const e of t.getChildren())if("ul"==e.name||"ol"==e.name)return e;return null}(t);a=e?s.createPositionBefore(e):s.createPositionAt(t,"end")}else a=o.toViewPosition(i.createPositionBefore(t));if(a=Gm(a),s.insert(a,r),c&&"listItem"==c.name){const t=o.toViewElement(c),n=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const t of n)if(t.item.is("element","li")){const i=s.breakContainer(s.createPositionBefore(t.item)),r=t.item.parent,o=s.createPositionAt(e,"end");qm(s,o.nodeBefore,o.nodeAfter),s.move(s.createRangeOn(r),o),n.position=i}}else{const n=r.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let i=null;for(const e of n.getChildren()){const n=o.toModelElement(e);if(!(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")))break;i=e}i&&(s.breakContainer(s.createPositionAfter(i)),s.move(s.createRangeOn(i.parent),s.createPositionAt(e,"end")))}}qm(s,r,r.nextSibling),qm(s,r.previousSibling,r)}function qm(t,e,n){return!e||!n||"ul"!=e.name&&"ol"!=e.name||e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")?null:t.mergeContainers(t.createPositionAfter(e))}function Gm(t){return t.getLastMatchingPosition((t=>t.item.is("uiElement")))}function Jm(t,e){const n=!!e.sameIndent,i=!!e.smallerIndent,r=e.listIndent;let o=t;for(;o&&"listItem"==o.name;){const t=o.getAttribute("listIndent");if(n&&r==t||i&&r>t)return o;o="forward"===e.direction?o.nextSibling:o.previousSibling}return null}function Zm(t,e,n,i){t.ui.componentFactory.add(e,(r=>{const o=t.commands.get(e),s=new tu(r);return s.set({label:n,icon:i,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(o,"value","isEnabled"),s.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),s}))}function Km(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:ir.call(this)}function Qm(t){return(e,n,i)=>{const r=i.consumable;if(!r.test(n.item,"insert")||!r.test(n.item,"attribute:listType")||!r.test(n.item,"attribute:listIndent"))return;r.consume(n.item,"insert"),r.consume(n.item,"attribute:listType"),r.consume(n.item,"attribute:listIndent");const o=n.item;$m(o,Xm(o,i),i,t)}}function tg(t,e,n){if(!n.consumable.consume(e.item,"attribute:listType"))return;const i=n.mapper.toViewElement(e.item),r=n.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const o=i.parent,s="numbered"==e.attributeNewValue?"ol":"ul";r.rename(s,o)}function eg(t,e,n){const i=n.mapper.toViewElement(e.item).parent,r=n.writer;qm(r,i,i.nextSibling),qm(r,i.previousSibling,i);for(const t of e.item.getChildren())n.consumable.consume(t,"insert")}function ng(t,e,n){if("listItem"!=e.item.name){let t=n.mapper.toViewPosition(e.range.start);const i=n.writer,r=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&(t=i.breakContainer(t),"li"==t.parent.name);){const e=t,n=i.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=i.remove(i.createRange(e,n));r.push(t)}t=i.createPositionAfter(t.parent)}if(r.length>0){for(let e=0;e0){const e=qm(i,n,n.nextSibling);e&&e.parent==n&&t.offset--}}qm(i,t.nodeBefore,t.nodeAfter)}}}function ig(t,e,n){const i=n.mapper.toViewPosition(e.position),r=i.nodeBefore,o=i.nodeAfter;qm(n.writer,r,o)}function rg(t,e,n){if(n.consumable.consume(e.viewItem,{name:!0})){const t=n.writer,i=t.createElement("listItem"),r=function(t){let e=0,n=t.parent;for(;n;){if(n.is("element","li"))e++;else{const t=n.previousSibling;t&&t.is("element","li")&&e++}n=n.parent}return e}(e.viewItem);t.setAttribute("listIndent",r,i);const o=e.viewItem.parent&&"ol"==e.viewItem.parent.name?"numbered":"bulleted";if(t.setAttribute("listType",o,i),!n.safeInsert(i,e.modelCursor))return;const s=function(t,e,n){const{writer:i,schema:r}=n;let o=i.createPositionAfter(t);for(const s of e)if("ul"==s.name||"ol"==s.name)o=n.convertItem(s,o).modelCursor;else{const e=n.convertItem(s,i.createPositionAt(t,"end")),a=e.modelRange.start.nodeAfter;a&&a.is("element")&&!r.checkChild(t,a.name)&&(t=e.modelCursor.parent.is("element","listItem")?e.modelCursor.parent:cg(e.modelCursor),o=i.createPositionAfter(t))}return o}(i,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s),n.updateConversionResult(i,e)}}function og(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){const t=Array.from(e.viewItem.getChildren());for(const e of t)!e.is("element","li")&&!dg(e)&&e._remove()}}function sg(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){if(0===e.viewItem.childCount)return;const t=[...e.viewItem.getChildren()];let n=!1,i=!0;for(const e of t)n&&!dg(e)&&e._remove(),e.is("$text")?(i&&(e._data=e.data.trimStart()),e.nextSibling&&!dg(e.nextSibling)||(e._data=e.data.trimEnd())):dg(e)&&(n=!0),i=!1}}function ag(t){return(e,n)=>{if(n.isPhantom)return;const i=n.modelPosition.nodeBefore;if(i&&i.is("element","listItem")){const e=n.mapper.toViewElement(i),r=e.getAncestors().find(dg),o=t.createPositionAt(e,0).getWalker();for(const t of o){if("elementStart"==t.type&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}if("elementEnd"==t.type&&t.item==r){n.viewPosition=t.nextPosition;break}}}}}function lg(t,[e,n]){let i,r=e.is("documentFragment")?e.getChild(0):e;if(i=n?this.createSelection(n):this.document.selection,r&&r.is("element","listItem")){const t=i.getFirstPosition();let e=null;if(t.parent.is("element","listItem")?e=t.parent:t.nodeBefore&&t.nodeBefore.is("element","listItem")&&(e=t.nodeBefore),e){const t=e.getAttribute("listIndent");if(t>0)for(;r&&r.is("element","listItem");)r._setAttribute("listIndent",r.getAttribute("listIndent")+t),r=r.nextSibling}}}function cg(t){const e=new Ks({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function ug(t,e,n,i,r,o){const s=Jm(e.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:t,foo:"b"}),a=r.mapper,l=r.writer,c=s?s.getAttribute("listIndent"):null;let u;if(s)if(c==t){const t=a.toViewElement(s).parent;u=l.createPositionAfter(t)}else{const t=o.createPositionAt(s,"end");u=a.toViewPosition(t)}else u=n;u=Gm(u);for(const t of[...i.getChildren()])dg(t)&&(u=l.move(l.createRangeOn(t),u).end,qm(l,t,t.nextSibling),qm(l,t.previousSibling,t))}function dg(t){return t.is("element","ol")||t.is("element","ul")}class hg extends Jt{static get pluginName(){return"ListEditing"}static get requires(){return[Sd,Td]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data,n=t.editing;var i;t.model.document.registerPostFixer((e=>function(t,e){const n=t.document.differ.getChanges(),i=new Map;let r=!1;for(const i of n)if("insert"==i.type&&"listItem"==i.name)o(i.position);else if("insert"==i.type&&"listItem"!=i.name){if("$text"!=i.name){const n=i.position.nodeAfter;n.hasAttribute("listIndent")&&(e.removeAttribute("listIndent",n),r=!0),n.hasAttribute("listType")&&(e.removeAttribute("listType",n),r=!0),n.hasAttribute("listStyle")&&(e.removeAttribute("listStyle",n),r=!0);for(const e of Array.from(t.createRangeIn(n)).filter((t=>t.item.is("element","listItem"))))o(e.previousPosition)}o(i.position.getShiftedBy(i.length))}else"remove"==i.type&&"listItem"==i.name?o(i.position):("attribute"==i.type&&"listIndent"==i.attributeKey||"attribute"==i.type&&"listType"==i.attributeKey)&&o(i.range.start);for(const t of i.values())s(t),a(t);return r;function o(t){const e=t.nodeBefore;if(e&&e.is("element","listItem")){let t=e;if(i.has(t))return;for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling)if(t=e,i.has(t))return;i.set(e,t)}else{const e=t.nodeAfter;e&&e.is("element","listItem")&&i.set(e,e)}}function s(t){let n=0,i=null;for(;t&&t.is("element","listItem");){const o=t.getAttribute("listIndent");if(o>n){let s;null===i?(i=o-n,s=n):(i>o&&(i=o),s=o-i),e.setAttribute("listIndent",s,t),r=!0}else i=null,n=t.getAttribute("listIndent")+1;t=t.nextSibling}}function a(t){let n=[],i=null;for(;t&&t.is("element","listItem");){const o=t.getAttribute("listIndent");if(i&&i.getAttribute("listIndent")>o&&(n=n.slice(0,o+1)),0!=o)if(n[o]){const i=n[o];t.getAttribute("listType")!=i&&(e.setAttribute("listType",i,t),r=!0)}else n[o]=t.getAttribute("listType");i=t,t=t.nextSibling}}}(t.model,e))),n.mapper.registerViewToModelLength("li",fg),e.mapper.registerViewToModelLength("li",fg),n.mapper.on("modelToViewPosition",ag(n.view)),n.mapper.on("viewToModelPosition",(i=t.model,(t,e)=>{const n=e.viewPosition,r=n.parent,o=e.mapper;if("ul"==r.name||"ol"==r.name){if(n.isAtEnd){const t=o.toModelElement(n.nodeBefore),r=o.getModelLength(n.nodeBefore);e.modelPosition=i.createPositionBefore(t).getShiftedBy(r)}else{const t=o.toModelElement(n.nodeAfter);e.modelPosition=i.createPositionBefore(t)}t.stop()}else if("li"==r.name&&n.nodeBefore&&("ul"==n.nodeBefore.name||"ol"==n.nodeBefore.name)){const s=o.toModelElement(r);let a=1,l=n.nodeBefore;for(;l&&dg(l);)a+=o.getModelLength(l),l=l.previousSibling;e.modelPosition=i.createPositionBefore(s).getShiftedBy(a),t.stop()}})),e.mapper.on("modelToViewPosition",ag(n.view)),t.conversion.for("editingDowncast").add((e=>{e.on("insert",ng,{priority:"high"}),e.on("insert:listItem",Qm(t.model)),e.on("attribute:listType:listItem",tg,{priority:"high"}),e.on("attribute:listType:listItem",eg,{priority:"low"}),e.on("attribute:listIndent:listItem",function(t){return(e,n,i)=>{if(!i.consumable.consume(n.item,"attribute:listIndent"))return;const r=i.mapper.toViewElement(n.item),o=i.writer;o.breakContainer(o.createPositionBefore(r)),o.breakContainer(o.createPositionAfter(r));const s=r.parent,a=s.previousSibling,l=o.createRangeOn(s);o.remove(l),a&&a.nextSibling&&qm(o,a,a.nextSibling),ug(n.attributeOldValue+1,n.range.start,l.start,r,i,t),$m(n.item,r,i,t);for(const t of n.item.getChildren())i.consumable.consume(t,"insert")}}(t.model)),e.on("remove:listItem",function(t){return(e,n,i)=>{const r=i.mapper.toViewPosition(n.position).getLastMatchingPosition((t=>!t.item.is("element","li"))).nodeAfter,o=i.writer;o.breakContainer(o.createPositionBefore(r)),o.breakContainer(o.createPositionAfter(r));const s=r.parent,a=s.previousSibling,l=o.createRangeOn(s),c=o.remove(l);a&&a.nextSibling&&qm(o,a,a.nextSibling),ug(i.mapper.toModelElement(r).getAttribute("listIndent")+1,n.position,l.start,r,i,t);for(const t of o.createRangeIn(c).getItems())i.mapper.unbindViewElement(t);e.stop()}}(t.model)),e.on("remove",ig,{priority:"low"})})),t.conversion.for("dataDowncast").add((e=>{e.on("insert",ng,{priority:"high"}),e.on("insert:listItem",Qm(t.model))})),t.conversion.for("upcast").add((t=>{t.on("element:ul",og,{priority:"high"}),t.on("element:ol",og,{priority:"high"}),t.on("element:li",sg,{priority:"high"}),t.on("element:li",rg)})),t.model.on("insertContent",lg,{priority:"high"}),t.commands.add("numberedList",new Bm(t,"numbered")),t.commands.add("bulletedList",new Bm(t,"bulleted")),t.commands.add("indentList",new Um(t,"forward")),t.commands.add("outdentList",new Um(t,"backward"));const r=n.view.document;this.listenTo(r,"enter",((t,e)=>{const n=this.editor.model.document,i=n.selection.getLastPosition().parent;n.selection.isCollapsed&&"listItem"==i.name&&i.isEmpty&&(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(r,"delete",((t,e)=>{if("backward"!==e.direction)return;const n=this.editor.model.document.selection;if(!n.isCollapsed)return;const i=n.getFirstPosition();if(!i.isAtStart)return;const r=i.parent;"listItem"===r.name&&(r.previousSibling&&"listItem"===r.previousSibling.name||(this.editor.execute("outdentList"),e.preventDefault(),t.stop()))}),{context:"li"});const o=t=>(e,n)=>{this.editor.commands.get(t).isEnabled&&(this.editor.execute(t),n())};t.keystrokes.set("Tab",o("indentList")),t.keystrokes.set("Shift+Tab",o("outdentList"))}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList")),n&&n.registerChildCommand(t.get("outdentList"))}}function fg(t){let e=1;for(const n of t.getChildren())if("ul"==n.name||"ol"==n.name)for(const t of n.getChildren())e+=fg(t);return e}class pg extends Jt{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;Zm(this.editor,"numberedList",t("Numbered List"),''),Zm(this.editor,"bulletedList",t("Bulleted List"),'')}}function mg(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,i,r){if(!r.consumable.consume(i.item,n.name))return;const o=i.attributeNewValue,s=r.writer,a=r.mapper.toViewElement(i.item),l=[...a.getChildren()].find((t=>t.getCustomProperty("media-content")));s.remove(l);const c=t.getMediaViewElement(s,o,e);s.insert(s.createPositionAt(a,0),c)}}function gg(t,e,n,i){const r=t.createContainerElement("figure",{class:"media"});return t.insert(t.createPositionAt(r,0),e.getMediaViewElement(t,n,i)),r}function bg(t){const e=t.getSelectedElement();return e&&e.is("element","media")?e:null}function vg(t,e,n){t.change((i=>{const r=i.createElement("media",{url:e});t.insertContent(r,n),i.setSelection(r,"on")}))}class _g extends Kt{refresh(){const t=this.editor.model,e=t.document.selection,n=bg(e);this.value=n?n.getAttribute("url"):null,this.isEnabled=function(t){const e=t.getSelectedElement();return!!e&&"media"===e.name}(e)||function(t,e){let n=Hd(t,e).start.parent;return n.isEmpty&&!e.schema.isLimit(n)&&(n=n.parent),e.schema.checkChild(n,"media")}(e,t)}execute(t){const e=this.editor.model,n=e.document.selection,i=bg(n);i?e.change((e=>{e.setAttribute("url",t,i)})):vg(e,t,Hd(n,e))}}class yg{constructor(t,e){const n=e.providers,i=e.extraProviders||[],r=new Set(e.removeProviders),o=n.concat(i).filter((t=>{const e=t.name;return e?!r.has(e):(Object(l.b)("media-embed-no-provider-name",{provider:t}),!1)}));this.locale=t,this.providerDefinitions=o}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t)return new wg(this.locale);t=t.trim();for(const e of this.providerDefinitions){const n=e.html,i=ei(e.url);for(const e of i){const i=this._getUrlMatches(t,e);if(i)return new wg(this.locale,t,i,n)}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n)return n;let i=t.replace(/^https?:\/\//,"");return n=i.match(e),n||(i=i.replace(/^www\./,""),n=i.match(e),n||null)}}class wg{constructor(t,e,n,i){this.url=this._getValidUrl(e),this._t=t.t,this._match=n,this._previewRenderer=i}getViewElement(t,e){const n={};let i;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(n["data-oembed-url"]=this.url),e.renderForEditingView&&(n.class="ck-media__wrapper");const r=this._getPreviewHtml(e);i=t.createRawElement("div",n,(function(t){t.innerHTML=r}))}else this.url&&(n.url=this.url),i=t.createEmptyElement(e.elementName,n);return t.setCustomProperty("media-content",!0,i),i}_getPreviewHtml(t){return this._previewRenderer?this._previewRenderer(this._match):this.url&&t.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const t=new Qc,e=new Kc;return t.text=this._t("Open media in new tab"),e.content='',e.viewBox="0 0 64 42",new Pc({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[e]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]},t]}]}).render().outerHTML}_getValidUrl(t){return t?t.match(/^https?/)?t:"https://"+t:null}}n(94);class xg extends Jt{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t),t.config.define("mediaEmbed",{elementName:"oembed",providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>`
    `},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>`
    `},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)/,/^youtube\.com\/embed\/([\w-]+)/,/^youtu\.be\/([\w-]+)/],html:t=>`
    `},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>`
    `},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:[/^google\.com\/maps/,/^goo\.gl\/maps/,/^maps\.google\.com/,/^maps\.app\.goo\.gl/]},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new yg(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor,e=t.model.schema,n=t.t,i=t.conversion,r=t.config.get("mediaEmbed.previewsInData"),o=t.config.get("mediaEmbed.elementName"),s=this.registry;t.commands.add("mediaEmbed",new _g(t)),e.register("media",{isObject:!0,isBlock:!0,allowWhere:"$block",allowAttributes:["url"]}),i.for("dataDowncast").elementToElement({model:"media",view:(t,{writer:e})=>{const n=t.getAttribute("url");return gg(e,s,n,{elementName:o,renderMediaPreview:n&&r})}}),i.for("dataDowncast").add(mg(s,{elementName:o,renderMediaPreview:r})),i.for("editingDowncast").elementToElement({model:"media",view:(t,{writer:e})=>{const i=t.getAttribute("url");return function(t,e,n){return e.setCustomProperty("media",!0,t),Id(t,e,{label:n})}(gg(e,s,i,{elementName:o,renderForEditingView:!0}),e,n("media widget"))}}),i.for("editingDowncast").add(mg(s,{elementName:o,renderForEditingView:!0})),i.for("upcast").elementToElement({view:t=>["oembed",o].includes(t.name)&&t.getAttribute("url")?{name:!0}:null,model:(t,{writer:e})=>{const n=t.getAttribute("url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(t,{writer:e})=>{const n=t.getAttribute("data-oembed-url");if(s.hasMedia(n))return e.createElement("media",{url:n})}})}}const kg=/^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;class Mg extends Jt{static get requires(){return[ch,nf]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t),this._timeoutId=null,this._positionToInsert=null}init(){const t=this.editor,e=t.model.document;this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",(()=>{const t=e.selection.getFirstRange(),n=tc.fromPosition(t.start);n.stickiness="toPrevious";const i=tc.fromPosition(t.end);i.stickiness="toNext",e.once("change:data",(()=>{this._embedMediaBetweenPositions(n,i),n.detach(),i.detach()}),{priority:"high"})})),t.commands.get("undo").on("execute",(()=>{this._timeoutId&&(wo.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)}),{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor,i=n.plugins.get(xg).registry,r=new ba(t,e),o=r.getWalker({ignoreElementEnd:!0});let s="";for(const t of o)t.item.is("$textProxy")&&(s+=t.item.data);s=s.trim(),s.match(kg)&&i.hasMedia(s)&&n.commands.get("mediaEmbed").isEnabled?(this._positionToInsert=tc.fromPosition(t),this._timeoutId=wo.window.setTimeout((()=>{n.model.change((t=>{let e;this._timeoutId=null,t.remove(r),r.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(e=this._positionToInsert),vg(n.model,s,e),this._positionToInsert.detach(),this._positionToInsert=null}))}),100)):r.detach()}}n(96);class Sg extends Ec{constructor(t,e){super(e);const n=e.t;this.focusTracker=new Os,this.keystrokes=new Ys,this.set("mediaURLInputValue",""),this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Ac.check,"ck-button-save"),this.saveButtonView.type="submit",this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",(t=>!!t)),this.cancelButtonView=this._createButton(n("Cancel"),Ac.cancel,"ck-button-cancel","cancel"),this._focusables=new Dc,this._focusCycler=new nu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=t,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]}),Lc(this)}render(){super.render(),Tc({view:this}),[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t),this.listenTo(this.urlInputView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"})}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(t){this.urlInputView.fieldView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.urlInputView.errorText=e,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t,e=new Pu(this.locale,Ou),n=e.fieldView;return this._urlInputViewInfoDefault=t("Paste the media URL in the input."),this._urlInputViewInfoTip=t("Tip: Paste the URL into the content to embed faster."),e.label=t("Media URL"),e.infoText=this._urlInputViewInfoDefault,n.on("input",(()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault,this.mediaURLInputValue=n.element.value.trim()})),e}_createButton(t,e,n,i){const r=new tu(this.locale);return r.set({label:t,icon:e,tooltip:!0}),r.extendTemplate({attributes:{class:n}}),i&&r.delegate("execute").to(this,i),r}}class Ag extends Jt{static get requires(){return[xg]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor,e=t.commands.get("mediaEmbed"),n=t.plugins.get(xg).registry;t.ui.componentFactory.add("mediaEmbed",(i=>{const r=ku(i),o=new Sg(function(t,e){return[e=>{if(!e.url.length)return t("The URL must not be empty.")},n=>{if(!e.hasMedia(n.url))return t("This media URL is not supported.")}]}(t.t,n),t.locale);return this._setUpDropdown(r,o,e,t),this._setUpForm(r,o,e),r}))}_setUpDropdown(t,e,n){const i=this.editor,r=i.t,o=t.buttonView;function s(){i.editing.view.focus(),t.isOpen=!1}t.bind("isEnabled").to(n),t.panelView.children.add(e),o.set({label:r("Insert media"),icon:'',tooltip:!0}),o.on("open",(()=>{e.disableCssTransitions(),e.url=n.value||"",e.urlInputView.fieldView.select(),e.focus(),e.enableCssTransitions()}),{priority:"low"}),t.on("submit",(()=>{e.isValid()&&(i.execute("mediaEmbed",e.url),s())})),t.on("change:isOpen",(()=>e.resetFormStatus())),t.on("cancel",(()=>s()))}_setUpForm(t,e,n){e.delegate("submit","cancel").to(t),e.urlInputView.bind("value").to(n,"value"),e.urlInputView.bind("isReadOnly").to(n,"isEnabled",(t=>!t))}}function Cg(t,e){if(!t.childCount)return;const n=new fd(t.document),i=function(t,e){const n=e.createRangeIn(t),i=new pi({name:/^p|h\d+$/,styles:{"mso-list":/.*/}}),r=[];for(const t of n)if("elementStart"===t.type&&i.match(t.item)){const e=Dg(t.item);r.push({element:t.item,id:e.id,order:e.order,indent:e.indent})}return r}(t,n);if(!i.length)return;let r=null,o=1;i.forEach(((t,s)=>{const a=function(t,e){if(!t)return!0;if(t.id!==e.id)return e.indent-t.indent!=1;const n=e.element.previousSibling;return!n||!((i=n).is("element","ol")||i.is("element","ul"));var i}(i[s-1],t),l=(u=t,(c=a?null:i[s-1])?u.indent-c.indent:u.indent-1);var c,u;if(a&&(r=null,o=1),!r||0!==l){const i=function(t,e){const n=/mso-level-number-format:([^;]{0,100});/gi,i=new RegExp(`@list l${t.id}:level${t.indent}\\s*({[^}]*)`,"gi").exec(e);let r="decimal",o="ol";if(i&&i[1]){const e=n.exec(i[1]);if(e&&e[1]&&(r=e[1].trim(),o="bullet"!==r&&"image"!==r?"ol":"ul"),"bullet"===r){const e=function(t){const e=function(t){if(t.getChild(0).is("$text"))return null;for(const e of t.getChildren()){if(!e.is("element","span"))continue;const t=e.getChild(0);return t.is("$text")?t:t.getChild(0)}}(t);if(!e)return null;const n=e._data;return"o"===n?"circle":"·"===n?"disc":"§"===n?"square":null}(t.element);e&&(r=e)}}return{type:o,style:Lg(r)}}(t,e);if(r){if(t.indent>o){const t=r.getChild(r.childCount-1),e=t.getChild(t.childCount-1);r=Tg(i,e,n),o+=1}else if(t.indentt.indexOf(e)>-1))?o.push(n):n.getAttribute("src")||o.push(n)}for(const t of o)n.remove(t)}(function(t,e){const n=e.createRangeIn(t),i=new pi({name:/v:(.+)/}),r=[];for(const t of n){const e=t.item,n=e.previousSibling&&e.previousSibling.name||null;i.match(e)&&e.getAttribute("o:gfxdata")&&"v:shapetype"!==n&&r.push(t.item.getAttribute("id"))}return r}(t,n),t,n),function(t,e){const n=e.createRangeIn(t),i=new pi({name:/v:(.+)/}),r=[];for(const t of n)i.match(t.item)&&r.push(t.item);for(const t of r)e.remove(t)}(t,n);const i=function(t,e){const n=e.createRangeIn(t),i=new pi({name:"img"}),r=[];for(const t of n)i.match(t.item)&&t.item.getAttribute("src").startsWith("file://")&&r.push(t.item);return r}(t,n);i.length&&function(t,e,n){if(t.length===e.length)for(let r=0;rString.fromCharCode(parseInt(t,16)))).join(""))}`;n.setAttribute("src",o,t[r])}var i}(i,function(t){if(!t)return[];const e=/{\\pict[\s\S]+?\\bliptag-?\d+(\\blipupi-?\d+)?({\\\*\\blipuid\s?[\da-fA-F]+)?[\s}]*?/,n=new RegExp("(?:("+e.source+"))([\\da-fA-F\\s]+)\\}","g"),i=t.match(n),r=[];if(i)for(const t of i){let n=!1;t.includes("\\pngblip")?n="image/png":t.includes("\\jpegblip")&&(n="image/jpeg"),n&&r.push({hex:t.replace(e,"").replace(/[^\da-fA-F]/g,""),type:n})}return r}(e),n)}const Yg=//i,Ig=/xmlns:o="urn:schemas-microsoft-com/i;class zg{constructor(t){this.document=t}isActive(t){return Yg.test(t)||Ig.test(t)}execute(t){const{body:e,stylesString:n}=t._parsedData;Cg(e,n),Og(e,t.dataTransfer.getData("text/rtf")),t.content=e}}function Ng(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1===e.length?" ":Array(e.length+1).join("  ").substr(0,e.length)))}function Rg(t,e){const n=new DOMParser,i=function(t){return Ng(Ng(t)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(t){const e=t.indexOf("");if(e<0)return t;const n=t.indexOf("",e+"".length);return t.substring(0,e+"".length)+(n>=0?t.substring(n):"")}(t=t.replace(//g,"$1").replace(//g,"$1")),Xo(u,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""}));l+=t.length-h.length,t=h,A(u,l-c,l)}else{var f=t.indexOf("<");if(0===f){if(Ro.test(t)){var p=t.indexOf("--\x3e");if(p>=0){e.shouldKeepComment&&e.comment(t.substring(4,p),l,l+p+3),k(p+3);continue}}if(jo.test(t)){var m=t.indexOf("]>");if(m>=0){k(m+2);continue}}var g=t.match(No);if(g){k(g[0].length);continue}var b=t.match(zo);if(b){var v=l;k(b[0].length),A(b[1],v,l);continue}var _=M();if(_){S(_),Xo(_.tagName,t)&&k(1);continue}}var y=void 0,w=void 0,x=void 0;if(f>=0){for(w=t.slice(f);!(zo.test(w)||Yo.test(w)||Ro.test(w)||jo.test(w)||(x=w.indexOf("<",1))<0);)f+=x,w=t.slice(f);y=t.substring(0,f)}f<0&&(y=t),y&&k(y.length),e.chars&&y&&e.chars(y,l-y.length,l)}if(t===n){e.chars&&e.chars(t);break}}function k(e){l+=e,t=t.substring(e)}function M(){var e=t.match(Yo);if(e){var n,i,r={tagName:e[1],attrs:[],start:l};for(k(e[0].length);!(n=t.match(Io))&&(i=t.match(Eo)||t.match(Do));)i.start=l,k(i[0].length),i.end=l,r.attrs.push(i);if(n)return r.unarySlash=n[1],k(n[0].length),r.end=l,r}}function S(t){var n=t.tagName,l=t.unarySlash;o&&("p"===i&&To(n)&&A(i),a(n)&&i===n&&A(n));for(var c=s(n)||!!l,u=t.attrs.length,d=new Array(u),h=0;h=0&&r[s].lowerCasedTag!==a;s--);else s=0;if(s>=0){for(var c=r.length-1;c>=s;c--)e.end&&e.end(r[c].tag,n,o);r.length=s,i=s&&r[s-1].tag}else"br"===a?e.start&&e.start(t,[],!0,n,o):"p"===a&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}A()}(t,{warn:qo,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,n,s,a,d){var h=r&&r.ns||es(t);K&&"svg"===h&&(n=function(t){for(var e=[],n=0;nl&&(a.push(o=t.slice(l,r)),s.push(JSON.stringify(o)));var c=Yi(i[1].trim());s.push("_s("+c+")"),a.push({"@binding":c}),l=r+i[0].length}return l-1"+("true"===o?":("+e+")":":_q("+e+","+o+")")),Vi(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+s+");if(Array.isArray($$a)){var $$v="+(i?"_n("+r+")":r)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Gi(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Gi(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Gi(e,"$$c")+"}",null,!0)}(t,i,r);else if("input"===o&&"radio"===s)!function(t,e,n){var i=n&&n.number,r=Wi(t,"value")||"null";Ri(t,"checked","_q("+e+","+(r=i?"_n("+r+")":r)+")"),Vi(t,"change",Gi(e,r),null,!0)}(t,i,r);else if("input"===o||"textarea"===o)!function(t,e,n){var i=t.attrsMap.type;0;var r=n||{},o=r.lazy,s=r.number,a=r.trim,l=!o&&"range"!==i,c=o?"change":"range"===i?nr:"input",u="$event.target.value";a&&(u="$event.target.value.trim()");s&&(u="_n("+u+")");var d=Gi(e,u);l&&(d="if($event.target.composing)return;"+d);Ri(t,"value","("+e+")"),Vi(t,c,d,null,!0),(a||s)&&Vi(t,"blur","$forceUpdate()")}(t,i,r);else{if(!H.isReservedTag(o))return qi(t,i,r),!1}return!0},text:function(t,e){e.value&&Ri(t,"textContent","_s("+e.value+")",e)},html:function(t,e){e.value&&Ri(t,"innerHTML","_s("+e.value+")",e)}},isPreTag:function(t){return"pre"===t},isUnaryTag:Co,mustUseProp:Hn,canBeLeftOpenTag:Lo,isReservedTag:ni,getTagNamespace:ii,staticKeys:function(t){return t.reduce((function(t,e){return t.concat(e.staticKeys||[])}),[]).join(",")}(Cs)},Es=x((function(t){return g("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))}));function Ps(t,e){t&&(Ls=Es(e.staticKeys||""),Ts=e.isReservedTag||O,Os(t),Ys(t,!1))}function Os(t){if(t.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||b(t.tag)||!Ts(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(Ls)))}(t),1===t.type){if(!Ts(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var e=0,n=t.children.length;e|^function(?:\s+[\w$]+)?\s*\(/,zs=/\([^)]*?\);*$/,Ns=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Rs={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},js={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Fs=function(t){return"if("+t+")return null;"},Hs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Fs("$event.target !== $event.currentTarget"),ctrl:Fs("!$event.ctrlKey"),shift:Fs("!$event.shiftKey"),alt:Fs("!$event.altKey"),meta:Fs("!$event.metaKey"),left:Fs("'button' in $event && $event.button !== 0"),middle:Fs("'button' in $event && $event.button !== 1"),right:Fs("'button' in $event && $event.button !== 2")};function Bs(t,e){var n=e?"nativeOn:":"on:",i="",r="";for(var o in t){var s=Vs(t[o]);t[o]&&t[o].dynamic?r+=o+","+s+",":i+='"'+o+'":'+s+","}return i="{"+i.slice(0,-1)+"}",r?n+"_d("+i+",["+r.slice(0,-1)+"])":n+i}function Vs(t){if(!t)return"function(){}";if(Array.isArray(t))return"["+t.map((function(t){return Vs(t)})).join(",")+"]";var e=Ns.test(t.value),n=Is.test(t.value),i=Ns.test(t.value.replace(zs,""));if(t.modifiers){var r="",o="",s=[];for(var a in t.modifiers)if(Hs[a])o+=Hs[a],Rs[a]&&s.push(a);else if("exact"===a){var l=t.modifiers;o+=Fs(["ctrl","shift","alt","meta"].filter((function(t){return!l[t]})).map((function(t){return"$event."+t+"Key"})).join("||"))}else s.push(a);return s.length&&(r+=function(t){return"if(!$event.type.indexOf('key')&&"+t.map(Ws).join("&&")+")return null;"}(s)),o&&(r+=o),"function($event){"+r+(e?"return "+t.value+".apply(null, arguments)":n?"return ("+t.value+").apply(null, arguments)":i?"return "+t.value:t.value)+"}"}return e||n?t.value:"function($event){"+(i?"return "+t.value:t.value)+"}"}function Ws(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=Rs[t],i=js[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(i)+")"}var Us={on:function(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:P},Xs=function(t){this.options=t,this.warn=t.warn||zi,this.transforms=Ni(t.modules,"transformCode"),this.dataGenFns=Ni(t.modules,"genData"),this.directives=D(D({},Us),t.directives);var e=t.isReservedTag||O;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function $s(t,e){var n=new Xs(e);return{render:"with(this){return "+(t?"script"===t.tag?"null":qs(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function qs(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Gs(t,e);if(t.once&&!t.onceProcessed)return Js(t,e);if(t.for&&!t.forProcessed)return Qs(t,e);if(t.if&&!t.ifProcessed)return Zs(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',i=ia(t,e),r="_t("+n+(i?",function(){return "+i+"}":""),o=t.attrs||t.dynamicAttrs?sa((t.attrs||[]).concat(t.dynamicAttrs||[]).map((function(t){return{name:M(t.name),value:t.value,dynamic:t.dynamic}}))):null,s=t.attrsMap["v-bind"];!o&&!s||i||(r+=",null");o&&(r+=","+o);s&&(r+=(o?"":",null")+","+s);return r+")"}(t,e);var n;if(t.component)n=function(t,e,n){var i=e.inlineTemplate?null:ia(e,n,!0);return"_c("+t+","+ta(e,n)+(i?","+i:"")+")"}(t.component,t,e);else{var i;(!t.plain||t.pre&&e.maybeComponent(t))&&(i=ta(t,e));var r=t.inlineTemplate?null:ia(t,e,!0);n="_c('"+t.tag+"'"+(i?","+i:"")+(r?","+r:"")+")"}for(var o=0;o>>0}(s):"")+")"}(t,t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var o=function(t,e){var n=t.children[0];0;if(n&&1===n.type){var i=$s(n,e.options);return"inlineTemplate:{render:function(){"+i.render+"},staticRenderFns:["+i.staticRenderFns.map((function(t){return"function(){"+t+"}"})).join(",")+"]}"}}(t,e);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b("+n+',"'+t.tag+'",'+sa(t.dynamicAttrs)+")"),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function ea(t){return 1===t.type&&("slot"===t.tag||t.children.some(ea))}function na(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Zs(t,e,na,"null");if(t.for&&!t.forProcessed)return Qs(t,e,na);var i=t.slotScope===ms?"":String(t.slotScope),r="function("+i+"){return "+("template"===t.tag?t.if&&n?"("+t.if+")?"+(ia(t,e)||"undefined")+":undefined":ia(t,e)||"undefined":qs(t,e))+"}",o=i?"":",proxy:true";return"{key:"+(t.slotTarget||'"default"')+",fn:"+r+o+"}"}function ia(t,e,n,i,r){var o=t.children;if(o.length){var s=o[0];if(1===o.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag){var a=n?e.maybeComponent(s)?",1":",0":"";return""+(i||qs)(s,e)+a}var l=n?function(t,e){for(var n=0,i=0;i':'
    ',da.innerHTML.indexOf(" ")>0}var ma=!!q&&pa(!1),ga=!!q&&pa(!0),ba=x((function(t){var e=si(t);return e&&e.innerHTML})),va=En.prototype.$mount;En.prototype.$mount=function(t,e){if((t=t&&si(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var i=n.template;if(i)if("string"==typeof i)"#"===i.charAt(0)&&(i=ba(i));else{if(!i.nodeType)return this;i=i.innerHTML}else t&&(i=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(i){0;var r=fa(i,{outputSourceRange:!1,shouldDecodeNewlines:ma,shouldDecodeNewlinesForHref:ga,delimiters:n.delimiters,comments:n.comments},this),o=r.render,s=r.staticRenderFns;n.render=o,n.staticRenderFns=s}}return va.call(this,t,e)},En.compile=fa;const _a=En}}]); //# sourceMappingURL=vendor.js.map \ No newline at end of file diff --git a/resources/lang/en.json b/resources/lang/en.json index 999d48a98..21831b428 100755 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -1 +1 @@ -{"displaying {perPage} on {items} items":"displaying {perPage} on {items} items","The document has been generated.":"The document has been generated.","Unexpected error occured.":"Unexpected error occured.","{entries} entries selected":"{entries} entries selected","Download":"Download","Bulk Actions":"Bulk Actions","Go":"Go","Delivery":"Delivery","Take Away":"Take Away","Unknown Type":"Unknown Type","Pending":"Pending","Ongoing":"Ongoing","Delivered":"Delivered","Unknown Status":"Unknown Status","Ready":"Ready","Paid":"Paid","Hold":"Hold","Unpaid":"Unpaid","Partially Paid":"Partially Paid","Save Password":"Save Password","Unable to proceed the form is not valid.":"Unable to proceed the form is not valid.","Submit":"Submit","Register":"Register","An unexpected error occured.":"An unexpected error occured.","Best Cashiers":"Best Cashiers","No result to display.":"No result to display.","Well.. nothing to show for the meantime.":"Well.. nothing to show for the meantime.","Best Customers":"Best Customers","Well.. nothing to show for the meantime":"Well.. nothing to show for the meantime","Total Sales":"Total Sales","Today":"Today","Incomplete Orders":"Incomplete Orders","Wasted Goods":"Wasted Goods","Expenses":"Expenses","Weekly Sales":"Weekly Sales","Week Taxes":"Week Taxes","Net Income":"Net Income","Week Expenses":"Week Expenses","Recents Orders":"Recents Orders","Order":"Order","Clear All":"Clear All","Confirm Your Action":"Confirm Your Action","Save":"Save","The processing status of the order will be changed. Please confirm your action.":"The processing status of the order will be changed. Please confirm your action.","Instalments":"Instalments","Create":"Create","Add Instalment":"Add Instalment","An unexpected error has occured":"An unexpected error has occured","Store Details":"Store Details","Order Code":"Order Code","Cashier":"Cashier","Date":"Date","Customer":"Customer","Type":"Type","Payment Status":"Payment Status","Delivery Status":"Delivery Status","Billing Details":"Billing Details","Shipping Details":"Shipping Details","Product":"Product","Unit Price":"Unit Price","Quantity":"Quantity","Discount":"Discount","Tax":"Tax","Total Price":"Total Price","Expiration Date":"Expiration Date","Sub Total":"Sub Total","Coupons":"Coupons","Shipping":"Shipping","Total":"Total","Due":"Due","Change":"Change","No title is provided":"No title is provided","SKU":"SKU","Barcode":"Barcode","Looks like no products matched the searched term.":"Looks like no products matched the searched term.","The product already exists on the table.":"The product already exists on the table.","The specified quantity exceed the available quantity.":"The specified quantity exceed the available quantity.","Unable to proceed as the table is empty.":"Unable to proceed as the table is empty.","More Details":"More Details","Useful to describe better what are the reasons that leaded to this adjustment.":"Useful to describe better what are the reasons that leaded to this adjustment.","Search":"Search","Unit":"Unit","Operation":"Operation","Procurement":"Procurement","Value":"Value","Actions":"Actions","Search and add some products":"Search and add some products","Proceed":"Proceed","An unexpected error occured":"An unexpected error occured","Load Coupon":"Load Coupon","Apply A Coupon":"Apply A Coupon","Load":"Load","Input the coupon code that should apply to the POS. If a coupon is issued for a customer, that customer must be selected priorly.":"Input the coupon code that should apply to the POS. If a coupon is issued for a customer, that customer must be selected priorly.","Click here to choose a customer.":"Click here to choose a customer.","Coupon Name":"Coupon Name","Usage":"Usage","Unlimited":"Unlimited","Valid From":"Valid From","Valid Till":"Valid Till","Categories":"Categories","Products":"Products","Active Coupons":"Active Coupons","Apply":"Apply","Cancel":"Cancel","Coupon Code":"Coupon Code","The coupon is out from validity date range.":"The coupon is out from validity date range.","The coupon has applied to the cart.":"The coupon has applied to the cart.","Percentage":"Percentage","Flat":"Flat","The coupon has been loaded.":"The coupon has been loaded.","Layaway Parameters":"Layaway Parameters","Minimum Payment":"Minimum Payment","Instalments & Payments":"Instalments & Payments","The final payment date must be the last within the instalments.":"The final payment date must be the last within the instalments.","There is not instalment defined. Please set how many instalments are allowed for this order":"There is not instalment defined. Please set how many instalments are allowed for this order","Amount":"Amount","You must define layaway settings before proceeding.":"You must define layaway settings before proceeding.","Please provide instalments before proceeding.":"Please provide instalments before proceeding.","Unable to procee the form is not valid":"Unable to procee the form is not valid","One or more instalments has an invalid date.":"One or more instalments has an invalid date.","One or more instalments has an invalid amount.":"One or more instalments has an invalid amount.","One or more instalments has a date prior to the current date.":"One or more instalments has a date prior to the current date.","Total instalments must be equal to the order total.":"Total instalments must be equal to the order total.","The customer has been loaded":"The customer has been loaded","This coupon is already added to the cart":"This coupon is already added to the cart","No tax group assigned to the order":"No tax group assigned to the order","Layaway defined":"Layaway defined","Okay":"Okay","An unexpected error has occured while fecthing taxes.":"An unexpected error has occured while fecthing taxes.","OKAY":"OKAY","Loading...":"Loading...","Profile":"Profile","Logout":"Logout","Unamed Page":"Unamed Page","No description":"No description","Name":"Name","Provide a name to the resource.":"Provide a name to the resource.","General":"General","Edit":"Edit","Delete":"Delete","Delete Selected Groups":"Delete Selected Groups","Activate Your Account":"Activate Your Account","Password Recovered":"Password Recovered","Password Recovery":"Password Recovery","Reset Password":"Reset Password","New User Registration":"New User Registration","Your Account Has Been Created":"Your Account Has Been Created","Login":"Login","Save Coupon":"Save Coupon","This field is required":"This field is required","The form is not valid. Please check it and try again":"The form is not valid. Please check it and try again","No Description Provided":"No Description Provided","mainFieldLabel not defined":"mainFieldLabel not defined","Unamed Table":"Unamed Table","Create Customer Group":"Create Customer Group","Save a new customer group":"Save a new customer group","Update Group":"Update Group","Modify an existing customer group":"Modify an existing customer group","Managing Customers Groups":"Managing Customers Groups","Create groups to assign customers":"Create groups to assign customers","Create Customer":"Create Customer","Add a new customers to the system":"Add a new customers to the system","Managing Customers":"Managing Customers","List of registered customers":"List of registered customers","Return":"Return","Your Module":"Your Module","Choose the zip file you would like to upload":"Choose the zip file you would like to upload","Upload":"Upload","Managing Orders":"Managing Orders","Manage all registered orders.":"Manage all registered orders.","Failed":"Failed","Order receipt":"Order receipt","Hide Dashboard":"Hide Dashboard","Taxes":"Taxes","Unknown Payment":"Unknown Payment","Order invoice":"Order invoice","Procurement Name":"Procurement Name","Unable to proceed no products has been provided.":"Unable to proceed no products has been provided.","Unable to proceed, one or more products is not valid.":"Unable to proceed, one or more products is not valid.","Unable to proceed the procurement form is not valid.":"Unable to proceed the procurement form is not valid.","Unable to proceed, no submit url has been provided.":"Unable to proceed, no submit url has been provided.","SKU, Barcode, Product name.":"SKU, Barcode, Product name.","Surname":"Surname","N\/A":"N\/A","Email":"Email","Phone":"Phone","First Address":"First Address","Second Address":"Second Address","Address":"Address","City":"City","PO.Box":"PO.Box","Price":"Price","Print":"Print","Description":"Description","Included Products":"Included Products","Apply Settings":"Apply Settings","Basic Settings":"Basic Settings","Visibility Settings":"Visibility Settings","Year":"Year","Sales":"Sales","Income":"Income","January":"January","Febuary":"Febuary","March":"March","April":"April","May":"May","June":"June","July":"July","August":"August","September":"September","October":"October","November":"November","December":"December","Purchase Price":"Purchase Price","Sale Price":"Sale Price","Profit":"Profit","Tax Value":"Tax Value","Reward System Name":"Reward System Name","Missing Dependency":"Missing Dependency","Go Back":"Go Back","Continue":"Continue","Home":"Home","Not Allowed Action":"Not Allowed Action","Try Again":"Try Again","Access Denied":"Access Denied","Dashboard":"Dashboard","Sign In":"Sign In","Sign Up":"Sign Up","This field is required.":"This field is required.","This field must contain a valid email address.":"This field must contain a valid email address.","Clear Selected Entries ?":"Clear Selected Entries ?","Would you like to clear all selected entries ?":"Would you like to clear all selected entries ?","No bulk confirmation message provided on the CRUD class.":"No bulk confirmation message provided on the CRUD class.","No selection has been made.":"No selection has been made.","No action has been selected.":"No action has been selected.","There is nothing to display...":"There is nothing to display...","Sun":"Sun","Mon":"Mon","Tue":"Tue","Wed":"Wed","Thr":"Thr","Fri":"Fri","Sat":"Sat","Nothing to display":"Nothing to display","Password Forgotten ?":"Password Forgotten ?","OK":"OK","Remember Your Password ?":"Remember Your Password ?","Already registered ?":"Already registered ?","Refresh":"Refresh","Enabled":"Enabled","Disabled":"Disabled","Enable":"Enable","Disable":"Disable","Gallery":"Gallery","Medias Manager":"Medias Manager","Click Here Or Drop Your File To Upload":"Click Here Or Drop Your File To Upload","Nothing has already been uploaded":"Nothing has already been uploaded","File Name":"File Name","Uploaded At":"Uploaded At","By":"By","Previous":"Previous","Next":"Next","Use Selected":"Use Selected","Would you like to clear all the notifications ?":"Would you like to clear all the notifications ?","Permissions":"Permissions","Payment Summary":"Payment Summary","Order Status":"Order Status","Would you proceed ?":"Would you proceed ?","Would you like to create this instalment ?":"Would you like to create this instalment ?","Would you like to delete this instalment ?":"Would you like to delete this instalment ?","Would you like to make this as paid ?":"Would you like to make this as paid ?","Would you like to update that instalment ?":"Would you like to update that instalment ?","Customer Account":"Customer Account","Payment":"Payment","No payment possible for paid order.":"No payment possible for paid order.","Payment History":"Payment History","Unable to proceed the form is not valid":"Unable to proceed the form is not valid","Please provide a valid value":"Please provide a valid value","Refund With Products":"Refund With Products","Refund Shipping":"Refund Shipping","Add Product":"Add Product","Damaged":"Damaged","Unspoiled":"Unspoiled","Summary":"Summary","Payment Gateway":"Payment Gateway","Screen":"Screen","Select the product to perform a refund.":"Select the product to perform a refund.","Please select a payment gateway before proceeding.":"Please select a payment gateway before proceeding.","There is nothing to refund.":"There is nothing to refund.","Please provide a valid payment amount.":"Please provide a valid payment amount.","The refund will be made on the current order.":"The refund will be made on the current order.","Please select a product before proceeding.":"Please select a product before proceeding.","Not enough quantity to proceed.":"Not enough quantity to proceed.","Would you like to delete this product ?":"Would you like to delete this product ?","Customers":"Customers","Order Type":"Order Type","Orders":"Orders","Cash Register":"Cash Register","Reset":"Reset","Cart":"Cart","Comments":"Comments","No products added...":"No products added...","Pay":"Pay","Void":"Void","Current Balance":"Current Balance","Full Payment":"Full Payment","The customer account can only be used once per order. Consider deleting the previously used payment.":"The customer account can only be used once per order. Consider deleting the previously used payment.","Not enough funds to add {amount} as a payment. Available balance {balance}.":"Not enough funds to add {amount} as a payment. Available balance {balance}.","Confirm Full Payment":"Confirm Full Payment","A full payment will be made using {paymentType} for {total}":"A full payment will be made using {paymentType} for {total}","You need to provide some products before proceeding.":"You need to provide some products before proceeding.","Unable to add the product, there is not enough stock. Remaining %s":"Unable to add the product, there is not enough stock. Remaining %s","Add Images":"Add Images","New Group":"New Group","Available Quantity":"Available Quantity","Would you like to delete this group ?":"Would you like to delete this group ?","Your Attention Is Required":"Your Attention Is Required","Please select at least one unit group before you proceed.":"Please select at least one unit group before you proceed.","Unable to proceed, more than one product is set as primary":"Unable to proceed, more than one product is set as primary","Unable to proceed as one of the unit group field is invalid":"Unable to proceed as one of the unit group field is invalid","Would you like to delete this variation ?":"Would you like to delete this variation ?","Details":"Details","Unable to proceed, no product were provided.":"Unable to proceed, no product were provided.","Unable to proceed, one or more product has incorrect values.":"Unable to proceed, one or more product has incorrect values.","Unable to proceed, the procurement form is not valid.":"Unable to proceed, the procurement form is not valid.","Unable to submit, no valid submit URL were provided.":"Unable to submit, no valid submit URL were provided.","Options":"Options","The stock adjustment is about to be made. Would you like to confirm ?":"The stock adjustment is about to be made. Would you like to confirm ?","Would you like to remove this product from the table ?":"Would you like to remove this product from the table ?","Unable to proceed. Select a correct time range.":"Unable to proceed. Select a correct time range.","Unable to proceed. The current time range is not valid.":"Unable to proceed. The current time range is not valid.","Would you like to proceed ?":"Would you like to proceed ?","Will apply various reset method on the system.":"Will apply various reset method on the system.","Wipe Everything":"Wipe Everything","Wipe + Grocery Demo":"Wipe + Grocery Demo","No rules has been provided.":"No rules has been provided.","No valid run were provided.":"No valid run were provided.","Unable to proceed, the form is invalid.":"Unable to proceed, the form is invalid.","Unable to proceed, no valid submit URL is defined.":"Unable to proceed, no valid submit URL is defined.","No title Provided":"No title Provided","Add Rule":"Add Rule","Save Settings":"Save Settings","Ok":"Ok","New Transaction":"New Transaction","Close":"Close","Would you like to delete this order":"Would you like to delete this order","The current order will be void. This action will be recorded. Consider providing a reason for this operation":"The current order will be void. This action will be recorded. Consider providing a reason for this operation","Order Options":"Order Options","Payments":"Payments","Refund & Return":"Refund & Return","Installments":"Installments","The form is not valid.":"The form is not valid.","Balance":"Balance","Input":"Input","Register History":"Register History","Close Register":"Close Register","Cash In":"Cash In","Cash Out":"Cash Out","Register Options":"Register Options","History":"History","Unable to open this register. Only closed register can be opened.":"Unable to open this register. Only closed register can be opened.","Open The Register":"Open The Register","Exit To Orders":"Exit To Orders","Looks like there is no registers. At least one register is required to proceed.":"Looks like there is no registers. At least one register is required to proceed.","Create Cash Register":"Create Cash Register","Yes":"Yes","No":"No","Use":"Use","No coupon available for this customer":"No coupon available for this customer","Select Customer":"Select Customer","No customer match your query...":"No customer match your query...","Customer Name":"Customer Name","Save Customer":"Save Customer","No Customer Selected":"No Customer Selected","In order to see a customer account, you need to select one customer.":"In order to see a customer account, you need to select one customer.","Summary For":"Summary For","Total Purchases":"Total Purchases","Total Owed":"Total Owed","Account Amount":"Account Amount","Last Purchases":"Last Purchases","Status":"Status","No orders...":"No orders...","Account Transaction":"Account Transaction","Product Discount":"Product Discount","Cart Discount":"Cart Discount","Hold Order":"Hold Order","The current order will be set on hold. You can retreive this order from the pending order button. Providing a reference to it might help you to identify the order more quickly.":"The current order will be set on hold. You can retreive this order from the pending order button. Providing a reference to it might help you to identify the order more quickly.","Confirm":"Confirm","Order Note":"Order Note","Note":"Note","More details about this order":"More details about this order","Display On Receipt":"Display On Receipt","Will display the note on the receipt":"Will display the note on the receipt","Open":"Open","Define The Order Type":"Define The Order Type","Payments Gateway":"Payments Gateway","Payment List":"Payment List","List Of Payments":"List Of Payments","No Payment added.":"No Payment added.","Select Payment":"Select Payment","Choose Payment":"Choose Payment","Submit Payment":"Submit Payment","Layaway":"Layaway","On Hold":"On Hold","Tendered":"Tendered","Nothing to display...":"Nothing to display...","Define Quantity":"Define Quantity","Please provide a quantity":"Please provide a quantity","Search Product":"Search Product","There is nothing to display. Have you started the search ?":"There is nothing to display. Have you started the search ?","Shipping & Billing":"Shipping & Billing","Tax & Summary":"Tax & Summary","Settings":"Settings","Select Tax":"Select Tax","Define the tax that apply to the sale.":"Define the tax that apply to the sale.","Define how the tax is computed":"Define how the tax is computed","Exclusive":"Exclusive","Inclusive":"Inclusive","Choose Selling Unit":"Choose Selling Unit","Define when that specific product should expire.":"Define when that specific product should expire.","Renders the automatically generated barcode.":"Renders the automatically generated barcode.","Tax Type":"Tax Type","Adjust how tax is calculated on the item.":"Adjust how tax is calculated on the item.","Unable to proceed. The form is not valid.":"Unable to proceed. The form is not valid.","Units & Quantities":"Units & Quantities","Wholesale Price":"Wholesale Price","Select":"Select","Unsupported print gateway.":"Unsupported print gateway.","Howdy, %s":"Howdy, %s","Would you like to delete this ?":"Would you like to delete this ?","The account you have created for __%s__, require an activation. In order to proceed, please click on the following link":"The account you have created for __%s__, require an activation. In order to proceed, please click on the following link","Your password has been successfully updated on __%s__. You can now login with your new password.":"Your password has been successfully updated on __%s__. You can now login with your new password.","Someone has requested to reset your password on __\"%s\"__. If you remember having done that request, please proceed by clicking the button below. ":"Someone has requested to reset your password on __\"%s\"__. If you remember having done that request, please proceed by clicking the button below. ","Receipt — %s":"Receipt — %s","Invoice — %s":"Invoice — %s","Unable to find a module having the identifier\/namespace \"%s\"":"Unable to find a module having the identifier\/namespace \"%s\"","What is the CRUD single resource name ? [Q] to quit.":"What is the CRUD single resource name ? [Q] to quit.","Which table name should be used ? [Q] to quit.":"Which table name should be used ? [Q] to quit.","What is the main route name to the resource ? [Q] to quit.":"What is the main route name to the resource ? [Q] to quit.","If your CRUD resource has a relation, mention it as follow \"foreign_table, foreign_key, local_key\" ? [S] to skip, [Q] to quit.":"If your CRUD resource has a relation, mention it as follow \"foreign_table, foreign_key, local_key\" ? [S] to skip, [Q] to quit.","Add a new relation ? Mention it as follow \"foreign_table, foreign_key, local_key\" ? [S] to skip, [Q] to quit.":"Add a new relation ? Mention it as follow \"foreign_table, foreign_key, local_key\" ? [S] to skip, [Q] to quit.","No enough paramters provided for the relation.":"No enough paramters provided for the relation.","The CRUD resource \"%s\" for the module \"%s\" has been generated at \"%s\"":"The CRUD resource \"%s\" for the module \"%s\" has been generated at \"%s\"","The CRUD resource \"%s\" has been generated at %s":"The CRUD resource \"%s\" has been generated at %s","An unexpected error has occured.":"An unexpected error has occured.","Localization for %s extracted to %s":"Localization for %s extracted to %s","Unable to find the requested module.":"Unable to find the requested module.","Unable to find a module with the defined identifier \"%s\"":"Unable to find a module with the defined identifier \"%s\"","Unable to find the requested file \"%s\" from the module migration.":"Unable to find the requested file \"%s\" from the module migration.","The migration file has been successfully forgotten.":"The migration file has been successfully forgotten.","Version":"Version","Path":"Path","Index":"Index","Entry Class":"Entry Class","Routes":"Routes","Api":"Api","Controllers":"Controllers","Views":"Views","Attribute":"Attribute","Namespace":"Namespace","Author":"Author","The product barcodes has been refreshed successfully.":"The product barcodes has been refreshed successfully.","Invalid operation provided.":"Invalid operation provided.","Unable to proceed the system is already installed.":"Unable to proceed the system is already installed.","What is the store name ? [Q] to quit.":"What is the store name ? [Q] to quit.","Please provide at least 6 characters for store name.":"Please provide at least 6 characters for store name.","What is the administrator password ? [Q] to quit.":"What is the administrator password ? [Q] to quit.","Please provide at least 6 characters for the administrator password.":"Please provide at least 6 characters for the administrator password.","What is the administrator email ? [Q] to quit.":"What is the administrator email ? [Q] to quit.","Please provide a valid email for the administrator.":"Please provide a valid email for the administrator.","What is the administrator username ? [Q] to quit.":"What is the administrator username ? [Q] to quit.","Please provide at least 5 characters for the administrator username.":"Please provide at least 5 characters for the administrator username.","Downloading latest dev build...":"Downloading latest dev build...","Reset project to HEAD...":"Reset project to HEAD...","Coupons List":"Coupons List","Display all coupons.":"Display all coupons.","No coupons has been registered":"No coupons has been registered","Add a new coupon":"Add a new coupon","Create a new coupon":"Create a new coupon","Register a new coupon and save it.":"Register a new coupon and save it.","Edit coupon":"Edit coupon","Modify Coupon.":"Modify Coupon.","Return to Coupons":"Return to Coupons","Might be used while printing the coupon.":"Might be used while printing the coupon.","Percentage Discount":"Percentage Discount","Flat Discount":"Flat Discount","Define which type of discount apply to the current coupon.":"Define which type of discount apply to the current coupon.","Discount Value":"Discount Value","Define the percentage or flat value.":"Define the percentage or flat value.","Valid Until":"Valid Until","Determin Until When the coupon is valid.":"Determin Until When the coupon is valid.","Minimum Cart Value":"Minimum Cart Value","What is the minimum value of the cart to make this coupon eligible.":"What is the minimum value of the cart to make this coupon eligible.","Maximum Cart Value":"Maximum Cart Value","Valid Hours Start":"Valid Hours Start","Define form which hour during the day the coupons is valid.":"Define form which hour during the day the coupons is valid.","Valid Hours End":"Valid Hours End","Define to which hour during the day the coupons end stop valid.":"Define to which hour during the day the coupons end stop valid.","Limit Usage":"Limit Usage","Define how many time a coupons can be redeemed.":"Define how many time a coupons can be redeemed.","Select Products":"Select Products","The following products will be required to be present on the cart, in order for this coupon to be valid.":"The following products will be required to be present on the cart, in order for this coupon to be valid.","Select Categories":"Select Categories","The products assigned to one of these categories should be on the cart, in order for this coupon to be valid.":"The products assigned to one of these categories should be on the cart, in order for this coupon to be valid.","Created At":"Created At","Undefined":"Undefined","Delete a licence":"Delete a licence","Customer Coupons List":"Customer Coupons List","Display all customer coupons.":"Display all customer coupons.","No customer coupons has been registered":"No customer coupons has been registered","Add a new customer coupon":"Add a new customer coupon","Create a new customer coupon":"Create a new customer coupon","Register a new customer coupon and save it.":"Register a new customer coupon and save it.","Edit customer coupon":"Edit customer coupon","Modify Customer Coupon.":"Modify Customer Coupon.","Return to Customer Coupons":"Return to Customer Coupons","Id":"Id","Limit":"Limit","Coupon_id":"Coupon_id","Customer_id":"Customer_id","Created_at":"Created_at","Updated_at":"Updated_at","Code":"Code","Customers List":"Customers List","Display all customers.":"Display all customers.","No customers has been registered":"No customers has been registered","Add a new customer":"Add a new customer","Create a new customer":"Create a new customer","Register a new customer and save it.":"Register a new customer and save it.","Edit customer":"Edit customer","Modify Customer.":"Modify Customer.","Return to Customers":"Return to Customers","Provide a unique name for the customer.":"Provide a unique name for the customer.","Provide the customer surname":"Provide the customer surname","Group":"Group","Assign the customer to a group":"Assign the customer to a group","Provide the customer email":"Provide the customer email","Phone Number":"Phone Number","Provide the customer phone number":"Provide the customer phone number","PO Box":"PO Box","Provide the customer PO.Box":"Provide the customer PO.Box","Not Defined":"Not Defined","Male":"Male","Female":"Female","Gender":"Gender","Billing Address":"Billing Address","Provide the billing name.":"Provide the billing name.","Provide the billing surname.":"Provide the billing surname.","Billing phone number.":"Billing phone number.","Address 1":"Address 1","Billing First Address.":"Billing First Address.","Address 2":"Address 2","Billing Second Address.":"Billing Second Address.","Country":"Country","Billing Country.":"Billing Country.","Postal Address":"Postal Address","Company":"Company","Shipping Address":"Shipping Address","Provide the shipping name.":"Provide the shipping name.","Provide the shipping surname.":"Provide the shipping surname.","Shipping phone number.":"Shipping phone number.","Shipping First Address.":"Shipping First Address.","Shipping Second Address.":"Shipping Second Address.","Shipping Country.":"Shipping Country.","No group selected and no default group configured.":"No group selected and no default group configured.","The access is granted.":"The access is granted.","Account Credit":"Account Credit","Owed Amount":"Owed Amount","Purchase Amount":"Purchase Amount","Rewards":"Rewards","Delete a customers":"Delete a customers","Delete Selected Customers":"Delete Selected Customers","Customer Groups List":"Customer Groups List","Display all Customers Groups.":"Display all Customers Groups.","No Customers Groups has been registered":"No Customers Groups has been registered","Add a new Customers Group":"Add a new Customers Group","Create a new Customers Group":"Create a new Customers Group","Register a new Customers Group and save it.":"Register a new Customers Group and save it.","Edit Customers Group":"Edit Customers Group","Modify Customers group.":"Modify Customers group.","Return to Customers Groups":"Return to Customers Groups","Reward System":"Reward System","Select which Reward system applies to the group":"Select which Reward system applies to the group","Minimum Credit Amount":"Minimum Credit Amount","Determine in percentage, what is the first minimum credit payment made by all customers on the group, in case of credit order. If left to \"0\", no minimal credit amount is required.":"Determine in percentage, what is the first minimum credit payment made by all customers on the group, in case of credit order. If left to \"0\", no minimal credit amount is required.","A brief description about what this group is about":"A brief description about what this group is about","Created On":"Created On","Customer Orders List":"Customer Orders List","Display all customer orders.":"Display all customer orders.","No customer orders has been registered":"No customer orders has been registered","Add a new customer order":"Add a new customer order","Create a new customer order":"Create a new customer order","Register a new customer order and save it.":"Register a new customer order and save it.","Edit customer order":"Edit customer order","Modify Customer Order.":"Modify Customer Order.","Return to Customer Orders":"Return to Customer Orders","Created at":"Created at","Customer Id":"Customer Id","Discount Percentage":"Discount Percentage","Discount Type":"Discount Type","Final Payment Date":"Final Payment Date","Gross Total":"Gross Total","Net Total":"Net Total","Process Status":"Process Status","Shipping Rate":"Shipping Rate","Shipping Type":"Shipping Type","Title":"Title","Total installments":"Total installments","Updated at":"Updated at","Uuid":"Uuid","Voidance Reason":"Voidance Reason","Customer Rewards List":"Customer Rewards List","Display all customer rewards.":"Display all customer rewards.","No customer rewards has been registered":"No customer rewards has been registered","Add a new customer reward":"Add a new customer reward","Create a new customer reward":"Create a new customer reward","Register a new customer reward and save it.":"Register a new customer reward and save it.","Edit customer reward":"Edit customer reward","Modify Customer Reward.":"Modify Customer Reward.","Return to Customer Rewards":"Return to Customer Rewards","Points":"Points","Target":"Target","Reward Name":"Reward Name","Last Update":"Last Update","Expenses Categories List":"Expenses Categories List","Display All Expense Categories.":"Display All Expense Categories.","No Expense Category has been registered":"No Expense Category has been registered","Add a new Expense Category":"Add a new Expense Category","Create a new Expense Category":"Create a new Expense Category","Register a new Expense Category and save it.":"Register a new Expense Category and save it.","Edit Expense Category":"Edit Expense Category","Modify An Expense Category.":"Modify An Expense Category.","Return to Expense Categories":"Return to Expense Categories","Expenses List":"Expenses List","Display all expenses.":"Display all expenses.","No expenses has been registered":"No expenses has been registered","Add a new expense":"Add a new expense","Create a new expense":"Create a new expense","Register a new expense and save it.":"Register a new expense and save it.","Edit expense":"Edit expense","Modify Expense.":"Modify Expense.","Return to Expenses":"Return to Expenses","Active":"Active","determine if the expense is effective or not. Work for recurring and not reccuring expenses.":"determine if the expense is effective or not. Work for recurring and not reccuring expenses.","Users Group":"Users Group","Assign expense to users group. Expense will therefore be multiplied by the number of entity.":"Assign expense to users group. Expense will therefore be multiplied by the number of entity.","None":"None","Expense Category":"Expense Category","Assign the expense to a category":"Assign the expense to a category","Is the value or the cost of the expense.":"Is the value or the cost of the expense.","If set to Yes, the expense will trigger on defined occurence.":"If set to Yes, the expense will trigger on defined occurence.","Recurring":"Recurring","Start of Month":"Start of Month","Mid of Month":"Mid of Month","End of Month":"End of Month","X days Before Month Ends":"X days Before Month Ends","X days After Month Starts":"X days After Month Starts","Occurence":"Occurence","Define how often this expenses occurs":"Define how often this expenses occurs","Occurence Value":"Occurence Value","Must be used in case of X days after month starts and X days before month ends.":"Must be used in case of X days after month starts and X days before month ends.","Category":"Category","Month Starts":"Month Starts","Month Middle":"Month Middle","Month Ends":"Month Ends","X Days Before Month Starts":"X Days Before Month Starts","X Days Before Month Ends":"X Days Before Month Ends","Unknown Occurance":"Unknown Occurance","Return to Expenses Histories":"Return to Expenses Histories","Expense Category Name":"Expense Category Name","Expense ID":"Expense ID","Expense Name":"Expense Name","Updated At":"Updated At","The expense history is about to be deleted.":"The expense history is about to be deleted.","Hold Orders List":"Hold Orders List","Display all hold orders.":"Display all hold orders.","No hold orders has been registered":"No hold orders has been registered","Add a new hold order":"Add a new hold order","Create a new hold order":"Create a new hold order","Register a new hold order and save it.":"Register a new hold order and save it.","Edit hold order":"Edit hold order","Modify Hold Order.":"Modify Hold Order.","Return to Hold Orders":"Return to Hold Orders","Process Statuss":"Process Statuss","Orders List":"Orders List","Display all orders.":"Display all orders.","No orders has been registered":"No orders has been registered","Add a new order":"Add a new order","Create a new order":"Create a new order","Register a new order and save it.":"Register a new order and save it.","Edit order":"Edit order","Modify Order.":"Modify Order.","Return to Orders":"Return to Orders","Discount Rate":"Discount Rate","The order and the attached products has been deleted.":"The order and the attached products has been deleted.","Invoice":"Invoice","Receipt":"Receipt","Order Instalments List":"Order Instalments List","Display all Order Instalments.":"Display all Order Instalments.","No Order Instalment has been registered":"No Order Instalment has been registered","Add a new Order Instalment":"Add a new Order Instalment","Create a new Order Instalment":"Create a new Order Instalment","Register a new Order Instalment and save it.":"Register a new Order Instalment and save it.","Edit Order Instalment":"Edit Order Instalment","Modify Order Instalment.":"Modify Order Instalment.","Return to Order Instalment":"Return to Order Instalment","Order Id":"Order Id","Payment Types List":"Payment Types List","Display all payment types.":"Display all payment types.","No payment types has been registered":"No payment types has been registered","Add a new payment type":"Add a new payment type","Create a new payment type":"Create a new payment type","Register a new payment type and save it.":"Register a new payment type and save it.","Edit payment type":"Edit payment type","Modify Payment Type.":"Modify Payment Type.","Return to Payment Types":"Return to Payment Types","Label":"Label","Provide a label to the resource.":"Provide a label to the resource.","Identifier":"Identifier","A payment type having the same identifier already exists.":"A payment type having the same identifier already exists.","Unable to delete a read-only payments type.":"Unable to delete a read-only payments type.","Readonly":"Readonly","Procurements List":"Procurements List","Display all procurements.":"Display all procurements.","No procurements has been registered":"No procurements has been registered","Add a new procurement":"Add a new procurement","Create a new procurement":"Create a new procurement","Register a new procurement and save it.":"Register a new procurement and save it.","Edit procurement":"Edit procurement","Modify Procurement.":"Modify Procurement.","Return to Procurements":"Return to Procurements","Provider Id":"Provider Id","Total Items":"Total Items","Provider":"Provider","Stocked":"Stocked","Procurement Products List":"Procurement Products List","Display all procurement products.":"Display all procurement products.","No procurement products has been registered":"No procurement products has been registered","Add a new procurement product":"Add a new procurement product","Create a new procurement product":"Create a new procurement product","Register a new procurement product and save it.":"Register a new procurement product and save it.","Edit procurement product":"Edit procurement product","Modify Procurement Product.":"Modify Procurement Product.","Return to Procurement Products":"Return to Procurement Products","Define what is the expiration date of the product.":"Define what is the expiration date of the product.","On":"On","Category Products List":"Category Products List","Display all category products.":"Display all category products.","No category products has been registered":"No category products has been registered","Add a new category product":"Add a new category product","Create a new category product":"Create a new category product","Register a new category product and save it.":"Register a new category product and save it.","Edit category product":"Edit category product","Modify Category Product.":"Modify Category Product.","Return to Category Products":"Return to Category Products","No Parent":"No Parent","Preview":"Preview","Provide a preview url to the category.":"Provide a preview url to the category.","Displays On POS":"Displays On POS","Parent":"Parent","If this category should be a child category of an existing category":"If this category should be a child category of an existing category","Total Products":"Total Products","Products List":"Products List","Display all products.":"Display all products.","No products has been registered":"No products has been registered","Add a new product":"Add a new product","Create a new product":"Create a new product","Register a new product and save it.":"Register a new product and save it.","Edit product":"Edit product","Modify Product.":"Modify Product.","Return to Products":"Return to Products","Assigned Unit":"Assigned Unit","The assigned unit for sale":"The assigned unit for sale","Define the regular selling price.":"Define the regular selling price.","Define the wholesale price.":"Define the wholesale price.","Preview Url":"Preview Url","Provide the preview of the current unit.":"Provide the preview of the current unit.","Identification":"Identification","Define the barcode value. Focus the cursor here before scanning the product.":"Define the barcode value. Focus the cursor here before scanning the product.","Define the barcode type scanned.":"Define the barcode type scanned.","EAN 8":"EAN 8","EAN 13":"EAN 13","Barcode Type":"Barcode Type","Determine if the product can be searched on the POS.":"Determine if the product can be searched on the POS.","Searchable":"Searchable","Select to which category the item is assigned.":"Select to which category the item is assigned.","Materialized Product":"Materialized Product","Dematerialized Product":"Dematerialized Product","Define the product type. Applies to all variations.":"Define the product type. Applies to all variations.","Product Type":"Product Type","Define a unique SKU value for the product.":"Define a unique SKU value for the product.","On Sale":"On Sale","Hidden":"Hidden","Define wether the product is available for sale.":"Define wether the product is available for sale.","Enable the stock management on the product. Will not work for service or uncountable products.":"Enable the stock management on the product. Will not work for service or uncountable products.","Stock Management Enabled":"Stock Management Enabled","Units":"Units","Accurate Tracking":"Accurate Tracking","What unit group applies to the actual item. This group will apply during the procurement.":"What unit group applies to the actual item. This group will apply during the procurement.","Unit Group":"Unit Group","Determine the unit for sale.":"Determine the unit for sale.","Selling Unit":"Selling Unit","Expiry":"Expiry","Product Expires":"Product Expires","Set to \"No\" expiration time will be ignored.":"Set to \"No\" expiration time will be ignored.","Prevent Sales":"Prevent Sales","Allow Sales":"Allow Sales","Determine the action taken while a product has expired.":"Determine the action taken while a product has expired.","On Expiration":"On Expiration","Select the tax group that applies to the product\/variation.":"Select the tax group that applies to the product\/variation.","Tax Group":"Tax Group","Define what is the type of the tax.":"Define what is the type of the tax.","Images":"Images","Image":"Image","Choose an image to add on the product gallery":"Choose an image to add on the product gallery","Is Primary":"Is Primary","Define wether the image should be primary. If there are more than one primary image, one will be choosed for you.":"Define wether the image should be primary. If there are more than one primary image, one will be choosed for you.","Sku":"Sku","Materialized":"Materialized","Dematerialized":"Dematerialized","Available":"Available","See Quantities":"See Quantities","See History":"See History","Would you like to delete selected entries ?":"Would you like to delete selected entries ?","Product Histories":"Product Histories","Display all product histories.":"Display all product histories.","No product histories has been registered":"No product histories has been registered","Add a new product history":"Add a new product history","Create a new product history":"Create a new product history","Register a new product history and save it.":"Register a new product history and save it.","Edit product history":"Edit product history","Modify Product History.":"Modify Product History.","Return to Product Histories":"Return to Product Histories","After Quantity":"After Quantity","Before Quantity":"Before Quantity","Operation Type":"Operation Type","Order id":"Order id","Procurement Id":"Procurement Id","Procurement Product Id":"Procurement Product Id","Product Id":"Product Id","Unit Id":"Unit Id","P. Quantity":"P. Quantity","N. Quantity":"N. Quantity","Defective":"Defective","Deleted":"Deleted","Removed":"Removed","Returned":"Returned","Sold":"Sold","Added":"Added","Incoming Transfer":"Incoming Transfer","Outgoing Transfer":"Outgoing Transfer","Transfer Rejected":"Transfer Rejected","Transfer Canceled":"Transfer Canceled","Void Return":"Void Return","Adjustment Return":"Adjustment Return","Adjustment Sale":"Adjustment Sale","Product Unit Quantities List":"Product Unit Quantities List","Display all product unit quantities.":"Display all product unit quantities.","No product unit quantities has been registered":"No product unit quantities has been registered","Add a new product unit quantity":"Add a new product unit quantity","Create a new product unit quantity":"Create a new product unit quantity","Register a new product unit quantity and save it.":"Register a new product unit quantity and save it.","Edit product unit quantity":"Edit product unit quantity","Modify Product Unit Quantity.":"Modify Product Unit Quantity.","Return to Product Unit Quantities":"Return to Product Unit Quantities","Product id":"Product id","Providers List":"Providers List","Display all providers.":"Display all providers.","No providers has been registered":"No providers has been registered","Add a new provider":"Add a new provider","Create a new provider":"Create a new provider","Register a new provider and save it.":"Register a new provider and save it.","Edit provider":"Edit provider","Modify Provider.":"Modify Provider.","Return to Providers":"Return to Providers","Provide the provider email. Mightbe used to send automatted email.":"Provide the provider email. Mightbe used to send automatted email.","Provider surname if necessary.":"Provider surname if necessary.","Contact phone number for the provider. Might be used to send automatted SMS notifications.":"Contact phone number for the provider. Might be used to send automatted SMS notifications.","First address of the provider.":"First address of the provider.","Second address of the provider.":"Second address of the provider.","Further details about the provider":"Further details about the provider","Amount Due":"Amount Due","Amount Paid":"Amount Paid","See Procurements":"See Procurements","Registers List":"Registers List","Display all registers.":"Display all registers.","No registers has been registered":"No registers has been registered","Add a new register":"Add a new register","Create a new register":"Create a new register","Register a new register and save it.":"Register a new register and save it.","Edit register":"Edit register","Modify Register.":"Modify Register.","Return to Registers":"Return to Registers","Closed":"Closed","Define what is the status of the register.":"Define what is the status of the register.","Provide mode details about this cash register.":"Provide mode details about this cash register.","Unable to delete a register that is currently in use":"Unable to delete a register that is currently in use","Used By":"Used By","Register History List":"Register History List","Display all register histories.":"Display all register histories.","No register histories has been registered":"No register histories has been registered","Add a new register history":"Add a new register history","Create a new register history":"Create a new register history","Register a new register history and save it.":"Register a new register history and save it.","Edit register history":"Edit register history","Modify Registerhistory.":"Modify Registerhistory.","Return to Register History":"Return to Register History","Register Id":"Register Id","Action":"Action","Register Name":"Register Name","Done At":"Done At","Reward Systems List":"Reward Systems List","Display all reward systems.":"Display all reward systems.","No reward systems has been registered":"No reward systems has been registered","Add a new reward system":"Add a new reward system","Create a new reward system":"Create a new reward system","Register a new reward system and save it.":"Register a new reward system and save it.","Edit reward system":"Edit reward system","Modify Reward System.":"Modify Reward System.","Return to Reward Systems":"Return to Reward Systems","From":"From","The interval start here.":"The interval start here.","To":"To","The interval ends here.":"The interval ends here.","Points earned.":"Points earned.","Coupon":"Coupon","Decide which coupon you would apply to the system.":"Decide which coupon you would apply to the system.","This is the objective that the user should reach to trigger the reward.":"This is the objective that the user should reach to trigger the reward.","A short description about this system":"A short description about this system","Would you like to delete this reward system ?":"Would you like to delete this reward system ?","Delete Selected Rewards":"Delete Selected Rewards","Would you like to delete selected rewards?":"Would you like to delete selected rewards?","Roles List":"Roles List","Display all roles.":"Display all roles.","No role has been registered.":"No role has been registered.","Add a new role":"Add a new role","Create a new role":"Create a new role","Create a new role and save it.":"Create a new role and save it.","Edit role":"Edit role","Modify Role.":"Modify Role.","Return to Roles":"Return to Roles","Provide a name to the role.":"Provide a name to the role.","Should be a unique value with no spaces or special character":"Should be a unique value with no spaces or special character","Provide more details about what this role is about.":"Provide more details about what this role is about.","Unable to delete a system role.":"Unable to delete a system role.","You do not have enough permissions to perform this action.":"You do not have enough permissions to perform this action.","Taxes List":"Taxes List","Display all taxes.":"Display all taxes.","No taxes has been registered":"No taxes has been registered","Add a new tax":"Add a new tax","Create a new tax":"Create a new tax","Register a new tax and save it.":"Register a new tax and save it.","Edit tax":"Edit tax","Modify Tax.":"Modify Tax.","Return to Taxes":"Return to Taxes","Provide a name to the tax.":"Provide a name to the tax.","Assign the tax to a tax group.":"Assign the tax to a tax group.","Rate":"Rate","Define the rate value for the tax.":"Define the rate value for the tax.","Provide a description to the tax.":"Provide a description to the tax.","Taxes Groups List":"Taxes Groups List","Display all taxes groups.":"Display all taxes groups.","No taxes groups has been registered":"No taxes groups has been registered","Add a new tax group":"Add a new tax group","Create a new tax group":"Create a new tax group","Register a new tax group and save it.":"Register a new tax group and save it.","Edit tax group":"Edit tax group","Modify Tax Group.":"Modify Tax Group.","Return to Taxes Groups":"Return to Taxes Groups","Provide a short description to the tax group.":"Provide a short description to the tax group.","Units List":"Units List","Display all units.":"Display all units.","No units has been registered":"No units has been registered","Add a new unit":"Add a new unit","Create a new unit":"Create a new unit","Register a new unit and save it.":"Register a new unit and save it.","Edit unit":"Edit unit","Modify Unit.":"Modify Unit.","Return to Units":"Return to Units","Preview URL":"Preview URL","Preview of the unit.":"Preview of the unit.","Define the value of the unit.":"Define the value of the unit.","Define to which group the unit should be assigned.":"Define to which group the unit should be assigned.","Base Unit":"Base Unit","Determine if the unit is the base unit from the group.":"Determine if the unit is the base unit from the group.","Provide a short description about the unit.":"Provide a short description about the unit.","Unit Groups List":"Unit Groups List","Display all unit groups.":"Display all unit groups.","No unit groups has been registered":"No unit groups has been registered","Add a new unit group":"Add a new unit group","Create a new unit group":"Create a new unit group","Register a new unit group and save it.":"Register a new unit group and save it.","Edit unit group":"Edit unit group","Modify Unit Group.":"Modify Unit Group.","Return to Unit Groups":"Return to Unit Groups","Users List":"Users List","Display all users.":"Display all users.","No users has been registered":"No users has been registered","Add a new user":"Add a new user","Create a new user":"Create a new user","Register a new user and save it.":"Register a new user and save it.","Edit user":"Edit user","Modify User.":"Modify User.","Return to Users":"Return to Users","Username":"Username","Will be used for various purposes such as email recovery.":"Will be used for various purposes such as email recovery.","Password":"Password","Make a unique and secure password.":"Make a unique and secure password.","Confirm Password":"Confirm Password","Should be the same as the password.":"Should be the same as the password.","Define wether the user can use the application.":"Define wether the user can use the application.","Define the role of the user":"Define the role of the user","Role":"Role","The action you tried to perform is not allowed.":"The action you tried to perform is not allowed.","Not Enough Permissions":"Not Enough Permissions","The resource of the page you tried to access is not available or might have been deleted.":"The resource of the page you tried to access is not available or might have been deleted.","Not Found Exception":"Not Found Exception","Provide your username.":"Provide your username.","Provide your password.":"Provide your password.","Provide your email.":"Provide your email.","Password Confirm":"Password Confirm","define the amount of the transaction.":"define the amount of the transaction.","Further observation while proceeding.":"Further observation while proceeding.","determine what is the transaction type.":"determine what is the transaction type.","Add":"Add","Deduct":"Deduct","Determine the amount of the transaction.":"Determine the amount of the transaction.","Further details about the transaction.":"Further details about the transaction.","Define the installments for the current order.":"Define the installments for the current order.","New Password":"New Password","define your new password.":"define your new password.","confirm your new password.":"confirm your new password.","choose the payment type.":"choose the payment type.","Provide the procurement name.":"Provide the procurement name.","Describe the procurement.":"Describe the procurement.","Define the provider.":"Define the provider.","Mention the provider name.":"Mention the provider name.","Provider Name":"Provider Name","It could be used to send some informations to the provider.":"It could be used to send some informations to the provider.","If the provider has any surname, provide it here.":"If the provider has any surname, provide it here.","Mention the phone number of the provider.":"Mention the phone number of the provider.","Mention the first address of the provider.":"Mention the first address of the provider.","Mention the second address of the provider.":"Mention the second address of the provider.","Mention any description of the provider.":"Mention any description of the provider.","Define what is the unit price of the product.":"Define what is the unit price of the product.","Condition":"Condition","Determine in which condition the product is returned.":"Determine in which condition the product is returned.","Other Observations":"Other Observations","Describe in details the condition of the returned product.":"Describe in details the condition of the returned product.","Unit Group Name":"Unit Group Name","Provide a unit name to the unit.":"Provide a unit name to the unit.","Describe the current unit.":"Describe the current unit.","assign the current unit to a group.":"assign the current unit to a group.","define the unit value.":"define the unit value.","Provide a unit name to the units group.":"Provide a unit name to the units group.","Describe the current unit group.":"Describe the current unit group.","POS":"POS","Open POS":"Open POS","Create Register":"Create Register","Registes List":"Registes List","Use Customer Billing":"Use Customer Billing","Define wether the customer billing information should be used.":"Define wether the customer billing information should be used.","General Shipping":"General Shipping","Define how the shipping is calculated.":"Define how the shipping is calculated.","Shipping Fees":"Shipping Fees","Define shipping fees.":"Define shipping fees.","Use Customer Shipping":"Use Customer Shipping","Define wether the customer shipping information should be used.":"Define wether the customer shipping information should be used.","Invoice Number":"Invoice Number","If the procurement has been issued outside of NexoPOS, please provide a unique reference.":"If the procurement has been issued outside of NexoPOS, please provide a unique reference.","Delivery Time":"Delivery Time","If the procurement has to be delivered at a specific time, define the moment here.":"If the procurement has to be delivered at a specific time, define the moment here.","Automatic Approval":"Automatic Approval","Determine if the procurement should be marked automatically as approved once the Delivery Time occurs.":"Determine if the procurement should be marked automatically as approved once the Delivery Time occurs.","Determine what is the actual payment status of the procurement.":"Determine what is the actual payment status of the procurement.","Determine what is the actual provider of the current procurement.":"Determine what is the actual provider of the current procurement.","Provide a name that will help to identify the procurement.":"Provide a name that will help to identify the procurement.","UOM":"UOM","First Name":"First Name","Define what is the user first name. If not provided, the username is used instead.":"Define what is the user first name. If not provided, the username is used instead.","Second Name":"Second Name","Define what is the user second name. If not provided, the username is used instead.":"Define what is the user second name. If not provided, the username is used instead.","Avatar":"Avatar","Define the image that should be used as an avatar.":"Define the image that should be used as an avatar.","Language":"Language","Choose the language for the current account.":"Choose the language for the current account.","Security":"Security","Old Password":"Old Password","Provide the old password.":"Provide the old password.","Change your password with a better stronger password.":"Change your password with a better stronger password.","Password Confirmation":"Password Confirmation","The profile has been successfully saved.":"The profile has been successfully saved.","The user attribute has been saved.":"The user attribute has been saved.","The options has been successfully updated.":"The options has been successfully updated.","Wrong password provided":"Wrong password provided","Wrong old password provided":"Wrong old password provided","Password Successfully updated.":"Password Successfully updated.","Sign In — NexoPOS":"Sign In — NexoPOS","Sign Up — NexoPOS":"Sign Up — NexoPOS","Password Lost":"Password Lost","Unable to proceed as the token provided is invalid.":"Unable to proceed as the token provided is invalid.","The token has expired. Please request a new activation token.":"The token has expired. Please request a new activation token.","Set New Password":"Set New Password","Database Update":"Database Update","This account is disabled.":"This account is disabled.","Unable to find record having that username.":"Unable to find record having that username.","Unable to find record having that password.":"Unable to find record having that password.","Invalid username or password.":"Invalid username or password.","Unable to login, the provided account is not active.":"Unable to login, the provided account is not active.","You have been successfully connected.":"You have been successfully connected.","The recovery email has been send to your inbox.":"The recovery email has been send to your inbox.","Unable to find a record matching your entry.":"Unable to find a record matching your entry.","No role has been defined for registration. Please contact the administrators.":"No role has been defined for registration. Please contact the administrators.","Your Account has been successfully creaetd.":"Your Account has been successfully creaetd.","Your Account has been created but requires email validation.":"Your Account has been created but requires email validation.","Unable to find the requested user.":"Unable to find the requested user.","Unable to proceed, the provided token is not valid.":"Unable to proceed, the provided token is not valid.","Unable to proceed, the token has expired.":"Unable to proceed, the token has expired.","Your password has been updated.":"Your password has been updated.","Unable to edit a register that is currently in use":"Unable to edit a register that is currently in use","No register has been opened by the logged user.":"No register has been opened by the logged user.","The register is opened.":"The register is opened.","Closing":"Closing","Opening":"Opening","Sale":"Sale","Refund":"Refund","Unable to find the category using the provided identifier":"Unable to find the category using the provided identifier","The category has been deleted.":"The category has been deleted.","Unable to find the category using the provided identifier.":"Unable to find the category using the provided identifier.","Unable to find the attached category parent":"Unable to find the attached category parent","The category has been correctly saved":"The category has been correctly saved","The category has been updated":"The category has been updated","The entry has been successfully deleted.":"The entry has been successfully deleted.","A new entry has been successfully created.":"A new entry has been successfully created.","Unhandled crud resource":"Unhandled crud resource","You need to select at least one item to delete":"You need to select at least one item to delete","You need to define which action to perform":"You need to define which action to perform","Unable to proceed. No matching CRUD resource has been found.":"Unable to proceed. No matching CRUD resource has been found.","This resource is not protected. The access is granted.":"This resource is not protected. The access is granted.","Create Coupon":"Create Coupon","helps you creating a coupon.":"helps you creating a coupon.","Edit Coupon":"Edit Coupon","Editing an existing coupon.":"Editing an existing coupon.","Invalid Request.":"Invalid Request.","Unable to delete a group to which customers are still assigned.":"Unable to delete a group to which customers are still assigned.","The customer group has been deleted.":"The customer group has been deleted.","Unable to find the requested group.":"Unable to find the requested group.","The customer group has been successfully created.":"The customer group has been successfully created.","The customer group has been successfully saved.":"The customer group has been successfully saved.","Unable to transfer customers to the same account.":"Unable to transfer customers to the same account.","All the customers has been trasnfered to the new group %s.":"All the customers has been trasnfered to the new group %s.","The categories has been transfered to the group %s.":"The categories has been transfered to the group %s.","No customer identifier has been provided to proceed to the transfer.":"No customer identifier has been provided to proceed to the transfer.","Unable to find the requested group using the provided id.":"Unable to find the requested group using the provided id.","List all created expenses":"List all created expenses","\"%s\" is not an instance of \"FieldsService\"":"\"%s\" is not an instance of \"FieldsService\"","Manage Medias":"Manage Medias","The operation was successful.":"The operation was successful.","Modules List":"Modules List","List all available modules.":"List all available modules.","Upload A Module":"Upload A Module","Extends NexoPOS features with some new modules.":"Extends NexoPOS features with some new modules.","The notification has been successfully deleted":"The notification has been successfully deleted","All the notificataions has been cleared.":"All the notificataions has been cleared.","POS — NexoPOS":"POS — NexoPOS","Order Invoice — %s":"Order Invoice — %s","Order Receipt — %s":"Order Receipt — %s","The printing event has been successfully dispatched.":"The printing event has been successfully dispatched.","There is a mismatch between the provided order and the order attached to the instalment.":"There is a mismatch between the provided order and the order attached to the instalment.","Unammed Page":"Unammed Page","Unable to edit a procurement that is stocked. Consider performing an adjustment or either delete the procurement.":"Unable to edit a procurement that is stocked. Consider performing an adjustment or either delete the procurement.","New Procurement":"New Procurement","Make a new procurement":"Make a new procurement","Edit Procurement":"Edit Procurement","Perform adjustment on existing procurement.":"Perform adjustment on existing procurement.","%s - Invoice":"%s - Invoice","list of product procured.":"list of product procured.","The product price has been refreshed.":"The product price has been refreshed.","The single variation has been deleted.":"The single variation has been deleted.","List all products available on the system":"List all products available on the system","Edit a product":"Edit a product","Makes modifications to a product":"Makes modifications to a product","Create a product":"Create a product","Add a new product on the system":"Add a new product on the system","Stock Adjustment":"Stock Adjustment","Adjust stock of existing products.":"Adjust stock of existing products.","Lost":"Lost","No stock is provided for the requested product.":"No stock is provided for the requested product.","The product unit quantity has been deleted.":"The product unit quantity has been deleted.","Unable to proceed as the request is not valid.":"Unable to proceed as the request is not valid.","Unsupported action for the product %s.":"Unsupported action for the product %s.","The stock has been adjustment successfully.":"The stock has been adjustment successfully.","Unable to add the product to the cart as it has expired.":"Unable to add the product to the cart as it has expired.","Unable to add a product that has accurate tracking enabled, using an ordinary barcode.":"Unable to add a product that has accurate tracking enabled, using an ordinary barcode.","There is no products matching the current request.":"There is no products matching the current request.","Print Labels":"Print Labels","Customize and print products labels.":"Customize and print products labels.","The form contains one or more errors.":"The form contains one or more errors.","Sales Report":"Sales Report","Provides an overview over the sales during a specific period":"Provides an overview over the sales during a specific period","Sold Stock":"Sold Stock","Provides an overview over the sold stock during a specific period.":"Provides an overview over the sold stock during a specific period.","Profit Report":"Profit Report","Provides an overview of the provide of the products sold.":"Provides an overview of the provide of the products sold.","Cash Flow Report":"Cash Flow Report","Provides an overview on the activity for a specific period.":"Provides an overview on the activity for a specific period.","Annual Report":"Annual Report","Invalid authorization code provided.":"Invalid authorization code provided.","The database has been successfully seeded.":"The database has been successfully seeded.","Rewards System":"Rewards System","Manage all rewards program.":"Manage all rewards program.","Create A Reward System":"Create A Reward System","Add a new reward system.":"Add a new reward system.","Edit A Reward System":"Edit A Reward System","edit an existing reward system with the rules attached.":"edit an existing reward system with the rules attached.","Settings Page Not Found":"Settings Page Not Found","Customers Settings":"Customers Settings","Configure the customers settings of the application.":"Configure the customers settings of the application.","General Settings":"General Settings","Configure the general settings of the application.":"Configure the general settings of the application.","Notifications Settings":"Notifications Settings","Configure the notifications settings of the application.":"Configure the notifications settings of the application.","Invoices Settings":"Invoices Settings","Configure the invoice settings.":"Configure the invoice settings.","Orders Settings":"Orders Settings","Configure the orders settings.":"Configure the orders settings.","POS Settings":"POS Settings","Configure the pos settings.":"Configure the pos settings.","Supplies & Deliveries Settings":"Supplies & Deliveries Settings","Configure the supplies and deliveries settings.":"Configure the supplies and deliveries settings.","Reports Settings":"Reports Settings","Configure the reports.":"Configure the reports.","Reset Settings":"Reset Settings","Reset the data and enable demo.":"Reset the data and enable demo.","Services Providers Settings":"Services Providers Settings","Configure the services providers settings.":"Configure the services providers settings.","Workers Settings":"Workers Settings","Configure the workers settings.":"Configure the workers settings.","%s is not an instance of \"%s\".":"%s is not an instance of \"%s\".","Unable to find the requeted product tax using the provided id":"Unable to find the requeted product tax using the provided id","Unable to find the requested product tax using the provided identifier.":"Unable to find the requested product tax using the provided identifier.","The product tax has been created.":"The product tax has been created.","The product tax has been updated":"The product tax has been updated","Unable to retreive the requested tax group using the provided identifier \"%s\".":"Unable to retreive the requested tax group using the provided identifier \"%s\".","Manage all users available.":"Manage all users available.","Permission Manager":"Permission Manager","Manage all permissions and roles":"Manage all permissions and roles","My Profile":"My Profile","Change your personal settings":"Change your personal settings","The permissions has been updated.":"The permissions has been updated.","Sunday":"Sunday","Monday":"Monday","Tuesday":"Tuesday","Wednesday":"Wednesday","Thursday":"Thursday","Friday":"Friday","Saturday":"Saturday","NexoPOS 4 — Setup Wizard":"NexoPOS 4 — Setup Wizard","The migration has successfully run.":"The migration has successfully run.","Workers Misconfiguration":"Workers Misconfiguration","Unable to initialize the settings page. The identifier \"%s\" cannot be instantiated.":"Unable to initialize the settings page. The identifier \"%s\" cannot be instantiated.","Unable to register. The registration is closed.":"Unable to register. The registration is closed.","Hold Order Cleared":"Hold Order Cleared","[NexoPOS] Activate Your Account":"[NexoPOS] Activate Your Account","[NexoPOS] A New User Has Registered":"[NexoPOS] A New User Has Registered","[NexoPOS] Your Account Has Been Created":"[NexoPOS] Your Account Has Been Created","Unable to find the permission with the namespace \"%s\".":"Unable to find the permission with the namespace \"%s\".","Voided":"Voided","Refunded":"Refunded","Partially Refunded":"Partially Refunded","This email is already in use.":"This email is already in use.","This username is already in use.":"This username is already in use.","The user has been succesfully registered":"The user has been succesfully registered","The current authentication request is invalid":"The current authentication request is invalid","Unable to proceed your session has expired.":"Unable to proceed your session has expired.","You are successfully authenticated":"You are successfully authenticated","The user has been successfully connected":"The user has been successfully connected","Your role is not allowed to login.":"Your role is not allowed to login.","This email is not currently in use on the system.":"This email is not currently in use on the system.","Unable to reset a password for a non active user.":"Unable to reset a password for a non active user.","An email has been send with password reset details.":"An email has been send with password reset details.","Unable to proceed, the reCaptcha validation has failed.":"Unable to proceed, the reCaptcha validation has failed.","Unable to proceed, the code has expired.":"Unable to proceed, the code has expired.","Unable to proceed, the request is not valid.":"Unable to proceed, the request is not valid.","The register has been successfully opened":"The register has been successfully opened","The register has been successfully closed":"The register has been successfully closed","The provided amount is not allowed. The amount should be greater than \"0\". ":"The provided amount is not allowed. The amount should be greater than \"0\". ","The cash has successfully been stored":"The cash has successfully been stored","Not enough fund to cash out.":"Not enough fund to cash out.","The cash has successfully been disbursed.":"The cash has successfully been disbursed.","In Use":"In Use","Opened":"Opened","Delete Selected entries":"Delete Selected entries","%s entries has been deleted":"%s entries has been deleted","%s entries has not been deleted":"%s entries has not been deleted","Unable to find the customer using the provided id.":"Unable to find the customer using the provided id.","The customer has been deleted.":"The customer has been deleted.","The email \"%s\" is already stored on another customer informations.":"The email \"%s\" is already stored on another customer informations.","The customer has been created.":"The customer has been created.","Unable to find the customer using the provided ID.":"Unable to find the customer using the provided ID.","The customer has been edited.":"The customer has been edited.","Unable to find the customer using the provided email.":"Unable to find the customer using the provided email.","The operation will cause negative account for the customer.":"The operation will cause negative account for the customer.","The customer account has been updated.":"The customer account has been updated.","Issuing Coupon Failed":"Issuing Coupon Failed","Unable to apply a coupon attached to the reward \"%s\". It looks like the coupon no more exists.":"Unable to apply a coupon attached to the reward \"%s\". It looks like the coupon no more exists.","The coupon is issued for a customer.":"The coupon is issued for a customer.","The coupon is not issued for the selected customer.":"The coupon is not issued for the selected customer.","Unable to find a coupon with the provided code.":"Unable to find a coupon with the provided code.","The coupon has been updated.":"The coupon has been updated.","The group has been created.":"The group has been created.","The expense has been successfully saved.":"The expense has been successfully saved.","The expense has been successfully updated.":"The expense has been successfully updated.","Unable to find the expense using the provided identifier.":"Unable to find the expense using the provided identifier.","Unable to find the requested expense using the provided id.":"Unable to find the requested expense using the provided id.","The expense has been correctly deleted.":"The expense has been correctly deleted.","Unable to find the requested expense category using the provided id.":"Unable to find the requested expense category using the provided id.","You cannot delete a category which has expenses bound.":"You cannot delete a category which has expenses bound.","The expense category has been deleted.":"The expense category has been deleted.","Unable to find the expense category using the provided ID.":"Unable to find the expense category using the provided ID.","The expense category has been saved":"The expense category has been saved","The expense category has been updated.":"The expense category has been updated.","The expense \"%s\" has been processed.":"The expense \"%s\" has been processed.","The expense \"%s\" has already been processed.":"The expense \"%s\" has already been processed.","The process has been correctly executed and all expenses has been processed.":"The process has been correctly executed and all expenses has been processed.","%s — NexoPOS 4":"%s — NexoPOS 4","The media has been deleted":"The media has been deleted","Unable to find the media.":"Unable to find the media.","Unable to find the requested file.":"Unable to find the requested file.","Unable to find the media entry":"Unable to find the media entry","Payment Types":"Payment Types","Medias":"Medias","List":"List","Customers Groups":"Customers Groups","Create Group":"Create Group","Reward Systems":"Reward Systems","Create Reward":"Create Reward","List Coupons":"List Coupons","Providers":"Providers","Create A Provider":"Create A Provider","Create Expense":"Create Expense","Inventory":"Inventory","Create Product":"Create Product","Create Category":"Create Category","Create Unit":"Create Unit","Unit Groups":"Unit Groups","Create Unit Groups":"Create Unit Groups","Taxes Groups":"Taxes Groups","Create Tax Groups":"Create Tax Groups","Create Tax":"Create Tax","Modules":"Modules","Upload Module":"Upload Module","Users":"Users","Create User":"Create User","Roles":"Roles","Create Roles":"Create Roles","Permissions Manager":"Permissions Manager","Procurements":"Procurements","Reports":"Reports","Sale Report":"Sale Report","Incomes & Loosses":"Incomes & Loosses","Cash Flow":"Cash Flow","Supplies & Deliveries":"Supplies & Deliveries","Invoice Settings":"Invoice Settings","Service Providers":"Service Providers","Notifications":"Notifications","Workers":"Workers","Unable to locate the requested module.":"Unable to locate the requested module.","The module \"%s\" has been disabled as the dependency \"%s\" is missing. ":"The module \"%s\" has been disabled as the dependency \"%s\" is missing. ","The module \"%s\" has been disabled as the dependency \"%s\" is not enabled. ":"The module \"%s\" has been disabled as the dependency \"%s\" is not enabled. ","Unable to detect the folder from where to perform the installation.":"Unable to detect the folder from where to perform the installation.","Invalid Module provided":"Invalid Module provided","The uploaded file is not a valid module.":"The uploaded file is not a valid module.","A migration is required for this module":"A migration is required for this module","The module has been successfully installed.":"The module has been successfully installed.","The migration run successfully.":"The migration run successfully.","The module has correctly been enabled.":"The module has correctly been enabled.","Unable to enable the module.":"Unable to enable the module.","The Module has been disabled.":"The Module has been disabled.","Unable to disable the module.":"Unable to disable the module.","Unable to proceed, the modules management is disabled.":"Unable to proceed, the modules management is disabled.","Missing required parameters to create a notification":"Missing required parameters to create a notification","The order has been placed.":"The order has been placed.","The total amount to be paid today is different from the tendered amount.":"The total amount to be paid today is different from the tendered amount.","The provided coupon \"%s\", can no longer be used":"The provided coupon \"%s\", can no longer be used","The percentage discount provided is not valid.":"The percentage discount provided is not valid.","A discount cannot exceed the sub total value of an order.":"A discount cannot exceed the sub total value of an order.","No payment is expected at the moment. If the customer want to pay early, consider adjusting instalment payments date.":"No payment is expected at the moment. If the customer want to pay early, consider adjusting instalment payments date.","The payment has been saved.":"The payment has been saved.","Unable to edit an order that is completely paid.":"Unable to edit an order that is completely paid.","Unable to proceed as one of the previous submitted payment is missing from the order.":"Unable to proceed as one of the previous submitted payment is missing from the order.","The order payment status cannot switch to hold as a payment has already been made on that order.":"The order payment status cannot switch to hold as a payment has already been made on that order.","Unable to proceed. One of the submitted payment type is not supported.":"Unable to proceed. One of the submitted payment type is not supported.","Unable to proceed, the product \"%s\" has a unit which cannot be retreived. It might have been deleted.":"Unable to proceed, the product \"%s\" has a unit which cannot be retreived. It might have been deleted.","Unable to find the customer using the provided ID. The order creation has failed.":"Unable to find the customer using the provided ID. The order creation has failed.","Unable to proceed a refund on an unpaid order.":"Unable to proceed a refund on an unpaid order.","The current credit has been issued from a refund.":"The current credit has been issued from a refund.","The order has been successfully refunded.":"The order has been successfully refunded.","unable to proceed to a refund as the provided status is not supported.":"unable to proceed to a refund as the provided status is not supported.","The product %s has been successfully refunded.":"The product %s has been successfully refunded.","Unable to find the order product using the provided id.":"Unable to find the order product using the provided id.","Unable to find the requested order using \"%s\" as pivot and \"%s\" as identifier":"Unable to find the requested order using \"%s\" as pivot and \"%s\" as identifier","Unable to fetch the order as the provided pivot argument is not supported.":"Unable to fetch the order as the provided pivot argument is not supported.","The product has been added to the order \"%s\"":"The product has been added to the order \"%s\"","the order has been succesfully computed.":"the order has been succesfully computed.","The order has been deleted.":"The order has been deleted.","The product has been successfully deleted from the order.":"The product has been successfully deleted from the order.","Unable to find the requested product on the provider order.":"Unable to find the requested product on the provider order.","Unpaid Orders Turned Due":"Unpaid Orders Turned Due","No orders to handle for the moment.":"No orders to handle for the moment.","The order has been correctly voided.":"The order has been correctly voided.","Unable to edit an already paid instalment.":"Unable to edit an already paid instalment.","The instalment has been saved.":"The instalment has been saved.","The instalment has been deleted.":"The instalment has been deleted.","The defined amount is not valid.":"The defined amount is not valid.","No further instalments is allowed for this order. The total instalment already covers the order total.":"No further instalments is allowed for this order. The total instalment already covers the order total.","The instalment has been created.":"The instalment has been created.","The provided status is not supported.":"The provided status is not supported.","The order has been successfully updated.":"The order has been successfully updated.","Unable to find the requested procurement using the provided identifier.":"Unable to find the requested procurement using the provided identifier.","Unable to find the assigned provider.":"Unable to find the assigned provider.","The procurement has been created.":"The procurement has been created.","Unable to edit a procurement that has already been stocked. Please consider performing and stock adjustment.":"Unable to edit a procurement that has already been stocked. Please consider performing and stock adjustment.","The provider has been edited.":"The provider has been edited.","Unable to delete the procurement as there is not enough stock remaining for \"%s\". This likely means the stock count has changed either with a sale, adjustment after the procurement has been stocked.":"Unable to delete the procurement as there is not enough stock remaining for \"%s\". This likely means the stock count has changed either with a sale, adjustment after the procurement has been stocked.","Unable to have a unit group id for the product using the reference \"%s\" as \"%s\"":"Unable to have a unit group id for the product using the reference \"%s\" as \"%s\"","The operation has completed.":"The operation has completed.","The procurement has been refreshed.":"The procurement has been refreshed.","The procurement has been reset.":"The procurement has been reset.","The procurement products has been deleted.":"The procurement products has been deleted.","The procurement product has been updated.":"The procurement product has been updated.","Unable to find the procurement product using the provided id.":"Unable to find the procurement product using the provided id.","The product %s has been deleted from the procurement %s":"The product %s has been deleted from the procurement %s","The product with the following ID \"%s\" is not initially included on the procurement":"The product with the following ID \"%s\" is not initially included on the procurement","The procurement products has been updated.":"The procurement products has been updated.","Procurement Automatically Stocked":"Procurement Automatically Stocked","Draft":"Draft","The category has been created":"The category has been created","Unable to find the product using the provided id.":"Unable to find the product using the provided id.","Unable to find the requested product using the provided SKU.":"Unable to find the requested product using the provided SKU.","The variable product has been created.":"The variable product has been created.","The provided barcode \"%s\" is already in use.":"The provided barcode \"%s\" is already in use.","The provided SKU \"%s\" is already in use.":"The provided SKU \"%s\" is already in use.","The product has been saved.":"The product has been saved.","The provided barcode is already in use.":"The provided barcode is already in use.","The provided SKU is already in use.":"The provided SKU is already in use.","The product has been udpated":"The product has been udpated","The variable product has been updated.":"The variable product has been updated.","The product variations has been reset":"The product variations has been reset","The product has been resetted.":"The product has been resetted.","The product \"%s\" has been successfully deleted":"The product \"%s\" has been successfully deleted","Unable to find the requested variation using the provided ID.":"Unable to find the requested variation using the provided ID.","The product stock has been updated.":"The product stock has been updated.","The action is not an allowed operation.":"The action is not an allowed operation.","The product quantity has been updated.":"The product quantity has been updated.","There is no variations to delete.":"There is no variations to delete.","There is no products to delete.":"There is no products to delete.","The product variation has been succesfully created.":"The product variation has been succesfully created.","The product variation has been updated.":"The product variation has been updated.","The provider has been created.":"The provider has been created.","The provider has been updated.":"The provider has been updated.","Unable to find the provider using the specified id.":"Unable to find the provider using the specified id.","The provider has been deleted.":"The provider has been deleted.","Unable to find the provider using the specified identifier.":"Unable to find the provider using the specified identifier.","The provider account has been updated.":"The provider account has been updated.","The procurement payment has been deducted.":"The procurement payment has been deducted.","The dashboard report has been updated.":"The dashboard report has been updated.","Untracked Stock Operation":"Untracked Stock Operation","Unsupported action":"Unsupported action","The expense has been correctly saved.":"The expense has been correctly saved.","The table has been truncated.":"The table has been truncated.","The database has been hard reset.":"The database has been hard reset.","Untitled Settings Page":"Untitled Settings Page","No description provided for this settings page.":"No description provided for this settings page.","The form has been successfully saved.":"The form has been successfully saved.","Unable to reach the host":"Unable to reach the host","Unable to connect to the database using the credentials provided.":"Unable to connect to the database using the credentials provided.","Unable to select the database.":"Unable to select the database.","Access denied for this user.":"Access denied for this user.","The connexion with the database was successful":"The connexion with the database was successful","Cash":"Cash","Bank Payment":"Bank Payment","NexoPOS has been successfuly installed.":"NexoPOS has been successfuly installed.","Database connexion was successful":"Database connexion was successful","A simple tax must not be assigned to a parent tax with the type \"simple\", but \"grouped\" instead.":"A simple tax must not be assigned to a parent tax with the type \"simple\", but \"grouped\" instead.","A tax cannot be his own parent.":"A tax cannot be his own parent.","The tax hierarchy is limited to 1. A sub tax must not have the tax type set to \"grouped\".":"The tax hierarchy is limited to 1. A sub tax must not have the tax type set to \"grouped\".","Unable to find the requested tax using the provided identifier.":"Unable to find the requested tax using the provided identifier.","The tax group has been correctly saved.":"The tax group has been correctly saved.","The tax has been correctly created.":"The tax has been correctly created.","The product tax has been saved.":"The product tax has been saved.","The tax has been successfully deleted.":"The tax has been successfully deleted.","The Unit Group has been created.":"The Unit Group has been created.","The unit group %s has been updated.":"The unit group %s has been updated.","Unable to find the unit group to which this unit is attached.":"Unable to find the unit group to which this unit is attached.","The unit has been saved.":"The unit has been saved.","Unable to find the Unit using the provided id.":"Unable to find the Unit using the provided id.","The unit has been updated.":"The unit has been updated.","The unit group %s has more than one base unit":"The unit group %s has more than one base unit","The unit has been deleted.":"The unit has been deleted.","The activation process has failed.":"The activation process has failed.","Unable to activate the account. The activation token is wrong.":"Unable to activate the account. The activation token is wrong.","Unable to activate the account. The activation token has expired.":"Unable to activate the account. The activation token has expired.","The account has been successfully activated.":"The account has been successfully activated.","unable to find this validation class %s.":"unable to find this validation class %s.","Enable Reward":"Enable Reward","Will activate the reward system for the customers.":"Will activate the reward system for the customers.","Default Customer Account":"Default Customer Account","Default Customer Group":"Default Customer Group","Select to which group each new created customers are assigned to.":"Select to which group each new created customers are assigned to.","Enable Credit & Account":"Enable Credit & Account","The customers will be able to make deposit or obtain credit.":"The customers will be able to make deposit or obtain credit.","Store Name":"Store Name","This is the store name.":"This is the store name.","Store Address":"Store Address","The actual store address.":"The actual store address.","Store City":"Store City","The actual store city.":"The actual store city.","Store Phone":"Store Phone","The phone number to reach the store.":"The phone number to reach the store.","Store Email":"Store Email","The actual store email. Might be used on invoice or for reports.":"The actual store email. Might be used on invoice or for reports.","Store PO.Box":"Store PO.Box","The store mail box number.":"The store mail box number.","Store Fax":"Store Fax","The store fax number.":"The store fax number.","Store Additional Information":"Store Additional Information","Store additional informations.":"Store additional informations.","Store Square Logo":"Store Square Logo","Choose what is the square logo of the store.":"Choose what is the square logo of the store.","Store Rectangle Logo":"Store Rectangle Logo","Choose what is the rectangle logo of the store.":"Choose what is the rectangle logo of the store.","Define the default fallback language.":"Define the default fallback language.","Currency":"Currency","Currency Symbol":"Currency Symbol","This is the currency symbol.":"This is the currency symbol.","Currency ISO":"Currency ISO","The international currency ISO format.":"The international currency ISO format.","Currency Position":"Currency Position","Before the amount":"Before the amount","After the amount":"After the amount","Define where the currency should be located.":"Define where the currency should be located.","Prefered Currency":"Prefered Currency","ISO Currency":"ISO Currency","Symbol":"Symbol","Determine what is the currency indicator that should be used.":"Determine what is the currency indicator that should be used.","Currency Thousand Separator":"Currency Thousand Separator","Define the symbol that indicate thousand. By default \",\" is used.":"Define the symbol that indicate thousand. By default \",\" is used.","Currency Decimal Separator":"Currency Decimal Separator","Define the symbol that indicate decimal number. By default \".\" is used.":"Define the symbol that indicate decimal number. By default \".\" is used.","Currency Precision":"Currency Precision","%s numbers after the decimal":"%s numbers after the decimal","Date Format":"Date Format","This define how the date should be defined. The default format is \"Y-m-d\".":"This define how the date should be defined. The default format is \"Y-m-d\".","Determine the default timezone of the store.":"Determine the default timezone of the store.","Registration":"Registration","Registration Open":"Registration Open","Determine if everyone can register.":"Determine if everyone can register.","Registration Role":"Registration Role","Select what is the registration role.":"Select what is the registration role.","Requires Validation":"Requires Validation","Force account validation after the registration.":"Force account validation after the registration.","Allow Recovery":"Allow Recovery","Allow any user to recover his account.":"Allow any user to recover his account.","Receipts":"Receipts","Receipt Template":"Receipt Template","Default":"Default","Choose the template that applies to receipts":"Choose the template that applies to receipts","Receipt Logo":"Receipt Logo","Provide a URL to the logo.":"Provide a URL to the logo.","Receipt Footer":"Receipt Footer","If you would like to add some disclosure at the bottom of the receipt.":"If you would like to add some disclosure at the bottom of the receipt.","Column A":"Column A","Column B":"Column B","Low Stock products":"Low Stock products","Define if notification should be enabled on low stock products":"Define if notification should be enabled on low stock products","Low Stock Channel":"Low Stock Channel","SMS":"SMS","Define the notification channel for the low stock products.":"Define the notification channel for the low stock products.","Expired products":"Expired products","Define if notification should be enabled on expired products":"Define if notification should be enabled on expired products","Expired Channel":"Expired Channel","Define the notification channel for the expired products.":"Define the notification channel for the expired products.","Notify Administrators":"Notify Administrators","Will notify administrator everytime a new user is registrated.":"Will notify administrator everytime a new user is registrated.","Administrator Notification Title":"Administrator Notification Title","Determine the title of the email send to the administrator.":"Determine the title of the email send to the administrator.","Administrator Notification Content":"Administrator Notification Content","Determine what is the message that will be send to the administrator.":"Determine what is the message that will be send to the administrator.","Notify User":"Notify User","Notify a user when his account is successfully created.":"Notify a user when his account is successfully created.","User Registration Title":"User Registration Title","Determine the title of the mail send to the user when his account is created and active.":"Determine the title of the mail send to the user when his account is created and active.","User Registration Content":"User Registration Content","Determine the body of the mail send to the user when his account is created and active.":"Determine the body of the mail send to the user when his account is created and active.","User Activate Title":"User Activate Title","Determine the title of the mail send to the user.":"Determine the title of the mail send to the user.","User Activate Content":"User Activate Content","Determine the mail that will be send to the use when his account requires an activation.":"Determine the mail that will be send to the use when his account requires an activation.","Order Code Type":"Order Code Type","Determine how the system will generate code for each orders.":"Determine how the system will generate code for each orders.","Sequential":"Sequential","Random Code":"Random Code","Number Sequential":"Number Sequential","Allow Unpaid Orders":"Allow Unpaid Orders","Will prevent incomplete orders to be placed. If credit is allowed, this option should be set to \"yes\".":"Will prevent incomplete orders to be placed. If credit is allowed, this option should be set to \"yes\".","Allow Partial Orders":"Allow Partial Orders","Will prevent partially paid orders to be placed.":"Will prevent partially paid orders to be placed.","Quotation Expiration":"Quotation Expiration","Quotations will get deleted after they defined they has reached.":"Quotations will get deleted after they defined they has reached.","%s Days":"%s Days","Orders Follow Up":"Orders Follow Up","Features":"Features","Sound Effect":"Sound Effect","Enable sound effect on the POS.":"Enable sound effect on the POS.","Show Quantity":"Show Quantity","Will show the quantity selector while choosing a product. Otherwise the default quantity is set to 1.":"Will show the quantity selector while choosing a product. Otherwise the default quantity is set to 1.","Allow Customer Creation":"Allow Customer Creation","Allow customers to be created on the POS.":"Allow customers to be created on the POS.","Quick Product":"Quick Product","Allow quick product to be created from the POS.":"Allow quick product to be created from the POS.","SMS Order Confirmation":"SMS Order Confirmation","Will send SMS to the customer once the order is placed.":"Will send SMS to the customer once the order is placed.","Editable Unit Price":"Editable Unit Price","Allow product unit price to be edited.":"Allow product unit price to be edited.","Use Gross Prices":"Use Gross Prices","Will use gross prices for each products.":"Will use gross prices for each products.","Order Types":"Order Types","Control the order type enabled.":"Control the order type enabled.","Layout":"Layout","Retail Layout":"Retail Layout","Clothing Shop":"Clothing Shop","POS Layout":"POS Layout","Change the layout of the POS.":"Change the layout of the POS.","Printing":"Printing","Printed Document":"Printed Document","Choose the document used for printing aster a sale.":"Choose the document used for printing aster a sale.","Printing Enabled For":"Printing Enabled For","All Orders":"All Orders","From Partially Paid Orders":"From Partially Paid Orders","Only Paid Orders":"Only Paid Orders","Determine when the printing should be enabled.":"Determine when the printing should be enabled.","Printing Gateway":"Printing Gateway","Determine what is the gateway used for printing.":"Determine what is the gateway used for printing.","Enable Cash Registers":"Enable Cash Registers","Determine if the POS will support cash registers.":"Determine if the POS will support cash registers.","Cashier Idle Counter":"Cashier Idle Counter","5 Minutes":"5 Minutes","10 Minutes":"10 Minutes","15 Minutes":"15 Minutes","20 Minutes":"20 Minutes","30 Minutes":"30 Minutes","Selected after how many minutes the system will set the cashier as idle.":"Selected after how many minutes the system will set the cashier as idle.","Cash Disbursement":"Cash Disbursement","Allow cash disbursement by the cashier.":"Allow cash disbursement by the cashier.","Cash Registers":"Cash Registers","Keyboard Shortcuts":"Keyboard Shortcuts","Cancel Order":"Cancel Order","Keyboard shortcut to cancel the current order.":"Keyboard shortcut to cancel the current order.","Keyboard shortcut to hold the current order.":"Keyboard shortcut to hold the current order.","Keyboard shortcut to create a customer.":"Keyboard shortcut to create a customer.","Proceed Payment":"Proceed Payment","Keyboard shortcut to proceed to the payment.":"Keyboard shortcut to proceed to the payment.","Open Shipping":"Open Shipping","Keyboard shortcut to define shipping details.":"Keyboard shortcut to define shipping details.","Open Note":"Open Note","Keyboard shortcut to open the notes.":"Keyboard shortcut to open the notes.","Open Calculator":"Open Calculator","Keyboard shortcut to open the calculator.":"Keyboard shortcut to open the calculator.","Open Category Explorer":"Open Category Explorer","Keyboard shortcut to open the category explorer.":"Keyboard shortcut to open the category explorer.","Order Type Selector":"Order Type Selector","Keyboard shortcut to open the order type selector.":"Keyboard shortcut to open the order type selector.","Toggle Fullscreen":"Toggle Fullscreen","Keyboard shortcut to toggle fullscreen.":"Keyboard shortcut to toggle fullscreen.","Quick Search":"Quick Search","Keyboard shortcut open the quick search popup.":"Keyboard shortcut open the quick search popup.","Amount Shortcuts":"Amount Shortcuts","VAT Type":"VAT Type","Determine the VAT type that should be used.":"Determine the VAT type that should be used.","Flat Rate":"Flat Rate","Flexible Rate":"Flexible Rate","Products Vat":"Products Vat","Products & Flat Rate":"Products & Flat Rate","Products & Flexible Rate":"Products & Flexible Rate","Define the tax group that applies to the sales.":"Define the tax group that applies to the sales.","Define how the tax is computed on sales.":"Define how the tax is computed on sales.","VAT Settings":"VAT Settings","Enable Email Reporting":"Enable Email Reporting","Determine if the reporting should be enabled globally.":"Determine if the reporting should be enabled globally.","Email Provider":"Email Provider","Mailgun":"Mailgun","Select the email provided used on the system.":"Select the email provided used on the system.","SMS Provider":"SMS Provider","Twilio":"Twilio","Select the sms provider used on the system.":"Select the sms provider used on the system.","Enable The Multistore Mode":"Enable The Multistore Mode","Will enable the multistore.":"Will enable the multistore.","Supplies":"Supplies","Public Name":"Public Name","Define what is the user public name. If not provided, the username is used instead.":"Define what is the user public name. If not provided, the username is used instead.","Enable Workers":"Enable Workers","Enable background services for NexoPOS 4.x. Refresh to check wether the option has turned to \"Yes\".":"Enable background services for NexoPOS 4.x. Refresh to check wether the option has turned to \"Yes\".","Test":"Test","Current Week":"Current Week","Previous Week":"Previous Week","Unable to find a module having the identifier \"%\".":"Unable to find a module having the identifier \"%\".","There is no migrations to perform for the module \"%s\"":"There is no migrations to perform for the module \"%s\"","The module migration has successfully been performed for the module \"%s\"":"The module migration has successfully been performed for the module \"%s\"","Sales By Payment Types":"Sales By Payment Types","Provide a report of the sales by payment types, for a specific period.":"Provide a report of the sales by payment types, for a specific period.","Sales By Payments":"Sales By Payments","Order Settings":"Order Settings","Define the order name.":"Define the order name.","Define the date of creation of the order.":"Define the date of creation of the order.","Total Refunds":"Total Refunds","Clients Registered":"Clients Registered","Commissions":"Commissions","Processing Status":"Processing Status","Refunded Products":"Refunded Products","The delivery status of the order will be changed. Please confirm your action.":"The delivery status of the order will be changed. Please confirm your action.","The product price has been updated.":"The product price has been updated.","The editable price feature is disabled.":"The editable price feature is disabled.","Order Refunds":"Order Refunds","Product Price":"Product Price","Before saving the order as laid away, a minimum payment of {amount} is required":"Before saving the order as laid away, a minimum payment of {amount} is required","Unable to proceed":"Unable to proceed","Confirm Payment":"Confirm Payment","An instalment has been detected. Would you like to add as first payment {amount} for the selected payment type \"{paymentType}\"?":"An instalment has been detected. Would you like to add as first payment {amount} for the selected payment type \"{paymentType}\"?","Partially paid orders are disabled.":"Partially paid orders are disabled.","An order is currently being processed.":"An order is currently being processed.","Log out":"Log out","Refund receipt":"Refund receipt","Recompute":"Recompute","Sort Results":"Sort Results","Using Quantity Ascending":"Using Quantity Ascending","Using Quantity Descending":"Using Quantity Descending","Using Sales Ascending":"Using Sales Ascending","Using Sales Descending":"Using Sales Descending","Using Name Ascending":"Using Name Ascending","Using Name Descending":"Using Name Descending","Progress":"Progress","Discounts":"Discounts","An invalid date were provided. Make sure it a prior date to the actual server date.":"An invalid date were provided. Make sure it a prior date to the actual server date.","Computing report from %s...":"Computing report from %s...","The demo has been enabled.":"The demo has been enabled.","Refund Receipt":"Refund Receipt","Codabar":"Codabar","Code 128":"Code 128","Code 39":"Code 39","Code 11":"Code 11","UPC A":"UPC A","UPC E":"UPC E","Dashboard Identifier":"Dashboard Identifier","Store Dashboard":"Store Dashboard","Cashier Dashboard":"Cashier Dashboard","Default Dashboard":"Default Dashboard","Define what should be the home page of the dashboard.":"Define what should be the home page of the dashboard.","%s has been processed, %s has not been processed.":"%s has been processed, %s has not been processed.","Order Refund Receipt — %s":"Order Refund Receipt — %s","Product Sales":"Product Sales","Provides an overview over the best products sold during a specific period.":"Provides an overview over the best products sold during a specific period.","The report will be computed for the current year.":"The report will be computed for the current year.","Unknown report to refresh.":"Unknown report to refresh.","Expenses Settings":"Expenses Settings","Configure the expenses settings of the application.":"Configure the expenses settings of the application.","Report Refreshed":"Report Refreshed","The yearly report has been successfully refreshed for the year \"%s\".":"The yearly report has been successfully refreshed for the year \"%s\".","Countable":"Countable","Piece":"Piece","GST":"GST","SGST":"SGST","CGST":"CGST","Sample Procurement %s":"Sample Procurement %s","generated":"generated","Procurement Expenses":"Procurement Expenses","Products Report":"Products Report","Not Available":"Not Available","The report has been computed successfully.":"The report has been computed successfully.","Create a customer":"Create a customer","Cash Flow List":"Cash Flow List","Display all Cash Flow.":"Display all Cash Flow.","No Cash Flow has been registered":"No Cash Flow has been registered","Add a new Cash Flow":"Add a new Cash Flow","Create a new Cash Flow":"Create a new Cash Flow","Register a new Cash Flow and save it.":"Register a new Cash Flow and save it.","Edit Cash Flow":"Edit Cash Flow","Modify Cash Flow.":"Modify Cash Flow.","Credit":"Credit","Debit":"Debit","All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.":"All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.","Account":"Account","Provide the accounting number for this category.":"Provide the accounting number for this category.","Unable to register using this email.":"Unable to register using this email.","Unable to register using this username.":"Unable to register using this username.","Accounting Settings":"Accounting Settings","Configure the accounting settings of the application.":"Configure the accounting settings of the application.","Automatically recorded sale payment.":"Automatically recorded sale payment.","Cash out":"Cash out","An automatically generated expense for cash-out operation.":"An automatically generated expense for cash-out operation.","Sales Refunds":"Sales Refunds","Soiled":"Soiled","Cash Register Cash In":"Cash Register Cash In","Cash Register Cash Out":"Cash Register Cash Out","Accounting":"Accounting","Cash Flow History":"Cash Flow History","Expense Accounts":"Expense Accounts","Create Expense Account":"Create Expense Account","Procurement Cash Flow Account":"Procurement Cash Flow Account","Every procurement will be added to the selected cash flow account":"Every procurement will be added to the selected cash flow account","Sale Cash Flow Account":"Sale Cash Flow Account","Every sales will be added to the selected cash flow account":"Every sales will be added to the selected cash flow account","Every customer credit will be added to the selected cash flow account":"Every customer credit will be added to the selected cash flow account","Every customer credit removed will be added to the selected cash flow account":"Every customer credit removed will be added to the selected cash flow account","Sales Refunds Account":"Sales Refunds Account","Sales refunds will be attached to this cash flow account":"Sales refunds will be attached to this cash flow account","Stock return for spoiled items will be attached to this account":"Stock return for spoiled items will be attached to this account","Stock return for unspoiled items will be attached to this account":"Stock return for unspoiled items will be attached to this account","Cash Register Cash-In Account":"Cash Register Cash-In Account","Cash Register Cash-Out Account":"Cash Register Cash-Out Account","Cash Out Assigned Expense Category":"Cash Out Assigned Expense Category","Every cashout will issue an expense under the selected expense category.":"Every cashout will issue an expense under the selected expense category.","Unable to save an order with instalments amounts which additionnated is less than the order total.":"Unable to save an order with instalments amounts which additionnated is less than the order total.","Cash Register cash-in will be added to the cash flow account":"Cash Register cash-in will be added to the cash flow account","Cash Register cash-out will be added to the cash flow account":"Cash Register cash-out will be added to the cash flow account"} \ No newline at end of file +{"displaying {perPage} on {items} items":"displaying {perPage} on {items} items","The document has been generated.":"The document has been generated.","Unexpected error occured.":"Unexpected error occured.","{entries} entries selected":"{entries} entries selected","Download":"Download","Bulk Actions":"Bulk Actions","Go":"Go","Delivery":"Delivery","Take Away":"Take Away","Unknown Type":"Unknown Type","Pending":"Pending","Ongoing":"Ongoing","Delivered":"Delivered","Unknown Status":"Unknown Status","Ready":"Ready","Paid":"Paid","Hold":"Hold","Unpaid":"Unpaid","Partially Paid":"Partially Paid","Save Password":"Save Password","Unable to proceed the form is not valid.":"Unable to proceed the form is not valid.","Submit":"Submit","Register":"Register","An unexpected error occured.":"An unexpected error occured.","Best Cashiers":"Best Cashiers","No result to display.":"No result to display.","Well.. nothing to show for the meantime.":"Well.. nothing to show for the meantime.","Best Customers":"Best Customers","Well.. nothing to show for the meantime":"Well.. nothing to show for the meantime","Total Sales":"Total Sales","Today":"Today","Incomplete Orders":"Incomplete Orders","Wasted Goods":"Wasted Goods","Expenses":"Expenses","Weekly Sales":"Weekly Sales","Week Taxes":"Week Taxes","Net Income":"Net Income","Week Expenses":"Week Expenses","Recents Orders":"Recents Orders","Order":"Order","Clear All":"Clear All","Confirm Your Action":"Confirm Your Action","Save":"Save","The processing status of the order will be changed. Please confirm your action.":"The processing status of the order will be changed. Please confirm your action.","Instalments":"Instalments","Create":"Create","Add Instalment":"Add Instalment","An unexpected error has occured":"An unexpected error has occured","Store Details":"Store Details","Order Code":"Order Code","Cashier":"Cashier","Date":"Date","Customer":"Customer","Type":"Type","Payment Status":"Payment Status","Delivery Status":"Delivery Status","Billing Details":"Billing Details","Shipping Details":"Shipping Details","Product":"Product","Unit Price":"Unit Price","Quantity":"Quantity","Discount":"Discount","Tax":"Tax","Total Price":"Total Price","Expiration Date":"Expiration Date","Sub Total":"Sub Total","Coupons":"Coupons","Shipping":"Shipping","Total":"Total","Due":"Due","Change":"Change","No title is provided":"No title is provided","SKU":"SKU","Barcode":"Barcode","Looks like no products matched the searched term.":"Looks like no products matched the searched term.","The product already exists on the table.":"The product already exists on the table.","The specified quantity exceed the available quantity.":"The specified quantity exceed the available quantity.","Unable to proceed as the table is empty.":"Unable to proceed as the table is empty.","More Details":"More Details","Useful to describe better what are the reasons that leaded to this adjustment.":"Useful to describe better what are the reasons that leaded to this adjustment.","Search":"Search","Unit":"Unit","Operation":"Operation","Procurement":"Procurement","Value":"Value","Actions":"Actions","Search and add some products":"Search and add some products","Proceed":"Proceed","An unexpected error occured":"An unexpected error occured","Load Coupon":"Load Coupon","Apply A Coupon":"Apply A Coupon","Load":"Load","Input the coupon code that should apply to the POS. If a coupon is issued for a customer, that customer must be selected priorly.":"Input the coupon code that should apply to the POS. If a coupon is issued for a customer, that customer must be selected priorly.","Click here to choose a customer.":"Click here to choose a customer.","Coupon Name":"Coupon Name","Usage":"Usage","Unlimited":"Unlimited","Valid From":"Valid From","Valid Till":"Valid Till","Categories":"Categories","Products":"Products","Active Coupons":"Active Coupons","Apply":"Apply","Cancel":"Cancel","Coupon Code":"Coupon Code","The coupon is out from validity date range.":"The coupon is out from validity date range.","The coupon has applied to the cart.":"The coupon has applied to the cart.","Percentage":"Percentage","Flat":"Flat","The coupon has been loaded.":"The coupon has been loaded.","Layaway Parameters":"Layaway Parameters","Minimum Payment":"Minimum Payment","Instalments & Payments":"Instalments & Payments","The final payment date must be the last within the instalments.":"The final payment date must be the last within the instalments.","There is not instalment defined. Please set how many instalments are allowed for this order":"There is not instalment defined. Please set how many instalments are allowed for this order","Amount":"Amount","You must define layaway settings before proceeding.":"You must define layaway settings before proceeding.","Please provide instalments before proceeding.":"Please provide instalments before proceeding.","Unable to procee the form is not valid":"Unable to procee the form is not valid","One or more instalments has an invalid date.":"One or more instalments has an invalid date.","One or more instalments has an invalid amount.":"One or more instalments has an invalid amount.","One or more instalments has a date prior to the current date.":"One or more instalments has a date prior to the current date.","Total instalments must be equal to the order total.":"Total instalments must be equal to the order total.","The customer has been loaded":"The customer has been loaded","This coupon is already added to the cart":"This coupon is already added to the cart","No tax group assigned to the order":"No tax group assigned to the order","Layaway defined":"Layaway defined","Okay":"Okay","An unexpected error has occured while fecthing taxes.":"An unexpected error has occured while fecthing taxes.","OKAY":"OKAY","Loading...":"Loading...","Profile":"Profile","Logout":"Logout","Unamed Page":"Unamed Page","No description":"No description","Name":"Name","Provide a name to the resource.":"Provide a name to the resource.","General":"General","Edit":"Edit","Delete":"Delete","Delete Selected Groups":"Delete Selected Groups","Activate Your Account":"Activate Your Account","Password Recovered":"Password Recovered","Password Recovery":"Password Recovery","Reset Password":"Reset Password","New User Registration":"New User Registration","Your Account Has Been Created":"Your Account Has Been Created","Login":"Login","Save Coupon":"Save Coupon","This field is required":"This field is required","The form is not valid. Please check it and try again":"The form is not valid. Please check it and try again","No Description Provided":"No Description Provided","mainFieldLabel not defined":"mainFieldLabel not defined","Unamed Table":"Unamed Table","Create Customer Group":"Create Customer Group","Save a new customer group":"Save a new customer group","Update Group":"Update Group","Modify an existing customer group":"Modify an existing customer group","Managing Customers Groups":"Managing Customers Groups","Create groups to assign customers":"Create groups to assign customers","Create Customer":"Create Customer","Add a new customers to the system":"Add a new customers to the system","Managing Customers":"Managing Customers","List of registered customers":"List of registered customers","Return":"Return","Your Module":"Your Module","Choose the zip file you would like to upload":"Choose the zip file you would like to upload","Upload":"Upload","Managing Orders":"Managing Orders","Manage all registered orders.":"Manage all registered orders.","Failed":"Failed","Order receipt":"Order receipt","Hide Dashboard":"Hide Dashboard","Taxes":"Taxes","Unknown Payment":"Unknown Payment","Order invoice":"Order invoice","Procurement Name":"Procurement Name","Unable to proceed no products has been provided.":"Unable to proceed no products has been provided.","Unable to proceed, one or more products is not valid.":"Unable to proceed, one or more products is not valid.","Unable to proceed the procurement form is not valid.":"Unable to proceed the procurement form is not valid.","Unable to proceed, no submit url has been provided.":"Unable to proceed, no submit url has been provided.","SKU, Barcode, Product name.":"SKU, Barcode, Product name.","Surname":"Surname","N\/A":"N\/A","Email":"Email","Phone":"Phone","First Address":"First Address","Second Address":"Second Address","Address":"Address","City":"City","PO.Box":"PO.Box","Price":"Price","Print":"Print","Description":"Description","Included Products":"Included Products","Apply Settings":"Apply Settings","Basic Settings":"Basic Settings","Visibility Settings":"Visibility Settings","Year":"Year","Sales":"Sales","Income":"Income","January":"January","Febuary":"Febuary","March":"March","April":"April","May":"May","June":"June","July":"July","August":"August","September":"September","October":"October","November":"November","December":"December","Purchase Price":"Purchase Price","Sale Price":"Sale Price","Profit":"Profit","Tax Value":"Tax Value","Reward System Name":"Reward System Name","Missing Dependency":"Missing Dependency","Go Back":"Go Back","Continue":"Continue","Home":"Home","Not Allowed Action":"Not Allowed Action","Try Again":"Try Again","Access Denied":"Access Denied","Dashboard":"Dashboard","Sign In":"Sign In","Sign Up":"Sign Up","This field is required.":"This field is required.","This field must contain a valid email address.":"This field must contain a valid email address.","Clear Selected Entries ?":"Clear Selected Entries ?","Would you like to clear all selected entries ?":"Would you like to clear all selected entries ?","No bulk confirmation message provided on the CRUD class.":"No bulk confirmation message provided on the CRUD class.","No selection has been made.":"No selection has been made.","No action has been selected.":"No action has been selected.","There is nothing to display...":"There is nothing to display...","Sun":"Sun","Mon":"Mon","Tue":"Tue","Wed":"Wed","Thr":"Thr","Fri":"Fri","Sat":"Sat","Nothing to display":"Nothing to display","Password Forgotten ?":"Password Forgotten ?","OK":"OK","Remember Your Password ?":"Remember Your Password ?","Already registered ?":"Already registered ?","Refresh":"Refresh","Enabled":"Enabled","Disabled":"Disabled","Enable":"Enable","Disable":"Disable","Gallery":"Gallery","Medias Manager":"Medias Manager","Click Here Or Drop Your File To Upload":"Click Here Or Drop Your File To Upload","Nothing has already been uploaded":"Nothing has already been uploaded","File Name":"File Name","Uploaded At":"Uploaded At","By":"By","Previous":"Previous","Next":"Next","Use Selected":"Use Selected","Would you like to clear all the notifications ?":"Would you like to clear all the notifications ?","Permissions":"Permissions","Payment Summary":"Payment Summary","Order Status":"Order Status","Would you proceed ?":"Would you proceed ?","Would you like to create this instalment ?":"Would you like to create this instalment ?","Would you like to delete this instalment ?":"Would you like to delete this instalment ?","Would you like to make this as paid ?":"Would you like to make this as paid ?","Would you like to update that instalment ?":"Would you like to update that instalment ?","Customer Account":"Customer Account","Payment":"Payment","No payment possible for paid order.":"No payment possible for paid order.","Payment History":"Payment History","Unable to proceed the form is not valid":"Unable to proceed the form is not valid","Please provide a valid value":"Please provide a valid value","Refund With Products":"Refund With Products","Refund Shipping":"Refund Shipping","Add Product":"Add Product","Damaged":"Damaged","Unspoiled":"Unspoiled","Summary":"Summary","Payment Gateway":"Payment Gateway","Screen":"Screen","Select the product to perform a refund.":"Select the product to perform a refund.","Please select a payment gateway before proceeding.":"Please select a payment gateway before proceeding.","There is nothing to refund.":"There is nothing to refund.","Please provide a valid payment amount.":"Please provide a valid payment amount.","The refund will be made on the current order.":"The refund will be made on the current order.","Please select a product before proceeding.":"Please select a product before proceeding.","Not enough quantity to proceed.":"Not enough quantity to proceed.","Would you like to delete this product ?":"Would you like to delete this product ?","Customers":"Customers","Order Type":"Order Type","Orders":"Orders","Cash Register":"Cash Register","Reset":"Reset","Cart":"Cart","Comments":"Comments","No products added...":"No products added...","Pay":"Pay","Void":"Void","Current Balance":"Current Balance","Full Payment":"Full Payment","The customer account can only be used once per order. Consider deleting the previously used payment.":"The customer account can only be used once per order. Consider deleting the previously used payment.","Not enough funds to add {amount} as a payment. Available balance {balance}.":"Not enough funds to add {amount} as a payment. Available balance {balance}.","Confirm Full Payment":"Confirm Full Payment","A full payment will be made using {paymentType} for {total}":"A full payment will be made using {paymentType} for {total}","You need to provide some products before proceeding.":"You need to provide some products before proceeding.","Unable to add the product, there is not enough stock. Remaining %s":"Unable to add the product, there is not enough stock. Remaining %s","Add Images":"Add Images","New Group":"New Group","Available Quantity":"Available Quantity","Would you like to delete this group ?":"Would you like to delete this group ?","Your Attention Is Required":"Your Attention Is Required","Please select at least one unit group before you proceed.":"Please select at least one unit group before you proceed.","Unable to proceed, more than one product is set as primary":"Unable to proceed, more than one product is set as primary","Unable to proceed as one of the unit group field is invalid":"Unable to proceed as one of the unit group field is invalid","Would you like to delete this variation ?":"Would you like to delete this variation ?","Details":"Details","Unable to proceed, no product were provided.":"Unable to proceed, no product were provided.","Unable to proceed, one or more product has incorrect values.":"Unable to proceed, one or more product has incorrect values.","Unable to proceed, the procurement form is not valid.":"Unable to proceed, the procurement form is not valid.","Unable to submit, no valid submit URL were provided.":"Unable to submit, no valid submit URL were provided.","Options":"Options","The stock adjustment is about to be made. Would you like to confirm ?":"The stock adjustment is about to be made. Would you like to confirm ?","Would you like to remove this product from the table ?":"Would you like to remove this product from the table ?","Unable to proceed. Select a correct time range.":"Unable to proceed. Select a correct time range.","Unable to proceed. The current time range is not valid.":"Unable to proceed. The current time range is not valid.","Would you like to proceed ?":"Would you like to proceed ?","Will apply various reset method on the system.":"Will apply various reset method on the system.","Wipe Everything":"Wipe Everything","Wipe + Grocery Demo":"Wipe + Grocery Demo","No rules has been provided.":"No rules has been provided.","No valid run were provided.":"No valid run were provided.","Unable to proceed, the form is invalid.":"Unable to proceed, the form is invalid.","Unable to proceed, no valid submit URL is defined.":"Unable to proceed, no valid submit URL is defined.","No title Provided":"No title Provided","Add Rule":"Add Rule","Save Settings":"Save Settings","Ok":"Ok","New Transaction":"New Transaction","Close":"Close","Would you like to delete this order":"Would you like to delete this order","The current order will be void. This action will be recorded. Consider providing a reason for this operation":"The current order will be void. This action will be recorded. Consider providing a reason for this operation","Order Options":"Order Options","Payments":"Payments","Refund & Return":"Refund & Return","Installments":"Installments","The form is not valid.":"The form is not valid.","Balance":"Balance","Input":"Input","Register History":"Register History","Close Register":"Close Register","Cash In":"Cash In","Cash Out":"Cash Out","Register Options":"Register Options","History":"History","Unable to open this register. Only closed register can be opened.":"Unable to open this register. Only closed register can be opened.","Open The Register":"Open The Register","Exit To Orders":"Exit To Orders","Looks like there is no registers. At least one register is required to proceed.":"Looks like there is no registers. At least one register is required to proceed.","Create Cash Register":"Create Cash Register","Yes":"Yes","No":"No","Use":"Use","No coupon available for this customer":"No coupon available for this customer","Select Customer":"Select Customer","No customer match your query...":"No customer match your query...","Customer Name":"Customer Name","Save Customer":"Save Customer","No Customer Selected":"No Customer Selected","In order to see a customer account, you need to select one customer.":"In order to see a customer account, you need to select one customer.","Summary For":"Summary For","Total Purchases":"Total Purchases","Total Owed":"Total Owed","Account Amount":"Account Amount","Last Purchases":"Last Purchases","Status":"Status","No orders...":"No orders...","Account Transaction":"Account Transaction","Product Discount":"Product Discount","Cart Discount":"Cart Discount","Hold Order":"Hold Order","The current order will be set on hold. You can retreive this order from the pending order button. Providing a reference to it might help you to identify the order more quickly.":"The current order will be set on hold. You can retreive this order from the pending order button. Providing a reference to it might help you to identify the order more quickly.","Confirm":"Confirm","Order Note":"Order Note","Note":"Note","More details about this order":"More details about this order","Display On Receipt":"Display On Receipt","Will display the note on the receipt":"Will display the note on the receipt","Open":"Open","Define The Order Type":"Define The Order Type","Payments Gateway":"Payments Gateway","Payment List":"Payment List","List Of Payments":"List Of Payments","No Payment added.":"No Payment added.","Select Payment":"Select Payment","Choose Payment":"Choose Payment","Submit Payment":"Submit Payment","Layaway":"Layaway","On Hold":"On Hold","Tendered":"Tendered","Nothing to display...":"Nothing to display...","Define Quantity":"Define Quantity","Please provide a quantity":"Please provide a quantity","Search Product":"Search Product","There is nothing to display. Have you started the search ?":"There is nothing to display. Have you started the search ?","Shipping & Billing":"Shipping & Billing","Tax & Summary":"Tax & Summary","Settings":"Settings","Select Tax":"Select Tax","Define the tax that apply to the sale.":"Define the tax that apply to the sale.","Define how the tax is computed":"Define how the tax is computed","Exclusive":"Exclusive","Inclusive":"Inclusive","Choose Selling Unit":"Choose Selling Unit","Define when that specific product should expire.":"Define when that specific product should expire.","Renders the automatically generated barcode.":"Renders the automatically generated barcode.","Tax Type":"Tax Type","Adjust how tax is calculated on the item.":"Adjust how tax is calculated on the item.","Unable to proceed. The form is not valid.":"Unable to proceed. The form is not valid.","Units & Quantities":"Units & Quantities","Wholesale Price":"Wholesale Price","Select":"Select","Unsupported print gateway.":"Unsupported print gateway.","Howdy, %s":"Howdy, %s","Would you like to delete this ?":"Would you like to delete this ?","The account you have created for __%s__, require an activation. In order to proceed, please click on the following link":"The account you have created for __%s__, require an activation. In order to proceed, please click on the following link","Your password has been successfully updated on __%s__. You can now login with your new password.":"Your password has been successfully updated on __%s__. You can now login with your new password.","Someone has requested to reset your password on __\"%s\"__. If you remember having done that request, please proceed by clicking the button below. ":"Someone has requested to reset your password on __\"%s\"__. If you remember having done that request, please proceed by clicking the button below. ","Receipt — %s":"Receipt — %s","Invoice — %s":"Invoice — %s","Unable to find a module having the identifier\/namespace \"%s\"":"Unable to find a module having the identifier\/namespace \"%s\"","What is the CRUD single resource name ? [Q] to quit.":"What is the CRUD single resource name ? [Q] to quit.","Which table name should be used ? [Q] to quit.":"Which table name should be used ? [Q] to quit.","What is the main route name to the resource ? [Q] to quit.":"What is the main route name to the resource ? [Q] to quit.","If your CRUD resource has a relation, mention it as follow \"foreign_table, foreign_key, local_key\" ? [S] to skip, [Q] to quit.":"If your CRUD resource has a relation, mention it as follow \"foreign_table, foreign_key, local_key\" ? [S] to skip, [Q] to quit.","Add a new relation ? Mention it as follow \"foreign_table, foreign_key, local_key\" ? [S] to skip, [Q] to quit.":"Add a new relation ? Mention it as follow \"foreign_table, foreign_key, local_key\" ? [S] to skip, [Q] to quit.","No enough paramters provided for the relation.":"No enough paramters provided for the relation.","The CRUD resource \"%s\" for the module \"%s\" has been generated at \"%s\"":"The CRUD resource \"%s\" for the module \"%s\" has been generated at \"%s\"","The CRUD resource \"%s\" has been generated at %s":"The CRUD resource \"%s\" has been generated at %s","An unexpected error has occured.":"An unexpected error has occured.","Localization for %s extracted to %s":"Localization for %s extracted to %s","Unable to find the requested module.":"Unable to find the requested module.","Unable to find a module with the defined identifier \"%s\"":"Unable to find a module with the defined identifier \"%s\"","Unable to find the requested file \"%s\" from the module migration.":"Unable to find the requested file \"%s\" from the module migration.","The migration file has been successfully forgotten.":"The migration file has been successfully forgotten.","Version":"Version","Path":"Path","Index":"Index","Entry Class":"Entry Class","Routes":"Routes","Api":"Api","Controllers":"Controllers","Views":"Views","Attribute":"Attribute","Namespace":"Namespace","Author":"Author","The product barcodes has been refreshed successfully.":"The product barcodes has been refreshed successfully.","Invalid operation provided.":"Invalid operation provided.","Unable to proceed the system is already installed.":"Unable to proceed the system is already installed.","What is the store name ? [Q] to quit.":"What is the store name ? [Q] to quit.","Please provide at least 6 characters for store name.":"Please provide at least 6 characters for store name.","What is the administrator password ? [Q] to quit.":"What is the administrator password ? [Q] to quit.","Please provide at least 6 characters for the administrator password.":"Please provide at least 6 characters for the administrator password.","What is the administrator email ? [Q] to quit.":"What is the administrator email ? [Q] to quit.","Please provide a valid email for the administrator.":"Please provide a valid email for the administrator.","What is the administrator username ? [Q] to quit.":"What is the administrator username ? [Q] to quit.","Please provide at least 5 characters for the administrator username.":"Please provide at least 5 characters for the administrator username.","Downloading latest dev build...":"Downloading latest dev build...","Reset project to HEAD...":"Reset project to HEAD...","Coupons List":"Coupons List","Display all coupons.":"Display all coupons.","No coupons has been registered":"No coupons has been registered","Add a new coupon":"Add a new coupon","Create a new coupon":"Create a new coupon","Register a new coupon and save it.":"Register a new coupon and save it.","Edit coupon":"Edit coupon","Modify Coupon.":"Modify Coupon.","Return to Coupons":"Return to Coupons","Might be used while printing the coupon.":"Might be used while printing the coupon.","Percentage Discount":"Percentage Discount","Flat Discount":"Flat Discount","Define which type of discount apply to the current coupon.":"Define which type of discount apply to the current coupon.","Discount Value":"Discount Value","Define the percentage or flat value.":"Define the percentage or flat value.","Valid Until":"Valid Until","Determin Until When the coupon is valid.":"Determin Until When the coupon is valid.","Minimum Cart Value":"Minimum Cart Value","What is the minimum value of the cart to make this coupon eligible.":"What is the minimum value of the cart to make this coupon eligible.","Maximum Cart Value":"Maximum Cart Value","Valid Hours Start":"Valid Hours Start","Define form which hour during the day the coupons is valid.":"Define form which hour during the day the coupons is valid.","Valid Hours End":"Valid Hours End","Define to which hour during the day the coupons end stop valid.":"Define to which hour during the day the coupons end stop valid.","Limit Usage":"Limit Usage","Define how many time a coupons can be redeemed.":"Define how many time a coupons can be redeemed.","Select Products":"Select Products","The following products will be required to be present on the cart, in order for this coupon to be valid.":"The following products will be required to be present on the cart, in order for this coupon to be valid.","Select Categories":"Select Categories","The products assigned to one of these categories should be on the cart, in order for this coupon to be valid.":"The products assigned to one of these categories should be on the cart, in order for this coupon to be valid.","Created At":"Created At","Undefined":"Undefined","Delete a licence":"Delete a licence","Customer Coupons List":"Customer Coupons List","Display all customer coupons.":"Display all customer coupons.","No customer coupons has been registered":"No customer coupons has been registered","Add a new customer coupon":"Add a new customer coupon","Create a new customer coupon":"Create a new customer coupon","Register a new customer coupon and save it.":"Register a new customer coupon and save it.","Edit customer coupon":"Edit customer coupon","Modify Customer Coupon.":"Modify Customer Coupon.","Return to Customer Coupons":"Return to Customer Coupons","Id":"Id","Limit":"Limit","Coupon_id":"Coupon_id","Customer_id":"Customer_id","Created_at":"Created_at","Updated_at":"Updated_at","Code":"Code","Customers List":"Customers List","Display all customers.":"Display all customers.","No customers has been registered":"No customers has been registered","Add a new customer":"Add a new customer","Create a new customer":"Create a new customer","Register a new customer and save it.":"Register a new customer and save it.","Edit customer":"Edit customer","Modify Customer.":"Modify Customer.","Return to Customers":"Return to Customers","Provide a unique name for the customer.":"Provide a unique name for the customer.","Provide the customer surname":"Provide the customer surname","Group":"Group","Assign the customer to a group":"Assign the customer to a group","Provide the customer email":"Provide the customer email","Phone Number":"Phone Number","Provide the customer phone number":"Provide the customer phone number","PO Box":"PO Box","Provide the customer PO.Box":"Provide the customer PO.Box","Not Defined":"Not Defined","Male":"Male","Female":"Female","Gender":"Gender","Billing Address":"Billing Address","Provide the billing name.":"Provide the billing name.","Provide the billing surname.":"Provide the billing surname.","Billing phone number.":"Billing phone number.","Address 1":"Address 1","Billing First Address.":"Billing First Address.","Address 2":"Address 2","Billing Second Address.":"Billing Second Address.","Country":"Country","Billing Country.":"Billing Country.","Postal Address":"Postal Address","Company":"Company","Shipping Address":"Shipping Address","Provide the shipping name.":"Provide the shipping name.","Provide the shipping surname.":"Provide the shipping surname.","Shipping phone number.":"Shipping phone number.","Shipping First Address.":"Shipping First Address.","Shipping Second Address.":"Shipping Second Address.","Shipping Country.":"Shipping Country.","No group selected and no default group configured.":"No group selected and no default group configured.","The access is granted.":"The access is granted.","Account Credit":"Account Credit","Owed Amount":"Owed Amount","Purchase Amount":"Purchase Amount","Rewards":"Rewards","Delete a customers":"Delete a customers","Delete Selected Customers":"Delete Selected Customers","Customer Groups List":"Customer Groups List","Display all Customers Groups.":"Display all Customers Groups.","No Customers Groups has been registered":"No Customers Groups has been registered","Add a new Customers Group":"Add a new Customers Group","Create a new Customers Group":"Create a new Customers Group","Register a new Customers Group and save it.":"Register a new Customers Group and save it.","Edit Customers Group":"Edit Customers Group","Modify Customers group.":"Modify Customers group.","Return to Customers Groups":"Return to Customers Groups","Reward System":"Reward System","Select which Reward system applies to the group":"Select which Reward system applies to the group","Minimum Credit Amount":"Minimum Credit Amount","Determine in percentage, what is the first minimum credit payment made by all customers on the group, in case of credit order. If left to \"0\", no minimal credit amount is required.":"Determine in percentage, what is the first minimum credit payment made by all customers on the group, in case of credit order. If left to \"0\", no minimal credit amount is required.","A brief description about what this group is about":"A brief description about what this group is about","Created On":"Created On","Customer Orders List":"Customer Orders List","Display all customer orders.":"Display all customer orders.","No customer orders has been registered":"No customer orders has been registered","Add a new customer order":"Add a new customer order","Create a new customer order":"Create a new customer order","Register a new customer order and save it.":"Register a new customer order and save it.","Edit customer order":"Edit customer order","Modify Customer Order.":"Modify Customer Order.","Return to Customer Orders":"Return to Customer Orders","Created at":"Created at","Customer Id":"Customer Id","Discount Percentage":"Discount Percentage","Discount Type":"Discount Type","Final Payment Date":"Final Payment Date","Gross Total":"Gross Total","Net Total":"Net Total","Process Status":"Process Status","Shipping Rate":"Shipping Rate","Shipping Type":"Shipping Type","Title":"Title","Total installments":"Total installments","Updated at":"Updated at","Uuid":"Uuid","Voidance Reason":"Voidance Reason","Customer Rewards List":"Customer Rewards List","Display all customer rewards.":"Display all customer rewards.","No customer rewards has been registered":"No customer rewards has been registered","Add a new customer reward":"Add a new customer reward","Create a new customer reward":"Create a new customer reward","Register a new customer reward and save it.":"Register a new customer reward and save it.","Edit customer reward":"Edit customer reward","Modify Customer Reward.":"Modify Customer Reward.","Return to Customer Rewards":"Return to Customer Rewards","Points":"Points","Target":"Target","Reward Name":"Reward Name","Last Update":"Last Update","Expenses Categories List":"Expenses Categories List","Display All Expense Categories.":"Display All Expense Categories.","No Expense Category has been registered":"No Expense Category has been registered","Add a new Expense Category":"Add a new Expense Category","Create a new Expense Category":"Create a new Expense Category","Register a new Expense Category and save it.":"Register a new Expense Category and save it.","Edit Expense Category":"Edit Expense Category","Modify An Expense Category.":"Modify An Expense Category.","Return to Expense Categories":"Return to Expense Categories","Expenses List":"Expenses List","Display all expenses.":"Display all expenses.","No expenses has been registered":"No expenses has been registered","Add a new expense":"Add a new expense","Create a new expense":"Create a new expense","Register a new expense and save it.":"Register a new expense and save it.","Edit expense":"Edit expense","Modify Expense.":"Modify Expense.","Return to Expenses":"Return to Expenses","Active":"Active","determine if the expense is effective or not. Work for recurring and not reccuring expenses.":"determine if the expense is effective or not. Work for recurring and not reccuring expenses.","Users Group":"Users Group","Assign expense to users group. Expense will therefore be multiplied by the number of entity.":"Assign expense to users group. Expense will therefore be multiplied by the number of entity.","None":"None","Expense Category":"Expense Category","Assign the expense to a category":"Assign the expense to a category","Is the value or the cost of the expense.":"Is the value or the cost of the expense.","If set to Yes, the expense will trigger on defined occurence.":"If set to Yes, the expense will trigger on defined occurence.","Recurring":"Recurring","Start of Month":"Start of Month","Mid of Month":"Mid of Month","End of Month":"End of Month","X days Before Month Ends":"X days Before Month Ends","X days After Month Starts":"X days After Month Starts","Occurence":"Occurence","Define how often this expenses occurs":"Define how often this expenses occurs","Occurence Value":"Occurence Value","Must be used in case of X days after month starts and X days before month ends.":"Must be used in case of X days after month starts and X days before month ends.","Category":"Category","Month Starts":"Month Starts","Month Middle":"Month Middle","Month Ends":"Month Ends","X Days Before Month Starts":"X Days Before Month Starts","X Days Before Month Ends":"X Days Before Month Ends","Unknown Occurance":"Unknown Occurance","Return to Expenses Histories":"Return to Expenses Histories","Expense ID":"Expense ID","Expense Name":"Expense Name","Updated At":"Updated At","The expense history is about to be deleted.":"The expense history is about to be deleted.","Hold Orders List":"Hold Orders List","Display all hold orders.":"Display all hold orders.","No hold orders has been registered":"No hold orders has been registered","Add a new hold order":"Add a new hold order","Create a new hold order":"Create a new hold order","Register a new hold order and save it.":"Register a new hold order and save it.","Edit hold order":"Edit hold order","Modify Hold Order.":"Modify Hold Order.","Return to Hold Orders":"Return to Hold Orders","Process Statuss":"Process Statuss","Orders List":"Orders List","Display all orders.":"Display all orders.","No orders has been registered":"No orders has been registered","Add a new order":"Add a new order","Create a new order":"Create a new order","Register a new order and save it.":"Register a new order and save it.","Edit order":"Edit order","Modify Order.":"Modify Order.","Return to Orders":"Return to Orders","Discount Rate":"Discount Rate","The order and the attached products has been deleted.":"The order and the attached products has been deleted.","Invoice":"Invoice","Receipt":"Receipt","Order Instalments List":"Order Instalments List","Display all Order Instalments.":"Display all Order Instalments.","No Order Instalment has been registered":"No Order Instalment has been registered","Add a new Order Instalment":"Add a new Order Instalment","Create a new Order Instalment":"Create a new Order Instalment","Register a new Order Instalment and save it.":"Register a new Order Instalment and save it.","Edit Order Instalment":"Edit Order Instalment","Modify Order Instalment.":"Modify Order Instalment.","Return to Order Instalment":"Return to Order Instalment","Order Id":"Order Id","Payment Types List":"Payment Types List","Display all payment types.":"Display all payment types.","No payment types has been registered":"No payment types has been registered","Add a new payment type":"Add a new payment type","Create a new payment type":"Create a new payment type","Register a new payment type and save it.":"Register a new payment type and save it.","Edit payment type":"Edit payment type","Modify Payment Type.":"Modify Payment Type.","Return to Payment Types":"Return to Payment Types","Label":"Label","Provide a label to the resource.":"Provide a label to the resource.","Identifier":"Identifier","A payment type having the same identifier already exists.":"A payment type having the same identifier already exists.","Unable to delete a read-only payments type.":"Unable to delete a read-only payments type.","Readonly":"Readonly","Procurements List":"Procurements List","Display all procurements.":"Display all procurements.","No procurements has been registered":"No procurements has been registered","Add a new procurement":"Add a new procurement","Create a new procurement":"Create a new procurement","Register a new procurement and save it.":"Register a new procurement and save it.","Edit procurement":"Edit procurement","Modify Procurement.":"Modify Procurement.","Return to Procurements":"Return to Procurements","Provider Id":"Provider Id","Total Items":"Total Items","Provider":"Provider","Stocked":"Stocked","Procurement Products List":"Procurement Products List","Display all procurement products.":"Display all procurement products.","No procurement products has been registered":"No procurement products has been registered","Add a new procurement product":"Add a new procurement product","Create a new procurement product":"Create a new procurement product","Register a new procurement product and save it.":"Register a new procurement product and save it.","Edit procurement product":"Edit procurement product","Modify Procurement Product.":"Modify Procurement Product.","Return to Procurement Products":"Return to Procurement Products","Define what is the expiration date of the product.":"Define what is the expiration date of the product.","On":"On","Category Products List":"Category Products List","Display all category products.":"Display all category products.","No category products has been registered":"No category products has been registered","Add a new category product":"Add a new category product","Create a new category product":"Create a new category product","Register a new category product and save it.":"Register a new category product and save it.","Edit category product":"Edit category product","Modify Category Product.":"Modify Category Product.","Return to Category Products":"Return to Category Products","No Parent":"No Parent","Preview":"Preview","Provide a preview url to the category.":"Provide a preview url to the category.","Displays On POS":"Displays On POS","Parent":"Parent","If this category should be a child category of an existing category":"If this category should be a child category of an existing category","Total Products":"Total Products","Products List":"Products List","Display all products.":"Display all products.","No products has been registered":"No products has been registered","Add a new product":"Add a new product","Create a new product":"Create a new product","Register a new product and save it.":"Register a new product and save it.","Edit product":"Edit product","Modify Product.":"Modify Product.","Return to Products":"Return to Products","Assigned Unit":"Assigned Unit","The assigned unit for sale":"The assigned unit for sale","Define the regular selling price.":"Define the regular selling price.","Define the wholesale price.":"Define the wholesale price.","Preview Url":"Preview Url","Provide the preview of the current unit.":"Provide the preview of the current unit.","Identification":"Identification","Define the barcode value. Focus the cursor here before scanning the product.":"Define the barcode value. Focus the cursor here before scanning the product.","Define the barcode type scanned.":"Define the barcode type scanned.","EAN 8":"EAN 8","EAN 13":"EAN 13","Barcode Type":"Barcode Type","Determine if the product can be searched on the POS.":"Determine if the product can be searched on the POS.","Searchable":"Searchable","Select to which category the item is assigned.":"Select to which category the item is assigned.","Materialized Product":"Materialized Product","Dematerialized Product":"Dematerialized Product","Define the product type. Applies to all variations.":"Define the product type. Applies to all variations.","Product Type":"Product Type","Define a unique SKU value for the product.":"Define a unique SKU value for the product.","On Sale":"On Sale","Hidden":"Hidden","Define wether the product is available for sale.":"Define wether the product is available for sale.","Enable the stock management on the product. Will not work for service or uncountable products.":"Enable the stock management on the product. Will not work for service or uncountable products.","Stock Management Enabled":"Stock Management Enabled","Units":"Units","Accurate Tracking":"Accurate Tracking","What unit group applies to the actual item. This group will apply during the procurement.":"What unit group applies to the actual item. This group will apply during the procurement.","Unit Group":"Unit Group","Determine the unit for sale.":"Determine the unit for sale.","Selling Unit":"Selling Unit","Expiry":"Expiry","Product Expires":"Product Expires","Set to \"No\" expiration time will be ignored.":"Set to \"No\" expiration time will be ignored.","Prevent Sales":"Prevent Sales","Allow Sales":"Allow Sales","Determine the action taken while a product has expired.":"Determine the action taken while a product has expired.","On Expiration":"On Expiration","Select the tax group that applies to the product\/variation.":"Select the tax group that applies to the product\/variation.","Tax Group":"Tax Group","Define what is the type of the tax.":"Define what is the type of the tax.","Images":"Images","Image":"Image","Choose an image to add on the product gallery":"Choose an image to add on the product gallery","Is Primary":"Is Primary","Define wether the image should be primary. If there are more than one primary image, one will be choosed for you.":"Define wether the image should be primary. If there are more than one primary image, one will be choosed for you.","Sku":"Sku","Materialized":"Materialized","Dematerialized":"Dematerialized","Available":"Available","See Quantities":"See Quantities","See History":"See History","Would you like to delete selected entries ?":"Would you like to delete selected entries ?","Product Histories":"Product Histories","Display all product histories.":"Display all product histories.","No product histories has been registered":"No product histories has been registered","Add a new product history":"Add a new product history","Create a new product history":"Create a new product history","Register a new product history and save it.":"Register a new product history and save it.","Edit product history":"Edit product history","Modify Product History.":"Modify Product History.","Return to Product Histories":"Return to Product Histories","After Quantity":"After Quantity","Before Quantity":"Before Quantity","Operation Type":"Operation Type","Order id":"Order id","Procurement Id":"Procurement Id","Procurement Product Id":"Procurement Product Id","Product Id":"Product Id","Unit Id":"Unit Id","P. Quantity":"P. Quantity","N. Quantity":"N. Quantity","Defective":"Defective","Deleted":"Deleted","Removed":"Removed","Returned":"Returned","Sold":"Sold","Added":"Added","Incoming Transfer":"Incoming Transfer","Outgoing Transfer":"Outgoing Transfer","Transfer Rejected":"Transfer Rejected","Transfer Canceled":"Transfer Canceled","Void Return":"Void Return","Adjustment Return":"Adjustment Return","Adjustment Sale":"Adjustment Sale","Product Unit Quantities List":"Product Unit Quantities List","Display all product unit quantities.":"Display all product unit quantities.","No product unit quantities has been registered":"No product unit quantities has been registered","Add a new product unit quantity":"Add a new product unit quantity","Create a new product unit quantity":"Create a new product unit quantity","Register a new product unit quantity and save it.":"Register a new product unit quantity and save it.","Edit product unit quantity":"Edit product unit quantity","Modify Product Unit Quantity.":"Modify Product Unit Quantity.","Return to Product Unit Quantities":"Return to Product Unit Quantities","Product id":"Product id","Providers List":"Providers List","Display all providers.":"Display all providers.","No providers has been registered":"No providers has been registered","Add a new provider":"Add a new provider","Create a new provider":"Create a new provider","Register a new provider and save it.":"Register a new provider and save it.","Edit provider":"Edit provider","Modify Provider.":"Modify Provider.","Return to Providers":"Return to Providers","Provide the provider email. Mightbe used to send automatted email.":"Provide the provider email. Mightbe used to send automatted email.","Provider surname if necessary.":"Provider surname if necessary.","Contact phone number for the provider. Might be used to send automatted SMS notifications.":"Contact phone number for the provider. Might be used to send automatted SMS notifications.","First address of the provider.":"First address of the provider.","Second address of the provider.":"Second address of the provider.","Further details about the provider":"Further details about the provider","Amount Due":"Amount Due","Amount Paid":"Amount Paid","See Procurements":"See Procurements","Registers List":"Registers List","Display all registers.":"Display all registers.","No registers has been registered":"No registers has been registered","Add a new register":"Add a new register","Create a new register":"Create a new register","Register a new register and save it.":"Register a new register and save it.","Edit register":"Edit register","Modify Register.":"Modify Register.","Return to Registers":"Return to Registers","Closed":"Closed","Define what is the status of the register.":"Define what is the status of the register.","Provide mode details about this cash register.":"Provide mode details about this cash register.","Unable to delete a register that is currently in use":"Unable to delete a register that is currently in use","Used By":"Used By","Register History List":"Register History List","Display all register histories.":"Display all register histories.","No register histories has been registered":"No register histories has been registered","Add a new register history":"Add a new register history","Create a new register history":"Create a new register history","Register a new register history and save it.":"Register a new register history and save it.","Edit register history":"Edit register history","Modify Registerhistory.":"Modify Registerhistory.","Return to Register History":"Return to Register History","Register Id":"Register Id","Action":"Action","Register Name":"Register Name","Done At":"Done At","Reward Systems List":"Reward Systems List","Display all reward systems.":"Display all reward systems.","No reward systems has been registered":"No reward systems has been registered","Add a new reward system":"Add a new reward system","Create a new reward system":"Create a new reward system","Register a new reward system and save it.":"Register a new reward system and save it.","Edit reward system":"Edit reward system","Modify Reward System.":"Modify Reward System.","Return to Reward Systems":"Return to Reward Systems","From":"From","The interval start here.":"The interval start here.","To":"To","The interval ends here.":"The interval ends here.","Points earned.":"Points earned.","Coupon":"Coupon","Decide which coupon you would apply to the system.":"Decide which coupon you would apply to the system.","This is the objective that the user should reach to trigger the reward.":"This is the objective that the user should reach to trigger the reward.","A short description about this system":"A short description about this system","Would you like to delete this reward system ?":"Would you like to delete this reward system ?","Delete Selected Rewards":"Delete Selected Rewards","Would you like to delete selected rewards?":"Would you like to delete selected rewards?","Roles List":"Roles List","Display all roles.":"Display all roles.","No role has been registered.":"No role has been registered.","Add a new role":"Add a new role","Create a new role":"Create a new role","Create a new role and save it.":"Create a new role and save it.","Edit role":"Edit role","Modify Role.":"Modify Role.","Return to Roles":"Return to Roles","Provide a name to the role.":"Provide a name to the role.","Should be a unique value with no spaces or special character":"Should be a unique value with no spaces or special character","Provide more details about what this role is about.":"Provide more details about what this role is about.","Unable to delete a system role.":"Unable to delete a system role.","You do not have enough permissions to perform this action.":"You do not have enough permissions to perform this action.","Taxes List":"Taxes List","Display all taxes.":"Display all taxes.","No taxes has been registered":"No taxes has been registered","Add a new tax":"Add a new tax","Create a new tax":"Create a new tax","Register a new tax and save it.":"Register a new tax and save it.","Edit tax":"Edit tax","Modify Tax.":"Modify Tax.","Return to Taxes":"Return to Taxes","Provide a name to the tax.":"Provide a name to the tax.","Assign the tax to a tax group.":"Assign the tax to a tax group.","Rate":"Rate","Define the rate value for the tax.":"Define the rate value for the tax.","Provide a description to the tax.":"Provide a description to the tax.","Taxes Groups List":"Taxes Groups List","Display all taxes groups.":"Display all taxes groups.","No taxes groups has been registered":"No taxes groups has been registered","Add a new tax group":"Add a new tax group","Create a new tax group":"Create a new tax group","Register a new tax group and save it.":"Register a new tax group and save it.","Edit tax group":"Edit tax group","Modify Tax Group.":"Modify Tax Group.","Return to Taxes Groups":"Return to Taxes Groups","Provide a short description to the tax group.":"Provide a short description to the tax group.","Units List":"Units List","Display all units.":"Display all units.","No units has been registered":"No units has been registered","Add a new unit":"Add a new unit","Create a new unit":"Create a new unit","Register a new unit and save it.":"Register a new unit and save it.","Edit unit":"Edit unit","Modify Unit.":"Modify Unit.","Return to Units":"Return to Units","Preview URL":"Preview URL","Preview of the unit.":"Preview of the unit.","Define the value of the unit.":"Define the value of the unit.","Define to which group the unit should be assigned.":"Define to which group the unit should be assigned.","Base Unit":"Base Unit","Determine if the unit is the base unit from the group.":"Determine if the unit is the base unit from the group.","Provide a short description about the unit.":"Provide a short description about the unit.","Unit Groups List":"Unit Groups List","Display all unit groups.":"Display all unit groups.","No unit groups has been registered":"No unit groups has been registered","Add a new unit group":"Add a new unit group","Create a new unit group":"Create a new unit group","Register a new unit group and save it.":"Register a new unit group and save it.","Edit unit group":"Edit unit group","Modify Unit Group.":"Modify Unit Group.","Return to Unit Groups":"Return to Unit Groups","Users List":"Users List","Display all users.":"Display all users.","No users has been registered":"No users has been registered","Add a new user":"Add a new user","Create a new user":"Create a new user","Register a new user and save it.":"Register a new user and save it.","Edit user":"Edit user","Modify User.":"Modify User.","Return to Users":"Return to Users","Username":"Username","Will be used for various purposes such as email recovery.":"Will be used for various purposes such as email recovery.","Password":"Password","Make a unique and secure password.":"Make a unique and secure password.","Confirm Password":"Confirm Password","Should be the same as the password.":"Should be the same as the password.","Define wether the user can use the application.":"Define wether the user can use the application.","Define the role of the user":"Define the role of the user","Role":"Role","The action you tried to perform is not allowed.":"The action you tried to perform is not allowed.","Not Enough Permissions":"Not Enough Permissions","The resource of the page you tried to access is not available or might have been deleted.":"The resource of the page you tried to access is not available or might have been deleted.","Not Found Exception":"Not Found Exception","Provide your username.":"Provide your username.","Provide your password.":"Provide your password.","Provide your email.":"Provide your email.","Password Confirm":"Password Confirm","define the amount of the transaction.":"define the amount of the transaction.","Further observation while proceeding.":"Further observation while proceeding.","determine what is the transaction type.":"determine what is the transaction type.","Add":"Add","Deduct":"Deduct","Determine the amount of the transaction.":"Determine the amount of the transaction.","Further details about the transaction.":"Further details about the transaction.","Define the installments for the current order.":"Define the installments for the current order.","New Password":"New Password","define your new password.":"define your new password.","confirm your new password.":"confirm your new password.","choose the payment type.":"choose the payment type.","Provide the procurement name.":"Provide the procurement name.","Describe the procurement.":"Describe the procurement.","Define the provider.":"Define the provider.","Mention the provider name.":"Mention the provider name.","Provider Name":"Provider Name","It could be used to send some informations to the provider.":"It could be used to send some informations to the provider.","If the provider has any surname, provide it here.":"If the provider has any surname, provide it here.","Mention the phone number of the provider.":"Mention the phone number of the provider.","Mention the first address of the provider.":"Mention the first address of the provider.","Mention the second address of the provider.":"Mention the second address of the provider.","Mention any description of the provider.":"Mention any description of the provider.","Define what is the unit price of the product.":"Define what is the unit price of the product.","Condition":"Condition","Determine in which condition the product is returned.":"Determine in which condition the product is returned.","Other Observations":"Other Observations","Describe in details the condition of the returned product.":"Describe in details the condition of the returned product.","Unit Group Name":"Unit Group Name","Provide a unit name to the unit.":"Provide a unit name to the unit.","Describe the current unit.":"Describe the current unit.","assign the current unit to a group.":"assign the current unit to a group.","define the unit value.":"define the unit value.","Provide a unit name to the units group.":"Provide a unit name to the units group.","Describe the current unit group.":"Describe the current unit group.","POS":"POS","Open POS":"Open POS","Create Register":"Create Register","Registes List":"Registes List","Use Customer Billing":"Use Customer Billing","Define wether the customer billing information should be used.":"Define wether the customer billing information should be used.","General Shipping":"General Shipping","Define how the shipping is calculated.":"Define how the shipping is calculated.","Shipping Fees":"Shipping Fees","Define shipping fees.":"Define shipping fees.","Use Customer Shipping":"Use Customer Shipping","Define wether the customer shipping information should be used.":"Define wether the customer shipping information should be used.","Invoice Number":"Invoice Number","If the procurement has been issued outside of NexoPOS, please provide a unique reference.":"If the procurement has been issued outside of NexoPOS, please provide a unique reference.","Delivery Time":"Delivery Time","If the procurement has to be delivered at a specific time, define the moment here.":"If the procurement has to be delivered at a specific time, define the moment here.","Automatic Approval":"Automatic Approval","Determine if the procurement should be marked automatically as approved once the Delivery Time occurs.":"Determine if the procurement should be marked automatically as approved once the Delivery Time occurs.","Determine what is the actual payment status of the procurement.":"Determine what is the actual payment status of the procurement.","Determine what is the actual provider of the current procurement.":"Determine what is the actual provider of the current procurement.","Provide a name that will help to identify the procurement.":"Provide a name that will help to identify the procurement.","UOM":"UOM","First Name":"First Name","Define what is the user first name. If not provided, the username is used instead.":"Define what is the user first name. If not provided, the username is used instead.","Second Name":"Second Name","Define what is the user second name. If not provided, the username is used instead.":"Define what is the user second name. If not provided, the username is used instead.","Avatar":"Avatar","Define the image that should be used as an avatar.":"Define the image that should be used as an avatar.","Language":"Language","Choose the language for the current account.":"Choose the language for the current account.","Security":"Security","Old Password":"Old Password","Provide the old password.":"Provide the old password.","Change your password with a better stronger password.":"Change your password with a better stronger password.","Password Confirmation":"Password Confirmation","The profile has been successfully saved.":"The profile has been successfully saved.","The user attribute has been saved.":"The user attribute has been saved.","The options has been successfully updated.":"The options has been successfully updated.","Wrong password provided":"Wrong password provided","Wrong old password provided":"Wrong old password provided","Password Successfully updated.":"Password Successfully updated.","Sign In — NexoPOS":"Sign In — NexoPOS","Sign Up — NexoPOS":"Sign Up — NexoPOS","Password Lost":"Password Lost","Unable to proceed as the token provided is invalid.":"Unable to proceed as the token provided is invalid.","The token has expired. Please request a new activation token.":"The token has expired. Please request a new activation token.","Set New Password":"Set New Password","Database Update":"Database Update","This account is disabled.":"This account is disabled.","Unable to find record having that username.":"Unable to find record having that username.","Unable to find record having that password.":"Unable to find record having that password.","Invalid username or password.":"Invalid username or password.","Unable to login, the provided account is not active.":"Unable to login, the provided account is not active.","You have been successfully connected.":"You have been successfully connected.","The recovery email has been send to your inbox.":"The recovery email has been send to your inbox.","Unable to find a record matching your entry.":"Unable to find a record matching your entry.","No role has been defined for registration. Please contact the administrators.":"No role has been defined for registration. Please contact the administrators.","Your Account has been successfully creaetd.":"Your Account has been successfully creaetd.","Your Account has been created but requires email validation.":"Your Account has been created but requires email validation.","Unable to find the requested user.":"Unable to find the requested user.","Unable to proceed, the provided token is not valid.":"Unable to proceed, the provided token is not valid.","Unable to proceed, the token has expired.":"Unable to proceed, the token has expired.","Your password has been updated.":"Your password has been updated.","Unable to edit a register that is currently in use":"Unable to edit a register that is currently in use","No register has been opened by the logged user.":"No register has been opened by the logged user.","The register is opened.":"The register is opened.","Closing":"Closing","Opening":"Opening","Sale":"Sale","Refund":"Refund","Unable to find the category using the provided identifier":"Unable to find the category using the provided identifier","The category has been deleted.":"The category has been deleted.","Unable to find the category using the provided identifier.":"Unable to find the category using the provided identifier.","Unable to find the attached category parent":"Unable to find the attached category parent","The category has been correctly saved":"The category has been correctly saved","The category has been updated":"The category has been updated","The entry has been successfully deleted.":"The entry has been successfully deleted.","A new entry has been successfully created.":"A new entry has been successfully created.","Unhandled crud resource":"Unhandled crud resource","You need to select at least one item to delete":"You need to select at least one item to delete","You need to define which action to perform":"You need to define which action to perform","Unable to proceed. No matching CRUD resource has been found.":"Unable to proceed. No matching CRUD resource has been found.","This resource is not protected. The access is granted.":"This resource is not protected. The access is granted.","Create Coupon":"Create Coupon","helps you creating a coupon.":"helps you creating a coupon.","Edit Coupon":"Edit Coupon","Editing an existing coupon.":"Editing an existing coupon.","Invalid Request.":"Invalid Request.","Unable to delete a group to which customers are still assigned.":"Unable to delete a group to which customers are still assigned.","The customer group has been deleted.":"The customer group has been deleted.","Unable to find the requested group.":"Unable to find the requested group.","The customer group has been successfully created.":"The customer group has been successfully created.","The customer group has been successfully saved.":"The customer group has been successfully saved.","Unable to transfer customers to the same account.":"Unable to transfer customers to the same account.","All the customers has been trasnfered to the new group %s.":"All the customers has been trasnfered to the new group %s.","The categories has been transfered to the group %s.":"The categories has been transfered to the group %s.","No customer identifier has been provided to proceed to the transfer.":"No customer identifier has been provided to proceed to the transfer.","Unable to find the requested group using the provided id.":"Unable to find the requested group using the provided id.","List all created expenses":"List all created expenses","\"%s\" is not an instance of \"FieldsService\"":"\"%s\" is not an instance of \"FieldsService\"","Manage Medias":"Manage Medias","The operation was successful.":"The operation was successful.","Modules List":"Modules List","List all available modules.":"List all available modules.","Upload A Module":"Upload A Module","Extends NexoPOS features with some new modules.":"Extends NexoPOS features with some new modules.","The notification has been successfully deleted":"The notification has been successfully deleted","All the notificataions has been cleared.":"All the notificataions has been cleared.","POS — NexoPOS":"POS — NexoPOS","Order Invoice — %s":"Order Invoice — %s","Order Receipt — %s":"Order Receipt — %s","The printing event has been successfully dispatched.":"The printing event has been successfully dispatched.","There is a mismatch between the provided order and the order attached to the instalment.":"There is a mismatch between the provided order and the order attached to the instalment.","Unammed Page":"Unammed Page","Unable to edit a procurement that is stocked. Consider performing an adjustment or either delete the procurement.":"Unable to edit a procurement that is stocked. Consider performing an adjustment or either delete the procurement.","New Procurement":"New Procurement","Make a new procurement":"Make a new procurement","Edit Procurement":"Edit Procurement","Perform adjustment on existing procurement.":"Perform adjustment on existing procurement.","%s - Invoice":"%s - Invoice","list of product procured.":"list of product procured.","The product price has been refreshed.":"The product price has been refreshed.","The single variation has been deleted.":"The single variation has been deleted.","List all products available on the system":"List all products available on the system","Edit a product":"Edit a product","Makes modifications to a product":"Makes modifications to a product","Create a product":"Create a product","Add a new product on the system":"Add a new product on the system","Stock Adjustment":"Stock Adjustment","Adjust stock of existing products.":"Adjust stock of existing products.","Lost":"Lost","No stock is provided for the requested product.":"No stock is provided for the requested product.","The product unit quantity has been deleted.":"The product unit quantity has been deleted.","Unable to proceed as the request is not valid.":"Unable to proceed as the request is not valid.","Unsupported action for the product %s.":"Unsupported action for the product %s.","The stock has been adjustment successfully.":"The stock has been adjustment successfully.","Unable to add the product to the cart as it has expired.":"Unable to add the product to the cart as it has expired.","Unable to add a product that has accurate tracking enabled, using an ordinary barcode.":"Unable to add a product that has accurate tracking enabled, using an ordinary barcode.","There is no products matching the current request.":"There is no products matching the current request.","Print Labels":"Print Labels","Customize and print products labels.":"Customize and print products labels.","The form contains one or more errors.":"The form contains one or more errors.","Sales Report":"Sales Report","Provides an overview over the sales during a specific period":"Provides an overview over the sales during a specific period","Sold Stock":"Sold Stock","Provides an overview over the sold stock during a specific period.":"Provides an overview over the sold stock during a specific period.","Profit Report":"Profit Report","Provides an overview of the provide of the products sold.":"Provides an overview of the provide of the products sold.","Cash Flow Report":"Cash Flow Report","Provides an overview on the activity for a specific period.":"Provides an overview on the activity for a specific period.","Annual Report":"Annual Report","Invalid authorization code provided.":"Invalid authorization code provided.","The database has been successfully seeded.":"The database has been successfully seeded.","Rewards System":"Rewards System","Manage all rewards program.":"Manage all rewards program.","Create A Reward System":"Create A Reward System","Add a new reward system.":"Add a new reward system.","Edit A Reward System":"Edit A Reward System","edit an existing reward system with the rules attached.":"edit an existing reward system with the rules attached.","Settings Page Not Found":"Settings Page Not Found","Customers Settings":"Customers Settings","Configure the customers settings of the application.":"Configure the customers settings of the application.","General Settings":"General Settings","Configure the general settings of the application.":"Configure the general settings of the application.","Notifications Settings":"Notifications Settings","Configure the notifications settings of the application.":"Configure the notifications settings of the application.","Invoices Settings":"Invoices Settings","Configure the invoice settings.":"Configure the invoice settings.","Orders Settings":"Orders Settings","Configure the orders settings.":"Configure the orders settings.","POS Settings":"POS Settings","Configure the pos settings.":"Configure the pos settings.","Supplies & Deliveries Settings":"Supplies & Deliveries Settings","Configure the supplies and deliveries settings.":"Configure the supplies and deliveries settings.","Reports Settings":"Reports Settings","Configure the reports.":"Configure the reports.","Reset Settings":"Reset Settings","Reset the data and enable demo.":"Reset the data and enable demo.","Services Providers Settings":"Services Providers Settings","Configure the services providers settings.":"Configure the services providers settings.","Workers Settings":"Workers Settings","Configure the workers settings.":"Configure the workers settings.","%s is not an instance of \"%s\".":"%s is not an instance of \"%s\".","Unable to find the requeted product tax using the provided id":"Unable to find the requeted product tax using the provided id","Unable to find the requested product tax using the provided identifier.":"Unable to find the requested product tax using the provided identifier.","The product tax has been created.":"The product tax has been created.","The product tax has been updated":"The product tax has been updated","Unable to retreive the requested tax group using the provided identifier \"%s\".":"Unable to retreive the requested tax group using the provided identifier \"%s\".","Manage all users available.":"Manage all users available.","Permission Manager":"Permission Manager","Manage all permissions and roles":"Manage all permissions and roles","My Profile":"My Profile","Change your personal settings":"Change your personal settings","The permissions has been updated.":"The permissions has been updated.","Sunday":"Sunday","Monday":"Monday","Tuesday":"Tuesday","Wednesday":"Wednesday","Thursday":"Thursday","Friday":"Friday","Saturday":"Saturday","NexoPOS 4 — Setup Wizard":"NexoPOS 4 — Setup Wizard","The migration has successfully run.":"The migration has successfully run.","Workers Misconfiguration":"Workers Misconfiguration","Unable to initialize the settings page. The identifier \"%s\" cannot be instantiated.":"Unable to initialize the settings page. The identifier \"%s\" cannot be instantiated.","Unable to register. The registration is closed.":"Unable to register. The registration is closed.","Hold Order Cleared":"Hold Order Cleared","[NexoPOS] Activate Your Account":"[NexoPOS] Activate Your Account","[NexoPOS] A New User Has Registered":"[NexoPOS] A New User Has Registered","[NexoPOS] Your Account Has Been Created":"[NexoPOS] Your Account Has Been Created","Unable to find the permission with the namespace \"%s\".":"Unable to find the permission with the namespace \"%s\".","Voided":"Voided","Refunded":"Refunded","Partially Refunded":"Partially Refunded","This email is already in use.":"This email is already in use.","This username is already in use.":"This username is already in use.","The user has been succesfully registered":"The user has been succesfully registered","The current authentication request is invalid":"The current authentication request is invalid","Unable to proceed your session has expired.":"Unable to proceed your session has expired.","You are successfully authenticated":"You are successfully authenticated","The user has been successfully connected":"The user has been successfully connected","Your role is not allowed to login.":"Your role is not allowed to login.","This email is not currently in use on the system.":"This email is not currently in use on the system.","Unable to reset a password for a non active user.":"Unable to reset a password for a non active user.","An email has been send with password reset details.":"An email has been send with password reset details.","Unable to proceed, the reCaptcha validation has failed.":"Unable to proceed, the reCaptcha validation has failed.","Unable to proceed, the code has expired.":"Unable to proceed, the code has expired.","Unable to proceed, the request is not valid.":"Unable to proceed, the request is not valid.","The register has been successfully opened":"The register has been successfully opened","The register has been successfully closed":"The register has been successfully closed","The provided amount is not allowed. The amount should be greater than \"0\". ":"The provided amount is not allowed. The amount should be greater than \"0\". ","The cash has successfully been stored":"The cash has successfully been stored","Not enough fund to cash out.":"Not enough fund to cash out.","The cash has successfully been disbursed.":"The cash has successfully been disbursed.","In Use":"In Use","Opened":"Opened","Delete Selected entries":"Delete Selected entries","%s entries has been deleted":"%s entries has been deleted","%s entries has not been deleted":"%s entries has not been deleted","Unable to find the customer using the provided id.":"Unable to find the customer using the provided id.","The customer has been deleted.":"The customer has been deleted.","The email \"%s\" is already stored on another customer informations.":"The email \"%s\" is already stored on another customer informations.","The customer has been created.":"The customer has been created.","Unable to find the customer using the provided ID.":"Unable to find the customer using the provided ID.","The customer has been edited.":"The customer has been edited.","Unable to find the customer using the provided email.":"Unable to find the customer using the provided email.","The operation will cause negative account for the customer.":"The operation will cause negative account for the customer.","The customer account has been updated.":"The customer account has been updated.","Issuing Coupon Failed":"Issuing Coupon Failed","Unable to apply a coupon attached to the reward \"%s\". It looks like the coupon no more exists.":"Unable to apply a coupon attached to the reward \"%s\". It looks like the coupon no more exists.","The coupon is issued for a customer.":"The coupon is issued for a customer.","The coupon is not issued for the selected customer.":"The coupon is not issued for the selected customer.","Unable to find a coupon with the provided code.":"Unable to find a coupon with the provided code.","The coupon has been updated.":"The coupon has been updated.","The group has been created.":"The group has been created.","The expense has been successfully saved.":"The expense has been successfully saved.","The expense has been successfully updated.":"The expense has been successfully updated.","Unable to find the expense using the provided identifier.":"Unable to find the expense using the provided identifier.","Unable to find the requested expense using the provided id.":"Unable to find the requested expense using the provided id.","The expense has been correctly deleted.":"The expense has been correctly deleted.","Unable to find the requested expense category using the provided id.":"Unable to find the requested expense category using the provided id.","You cannot delete a category which has expenses bound.":"You cannot delete a category which has expenses bound.","The expense category has been deleted.":"The expense category has been deleted.","Unable to find the expense category using the provided ID.":"Unable to find the expense category using the provided ID.","The expense category has been saved":"The expense category has been saved","The expense category has been updated.":"The expense category has been updated.","The expense \"%s\" has been processed.":"The expense \"%s\" has been processed.","The expense \"%s\" has already been processed.":"The expense \"%s\" has already been processed.","The process has been correctly executed and all expenses has been processed.":"The process has been correctly executed and all expenses has been processed.","%s — NexoPOS 4":"%s — NexoPOS 4","The media has been deleted":"The media has been deleted","Unable to find the media.":"Unable to find the media.","Unable to find the requested file.":"Unable to find the requested file.","Unable to find the media entry":"Unable to find the media entry","Payment Types":"Payment Types","Medias":"Medias","List":"List","Customers Groups":"Customers Groups","Create Group":"Create Group","Reward Systems":"Reward Systems","Create Reward":"Create Reward","List Coupons":"List Coupons","Providers":"Providers","Create A Provider":"Create A Provider","Create Expense":"Create Expense","Inventory":"Inventory","Create Product":"Create Product","Create Category":"Create Category","Create Unit":"Create Unit","Unit Groups":"Unit Groups","Create Unit Groups":"Create Unit Groups","Taxes Groups":"Taxes Groups","Create Tax Groups":"Create Tax Groups","Create Tax":"Create Tax","Modules":"Modules","Upload Module":"Upload Module","Users":"Users","Create User":"Create User","Roles":"Roles","Create Roles":"Create Roles","Permissions Manager":"Permissions Manager","Procurements":"Procurements","Reports":"Reports","Sale Report":"Sale Report","Incomes & Loosses":"Incomes & Loosses","Cash Flow":"Cash Flow","Supplies & Deliveries":"Supplies & Deliveries","Invoice Settings":"Invoice Settings","Service Providers":"Service Providers","Notifications":"Notifications","Workers":"Workers","Unable to locate the requested module.":"Unable to locate the requested module.","The module \"%s\" has been disabled as the dependency \"%s\" is missing. ":"The module \"%s\" has been disabled as the dependency \"%s\" is missing. ","The module \"%s\" has been disabled as the dependency \"%s\" is not enabled. ":"The module \"%s\" has been disabled as the dependency \"%s\" is not enabled. ","Unable to detect the folder from where to perform the installation.":"Unable to detect the folder from where to perform the installation.","Invalid Module provided":"Invalid Module provided","The uploaded file is not a valid module.":"The uploaded file is not a valid module.","A migration is required for this module":"A migration is required for this module","The module has been successfully installed.":"The module has been successfully installed.","The migration run successfully.":"The migration run successfully.","The module has correctly been enabled.":"The module has correctly been enabled.","Unable to enable the module.":"Unable to enable the module.","The Module has been disabled.":"The Module has been disabled.","Unable to disable the module.":"Unable to disable the module.","Unable to proceed, the modules management is disabled.":"Unable to proceed, the modules management is disabled.","Missing required parameters to create a notification":"Missing required parameters to create a notification","The order has been placed.":"The order has been placed.","The total amount to be paid today is different from the tendered amount.":"The total amount to be paid today is different from the tendered amount.","The provided coupon \"%s\", can no longer be used":"The provided coupon \"%s\", can no longer be used","The percentage discount provided is not valid.":"The percentage discount provided is not valid.","A discount cannot exceed the sub total value of an order.":"A discount cannot exceed the sub total value of an order.","No payment is expected at the moment. If the customer want to pay early, consider adjusting instalment payments date.":"No payment is expected at the moment. If the customer want to pay early, consider adjusting instalment payments date.","The payment has been saved.":"The payment has been saved.","Unable to edit an order that is completely paid.":"Unable to edit an order that is completely paid.","Unable to proceed as one of the previous submitted payment is missing from the order.":"Unable to proceed as one of the previous submitted payment is missing from the order.","The order payment status cannot switch to hold as a payment has already been made on that order.":"The order payment status cannot switch to hold as a payment has already been made on that order.","Unable to proceed. One of the submitted payment type is not supported.":"Unable to proceed. One of the submitted payment type is not supported.","Unable to proceed, the product \"%s\" has a unit which cannot be retreived. It might have been deleted.":"Unable to proceed, the product \"%s\" has a unit which cannot be retreived. It might have been deleted.","Unable to find the customer using the provided ID. The order creation has failed.":"Unable to find the customer using the provided ID. The order creation has failed.","Unable to proceed a refund on an unpaid order.":"Unable to proceed a refund on an unpaid order.","The current credit has been issued from a refund.":"The current credit has been issued from a refund.","The order has been successfully refunded.":"The order has been successfully refunded.","unable to proceed to a refund as the provided status is not supported.":"unable to proceed to a refund as the provided status is not supported.","The product %s has been successfully refunded.":"The product %s has been successfully refunded.","Unable to find the order product using the provided id.":"Unable to find the order product using the provided id.","Unable to find the requested order using \"%s\" as pivot and \"%s\" as identifier":"Unable to find the requested order using \"%s\" as pivot and \"%s\" as identifier","Unable to fetch the order as the provided pivot argument is not supported.":"Unable to fetch the order as the provided pivot argument is not supported.","The product has been added to the order \"%s\"":"The product has been added to the order \"%s\"","the order has been succesfully computed.":"the order has been succesfully computed.","The order has been deleted.":"The order has been deleted.","The product has been successfully deleted from the order.":"The product has been successfully deleted from the order.","Unable to find the requested product on the provider order.":"Unable to find the requested product on the provider order.","Unpaid Orders Turned Due":"Unpaid Orders Turned Due","No orders to handle for the moment.":"No orders to handle for the moment.","The order has been correctly voided.":"The order has been correctly voided.","Unable to edit an already paid instalment.":"Unable to edit an already paid instalment.","The instalment has been saved.":"The instalment has been saved.","The instalment has been deleted.":"The instalment has been deleted.","The defined amount is not valid.":"The defined amount is not valid.","No further instalments is allowed for this order. The total instalment already covers the order total.":"No further instalments is allowed for this order. The total instalment already covers the order total.","The instalment has been created.":"The instalment has been created.","The provided status is not supported.":"The provided status is not supported.","The order has been successfully updated.":"The order has been successfully updated.","Unable to find the requested procurement using the provided identifier.":"Unable to find the requested procurement using the provided identifier.","Unable to find the assigned provider.":"Unable to find the assigned provider.","The procurement has been created.":"The procurement has been created.","Unable to edit a procurement that has already been stocked. Please consider performing and stock adjustment.":"Unable to edit a procurement that has already been stocked. Please consider performing and stock adjustment.","The provider has been edited.":"The provider has been edited.","Unable to delete the procurement as there is not enough stock remaining for \"%s\". This likely means the stock count has changed either with a sale, adjustment after the procurement has been stocked.":"Unable to delete the procurement as there is not enough stock remaining for \"%s\". This likely means the stock count has changed either with a sale, adjustment after the procurement has been stocked.","Unable to have a unit group id for the product using the reference \"%s\" as \"%s\"":"Unable to have a unit group id for the product using the reference \"%s\" as \"%s\"","The operation has completed.":"The operation has completed.","The procurement has been refreshed.":"The procurement has been refreshed.","The procurement has been reset.":"The procurement has been reset.","The procurement products has been deleted.":"The procurement products has been deleted.","The procurement product has been updated.":"The procurement product has been updated.","Unable to find the procurement product using the provided id.":"Unable to find the procurement product using the provided id.","The product %s has been deleted from the procurement %s":"The product %s has been deleted from the procurement %s","The product with the following ID \"%s\" is not initially included on the procurement":"The product with the following ID \"%s\" is not initially included on the procurement","The procurement products has been updated.":"The procurement products has been updated.","Procurement Automatically Stocked":"Procurement Automatically Stocked","Draft":"Draft","The category has been created":"The category has been created","Unable to find the product using the provided id.":"Unable to find the product using the provided id.","Unable to find the requested product using the provided SKU.":"Unable to find the requested product using the provided SKU.","The variable product has been created.":"The variable product has been created.","The provided barcode \"%s\" is already in use.":"The provided barcode \"%s\" is already in use.","The provided SKU \"%s\" is already in use.":"The provided SKU \"%s\" is already in use.","The product has been saved.":"The product has been saved.","The provided barcode is already in use.":"The provided barcode is already in use.","The provided SKU is already in use.":"The provided SKU is already in use.","The product has been udpated":"The product has been udpated","The variable product has been updated.":"The variable product has been updated.","The product variations has been reset":"The product variations has been reset","The product has been resetted.":"The product has been resetted.","The product \"%s\" has been successfully deleted":"The product \"%s\" has been successfully deleted","Unable to find the requested variation using the provided ID.":"Unable to find the requested variation using the provided ID.","The product stock has been updated.":"The product stock has been updated.","The action is not an allowed operation.":"The action is not an allowed operation.","The product quantity has been updated.":"The product quantity has been updated.","There is no variations to delete.":"There is no variations to delete.","There is no products to delete.":"There is no products to delete.","The product variation has been succesfully created.":"The product variation has been succesfully created.","The product variation has been updated.":"The product variation has been updated.","The provider has been created.":"The provider has been created.","The provider has been updated.":"The provider has been updated.","Unable to find the provider using the specified id.":"Unable to find the provider using the specified id.","The provider has been deleted.":"The provider has been deleted.","Unable to find the provider using the specified identifier.":"Unable to find the provider using the specified identifier.","The provider account has been updated.":"The provider account has been updated.","The procurement payment has been deducted.":"The procurement payment has been deducted.","The dashboard report has been updated.":"The dashboard report has been updated.","Untracked Stock Operation":"Untracked Stock Operation","Unsupported action":"Unsupported action","The expense has been correctly saved.":"The expense has been correctly saved.","The table has been truncated.":"The table has been truncated.","The database has been hard reset.":"The database has been hard reset.","Untitled Settings Page":"Untitled Settings Page","No description provided for this settings page.":"No description provided for this settings page.","The form has been successfully saved.":"The form has been successfully saved.","Unable to reach the host":"Unable to reach the host","Unable to connect to the database using the credentials provided.":"Unable to connect to the database using the credentials provided.","Unable to select the database.":"Unable to select the database.","Access denied for this user.":"Access denied for this user.","The connexion with the database was successful":"The connexion with the database was successful","Cash":"Cash","Bank Payment":"Bank Payment","NexoPOS has been successfuly installed.":"NexoPOS has been successfuly installed.","Database connexion was successful":"Database connexion was successful","A simple tax must not be assigned to a parent tax with the type \"simple\", but \"grouped\" instead.":"A simple tax must not be assigned to a parent tax with the type \"simple\", but \"grouped\" instead.","A tax cannot be his own parent.":"A tax cannot be his own parent.","The tax hierarchy is limited to 1. A sub tax must not have the tax type set to \"grouped\".":"The tax hierarchy is limited to 1. A sub tax must not have the tax type set to \"grouped\".","Unable to find the requested tax using the provided identifier.":"Unable to find the requested tax using the provided identifier.","The tax group has been correctly saved.":"The tax group has been correctly saved.","The tax has been correctly created.":"The tax has been correctly created.","The product tax has been saved.":"The product tax has been saved.","The tax has been successfully deleted.":"The tax has been successfully deleted.","The Unit Group has been created.":"The Unit Group has been created.","The unit group %s has been updated.":"The unit group %s has been updated.","Unable to find the unit group to which this unit is attached.":"Unable to find the unit group to which this unit is attached.","The unit has been saved.":"The unit has been saved.","Unable to find the Unit using the provided id.":"Unable to find the Unit using the provided id.","The unit has been updated.":"The unit has been updated.","The unit group %s has more than one base unit":"The unit group %s has more than one base unit","The unit has been deleted.":"The unit has been deleted.","The activation process has failed.":"The activation process has failed.","Unable to activate the account. The activation token is wrong.":"Unable to activate the account. The activation token is wrong.","Unable to activate the account. The activation token has expired.":"Unable to activate the account. The activation token has expired.","The account has been successfully activated.":"The account has been successfully activated.","unable to find this validation class %s.":"unable to find this validation class %s.","Enable Reward":"Enable Reward","Will activate the reward system for the customers.":"Will activate the reward system for the customers.","Default Customer Account":"Default Customer Account","Default Customer Group":"Default Customer Group","Select to which group each new created customers are assigned to.":"Select to which group each new created customers are assigned to.","Enable Credit & Account":"Enable Credit & Account","The customers will be able to make deposit or obtain credit.":"The customers will be able to make deposit or obtain credit.","Store Name":"Store Name","This is the store name.":"This is the store name.","Store Address":"Store Address","The actual store address.":"The actual store address.","Store City":"Store City","The actual store city.":"The actual store city.","Store Phone":"Store Phone","The phone number to reach the store.":"The phone number to reach the store.","Store Email":"Store Email","The actual store email. Might be used on invoice or for reports.":"The actual store email. Might be used on invoice or for reports.","Store PO.Box":"Store PO.Box","The store mail box number.":"The store mail box number.","Store Fax":"Store Fax","The store fax number.":"The store fax number.","Store Additional Information":"Store Additional Information","Store additional informations.":"Store additional informations.","Store Square Logo":"Store Square Logo","Choose what is the square logo of the store.":"Choose what is the square logo of the store.","Store Rectangle Logo":"Store Rectangle Logo","Choose what is the rectangle logo of the store.":"Choose what is the rectangle logo of the store.","Define the default fallback language.":"Define the default fallback language.","Currency":"Currency","Currency Symbol":"Currency Symbol","This is the currency symbol.":"This is the currency symbol.","Currency ISO":"Currency ISO","The international currency ISO format.":"The international currency ISO format.","Currency Position":"Currency Position","Before the amount":"Before the amount","After the amount":"After the amount","Define where the currency should be located.":"Define where the currency should be located.","Prefered Currency":"Prefered Currency","ISO Currency":"ISO Currency","Symbol":"Symbol","Determine what is the currency indicator that should be used.":"Determine what is the currency indicator that should be used.","Currency Thousand Separator":"Currency Thousand Separator","Define the symbol that indicate thousand. By default \",\" is used.":"Define the symbol that indicate thousand. By default \",\" is used.","Currency Decimal Separator":"Currency Decimal Separator","Define the symbol that indicate decimal number. By default \".\" is used.":"Define the symbol that indicate decimal number. By default \".\" is used.","Currency Precision":"Currency Precision","%s numbers after the decimal":"%s numbers after the decimal","Date Format":"Date Format","This define how the date should be defined. The default format is \"Y-m-d\".":"This define how the date should be defined. The default format is \"Y-m-d\".","Determine the default timezone of the store.":"Determine the default timezone of the store.","Registration":"Registration","Registration Open":"Registration Open","Determine if everyone can register.":"Determine if everyone can register.","Registration Role":"Registration Role","Select what is the registration role.":"Select what is the registration role.","Requires Validation":"Requires Validation","Force account validation after the registration.":"Force account validation after the registration.","Allow Recovery":"Allow Recovery","Allow any user to recover his account.":"Allow any user to recover his account.","Receipts":"Receipts","Receipt Template":"Receipt Template","Default":"Default","Choose the template that applies to receipts":"Choose the template that applies to receipts","Receipt Logo":"Receipt Logo","Provide a URL to the logo.":"Provide a URL to the logo.","Receipt Footer":"Receipt Footer","If you would like to add some disclosure at the bottom of the receipt.":"If you would like to add some disclosure at the bottom of the receipt.","Column A":"Column A","Column B":"Column B","Low Stock products":"Low Stock products","Define if notification should be enabled on low stock products":"Define if notification should be enabled on low stock products","Low Stock Channel":"Low Stock Channel","SMS":"SMS","Define the notification channel for the low stock products.":"Define the notification channel for the low stock products.","Expired products":"Expired products","Define if notification should be enabled on expired products":"Define if notification should be enabled on expired products","Expired Channel":"Expired Channel","Define the notification channel for the expired products.":"Define the notification channel for the expired products.","Notify Administrators":"Notify Administrators","Will notify administrator everytime a new user is registrated.":"Will notify administrator everytime a new user is registrated.","Administrator Notification Title":"Administrator Notification Title","Determine the title of the email send to the administrator.":"Determine the title of the email send to the administrator.","Administrator Notification Content":"Administrator Notification Content","Determine what is the message that will be send to the administrator.":"Determine what is the message that will be send to the administrator.","Notify User":"Notify User","Notify a user when his account is successfully created.":"Notify a user when his account is successfully created.","User Registration Title":"User Registration Title","Determine the title of the mail send to the user when his account is created and active.":"Determine the title of the mail send to the user when his account is created and active.","User Registration Content":"User Registration Content","Determine the body of the mail send to the user when his account is created and active.":"Determine the body of the mail send to the user when his account is created and active.","User Activate Title":"User Activate Title","Determine the title of the mail send to the user.":"Determine the title of the mail send to the user.","User Activate Content":"User Activate Content","Determine the mail that will be send to the use when his account requires an activation.":"Determine the mail that will be send to the use when his account requires an activation.","Order Code Type":"Order Code Type","Determine how the system will generate code for each orders.":"Determine how the system will generate code for each orders.","Sequential":"Sequential","Random Code":"Random Code","Number Sequential":"Number Sequential","Allow Unpaid Orders":"Allow Unpaid Orders","Will prevent incomplete orders to be placed. If credit is allowed, this option should be set to \"yes\".":"Will prevent incomplete orders to be placed. If credit is allowed, this option should be set to \"yes\".","Allow Partial Orders":"Allow Partial Orders","Will prevent partially paid orders to be placed.":"Will prevent partially paid orders to be placed.","Quotation Expiration":"Quotation Expiration","Quotations will get deleted after they defined they has reached.":"Quotations will get deleted after they defined they has reached.","%s Days":"%s Days","Orders Follow Up":"Orders Follow Up","Features":"Features","Sound Effect":"Sound Effect","Enable sound effect on the POS.":"Enable sound effect on the POS.","Show Quantity":"Show Quantity","Will show the quantity selector while choosing a product. Otherwise the default quantity is set to 1.":"Will show the quantity selector while choosing a product. Otherwise the default quantity is set to 1.","Allow Customer Creation":"Allow Customer Creation","Allow customers to be created on the POS.":"Allow customers to be created on the POS.","Quick Product":"Quick Product","Allow quick product to be created from the POS.":"Allow quick product to be created from the POS.","SMS Order Confirmation":"SMS Order Confirmation","Will send SMS to the customer once the order is placed.":"Will send SMS to the customer once the order is placed.","Editable Unit Price":"Editable Unit Price","Allow product unit price to be edited.":"Allow product unit price to be edited.","Use Gross Prices":"Use Gross Prices","Will use gross prices for each products.":"Will use gross prices for each products.","Order Types":"Order Types","Control the order type enabled.":"Control the order type enabled.","Layout":"Layout","Retail Layout":"Retail Layout","Clothing Shop":"Clothing Shop","POS Layout":"POS Layout","Change the layout of the POS.":"Change the layout of the POS.","Printing":"Printing","Printed Document":"Printed Document","Choose the document used for printing aster a sale.":"Choose the document used for printing aster a sale.","Printing Enabled For":"Printing Enabled For","All Orders":"All Orders","From Partially Paid Orders":"From Partially Paid Orders","Only Paid Orders":"Only Paid Orders","Determine when the printing should be enabled.":"Determine when the printing should be enabled.","Printing Gateway":"Printing Gateway","Determine what is the gateway used for printing.":"Determine what is the gateway used for printing.","Enable Cash Registers":"Enable Cash Registers","Determine if the POS will support cash registers.":"Determine if the POS will support cash registers.","Cashier Idle Counter":"Cashier Idle Counter","5 Minutes":"5 Minutes","10 Minutes":"10 Minutes","15 Minutes":"15 Minutes","20 Minutes":"20 Minutes","30 Minutes":"30 Minutes","Selected after how many minutes the system will set the cashier as idle.":"Selected after how many minutes the system will set the cashier as idle.","Cash Disbursement":"Cash Disbursement","Allow cash disbursement by the cashier.":"Allow cash disbursement by the cashier.","Cash Registers":"Cash Registers","Keyboard Shortcuts":"Keyboard Shortcuts","Cancel Order":"Cancel Order","Keyboard shortcut to cancel the current order.":"Keyboard shortcut to cancel the current order.","Keyboard shortcut to hold the current order.":"Keyboard shortcut to hold the current order.","Keyboard shortcut to create a customer.":"Keyboard shortcut to create a customer.","Proceed Payment":"Proceed Payment","Keyboard shortcut to proceed to the payment.":"Keyboard shortcut to proceed to the payment.","Open Shipping":"Open Shipping","Keyboard shortcut to define shipping details.":"Keyboard shortcut to define shipping details.","Open Note":"Open Note","Keyboard shortcut to open the notes.":"Keyboard shortcut to open the notes.","Open Calculator":"Open Calculator","Keyboard shortcut to open the calculator.":"Keyboard shortcut to open the calculator.","Open Category Explorer":"Open Category Explorer","Keyboard shortcut to open the category explorer.":"Keyboard shortcut to open the category explorer.","Order Type Selector":"Order Type Selector","Keyboard shortcut to open the order type selector.":"Keyboard shortcut to open the order type selector.","Toggle Fullscreen":"Toggle Fullscreen","Keyboard shortcut to toggle fullscreen.":"Keyboard shortcut to toggle fullscreen.","Quick Search":"Quick Search","Keyboard shortcut open the quick search popup.":"Keyboard shortcut open the quick search popup.","Amount Shortcuts":"Amount Shortcuts","VAT Type":"VAT Type","Determine the VAT type that should be used.":"Determine the VAT type that should be used.","Flat Rate":"Flat Rate","Flexible Rate":"Flexible Rate","Products Vat":"Products Vat","Products & Flat Rate":"Products & Flat Rate","Products & Flexible Rate":"Products & Flexible Rate","Define the tax group that applies to the sales.":"Define the tax group that applies to the sales.","Define how the tax is computed on sales.":"Define how the tax is computed on sales.","VAT Settings":"VAT Settings","Enable Email Reporting":"Enable Email Reporting","Determine if the reporting should be enabled globally.":"Determine if the reporting should be enabled globally.","Email Provider":"Email Provider","Mailgun":"Mailgun","Select the email provided used on the system.":"Select the email provided used on the system.","SMS Provider":"SMS Provider","Twilio":"Twilio","Select the sms provider used on the system.":"Select the sms provider used on the system.","Enable The Multistore Mode":"Enable The Multistore Mode","Will enable the multistore.":"Will enable the multistore.","Supplies":"Supplies","Public Name":"Public Name","Define what is the user public name. If not provided, the username is used instead.":"Define what is the user public name. If not provided, the username is used instead.","Enable Workers":"Enable Workers","Enable background services for NexoPOS 4.x. Refresh to check wether the option has turned to \"Yes\".":"Enable background services for NexoPOS 4.x. Refresh to check wether the option has turned to \"Yes\".","Test":"Test","Current Week":"Current Week","Previous Week":"Previous Week","Unable to find a module having the identifier \"%\".":"Unable to find a module having the identifier \"%\".","There is no migrations to perform for the module \"%s\"":"There is no migrations to perform for the module \"%s\"","The module migration has successfully been performed for the module \"%s\"":"The module migration has successfully been performed for the module \"%s\"","Sales By Payment Types":"Sales By Payment Types","Provide a report of the sales by payment types, for a specific period.":"Provide a report of the sales by payment types, for a specific period.","Sales By Payments":"Sales By Payments","Order Settings":"Order Settings","Define the order name.":"Define the order name.","Define the date of creation of the order.":"Define the date of creation of the order.","Total Refunds":"Total Refunds","Clients Registered":"Clients Registered","Commissions":"Commissions","Processing Status":"Processing Status","Refunded Products":"Refunded Products","The delivery status of the order will be changed. Please confirm your action.":"The delivery status of the order will be changed. Please confirm your action.","The product price has been updated.":"The product price has been updated.","The editable price feature is disabled.":"The editable price feature is disabled.","Order Refunds":"Order Refunds","Product Price":"Product Price","Before saving the order as laid away, a minimum payment of {amount} is required":"Before saving the order as laid away, a minimum payment of {amount} is required","Unable to proceed":"Unable to proceed","Confirm Payment":"Confirm Payment","An instalment has been detected. Would you like to add as first payment {amount} for the selected payment type \"{paymentType}\"?":"An instalment has been detected. Would you like to add as first payment {amount} for the selected payment type \"{paymentType}\"?","Partially paid orders are disabled.":"Partially paid orders are disabled.","An order is currently being processed.":"An order is currently being processed.","Log out":"Log out","Refund receipt":"Refund receipt","Recompute":"Recompute","Sort Results":"Sort Results","Using Quantity Ascending":"Using Quantity Ascending","Using Quantity Descending":"Using Quantity Descending","Using Sales Ascending":"Using Sales Ascending","Using Sales Descending":"Using Sales Descending","Using Name Ascending":"Using Name Ascending","Using Name Descending":"Using Name Descending","Progress":"Progress","Discounts":"Discounts","An invalid date were provided. Make sure it a prior date to the actual server date.":"An invalid date were provided. Make sure it a prior date to the actual server date.","Computing report from %s...":"Computing report from %s...","The demo has been enabled.":"The demo has been enabled.","Refund Receipt":"Refund Receipt","Codabar":"Codabar","Code 128":"Code 128","Code 39":"Code 39","Code 11":"Code 11","UPC A":"UPC A","UPC E":"UPC E","Dashboard Identifier":"Dashboard Identifier","Store Dashboard":"Store Dashboard","Cashier Dashboard":"Cashier Dashboard","Default Dashboard":"Default Dashboard","Define what should be the home page of the dashboard.":"Define what should be the home page of the dashboard.","%s has been processed, %s has not been processed.":"%s has been processed, %s has not been processed.","Order Refund Receipt — %s":"Order Refund Receipt — %s","Product Sales":"Product Sales","Provides an overview over the best products sold during a specific period.":"Provides an overview over the best products sold during a specific period.","The report will be computed for the current year.":"The report will be computed for the current year.","Unknown report to refresh.":"Unknown report to refresh.","Expenses Settings":"Expenses Settings","Configure the expenses settings of the application.":"Configure the expenses settings of the application.","Report Refreshed":"Report Refreshed","The yearly report has been successfully refreshed for the year \"%s\".":"The yearly report has been successfully refreshed for the year \"%s\".","Countable":"Countable","Piece":"Piece","GST":"GST","SGST":"SGST","CGST":"CGST","Sample Procurement %s":"Sample Procurement %s","generated":"generated","Procurement Expenses":"Procurement Expenses","Products Report":"Products Report","Not Available":"Not Available","The report has been computed successfully.":"The report has been computed successfully.","Create a customer":"Create a customer","Cash Flow List":"Cash Flow List","Display all Cash Flow.":"Display all Cash Flow.","No Cash Flow has been registered":"No Cash Flow has been registered","Add a new Cash Flow":"Add a new Cash Flow","Create a new Cash Flow":"Create a new Cash Flow","Register a new Cash Flow and save it.":"Register a new Cash Flow and save it.","Edit Cash Flow":"Edit Cash Flow","Modify Cash Flow.":"Modify Cash Flow.","Credit":"Credit","Debit":"Debit","All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.":"All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.","Account":"Account","Provide the accounting number for this category.":"Provide the accounting number for this category.","Unable to register using this email.":"Unable to register using this email.","Unable to register using this username.":"Unable to register using this username.","Accounting Settings":"Accounting Settings","Configure the accounting settings of the application.":"Configure the accounting settings of the application.","Automatically recorded sale payment.":"Automatically recorded sale payment.","Cash out":"Cash out","An automatically generated expense for cash-out operation.":"An automatically generated expense for cash-out operation.","Sales Refunds":"Sales Refunds","Soiled":"Soiled","Cash Register Cash In":"Cash Register Cash In","Cash Register Cash Out":"Cash Register Cash Out","Accounting":"Accounting","Cash Flow History":"Cash Flow History","Expense Accounts":"Expense Accounts","Create Expense Account":"Create Expense Account","Procurement Cash Flow Account":"Procurement Cash Flow Account","Every procurement will be added to the selected cash flow account":"Every procurement will be added to the selected cash flow account","Sale Cash Flow Account":"Sale Cash Flow Account","Every sales will be added to the selected cash flow account":"Every sales will be added to the selected cash flow account","Every customer credit will be added to the selected cash flow account":"Every customer credit will be added to the selected cash flow account","Every customer credit removed will be added to the selected cash flow account":"Every customer credit removed will be added to the selected cash flow account","Sales Refunds Account":"Sales Refunds Account","Sales refunds will be attached to this cash flow account":"Sales refunds will be attached to this cash flow account","Stock return for spoiled items will be attached to this account":"Stock return for spoiled items will be attached to this account","Stock return for unspoiled items will be attached to this account":"Stock return for unspoiled items will be attached to this account","Cash Register Cash-In Account":"Cash Register Cash-In Account","Cash Register Cash-Out Account":"Cash Register Cash-Out Account","Cash Out Assigned Expense Category":"Cash Out Assigned Expense Category","Every cashout will issue an expense under the selected expense category.":"Every cashout will issue an expense under the selected expense category.","Unable to save an order with instalments amounts which additionnated is less than the order total.":"Unable to save an order with instalments amounts which additionnated is less than the order total.","Cash Register cash-in will be added to the cash flow account":"Cash Register cash-in will be added to the cash flow account","Cash Register cash-out will be added to the cash flow account":"Cash Register cash-out will be added to the cash flow account","No module has been updated yet.":"No module has been updated yet.","The reason has been updated.":"The reason has been updated.","You must select a customer before applying a coupon.":"You must select a customer before applying a coupon.","No coupons for the selected customer...":"No coupons for the selected customer...","Use Coupon":"Use Coupon","Use Customer ?":"Use Customer ?","No customer is selected. Would you like to proceed with this customer ?":"No customer is selected. Would you like to proceed with this customer ?","Change Customer ?":"Change Customer ?","Would you like to assign this customer to the ongoing order ?":"Would you like to assign this customer to the ongoing order ?","Product \/ Service":"Product \/ Service","An error has occured while computing the product.":"An error has occured while computing the product.","Provide a unique name for the product.":"Provide a unique name for the product.","Define what is the sale price of the item.":"Define what is the sale price of the item.","Set the quantity of the product.":"Set the quantity of the product.","Define what is tax type of the item.":"Define what is tax type of the item.","Choose the tax group that should apply to the item.":"Choose the tax group that should apply to the item.","Assign a unit to the product.":"Assign a unit to the product.","Some products has been added to the cart. Would youl ike to discard this order ?":"Some products has been added to the cart. Would youl ike to discard this order ?","Customer Accounts List":"Customer Accounts List","Display all customer accounts.":"Display all customer accounts.","No customer accounts has been registered":"No customer accounts has been registered","Add a new customer account":"Add a new customer account","Create a new customer account":"Create a new customer account","Register a new customer account and save it.":"Register a new customer account and save it.","Edit customer account":"Edit customer account","Modify Customer Account.":"Modify Customer Account.","Return to Customer Accounts":"Return to Customer Accounts","This will be ignored.":"This will be ignored.","Define the amount of the transaction":"Define the amount of the transaction","Define what operation will occurs on the customer account.":"Define what operation will occurs on the customer account.","Account History":"Account History","Provider Procurements List":"Provider Procurements List","Display all provider procurements.":"Display all provider procurements.","No provider procurements has been registered":"No provider procurements has been registered","Add a new provider procurement":"Add a new provider procurement","Create a new provider procurement":"Create a new provider procurement","Register a new provider procurement and save it.":"Register a new provider procurement and save it.","Edit provider procurement":"Edit provider procurement","Modify Provider Procurement.":"Modify Provider Procurement.","Return to Provider Procurements":"Return to Provider Procurements","Delivered On":"Delivered On","Items":"Items","Displays the customer account history for %s":"Displays the customer account history for %s","Procurements by \"%s\"":"Procurements by \"%s\"","Crediting":"Crediting","Deducting":"Deducting","Order Payment":"Order Payment","Order Refund":"Order Refund","Unknown Operation":"Unknown Operation","Unamed Product":"Unamed Product","Bubble":"Bubble","Ding":"Ding","Pop":"Pop","Cash Sound":"Cash Sound","Sale Complete Sound":"Sale Complete Sound","New Item Audio":"New Item Audio","The sound that plays when an item is added to the cart.":"The sound that plays when an item is added to the cart."} \ No newline at end of file diff --git a/resources/lang/es.json b/resources/lang/es.json index 4c7318b50..b40b4e78d 100755 --- a/resources/lang/es.json +++ b/resources/lang/es.json @@ -662,7 +662,6 @@ "X Days Before Month Ends": "X d\u00edas antes de que termine el mes", "Unknown Occurance": "Ocupaci\u00f3n desconocida", "Return to Expenses Histories": "Volver a Historial de gastos", - "Expense Category Name": "Nombre de categor\u00eda de gastos", "Expense ID": "ID de gastos", "Expense Name": "Nombre del gasto", "Updated At": "Actualizado en", @@ -1781,24 +1780,24 @@ "Create a customer": "Crea un cliente", "Cash Flow List": "Lista de flujo de caja", "Display all Cash Flow.": "Muestra todo el flujo de caja.", - "No Cash Flow has been registered": "No se ha registrado ningún flujo de caja", + "No Cash Flow has been registered": "No se ha registrado ning\u00fan flujo de caja", "Add a new Cash Flow": "Agregar un nuevo flujo de caja", "Create a new Cash Flow": "Crear un nuevo flujo de caja", - "Register a new Cash Flow and save it.": "Registre un nuevo flujo de caja y guárdelo.", + "Register a new Cash Flow and save it.": "Registre un nuevo flujo de caja y gu\u00e1rdelo.", "Edit Cash Flow": "Editar flujo de caja", "Modify Cash Flow.": "Modificar el flujo de caja.", - "Credit": "Crédito", - "Debit": "Débito", - "All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.": "Todas las entidades adscritas a esta categoría producirán un \"crédito\" o un \"débito\" en el historial de flujo de caja.", + "Credit": "Cr\u00e9dito", + "Debit": "D\u00e9bito", + "All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.": "Todas las entidades adscritas a esta categor\u00eda producir\u00e1n un \"cr\u00e9dito\" o un \"d\u00e9bito\" en el historial de flujo de caja.", "Account": "Cuenta", - "Provide the accounting number for this category.": "Proporcione el número de contabilidad para esta categoría.", - "Unable to register using this email.": "No se puede registrar con este correo electrónico.", + "Provide the accounting number for this category.": "Proporcione el n\u00famero de contabilidad para esta categor\u00eda.", + "Unable to register using this email.": "No se puede registrar con este correo electr\u00f3nico.", "Unable to register using this username.": "No se puede registrar con este nombre de usuario.", - "Accounting Settings": "Configuración de contabilidad", - "Configure the accounting settings of the application.": "Configure los ajustes de contabilidad de la aplicación.", - "Automatically recorded sale payment.": "Pago de venta registrado automáticamente.", + "Accounting Settings": "Configuraci\u00f3n de contabilidad", + "Configure the accounting settings of the application.": "Configure los ajustes de contabilidad de la aplicaci\u00f3n.", + "Automatically recorded sale payment.": "Pago de venta registrado autom\u00e1ticamente.", "Cash out": "Retirar dinero", - "An automatically generated expense for cash-out operation.": "Un gasto generado automáticamente para la operación de retiro de efectivo.", + "An automatically generated expense for cash-out operation.": "Un gasto generado autom\u00e1ticamente para la operaci\u00f3n de retiro de efectivo.", "Sales Refunds": "Reembolsos de ventas", "Soiled": "Sucio", "Cash Register Cash In": "Efectivo en caja registradora", @@ -1808,20 +1807,77 @@ "Expense Accounts": "Cuentas de gastos", "Create Expense Account": "Crear cuenta de gastos", "Procurement Cash Flow Account": "Cuenta de flujo de efectivo de adquisiciones", - "Every procurement will be added to the selected cash flow account": "Todas las adquisiciones se agregarán a la cuenta de flujo de efectivo seleccionada", + "Every procurement will be added to the selected cash flow account": "Todas las adquisiciones se agregar\u00e1n a la cuenta de flujo de efectivo seleccionada", "Sale Cash Flow Account": "Venta Cuenta de flujo de efectivo", - "Every sales will be added to the selected cash flow account": "Todas las ventas se agregarán a la cuenta de flujo de efectivo seleccionada", - "Every customer credit will be added to the selected cash flow account": "Cada crédito de cliente se agregará a la cuenta de flujo de efectivo seleccionada", - "Every customer credit removed will be added to the selected cash flow account": "Cada crédito de cliente eliminado se agregará a la cuenta de flujo de efectivo seleccionada", + "Every sales will be added to the selected cash flow account": "Todas las ventas se agregar\u00e1n a la cuenta de flujo de efectivo seleccionada", + "Every customer credit will be added to the selected cash flow account": "Cada cr\u00e9dito de cliente se agregar\u00e1 a la cuenta de flujo de efectivo seleccionada", + "Every customer credit removed will be added to the selected cash flow account": "Cada cr\u00e9dito de cliente eliminado se agregar\u00e1 a la cuenta de flujo de efectivo seleccionada", "Sales Refunds Account": "Cuenta de reembolsos de ventas", - "Sales refunds will be attached to this cash flow account": "Los reembolsos de ventas se adjuntarán a esta cuenta de flujo de efectivo", - "Stock return for spoiled items will be attached to this account": "La devolución de existencias por artículos estropeados se adjuntará a esta cuenta", - "Stock return for unspoiled items will be attached to this account": "La devolución de existencias para artículos sin estropear se adjuntará a esta cuenta", + "Sales refunds will be attached to this cash flow account": "Los reembolsos de ventas se adjuntar\u00e1n a esta cuenta de flujo de efectivo", + "Stock return for spoiled items will be attached to this account": "La devoluci\u00f3n de existencias por art\u00edculos estropeados se adjuntar\u00e1 a esta cuenta", + "Stock return for unspoiled items will be attached to this account": "La devoluci\u00f3n de existencias para art\u00edculos sin estropear se adjuntar\u00e1 a esta cuenta", "Cash Register Cash-In Account": "Cuenta de efectivo de caja registradora", "Cash Register Cash-Out Account": "Cuenta de retiro de efectivo de la caja registradora", - "Cash Out Assigned Expense Category": "Categoría de gastos asignados de retiro de efectivo", - "Every cashout will issue an expense under the selected expense category.": "Cada retiro generará un gasto en la categoría de gastos seleccionada.", + "Cash Out Assigned Expense Category": "Categor\u00eda de gastos asignados de retiro de efectivo", + "Every cashout will issue an expense under the selected expense category.": "Cada retiro generar\u00e1 un gasto en la categor\u00eda de gastos seleccionada.", "Unable to save an order with instalments amounts which additionnated is less than the order total.": "No se puede guardar un pedido con montos a plazos cuyo agregado es menor que el total del pedido.", - "Cash Register cash-in will be added to the cash flow account": "El ingreso de efectivo de la caja registradora se agregará a la cuenta de flujo de efectivo", - "Cash Register cash-out will be added to the cash flow account": "El retiro de efectivo de la caja registradora se agregará a la cuenta de flujo de efectivo" + "Cash Register cash-in will be added to the cash flow account": "El ingreso de efectivo de la caja registradora se agregar\u00e1 a la cuenta de flujo de efectivo", + "Cash Register cash-out will be added to the cash flow account": "El retiro de efectivo de la caja registradora se agregar\u00e1 a la cuenta de flujo de efectivo", + "No module has been updated yet.": "No se ha actualizado ningún módulo.", + "The reason has been updated.": "La razón ha sido actualizada.", + "You must select a customer before applying a coupon.": "Debe seleccionar un cliente antes de aplicar un cupón.", + "No coupons for the selected customer...": "No hay cupones para el cliente seleccionado ...", + "Use Coupon": "Usar cupon", + "Use Customer ?": "Usar cliente?", + "No customer is selected. Would you like to proceed with this customer ?": "No se selecciona ningún cliente.¿Te gustaría proceder con este cliente?", + "Change Customer ?": "Cambiar al cliente?", + "Would you like to assign this customer to the ongoing order ?": "¿Le gustaría asignar a este cliente a la orden en curso?", + "Product \/ Service": "Producto \/ Servicio", + "An error has occured while computing the product.": "Se ha producido un error al calcular el producto.", + "Provide a unique name for the product.": "Proporcionar un nombre único para el producto.", + "Define what is the sale price of the item.": "Definir cuál es el precio de venta del artículo.", + "Set the quantity of the product.": "Establecer la cantidad del producto.", + "Define what is tax type of the item.": "Definir qué es el tipo de impuesto del artículo.", + "Choose the tax group that should apply to the item.": "Elija el grupo de impuestos que debe aplicarse al artículo.", + "Assign a unit to the product.": "Asignar una unidad al producto.", + "Some products has been added to the cart. Would youl ike to discard this order ?": "Algunos productos se han agregado al carrito.¿IKE IKE para descartar esta orden?", + "Customer Accounts List": "Lista de cuentas de clientes", + "Display all customer accounts.": "Mostrar todas las cuentas de clientes.", + "No customer accounts has been registered": "No se han registrado cuentas de clientes.", + "Add a new customer account": "Añadir una nueva cuenta de cliente", + "Create a new customer account": "Crear una nueva cuenta de cliente", + "Register a new customer account and save it.": "Registre una nueva cuenta de cliente y guárdela.", + "Edit customer account": "Editar cuenta de cliente", + "Modify Customer Account.": "Modificar la cuenta del cliente.", + "Return to Customer Accounts": "Volver a las cuentas de los clientes", + "This will be ignored.": "Esto será ignorado.", + "Define the amount of the transaction": "Definir la cantidad de la transacción.", + "Define what operation will occurs on the customer account.": "Defina qué operación ocurre en la cuenta del cliente.", + "Account History": "Historia de la cuenta", + "Provider Procurements List": "Lista de adquisiciones de proveedores", + "Display all provider procurements.": "Mostrar todas las adquisiciones de proveedores.", + "No provider procurements has been registered": "No se han registrado adquisiciones de proveedores.", + "Add a new provider procurement": "Añadir una nueva adquisición del proveedor", + "Create a new provider procurement": "Crear una nueva adquisición de proveedores", + "Register a new provider procurement and save it.": "Registre una nueva adquisición del proveedor y guárdela.", + "Edit provider procurement": "Editar adquisición del proveedor", + "Modify Provider Procurement.": "Modificar la adquisición del proveedor.", + "Return to Provider Procurements": "Volver a las adquisiciones del proveedor", + "Delivered On": "Entregado en", + "Items": "Elementos", + "Displays the customer account history for %s": "Muestra el historial de la cuenta del cliente para% s", + "Procurements by \"%s\"": "Adquisiciones por \"%s\"", + "Crediting": "Acreditación", + "Deducting": "Deducción", + "Order Payment": "Orden de pago", + "Order Refund": "Reembolso de pedidos", + "Unknown Operation": "Operación desconocida", + "Unamed Product": "Producto por calificaciones", + "Bubble": "Burbuja", + "Ding": "Cosa", + "Pop": "Música pop", + "Cash Sound": "Sonido en efectivo", + "Sale Complete Sound": "Venta de sonido completo", + "New Item Audio": "Nuevo artículo de audio", + "The sound that plays when an item is added to the cart.": "El sonido que se reproduce cuando se agrega un artículo al carrito.." } \ No newline at end of file diff --git a/resources/lang/fr.json b/resources/lang/fr.json index 15611ab0a..c60c8cf74 100755 --- a/resources/lang/fr.json +++ b/resources/lang/fr.json @@ -1399,7 +1399,6 @@ "Voidance Reason": "Raison de la vidange", "Process Statuss": "\u00c9tat du processus", "Discount Rate": "Taux de remise", - "Expense Category Name": "Nom de la cat\u00e9gorie des d\u00e9penses", "Expense ID": "D\u00e9pense", "Provider Id": "ID fournisseur", "Total Items": "Articles au total", @@ -1778,50 +1777,107 @@ "Products Report": "Rapport sur les produits", "Not Available": "Pas disponible", "The report has been computed successfully.": "Le rapport a \u00e9t\u00e9 calcul\u00e9 avec succ\u00e8s.", - "Create a customer": "Créer un client", - "Cash Flow List": "Liste des flux de trésorerie", - "Display all Cash Flow.": "Afficher tous les flux de trésorerie.", - "No Cash Flow has been registered": "Aucun flux de trésorerie n'a été enregistré", - "Add a new Cash Flow": "Ajouter un nouveau flux de trésorerie", - "Create a new Cash Flow": "Créer un nouveau flux de trésorerie", + "Create a customer": "Cr\u00e9er un client", + "Cash Flow List": "Liste des flux de tr\u00e9sorerie", + "Display all Cash Flow.": "Afficher tous les flux de tr\u00e9sorerie.", + "No Cash Flow has been registered": "Aucun flux de tr\u00e9sorerie n'a \u00e9t\u00e9 enregistr\u00e9", + "Add a new Cash Flow": "Ajouter un nouveau flux de tr\u00e9sorerie", + "Create a new Cash Flow": "Cr\u00e9er un nouveau flux de tr\u00e9sorerie", "Register a new Cash Flow and save it.": "Enregistrez un nouveau Cash Flow et enregistrez-le.", - "Edit Cash Flow": "Modifier le flux de trésorerie", - "Modify Cash Flow.": "Modifier le flux de trésorerie.", - "Credit": "Crédit", - "Debit": "Débit", - "All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.": "Toutes les entités rattachées à cette catégorie produiront soit un \"crédit\" soit un \"débit\" à l'historique des flux de trésorerie.", + "Edit Cash Flow": "Modifier le flux de tr\u00e9sorerie", + "Modify Cash Flow.": "Modifier le flux de tr\u00e9sorerie.", + "Credit": "Cr\u00e9dit", + "Debit": "D\u00e9bit", + "All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.": "Toutes les entit\u00e9s rattach\u00e9es \u00e0 cette cat\u00e9gorie produiront soit un \"cr\u00e9dit\" soit un \"d\u00e9bit\" \u00e0 l'historique des flux de tr\u00e9sorerie.", "Account": "Compte", - "Provide the accounting number for this category.": "Indiquez le numéro de comptabilité de cette catégorie.", - "Unable to register using this email.": "Impossible de s'inscrire à l'aide de cet e-mail.", + "Provide the accounting number for this category.": "Indiquez le num\u00e9ro de comptabilit\u00e9 de cette cat\u00e9gorie.", + "Unable to register using this email.": "Impossible de s'inscrire \u00e0 l'aide de cet e-mail.", "Unable to register using this username.": "Impossible de s'inscrire avec ce nom d'utilisateur.", - "Accounting Settings": "Paramètres de comptabilité", - "Configure the accounting settings of the application.": "Configurez les paramètres de comptabilité de l'application.", - "Automatically recorded sale payment.": "Paiement de vente enregistré automatiquement.", + "Accounting Settings": "Param\u00e8tres de comptabilit\u00e9", + "Configure the accounting settings of the application.": "Configurez les param\u00e8tres de comptabilit\u00e9 de l'application.", + "Automatically recorded sale payment.": "Paiement de vente enregistr\u00e9 automatiquement.", "Cash out": "Encaisser", - "An automatically generated expense for cash-out operation.": "Une dépense générée automatiquement pour l'opération de retrait.", + "An automatically generated expense for cash-out operation.": "Une d\u00e9pense g\u00e9n\u00e9r\u00e9e automatiquement pour l'op\u00e9ration de retrait.", "Sales Refunds": "Remboursements des ventes", - "Soiled": "Souillé", + "Soiled": "Souill\u00e9", "Cash Register Cash In": "Caisse enregistreuse", "Cash Register Cash Out": "Caisse enregistreuse", - "Accounting": "Comptabilité", - "Cash Flow History": "Historique des flux de trésorerie", - "Expense Accounts": "Comptes de dépenses", - "Create Expense Account": "Créer un compte de dépenses", - "Procurement Cash Flow Account": "Compte de trésorerie d'approvisionnement", - "Every procurement will be added to the selected cash flow account": "Chaque achat sera ajouté au compte de trésorerie sélectionné", - "Sale Cash Flow Account": "Compte de flux de trésorerie de vente", - "Every sales will be added to the selected cash flow account": "Chaque vente sera ajoutée au compte de trésorerie sélectionné", - "Every customer credit will be added to the selected cash flow account": "Chaque crédit client sera ajouté au compte de trésorerie sélectionné", - "Every customer credit removed will be added to the selected cash flow account": "Chaque crédit client supprimé sera ajouté au compte de trésorerie sélectionné", + "Accounting": "Comptabilit\u00e9", + "Cash Flow History": "Historique des flux de tr\u00e9sorerie", + "Expense Accounts": "Comptes de d\u00e9penses", + "Create Expense Account": "Cr\u00e9er un compte de d\u00e9penses", + "Procurement Cash Flow Account": "Compte de tr\u00e9sorerie d'approvisionnement", + "Every procurement will be added to the selected cash flow account": "Chaque achat sera ajout\u00e9 au compte de tr\u00e9sorerie s\u00e9lectionn\u00e9", + "Sale Cash Flow Account": "Compte de flux de tr\u00e9sorerie de vente", + "Every sales will be added to the selected cash flow account": "Chaque vente sera ajout\u00e9e au compte de tr\u00e9sorerie s\u00e9lectionn\u00e9", + "Every customer credit will be added to the selected cash flow account": "Chaque cr\u00e9dit client sera ajout\u00e9 au compte de tr\u00e9sorerie s\u00e9lectionn\u00e9", + "Every customer credit removed will be added to the selected cash flow account": "Chaque cr\u00e9dit client supprim\u00e9 sera ajout\u00e9 au compte de tr\u00e9sorerie s\u00e9lectionn\u00e9", "Sales Refunds Account": "Compte de remboursement des ventes", - "Sales refunds will be attached to this cash flow account": "Les remboursements des ventes seront rattachés à ce compte de trésorerie", - "Stock return for spoiled items will be attached to this account": "Le retour de stock pour les articles gâtés sera attaché à ce compte", - "Stock return for unspoiled items will be attached to this account": "Le retour de stock pour les articles intacts sera attaché à ce compte", + "Sales refunds will be attached to this cash flow account": "Les remboursements des ventes seront rattach\u00e9s \u00e0 ce compte de tr\u00e9sorerie", + "Stock return for spoiled items will be attached to this account": "Le retour de stock pour les articles g\u00e2t\u00e9s sera attach\u00e9 \u00e0 ce compte", + "Stock return for unspoiled items will be attached to this account": "Le retour de stock pour les articles intacts sera attach\u00e9 \u00e0 ce compte", "Cash Register Cash-In Account": "Compte d'encaissement de caisse enregistreuse", "Cash Register Cash-Out Account": "Compte de retrait de caisse", - "Cash Out Assigned Expense Category": "Encaisser la catégorie de dépenses affectées", - "Every cashout will issue an expense under the selected expense category.": "Chaque retrait générera une dépense dans la catégorie de dépenses sélectionnée.", - "Unable to save an order with instalments amounts which additionnated is less than the order total.": "Impossible d'enregistrer une commande avec des montants d'acomptes ajoutés inférieurs au total de la commande.", - "Cash Register cash-in will be added to the cash flow account": "L'encaissement de la caisse enregistreuse sera ajouté au compte de flux de trésorerie", - "Cash Register cash-out will be added to the cash flow account": "L'encaissement de la caisse enregistreuse sera ajouté au compte de flux de trésorerie" + "Cash Out Assigned Expense Category": "Encaisser la cat\u00e9gorie de d\u00e9penses affect\u00e9es", + "Every cashout will issue an expense under the selected expense category.": "Chaque retrait g\u00e9n\u00e9rera une d\u00e9pense dans la cat\u00e9gorie de d\u00e9penses s\u00e9lectionn\u00e9e.", + "Unable to save an order with instalments amounts which additionnated is less than the order total.": "Impossible d'enregistrer une commande avec des montants d'acomptes ajout\u00e9s inf\u00e9rieurs au total de la commande.", + "Cash Register cash-in will be added to the cash flow account": "L'encaissement de la caisse enregistreuse sera ajout\u00e9 au compte de flux de tr\u00e9sorerie", + "Cash Register cash-out will be added to the cash flow account": "L'encaissement de la caisse enregistreuse sera ajout\u00e9 au compte de flux de tr\u00e9sorerie", + "No module has been updated yet.": "Aucun module n'a encore été mis à jour.", + "The reason has been updated.": "La raison a été mise à jour.", + "You must select a customer before applying a coupon.": "Vous devez sélectionner un client avant d'appliquer un coupon.", + "No coupons for the selected customer...": "Aucun coupon pour le client sélectionné...", + "Use Coupon": "Utiliser le coupon", + "Use Customer ?": "Utiliser Client ?", + "No customer is selected. Would you like to proceed with this customer ?": "Aucun client n'est sélectionné. Souhaitez-vous continuer avec ce client ?", + "Change Customer ?": "Changer de client ?", + "Would you like to assign this customer to the ongoing order ?": "Souhaitez-vous affecter ce client à la commande en cours ?", + "Product \/ Service": "Produit \/ Service", + "An error has occured while computing the product.": "Une erreur s'est produite lors du calcul du produit.", + "Provide a unique name for the product.": "Fournissez un nom unique pour le produit.", + "Define what is the sale price of the item.": "Définir quel est le prix de vente de l'article.", + "Set the quantity of the product.": "Réglez la quantité du produit.", + "Define what is tax type of the item.": "Définissez le type de taxe de l'article.", + "Choose the tax group that should apply to the item.": "Choisissez le groupe de taxes qui doit s'appliquer à l'article.", + "Assign a unit to the product.": "Attribuez une unité au produit.", + "Some products has been added to the cart. Would youl ike to discard this order ?": "Certains produits ont été ajoutés au panier. Souhaitez-vous supprimer cette commande ?", + "Customer Accounts List": "Liste des comptes clients", + "Display all customer accounts.": "Afficher tous les comptes clients.", + "No customer accounts has been registered": "Aucun compte client n'a été enregistré", + "Add a new customer account": "Ajouter un nouveau compte client", + "Create a new customer account": "Créer un nouveau compte client", + "Register a new customer account and save it.": "Enregistrez un nouveau compte client et enregistrez-le.", + "Edit customer account": "Modifier le compte client", + "Modify Customer Account.": "Modifier le compte client.", + "Return to Customer Accounts": "Retour aux comptes clients", + "This will be ignored.": "Cela sera ignoré.", + "Define the amount of the transaction": "Définir le montant de la transaction", + "Define what operation will occurs on the customer account.": "Définissez quelle opération se produira sur le compte client.", + "Account History": "Historique du compte", + "Provider Procurements List": "Liste des approvisionnements des fournisseurs", + "Display all provider procurements.": "Afficher tous les achats des fournisseurs.", + "No provider procurements has been registered": "Aucun achat de fournisseur n'a été enregistré", + "Add a new provider procurement": "Ajouter un nouveau fournisseur d'approvisionnement", + "Create a new provider procurement": "Créer un nouveau fournisseur d'approvisionnement", + "Register a new provider procurement and save it.": "Enregistrez un nouvel achat de fournisseur et enregistrez-le.", + "Edit provider procurement": "Modifier l'approvisionnement du fournisseur", + "Modify Provider Procurement.": "Modifier l'approvisionnement du fournisseur.", + "Return to Provider Procurements": "Retourner à Approvisionnements des fournisseurs", + "Delivered On": "Livré le", + "Items": "Articles", + "Displays the customer account history for %s": "Affiche l'historique du compte client pour %s", + "Procurements by \"%s\"": "Approvisionnements par \"%s\"", + "Crediting": "Créditer", + "Deducting": "Déduire", + "Order Payment": "Paiement de la commande", + "Order Refund": "Remboursement de la commande", + "Unknown Operation": "Opération inconnue", + "Unamed Product": "Produit sans nom", + "Bubble": "Bulle", + "Ding": "Ding", + "Pop": "Pop", + "Cash Sound": "Cash Sound", + "Sale Complete Sound": "Vente Son Complet", + "New Item Audio": "Nouvel élément audio", + "The sound that plays when an item is added to the cart.": "Le son qui joue lorsqu'un article est ajouté au panier." } \ No newline at end of file diff --git a/resources/lang/it.json b/resources/lang/it.json index f127a035e..293617282 100755 --- a/resources/lang/it.json +++ b/resources/lang/it.json @@ -697,7 +697,6 @@ "X Days Before Month Ends": "X giorni prima della fine del mese", "Unknown Occurance": "Evento sconosciuto", "Return to Expenses Histories": "Torna allo storico delle spese", - "Expense Category Name": "Nome categoria di spesa", "Expense ID": "ID spesa", "Expense Name": "Nome spesa", "Updated At": "Aggiornato alle", @@ -1781,7 +1780,7 @@ "Create a customer": "Crea un cliente", "Cash Flow List": "Elenco del flusso di cassa", "Display all Cash Flow.": "Visualizza tutto il flusso di cassa.", - "No Cash Flow has been registered": "Nessun flusso di cassa è stato registrato", + "No Cash Flow has been registered": "Nessun flusso di cassa \u00e8 stato registrato", "Add a new Cash Flow": "Aggiungi un nuovo flusso di cassa", "Create a new Cash Flow": "Crea un nuovo flusso di cassa", "Register a new Cash Flow and save it.": "Registra un nuovo flusso di cassa e salvalo.", @@ -1789,13 +1788,13 @@ "Modify Cash Flow.": "Modifica flusso di cassa.", "Credit": "Credito", "Debit": "Addebito", - "All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.": "Tutte le entità collegate a questa categoria produrranno un \"credito\" o un \"debito\" nella cronologia del flusso di cassa.", + "All entities attached to this category will either produce a \"credit\" or \"debit\" to the cash flow history.": "Tutte le entit\u00e0 collegate a questa categoria produrranno un \"credito\" o un \"debito\" nella cronologia del flusso di cassa.", "Account": "Account", - "Provide the accounting number for this category.": "Fornire il numero di contabilità per questa categoria.", + "Provide the accounting number for this category.": "Fornire il numero di contabilit\u00e0 per questa categoria.", "Unable to register using this email.": "Impossibile registrarsi utilizzando questa e-mail.", "Unable to register using this username.": "Impossibile registrarsi utilizzando questo nome utente.", "Accounting Settings": "Impostazioni contabili", - "Configure the accounting settings of the application.": "Configurare le impostazioni di contabilità dell'applicazione.", + "Configure the accounting settings of the application.": "Configurare le impostazioni di contabilit\u00e0 dell'applicazione.", "Automatically recorded sale payment.": "Pagamento di vendita registrato automaticamente.", "Cash out": "Incassare", "An automatically generated expense for cash-out operation.": "Una spesa generata automaticamente per l'operazione di incasso.", @@ -1803,25 +1802,82 @@ "Soiled": "sporco", "Cash Register Cash In": "Registratore di cassa", "Cash Register Cash Out": "Registratore di cassa Incassare", - "Accounting": "Contabilità", + "Accounting": "Contabilit\u00e0", "Cash Flow History": "Cronologia del flusso di cassa", "Expense Accounts": "Conti spese", "Create Expense Account": "Crea conto spese", "Procurement Cash Flow Account": "Conto del flusso di cassa dell'approvvigionamento", - "Every procurement will be added to the selected cash flow account": "Ogni approvvigionamento verrà aggiunto al conto del flusso di cassa selezionato", + "Every procurement will be added to the selected cash flow account": "Ogni approvvigionamento verr\u00e0 aggiunto al conto del flusso di cassa selezionato", "Sale Cash Flow Account": "Conto flusso di cassa vendita", - "Every sales will be added to the selected cash flow account": "Ogni vendita verrà aggiunta al conto flusso di cassa selezionato", - "Every customer credit will be added to the selected cash flow account": "Ogni credito cliente verrà aggiunto al conto flusso di cassa selezionato", - "Every customer credit removed will be added to the selected cash flow account": "Ogni credito cliente rimosso verrà aggiunto al conto flusso di cassa selezionato", + "Every sales will be added to the selected cash flow account": "Ogni vendita verr\u00e0 aggiunta al conto flusso di cassa selezionato", + "Every customer credit will be added to the selected cash flow account": "Ogni credito cliente verr\u00e0 aggiunto al conto flusso di cassa selezionato", + "Every customer credit removed will be added to the selected cash flow account": "Ogni credito cliente rimosso verr\u00e0 aggiunto al conto flusso di cassa selezionato", "Sales Refunds Account": "Conto Rimborsi Vendite", "Sales refunds will be attached to this cash flow account": "I rimborsi delle vendite saranno allegati a questo conto del flusso di cassa", - "Stock return for spoiled items will be attached to this account": "Il reso in magazzino per gli articoli rovinati sarà allegato a questo account", - "Stock return for unspoiled items will be attached to this account": "Il reso di magazzino per gli articoli non rovinati sarà allegato a questo account", + "Stock return for spoiled items will be attached to this account": "Il reso in magazzino per gli articoli rovinati sar\u00e0 allegato a questo account", + "Stock return for unspoiled items will be attached to this account": "Il reso di magazzino per gli articoli non rovinati sar\u00e0 allegato a questo account", "Cash Register Cash-In Account": "Conto di cassa registratore di cassa", "Cash Register Cash-Out Account": "Conto di prelievo del registratore di cassa", "Cash Out Assigned Expense Category": "Categoria di spesa assegnata Cash Out", - "Every cashout will issue an expense under the selected expense category.": "Ogni prelievo emetterà una spesa nella categoria di spesa selezionata.", - "Unable to save an order with instalments amounts which additionnated is less than the order total.": "Impossibile salvare un ordine con importi rateali il cui importo aggiuntivo è inferiore al totale dell'ordine.", - "Cash Register cash-in will be added to the cash flow account": "L'incasso del registratore di cassa verrà aggiunto al conto del flusso di cassa", - "Cash Register cash-out will be added to the cash flow account": "L'incasso del registratore di cassa verrà aggiunto al conto del flusso di cassa" + "Every cashout will issue an expense under the selected expense category.": "Ogni prelievo emetter\u00e0 una spesa nella categoria di spesa selezionata.", + "Unable to save an order with instalments amounts which additionnated is less than the order total.": "Impossibile salvare un ordine con importi rateali il cui importo aggiuntivo \u00e8 inferiore al totale dell'ordine.", + "Cash Register cash-in will be added to the cash flow account": "L'incasso del registratore di cassa verr\u00e0 aggiunto al conto del flusso di cassa", + "Cash Register cash-out will be added to the cash flow account": "L'incasso del registratore di cassa verr\u00e0 aggiunto al conto del flusso di cassa", + "No module has been updated yet.": "Nessun modulo è stato ancora aggiornato.", + "The reason has been updated.": "Il motivo è stato aggiornato.", + "You must select a customer before applying a coupon.": "Devi selezionare un cliente prima di applicare un coupon.", + "No coupons for the selected customer...": "Nessun coupon per il cliente selezionato...", + "Use Coupon": "Usa coupon", + "Use Customer ?": "Usa cliente?", + "No customer is selected. Would you like to proceed with this customer ?": "Nessun cliente selezionato. Vuoi procedere con questo cliente?", + "Change Customer ?": "Cambia cliente?", + "Would you like to assign this customer to the ongoing order ?": "Vuoi assegnare questo cliente all'ordine in corso?", + "Product \/ Service": "Prodotto \/ Servizio", + "An error has occured while computing the product.": "Si è verificato un errore durante il calcolo del prodotto.", + "Provide a unique name for the product.": "Fornire un nome univoco per il prodotto.", + "Define what is the sale price of the item.": "Definire qual è il prezzo di vendita dell'articolo.", + "Set the quantity of the product.": "Imposta la quantità del prodotto.", + "Define what is tax type of the item.": "Definire qual è il tipo di imposta dell'articolo.", + "Choose the tax group that should apply to the item.": "Scegli il gruppo imposte da applicare all'articolo.", + "Assign a unit to the product.": "Assegna un'unità al prodotto.", + "Some products has been added to the cart. Would youl ike to discard this order ?": "Alcuni prodotti sono stati aggiunti al carrello. Vuoi eliminare questo ordine?", + "Customer Accounts List": "Elenco dei conti dei clienti", + "Display all customer accounts.": "Visualizza tutti gli account cliente.", + "No customer accounts has been registered": "Nessun account cliente è stato registrato", + "Add a new customer account": "Aggiungi un nuovo account cliente", + "Create a new customer account": "Crea un nuovo account cliente", + "Register a new customer account and save it.": "Registra un nuovo account cliente e salvalo.", + "Edit customer account": "Modifica account cliente", + "Modify Customer Account.": "Modifica account cliente.", + "Return to Customer Accounts": "Torna agli account dei clienti", + "This will be ignored.": "Questo verrà ignorato.", + "Define the amount of the transaction": "Definire l'importo della transazione", + "Define what operation will occurs on the customer account.": "Definire quale operazione verrà eseguita sul conto cliente.", + "Account History": "Cronologia dell'account", + "Provider Procurements List": "Elenco degli appalti del fornitore", + "Display all provider procurements.": "Visualizza tutti gli appalti del fornitore.", + "No provider procurements has been registered": "Nessun approvvigionamento di fornitori è stato registrato", + "Add a new provider procurement": "Aggiungi un nuovo approvvigionamento fornitore", + "Create a new provider procurement": "Crea un nuovo approvvigionamento fornitore", + "Register a new provider procurement and save it.": "Registra un nuovo approvvigionamento fornitore e salvalo.", + "Edit provider procurement": "Modifica approvvigionamento fornitore", + "Modify Provider Procurement.": "Modificare l'approvvigionamento del fornitore.", + "Return to Provider Procurements": "Ritorna agli appalti del fornitore", + "Delivered On": "Consegnato il", + "Items": "Elementi", + "Displays the customer account history for %s": "Visualizza la cronologia dell'account cliente per %s", + "Procurements by \"%s\"": "Appalti di \"%s\"", + "Crediting": "Accredito", + "Deducting": "Detrazione", + "Order Payment": "Pagamento dell'ordine", + "Order Refund": "Rimborso ordine", + "Unknown Operation": "Operazione sconosciuta", + "Unamed Product": "Prodotto senza nome", + "Bubble": "Bolla", + "Ding": "Ding", + "Pop": "Pop", + "Cash Sound": "Suono di cassa", + "Sale Complete Sound": "Vendita Suono Completo", + "New Item Audio": "Nuovo elemento audio", + "The sound that plays when an item is added to the cart.": "Il suono che viene riprodotto quando un articolo viene aggiunto al carrello." } \ No newline at end of file diff --git a/resources/ts/components/components.ts b/resources/ts/components/components.ts index 66752fd01..49445e35c 100755 --- a/resources/ts/components/components.ts +++ b/resources/ts/components/components.ts @@ -4,6 +4,7 @@ import { nsButton } from './ns-button'; import { nsLink } from './ns-link'; import { nsInput } from './ns-input'; import { nsSelect } from './ns-select'; +import { nsSelectAudio } from './ns-select-audio'; import { nsCheckbox } from './ns-checkbox'; import { nsCrud } from './ns-crud'; import { nsTableRow } from './ns-table-row'; @@ -21,6 +22,7 @@ import { nsCkeditor } from './ns-ckeditor'; import { nsTabs, nsTabsItem } from './ns-tabs'; import { nsDateTimePicker } from './ns-date-time-picker'; import { default as nsNumpad } from './ns-numpad.vue'; +import { default as nsAvatar } from './ns-avatar.vue'; const nsDatepicker = require( './ns-datepicker.vue' ).default; @@ -48,3 +50,5 @@ export { nsTabs, nsTabsItem }; export { nsDatepicker }; export { nsDateTimePicker }; export { nsNumpad }; +export { nsSelectAudio }; +export { nsAvatar }; diff --git a/resources/ts/components/ns-avatar.vue b/resources/ts/components/ns-avatar.vue new file mode 100644 index 000000000..286df72e6 --- /dev/null +++ b/resources/ts/components/ns-avatar.vue @@ -0,0 +1,41 @@ + + \ No newline at end of file diff --git a/resources/ts/components/ns-crud-form.ts b/resources/ts/components/ns-crud-form.ts index 867ed6a32..83895cdd4 100755 --- a/resources/ts/components/ns-crud-form.ts +++ b/resources/ts/components/ns-crud-form.ts @@ -81,12 +81,15 @@ const nsCrudForm = Vue.component( 'ns-crud-form', { }, loadForm() { const request = nsHttpClient.get( `${this.src}` ); - request.subscribe( (f:any) => { - this.form = this.parseForm( f.form ); - nsHooks.doAction( 'ns-crud-form-loaded', this ); - this.$emit( 'updated', this.form ); - }, ( error ) => { - nsSnackBar.error( error.message, 'OKAY', { duration: 0 }).subscribe(); + request.subscribe({ + next: (f:any) => { + this.form = this.parseForm( f.form ); + nsHooks.doAction( 'ns-crud-form-loaded', this ); + this.$emit( 'updated', this.form ); + }, + error: ( error ) => { + nsSnackBar.error( error.message, 'OKAY', { duration: 0 }).subscribe(); + } }); }, parseForm( form ) { @@ -116,26 +119,30 @@ const nsCrudForm = Vue.component( 'ns-crud-form', {
    - +
    -
    - - -
    -

    {{ form.main.description }}

    -

    - {{ error.identifier }} - {{ error.message }} -

    +
    @@ -150,6 +157,9 @@ const nsCrudForm = Vue.component( 'ns-crud-form', {
    +
    + +
    diff --git a/resources/ts/components/ns-field.ts b/resources/ts/components/ns-field.ts index 6b78352af..3d99b2118 100755 --- a/resources/ts/components/ns-field.ts +++ b/resources/ts/components/ns-field.ts @@ -25,6 +25,9 @@ const nsField = Vue.component( 'ns-field', { isMultiselect() { return [ 'multiselect' ].includes( this.field.type ); }, + isSelectAudio() { + return [ 'select-audio' ].includes( this.field.type ); + }, isSwitch() { return [ 'switch' ].includes( this.field.type ); }, @@ -93,6 +96,10 @@ const nsField = Vue.component( 'ns-field', { + + + + diff --git a/resources/ts/components/ns-select-audio.ts b/resources/ts/components/ns-select-audio.ts new file mode 100755 index 000000000..2fb0bc25f --- /dev/null +++ b/resources/ts/components/ns-select-audio.ts @@ -0,0 +1,58 @@ +import { __ } from '@/libraries/lang'; +import Vue from 'vue'; + +const nsSelectAudio = Vue.component( 'ns-select-audio', { + data: () => { + return { + } + }, + props: [ 'name', 'placeholder', 'field' ], + computed: { + hasError() { + if ( this.field.errors !== undefined && this.field.errors.length > 0 ) { + return true; + } + return false; + }, + disabledClass() { + return this.field.disabled ? 'bg-gray-200 cursor-not-allowed' : 'bg-transparent'; + }, + inputClass() { + return this.disabledClass + ' ' + this.leadClass + }, + leadClass() { + return this.leading ? 'pl-8' : 'px-4'; + } + }, + methods: { + __, + playSelectedSound() { + if ( this.field.value.length > 0 ) { + (new Audio( this.field.value )).play(); + } + } + }, + template: ` +
    + +
    +
    + +
    + +
    +

    +

    + {{ __( 'This field is required.' ) }} + {{ __( 'This field must contain a valid email address.' ) }} + {{ error.message }} +

    +
    + `, +}); + +export { nsSelectAudio } \ No newline at end of file diff --git a/resources/ts/interfaces/order-product.ts b/resources/ts/interfaces/order-product.ts index 722d033dc..59fbb1eda 100755 --- a/resources/ts/interfaces/order-product.ts +++ b/resources/ts/interfaces/order-product.ts @@ -4,7 +4,10 @@ import { ProductUnitQuantity } from "./product-unit-quantity"; export interface OrderProduct extends Product { tax_value: number; tax_group_id: number; - unit_price: number; + tax_type: string | undefined; + unit_id: number; + unit_name: string | undefined; + unit_price: number; total_price: number; quantity: number; product?: Product; diff --git a/resources/ts/interfaces/order.ts b/resources/ts/interfaces/order.ts index e6b4599ec..78ac27a04 100755 --- a/resources/ts/interfaces/order.ts +++ b/resources/ts/interfaces/order.ts @@ -55,7 +55,7 @@ export interface Order { customer_id: number; products: OrderProduct[], payments: Payment[], - instalments?: { date: string, amount: number }[], + instalments?: { date: string, amount: number, paid?: boolean }[], note: string; note_visibility: 'hidden' | 'visible'; tax_group_id: number, @@ -68,6 +68,7 @@ export interface Order { billing: Address, }; tax_value: number; + product_taxes: number; tax_groups: any[], shipping: number; shipping_rate: number; diff --git a/resources/ts/interfaces/product-unit-quantity.ts b/resources/ts/interfaces/product-unit-quantity.ts index f26b7a366..e260fa340 100755 --- a/resources/ts/interfaces/product-unit-quantity.ts +++ b/resources/ts/interfaces/product-unit-quantity.ts @@ -2,6 +2,7 @@ export interface ProductUnitQuantity { quantity: number; sale_price_tax: number; wholesale_price_tax: number; + custom_price_tax: number; expiration_date: string; sale_price: number; sale_price_edit: number; @@ -12,4 +13,8 @@ export interface ProductUnitQuantity { incl_tax_wholesale_price: number; excl_tax_wholesale_price: number; preview_url: string; + custom_price: number; + custom_price_edit: number; + excl_tax_custom_price: number; + incl_tax_custom_price: number; } \ No newline at end of file diff --git a/resources/ts/pages/auth/ns-login.vue b/resources/ts/pages/auth/ns-login.vue index f2b2d6f94..862ca0553 100755 --- a/resources/ts/pages/auth/ns-login.vue +++ b/resources/ts/pages/auth/ns-login.vue @@ -45,17 +45,20 @@ export default { nsHttpClient.get( '/api/nexopos/v4/fields/ns.login' ), nsHttpClient.get( '/sanctum/csrf-cookie' ), ]) - .subscribe( result => { - this.fields = this.validation.createFields( result[0] ); - this.xXsrfToken = nsHttpClient.response.config.headers[ 'X-XSRF-TOKEN' ]; + .subscribe({ + next: result => { + this.fields = this.validation.createFields( result[0] ); + this.xXsrfToken = nsHttpClient.response.config.headers[ 'X-XSRF-TOKEN' ]; - /** - * emit an event - * when the component is mounted - */ - setTimeout( () => nsHooks.doAction( 'ns-login-mounted', this ), 100 ); - }, ( error ) => { - nsSnackBar.error( error.message || __( 'An unexpected error occured.' ), __( 'OK' ), { duration: 0 }).subscribe(); + /** + * emit an event + * when the component is mounted + */ + setTimeout( () => nsHooks.doAction( 'ns-login-mounted', this ), 100 ); + }, + error: ( error ) => { + nsSnackBar.error( error.message || __( 'An unexpected error occured.' ), __( 'OK' ), { duration: 0 }).subscribe(); + } }); }, methods: { diff --git a/resources/ts/pages/dashboard/pos/ns-pos-cart.vue b/resources/ts/pages/dashboard/pos/ns-pos-cart.vue index 9d80dde43..ffebe3f4b 100755 --- a/resources/ts/pages/dashboard/pos/ns-pos-cart.vue +++ b/resources/ts/pages/dashboard/pos/ns-pos-cart.vue @@ -40,6 +40,12 @@ +
    + +
    @@ -239,6 +245,7 @@ import nsPosCouponsLoadPopupVue from '@/popups/ns-pos-coupons-load-popup.vue'; import { __ } from '@/libraries/lang'; import nsPosOrderSettingsVue from '@/popups/ns-pos-order-settings.vue'; import nsPosProductPricePopupVue from '@/popups/ns-pos-product-price-popup.vue'; +import nsPosQuickProductPopupVue from '@/popups/ns-pos-quick-product-popup.vue'; export default { name: 'ns-pos-cart', @@ -300,6 +307,18 @@ export default { __, switchTo, + openAddQuickProduct() { + const promise = new Promise( ( resolve, reject ) => { + Popup.show( nsPosQuickProductPopupVue, { resolve, reject }) + }); + + promise.then( _ => { + // ... + }).catch( _ => { + // ... + }) + }, + async changeProductPrice( product ) { if ( ! this.settings.edit_purchase_price ) { return nsSnackBar.error( __( `You don't have the right to edit the purchase price.` ) ).subscribe(); @@ -307,16 +326,18 @@ export default { if ( this.settings.unit_price_editable ) { try { - product.unit_price = await new Promise( ( resolve, reject ) => { + const newPrice = await new Promise( ( resolve, reject ) => { return Popup.show( nsPosProductPricePopupVue, { product: Object.assign({}, product ), resolve, reject }) }); - /** - * since we've updated the product price - * we'll change all the default value which computation - * was made on the original value. - */ - product.tax_value = 0; + const quantities = { + ...product.$quantities(), + ...{ + custom_price_edit : newPrice + } + } + + product.$quantities = () => quantities; /** * We need to change the price mode @@ -324,6 +345,8 @@ export default { */ product.mode = 'custom'; + product = POS.computeProductTax( product ); + POS.refreshProducts( POS.products.getValue() ); POS.refreshCart(); diff --git a/resources/ts/pages/dashboard/procurements/manage-products.vue b/resources/ts/pages/dashboard/procurements/manage-products.vue index 2b342f20e..5627bb518 100755 --- a/resources/ts/pages/dashboard/procurements/manage-products.vue +++ b/resources/ts/pages/dashboard/procurements/manage-products.vue @@ -372,6 +372,8 @@ export default { return data; }) } + + this.formValidation.disableForm( this.form ); nsHttpClient[ this.submitMethod ? this.submitMethod.toLowerCase() : 'post' ]( this.submitUrl, data ) .subscribe( data => { diff --git a/resources/ts/pages/dashboard/products/ns-stock-adjustment.vue b/resources/ts/pages/dashboard/products/ns-stock-adjustment.vue index 51c5a2b54..7e14d49b7 100755 --- a/resources/ts/pages/dashboard/products/ns-stock-adjustment.vue +++ b/resources/ts/pages/dashboard/products/ns-stock-adjustment.vue @@ -23,9 +23,9 @@ export default { methods: { __, - searchProduct( search ) { - if ( search.length > 0 ) { - nsHttpClient.post( '/api/nexopos/v4/procurements/products/search-procurement-product', { search }) + searchProduct( argument ) { + if ( argument.length > 0 ) { + nsHttpClient.post( '/api/nexopos/v4/procurements/products/search-procurement-product', { argument }) .subscribe( result => { if ( result.from === 'products' ) { if ( result.products.length > 0 ) { @@ -172,16 +172,26 @@ export default { }); }, provideReason( product ) { - Popup.show( nsPromptPopupVue, { - title: __( 'More Details' ), - message: __( 'Useful to describe better what are the reasons that leaded to this adjustment.' ), - input: product.adjust_reason, - onAction: ( input ) => { - if ( input !== false ) { - product.adjust_reason = input; + const promise = new Promise( ( resolve, reject ) => { + Popup.show( nsPromptPopupVue, { + title: __( 'More Details' ), + resolve, + reject, + message: __( 'Useful to describe better what are the reasons that leaded to this adjustment.' ), + input: product.adjust_reason, + onAction: ( input ) => { + if ( input !== false ) { + product.adjust_reason = input; + } } - } + }); }); + + promise.then( result => { + nsSnackBar.success( __( 'The reason has been updated.' ) ).susbcribe(); + }).catch( error => { + // ... + }) }, removeProduct( product ) { Popup.show( nsPosConfirmPopupVue, { diff --git a/resources/ts/popups/ns-orders-refund-popup.vue b/resources/ts/popups/ns-orders-refund-popup.vue index a0946e449..ec7b33989 100755 --- a/resources/ts/popups/ns-orders-refund-popup.vue +++ b/resources/ts/popups/ns-orders-refund-popup.vue @@ -103,11 +103,16 @@ export default { const url = this.settings.printing_url.replace( '{order_id}', order_id ); const printSection = document.createElement( 'iframe' ); + printSection.id = 'printing-section'; printSection.className = 'hidden'; printSection.src = url; document.body.appendChild( printSection ); + + setTimeout( () => { + document.querySelector( '#printing-section' ).remove(); + }, 100 ); }, printRefundReceipt( refund ) { diff --git a/resources/ts/popups/ns-pos-coupons-load-popup.vue b/resources/ts/popups/ns-pos-coupons-load-popup.vue index 905c6122e..50e14e4f8 100755 --- a/resources/ts/popups/ns-pos-coupons-load-popup.vue +++ b/resources/ts/popups/ns-pos-coupons-load-popup.vue @@ -129,6 +129,24 @@ export default { this.activeTab = 'active-coupons'; } }); + + if ( this.$popupParams ) { + + /** + * We want to add a way to quickly + * apply a coupon while loading the popup + */ + if ( this.$popupParams.apply_coupon ) { + this.couponCode = this.$popupParams.apply_coupon; + this.getCoupon( this.couponCode ) + .subscribe({ + next: ( coupon ) => { + this.customerCoupon = coupon; + this.apply(); + } + }) + } + } }, destroyed() { this.orderSubscriber.unsubscribe(); @@ -257,18 +275,29 @@ export default { this.activeTab = tab; }, + getCoupon( code ) { + if ( ! this.order.customer_id > 0 ) { + return nsSnackBar.error( __( 'You must select a customer before applying a coupon.' ) ).subscribe(); + } + + return nsHttpClient.post( `/api/nexopos/v4/customers/coupons/${code}`, { + customer_id : this.order.customer_id + }); + }, + loadCoupon() { const code = this.couponCode; - nsHttpClient.post( `/api/nexopos/v4/customers/coupons/${code}`, { - customer_id : this.order.customer_id - }) - .subscribe( customerCoupon => { - this.customerCoupon = customerCoupon; - nsSnackBar.success( __( 'The coupon has been loaded.' ) ).subscribe() - }, error => { - nsSnackBar.error( error.message || __( 'An unexpected error occured.' ) ).subscribe() - }) + this.getCoupon( code ) + .subscribe({ + next: customerCoupon => { + this.customerCoupon = customerCoupon; + nsSnackBar.success( __( 'The coupon has been loaded.' ) ).subscribe() + }, + error : error => { + nsSnackBar.error( error.message || __( 'An unexpected error occured.' ) ).subscribe() + } + }); } } } diff --git a/resources/ts/popups/ns-pos-customers.vue b/resources/ts/popups/ns-pos-customers.vue index 09d99150a..05f7e9291 100755 --- a/resources/ts/popups/ns-pos-customers.vue +++ b/resources/ts/popups/ns-pos-customers.vue @@ -59,39 +59,93 @@
    -
    -

    {{ __( 'Last Purchases' ) }}

    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - -
    {{ __( 'Order' ) }}{{ __( 'Total' ) }}{{ __( 'Status' ) }}{{ __( 'Options' ) }}
    {{ __( 'No orders...' ) }}
    {{ order.code }}{{ order.total | currency }}{{ order.human_status }} - -
    -
    -
    + + +
    +

    {{ __( 'Last Purchases' ) }}

    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    {{ __( 'Order' ) }}{{ __( 'Total' ) }}{{ __( 'Status' ) }}{{ __( 'Options' ) }}
    {{ __( 'No orders...' ) }}
    {{ order.code }}{{ order.total | currency }}{{ order.human_status }} + +
    +
    +
    +
    + +
    + +
    + +
    +
    @@ -114,6 +168,11 @@ import { Popup } from '@/libraries/popup'; import nsPosCustomerSelectPopupVue from './ns-pos-customer-select-popup.vue'; import nsCustomersTransactionPopupVue from './ns-customers-transaction-popup.vue'; import { __ } from '@/libraries/lang'; +import nsPosCouponsLoadPopupVue from './ns-pos-coupons-load-popup.vue'; +import nsPosConfirmPopupVue from './ns-pos-confirm-popup.vue'; +import popupResolver from '@/libraries/popup-resolver'; +import popupCloser from '@/libraries/popup-closer'; + export default { name: 'ns-pos-customers', data() { @@ -122,33 +181,70 @@ export default { customer: null, subscription: null, orders: [], + selectedTab: 'orders', + isLoadingCoupons: false, + coupons: [], + order: null, } }, mounted() { this.closeWithOverlayClicked(); this.subscription = POS.order.subscribe( order => { - if ( order.customer !== undefined ) { + + this.order = order; + + if ( this.$popupParams.customer !== undefined ) { + this.activeTab = 'account-payment'; + this.customer = this.$popupParams.customer; + this.loadCustomerOrders( this.customer.id ); + } else if ( order.customer !== undefined ) { this.activeTab = 'account-payment'; this.customer = order.customer; this.loadCustomerOrders( this.customer.id ); - } else { - if ( this.$popupParams.customer !== undefined ) { - this.activeTab = 'account-payment'; - this.customer = this.$popupParams.customer; - this.loadCustomerOrders( this.customer.id ); - } else if ( this.$popupParams.name !== undefined ) { - setTimeout( () => { - - }, 100 ); - } } }); + + this.popupCloser(); }, methods: { __, + + popupResolver, + popupCloser, + + getType( type ) { + switch( type ) { + case 'percentage_discount': + return __( 'Percentage Discount' ); + case 'flat_discount' : + return __( 'Flat Discount' ); + } + }, closeWithOverlayClicked, + + doChangeTab( tab ) { + this.selectedTab = tab; + + if ( tab === 'coupons' ) { + this.loadCoupons(); + } + }, + + loadCoupons() { + this.isLoadingCoupons = true; + nsHttpClient.get( `/api/nexopos/v4/customers/${this.customer.id}/coupons` ) + .subscribe({ + next: ( coupons ) => { + this.coupons = coupons; + this.isLoadingCoupons = false; + }, + error: ( error ) => { + this.isLoadingCoupons = false; + } + }); + }, allowedForPayment( order ) { return [ 'unpaid', 'partially_paid', 'hold' ].includes( order.payment_status ); @@ -189,6 +285,48 @@ export default { }) }, + applyCoupon( customerCoupon ) { + if ( this.order.customer === undefined ) { + Popup.show( nsPosConfirmPopupVue, { + title: __( 'Use Customer ?' ), + message: __( 'No customer is selected. Would you like to proceed with this customer ?' ), + onAction : ( action ) => { + if ( action ) { + POS.selectCustomer( this.customer ) + .then( result => { + this.proceedApplyingCoupon( customerCoupon ); + }) + } + } + }) + } else if ( this.order.customer.id === this.customer.id ) { + this.proceedApplyingCoupon( customerCoupon ); + } else if ( this.order.customer.id !== this.customer.id ) { + Popup.show( nsPosConfirmPopupVue, { + title: __( 'Change Customer ?' ), + message: __( 'Would you like to assign this customer to the ongoing order ?' ), + onAction : ( action ) => { + if ( action ) { + POS.selectCustomer( this.customer ) + .then( result => { + this.proceedApplyingCoupon( customerCoupon ); + }) + } + } + }) + } + }, + + proceedApplyingCoupon( customerCoupon ) { + const promise = new Promise( ( resolve, reject ) => { + Popup.show( nsPosCouponsLoadPopupVue, { apply_coupon : customerCoupon.code, resolve, reject }) + }).then( result => { + this.popupResolver( false ); + }).catch( exception => { + // ... + }) + }, + handleSavedCustomer( response ) { nsSnackBar.success( response.message ).subscribe(); POS.selectCustomer( response.entry ); diff --git a/resources/ts/popups/ns-pos-layaway-popup.vue b/resources/ts/popups/ns-pos-layaway-popup.vue index 1744b2f10..789aa85bf 100755 --- a/resources/ts/popups/ns-pos-layaway-popup.vue +++ b/resources/ts/popups/ns-pos-layaway-popup.vue @@ -178,14 +178,12 @@ export default { type: 'date', name: 'date', label: 'Date', - disabled: this.expectedPayment > 0 && index === 0 ? true: false, value: index === 0 ? ns.date.moment.format( 'YYYY-MM-DD' ) : '', }, amount: { type: 'number', name: 'amount', label: 'Amount', - disabled: this.expectedPayment > 0 && index === 0 ? true: false, value: index === 0 ? this.expectedPayment : 0, }, readonly : { @@ -239,6 +237,18 @@ export default { return nsSnackBar.error( __( 'One or more instalments has a date prior to the current date.' ) ).subscribe(); } + const instalmentsForToday = instalments.filter( instalment => moment( instalment.date ).isSame( ns.date.moment.startOf( 'day' ), 'day' ) ); + let totalPaidToday = 0; + + + instalmentsForToday.forEach( instalment => { + totalPaidToday += parseFloat( instalment.amount ); + }); + + if ( totalPaidToday < this.expectedPayment ) { + return nsSnackBar.error( __( 'The payment to be made today is less than what is expected.' ) ).subscribe(); + } + if ( totalInstalments < nsRawCurrency( this.order.total ) ) { return nsSnackBar.error( __( 'Total instalments must be equal to the order total.' ) ).subscribe(); } diff --git a/resources/ts/popups/ns-pos-quick-product-popup.vue b/resources/ts/popups/ns-pos-quick-product-popup.vue new file mode 100644 index 000000000..213567d63 --- /dev/null +++ b/resources/ts/popups/ns-pos-quick-product-popup.vue @@ -0,0 +1,247 @@ + + \ No newline at end of file diff --git a/resources/ts/popups/ns-pos-units.vue b/resources/ts/popups/ns-pos-units.vue index e096671fb..4e7041979 100755 --- a/resources/ts/popups/ns-pos-units.vue +++ b/resources/ts/popups/ns-pos-units.vue @@ -15,7 +15,7 @@
    @@ -34,8 +34,15 @@ export default { return { unitsQuantities: [], loadsUnits: false, + options: null, + optionsSubscriber: null } }, + + beforeDestroy() { + this.optionsSubscriber.unsubscribe(); + }, + mounted() { this.$popup.event.subscribe( action => { if ( action.event === 'click-overlay' ) { @@ -55,6 +62,10 @@ export default { } }); + this.optionsSubscriber = POS.options.subscribe( options => { + this.options = options; + }) + /** * If there is a default selected unit quantity * provided, we assume the product was added using the unit @@ -74,6 +85,11 @@ export default { }, methods: { __, + + displayRightPrice( item ){ + return POS.getSalePrice( item ); + }, + loadUnits() { nsHttpClient.get( `/api/nexopos/v4/products/${this.$popupParams.product.$original().id}/units/quantities` ) .subscribe( result => { diff --git a/resources/ts/pos-init.ts b/resources/ts/pos-init.ts index ec03b1c08..46cd95e31 100755 --- a/resources/ts/pos-init.ts +++ b/resources/ts/pos-init.ts @@ -15,59 +15,61 @@ import { Popup } from "./libraries/popup"; import { OrderProduct } from "./interfaces/order-product"; import { StatusResponse } from "./status-response"; import { __ } from "./libraries/lang"; +import { ProductUnitQuantity } from "./interfaces/product-unit-quantity"; +import moment from "moment"; /** * these are dynamic component * that are loaded conditionally */ -const NsPosDashboardButton = (window).NsPosDashboardButton = require( './pages/dashboard/pos/header-buttons/ns-pos-dashboard-button' ).default; -const NsPosPendingOrderButton = (window).NsPosPendingOrderButton = require( './pages/dashboard/pos/header-buttons/ns-pos-' + 'pending-orders' + '-button' ).default; -const NsPosOrderTypeButton = (window).NsPosOrderTypeButton = require( './pages/dashboard/pos/header-buttons/ns-pos-' + 'order-type' + '-button' ).default; -const NsPosCustomersButton = (window).NsPosCustomersButton = require( './pages/dashboard/pos/header-buttons/ns-pos-' + 'customers' + '-button' ).default; -const NsPosResetButton = (window).NsPosResetButton = require( './pages/dashboard/pos/header-buttons/ns-pos-' + 'reset' + '-button' ).default; -const NsPosCashRegister = (window).NsPosCashRegister = require( './pages/dashboard/pos/header-buttons/ns-pos-' + 'registers' + '-button' ).default; -const NsAlertPopup = (window).NsAlertPopup = require( './popups/ns-' + 'alert' + '-popup' ).default; -const NsConfirmPopup = (window).NsConfirmPopup = require( './popups/ns-pos-' + 'confirm' + '-popup' ).default; -const NsPOSLoadingPopup = (window).NsPOSLoadingPopup = require( './popups/ns-pos-' + 'loading' + '-popup' ).default; -const NsPromptPopup = (window).NsPromptPopup = require( './popups/ns-' + 'prompt' + '-popup' ).default; -const NsLayawayPopup = (window).NsLayawayPopup = require( './popups/ns-pos-' + 'layaway' + '-popup' ).default; -const NSPosShippingPopup = (window).NsLayawayPopup = require( './popups/ns-pos-' + 'shipping' + '-popup' ).default; +const NsPosDashboardButton = (window).NsPosDashboardButton = require('./pages/dashboard/pos/header-buttons/ns-pos-dashboard-button').default; +const NsPosPendingOrderButton = (window).NsPosPendingOrderButton = require('./pages/dashboard/pos/header-buttons/ns-pos-' + 'pending-orders' + '-button').default; +const NsPosOrderTypeButton = (window).NsPosOrderTypeButton = require('./pages/dashboard/pos/header-buttons/ns-pos-' + 'order-type' + '-button').default; +const NsPosCustomersButton = (window).NsPosCustomersButton = require('./pages/dashboard/pos/header-buttons/ns-pos-' + 'customers' + '-button').default; +const NsPosResetButton = (window).NsPosResetButton = require('./pages/dashboard/pos/header-buttons/ns-pos-' + 'reset' + '-button').default; +const NsPosCashRegister = (window).NsPosCashRegister = require('./pages/dashboard/pos/header-buttons/ns-pos-' + 'registers' + '-button').default; +const NsAlertPopup = (window).NsAlertPopup = require('./popups/ns-' + 'alert' + '-popup').default; +const NsConfirmPopup = (window).NsConfirmPopup = require('./popups/ns-pos-' + 'confirm' + '-popup').default; +const NsPOSLoadingPopup = (window).NsPOSLoadingPopup = require('./popups/ns-pos-' + 'loading' + '-popup').default; +const NsPromptPopup = (window).NsPromptPopup = require('./popups/ns-' + 'prompt' + '-popup').default; +const NsLayawayPopup = (window).NsLayawayPopup = require('./popups/ns-pos-' + 'layaway' + '-popup').default; +const NSPosShippingPopup = (window).NsLayawayPopup = require('./popups/ns-pos-' + 'shipping' + '-popup').default; export class POS { private _products: BehaviorSubject; private _breadcrumbs: BehaviorSubject; private _customers: BehaviorSubject; - private _settings: BehaviorSubject<{ [ key: string] : any}>; + private _settings: BehaviorSubject<{ [key: string]: any }>; private _types: BehaviorSubject; - private _orderTypeProcessQueue: { identifier: string, promise: ( selectedType: OrderType ) => Promise }[] = []; + private _orderTypeProcessQueue: { identifier: string, promise: (selectedType: OrderType) => Promise }[] = []; private _paymentsType: BehaviorSubject; private _order: BehaviorSubject; private _screen: BehaviorSubject; - private _holdPopupEnabled = true; - private _initialQueue: (() => Promise)[] = []; - private _options: BehaviorSubject<{ [key:string] : any}>; - private _responsive = new Responsive; + private _holdPopupEnabled = true; + private _initialQueue: (() => Promise)[] = []; + private _options: BehaviorSubject<{ [key: string]: any }>; + private _responsive = new Responsive; private _visibleSection: BehaviorSubject<'cart' | 'grid' | 'both'>; - private _isSubmitting = false; - private _processingAddQueue = false; + private _isSubmitting = false; + private _processingAddQueue = false; private _selectedPaymentType: BehaviorSubject; - private defaultOrder = (): Order => { - const order: Order = { + private defaultOrder = (): Order => { + const order: Order = { discount_type: null, title: '', discount: 0, - register_id: this.get( 'register' ) ? this.get( 'register' ).id : undefined, // everytime it reset, this value will be pulled. + register_id: this.get('register') ? this.get('register').id : undefined, // everytime it reset, this value will be pulled. discount_percentage: 0, subtotal: 0, total: 0, coupons: [], - total_coupons : 0, + total_coupons: 0, tendered: 0, note: '', note_visibility: 'hidden', tax_group_id: undefined, tax_type: undefined, - taxes: [], + taxes: [], tax_groups: [], payment_status: undefined, customer_id: undefined, @@ -75,6 +77,7 @@ export class POS { total_products: 0, shipping: 0, tax_value: 0, + product_taxes: 0, shipping_rate: 0, shipping_type: undefined, customer: undefined, @@ -156,12 +159,12 @@ export class POS { } reset() { - this._isSubmitting = false; + this._isSubmitting = false; /** * to reset order details */ - this.order.next( this.defaultOrder() ); + this.order.next(this.defaultOrder()); this._products.next([]); this._customers.next([]); this._breadcrumbs.next([]); @@ -172,28 +175,27 @@ export class POS { this.refreshCart(); } - public initialize() - { - this._products = new BehaviorSubject([]); - this._customers = new BehaviorSubject([]); - this._types = new BehaviorSubject([]); - this._breadcrumbs = new BehaviorSubject([]); - this._screen = new BehaviorSubject(''); - this._paymentsType = new BehaviorSubject([]); - this._visibleSection = new BehaviorSubject( 'both' ); - this._options = new BehaviorSubject({}); - this._settings = new BehaviorSubject<{ [ key: string ] : any }>({}); - this._order = new BehaviorSubject( this.defaultOrder() ); - this._selectedPaymentType = new BehaviorSubject( null ); - this._orderTypeProcessQueue = [ + public initialize() { + this._products = new BehaviorSubject([]); + this._customers = new BehaviorSubject([]); + this._types = new BehaviorSubject([]); + this._breadcrumbs = new BehaviorSubject([]); + this._screen = new BehaviorSubject(''); + this._paymentsType = new BehaviorSubject([]); + this._visibleSection = new BehaviorSubject('both'); + this._options = new BehaviorSubject({}); + this._settings = new BehaviorSubject<{ [key: string]: any }>({}); + this._order = new BehaviorSubject(this.defaultOrder()); + this._selectedPaymentType = new BehaviorSubject(null); + this._orderTypeProcessQueue = [ { - identifier : 'handle.delivery-order', - promise : ( selectedType: OrderType ) => new Promise( ( resolve, reject ) => { - if ( selectedType.identifier === 'delivery' ) { - return Popup.show( NSPosShippingPopup, { resolve, reject } ); + identifier: 'handle.delivery-order', + promise: (selectedType: OrderType) => new Promise((resolve, reject) => { + if (selectedType.identifier === 'delivery') { + return Popup.show(NSPosShippingPopup, { resolve, reject }); } - reject( false ); + reject(false); }) } ] @@ -203,40 +205,40 @@ export class POS { * if there is a tax group assigned on the settings * and set it as default tax group. */ - this.initialQueue.push( () => new Promise( ( resolve, reject ) => { - const options = this.options.getValue(); - const order = this.order.getValue(); - - if ( options.ns_pos_tax_group !== false ) { - order.tax_group_id = options.ns_pos_tax_group; - order.tax_type = options.ns_pos_tax_type; - this.order.next( order ); + this.initialQueue.push(() => new Promise((resolve, reject) => { + const options = this.options.getValue(); + const order = this.order.getValue(); + + if (options.ns_pos_tax_group !== false) { + order.tax_group_id = options.ns_pos_tax_group; + order.tax_type = options.ns_pos_tax_type; + this.order.next(order); } return resolve({ status: 'success', message: 'tax group assignated' }); - } ) ); + })); /** * this initial process will select the default * customer and assign him to the POS */ - this.initialQueue.push( () => new Promise( ( resolve, reject ) => { - const options = this.options.getValue(); - const order = this.order.getValue(); - - if ( options.ns_customers_default !== false ) { - nsHttpClient.get( `/api/nexopos/v4/customers/${options.ns_customers_default}` ) - .subscribe( customer => { - this.selectCustomer( customer ); - resolve({ + this.initialQueue.push(() => new Promise((resolve, reject) => { + const options = this.options.getValue(); + const order = this.order.getValue(); + + if (options.ns_customers_default !== false) { + nsHttpClient.get(`/api/nexopos/v4/customers/${options.ns_customers_default}`) + .subscribe(customer => { + this.selectCustomer(customer); + resolve({ status: 'success', - message: __( 'The customer has been loaded' ) + message: __('The customer has been loaded') }); - }, ( error ) => { - reject( error ); + }, (error) => { + reject(error); }); } @@ -244,14 +246,14 @@ export class POS { status: 'success', message: 'tax group assignated' }); - } ) ); - + })); + /** * Whenever there is a change * on the products, we'll update * the cart. */ - this.products.subscribe( _ => { + this.products.subscribe(_ => { this.refreshCart(); }); @@ -259,13 +261,13 @@ export class POS { * listen to type for updating * the order accordingly */ - this.types.subscribe( types => { - const selected = Object.values( types ).filter( (type: any) => type.selected ); + this.types.subscribe(types => { + const selected = Object.values(types).filter((type: any) => type.selected); - if ( selected.length > 0 ) { - const order = this.order.getValue(); - order.type = selected[0]; - this.order.next( order ); + if (selected.length > 0) { + const order = this.order.getValue(); + order.type = selected[0]; + this.order.next(order); } }); @@ -273,21 +275,56 @@ export class POS { * We're handling here the responsive aspect * of the POS. */ - window.addEventListener( 'resize', () => { + window.addEventListener('resize', () => { this._responsive.detect(); this.defineCurrentScreen(); }); + /** + * This will ensure the order is not closed mistakenly. + * @returns void + */ + window.onbeforeunload = () => { + if ( this.products.getValue().length > 0 ) { + return __( 'Some products has been added to the cart. Would youl ike to discard this order ?' ); + } + } + this.defineCurrentScreen(); } - public setHoldPopupEnabled( status = true ) - { - this._holdPopupEnabled = status; + public getSalePrice(item, original) { + switch ( original.tax_type ) { + case 'inclusive': + return item.incl_tax_sale_price; + default: + return item.excl_tax_sale_price; + } + } + + public getCustomPrice(item, original) { + switch ( original.tax_type ) { + case 'inclusive': + return item.incl_tax_custom_price; + default: + return item.excl_tax_custom_price; + } + } + + public getWholesalePrice(item, original) { + switch ( original.tax_type ) { + case 'inclusive': + return item.incl_tax_wholesale_price; + default: + return item.excl_tax_wholesale_price; + } + } + + public setHoldPopupEnabled(status = true) { + this._holdPopupEnabled = status; } - public getHoldPopupEnabled() - { + public getHoldPopupEnabled() { return this._holdPopupEnabled; } @@ -298,11 +335,11 @@ export class POS { * @return void */ public async processInitialQueue() { - for( let index in this._initialQueue ) { + for (let index in this._initialQueue) { try { - const response = await this._initialQueue[ index ](); - } catch( exception ) { - nsSnackBar.error( exception.message ).subscribe(); + const response = await this._initialQueue[index](); + } catch (exception) { + nsSnackBar.error(exception.message).subscribe(); } } } @@ -312,39 +349,39 @@ export class POS { * of the cart refreshing. Cannot refresh the cart. * @param coupon coupon */ - removeCoupon( coupon ) { - const order = this.order.getValue(); - const coupons = order.coupons; - const index = coupons.indexOf( coupon ); - coupons.splice( index, 1 ); - order.coupons = coupons; - this.order.next( order ); - } - - pushCoupon( coupon ) { - const order = this.order.getValue(); - - order.coupons.forEach( _coupon => { - if ( _coupon.code === coupon.code ) { - const message = __( 'This coupon is already added to the cart' ); - nsSnackBar.error( message ) + removeCoupon(coupon) { + const order = this.order.getValue(); + const coupons = order.coupons; + const index = coupons.indexOf(coupon); + coupons.splice(index, 1); + order.coupons = coupons; + this.order.next(order); + } + + pushCoupon(coupon) { + const order = this.order.getValue(); + + order.coupons.forEach(_coupon => { + if (_coupon.code === coupon.code) { + const message = __('This coupon is already added to the cart'); + nsSnackBar.error(message) .subscribe(); throw message; } }) - order.coupons.push( coupon ); - this.order.next( order ); + order.coupons.push(coupon); + this.order.next(order); this.refreshCart(); } - + get header() { /** * As POS object is defined on the * header, we can use that to reference the buttons (component) * that needs to be rendered dynamically */ - const data = { + const data = { buttons: { NsPosDashboardButton, NsPosPendingOrderButton, @@ -359,222 +396,277 @@ export class POS { * we'll add that button to the list * of button available. */ - if ( this.options.getValue().ns_pos_registers_enabled === 'yes' ) { - data.buttons[ 'NsPosCashRegister' ] = NsPosCashRegister; + if (this.options.getValue().ns_pos_registers_enabled === 'yes') { + data.buttons['NsPosCashRegister'] = NsPosCashRegister; } /** * expose the pos header data, for allowing * custom button injection. */ - nsHooks.doAction( 'ns-pos-header', data ); + nsHooks.doAction('ns-pos-header', data); return data; } - defineOptions( options ) { - this._options.next( options ); + defineOptions(options) { + this._options.next(options); } defineCurrentScreen() { - this._visibleSection.next( [ 'xs', 'sm' ].includes( this._responsive.is() ) ? 'grid' : 'both' ); - this._screen.next( this._responsive.is() ); + this._visibleSection.next(['xs', 'sm'].includes(this._responsive.is()) ? 'grid' : 'both'); + this._screen.next(this._responsive.is()); } - changeVisibleSection( section ) { - if ([ 'both', 'cart', 'grid' ].includes( section ) ) { + changeVisibleSection(section) { + if (['both', 'cart', 'grid'].includes(section)) { - if ([ 'cart', 'both' ].includes( section ) ) { + if (['cart', 'both'].includes(section)) { this.refreshCart(); } - this._visibleSection.next( section ); + this._visibleSection.next(section); } } - addPayment( payment: Payment ) { - if ( payment.value > 0 ) { - const order = this._order.getValue(); - order.payments.push( payment ); - this._order.next( order ); - + addPayment(payment: Payment) { + if (payment.value > 0) { + const order = this._order.getValue(); + order.payments.push(payment); + this._order.next(order); + return this.computePaid(); } - return nsSnackBar.error( 'Invalid amount.' ).subscribe(); + return nsSnackBar.error('Invalid amount.').subscribe(); } - removePayment( payment: Payment ) { + removePayment(payment: Payment) { - if ( payment.id !== undefined ) { - return nsSnackBar.error( 'Unable to delete a payment attached to the order' ).subscribe(); + if (payment.id !== undefined) { + return nsSnackBar.error('Unable to delete a payment attached to the order').subscribe(); } - const order = this._order.getValue(); - const index = order.payments.indexOf( payment ); - order.payments.splice( index, 1 ); - this._order.next( order ); + const order = this._order.getValue(); + const index = order.payments.indexOf(payment); + order.payments.splice(index, 1); + this._order.next(order); - nsEvent.emit({ + nsEvent.emit({ identifier: 'ns.pos.remove-payment', value: payment }); - this.updateCustomerAccount( payment ); + this.updateCustomerAccount(payment); this.computePaid(); } - updateCustomerAccount( payment: Payment ) { - if ( payment.identifier === 'account-payment' ) { - const customer = this.order.getValue().customer; - customer.account_amount += payment.value; - this.selectCustomer( customer ); + updateCustomerAccount(payment: Payment) { + if (payment.identifier === 'account-payment') { + const customer = this.order.getValue().customer; + customer.account_amount += payment.value; + this.selectCustomer(customer); } } - getNetPrice( value, rate, type ) { - if ( type === 'inclusive' ) { - return ( value / ( rate + 100 ) ) * 100; - } else if( type === 'exclusive' ) { - return ( ( value / 100 ) * ( rate + 100 ) ); + getNetPrice(value, rate, type) { + if (type === 'inclusive') { + return (value / (rate + 100)) * 100; + } else if (type === 'exclusive') { + return ((value / 100) * (rate + 100)); } } - getVatValue( value, rate, type ) { - if ( type === 'inclusive' ) { - return value - this.getNetPrice( value, rate, type ); - } else if( type === 'exclusive' ) { - return this.getNetPrice( value, rate, type ) - value; + getVatValue(value, rate, type) { + if (type === 'inclusive') { + return value - this.getNetPrice(value, rate, type); + } else if (type === 'exclusive') { + return this.getNetPrice(value, rate, type) - value; } } computeTaxes() { - return new Promise( ( resolve, reject ) => { - const order = this.order.getValue(); + return new Promise((resolve, reject) => { + let order = this.order.getValue(); + order = this.computeProductsTaxes( order ); - if ( order.tax_group_id === undefined || order.tax_group_id === null ) { - return reject( false ); + if (order.tax_group_id === undefined || order.tax_group_id === null) { + return reject(false); } - const groups = order.tax_groups; + const groups = order.tax_groups; /** * if the tax group is already cached * we'll pull that rather than doing a new request. */ - if ( groups && groups[ order.tax_group_id ] !== undefined ) { - order.taxes = order.taxes.map( tax => { - tax.tax_value = this.getVatValue( order.subtotal, tax.rate, order.tax_type ); + if (groups && groups[order.tax_group_id] !== undefined) { + order.taxes = order.taxes.map(tax => { + tax.tax_value = this.getVatValue(order.subtotal, tax.rate, order.tax_type); return tax; }); + order = this.computeOrderTaxes( order ); + return resolve({ status: 'success', - data: { tax : groups[ order.tax_group_id ], order } + data: { tax: groups[order.tax_group_id], order } }); } - if( order.tax_group_id !== null ) { - nsHttpClient.get( `/api/nexopos/v4/taxes/groups/${order.tax_group_id}` ) - .subscribe( (tax:any) => { - order.tax_groups = order.tax_groups || []; - order.taxes = tax.taxes.map( tax => { - return { - tax_id : tax.id, - tax_name : tax.name, - rate : parseFloat( tax.rate ), - tax_value : this.getVatValue( order.subtotal, tax.rate, order.tax_type ) - }; - }); + if (order.tax_group_id !== null && order.tax_group_id.toString().length > 0 ) { + nsHttpClient.get(`/api/nexopos/v4/taxes/groups/${order.tax_group_id}`) + .subscribe({ + next: (tax: any) => { + order.tax_groups = order.tax_groups || []; + order.taxes = tax.taxes.map(tax => { + return { + tax_id: tax.id, + tax_name: tax.name, + rate: parseFloat(tax.rate), + tax_value: this.getVatValue(order.subtotal, tax.rate, order.tax_type) + }; + }); + + /** + * this is set to cache the + * tax group to avoid subsequent request + * to the server. + */ + order.tax_groups[tax.id] = tax; - /** - * this is set to cache the - * tax group to avoid subsequent request - * to the server. - */ - order.tax_groups[ tax.id ] = tax; + order = this.computeOrderTaxes( order ); - return resolve({ - status: 'success', - data : { tax, order } - }) - }, ( error ) => { - return reject( error ); + return resolve({ + status: 'success', + data: { tax, order } + }) + }, + error: (error) => { + return reject(error); + } }) } else { return reject({ status: 'failed', - message: __( 'No tax group assigned to the order' ) + message: __('No tax group assigned to the order') }) } }) } + computeOrderTaxes( order: Order ) { + const posVat = this.options.getValue().ns_pos_vat; + + if (['flat_vat', 'variable_vat', 'products_variable_vat'].includes(posVat) && order.taxes && order.taxes.length > 0) { + order.tax_value += order.taxes + .map(tax => tax.tax_value) + .reduce((before, after) => before + after); + } + + order.tax_value += order.product_taxes; + + return order; + } + + computeProductsTaxes( order: Order ) { + const products = this.products.getValue(); + + /** + * retreive all products taxes + * and sum the total. + */ + const totalTaxes = products.map((product: OrderProduct) => { + return product.tax_value; + }); + + /** + * tax might be computed above the tax that currently + * applie to the items. + */ + order.product_taxes = 0; + + const posVat = this.options.getValue().ns_pos_vat; + + if (['products_vat', 'products_flat_vat', 'products_variable_vat'].includes(posVat) && totalTaxes.length > 0) { + order.product_taxes += totalTaxes.reduce((b, a) => b + a); + } + + order.products = products; + order.total_products = products.length + + return order; + } + /** * This will check if the order can be saved as layway. * might request additionnal information through a popup. * @param order Order */ - canProceedAsLaidAway( _order: Order ): { status: string, message: string, data: { order: Order } } | any { - return new Promise( async ( resolve, reject ) => { - const minimalPaymentPercent = _order.customer.group.minimal_credit_payment; - let expected:any = ( ( _order.total * minimalPaymentPercent ) / 100 ).toFixed( ns.currency.ns_currency_precision ); - expected = parseFloat( expected ); + canProceedAsLaidAway(_order: Order): { status: string, message: string, data: { order: Order } } | any { + return new Promise(async (resolve, reject) => { + const minimalPaymentPercent = _order.customer.group.minimal_credit_payment; + let expected: any = ((_order.total * minimalPaymentPercent) / 100).toFixed(ns.currency.ns_currency_precision); + expected = parseFloat(expected); /** * checking order details * installments & payment date */ try { - const order = await new Promise( ( resolve, reject ) => { - Popup.show( NsLayawayPopup, { order: _order, reject, resolve }); + const order = await new Promise((resolve, reject) => { + Popup.show(NsLayawayPopup, { order: _order, reject, resolve }); }); - if ( order.instalments.length === 0 && order.tendered < expected ) { - const message = __( `Before saving the order as laid away, a minimum payment of {amount} is required` ).replace( '{amount}', Vue.filter( 'currency' )( expected )); - Popup.show( NsAlertPopup, { title: __( 'Unable to proceed' ), message }); - return reject({ status: 'failed', message }); + if (order.instalments.length === 0 && order.tendered < expected) { + const message = __(`Before saving the order as laid away, a minimum payment of {amount} is required`).replace('{amount}', Vue.filter('currency')(expected)); + Popup.show(NsAlertPopup, { title: __('Unable to proceed'), message }); + return reject({ status: 'failed', message }); } else { - const paymentType = this.selectedPaymentType.getValue(); - const expectedSlice = order.instalments.filter( payment => payment.amount == expected ); + const paymentType = this.selectedPaymentType.getValue(); + const expectedSlice = order.instalments.filter(payment => payment.amount >= expected && moment( payment.date ).isSame( ns.date.moment.startOf( 'day' ), 'day' ) ); - if ( expectedSlice.length === 0 ) { - return resolve({ status: 'success', message: __( 'Layaway defined' ), data: { order } }); + if (expectedSlice.length === 0) { + return resolve({ status: 'success', message: __('Layaway defined'), data: { order } }); } - const firstSlice = expectedSlice[0].amount; + const firstSlice = expectedSlice[0].amount; /** * If the instalment has been configured, we'll ease things for * the waiter and invite him to add the first slice as * the payment. */ - Popup.show( NsConfirmPopup, { - title : __( `Confirm Payment` ), - message : __( `An instalment has been detected. Would you like to add as first payment {amount} for the selected payment type "{paymentType}"?` ) - .replace( '{amount}', Vue.filter( 'currency' )( firstSlice ) ) - .replace( '{paymentType}', paymentType.label ), - onAction: ( action ) => { - - console.log( paymentType.identifier ); - - const payment: Payment = { - identifier : paymentType.identifier, + Popup.show(NsConfirmPopup, { + title: __(`Confirm Payment`), + message: __(`An instalment has been detected. Would you like to add as first payment {amount} for the selected payment type "{paymentType}"?`) + .replace('{amount}', Vue.filter('currency')(firstSlice)) + .replace('{paymentType}', paymentType.label), + onAction: (action) => { + + const payment: Payment = { + identifier: paymentType.identifier, label: paymentType.label, value: firstSlice, readonly: false, selected: true, } - this.addPayment( payment ); + this.addPayment(payment); + + /** + * The expected slice + * should be marked as paid once submitted + */ + expectedSlice[0].paid = true; - resolve({ status: 'success', message: __( 'Layaway defined' ), data: { order } }); + resolve({ status: 'success', message: __('Layaway defined'), data: { order } }); } }); } - } catch( exception ) { - return reject( exception ); + } catch (exception) { + return reject(exception); } }); } @@ -584,238 +676,248 @@ export class POS { * set on the order. * @param orderFields Object */ - submitOrder( orderFields = {} ) { - return new Promise( async ( resolve, reject ) => { - var order = { + submitOrder(orderFields = {}) { + return new Promise(async (resolve, reject) => { + var order = { ...this.order!.getValue(), ...orderFields }; - const minimalPayment = order.customer.group.minimal_credit_payment; + const minimalPayment = order.customer.group.minimal_credit_payment; /** * this verification applies only if the * order is not "hold". */ - if ( order.payment_status !== 'hold' ) { - if ( order.payments.length === 0 || order.total > order.tendered ) { - if ( this.options.getValue().ns_orders_allow_partial === 'no' ) { - const message = __( 'Partially paid orders are disabled.' ); + if (order.payment_status !== 'hold') { + if (order.payments.length === 0 || order.total > order.tendered) { + if (this.options.getValue().ns_orders_allow_partial === 'no') { + const message = __('Partially paid orders are disabled.'); return reject({ status: 'failed', message }); - } else if ( minimalPayment >= 0 ) { + } else if (minimalPayment >= 0) { try { - const result = await this.canProceedAsLaidAway( order ); + const result = await this.canProceedAsLaidAway(order); /** * the order might have been updated * by the layaway popup. */ - order = result.data.order; - } catch( exception ) { - return reject( exception ); + order = result.data.order; + } catch (exception) { + return reject(exception); } } } } - if ( ! this._isSubmitting ) { - + if (!this._isSubmitting) { + /** * @todo do we need to set a new value here * probably the passed value should be send to the server. */ - const method = order.id !== undefined ? 'put' : 'post'; - - this._isSubmitting = true; + const method = order.id !== undefined ? 'put' : 'post'; - return nsHttpClient[ method ]( `/api/nexopos/v4/orders${ order.id !== undefined ? '/' + order.id : '' }`, order ) + this._isSubmitting = true; + + return nsHttpClient[method](`/api/nexopos/v4/orders${order.id !== undefined ? '/' + order.id : ''}`, order) .subscribe({ next: result => { - resolve( result ); + resolve(result); this.reset(); - + /** * will trigger an acction when * the order has been successfully submitted */ - nsHooks.doAction( 'ns-order-submit-successful', result ); - - this._isSubmitting = false; + nsHooks.doAction('ns-order-submit-successful', result); + + this._isSubmitting = false; + + /** + * when all this has been executed, we can play + * a sound if it's enabled + */ + const url = this.options.getValue().ns_pos_complete_sale_audio; + + if ( url.length > 0 ) { + ( new Audio( url ) ).play(); + } }, - error: ( error: any ) => { - this._isSubmitting = false; - reject( error ); - - nsHooks.doAction( 'ns-order-submit-failed', error ); + error: (error: any) => { + this._isSubmitting = false; + reject(error); + + nsHooks.doAction('ns-order-submit-failed', error); } }); } - return reject({ status: 'failed', message: __( 'An order is currently being processed.' ) }); + return reject({ status: 'failed', message: __('An order is currently being processed.') }); }); } - loadOrder( order_id ) { - return new Promise( ( resolve, reject ) => { - nsHttpClient.get( `/api/nexopos/v4/orders/${order_id}/pos` ) - .subscribe( async ( order: any ) => { + loadOrder(order_id) { + return new Promise((resolve, reject) => { + nsHttpClient.get(`/api/nexopos/v4/orders/${order_id}/pos`) + .subscribe(async (order: any) => { - order = { ...this.defaultOrder(), ...order }; + order = { ...this.defaultOrder(), ...order }; /** * We'll rebuilt the product */ - const products = order.products.map( (orderProduct: OrderProduct ) => { - orderProduct.$original = () => orderProduct.product; - orderProduct.$quantities = () => orderProduct + const products = order.products.map((orderProduct: OrderProduct) => { + orderProduct.$original = () => orderProduct.product; + orderProduct.$quantities = () => orderProduct .product .unit_quantities - .filter( unitQuantity => unitQuantity.id === orderProduct.unit_quantity_id )[0]; + .filter(unitQuantity => unitQuantity.id === orderProduct.unit_quantity_id)[0]; return orderProduct; }); /** * we'll redefine the order type */ - order.type = Object.values( this.types.getValue() ).filter( (type: any) => type.identifier === order.type )[0]; + order.type = Object.values(this.types.getValue()).filter((type: any) => type.identifier === order.type)[0]; /** * the address is provided differently * then we need to rebuild it the way it's saved and used */ - order.addresses = { - shipping : order.shipping_address, - billing : order.billing_address + order.addresses = { + shipping: order.shipping_address, + billing: order.billing_address } delete order.shipping_address; delete order.billing_address; - + /** * let's all set, let's load the order * from now. No further change is required */ - - this.buildOrder( order ); - this.buildProducts( products ); - await this.selectCustomer( order.customer ); - resolve( order ); - }, error => reject( error ) ); + + this.buildOrder(order); + this.buildProducts(products); + await this.selectCustomer(order.customer); + resolve(order); + }, error => reject(error)); }) } - buildOrder( order ) { - this.order.next( order ); + buildOrder(order) { + this.order.next(order); } - buildProducts( products ) { - this.refreshProducts( products ); - this.products.next( products ); + buildProducts(products) { + this.refreshProducts(products); + this.products.next(products); } - printOrder( order_id ) { - const options = this.options.getValue(); + printOrder(order_id) { + const options = this.options.getValue(); - if ( options.ns_pos_printing_enabled_for === 'disabled' ) { + if (options.ns_pos_printing_enabled_for === 'disabled') { return false; } - switch( options.ns_pos_printing_gateway ) { - case 'default' : this.processRegularPrinting( order_id ); break; - default: this.processCustomPrinting( order_id, options.ns_pos_printing_gateway ); break; + switch (options.ns_pos_printing_gateway) { + case 'default': this.processRegularPrinting(order_id); break; + default: this.processCustomPrinting(order_id, options.ns_pos_printing_gateway); break; } } - processCustomPrinting( order_id, gateway ) { - const result = nsHooks.applyFilters( 'ns-order-custom-print', { printed: false, order_id, gateway }); - - if ( ! result.printed ) { - nsSnackBar.error( __( `Unsupported print gateway.` ) ).subscribe(); + processCustomPrinting(order_id, gateway) { + const result = nsHooks.applyFilters('ns-order-custom-print', { printed: false, order_id, gateway }); + + if (!result.printed) { + nsSnackBar.error(__(`Unsupported print gateway.`)).subscribe(); } } - processRegularPrinting( order_id ) { - const item = document.querySelector( 'printing-section' ); + processRegularPrinting(order_id) { + const item = document.querySelector('printing-section'); - if ( item ) { + if (item) { item.remove(); } - const printSection = document.createElement( 'iframe' ); - printSection.id = 'printing-section'; - printSection.className = 'hidden'; - printSection.src = this.settings.getValue()[ 'urls' ][ 'printing_url' ].replace( '{id}', order_id ); + const printSection = document.createElement('iframe'); + printSection.id = 'printing-section'; + printSection.className = 'hidden'; + printSection.src = this.settings.getValue()['urls']['printing_url'].replace('{id}', order_id); - document.body.appendChild( printSection ); + document.body.appendChild(printSection); } computePaid() { - const order = this._order.getValue(); - order.tendered = 0; + const order = this._order.getValue(); + order.tendered = 0; - if ( order.payments.length > 0 ) { - order.tendered = order.payments.map( p => p.value ).reduce( ( b, a ) => a + b ); + if (order.payments.length > 0) { + order.tendered = order.payments.map(p => p.value).reduce((b, a) => a + b); } - if ( order.tendered >= order.total ) { - order.payment_status = 'paid'; - } else if ( order.tendered > 0 && order.tendered < order.total ) { - order.payment_status = 'partially_paid'; - } - - order.change = order.tendered - order.total; + if (order.tendered >= order.total) { + order.payment_status = 'paid'; + } else if (order.tendered > 0 && order.tendered < order.total) { + order.payment_status = 'partially_paid'; + } + + order.change = order.tendered - order.total; - this._order.next( order ); + this._order.next(order); } - setPaymentActive( payment ) { - const payments = this._paymentsType.getValue(); - const index = payments.indexOf( payment ); - payments.forEach( p => p.selected = false ); - payments[ index ].selected = true; - this._paymentsType.next( payments ); + setPaymentActive(payment) { + const payments = this._paymentsType.getValue(); + const index = payments.indexOf(payment); + payments.forEach(p => p.selected = false); + payments[index].selected = true; + this._paymentsType.next(payments); } - definedPaymentsType( payments ) { - this._paymentsType.next( payments ); + definedPaymentsType(payments) { + this._paymentsType.next(payments); } - selectCustomer( customer ) { - return new Promise( ( resolve, reject ) => { - const order = this.order.getValue(); - order.customer = customer; - order.customer_id = customer.id - this.order.next( order ); - + selectCustomer(customer) { + return new Promise((resolve, reject) => { + const order = this.order.getValue(); + order.customer = customer; + order.customer_id = customer.id + this.order.next(order); + /** * asynchronously we can load * customer meta data */ - if ( customer.group === undefined || customer.group === null ) { - nsHttpClient.get( `/api/nexopos/v4/customers/${customer.id}/group` ) - .subscribe( group => { - order.customer.group = group; - this.order.next( order ); - resolve( order ); - }, ( error ) => { - reject( error ); + if (customer.group === undefined || customer.group === null) { + nsHttpClient.get(`/api/nexopos/v4/customers/${customer.id}/group`) + .subscribe(group => { + order.customer.group = group; + this.order.next(order); + resolve(order); + }, (error) => { + reject(error); }); } else { - return resolve( order ); + return resolve(order); } }); } - updateCart( current, update ) { - for( let key in update ) { - if ( update[ key ] !== undefined ) { - Vue.set( current, key, update[ key ]); + updateCart(current, update) { + for (let key in update) { + if (update[key] !== undefined) { + Vue.set(current, key, update[key]); } } - this.order.next( current ); - + this.order.next(current); + /** * explicitely here we do manually refresh the cart * as if we listen to cart update by subscribing, @@ -830,27 +932,27 @@ export class POS { * to perform some verification */ checkCart() { - const order = this.order.getValue(); - const unmatchedConditions = []; + const order = this.order.getValue(); + const unmatchedConditions = []; - order.coupons.forEach( coupon => { + order.coupons.forEach(coupon => { /** * by default we'll bypass * the product if it's not available */ - let isProductValid = true; + let isProductValid = true; /** * if the coupon includes products * we make sure the products are included on the cart */ - if ( coupon.products.length > 0 ) { - isProductValid = order.products.filter( product => { - return coupon.products.map( p => p.product_id ).includes( product.product_id ); + if (coupon.products.length > 0) { + isProductValid = order.products.filter(product => { + return coupon.products.map(p => p.product_id).includes(product.product_id); }).length > 0; - if ( ! isProductValid && unmatchedConditions.indexOf( coupon ) === -1 ) { - unmatchedConditions.push( coupon ); + if (!isProductValid && unmatchedConditions.indexOf(coupon) === -1) { + unmatchedConditions.push(coupon); } } @@ -858,33 +960,33 @@ export class POS { * by default we'll bypass * the product if it's not available */ - let isCategoryValid = true; + let isCategoryValid = true; /** * if the coupon includes products * we make sure the products are included on the cart */ - if ( coupon.categories.length > 0 ) { - isCategoryValid = order.products.filter( product => { - return coupon.categories.map( p => p.category_id ).includes( product.$original().category_id ); + if (coupon.categories.length > 0) { + isCategoryValid = order.products.filter(product => { + return coupon.categories.map(p => p.category_id).includes(product.$original().category_id); }).length > 0; - if ( ! isCategoryValid && unmatchedConditions.indexOf( coupon ) === -1 ) { - unmatchedConditions.push( coupon ); + if (!isCategoryValid && unmatchedConditions.indexOf(coupon) === -1) { + unmatchedConditions.push(coupon); } } }); - unmatchedConditions.forEach( coupon => { - nsSnackBar.error( - __( 'The coupons "%s" has been removed from the cart, as it\'s required conditions are no more meet.' ) - .replace( '%s', coupon.name ), - __( 'Okay' ), { - duration: 6000 - } + unmatchedConditions.forEach(coupon => { + nsSnackBar.error( + __('The coupons "%s" has been removed from the cart, as it\'s required conditions are no more meet.') + .replace('%s', coupon.name), + __('Okay'), { + duration: 6000 + } ).subscribe(); - this.removeCoupon( coupon ); + this.removeCoupon(coupon); }); } @@ -896,38 +998,38 @@ export class POS { */ this.checkCart(); - const products = this.products.getValue(); - let order = this.order.getValue(); - const productTotal = products - .map( product => product.total_price ); - - if ( productTotal.length > 0 ) { - order.subtotal = productTotal.reduce( ( b, a ) => b + a ); + const products = this.products.getValue(); + let order = this.order.getValue(); + const productTotal = products + .map(product => product.total_price); + + if (productTotal.length > 0) { + order.subtotal = productTotal.reduce((b, a) => b + a); } else { - order.subtotal = 0; + order.subtotal = 0; } /** * we'll compute here the value * of the coupons */ - const totalValue = order.coupons.map( customerCoupon => { - if ( customerCoupon.type === 'percentage_discount' ) { - customerCoupon.value = ( order.subtotal * customerCoupon.discount_value ) / 100; + const totalValue = order.coupons.map(customerCoupon => { + if (customerCoupon.type === 'percentage_discount') { + customerCoupon.value = (order.subtotal * customerCoupon.discount_value) / 100; return customerCoupon.value; - } - - customerCoupon.value = customerCoupon.discount_value; + } + + customerCoupon.value = customerCoupon.discount_value; return customerCoupon.value; }); - order.total_coupons = 0; - if ( totalValue.length > 0 ) { - order.total_coupons = totalValue.reduce( ( before, after ) => before + after ); + order.total_coupons = 0; + if (totalValue.length > 0) { + order.total_coupons = totalValue.reduce((before, after) => before + after); } - if ( order.discount_type === 'percentage' ) { - order.discount = ( order.discount_percentage * order.subtotal ) / 100; + if (order.discount_type === 'percentage') { + order.discount = (order.discount_percentage * order.subtotal) / 100; } /** @@ -935,9 +1037,9 @@ export class POS { * than the subtotal, the discount amount * will be set to the order.subtotal */ - if ( order.discount > order.subtotal && order.total_coupons === 0 ) { + if (order.discount > order.subtotal && order.total_coupons === 0) { order.discount = order.subtotal; - nsSnackBar.info( 'The discount has been set to the cart subtotal' ) + nsSnackBar.info('The discount has been set to the cart subtotal') .subscribe(); } @@ -945,51 +1047,61 @@ export class POS { * save actual change to ensure * all listener are up to date. */ - this.order.next( order ); + order.tax_value = 0; + + this.order.next(order); /** * will compute the taxes based on * the actual state of the order */ try { - const response = await this.computeTaxes(); - order = response[ 'data' ].order; - } catch( exception ) { - if ( exception !== false && exception.message !== undefined ) { - nsSnackBar.error( exception.message || __( 'An unexpected error has occured while fecthing taxes.' ), __( 'OKAY' ), { duration: 0 }).subscribe(); + const response = await this.computeTaxes(); + order = response['data'].order; + } catch (exception) { + if (exception !== false && exception.message !== undefined) { + nsSnackBar.error(exception.message || __('An unexpected error has occured while fecthing taxes.'), __('OKAY'), { duration: 0 }).subscribe(); } } - /** - * retreive all products taxes - * and sum the total. - */ - const totalTaxes = products.map( ( product: OrderProduct ) => product.tax_value ); + let inclusiveTaxCount = 0; - /** - * tax might be computed above the tax that currently - * applie to the items. - */ - order.tax_value = 0; - const vatType = this.options.getValue().ns_pos_vat; + const inclusiveTaxes = products.map( (product: OrderProduct) => { + if ( product.tax_type === 'inclusive' ) { + return product.tax_value; + } - if( [ 'products_vat', 'products_flat_vat', 'products_variable_vat' ].includes( vatType ) && totalTaxes.length > 0 ) { - order.tax_value += totalTaxes.reduce( ( b, a ) => b + a ); - } - - if ( [ 'flat_vat', 'variable_vat', 'products_variable_vat' ].includes( vatType ) && order.taxes && order.taxes.length > 0 ) { - order.tax_value += order.taxes - .map( tax => tax.tax_value ) - .reduce( ( before, after ) => before + after ); + return 0; + }); + + if ( inclusiveTaxes.length > 0 ) { + inclusiveTaxCount = inclusiveTaxes.reduce( ( b, a ) => b + a ); } - order.total = ( order.subtotal + ( order.shipping || 0 ) + order.tax_value ) - order.discount - order.total_coupons; - order.products = products; - order.total_products = products.length + const taxType = order.tax_type; + const posVat = this.options.getValue().ns_pos_vat; + + let tax_value = 0; + + if (['flat_vat', 'variable_vat'].includes(posVat) ) { + tax_value = order.tax_value; + } else if (['products_vat', 'products_flat_vat', 'products_variable_vat'].includes(posVat) ) { + tax_value = order.tax_value ; + } + + if ( taxType === 'exclusive' ) { + order.total = +( + ( order.subtotal + ( order.shipping ||0) + tax_value ) - order.discount - order.total_coupons + ).toFixed( ns.currency.ns_currency_precision ); + } else { + order.total = +( + ( order.subtotal + ( order.shipping ||0) ) - order.discount - order.total_coupons + ).toFixed( ns.currency.ns_currency_precision ); + } - this.order.next( order ); + this.order.next(order); - nsHooks.doAction( 'ns-cart-after-refreshed', order ); + nsHooks.doAction('ns-cart-after-refreshed', order); } /** @@ -998,13 +1110,13 @@ export class POS { * @param product_id * @param unit_id */ - getStockUsage( product_id: number, unit_quantity_id: number ) { - const stocks = this._products.getValue().filter( (product: OrderProduct ) => { + getStockUsage(product_id: number, unit_quantity_id: number) { + const stocks = this._products.getValue().filter((product: OrderProduct) => { return product.product_id === product_id && product.unit_quantity_id === unit_quantity_id; - }).map( product => product.quantity ); + }).map(product => product.quantity); - if ( stocks.length > 0 ) { - return stocks.reduce( ( b, a ) => b + a ); + if (stocks.length > 0) { + return stocks.reduce((b, a) => b + a); } return 0; @@ -1015,7 +1127,7 @@ export class POS { * cart. That will help to mutate the product before * it's added the cart. */ - addToCartQueue = [ + addToCartQueue = [ ProductUnitPromise, ProductQuantityPromise ]; @@ -1024,238 +1136,363 @@ export class POS { * Process the item to add it to the cart * @param product */ - async addToCart( product ) { - - console.log( product ); + async addToCart(product) { /** * This is where all the mutation made by the * queue promises are stored. */ - let productData = new Object; + let productData = new Object; /** * Let's combien the built product * with the data resolved by the promises */ - let cartProduct: OrderProduct = { - product_id : product.id, - name : product.name, - discount_type : 'percentage', - discount : 0, - discount_percentage : 0, - quantity : 0, - tax_group_id : product.tax_group_id, - tax_value : 0, // is computed automatically using $original() - unit_price : 0, - total_price : 0, - mode : 'normal', - $original : () => product + let cartProduct: OrderProduct = { + product_id: product.id || 0, + name: product.name, + discount_type: 'percentage', + discount: 0, + discount_percentage: 0, + quantity: product.quantity || 0, + tax_group_id: product.tax_group_id, + tax_type: product.tax_type || undefined, + tax_value: 0, // is computed automatically using $original() + unit_id: product.unit_id || 0, + unit_price: product.unit_price || 0, + unit_name: (product.unit_name || ''), + total_price: 0, + mode: 'normal', + $original: product.$original || (() => product), + $quantities: product.$quantities || undefined }; /** * will determin if the * script is processing the add queue */ - this._processingAddQueue = true; + this._processingAddQueue = true; - for( let index in this.addToCartQueue ) { - - /** - * the popup promise receives the product that - * is above to be added. Hopefully as it's passed by reference - * updating the product should mutate that once the queue is handled. - */ - try { - const promiseInstance = new this.addToCartQueue[ index ]( cartProduct ); - const result = (await promiseInstance.run( productData )); + if (cartProduct.product_id !== 0) { + for (let index in this.addToCartQueue) { /** - * We just mix both to make sure - * the mutated value overwrite previously defined values. + * the popup promise receives the product that + * is above to be added. Hopefully as it's passed by reference + * updating the product should mutate that once the queue is handled. */ - productData = { ...productData, ...result }; + try { + const promiseInstance = new this.addToCartQueue[index](cartProduct); + const result = (await promiseInstance.run(productData)); - } catch( brokenPromise ) { - /** - * if a popup resolve "false", - * that means for some reason the Promise has - * been broken, therefore we need to stop the queue. - */ - if ( brokenPromise === false ) { - this._processingAddQueue = false; - return false; + /** + * We just mix both to make sure + * the mutated value overwrite previously defined values. + */ + productData = { ...productData, ...result }; + + } catch (brokenPromise) { + /** + * if a popup resolve "false", + * that means for some reason the Promise has + * been broken, therefore we need to stop the queue. + */ + if (brokenPromise === false) { + this._processingAddQueue = false; + return false; + } } } } - + /** * end proceesing add queue */ - this._processingAddQueue = false; + this._processingAddQueue = false; /** * Let's combien the built product * with the data resolved by the promises */ - cartProduct = { ...cartProduct, ...productData }; - + cartProduct = { ...cartProduct, ...productData }; + /** * retreive product that * are currently stored */ - const products = this._products.getValue(); - + const products = this._products.getValue(); + /** * push the new product * at the front of the cart */ - products.unshift( cartProduct ); + products.unshift(cartProduct); /** * Once the product has been added to the cart * it's being computed */ - this.refreshProducts( products ); + this.refreshProducts(products); /** * dispatch event that the * product has been added. */ - this._products.next( products ); + this._products.next(products); + + /** + * when all this has been executed, we can play + * a sound if it's enabled + */ + const url = this.options.getValue().ns_pos_new_item_audio; + + if ( url.length > 0 ) { + ( new Audio( url ) ).play(); + } } - defineTypes( types ) { - this._types.next( types ); + defineTypes(types) { + this._types.next(types); } - removeProduct( product ) { - const products = this._products.getValue(); - const index = products.indexOf( product ); - products.splice( index, 1 ); - this._products.next( products ); + removeProduct(product) { + const products = this._products.getValue(); + const index = products.indexOf(product); + products.splice(index, 1); + this._products.next(products); } - updateProduct( product, data, index = null ) { - const products = this._products.getValue(); - index = index === null ? products.indexOf( product ) : index; + updateProduct(product, data, index = null) { + const products = this._products.getValue(); + index = index === null ? products.indexOf(product) : index; /** * to ensure Vue updates accordingly. */ - Vue.set( products, index, { ...product, ...data }); + Vue.set(products, index, { ...product, ...data }); - this.refreshProducts( products ); - this._products.next( products ); + this.refreshProducts(products); + this._products.next(products); } - refreshProducts( products ) { - products.forEach( product => { - this.computeProduct( product ); + refreshProducts(products) { + products.forEach(product => { + this.computeProduct(product); }); } - computeProduct( product: OrderProduct ) { + computeProductTax( product: OrderProduct ) { + console.log( product.mode ); + switch( product.mode ) { + case 'custom': + return this.computeCustomProductTax( product ); + case 'normal': + return this.computeNormalProductTax( product ); + case 'wholesale': + return this.computeWholesaleProductTax( product ); + default: + return product; + } + } + + private proceedProductTaxComputation( product, price ) { + const originalProduct = product.$original(); + const taxGroup = originalProduct.tax_group; + + let price_without_tax = 0; + let tax_value = 0; + let price_with_tax = 0; + + if ( taxGroup.taxes !== undefined ) { + + /** + * get summarize rates + */ + let summarizedRates = 0; + + if ( taxGroup.taxes.length > 0 ) { + summarizedRates = taxGroup.taxes + .map( r => r.rate ) + .reduce( ( b, a ) => b + a ); + } + + const taxed_price = this.getNetPrice( price, summarizedRates, originalProduct.tax_type ); + + switch( originalProduct.tax_type ) { + case 'inclusive': + price_without_tax = taxed_price; + price_with_tax = price; + break; + case 'exclusive': + price_without_tax = price; + price_with_tax = taxed_price; + break; + } + + const vatValues = taxGroup.taxes.map( tax => { + return this.getVatValue( price, tax.rate, originalProduct.tax_type ) + }); + + if ( vatValues.length > 0 ) { + tax_value = vatValues.reduce( ( b, a ) => b+a ); + } + } + + return { price_without_tax, tax_value, price_with_tax }; + } + + computeCustomProductTax( product: OrderProduct ) { + const originalProduct = product.$original(); + const quantities = product.$quantities(); + const result = this.proceedProductTaxComputation( product, quantities.custom_price_edit ); + + quantities.excl_tax_custom_price = result.price_without_tax; + quantities.incl_tax_custom_price = result.price_with_tax; + quantities.custom_price_tax = result.tax_value; + + product.$quantities = () => { + return quantities + } + + return product; + } + + computeNormalProductTax( product: OrderProduct ) { + const originalProduct = product.$original(); + const quantities = product.$quantities(); + const result = this.proceedProductTaxComputation( product, quantities.sale_price_edit ); + + quantities.excl_tax_sale_price = result.price_without_tax; + quantities.incl_tax_sale_price = result.price_with_tax; + quantities.sale_price_tax = result.tax_value; + + product.$quantities = () => { + return quantities + } + + return product; + } + + computeWholesaleProductTax( product: OrderProduct ) { + const originalProduct = product.$original(); + const quantities = product.$quantities(); + const result = this.proceedProductTaxComputation( product, quantities.wholesale_price_edit ); + + quantities.excl_tax_wholesale_price = result.price_without_tax; + quantities.incl_tax_wholesale_price = result.price_with_tax; + quantities.wholesale_price_tax = result.tax_value; + + product.$quantities = () => { + return quantities + } + + return product; + } + + computeProduct(product: OrderProduct) { /** * determining what is the * real sale price */ - if ( product.mode === 'normal' ) { - product.unit_price = product.$quantities().sale_price; - product.tax_value = product.$quantities().sale_price_tax * product.quantity; - } else if ( product.mode === 'wholesale' ) { - product.unit_price = product.$quantities().wholesale_price; - product.tax_value = product.$quantities().wholesale_price_tax * product.quantity; + if (product.mode === 'normal') { + product.unit_price = this.getSalePrice(product.$quantities(), product.$original()); + product.tax_value = product.$quantities().sale_price_tax * product.quantity; + } else if (product.mode === 'wholesale') { + product.unit_price = this.getWholesalePrice(product.$quantities(), product.$original()); + product.tax_value = product.$quantities().wholesale_price_tax * product.quantity; + } if (product.mode === 'custom') { + product.unit_price = this.getCustomPrice(product.$quantities(), product.$original()); + product.tax_value = product.$quantities().custom_price_tax * product.quantity; } /** * computing the discount when it's * based on a percentage */ - if ([ 'flat', 'percentage' ].includes( product.discount_type ) ) { - if ( product.discount_type === 'percentage' ) { - product.discount = ( ( product.unit_price * product.discount_percentage ) / 100 ) * product.quantity; + if (['flat', 'percentage'].includes(product.discount_type)) { + if (product.discount_type === 'percentage') { + product.discount = ((product.unit_price * product.discount_percentage) / 100) * product.quantity; } } - product.total_price = ( product.unit_price * product.quantity ) - product.discount; + product.total_price = (product.unit_price * product.quantity) - product.discount; - nsHooks.doAction( 'ns-after-product-computed', product ); + nsHooks.doAction('ns-after-product-computed', product); } - loadCustomer( id ) { - return nsHttpClient.get( `/api/nexopos/v4/customers/${id}` ); + loadCustomer(id) { + return nsHttpClient.get(`/api/nexopos/v4/customers/${id}`); } - defineSettings( settings ) { - this._settings.next( settings ); + defineSettings(settings) { + this._settings.next(settings); } - voidOrder( order ) { - if ( order.id !== undefined ) { - if ( [ 'hold' ].includes( order.payment_status ) ) { - Popup.show( NsConfirmPopup, { + voidOrder(order) { + if (order.id !== undefined) { + if (['hold'].includes(order.payment_status)) { + Popup.show(NsConfirmPopup, { title: 'Order Deletion', message: 'The current order will be deleted as no payment has been made so far.', - onAction: ( action ) => { - if ( action ) { - nsHttpClient.delete( `/api/nexopos/v4/orders/${order.id}` ) - .subscribe( ( result: any ) => { - nsSnackBar.success( result.message ).subscribe(); + onAction: (action) => { + if (action) { + nsHttpClient.delete(`/api/nexopos/v4/orders/${order.id}`) + .subscribe((result: any) => { + nsSnackBar.success(result.message).subscribe(); this.reset(); - }, ( error ) => { - return nsSnackBar.error( error.message ).subscribe(); + }, (error) => { + return nsSnackBar.error(error.message).subscribe(); }) } } }); } else { - Popup.show( NsPromptPopup, { + Popup.show(NsPromptPopup, { title: 'Void The Order', message: 'The current order will be void. This will cancel the transaction, but the order won\'t be deleted. Further details about the operation will be tracked on the report. Consider providing the reason of this operation.', - onAction: ( reason ) => { - if ( reason !== false ) { - nsHttpClient.post( `/api/nexopos/v4/orders/${order.id}/void`, { reason }) - .subscribe( ( result: any ) => { - nsSnackBar.success( result.message ).subscribe(); + onAction: (reason) => { + if (reason !== false) { + nsHttpClient.post(`/api/nexopos/v4/orders/${order.id}/void`, { reason }) + .subscribe((result: any) => { + nsSnackBar.success(result.message).subscribe(); this.reset(); - }, ( error ) => { - return nsSnackBar.error( error.message ).subscribe(); + }, (error) => { + return nsSnackBar.error(error.message).subscribe(); }) } } }); - } + } } else { - nsSnackBar.error( 'Unable to void an unpaid order.' ).subscribe(); + nsSnackBar.error('Unable to void an unpaid order.').subscribe(); } } - async triggerOrderTypeSelection( selectedType ) { - for( let i = 0; i < this.orderTypeQueue.length; i++ ) { + async triggerOrderTypeSelection(selectedType) { + for (let i = 0; i < this.orderTypeQueue.length; i++) { try { - const result = await this.orderTypeQueue[i].promise( selectedType ); - } catch( exception ) { - console.log( exception ); + const result = await this.orderTypeQueue[i].promise(selectedType); + } catch (exception) { + console.log(exception); } } } - set( key, value ) { - const settings = this.settings.getValue(); - settings[ key ] = value; - this.settings.next( settings ); + set(key, value) { + const settings = this.settings.getValue(); + settings[key] = value; + this.settings.next(settings); } - unset( key ) { - const settings = this.settings.getValue(); - delete settings[ key ]; - this.settings.next( settings ); + unset(key) { + const settings = this.settings.getValue(); + delete settings[key]; + this.settings.next(settings); } - get( key ) { - const settings = this.settings.getValue(); - return settings[ key ]; + get(key) { + const settings = this.settings.getValue(); + return settings[key]; } destroy() { @@ -1270,6 +1507,6 @@ export class POS { } } -( window as any ).POS = new POS; -( window as any ).POSClass = POS; -export const POSInit = ( window as any ).POS +(window as any).POS = new POS; +(window as any).POSClass = POS; +export const POSInit = (window as any).POS diff --git a/resources/views/common/dashboard-header.blade.php b/resources/views/common/dashboard-header.blade.php index c3ed0b537..d63d84db9 100755 --- a/resources/views/common/dashboard-header.blade.php +++ b/resources/views/common/dashboard-header.blade.php @@ -12,15 +12,9 @@
    -
    - - {{ sprintf( "%s", Auth::user()->username ) }} -
    -
    - {{ Auth::user()->username }} -
    -
    -
    +
      diff --git a/resources/views/pages/dashboard/orders/list.blade.php b/resources/views/pages/dashboard/orders/list.blade.php index bc749639b..32ce145a1 100755 --- a/resources/views/pages/dashboard/orders/list.blade.php +++ b/resources/views/pages/dashboard/orders/list.blade.php @@ -36,7 +36,7 @@ ]);?> const systemSettings = ns()->url( '/dashboard/orders/refund-receipt/{order_id}' ) + 'printing_url' => ns()->url( '/dashboard/orders/refund-receipt/{order_id}?autoprint=true&dash-visibility=disabled' ) ]);?> document.addEventListener( 'DOMContentLoaded', () => { diff --git a/resources/views/pages/dashboard/orders/templates/_refund_receipt.blade.php b/resources/views/pages/dashboard/orders/templates/_refund_receipt.blade.php index 7d0cb6885..be43c8185 100755 --- a/resources/views/pages/dashboard/orders/templates/_refund_receipt.blade.php +++ b/resources/views/pages/dashboard/orders/templates/_refund_receipt.blade.php @@ -1,6 +1,7 @@ @@ -28,18 +29,33 @@ - @foreach( Hook::filter( 'ns-refund-receipt-products', $refund->refunded_products ) as $product ) + refunded_products ); + ?> + @foreach( $products as $product ) {{ $product->product->name }} (x{{ $product->quantity }})
      {{ $product->unit->name }} - {{ ns()->currency->define( $product->total_price ) }} + {{ Currency::raw( $product->total_price - $product->tax_value ) }} @endforeach + @if ( $refund->tax_value > 0 ) + + {{ __( 'Sub Total' ) }} + {{ ns()->currency->define( + $products->map( fn( $product ) => Currency::raw( $product->total_price - $product->tax_value ) )->sum() + ) }} + + + {{ __( 'Tax' ) }} + {{ ns()->currency->define( $refund->tax_value ) }} + + @endif {{ __( 'Total' ) }} {{ ns()->currency->define( $refund->total ) }} diff --git a/routes/api/customers.php b/routes/api/customers.php index a0cd92b5d..af352712a 100755 --- a/routes/api/customers.php +++ b/routes/api/customers.php @@ -15,6 +15,8 @@ Route::post( 'customers', [ CustomersController::class, 'post' ]); Route::post( 'customers/search', [ CustomersController::class, 'searchCustomer' ]); Route::post( 'customers/coupons/{coupon}', [ CustomersController::class, 'loadCoupons' ]); +Route::post( 'customers/{customer}/crud/account-history', [ CustomersController::class, 'recordAccountHistory' ]); +Route::put( 'customers/{customer}/crud/{accountHistory}/account-history', [ CustomersController::class, 'updateAccountHistory' ]); Route::put( 'customers/{customer}', [ CustomersController::class, 'put' ]); Route::post( 'customers/{customer}/account-history', [ CustomersController::class, 'accountTransaction' ]) diff --git a/routes/web.php b/routes/web.php index def489343..abf3e12b2 100755 --- a/routes/web.php +++ b/routes/web.php @@ -1,12 +1,6 @@ name( ns()->routeName( 'ns.products-edit' ) ); Route::get( '/products/{product}/units', [ ProductsController::class, 'productUnits' ]); Route::get( '/products/{product}/history', [ ProductsController::class, 'productHistory' ]); Route::get( '/products/categories', [ CategoryController::class, 'listCategories' ]); Route::get( '/products/categories/create', [ CategoryController::class, 'createCategory' ]); -Route::get( '/products/categories/edit/{category}', [ CategoryController::class, 'editCategory' ]); \ No newline at end of file +Route::get( '/products/categories/edit/{category}', [ CategoryController::class, 'editCategory' ]); +Route::get( '/products/categories/compute-products/{category}', [ CategoryController::class, 'computeCategoryProducts' ]); \ No newline at end of file diff --git a/routes/web/providers.php b/routes/web/providers.php index 3378715e7..90cd92982 100644 --- a/routes/web/providers.php +++ b/routes/web/providers.php @@ -5,4 +5,5 @@ Route::get( '/providers', [ ProvidersController::class, 'listProviders' ]); Route::get( '/providers/create', [ ProvidersController::class, 'createProvider' ]); -Route::get( '/providers/edit/{provider}', [ ProvidersController::class, 'editProvider' ]); \ No newline at end of file +Route::get( '/providers/edit/{provider}', [ ProvidersController::class, 'editProvider' ]); +Route::get( '/providers/{provider}/procurements', [ ProvidersController::class, 'listProvidersProcurements' ]); \ No newline at end of file diff --git a/tests/Feature/CreateOrderTest.php b/tests/Feature/CreateOrderTest.php index a64ddc645..c5a6161b4 100755 --- a/tests/Feature/CreateOrderTest.php +++ b/tests/Feature/CreateOrderTest.php @@ -74,12 +74,22 @@ public function processOrders( $currentDate, $callback ) $products = $products->map( function( $product ) use ( $faker ) { $unitElement = $faker->randomElement( $product->unit_quantities ); - return array_merge([ - 'product_id' => $product->id, + + $data = array_merge([ + 'name' => 'Fees', 'quantity' => $faker->numberBetween(1,10), 'unit_price' => $unitElement->sale_price, - 'unit_quantity_id' => $unitElement->id, + 'tax_type' => 'inclusive', + 'tax_group_id' => 1, + 'unit_id' => $unitElement->unit_id, ], $this->customProductParams ); + + if ( $faker->randomElement([ false, true ]) ) { + $data[ 'product_id' ] = $product->id; + $data[ 'unit_quantity_id' ] = $unitElement->id; + } + + return $data; })->filter( function( $product ) { return $product[ 'quantity' ] > 0; }); diff --git a/tests/Feature/DeleteOrderTest.php b/tests/Feature/DeleteOrderTest.php index 9431840a8..d2eec86ba 100755 --- a/tests/Feature/DeleteOrderTest.php +++ b/tests/Feature/DeleteOrderTest.php @@ -33,7 +33,9 @@ public function test_example() $productService = app()->make( ProductService::class ); $order = Order::paid()->first(); - $products = $order->products->map( function( $product ) use ( $productService ) { + $products = $order->products + ->filter( fn( $product ) => $product->product_id > 0 ) + ->map( function( $product ) use ( $productService ) { $product->previous_quantity = $productService->getQuantity( $product->product_id, $product->unit_id ); return $product; }); diff --git a/tests/Feature/OrderRefundTest.php b/tests/Feature/OrderRefundTest.php index 86ee885f3..6375e3179 100755 --- a/tests/Feature/OrderRefundTest.php +++ b/tests/Feature/OrderRefundTest.php @@ -8,6 +8,7 @@ use App\Models\OrderProductRefund; use App\Models\Product; use App\Models\Role; +use App\Models\TaxGroup; use App\Services\CurrencyService; use Exception; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -51,6 +52,22 @@ public function testRefund() $subtotal = collect( $products )->map( fn( $product ) => $product[ 'unit_price' ] * $product[ 'quantity' ] )->sum(); $netTotal = $subtotal + $shippingFees; + + /** + * We'll add taxes to the order in + * case we have some tax group defined. + */ + $taxes = []; + $taxGroup = TaxGroup::first(); + if ( $taxGroup instanceof TaxGroup ) { + $taxes = $taxGroup->taxes->map( function( $tax ) { + return [ + 'tax_name' => $tax->name, + 'tax_id' => $tax->id, + 'rate' => $tax->rate + ]; + }); + } $response = $this->withSession( $this->app[ 'session' ]->all() ) ->json( 'POST', 'api/nexopos/v4/orders', [ @@ -58,6 +75,7 @@ public function testRefund() 'type' => [ 'identifier' => 'takeaway' ], 'discount_type' => 'percentage', 'discount_percentage' => $discountRate, + 'taxes' => $taxes, 'addresses' => [ 'shipping' => [ 'name' => 'First Name Delivery', @@ -89,7 +107,7 @@ public function testRefund() $responseData = json_decode( $response->getContent(), true ); $secondFetchCustomer = $firstFetchCustomer->fresh(); - + if ( $currency->define( $secondFetchCustomer->purchases_amount ) ->subtractBy( $responseData[ 'data' ][ 'order' ][ 'tendered' ] ) ->getRaw() != $currency->getRaw( $firstFetchCustomer->purchases_amount ) ) { @@ -148,8 +166,10 @@ public function testRefund() } $expense = $expenseCategory->cashFlowHistories()->orderBy( 'id', 'desc' )->first(); + + if ( ( float ) $expense->getRawOriginal( 'value' ) != ( float ) $responseData[ 'data' ][ 'orderRefund' ][ 'total' ] ) { - throw new Exception( __( 'The expense created after the refund doesn\'t match the product value.' ) ); + throw new Exception( __( 'The expense created after the refund doesn\'t match the order refund total.' ) ); } $response->assertJson([ diff --git a/tests/Feature/OrderWithInstalment.php b/tests/Feature/OrderWithInstalment.php index e0f914a1a..caae1eb26 100755 --- a/tests/Feature/OrderWithInstalment.php +++ b/tests/Feature/OrderWithInstalment.php @@ -76,13 +76,6 @@ public function testExample() // ( ( $subtotal + $shippingFees ) - $discountValue ) / 2 $instalmentPayment = ns()->currency->getRaw( ( ( $subtotal + $shippingFees ) - $discountValue ) / 2 ); - dump( 'subtotal => ' . $subtotal ); - dump( 'discount => ' . $discountValue ); - dump( 'shippingFees => ' . $shippingFees ); - dump( 'total => ' . $total ); - dump( 'installment => ' . ns()->currency->getRaw( ( ( $subtotal + $shippingFees ) - $discountValue ) / 2 ) ); - dump( 'payment =>' . $paymentAmount ); - $response = $this->withSession( $this->app[ 'session' ]->all() ) ->json( 'POST', 'api/nexopos/v4/orders', [ 'customer_id' => $customer->id, diff --git a/tests/Feature/TestRewardSystem.php b/tests/Feature/TestRewardSystem.php new file mode 100644 index 000000000..a7a57a005 --- /dev/null +++ b/tests/Feature/TestRewardSystem.php @@ -0,0 +1,95 @@ +users->first(), + ['*'] + ); + + $reward = RewardSystem::with( 'rules' )->first(); + $rules = $reward->rules->sortBy( 'reward' )->reverse(); + $timesForOrders = ( $reward->target / $rules->first()->reward ); + + $product = Product::withStockEnabled()->get()->random(); + $unit = $product->unit_quantities()->where( 'quantity', '>', 0 )->first(); + $subtotal = $unit->sale_price * 5; + $shippingFees = 0; + + $customer = Customer::first(); + + if ( ! $customer->group->reward instanceof RewardSystem ) { + $customer->group->reward_system_id = $reward->id; + $customer->group->save(); + } + + $previousCoupons = $customer->coupons()->count(); + + for( $i = 0; $i < $timesForOrders; $i++ ) { + $response = $this->withSession( $this->app[ 'session' ]->all() ) + ->json( 'POST', 'api/nexopos/v4/orders', [ + 'customer_id' => $customer->id, + 'type' => [ 'identifier' => 'takeaway' ], + // 'discount_type' => 'percentage', + // 'discount_percentage' => 2.5, + 'addresses' => [ + 'shipping' => [ + 'name' => 'First Name Delivery', + 'surname' => 'Surname', + 'country' => 'Cameroon', + ], + 'billing' => [ + 'name' => 'EBENE Voundi', + 'surname' => 'Antony Hervé', + 'country' => 'United State Seattle', + ] + ], + 'subtotal' => $subtotal, + 'shipping' => $shippingFees, + 'products' => [ + [ + 'product_id' => $product->id, + 'quantity' => 1, + 'unit_price' => $this->faker->numberBetween( $rules->first()->from, $rules->first()->to ), + 'unit_quantity_id' => $unit->id, + 'custom' => 'retail' + ], + ], + 'payments' => [ + [ + 'identifier' => 'paypal-payment', + 'value' => ns()->currency->define( $subtotal ) + ->additionateBy( $shippingFees ) + ->getRaw() + ] + ] + ]); + + $response->assertStatus( 200 ); + } + + $currentCoupons = $customer->coupons()->count(); + + $this->assertTrue( $previousCoupons < $currentCoupons, __( 'The coupons count has\'nt changed.' ) ); + } +}