Compare commits

...

56 Commits

Author SHA1 Message Date
b414764552 Update readme.md 2021-12-27 20:05:56 +05:30
d69b7fd491 Allow invoices to be sent/resent from the invoice view page (#623)
* Allow invoices to be sent/resent from the invoice view page
2021-12-17 20:40:41 +05:30
b770e6277f remove currency tests 2021-12-10 18:04:42 +05:30
67c70d7a11 Merge branch 'master' of https://github.com/bytefury/crater 2021-12-10 18:00:11 +05:30
3a1f5a417f new build 506 2021-12-10 17:48:34 +05:30
f3b527b6b7 fix custom field selection issue 2021-12-10 17:39:59 +05:30
3582ed0f1b Merge branch 'v5-issues-fix' into 'master'
fix pdf issue & payment update issue

See merge request mohit.panjvani/crater-web!1335
2021-12-10 12:00:29 +00:00
0439effa74 Create CODE_OF_CONDUCT.md 2021-12-09 21:32:37 +05:30
725afa9f65 fix pdf issue & payment update issue 2021-12-09 18:06:25 +05:30
8b07632fd7 Merge pull request #631 from davwheat/patch-1
fix: make min item quantity 0 instead of 1
2021-12-09 14:15:28 +05:30
87b6f527a9 Merge pull request #637 from azaricstefan/patch-1
Typo error
2021-12-09 14:15:17 +05:30
24f1fe8685 remove unused imports 2021-12-09 13:42:58 +05:30
afa79e3e8c fix test 2021-12-09 13:40:13 +05:30
b7d2d6f470 new build 405 2021-12-09 12:42:46 +05:30
08c2fc4692 Merge branch 'master' 2021-12-09 12:41:25 +05:30
f4e3688216 fix payment edit issue when invoice selected from url 2021-12-09 12:41:17 +05:30
3af84ad208 Merge branch 'migration-issue' into 'master'
drop unique constraint from customers

See merge request mohit.panjvani/crater-web!1333
2021-12-09 07:10:51 +00:00
562dbfa803 drop unique constraint from customers 2021-12-09 12:30:29 +05:30
769e16cfca Merge branch 'migration-issue' into 'master'
add calculate base expenses migration

See merge request mohit.panjvani/crater-web!1332
2021-12-09 06:24:03 +00:00
f2790e8cf0 add calculate base expenses migration 2021-12-09 11:32:41 +05:30
e7f7b283ec Merge branch 'qty-fix' into 'master'
Qty fix

See merge request mohit.panjvani/crater-web!1331
2021-12-08 13:29:46 +00:00
83c6576033 fix: allow 0 value for quantity 2021-12-08 18:53:26 +05:30
5be3389451 Merge branch 'migration-issue' into 'master'
solve migration issue

See merge request mohit.panjvani/crater-web!1330
2021-12-08 13:10:00 +00:00
2b05ca44bf solve 400 migration 2021-12-08 18:14:37 +05:30
0bbc79b899 solve migration issue 2021-12-08 18:10:34 +05:30
7be4e98511 Merge branch 'migration-issue' into 'master'
solve migration issue

See merge request mohit.panjvani/crater-web!1329
2021-12-08 12:38:46 +00:00
f1cadadfec solve migration issue 2021-12-08 18:06:59 +05:30
faef583c06 Merge branch 'migration-issue' into 'master'
solve migration issue

See merge request mohit.panjvani/crater-web!1327
2021-12-08 12:34:24 +00:00
67d4f5101d Merge branch 'v5-fix-customField-issue' into 'master'
fix expense custom field issue

See merge request mohit.panjvani/crater-web!1328
2021-12-08 12:34:01 +00:00
79208fe596 fix expense custom field issue 2021-12-08 17:40:42 +05:30
ca87133c39 solve migration issue 2021-12-08 17:14:02 +05:30
68db11becf Merge branch 'fix-master-issues-v5' into 'master'
make user_id nullable in payments

See merge request mohit.panjvani/crater-web!1326
2021-12-08 11:08:14 +00:00
57d6ca50e6 make user_id nullable in payments 2021-12-08 16:30:43 +05:30
848bbb5953 fix: quantity min value 2021-12-08 16:27:18 +05:30
5ed62ac1dd Merge branch 'fix-master-issues-v5' into 'master'
fix: profit loss report issue

See merge request mohit.panjvani/crater-web!1325
2021-12-08 10:41:36 +00:00
77ce1d7431 solve migration issue 2021-12-08 15:39:14 +05:30
102a3a809d solve migration issue 2021-12-08 15:06:29 +05:30
f139912c56 solve migration issue 2021-12-08 12:47:42 +05:30
c0c5f42ba1 fix: profit loss report issue 2021-12-08 12:24:25 +05:30
02d803803c Typo error
Fixing a typo in name of schema.
2021-12-08 00:08:38 +01:00
e8b4339237 fix loading indicator and send invoice status error 2021-12-07 17:28:49 +05:30
15cef7c970 Merge branch 'fix-tests-5.0.2' into 'master'
fix-tests-5.0.2

See merge request mohit.panjvani/crater-web!1315
2021-12-07 11:53:56 +00:00
fe66b8bdb8 fix-tests-5.0.2 2021-12-07 11:53:56 +00:00
8001b2ede9 fix: make min quantity 0 instead of 1 2021-12-06 22:29:56 +00:00
5a7b515a03 Merge branch 'master' 2021-12-06 20:10:06 +05:30
b1cc524d3c new update 2021-12-06 18:42:54 +05:30
316a6585b3 new build 504 2021-12-06 18:40:17 +05:30
c14f58c7f1 Merge branch 'custom-field-fixes' into 'master' 2021-12-06 12:51:31 +00:00
603bf637a7 fix custom field issue and report issues 2021-12-06 12:51:31 +00:00
7b6a88ad4e Merge branch 'latest-fix-recurring-invoice' into 'master'
fix recurring invoice starts at condition

See merge request mohit.panjvani/crater-web!1319
2021-12-06 12:06:51 +00:00
7cf099f00e Merge branch 'rec-invoice' into 'master'
fix recurring invoice view page table

See merge request mohit.panjvani/crater-web!1321
2021-12-06 12:05:21 +00:00
8026c205cc solve recurring invoice starts_at condition 2021-12-06 16:13:20 +05:30
2b0477d576 fix recurring invoice view page table 2021-12-06 16:11:24 +05:30
74830e49f1 fix cronjob invoice generation issue with hashids 2021-12-06 14:15:16 +05:30
7e683aa5cc Create Security.MD 2021-12-06 14:04:54 +05:30
b543f6d389 fix recurring invoice starts at condition 2021-12-06 12:47:53 +05:30
123 changed files with 691 additions and 575 deletions

128
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
info@craterapp.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

5
SECURITY.md Normal file
View File

@ -0,0 +1,5 @@
# Security Policy
## Reporting a Vulnerability
Please email security@craterapp.com to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again.

View File

@ -47,7 +47,7 @@ class CustomerSalesReportController extends Controller
foreach ($customers as $customer) {
$customerTotalAmount = 0;
foreach ($customer->invoices as $invoice) {
$customerTotalAmount += $invoice->total;
$customerTotalAmount += $invoice->base_total;
}
$customer->totalAmount = $customerTotalAmount;
$totalAmount += $customerTotalAmount;

View File

@ -7,7 +7,7 @@ use Crater\Http\Controllers\Controller;
use Crater\Models\Company;
use Crater\Models\CompanySetting;
use Crater\Models\Expense;
use Crater\Models\Invoice;
use Crater\Models\Payment;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use PDF;
@ -31,10 +31,9 @@ class ProfitLossReportController extends Controller
App::setLocale($locale);
$invoicesAmount = Invoice::whereCompanyId($company->id)
$paymentsAmount = Payment::whereCompanyId($company->id)
->applyFilters($request->only(['from_date', 'to_date']))
->wherePaidStatus(Invoice::STATUS_PAID)
->sum('total');
->sum('base_amount');
$expenseCategories = Expense::with('category')
->whereCompanyId($company->id)
@ -68,7 +67,7 @@ class ProfitLossReportController extends Controller
view()->share([
'company' => $company,
'income' => $invoicesAmount,
'income' => $paymentsAmount,
'expenseCategories' => $expenseCategories,
'totalExpense' => $totalAmount,
'colorSettings' => $colorSettings,

View File

@ -147,7 +147,7 @@ class Company extends Model implements HasMedia
public function users()
{
return $this->belongsToMany(User::class, 'user_company', 'user_id', 'company_id');
return $this->belongsToMany(User::class, 'user_company', 'company_id', 'user_id');
}
public function setupRoles()

View File

@ -226,7 +226,7 @@ class Expense extends Model implements HasMedia
$query->select(
DB::raw('
count(*) as expenses_count,
sum(amount) as total_amount,
sum(base_amount) as total_amount,
expense_category_id')
)
->groupBy('expense_category_id');
@ -246,8 +246,8 @@ class Expense extends Model implements HasMedia
$expense->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts');
}
if ($request->customFields && empty($request->customFields)) {
$expense->addCustomFields($request->customFields);
if ($request->customFields) {
$expense->addCustomFields(json_decode($request->customFields));
}
return $expense;
@ -270,8 +270,8 @@ class Expense extends Model implements HasMedia
$this->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts');
}
if ($request->customFields && empty($request->customFields)) {
$this->updateCustomFields($request->customFields);
if ($request->customFields) {
$this->updateCustomFields(json_decode($request->customFields));
}
return true;

View File

@ -460,14 +460,14 @@ class Invoice extends Model implements HasMedia
{
$data = $this->sendInvoiceData($data);
\Mail::to($data['to'])->send(new SendInvoiceMail($data));
if ($this->status == Invoice::STATUS_DRAFT) {
$this->status = Invoice::STATUS_SENT;
$this->sent = true;
$this->save();
}
\Mail::to($data['to'])->send(new SendInvoiceMail($data));
return [
'success' => true,
'type' => 'send',

View File

@ -75,7 +75,7 @@ class InvoiceItem extends Model
public function scopeItemAttributes($query)
{
$query->select(
DB::raw('sum(quantity) as total_quantity, sum(total) as total_amount, invoice_items.name')
DB::raw('sum(quantity) as total_quantity, sum(base_total) as total_amount, invoice_items.name')
)->groupBy('invoice_items.name');
}
}

View File

@ -195,7 +195,7 @@ class Payment extends Model implements HasMedia
$invoice->addInvoicePayment($this->amount);
}
if ($this->invoice_id === $request->invoice_id && $request->amount !== $this->amount) {
if ($this->invoice_id && $this->invoice_id === $request->invoice_id && $request->amount !== $this->amount) {
$invoice = Invoice::find($this->invoice_id);
$invoice->addInvoicePayment($this->amount);
$invoice->subtractInvoicePayment($request->amount);
@ -312,6 +312,12 @@ class Payment extends Model implements HasMedia
$query->whereCustomer($filters->get('customer_id'));
}
if ($filters->get('from_date') && $filters->get('to_date')) {
$start = Carbon::createFromFormat('Y-m-d', $filters->get('from_date'));
$end = Carbon::createFromFormat('Y-m-d', $filters->get('to_date'));
$query->paymentsBetween($start, $end);
}
if ($filters->get('orderByField') || $filters->get('orderBy')) {
$field = $filters->get('orderByField') ? $filters->get('orderByField') : 'sequence_number';
$orderBy = $filters->get('orderBy') ? $filters->get('orderBy') : 'desc';
@ -319,6 +325,14 @@ class Payment extends Model implements HasMedia
}
}
public function scopePaymentsBetween($query, $start, $end)
{
return $query->whereBetween(
'payments.payment_date',
[$start->format('Y-m-d'), $end->format('Y-m-d')]
);
}
public function scopeWhereOrder($query, $orderByField, $orderBy)
{
$query->orderBy($orderByField, $orderBy);

View File

@ -20,6 +20,10 @@ class RecurringInvoice extends Model
'id',
];
protected $dates = [
'starts_at'
];
public const NONE = 'NONE';
public const COUNT = 'COUNT';
public const DATE = 'DATE';
@ -259,6 +263,10 @@ class RecurringInvoice extends Model
public function generateInvoice()
{
if (Carbon::now()->lessThan($this->starts_at)) {
return;
}
if ($this->limit_by == 'DATE') {
$startDate = Carbon::today()->format('Y-m-d');
@ -361,6 +369,7 @@ class RecurringInvoice extends Model
'customer' => $invoice->customer->toArray(),
'company' => Company::find($invoice->company_id)
];
$invoice->send($data);
}
}

View File

@ -68,7 +68,7 @@ class Tax extends Model
public function scopeTaxAttributes($query)
{
$query->select(
DB::raw('sum(amount) as total_tax_amount, tax_type_id')
DB::raw('sum(base_amount) as total_tax_amount, tax_type_id')
)->groupBy('tax_type_id');
}

View File

@ -9,8 +9,6 @@ use Crater\Traits\HasCustomFieldsTrait;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Schema;
use Laravel\Sanctum\HasApiTokens;
use Silber\Bouncer\BouncerFacade;
@ -266,87 +264,6 @@ class User extends Authenticatable implements HasMedia
return 0;
}
public static function createCustomer($request)
{
$data = $request->only([
'name',
'email',
'phone',
'company_name',
'contact_name',
'website',
'enable_portal',
'invoice_prefix',
'estimate_prefix',
'payment_prefix'
]);
$data['creator_id'] = Auth::id();
$data['company_id'] = $request->header('company');
$data['role'] = 'customer';
$data['password'] = Hash::make($request->password);
$customer = User::create($data);
$customer['currency_id'] = $request->currency_id;
$customer->save();
if ($request->addresses) {
foreach ($request->addresses as $address) {
$customer->addresses()->create($address);
}
}
$customFields = $request->customFields;
if ($customFields) {
$customer->addCustomFields($customFields);
}
$customer = User::with('billingAddress', 'shippingAddress', 'fields')->find($customer->id);
return $customer;
}
public static function updateCustomer($request, $customer)
{
$data = $request->only([
'name',
'currency_id',
'email',
'phone',
'company_name',
'contact_name',
'website',
'enable_portal',
'invoice_prefix',
'estimate_prefix',
'payment_prefix'
]);
$data['role'] = 'customer';
if ($request->has('password')) {
$customer->password = Hash::make($request->password);
}
$customer->update($data);
$customer->addresses()->delete();
if ($request->addresses) {
foreach ($request->addresses as $address) {
$customer->addresses()->create($address);
}
}
$customFields = $request->customFields;
if ($customFields) {
$customer->updateCustomFields($customFields);
}
$customer = User::with('billingAddress', 'shippingAddress', 'fields')->find($customer->id);
return $customer;
}
public function setSettings($settings)
{
foreach ($settings as $key => $value) {

View File

@ -1,5 +1,6 @@
<?php
use Crater\Models\Address;
use Crater\Models\CompanySetting;
use Crater\Models\Estimate;
use Crater\Models\Expense;
@ -33,16 +34,12 @@ class UpdateCraterVersion400 extends Migration
]);
// Update language
$user->setSettings(['language' => CompanySetting::getSetting('language', $user->companies()->first()->id)]);
$user->setSettings(['language' => CompanySetting::getSetting('language', $user->company_id)]);
// Update user's addresses
if ($user->addresses()->exists()) {
foreach ($user->addresses as $address) {
$address->company_id = $user->companies()->first()->id;
$address->user_id = null;
$address->save();
}
}
Address::where('user_id', $user->id)->update([
'company_id' => $user->company_id,
'user_id' => null
]);
// Update company settings
$this->updateCompanySettings($user);
@ -131,6 +128,6 @@ class UpdateCraterVersion400 extends Migration
'payment_from_customer_address_format' => $paymentFromCustomerAddress,
];
CompanySetting::setSettings($settings, $user->companies()->first()->id);
CompanySetting::setSettings($settings, $user->company_id);
}
}

View File

@ -15,24 +15,24 @@ class CreateBouncerTables extends Migration
*/
public function up()
{
if (Schema::hasTable('roles')) {
Schema::drop(Models::table('roles'));
}
if (Schema::hasTable('permissions')) {
Schema::drop(Models::table('permissions'));
}
if (Schema::hasTable('model_has_permissions')) {
Schema::drop(Models::table('model_has_permissions'));
if (Schema::hasTable('role_has_permissions')) {
Schema::drop('role_has_permissions');
}
if (Schema::hasTable('model_has_roles')) {
Schema::drop(Models::table('model_has_roles'));
Schema::drop('model_has_roles');
}
if (Schema::hasTable('role_has_permissions')) {
Schema::drop(Models::table('role_has_permissions'));
if (Schema::hasTable('model_has_permissions')) {
Schema::drop('model_has_permissions');
}
if (Schema::hasTable('permissions')) {
Schema::drop('permissions');
}
if (Schema::hasTable('roles')) {
Schema::drop('roles');
}
Schema::create(Models::table('abilities'), function (Blueprint $table) {

View File

@ -13,10 +13,13 @@ class AddCustomerIdToPaymentsTable extends Migration
*/
public function up()
{
Schema::disableForeignKeyConstraints();
Schema::table('payments', function (Blueprint $table) {
$table->unsignedInteger('user_id')->nullable()->change();
$table->unsignedBigInteger('customer_id')->nullable();
$table->foreign('customer_id')->references('id')->on('customers');
});
Schema::enableForeignKeyConstraints();
}
/**

View File

@ -1,7 +1,13 @@
<?php
use Crater\Models\Address;
use Crater\Models\Customer;
use Crater\Models\CustomField;
use Crater\Models\CustomFieldValue;
use Crater\Models\Estimate;
use Crater\Models\Expense;
use Crater\Models\Invoice;
use Crater\Models\Payment;
use Crater\Models\User;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
@ -26,68 +32,46 @@ class UpdateCustomerIdInAllTables extends Migration
foreach ($users as $user) {
$newCustomer = Customer::create($user->toArray());
$customFields = CustomField::where('model_type', 'User')->get();
Address::where('user_id', $user->id)->update([
'customer_id' => $newCustomer->id,
'user_id' => null
]);
if ($customFields) {
$user->fields->map(function ($customFieldValue) use ($newCustomer) {
$customFieldValue->custom_field_valuable_type = "Crater\Models\Customer";
$customFieldValue->custom_field_valuable_id = $newCustomer->id;
$customFieldValue->save();
Expense::where('user_id', $user->id)->update([
'customer_id' => $newCustomer->id,
'user_id' => null
]);
$customField = $customFieldValue->customField;
$customField->model_type = "Customer";
$customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_'));
$customField->save();
});
}
Estimate::where('user_id', $user->id)->update([
'customer_id' => $newCustomer->id,
'user_id' => null
]);
if ($user->addresses()->exists()) {
$user->addresses->map(function ($address) use ($newCustomer) {
if ($address) {
$address->customer_id = $newCustomer->id;
$address->user_id = null;
$address->save();
}
});
}
Invoice::where('user_id', $user->id)->update([
'customer_id' => $newCustomer->id,
'user_id' => null
]);
if ($user->expenses()->exists()) {
$user->expenses->map(function ($expense) use ($newCustomer) {
if ($expense) {
$expense->customer_id = $newCustomer->id;
$expense->user_id = null;
$expense->save();
}
});
}
Payment::where('user_id', $user->id)->update([
'customer_id' => $newCustomer->id,
'user_id' => null
]);
if ($user->estimates()->exists()) {
$user->estimates->map(function ($estimate) use ($newCustomer) {
if ($estimate) {
$estimate->customer_id = $newCustomer->id;
$estimate->user_id = null;
$estimate->save();
}
});
}
CustomFieldValue::where('custom_field_valuable_id', $user->id)
->where('custom_field_valuable_type', 'Crater\Models\User')
->update([
'custom_field_valuable_type' => 'Crater\Models\Customer',
'custom_field_valuable_id' => $newCustomer->id
]);
}
if ($user->invoices()->exists()) {
$user->invoices->map(function ($invoice) use ($newCustomer) {
if ($invoice) {
$invoice->customer_id = $newCustomer->id;
$invoice->user_id = null;
$invoice->save();
}
});
}
$customFields = CustomField::where('model_type', 'User')->get();
if ($user->payments()->exists()) {
$user->payments->map(function ($payment) use ($newCustomer) {
if ($payment) {
$payment->customer_id = $newCustomer->id;
$payment->save();
}
});
if ($customFields) {
foreach ($customFields as $customField) {
$customField->model_type = "Customer";
$customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_'));
$customField->save();
}
}
}

View File

@ -30,6 +30,6 @@ class CreateUserCompanyTable extends Migration
*/
public function down()
{
Schema::dropIfExists('company_user');
Schema::dropIfExists('user_company');
}
}

View File

@ -0,0 +1,27 @@
<?php
use Crater\Models\Setting;
use Illuminate\Database\Migrations\Migration;
class UpdateCraterVersion504 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Setting::setSetting('version', '5.0.4');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@ -0,0 +1,45 @@
<?php
use Crater\Models\CompanySetting;
use Crater\Models\Expense;
use Crater\Models\User;
use Illuminate\Database\Migrations\Migration;
class CalculateBaseValuesForExpenses extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$user = User::where('role', 'super admin')->first();
if ($user) {
$companyId = $user->companies()->first()->id;
$currency_id = CompanySetting::getSetting('currency', $companyId);
$expenses = Expense::where('company_id', $companyId)->where('currency_id', null)->get();
if ($expenses) {
$expenses->map(function ($expense) use ($currency_id) {
$expense->update([
'currency_id' => $currency_id,
'exchange_rate' => 1,
'base_amount' => $expense->amount,
]);
});
}
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@ -0,0 +1,27 @@
<?php
use Crater\Models\Setting;
use Illuminate\Database\Migrations\Migration;
class UpdateCraterVersion505 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Setting::setSetting('version', '5.0.5');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class DropUniqueEmailOnCustomersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('customers', function (Blueprint $table) {
$table->dropUnique(['email']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@ -0,0 +1,27 @@
<?php
use Crater\Models\Setting;
use Illuminate\Database\Migrations\Migration;
class UpdateCreaterVersion506 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Setting::setSetting('version', '5.0.6');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@ -1,6 +1,9 @@
FROM php:7.4-fpm-alpine
RUN docker-php-ext-install pdo pdo_mysql
RUN apk add --no-cache \
php7-bcmath
RUN docker-php-ext-install pdo pdo_mysql bcmath
COPY docker-compose/crontab /etc/crontabs/root

View File

@ -1 +1 @@
var h=Object.defineProperty,z=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var E=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var b=(u,s,i)=>s in u?h(u,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):u[s]=i,U=(u,s)=>{for(var i in s||(s={}))E.call(s,i)&&b(u,i,s[i]);if(V)for(var i of V(s))P.call(s,i)&&b(u,i,s[i]);return u},S=(u,s)=>z(u,L(s));import{g as Q,i as B,k as I,m as v,n as y,a2 as T,p as H,aQ as J,j as K,q as O,r as m,o as C,c as W,b as r,w as d,y as e,a0 as X,s as Y,z as Z,A as x,v as ee,x as ae,B as se,t as te}from"./vendor.e9042f2c.js";import{d as ne,m as oe,c as re}from"./main.9d655092.js";const le=["onSubmit"],ie=te("span",null,null,-1),pe={setup(u){const s=ne(),i=oe(),q=re(),{t:g}=Q();let p=B(!1),w=B(null),f=B([]);s.currentUser.avatar&&f.value.push({image:s.currentUser.avatar});const F=I(()=>({name:{required:v.withMessage(g("validation.required"),y)},email:{required:v.withMessage(g("validation.required"),y),email:v.withMessage(g("validation.email_incorrect"),T)},password:{minLength:v.withMessage(g("validation.password_length",{count:8}),H(8))},confirm_password:{sameAsPassword:v.withMessage(g("validation.password_incorrect"),J(t.password))}})),t=K({name:s.currentUser.name,email:s.currentUser.email,language:s.currentUserSettings.language||q.selectedCompanySettings.language,password:"",confirm_password:""}),o=O(F,I(()=>t));function M(l,a){w.value=a}function k(){w.value=null}async function G(){if(o.value.$touch(),o.value.$invalid)return!0;p.value=!0;let l={name:t.name,email:t.email};try{if(t.password!=null&&t.password!==void 0&&t.password!==""&&(l=S(U({},l),{password:t.password})),s.currentUserSettings.language!==t.language&&await s.updateUserSettings({settings:{language:t.language}}),(await s.updateCurrentUser(l)).data.data){if(p.value=!1,w.value){let $=new FormData;$.append("admin_avatar",w.value),await s.uploadAvatar($)}t.password="",t.confirm_password=""}}catch{return p.value=!1,!0}}return(l,a)=>{const $=m("BaseFileUploader"),c=m("BaseInputGroup"),_=m("BaseInput"),N=m("BaseMultiselect"),A=m("BaseInputGrid"),D=m("BaseIcon"),j=m("BaseButton"),R=m("BaseSettingCard");return C(),W("form",{class:"relative",onSubmit:se(G,["prevent"])},[r(R,{title:l.$t("settings.account_settings.account_settings"),description:l.$t("settings.account_settings.section_description")},{default:d(()=>[r(A,null,{default:d(()=>[r(c,{label:l.$tc("settings.account_settings.profile_picture")},{default:d(()=>[r($,{modelValue:e(f),"onUpdate:modelValue":a[0]||(a[0]=n=>X(f)?f.value=n:f=n),avatar:!0,accept:"image/*",onChange:M,onRemove:k},null,8,["modelValue"])]),_:1},8,["label"]),ie,r(c,{label:l.$tc("settings.account_settings.name"),error:e(o).name.$error&&e(o).name.$errors[0].$message,required:""},{default:d(()=>[r(_,{modelValue:e(t).name,"onUpdate:modelValue":a[1]||(a[1]=n=>e(t).name=n),invalid:e(o).name.$error,onInput:a[2]||(a[2]=n=>e(o).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(c,{label:l.$tc("settings.account_settings.email"),error:e(o).email.$error&&e(o).email.$errors[0].$message,required:""},{default:d(()=>[r(_,{modelValue:e(t).email,"onUpdate:modelValue":a[3]||(a[3]=n=>e(t).email=n),invalid:e(o).email.$error,onInput:a[4]||(a[4]=n=>e(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(c,{error:e(o).password.$error&&e(o).password.$errors[0].$message,label:l.$tc("settings.account_settings.password")},{default:d(()=>[r(_,{modelValue:e(t).password,"onUpdate:modelValue":a[5]||(a[5]=n=>e(t).password=n),type:"password",onInput:a[6]||(a[6]=n=>e(o).password.$touch())},null,8,["modelValue"])]),_:1},8,["error","label"]),r(c,{label:l.$tc("settings.account_settings.confirm_password"),error:e(o).confirm_password.$error&&e(o).confirm_password.$errors[0].$message},{default:d(()=>[r(_,{modelValue:e(t).confirm_password,"onUpdate:modelValue":a[7]||(a[7]=n=>e(t).confirm_password=n),type:"password",onInput:a[8]||(a[8]=n=>e(o).confirm_password.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"]),r(c,{label:l.$tc("settings.language")},{default:d(()=>[r(N,{modelValue:e(t).language,"onUpdate:modelValue":a[9]||(a[9]=n=>e(t).language=n),options:e(i).config.languages,label:"name","value-prop":"code","track-by":"code","open-direction":"top"},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),r(j,{loading:e(p),disabled:e(p),class:"mt-6"},{left:d(n=>[e(p)?x("",!0):(C(),Y(D,{key:0,name:"SaveIcon",class:Z(n.class)},null,8,["class"]))]),default:d(()=>[ee(" "+ae(l.$tc("settings.company_info.save")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title","description"])],40,le)}}};export{pe as default};
var h=Object.defineProperty,z=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var E=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var b=(u,s,i)=>s in u?h(u,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):u[s]=i,U=(u,s)=>{for(var i in s||(s={}))E.call(s,i)&&b(u,i,s[i]);if(V)for(var i of V(s))P.call(s,i)&&b(u,i,s[i]);return u},S=(u,s)=>z(u,L(s));import{g as Q,i as B,k as I,m as v,n as y,a2 as T,p as H,aQ as J,j as K,q as O,r as m,o as C,c as W,b as r,w as d,y as e,a0 as X,s as Y,z as Z,A as x,v as ee,x as ae,B as se,t as te}from"./vendor.e9042f2c.js";import{d as ne,m as oe,c as re}from"./main.f55cd568.js";const le=["onSubmit"],ie=te("span",null,null,-1),pe={setup(u){const s=ne(),i=oe(),q=re(),{t:g}=Q();let p=B(!1),w=B(null),f=B([]);s.currentUser.avatar&&f.value.push({image:s.currentUser.avatar});const F=I(()=>({name:{required:v.withMessage(g("validation.required"),y)},email:{required:v.withMessage(g("validation.required"),y),email:v.withMessage(g("validation.email_incorrect"),T)},password:{minLength:v.withMessage(g("validation.password_length",{count:8}),H(8))},confirm_password:{sameAsPassword:v.withMessage(g("validation.password_incorrect"),J(t.password))}})),t=K({name:s.currentUser.name,email:s.currentUser.email,language:s.currentUserSettings.language||q.selectedCompanySettings.language,password:"",confirm_password:""}),o=O(F,I(()=>t));function M(l,a){w.value=a}function k(){w.value=null}async function G(){if(o.value.$touch(),o.value.$invalid)return!0;p.value=!0;let l={name:t.name,email:t.email};try{if(t.password!=null&&t.password!==void 0&&t.password!==""&&(l=S(U({},l),{password:t.password})),s.currentUserSettings.language!==t.language&&await s.updateUserSettings({settings:{language:t.language}}),(await s.updateCurrentUser(l)).data.data){if(p.value=!1,w.value){let $=new FormData;$.append("admin_avatar",w.value),await s.uploadAvatar($)}t.password="",t.confirm_password=""}}catch{return p.value=!1,!0}}return(l,a)=>{const $=m("BaseFileUploader"),c=m("BaseInputGroup"),_=m("BaseInput"),N=m("BaseMultiselect"),A=m("BaseInputGrid"),D=m("BaseIcon"),j=m("BaseButton"),R=m("BaseSettingCard");return C(),W("form",{class:"relative",onSubmit:se(G,["prevent"])},[r(R,{title:l.$t("settings.account_settings.account_settings"),description:l.$t("settings.account_settings.section_description")},{default:d(()=>[r(A,null,{default:d(()=>[r(c,{label:l.$tc("settings.account_settings.profile_picture")},{default:d(()=>[r($,{modelValue:e(f),"onUpdate:modelValue":a[0]||(a[0]=n=>X(f)?f.value=n:f=n),avatar:!0,accept:"image/*",onChange:M,onRemove:k},null,8,["modelValue"])]),_:1},8,["label"]),ie,r(c,{label:l.$tc("settings.account_settings.name"),error:e(o).name.$error&&e(o).name.$errors[0].$message,required:""},{default:d(()=>[r(_,{modelValue:e(t).name,"onUpdate:modelValue":a[1]||(a[1]=n=>e(t).name=n),invalid:e(o).name.$error,onInput:a[2]||(a[2]=n=>e(o).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(c,{label:l.$tc("settings.account_settings.email"),error:e(o).email.$error&&e(o).email.$errors[0].$message,required:""},{default:d(()=>[r(_,{modelValue:e(t).email,"onUpdate:modelValue":a[3]||(a[3]=n=>e(t).email=n),invalid:e(o).email.$error,onInput:a[4]||(a[4]=n=>e(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(c,{error:e(o).password.$error&&e(o).password.$errors[0].$message,label:l.$tc("settings.account_settings.password")},{default:d(()=>[r(_,{modelValue:e(t).password,"onUpdate:modelValue":a[5]||(a[5]=n=>e(t).password=n),type:"password",onInput:a[6]||(a[6]=n=>e(o).password.$touch())},null,8,["modelValue"])]),_:1},8,["error","label"]),r(c,{label:l.$tc("settings.account_settings.confirm_password"),error:e(o).confirm_password.$error&&e(o).confirm_password.$errors[0].$message},{default:d(()=>[r(_,{modelValue:e(t).confirm_password,"onUpdate:modelValue":a[7]||(a[7]=n=>e(t).confirm_password=n),type:"password",onInput:a[8]||(a[8]=n=>e(o).confirm_password.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"]),r(c,{label:l.$tc("settings.language")},{default:d(()=>[r(N,{modelValue:e(t).language,"onUpdate:modelValue":a[9]||(a[9]=n=>e(t).language=n),options:e(i).config.languages,label:"name","value-prop":"code","track-by":"code","open-direction":"top"},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),r(j,{loading:e(p),disabled:e(p),class:"mt-6"},{left:d(n=>[e(p)?x("",!0):(C(),Y(D,{key:0,name:"SaveIcon",class:Z(n.class)},null,8,["class"]))]),default:d(()=>[ee(" "+ae(l.$tc("settings.company_info.save")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title","description"])],40,le)}}};export{pe as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{g as k,i as q,k as g,m as y,n as N,p as j,a4 as D,q as G,r as i,o as B,s as b,w as r,t as m,v,x as C,y as e,b as n,z as L,A as T,B as z}from"./vendor.e9042f2c.js";import{s as A,g as E}from"./main.9d655092.js";const U={class:"flex justify-between w-full"},X=["onSubmit"],F={class:"p-8 sm:p-6"},H={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},P={setup(J){const t=A(),u=E(),{t:p}=k();let c=q(!1);const h=g(()=>({currentCategory:{name:{required:y.withMessage(p("validation.required"),N),minLength:y.withMessage(p("validation.name_min_length",{count:3}),j(3))},description:{maxLength:y.withMessage(p("validation.description_maxlength",{count:255}),D(255))}}})),a=G(h,g(()=>t)),w=g(()=>u.active&&u.componentName==="CategoryModal");async function I(){if(a.value.currentCategory.$touch(),a.value.currentCategory.$invalid)return!0;const s=t.isEdit?t.updateCategory:t.addCategory;c.value=!0,await s(t.currentCategory),c.value=!1,u.refreshData&&u.refreshData(),d()}function d(){u.closeModal(),setTimeout(()=>{t.$reset(),a.value.$reset()},300)}return(s,o)=>{const f=i("BaseIcon"),x=i("BaseInput"),_=i("BaseInputGroup"),V=i("BaseTextarea"),M=i("BaseInputGrid"),$=i("BaseButton"),S=i("BaseModal");return B(),b(S,{show:e(w),onClose:d},{header:r(()=>[m("div",U,[v(C(e(u).title)+" ",1),n(f,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[m("form",{action:"",onSubmit:z(I,["prevent"])},[m("div",F,[n(M,{layout:"one-column"},{default:r(()=>[n(_,{label:s.$t("expenses.category"),error:e(a).currentCategory.name.$error&&e(a).currentCategory.name.$errors[0].$message,required:""},{default:r(()=>[n(x,{modelValue:e(t).currentCategory.name,"onUpdate:modelValue":o[0]||(o[0]=l=>e(t).currentCategory.name=l),invalid:e(a).currentCategory.name.$error,type:"text",onInput:o[1]||(o[1]=l=>e(a).currentCategory.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),n(_,{label:s.$t("expenses.description"),error:e(a).currentCategory.description.$error&&e(a).currentCategory.description.$errors[0].$message},{default:r(()=>[n(V,{modelValue:e(t).currentCategory.description,"onUpdate:modelValue":o[2]||(o[2]=l=>e(t).currentCategory.description=l),rows:"4",cols:"50",onInput:o[3]||(o[3]=l=>e(a).currentCategory.description.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"])]),_:1})]),m("div",H,[n($,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:d},{default:r(()=>[v(C(s.$t("general.cancel")),1)]),_:1}),n($,{loading:e(c),disabled:e(c),variant:"primary",type:"submit"},{left:r(l=>[e(c)?T("",!0):(B(),b(f,{key:0,name:"SaveIcon",class:L(l.class)},null,8,["class"]))]),default:r(()=>[v(" "+C(e(t).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,X)]),_:1},8,["show"])}}};export{P as _};

View File

@ -0,0 +1 @@
import{g as k,i as q,k as g,m as y,n as N,p as j,a4 as D,q as G,r as i,o as B,s as b,w as r,t as m,v as f,x as v,y as e,b as n,z as L,A as T,B as z}from"./vendor.e9042f2c.js";import{s as A,g as E}from"./main.f55cd568.js";const U={class:"flex justify-between w-full"},X=["onSubmit"],F={class:"p-8 sm:p-6"},H={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},P={setup(J){const t=A(),u=E(),{t:p}=k();let c=q(!1);const h=g(()=>({currentCategory:{name:{required:y.withMessage(p("validation.required"),N),minLength:y.withMessage(p("validation.name_min_length",{count:3}),j(3))},description:{maxLength:y.withMessage(p("validation.description_maxlength",{count:255}),D(255))}}})),a=G(h,g(()=>t)),w=g(()=>u.active&&u.componentName==="CategoryModal");async function I(){if(a.value.currentCategory.$touch(),a.value.currentCategory.$invalid)return!0;const s=t.isEdit?t.updateCategory:t.addCategory;c.value=!0,await s(t.currentCategory),c.value=!1,u.refreshData&&u.refreshData(),d()}function d(){u.closeModal(),setTimeout(()=>{t.$reset(),a.value.$reset()},300)}return(s,o)=>{const C=i("BaseIcon"),x=i("BaseInput"),_=i("BaseInputGroup"),V=i("BaseTextarea"),M=i("BaseInputGrid"),$=i("BaseButton"),S=i("BaseModal");return B(),b(S,{show:e(w),onClose:d},{header:r(()=>[m("div",U,[f(v(e(u).title)+" ",1),n(C,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[m("form",{action:"",onSubmit:z(I,["prevent"])},[m("div",F,[n(M,{layout:"one-column"},{default:r(()=>[n(_,{label:s.$t("expenses.category"),error:e(a).currentCategory.name.$error&&e(a).currentCategory.name.$errors[0].$message,required:""},{default:r(()=>[n(x,{modelValue:e(t).currentCategory.name,"onUpdate:modelValue":o[0]||(o[0]=l=>e(t).currentCategory.name=l),invalid:e(a).currentCategory.name.$error,type:"text",onInput:o[1]||(o[1]=l=>e(a).currentCategory.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),n(_,{label:s.$t("expenses.description"),error:e(a).currentCategory.description.$error&&e(a).currentCategory.description.$errors[0].$message},{default:r(()=>[n(V,{modelValue:e(t).currentCategory.description,"onUpdate:modelValue":o[2]||(o[2]=l=>e(t).currentCategory.description=l),rows:"4",cols:"50",onInput:o[3]||(o[3]=l=>e(a).currentCategory.description.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"])]),_:1})]),m("div",H,[n($,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:d},{default:r(()=>[f(v(s.$t("general.cancel")),1)]),_:1}),n($,{loading:e(c),disabled:e(c),variant:"primary",type:"submit"},{left:r(l=>[e(c)?T("",!0):(B(),b(C,{key:0,name:"SaveIcon",class:L(l.class)},null,8,["class"]))]),default:r(()=>[f(" "+v(e(t).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,X)]),_:1},8,["show"])}}};export{P as _};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
var D=Object.defineProperty,I=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var f=(e,t,r)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))q.call(t,r)&&f(e,r,t[r]);if(y)for(var r of y(t))h.call(t,r)&&f(e,r,t[r]);return e},v=(e,t)=>I(e,g(t));import{g as w,m as V,aU as j,q as F,k as T,aJ as L,r as E,o as n,s as m,w as P,an as A,y as c,f as S,D as x,c as b,b as O,F as R,H as k,A as B,h as C}from"./vendor.e9042f2c.js";import{n as i,l as Y}from"./main.9d655092.js";function $(e){switch(e){case"./types/DateTimeType.vue":return i(()=>import("./DateTimeType.885ed58f.js"),["assets/DateTimeType.885ed58f.js","assets/vendor.e9042f2c.js"]);case"./types/DateType.vue":return i(()=>import("./DateType.7fd6d385.js"),["assets/DateType.7fd6d385.js","assets/vendor.e9042f2c.js"]);case"./types/DropdownType.vue":return i(()=>import("./DropdownType.84b4a057.js"),["assets/DropdownType.84b4a057.js","assets/vendor.e9042f2c.js"]);case"./types/InputType.vue":return i(()=>import("./InputType.abbc9e84.js"),["assets/InputType.abbc9e84.js","assets/vendor.e9042f2c.js"]);case"./types/NumberType.vue":return i(()=>import("./NumberType.bae67e72.js"),["assets/NumberType.bae67e72.js","assets/vendor.e9042f2c.js"]);case"./types/PhoneType.vue":return i(()=>import("./PhoneType.f1778217.js"),["assets/PhoneType.f1778217.js","assets/vendor.e9042f2c.js"]);case"./types/SwitchType.vue":return i(()=>import("./SwitchType.56df61e7.js"),["assets/SwitchType.56df61e7.js","assets/vendor.e9042f2c.js"]);case"./types/TextAreaType.vue":return i(()=>import("./TextAreaType.a1bccab5.js"),["assets/TextAreaType.a1bccab5.js","assets/vendor.e9042f2c.js"]);case"./types/TimeType.vue":return i(()=>import("./TimeType.82e5beb3.js"),["assets/TimeType.82e5beb3.js","assets/vendor.e9042f2c.js"]);case"./types/UrlType.vue":return i(()=>import("./UrlType.803fb838.js"),["assets/UrlType.803fb838.js","assets/vendor.e9042f2c.js"]);default:return new Promise(function(t,r){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const M={props:{field:{type:Object,required:!0},customFieldScope:{type:String,required:!0},index:{type:Number,required:!0},store:{type:Object,required:!0},storeProp:{type:String,required:!0}},setup(e){const t=e,{t:r}=w(),d={value:{required:V.withMessage(r("validation.required"),j(t.field.is_required))}},a=F(d,T(()=>t.field),{$scope:t.customFieldScope}),o=T(()=>t.field.type?L(()=>$(`./types/${t.field.type}Type.vue`)):!1);return(u,s)=>{const l=E("BaseInputGroup");return n(),m(l,{label:e.field.label,required:!!e.field.is_required,error:c(a).value.$error&&c(a).value.$errors[0].$message},{default:P(()=>[(n(),m(A(c(o)),{modelValue:e.field.value,"onUpdate:modelValue":s[0]||(s[0]=p=>e.field.value=p),options:e.field.options,invalid:c(a).value.$error,placeholder:e.field.placeholder},null,8,["modelValue","options","invalid","placeholder"]))]),_:1},8,["label","required","error"])}}},H={key:0},J={props:{store:{type:Object,required:!0},storeProp:{type:String,required:!0},isEdit:{type:Boolean,default:!1},type:{type:String,default:null},gridLayout:{type:String,default:"two-column"},isLoading:{type:Boolean,default:null},customFieldScope:{type:String,required:!0}},setup(e){const t=e,r=Y();a();function d(){t.isEdit&&t.store[t.storeProp].fields.forEach(o=>{const u=t.store[t.storeProp].customFields.findIndex(s=>s.id===o.custom_field_id);if(u>-1){let s=o.default_answer;s&&o.custom_field.type==="DateTime"&&(s=C(o.default_answer,"YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm")),t.store[t.storeProp].customFields[u]=v(_({},o),{id:o.custom_field_id,value:s,label:o.custom_field.label,options:o.custom_field.options,is_required:o.custom_field.is_required,placeholder:o.custom_field.placeholder,order:o.custom_field.order})}})}async function a(){let u=(await r.fetchCustomFields({type:t.type,limit:"all"})).data.data;u.map(s=>s.value=s.default_answer),t.store[t.storeProp].customFields=S.sortBy(u,s=>s.order),d()}return x(()=>t.store[t.storeProp].fields,o=>{d()}),(o,u)=>{const s=E("BaseInputGrid");return e.store[e.storeProp]&&e.store[e.storeProp].customFields.length>0&&!e.isLoading?(n(),b("div",H,[O(s,{layout:e.gridLayout},{default:P(()=>[(n(!0),b(R,null,k(e.store[e.storeProp].customFields,(l,p)=>(n(),m(M,{key:l.id,"custom-field-scope":e.customFieldScope,store:e.store,"store-prop":e.storeProp,index:p,field:l},null,8,["custom-field-scope","store","store-prop","index","field"]))),128))]),_:1},8,["layout"])])):B("",!0)}}};export{J as _};
var D=Object.defineProperty,I=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var f=(e,t,r)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))q.call(t,r)&&f(e,r,t[r]);if(y)for(var r of y(t))h.call(t,r)&&f(e,r,t[r]);return e},v=(e,t)=>I(e,g(t));import{g as w,m as V,aU as j,q as F,k as T,aJ as L,r as E,o as n,s as m,w as P,an as A,y as c,f as S,D as x,c as b,b as O,F as R,H as k,A as B,h as C}from"./vendor.e9042f2c.js";import{n as i,l as Y}from"./main.f55cd568.js";function $(e){switch(e){case"./types/DateTimeType.vue":return i(()=>import("./DateTimeType.885ed58f.js"),["assets/DateTimeType.885ed58f.js","assets/vendor.e9042f2c.js"]);case"./types/DateType.vue":return i(()=>import("./DateType.7fd6d385.js"),["assets/DateType.7fd6d385.js","assets/vendor.e9042f2c.js"]);case"./types/DropdownType.vue":return i(()=>import("./DropdownType.84b4a057.js"),["assets/DropdownType.84b4a057.js","assets/vendor.e9042f2c.js"]);case"./types/InputType.vue":return i(()=>import("./InputType.abbc9e84.js"),["assets/InputType.abbc9e84.js","assets/vendor.e9042f2c.js"]);case"./types/NumberType.vue":return i(()=>import("./NumberType.bae67e72.js"),["assets/NumberType.bae67e72.js","assets/vendor.e9042f2c.js"]);case"./types/PhoneType.vue":return i(()=>import("./PhoneType.f1778217.js"),["assets/PhoneType.f1778217.js","assets/vendor.e9042f2c.js"]);case"./types/SwitchType.vue":return i(()=>import("./SwitchType.56df61e7.js"),["assets/SwitchType.56df61e7.js","assets/vendor.e9042f2c.js"]);case"./types/TextAreaType.vue":return i(()=>import("./TextAreaType.a1bccab5.js"),["assets/TextAreaType.a1bccab5.js","assets/vendor.e9042f2c.js"]);case"./types/TimeType.vue":return i(()=>import("./TimeType.82e5beb3.js"),["assets/TimeType.82e5beb3.js","assets/vendor.e9042f2c.js"]);case"./types/UrlType.vue":return i(()=>import("./UrlType.803fb838.js"),["assets/UrlType.803fb838.js","assets/vendor.e9042f2c.js"]);default:return new Promise(function(t,r){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const M={props:{field:{type:Object,required:!0},customFieldScope:{type:String,required:!0},index:{type:Number,required:!0},store:{type:Object,required:!0},storeProp:{type:String,required:!0}},setup(e){const t=e,{t:r}=w(),d={value:{required:V.withMessage(r("validation.required"),j(t.field.is_required))}},a=F(d,T(()=>t.field),{$scope:t.customFieldScope}),o=T(()=>t.field.type?L(()=>$(`./types/${t.field.type}Type.vue`)):!1);return(u,s)=>{const l=E("BaseInputGroup");return n(),m(l,{label:e.field.label,required:!!e.field.is_required,error:c(a).value.$error&&c(a).value.$errors[0].$message},{default:P(()=>[(n(),m(A(c(o)),{modelValue:e.field.value,"onUpdate:modelValue":s[0]||(s[0]=p=>e.field.value=p),options:e.field.options,invalid:c(a).value.$error,placeholder:e.field.placeholder},null,8,["modelValue","options","invalid","placeholder"]))]),_:1},8,["label","required","error"])}}},H={key:0},J={props:{store:{type:Object,required:!0},storeProp:{type:String,required:!0},isEdit:{type:Boolean,default:!1},type:{type:String,default:null},gridLayout:{type:String,default:"two-column"},isLoading:{type:Boolean,default:null},customFieldScope:{type:String,required:!0}},setup(e){const t=e,r=Y();a();function d(){t.isEdit&&t.store[t.storeProp].fields.forEach(o=>{const u=t.store[t.storeProp].customFields.findIndex(s=>s.id===o.custom_field_id);if(u>-1){let s=o.default_answer;s&&o.custom_field.type==="DateTime"&&(s=C(o.default_answer,"YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm")),t.store[t.storeProp].customFields[u]=v(_({},o),{id:o.custom_field_id,value:s,label:o.custom_field.label,options:o.custom_field.options,is_required:o.custom_field.is_required,placeholder:o.custom_field.placeholder,order:o.custom_field.order})}})}async function a(){let u=(await r.fetchCustomFields({type:t.type,limit:"all"})).data.data;u.map(s=>s.value=s.default_answer),t.store[t.storeProp].customFields=S.sortBy(u,s=>s.order),d()}return x(()=>t.store[t.storeProp].fields,o=>{d()}),(o,u)=>{const s=E("BaseInputGrid");return e.store[e.storeProp]&&e.store[e.storeProp].customFields.length>0&&!e.isLoading?(n(),b("div",H,[O(s,{layout:e.gridLayout},{default:P(()=>[(n(!0),b(R,null,k(e.store[e.storeProp].customFields,(l,p)=>(n(),m(M,{key:l.id,"custom-field-scope":e.customFieldScope,store:e.store,"store-prop":e.storeProp,index:p,field:l},null,8,["custom-field-scope","store","store-prop","index","field"]))),128))]),_:1},8,["layout"])])):B("",!0)}}};export{J as _};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{k as C,u as S,i as b,d as x,e as g}from"./main.9d655092.js";import{g as E,u as T,C as $,am as j,r as i,o as a,s,w as t,y as e,b as n,v as p,x as f,A as y}from"./vendor.e9042f2c.js";const V={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(l){const w=l,_=C();S();const D=b(),m=x(),{t:u}=E(),h=T();$(),j("utils");function B(r){D.openDialog({title:u("general.are_you_sure"),message:u("customers.confirm_delete",1),yesLabel:u("general.ok"),noLabel:u("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(c=>{c&&_.deleteCustomer({ids:[r]}).then(o=>{if(o.data.success)return w.loadData&&w.loadData(),!0})})}return(r,c)=>{const o=i("BaseIcon"),k=i("BaseButton"),d=i("BaseDropdownItem"),v=i("router-link"),I=i("BaseDropdown");return a(),s(I,{"content-loading":e(_).isFetchingViewData},{activator:t(()=>[e(h).name==="customers.view"?(a(),s(k,{key:0,variant:"primary"},{default:t(()=>[n(o,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(a(),s(o,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[e(m).hasAbilities(e(g).EDIT_CUSTOMER)?(a(),s(v,{key:0,to:`/admin/customers/${l.row.id}/edit`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(h).name!=="customers.view"&&e(m).hasAbilities(e(g).VIEW_CUSTOMER)?(a(),s(v,{key:1,to:`customers/${l.row.id}/view`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(m).hasAbilities(e(g).DELETE_CUSTOMER)?(a(),s(d,{key:2,onClick:c[0]||(c[0]=N=>B(l.row.id))},{default:t(()=>[n(o,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.delete")),1)]),_:1})):y("",!0)]),_:1},8,["content-loading"])}}};export{V as _};
import{k as C,u as S,i as b,d as x,e as g}from"./main.f55cd568.js";import{g as E,u as T,C as $,am as j,r as i,o as a,s,w as t,y as e,b as n,v as f,x as p,A as y}from"./vendor.e9042f2c.js";const V={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(l){const w=l,_=C();S();const D=b(),m=x(),{t:u}=E(),h=T();$(),j("utils");function B(r){D.openDialog({title:u("general.are_you_sure"),message:u("customers.confirm_delete",1),yesLabel:u("general.ok"),noLabel:u("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(c=>{c&&_.deleteCustomer({ids:[r]}).then(o=>{if(o.data.success)return w.loadData&&w.loadData(),!0})})}return(r,c)=>{const o=i("BaseIcon"),k=i("BaseButton"),d=i("BaseDropdownItem"),v=i("router-link"),I=i("BaseDropdown");return a(),s(I,{"content-loading":e(_).isFetchingViewData},{activator:t(()=>[e(h).name==="customers.view"?(a(),s(k,{key:0,variant:"primary"},{default:t(()=>[n(o,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(a(),s(o,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[e(m).hasAbilities(e(g).EDIT_CUSTOMER)?(a(),s(v,{key:0,to:`/admin/customers/${l.row.id}/edit`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),f(" "+p(r.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(h).name!=="customers.view"&&e(m).hasAbilities(e(g).VIEW_CUSTOMER)?(a(),s(v,{key:1,to:`customers/${l.row.id}/view`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),f(" "+p(r.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(m).hasAbilities(e(g).DELETE_CUSTOMER)?(a(),s(d,{key:2,onClick:c[0]||(c[0]=N=>B(l.row.id))},{default:t(()=>[n(o,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),f(" "+p(r.$t("general.delete")),1)]),_:1})):y("",!0)]),_:1},8,["content-loading"])}}};export{V as _};

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import{aW as $r,aX as Br,aR as Kr,aY as Hr,o as Wr,c as Xr,t as Yr}from"./vendor.e9042f2c.js";import{_ as Vr}from"./main.9d655092.js";var gr={exports:{}};/**!
import{aW as $r,aX as Br,aR as Kr,aY as Hr,o as Wr,c as Xr,t as Yr}from"./vendor.e9042f2c.js";import{_ as Vr}from"./main.f55cd568.js";var gr={exports:{}};/**!
* Sortable 1.14.0
* @author RubaXa <trash@rubaxa.org>
* @author owenm <owen23355@gmail.com>

View File

@ -1 +1 @@
import{m as D,c as _,t as j}from"./main.9d655092.js";import{i as p,k as u,D as l,b3 as A,r as d,ap as F,y as o,o as x,s as N,w as m,c as G,Z as z,b as v,z as L,A as C,t as E,x as b}from"./vendor.e9042f2c.js";const O={key:0},U={class:"text-gray-500 sm:text-sm"},q={class:"text-gray-400 text-xs mt-2 font-light"},J={props:{v:{type:Object,default:null},isLoading:{type:Boolean,default:!1},store:{type:Object,default:null},storeProp:{type:String,default:""},isEdit:{type:Boolean,default:!1},customerCurrency:{type:[String,Number],default:null}},setup(r){const e=r,h=D(),B=_(),g=j(),f=p(!1);let a=p(!1);h.fetchCurrencies();const s=u(()=>B.selectedCompanyCurrency),c=u(()=>h.currencies.find(t=>t.id===e.store[e.storeProp].currency_id)),P=u(()=>s.value.id!==e.customerCurrency);l(()=>e.store[e.storeProp].customer,t=>{R(t)},{deep:!0}),l(()=>e.store[e.storeProp].currency_id,t=>{$(t)},{immediate:!0}),l(()=>e.customerCurrency,t=>{t&&e.isEdit&&w()},{immediate:!0});function w(){P.value&&g.checkForActiveProvider(e.customerCurrency).then(t=>{t.data.success&&(f.value=!0)})}function R(t){t?e.store[e.storeProp].currency_id=t.currency.id:e.store[e.storeProp].currency_id=s.value.id}async function $(t){t!==s.value.id?(!e.isEdit&&t&&await y(t),e.store.showExchangeRate=!0):e.store.showExchangeRate=!1}function y(t){a.value=!0,g.getCurrentExchangeRate(t).then(n=>{n.data&&!n.data.error?e.store[e.storeProp].exchange_rate=n.data.exchangeRate[0]:e.store[e.storeProp].exchange_rate="",a.value=!1}).catch(n=>{a.value=!1})}return A(()=>{e.store.showExchangeRate=!1}),(t,n)=>{const k=d("BaseIcon"),S=d("BaseInput"),I=d("BaseInputGroup"),V=F("tooltip");return r.store.showExchangeRate&&o(c)?(x(),N(I,{key:0,"content-loading":o(a)&&!r.isEdit,label:t.$t("settings.exchange_rate.exchange_rate"),error:r.v.exchange_rate.$error&&r.v.exchange_rate.$errors[0].$message,required:""},{labelRight:m(()=>[f.value&&r.isEdit?(x(),G("div",O,[z(v(k,{name:"RefreshIcon",class:L(`h-4 w-4 text-primary-500 cursor-pointer outline-none ${o(a)?" animate-spin transform rotate-180 cursor-not-allowed pointer-events-none ":""}`),onClick:n[0]||(n[0]=i=>y(r.customerCurrency))},null,8,["class"]),[[V,{content:"Fetch Latest Exchange rate"}]])])):C("",!0)]),default:m(()=>[v(S,{modelValue:r.store[r.storeProp].exchange_rate,"onUpdate:modelValue":n[1]||(n[1]=i=>r.store[r.storeProp].exchange_rate=i),"content-loading":o(a)&&!r.isEdit,addon:`1 ${o(c).code} =`,disabled:o(a),onInput:n[2]||(n[2]=i=>r.v.exchange_rate.$touch())},{right:m(()=>[E("span",U,b(o(s).code),1)]),_:1},8,["modelValue","content-loading","addon","disabled"]),E("span",q,b(t.$t("settings.exchange_rate.exchange_help_text",{currency:o(c).code,baseCurrency:o(s).code})),1)]),_:1},8,["content-loading","label","error"])):C("",!0)}}};export{J as _};
import{m as D,c as _,t as j}from"./main.f55cd568.js";import{i as p,k as u,D as l,b3 as A,r as d,ap as F,y as o,o as x,s as N,w as m,c as G,Z as z,b as v,z as L,A as C,t as E,x as b}from"./vendor.e9042f2c.js";const O={key:0},U={class:"text-gray-500 sm:text-sm"},q={class:"text-gray-400 text-xs mt-2 font-light"},J={props:{v:{type:Object,default:null},isLoading:{type:Boolean,default:!1},store:{type:Object,default:null},storeProp:{type:String,default:""},isEdit:{type:Boolean,default:!1},customerCurrency:{type:[String,Number],default:null}},setup(r){const e=r,h=D(),B=_(),g=j(),f=p(!1);let a=p(!1);h.fetchCurrencies();const s=u(()=>B.selectedCompanyCurrency),c=u(()=>h.currencies.find(t=>t.id===e.store[e.storeProp].currency_id)),P=u(()=>s.value.id!==e.customerCurrency);l(()=>e.store[e.storeProp].customer,t=>{R(t)},{deep:!0}),l(()=>e.store[e.storeProp].currency_id,t=>{$(t)},{immediate:!0}),l(()=>e.customerCurrency,t=>{t&&e.isEdit&&w()},{immediate:!0});function w(){P.value&&g.checkForActiveProvider(e.customerCurrency).then(t=>{t.data.success&&(f.value=!0)})}function R(t){t?e.store[e.storeProp].currency_id=t.currency.id:e.store[e.storeProp].currency_id=s.value.id}async function $(t){t!==s.value.id?(!e.isEdit&&t&&await y(t),e.store.showExchangeRate=!0):e.store.showExchangeRate=!1}function y(t){a.value=!0,g.getCurrentExchangeRate(t).then(n=>{n.data&&!n.data.error?e.store[e.storeProp].exchange_rate=n.data.exchangeRate[0]:e.store[e.storeProp].exchange_rate="",a.value=!1}).catch(n=>{a.value=!1})}return A(()=>{e.store.showExchangeRate=!1}),(t,n)=>{const k=d("BaseIcon"),S=d("BaseInput"),I=d("BaseInputGroup"),V=F("tooltip");return r.store.showExchangeRate&&o(c)?(x(),N(I,{key:0,"content-loading":o(a)&&!r.isEdit,label:t.$t("settings.exchange_rate.exchange_rate"),error:r.v.exchange_rate.$error&&r.v.exchange_rate.$errors[0].$message,required:""},{labelRight:m(()=>[f.value&&r.isEdit?(x(),G("div",O,[z(v(k,{name:"RefreshIcon",class:L(`h-4 w-4 text-primary-500 cursor-pointer outline-none ${o(a)?" animate-spin transform rotate-180 cursor-not-allowed pointer-events-none ":""}`),onClick:n[0]||(n[0]=i=>y(r.customerCurrency))},null,8,["class"]),[[V,{content:"Fetch Latest Exchange rate"}]])])):C("",!0)]),default:m(()=>[v(S,{modelValue:r.store[r.storeProp].exchange_rate,"onUpdate:modelValue":n[1]||(n[1]=i=>r.store[r.storeProp].exchange_rate=i),"content-loading":o(a)&&!r.isEdit,addon:`1 ${o(c).code} =`,disabled:o(a),onInput:n[2]||(n[2]=i=>r.v.exchange_rate.$touch())},{right:m(()=>[E("span",U,b(o(s).code),1)]),_:1},8,["modelValue","content-loading","addon","disabled"]),E("span",q,b(t.$t("settings.exchange_rate.exchange_help_text",{currency:o(c).code,baseCurrency:o(s).code})),1)]),_:1},8,["content-loading","label","error"])):C("",!0)}}};export{J as _};

View File

@ -1 +1 @@
import{i as w,u as z,s as S,d as M,g as k,e as E}from"./main.9d655092.js";import{g as I,u as T,am as j,r as i,o as m,s as p,w as e,y as g,b as n,v,x as C,A as N,i as P,k as F,c as V,z as A,t as $,F as L}from"./vendor.e9042f2c.js";import{_ as H}from"./CategoryModal.46b61f9f.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(y){const d=y,B=w();z();const{t:o}=I(),s=S(),x=T(),_=M(),h=k();j("utils");function b(l){s.fetchCategory(l),h.openModal({title:o("settings.expense_category.edit_category"),componentName:"CategoryModal",refreshData:d.loadData,size:"sm"})}function r(l){B.openDialog({title:o("general.are_you_sure"),message:o("settings.expense_category.confirm_delete"),yesLabel:o("general.ok"),noLabel:o("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{if((await s.deleteCategory(l)).data.success)return d.loadData&&d.loadData(),!0;d.loadData&&d.loadData()})}return(l,t)=>{const c=i("BaseIcon"),u=i("BaseButton"),f=i("BaseDropdownItem"),a=i("BaseDropdown");return m(),p(a,null,{activator:e(()=>[g(x).name==="expenseCategorys.view"?(m(),p(u,{key:0,variant:"primary"},{default:e(()=>[n(c,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),p(c,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:e(()=>[g(_).hasAbilities(g(E).EDIT_EXPENSE)?(m(),p(f,{key:0,onClick:t[0]||(t[0]=D=>b(y.row.id))},{default:e(()=>[n(c,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),v(" "+C(l.$t("general.edit")),1)]),_:1})):N("",!0),g(_).hasAbilities(g(E).DELETE_EXPENSE)?(m(),p(f,{key:1,onClick:t[1]||(t[1]=D=>r(y.row.id))},{default:e(()=>[n(c,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),v(" "+C(l.$t("general.delete")),1)]),_:1})):N("",!0)]),_:1})}}},X={class:"w-64"},R={class:"truncate"},J={setup(y){const d=S();w();const B=k(),{t:o}=I(),s=P(null),x=F(()=>[{key:"name",label:o("settings.expense_category.category_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"description",label:o("settings.expense_category.category_description"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function _({page:r,filter:l,sort:t}){let c={orderByField:t.fieldName||"created_at",orderBy:t.order||"desc",page:r},u=await d.fetchCategories(c);return{data:u.data.data,pagination:{totalPages:u.data.meta.last_page,currentPage:r,totalCount:u.data.meta.total,limit:5}}}function h(){B.openModal({title:o("settings.expense_category.add_category"),componentName:"CategoryModal",size:"sm",refreshData:s.value&&s.value.refresh})}async function b(){s.value&&s.value.refresh()}return(r,l)=>{const t=i("BaseIcon"),c=i("BaseButton"),u=i("BaseTable"),f=i("BaseSettingCard");return m(),V(L,null,[n(H),n(f,{title:r.$t("settings.expense_category.title"),description:r.$t("settings.expense_category.description")},{action:e(()=>[n(c,{variant:"primary-outline",type:"button",onClick:h},{left:e(a=>[n(t,{class:A(a.class),name:"PlusIcon"},null,8,["class"])]),default:e(()=>[v(" "+C(r.$t("settings.expense_category.add_new_category")),1)]),_:1})]),default:e(()=>[n(u,{ref:(a,D)=>{D.table=a,s.value=a},data:_,columns:g(x),class:"mt-16"},{"cell-description":e(({row:a})=>[$("div",X,[$("p",R,C(a.data.description),1)])]),"cell-actions":e(({row:a})=>[n(O,{row:a.data,table:s.value,"load-data":b},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{J as default};
import{i as w,u as z,s as S,d as M,g as k,e as E}from"./main.f55cd568.js";import{g as I,u as T,am as j,r as i,o as m,s as p,w as e,y as g,b as n,v,x as C,A as N,i as P,k as F,c as V,z as A,t as $,F as L}from"./vendor.e9042f2c.js";import{_ as H}from"./CategoryModal.d7852af2.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(y){const d=y,B=w();z();const{t:o}=I(),s=S(),x=T(),_=M(),h=k();j("utils");function b(l){s.fetchCategory(l),h.openModal({title:o("settings.expense_category.edit_category"),componentName:"CategoryModal",refreshData:d.loadData,size:"sm"})}function r(l){B.openDialog({title:o("general.are_you_sure"),message:o("settings.expense_category.confirm_delete"),yesLabel:o("general.ok"),noLabel:o("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{if((await s.deleteCategory(l)).data.success)return d.loadData&&d.loadData(),!0;d.loadData&&d.loadData()})}return(l,t)=>{const c=i("BaseIcon"),u=i("BaseButton"),f=i("BaseDropdownItem"),a=i("BaseDropdown");return m(),p(a,null,{activator:e(()=>[g(x).name==="expenseCategorys.view"?(m(),p(u,{key:0,variant:"primary"},{default:e(()=>[n(c,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),p(c,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:e(()=>[g(_).hasAbilities(g(E).EDIT_EXPENSE)?(m(),p(f,{key:0,onClick:t[0]||(t[0]=D=>b(y.row.id))},{default:e(()=>[n(c,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),v(" "+C(l.$t("general.edit")),1)]),_:1})):N("",!0),g(_).hasAbilities(g(E).DELETE_EXPENSE)?(m(),p(f,{key:1,onClick:t[1]||(t[1]=D=>r(y.row.id))},{default:e(()=>[n(c,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),v(" "+C(l.$t("general.delete")),1)]),_:1})):N("",!0)]),_:1})}}},X={class:"w-64"},R={class:"truncate"},J={setup(y){const d=S();w();const B=k(),{t:o}=I(),s=P(null),x=F(()=>[{key:"name",label:o("settings.expense_category.category_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"description",label:o("settings.expense_category.category_description"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function _({page:r,filter:l,sort:t}){let c={orderByField:t.fieldName||"created_at",orderBy:t.order||"desc",page:r},u=await d.fetchCategories(c);return{data:u.data.data,pagination:{totalPages:u.data.meta.last_page,currentPage:r,totalCount:u.data.meta.total,limit:5}}}function h(){B.openModal({title:o("settings.expense_category.add_category"),componentName:"CategoryModal",size:"sm",refreshData:s.value&&s.value.refresh})}async function b(){s.value&&s.value.refresh()}return(r,l)=>{const t=i("BaseIcon"),c=i("BaseButton"),u=i("BaseTable"),f=i("BaseSettingCard");return m(),V(L,null,[n(H),n(f,{title:r.$t("settings.expense_category.title"),description:r.$t("settings.expense_category.description")},{action:e(()=>[n(c,{variant:"primary-outline",type:"button",onClick:h},{left:e(a=>[n(t,{class:A(a.class),name:"PlusIcon"},null,8,["class"])]),default:e(()=>[v(" "+C(r.$t("settings.expense_category.add_new_category")),1)]),_:1})]),default:e(()=>[n(u,{ref:(a,D)=>{D.table=a,s.value=a},data:_,columns:g(x),class:"mt-16"},{"cell-description":e(({row:a})=>[$("div",X,[$("p",R,C(a.data.description),1)])]),"cell-actions":e(({row:a})=>[n(O,{row:a.data,table:s.value,"load-data":b},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{J as default};

View File

@ -1 +1 @@
import{g as w,j as S,i as _,m as f,n as V,a2 as x,q as I,r as n,o as l,c as u,b as r,w as m,y as t,x as d,t as q,v as N,B as M,a as j}from"./vendor.e9042f2c.js";import{u as C,h as D}from"./main.9d655092.js";const E=["onSubmit"],G={key:0},F={key:1},L={class:"mt-4 mb-4 text-sm"},A={setup(T){const g=C(),{t:c}=w(),i=S({email:""}),p=_(!1),o=_(!1),y={email:{required:f.withMessage(c("validation.required"),V),email:f.withMessage(c("validation.email_incorrect"),x)}},a=I(y,i);async function h(s){if(a.value.$touch(),!a.value.$invalid)try{o.value=!0,(await j.post("/api/v1/auth/password/email",i)).data&&g.showNotification({type:"success",message:"Mail sent successfully"}),p.value=!0,o.value=!1}catch(e){D(e),o.value=!1}}return(s,e)=>{const $=n("BaseInput"),b=n("BaseInputGroup"),B=n("BaseButton"),k=n("router-link");return l(),u("form",{id:"loginForm",onSubmit:M(h,["prevent"])},[r(b,{error:t(a).email.$error&&t(a).email.$errors[0].$message,label:s.$t("login.enter_email"),class:"mb-4",required:""},{default:m(()=>[r($,{modelValue:t(i).email,"onUpdate:modelValue":e[0]||(e[0]=v=>t(i).email=v),invalid:t(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=v=>t(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),r(B,{loading:o.value,disabled:o.value,type:"submit",variant:"primary"},{default:m(()=>[p.value?(l(),u("div",F,d(s.$t("validation.not_yet")),1)):(l(),u("div",G,d(s.$t("validation.send_reset_link")),1))]),_:1},8,["loading","disabled"]),q("div",L,[r(k,{to:"/login",class:"text-sm text-primary-400 hover:text-gray-700"},{default:m(()=>[N(d(s.$t("general.back_to_login")),1)]),_:1})])],40,E)}}};export{A as default};
import{g as w,j as S,i as f,m as _,n as V,a2 as x,q as I,r as n,o as l,c as u,b as r,w as m,y as t,x as d,t as q,v as N,B as M,a as j}from"./vendor.e9042f2c.js";import{u as C,h as D}from"./main.f55cd568.js";const E=["onSubmit"],G={key:0},F={key:1},L={class:"mt-4 mb-4 text-sm"},A={setup(T){const g=C(),{t:c}=w(),i=S({email:""}),p=f(!1),o=f(!1),y={email:{required:_.withMessage(c("validation.required"),V),email:_.withMessage(c("validation.email_incorrect"),x)}},a=I(y,i);async function h(s){if(a.value.$touch(),!a.value.$invalid)try{o.value=!0,(await j.post("/api/v1/auth/password/email",i)).data&&g.showNotification({type:"success",message:"Mail sent successfully"}),p.value=!0,o.value=!1}catch(e){D(e),o.value=!1}}return(s,e)=>{const $=n("BaseInput"),b=n("BaseInputGroup"),B=n("BaseButton"),k=n("router-link");return l(),u("form",{id:"loginForm",onSubmit:M(h,["prevent"])},[r(b,{error:t(a).email.$error&&t(a).email.$errors[0].$message,label:s.$t("login.enter_email"),class:"mb-4",required:""},{default:m(()=>[r($,{modelValue:t(i).email,"onUpdate:modelValue":e[0]||(e[0]=v=>t(i).email=v),invalid:t(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=v=>t(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),r(B,{loading:o.value,disabled:o.value,type:"submit",variant:"primary"},{default:m(()=>[p.value?(l(),u("div",F,d(s.$t("validation.not_yet")),1)):(l(),u("div",G,d(s.$t("validation.send_reset_link")),1))]),_:1},8,["loading","disabled"]),q("div",L,[r(k,{to:"/login",class:"text-sm text-primary-400 hover:text-gray-700"},{default:m(()=>[N(d(s.$t("general.back_to_login")),1)]),_:1})])],40,E)}}};export{A as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{g as O,u as j,C as z,am as R,r as h,o as r,s as l,w as o,y as c,b as s,Z as M,al as P,v as d,x as v,A as m}from"./vendor.e9042f2c.js";import{f as F,g as U,u as H,i as W,d as q,e as f}from"./main.9d655092.js";const J={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(a){const w=a,p=F(),$=U(),N=H(),b=W(),g=q(),{t:i}=O(),y=j(),S=z(),x=R("utils");function _(e){return(e.status=="SENT"||e.status=="VIEWED")&&y.name!=="invoices.view"&&g.hasAbilities(f.SEND_INVOICE)}function D(e){return e.status=="DRAFT"&&y.name!=="invoices.view"&&g.hasAbilities(f.SEND_INVOICE)}async function B(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(n=>{e=e,n&&p.deleteInvoice({ids:[e]}).then(t=>{t.data.success&&(S.push("/admin/invoices"),w.table&&w.table.refresh(),p.$patch(I=>{I.selectedInvoices=[],I.selectAllField=!1}))})})}async function A(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_clone"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{n&&p.cloneInvoice(e).then(t=>{S.push(`/admin/invoices/${t.data.data.id}/edit`)})})}async function T(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.invoice_mark_as_sent"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{const t={id:e,status:"SENT"};n&&p.markAsSent(t).then(I=>{w.table&&w.table.refresh()})})}async function E(e){$.openModal({title:i("invoices.send_invoice"),componentName:"SendInvoiceModal",id:e.id,data:e,variant:"sm"})}function V(){let e=`${window.location.origin}/invoices/pdf/${w.row.unique_hash}`;x.copyTextToClipboard(e),N.showNotification({type:"success",message:i("general.copied_pdf_url_clipboard")})}return(e,n)=>{const t=h("BaseIcon"),I=h("BaseButton"),u=h("BaseDropdownItem"),C=h("router-link"),L=h("BaseDropdown");return r(),l(L,null,{activator:o(()=>[c(y).name==="invoices.view"?(r(),l(I,{key:0,variant:"primary"},{default:o(()=>[s(t,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(r(),l(t,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[c(g).hasAbilities(c(f).EDIT_INVOICE)?(r(),l(C,{key:0,to:`/admin/invoices/${a.row.id}/edit`},{default:o(()=>[M(s(u,null,{default:o(()=>[s(t,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.edit")),1)]),_:1},512),[[P,a.row.allow_edit]])]),_:1},8,["to"])):m("",!0),c(y).name==="invoices.view"?(r(),l(u,{key:1,onClick:V},{default:o(()=>[s(t,{name:"LinkIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.copy_pdf_url")),1)]),_:1})):m("",!0),c(y).name!=="invoices.view"&&c(g).hasAbilities(c(f).VIEW_INVOICE)?(r(),l(C,{key:2,to:`invoices/${a.row.id}/view`},{default:o(()=>[s(u,null,{default:o(()=>[s(t,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):m("",!0),D(a.row)?(r(),l(u,{key:3,onClick:n[0]||(n[0]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.send_invoice")),1)]),_:1})):m("",!0),_(a.row)?(r(),l(u,{key:4,onClick:n[1]||(n[1]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.resend_invoice")),1)]),_:1})):m("",!0),s(C,{to:`/admin/payments/${a.row.id}/create`},{default:o(()=>[a.row.status=="SENT"&&c(y).name!=="invoices.view"?(r(),l(u,{key:0},{default:o(()=>[s(t,{name:"CreditCardIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.record_payment")),1)]),_:1})):m("",!0)]),_:1},8,["to"]),D(a.row)?(r(),l(u,{key:5,onClick:n[2]||(n[2]=k=>T(a.row.id))},{default:o(()=>[s(t,{name:"CheckCircleIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.mark_as_sent")),1)]),_:1})):m("",!0),c(g).hasAbilities(c(f).CREATE_INVOICE)?(r(),l(u,{key:6,onClick:n[3]||(n[3]=k=>A(a.row))},{default:o(()=>[s(t,{name:"DocumentTextIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.clone_invoice")),1)]),_:1})):m("",!0),c(g).hasAbilities(c(f).DELETE_INVOICE)?(r(),l(u,{key:7,onClick:n[4]||(n[4]=k=>B(a.row.id))},{default:o(()=>[s(t,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.delete")),1)]),_:1})):m("",!0)]),_:1})}}};export{J as _};
import{g as O,u as j,C as z,am as R,r as h,o as r,s as l,w as o,y as c,b as s,Z as M,al as P,v as d,x as v,A as m}from"./vendor.e9042f2c.js";import{f as F,g as U,u as H,i as W,d as q,e as f}from"./main.f55cd568.js";const J={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(a){const w=a,p=F(),$=U(),N=H(),b=W(),g=q(),{t:i}=O(),y=j(),S=z(),x=R("utils");function _(e){return(e.status=="SENT"||e.status=="VIEWED")&&y.name!=="invoices.view"&&g.hasAbilities(f.SEND_INVOICE)}function D(e){return e.status=="DRAFT"&&y.name!=="invoices.view"&&g.hasAbilities(f.SEND_INVOICE)}async function B(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(n=>{e=e,n&&p.deleteInvoice({ids:[e]}).then(t=>{t.data.success&&(S.push("/admin/invoices"),w.table&&w.table.refresh(),p.$patch(I=>{I.selectedInvoices=[],I.selectAllField=!1}))})})}async function A(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_clone"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{n&&p.cloneInvoice(e).then(t=>{S.push(`/admin/invoices/${t.data.data.id}/edit`)})})}async function T(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.invoice_mark_as_sent"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{const t={id:e,status:"SENT"};n&&p.markAsSent(t).then(I=>{w.table&&w.table.refresh()})})}async function E(e){$.openModal({title:i("invoices.send_invoice"),componentName:"SendInvoiceModal",id:e.id,data:e,variant:"sm"})}function V(){let e=`${window.location.origin}/invoices/pdf/${w.row.unique_hash}`;x.copyTextToClipboard(e),N.showNotification({type:"success",message:i("general.copied_pdf_url_clipboard")})}return(e,n)=>{const t=h("BaseIcon"),I=h("BaseButton"),u=h("BaseDropdownItem"),C=h("router-link"),L=h("BaseDropdown");return r(),l(L,null,{activator:o(()=>[c(y).name==="invoices.view"?(r(),l(I,{key:0,variant:"primary"},{default:o(()=>[s(t,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(r(),l(t,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[c(g).hasAbilities(c(f).EDIT_INVOICE)?(r(),l(C,{key:0,to:`/admin/invoices/${a.row.id}/edit`},{default:o(()=>[M(s(u,null,{default:o(()=>[s(t,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.edit")),1)]),_:1},512),[[P,a.row.allow_edit]])]),_:1},8,["to"])):m("",!0),c(y).name==="invoices.view"?(r(),l(u,{key:1,onClick:V},{default:o(()=>[s(t,{name:"LinkIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.copy_pdf_url")),1)]),_:1})):m("",!0),c(y).name!=="invoices.view"&&c(g).hasAbilities(c(f).VIEW_INVOICE)?(r(),l(C,{key:2,to:`/admin/invoices/${a.row.id}/view`},{default:o(()=>[s(u,null,{default:o(()=>[s(t,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):m("",!0),D(a.row)?(r(),l(u,{key:3,onClick:n[0]||(n[0]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.send_invoice")),1)]),_:1})):m("",!0),_(a.row)?(r(),l(u,{key:4,onClick:n[1]||(n[1]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.resend_invoice")),1)]),_:1})):m("",!0),s(C,{to:`/admin/payments/${a.row.id}/create`},{default:o(()=>[a.row.status=="SENT"&&c(y).name!=="invoices.view"?(r(),l(u,{key:0},{default:o(()=>[s(t,{name:"CreditCardIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.record_payment")),1)]),_:1})):m("",!0)]),_:1},8,["to"]),D(a.row)?(r(),l(u,{key:5,onClick:n[2]||(n[2]=k=>T(a.row.id))},{default:o(()=>[s(t,{name:"CheckCircleIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.mark_as_sent")),1)]),_:1})):m("",!0),c(g).hasAbilities(c(f).CREATE_INVOICE)?(r(),l(u,{key:6,onClick:n[3]||(n[3]=k=>A(a.row))},{default:o(()=>[s(t,{name:"DocumentTextIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.clone_invoice")),1)]),_:1})):m("",!0),c(g).hasAbilities(c(f).DELETE_INVOICE)?(r(),l(u,{key:7,onClick:n[4]||(n[4]=k=>B(a.row.id))},{default:o(()=>[s(t,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.delete")),1)]),_:1})):m("",!0)]),_:1})}}};export{J as _};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{g as S,i as V,k as g,m as h,n as C,p as k,q as x,r as i,o as b,s as B,w as r,t as c,v as p,x as v,y as e,b as l,z as q,A as z,B as N}from"./vendor.e9042f2c.js";import{p as j,g as D}from"./main.9d655092.js";const E={class:"flex justify-between w-full"},G=["onSubmit"],L={class:"p-8 sm:p-6"},T={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},H={setup(A){const t=j(),a=D(),{t:f}=S();let o=V(!1);const $=g(()=>({name:{required:h.withMessage(f("validation.required"),C),minLength:h.withMessage(f("validation.name_min_length",{count:3}),k(3))}})),n=x($,g(()=>t.currentItemUnit));async function y(){if(n.value.$touch(),n.value.$invalid)return!0;try{const s=t.isItemUnitEdit?t.updateItemUnit:t.addItemUnit;o.value=!0,await s(t.currentItemUnit),a.refreshData&&a.refreshData(),u(),o.value=!1}catch{return o.value=!1,!0}}function u(){a.closeModal(),setTimeout(()=>{t.currentItemUnit={id:null,name:""},a.$reset(),n.value.$reset()},300)}return(s,m)=>{const _=i("BaseIcon"),U=i("BaseInput"),w=i("BaseInputGroup"),I=i("BaseButton"),M=i("BaseModal");return b(),B(M,{show:e(a).active&&e(a).componentName==="ItemUnitModal",onClose:u},{header:r(()=>[c("div",E,[p(v(e(a).title)+" ",1),l(_,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:u})])]),default:r(()=>[c("form",{action:"",onSubmit:N(y,["prevent"])},[c("div",L,[l(w,{label:s.$t("settings.customization.items.unit_name"),error:e(n).name.$error&&e(n).name.$errors[0].$message,variant:"horizontal",required:""},{default:r(()=>[l(U,{modelValue:e(t).currentItemUnit.name,"onUpdate:modelValue":m[0]||(m[0]=d=>e(t).currentItemUnit.name=d),invalid:e(n).name.$error,type:"text",onInput:m[1]||(m[1]=d=>e(n).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),c("div",T,[l(I,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:u},{default:r(()=>[p(v(s.$t("general.cancel")),1)]),_:1}),l(I,{loading:e(o),disabled:e(o),variant:"primary",type:"submit"},{left:r(d=>[e(o)?z("",!0):(b(),B(_,{key:0,name:"SaveIcon",class:q(d.class)},null,8,["class"]))]),default:r(()=>[p(" "+v(e(t).isItemUnitEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,G)]),_:1},8,["show"])}}};export{H as _};
import{g as S,i as V,k as g,m as h,n as C,p as k,q as x,r as i,o as b,s as B,w as r,t as d,v as p,x as f,y as e,b as l,z as q,A as z,B as N}from"./vendor.e9042f2c.js";import{p as j,g as D}from"./main.f55cd568.js";const E={class:"flex justify-between w-full"},G=["onSubmit"],L={class:"p-8 sm:p-6"},T={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},H={setup(A){const t=j(),a=D(),{t:v}=S();let o=V(!1);const $=g(()=>({name:{required:h.withMessage(v("validation.required"),C),minLength:h.withMessage(v("validation.name_min_length",{count:3}),k(3))}})),n=x($,g(()=>t.currentItemUnit));async function y(){if(n.value.$touch(),n.value.$invalid)return!0;try{const s=t.isItemUnitEdit?t.updateItemUnit:t.addItemUnit;o.value=!0,await s(t.currentItemUnit),a.refreshData&&a.refreshData(),u(),o.value=!1}catch{return o.value=!1,!0}}function u(){a.closeModal(),setTimeout(()=>{t.currentItemUnit={id:null,name:""},a.$reset(),n.value.$reset()},300)}return(s,m)=>{const _=i("BaseIcon"),U=i("BaseInput"),w=i("BaseInputGroup"),I=i("BaseButton"),M=i("BaseModal");return b(),B(M,{show:e(a).active&&e(a).componentName==="ItemUnitModal",onClose:u},{header:r(()=>[d("div",E,[p(f(e(a).title)+" ",1),l(_,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:u})])]),default:r(()=>[d("form",{action:"",onSubmit:N(y,["prevent"])},[d("div",L,[l(w,{label:s.$t("settings.customization.items.unit_name"),error:e(n).name.$error&&e(n).name.$errors[0].$message,variant:"horizontal",required:""},{default:r(()=>[l(U,{modelValue:e(t).currentItemUnit.name,"onUpdate:modelValue":m[0]||(m[0]=c=>e(t).currentItemUnit.name=c),invalid:e(n).name.$error,type:"text",onInput:m[1]||(m[1]=c=>e(n).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),d("div",T,[l(I,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:u},{default:r(()=>[p(f(s.$t("general.cancel")),1)]),_:1}),l(I,{loading:e(o),disabled:e(o),variant:"primary",type:"submit"},{left:r(c=>[e(o)?z("",!0):(b(),B(_,{key:0,name:"SaveIcon",class:q(c.class)},null,8,["class"]))]),default:r(()=>[p(" "+f(e(t).isItemUnitEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,G)]),_:1},8,["show"])}}};export{H as _};

View File

@ -1 +0,0 @@
import{N as t}from"./main.9d655092.js";import{r as s,o as r,c as a,b as e,t as c}from"./vendor.e9042f2c.js";const n={class:"h-screen h-screen-ios overflow-y-auto text-base"},i={class:"container mx-auto px-4"},u={setup(_){return(m,p)=>{const o=s("router-view");return r(),a("div",n,[e(t),c("div",i,[e(o)])])}}};export{u as default};

View File

@ -0,0 +1 @@
import{N as t}from"./main.f55cd568.js";import{r as s,o as r,c,b as e,t as a}from"./vendor.e9042f2c.js";const n={class:"h-screen h-screen-ios overflow-y-auto text-base"},i={class:"container mx-auto px-4"},l={setup(_){return(m,p)=>{const o=s("router-view");return r(),c("div",n,[e(t),a("div",i,[e(o)])])}}};export{l as default};

View File

@ -1,4 +1,4 @@
import{aR as Zi,am as Ji,i as Qi,k as eo,ac as to,M as ro,j as ea,o as ao,c as no,t as io}from"./vendor.e9042f2c.js";import{c as oo}from"./main.9d655092.js";var ta={exports:{}};/*!
import{aR as Zi,am as Ji,i as Qi,k as eo,ac as to,M as ro,j as ea,o as ao,c as no,t as io}from"./vendor.e9042f2c.js";import{c as oo}from"./main.f55cd568.js";var ta={exports:{}};/*!
* Chart.js v2.9.4
* https://www.chartjs.org
* (c) 2020 Chart.js Contributors

View File

@ -1 +1 @@
import{_ as c}from"./main.9d655092.js";import{o as e,c as t,t as o}from"./vendor.e9042f2c.js";const s={},r={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},n=o("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),a=o("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),l=[n,a];function i(_,d){return e(),t("svg",r,l)}var m=c(s,[["render",i]]);export{m as L};
import{_ as c}from"./main.f55cd568.js";import{o as e,c as t,t as o}from"./vendor.e9042f2c.js";const s={},r={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},n=o("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),a=o("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),l=[n,a];function i(_,d){return e(),t("svg",r,l)}var m=c(s,[["render",i]]);export{m as L};

View File

@ -1 +1 @@
import{g as N,C as M,i as w,m as p,n as $,a2 as E,q as j,k as y,r as l,o as c,c as G,b as n,w as u,y as e,s as B,a0 as _,t as b,v as h,x as I,B as L,a as R}from"./vendor.e9042f2c.js";import{u as T,a as U}from"./main.9d655092.js";const A=["onSubmit"],F={class:"mt-5 mb-8"},O={class:"mb-4"},J={setup(P){const k=T(),s=U(),{t:m}=N(),V=M(),d=w(!1);let o=w(!1);const x={email:{required:p.withMessage(m("validation.required"),$),email:p.withMessage(m("validation.email_incorrect"),E)},password:{required:p.withMessage(m("validation.required"),$)}},t=j(x,y(()=>s.loginData)),S=y(()=>o.value?"text":"password");async function q(){if(R.defaults.withCredentials=!0,t.value.$touch(),t.value.$invalid)return!0;d.value=!0;try{d.value=!0,await s.login(s.loginData),V.push("/admin/dashboard"),k.showNotification({type:"success",message:"Logged in successfully."})}catch{d.value=!1}}return(i,a)=>{const g=l("BaseInput"),f=l("BaseInputGroup"),v=l("BaseIcon"),D=l("router-link"),C=l("BaseButton");return c(),G("form",{id:"loginForm",class:"mt-12 text-left",onSubmit:L(q,["prevent"])},[n(f,{error:e(t).email.$error&&e(t).email.$errors[0].$message,label:i.$t("login.email"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.email,"onUpdate:modelValue":a[0]||(a[0]=r=>e(s).loginData.email=r),invalid:e(t).email.$error,focus:"",type:"email",name:"email",onInput:a[1]||(a[1]=r=>e(t).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(f,{error:e(t).password.$error&&e(t).password.$errors[0].$message,label:i.$t("login.password"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.password,"onUpdate:modelValue":a[4]||(a[4]=r=>e(s).loginData.password=r),invalid:e(t).password.$error,type:e(S),name:"password",onInput:a[5]||(a[5]=r=>e(t).password.$touch())},{right:u(()=>[e(o)?(c(),B(v,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:a[2]||(a[2]=r=>_(o)?o.value=!e(o):o=!e(o))})):(c(),B(v,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:a[3]||(a[3]=r=>_(o)?o.value=!e(o):o=!e(o))}))]),_:1},8,["modelValue","invalid","type"])]),_:1},8,["error","label"]),b("div",F,[b("div",O,[n(D,{to:"forgot-password",class:"text-sm text-primary-400 hover:text-gray-700"},{default:u(()=>[h(I(i.$t("login.forgot_password")),1)]),_:1})])]),n(C,{loading:d.value,type:"submit"},{default:u(()=>[h(I(i.$t("login.login")),1)]),_:1},8,["loading"])],40,A)}}};export{J as default};
import{g as N,C as M,i as w,m as p,n as $,a2 as E,q as j,k as y,r as l,o as c,c as G,b as n,w as u,y as e,s as B,a0 as _,t as b,v as h,x as I,B as L,a as R}from"./vendor.e9042f2c.js";import{u as T,a as U}from"./main.f55cd568.js";const A=["onSubmit"],F={class:"mt-5 mb-8"},O={class:"mb-4"},J={setup(P){const k=T(),s=U(),{t:m}=N(),V=M(),d=w(!1);let o=w(!1);const x={email:{required:p.withMessage(m("validation.required"),$),email:p.withMessage(m("validation.email_incorrect"),E)},password:{required:p.withMessage(m("validation.required"),$)}},t=j(x,y(()=>s.loginData)),S=y(()=>o.value?"text":"password");async function q(){if(R.defaults.withCredentials=!0,t.value.$touch(),t.value.$invalid)return!0;d.value=!0;try{d.value=!0,await s.login(s.loginData),V.push("/admin/dashboard"),k.showNotification({type:"success",message:"Logged in successfully."})}catch{d.value=!1}}return(i,a)=>{const g=l("BaseInput"),f=l("BaseInputGroup"),v=l("BaseIcon"),D=l("router-link"),C=l("BaseButton");return c(),G("form",{id:"loginForm",class:"mt-12 text-left",onSubmit:L(q,["prevent"])},[n(f,{error:e(t).email.$error&&e(t).email.$errors[0].$message,label:i.$t("login.email"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.email,"onUpdate:modelValue":a[0]||(a[0]=r=>e(s).loginData.email=r),invalid:e(t).email.$error,focus:"",type:"email",name:"email",onInput:a[1]||(a[1]=r=>e(t).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(f,{error:e(t).password.$error&&e(t).password.$errors[0].$message,label:i.$t("login.password"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.password,"onUpdate:modelValue":a[4]||(a[4]=r=>e(s).loginData.password=r),invalid:e(t).password.$error,type:e(S),name:"password",onInput:a[5]||(a[5]=r=>e(t).password.$touch())},{right:u(()=>[e(o)?(c(),B(v,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:a[2]||(a[2]=r=>_(o)?o.value=!e(o):o=!e(o))})):(c(),B(v,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:a[3]||(a[3]=r=>_(o)?o.value=!e(o):o=!e(o))}))]),_:1},8,["modelValue","invalid","type"])]),_:1},8,["error","label"]),b("div",F,[b("div",O,[n(D,{to:"forgot-password",class:"text-sm text-primary-400 hover:text-gray-700"},{default:u(()=>[h(I(i.$t("login.forgot_password")),1)]),_:1})])]),n(C,{loading:d.value,type:"submit"},{default:u(()=>[h(I(i.$t("login.login")),1)]),_:1},8,["loading"])],40,A)}}};export{J as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{g as k,u as T,am as j,r,o as p,s as f,w as t,y as c,b as u,v as z,x as S,A as C,i as E,k as O,c as F,z as P,F as G,j as V}from"./vendor.e9042f2c.js";import{i as x,u as I,r as A,d as M,g as $,e as D}from"./main.9d655092.js";import{_ as H}from"./NoteModal.4c55688d.js";const L={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(g){const d=g,N=x(),_=I(),{t:a}=k(),o=A(),h=T(),y=M(),b=$();j("utils");function w(n){o.fetchNote(n),b.openModal({title:a("settings.customization.notes.edit_note"),componentName:"NoteModal",size:"md",refreshData:d.loadData})}function s(n){N.openDialog({title:a("general.are_you_sure"),message:a("settings.customization.notes.note_confirm_delete"),yesLabel:a("general.yes"),noLabel:a("general.no"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{(await o.deleteNote(n)).data.success?_.showNotification({type:"success",message:a("settings.customization.notes.deleted_message")}):_.showNotification({type:"error",message:a("settings.customization.notes.already_in_use")}),d.loadData&&d.loadData()})}return(n,e)=>{const i=r("BaseIcon"),m=r("BaseButton"),B=r("BaseDropdownItem"),l=r("BaseDropdown");return p(),f(l,null,{activator:t(()=>[c(h).name==="notes.view"?(p(),f(m,{key:0,variant:"primary"},{default:t(()=>[u(i,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(p(),f(i,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[c(y).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(B,{key:0,onClick:e[0]||(e[0]=v=>w(g.row.id))},{default:t(()=>[u(i,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),z(" "+S(n.$t("general.edit")),1)]),_:1})):C("",!0),c(y).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(B,{key:1,onClick:e[1]||(e[1]=v=>s(g.row.id))},{default:t(()=>[u(i,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),z(" "+S(n.$t("general.delete")),1)]),_:1})):C("",!0)]),_:1})}}},J={setup(g){const{t:d}=k(),N=$();x();const _=A();I();const a=M(),o=E(""),h=O(()=>[{key:"name",label:d("settings.customization.notes.name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"type",label:d("settings.customization.notes.type"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function y({page:s,filter:n,sort:e}){let i=V({orderByField:e.fieldName||"created_at",orderBy:e.order||"desc",page:s}),m=await _.fetchNotes(i);return{data:m.data.data,pagination:{totalPages:m.data.meta.last_page,currentPage:s,totalCount:m.data.meta.total,limit:5}}}async function b(){await N.openModal({title:d("settings.customization.notes.add_note"),componentName:"NoteModal",size:"md",refreshData:o.value&&o.value.refresh})}async function w(){o.value&&o.value.refresh()}return(s,n)=>{const e=r("BaseIcon"),i=r("BaseButton"),m=r("BaseTable"),B=r("BaseSettingCard");return p(),F(G,null,[u(H),u(B,{title:s.$t("settings.customization.notes.title"),description:s.$t("settings.customization.notes.description")},{action:t(()=>[c(a).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(i,{key:0,variant:"primary-outline",onClick:b},{left:t(l=>[u(e,{class:P(l.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[z(" "+S(s.$t("settings.customization.notes.add_note")),1)]),_:1})):C("",!0)]),default:t(()=>[u(m,{ref:(l,v)=>{v.table=l,o.value=l},data:y,columns:c(h),class:"mt-14"},{"cell-actions":t(({row:l})=>[u(L,{row:l.data,table:o.value,"load-data":w},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{J as default};
import{g as k,u as T,am as j,r,o as f,s as p,w as t,y as c,b as u,v as z,x as S,A as C,i as E,k as O,c as F,z as P,F as G,j as V}from"./vendor.e9042f2c.js";import{i as x,u as I,r as A,d as M,g as $,e as D}from"./main.f55cd568.js";import{_ as H}from"./NoteModal.0435aa4f.js";const L={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(g){const d=g,N=x(),_=I(),{t:a}=k(),o=A(),h=T(),y=M(),b=$();j("utils");function w(n){o.fetchNote(n),b.openModal({title:a("settings.customization.notes.edit_note"),componentName:"NoteModal",size:"md",refreshData:d.loadData})}function s(n){N.openDialog({title:a("general.are_you_sure"),message:a("settings.customization.notes.note_confirm_delete"),yesLabel:a("general.yes"),noLabel:a("general.no"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{(await o.deleteNote(n)).data.success?_.showNotification({type:"success",message:a("settings.customization.notes.deleted_message")}):_.showNotification({type:"error",message:a("settings.customization.notes.already_in_use")}),d.loadData&&d.loadData()})}return(n,e)=>{const i=r("BaseIcon"),m=r("BaseButton"),B=r("BaseDropdownItem"),l=r("BaseDropdown");return f(),p(l,null,{activator:t(()=>[c(h).name==="notes.view"?(f(),p(m,{key:0,variant:"primary"},{default:t(()=>[u(i,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(f(),p(i,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[c(y).hasAbilities(c(D).MANAGE_NOTE)?(f(),p(B,{key:0,onClick:e[0]||(e[0]=v=>w(g.row.id))},{default:t(()=>[u(i,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),z(" "+S(n.$t("general.edit")),1)]),_:1})):C("",!0),c(y).hasAbilities(c(D).MANAGE_NOTE)?(f(),p(B,{key:1,onClick:e[1]||(e[1]=v=>s(g.row.id))},{default:t(()=>[u(i,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),z(" "+S(n.$t("general.delete")),1)]),_:1})):C("",!0)]),_:1})}}},J={setup(g){const{t:d}=k(),N=$();x();const _=A();I();const a=M(),o=E(""),h=O(()=>[{key:"name",label:d("settings.customization.notes.name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"type",label:d("settings.customization.notes.type"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function y({page:s,filter:n,sort:e}){let i=V({orderByField:e.fieldName||"created_at",orderBy:e.order||"desc",page:s}),m=await _.fetchNotes(i);return{data:m.data.data,pagination:{totalPages:m.data.meta.last_page,currentPage:s,totalCount:m.data.meta.total,limit:5}}}async function b(){await N.openModal({title:d("settings.customization.notes.add_note"),componentName:"NoteModal",size:"md",refreshData:o.value&&o.value.refresh})}async function w(){o.value&&o.value.refresh()}return(s,n)=>{const e=r("BaseIcon"),i=r("BaseButton"),m=r("BaseTable"),B=r("BaseSettingCard");return f(),F(G,null,[u(H),u(B,{title:s.$t("settings.customization.notes.title"),description:s.$t("settings.customization.notes.description")},{action:t(()=>[c(a).hasAbilities(c(D).MANAGE_NOTE)?(f(),p(i,{key:0,variant:"primary-outline",onClick:b},{left:t(l=>[u(e,{class:P(l.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[z(" "+S(s.$t("settings.customization.notes.add_note")),1)]),_:1})):C("",!0)]),default:t(()=>[u(m,{ref:(l,v)=>{v.table=l,o.value=l},data:y,columns:c(h),class:"mt-14"},{"cell-actions":t(({row:l})=>[u(L,{row:l.data,table:o.value,"load-data":w},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{J as default};

View File

@ -1 +1 @@
import{i as h,g as k,j as E,k as m,m as y,n as F,a2 as M,q as Y,r as o,o as w,s as S,w as u,t as v,b as d,y as i,z as j,A as D,v as U,x as z,B as G,a0 as B}from"./vendor.e9042f2c.js";import{c as O}from"./main.9d655092.js";const A=["onSubmit"],R={class:"grid-cols-2 col-span-1 mt-14"},T={class:"divide-y divide-gray-200"},L={setup(H){const s=O();let r=h(!1);const{t:f}=k(),n=E({notify_invoice_viewed:s.selectedCompanySettings.notify_invoice_viewed,notify_estimate_viewed:s.selectedCompanySettings.notify_estimate_viewed,notification_email:s.selectedCompanySettings.notification_email}),$=m(()=>({notification_email:{required:y.withMessage(f("validation.required"),F),email:y.withMessage(f("validation.email_incorrect"),M)}})),l=Y($,m(()=>n)),_=m({get:()=>n.notify_invoice_viewed==="YES",set:async e=>{const t=e?"YES":"NO";let c={settings:{notify_invoice_viewed:t}};n.notify_invoice_viewed=t,await s.updateCompanySettings({data:c,message:"general.setting_updated"})}}),p=m({get:()=>n.notify_estimate_viewed==="YES",set:async e=>{const t=e?"YES":"NO";let c={settings:{notify_estimate_viewed:t}};n.notify_estimate_viewed=t,await s.updateCompanySettings({data:c,message:"general.setting_updated"})}});async function V(){if(l.value.$touch(),l.value.$invalid)return!0;r.value=!0;const e={settings:{notification_email:n.notification_email}};await s.updateCompanySettings({data:e,message:"settings.notification.email_save_message"}),r.value=!1}return(e,t)=>{const c=o("BaseInput"),C=o("BaseInputGroup"),b=o("BaseIcon"),I=o("BaseButton"),N=o("BaseDivider"),g=o("BaseSwitchSection"),q=o("BaseSettingCard");return w(),S(q,{title:e.$t("settings.notification.title"),description:e.$t("settings.notification.description")},{default:u(()=>[v("form",{action:"",onSubmit:G(V,["prevent"])},[v("div",R,[d(C,{error:i(l).notification_email.$error&&i(l).notification_email.$errors[0].$message,label:e.$t("settings.notification.email"),class:"my-2",required:""},{default:u(()=>[d(c,{modelValue:i(n).notification_email,"onUpdate:modelValue":t[0]||(t[0]=a=>i(n).notification_email=a),modelModifiers:{trim:!0},invalid:i(l).notification_email.$error,type:"email",onInput:t[1]||(t[1]=a=>i(l).notification_email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),d(I,{disabled:i(r),loading:i(r),variant:"primary",type:"submit",class:"mt-6"},{left:u(a=>[i(r)?D("",!0):(w(),S(b,{key:0,class:j(a.class),name:"SaveIcon"},null,8,["class"]))]),default:u(()=>[U(" "+z(e.$tc("settings.notification.save")),1)]),_:1},8,["disabled","loading"])])],40,A),d(N,{class:"mt-6 mb-2"}),v("ul",T,[d(g,{modelValue:i(_),"onUpdate:modelValue":t[2]||(t[2]=a=>B(_)?_.value=a:null),title:e.$t("settings.notification.invoice_viewed"),description:e.$t("settings.notification.invoice_viewed_desc")},null,8,["modelValue","title","description"]),d(g,{modelValue:i(p),"onUpdate:modelValue":t[3]||(t[3]=a=>B(p)?p.value=a:null),title:e.$t("settings.notification.estimate_viewed"),description:e.$t("settings.notification.estimate_viewed_desc")},null,8,["modelValue","title","description"])])]),_:1},8,["title","description"])}}};export{L as default};
import{i as h,g as k,j as E,k as m,m as y,n as F,a2 as M,q as Y,r as o,o as w,s as S,w as u,t as v,b as d,y as i,z as j,A as D,v as U,x as z,B as G,a0 as B}from"./vendor.e9042f2c.js";import{c as O}from"./main.f55cd568.js";const A=["onSubmit"],R={class:"grid-cols-2 col-span-1 mt-14"},T={class:"divide-y divide-gray-200"},L={setup(H){const s=O();let r=h(!1);const{t:f}=k(),n=E({notify_invoice_viewed:s.selectedCompanySettings.notify_invoice_viewed,notify_estimate_viewed:s.selectedCompanySettings.notify_estimate_viewed,notification_email:s.selectedCompanySettings.notification_email}),$=m(()=>({notification_email:{required:y.withMessage(f("validation.required"),F),email:y.withMessage(f("validation.email_incorrect"),M)}})),l=Y($,m(()=>n)),_=m({get:()=>n.notify_invoice_viewed==="YES",set:async e=>{const t=e?"YES":"NO";let c={settings:{notify_invoice_viewed:t}};n.notify_invoice_viewed=t,await s.updateCompanySettings({data:c,message:"general.setting_updated"})}}),p=m({get:()=>n.notify_estimate_viewed==="YES",set:async e=>{const t=e?"YES":"NO";let c={settings:{notify_estimate_viewed:t}};n.notify_estimate_viewed=t,await s.updateCompanySettings({data:c,message:"general.setting_updated"})}});async function V(){if(l.value.$touch(),l.value.$invalid)return!0;r.value=!0;const e={settings:{notification_email:n.notification_email}};await s.updateCompanySettings({data:e,message:"settings.notification.email_save_message"}),r.value=!1}return(e,t)=>{const c=o("BaseInput"),C=o("BaseInputGroup"),b=o("BaseIcon"),I=o("BaseButton"),N=o("BaseDivider"),g=o("BaseSwitchSection"),q=o("BaseSettingCard");return w(),S(q,{title:e.$t("settings.notification.title"),description:e.$t("settings.notification.description")},{default:u(()=>[v("form",{action:"",onSubmit:G(V,["prevent"])},[v("div",R,[d(C,{error:i(l).notification_email.$error&&i(l).notification_email.$errors[0].$message,label:e.$t("settings.notification.email"),class:"my-2",required:""},{default:u(()=>[d(c,{modelValue:i(n).notification_email,"onUpdate:modelValue":t[0]||(t[0]=a=>i(n).notification_email=a),modelModifiers:{trim:!0},invalid:i(l).notification_email.$error,type:"email",onInput:t[1]||(t[1]=a=>i(l).notification_email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),d(I,{disabled:i(r),loading:i(r),variant:"primary",type:"submit",class:"mt-6"},{left:u(a=>[i(r)?D("",!0):(w(),S(b,{key:0,class:j(a.class),name:"SaveIcon"},null,8,["class"]))]),default:u(()=>[U(" "+z(e.$tc("settings.notification.save")),1)]),_:1},8,["disabled","loading"])])],40,A),d(N,{class:"mt-6 mb-2"}),v("ul",T,[d(g,{modelValue:i(_),"onUpdate:modelValue":t[2]||(t[2]=a=>B(_)?_.value=a:null),title:e.$t("settings.notification.invoice_viewed"),description:e.$t("settings.notification.invoice_viewed_desc")},null,8,["modelValue","title","description"]),d(g,{modelValue:i(p),"onUpdate:modelValue":t[3]||(t[3]=a=>B(p)?p.value=a:null),title:e.$t("settings.notification.estimate_viewed"),description:e.$t("settings.notification.estimate_viewed_desc")},null,8,["modelValue","title","description"])])]),_:1},8,["title","description"])}}};export{L as default};

View File

@ -1 +1 @@
import{g as I,i as S,k as p,m as P,n as V,p as C,q as k,r as u,o as q,s as j,w as r,t as c,v as y,x as v,y as t,b as s,z as x,B as N}from"./vendor.e9042f2c.js";import{g as z,o as D}from"./main.9d655092.js";const G={class:"flex justify-between w-full"},L=["onSubmit"],T={class:"p-4 sm:p-6"},A={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},F={setup(U){const o=z(),e=D(),{t:M}=I(),l=S(!1),g=p(()=>({currentPaymentMode:{name:{required:P.withMessage(M("validation.required"),V),minLength:P.withMessage(M("validation.name_min_length",{count:3}),C(3))}}})),a=k(g,p(()=>e)),h=p(()=>o.active&&o.componentName==="PaymentModeModal");async function B(){if(a.value.currentPaymentMode.$touch(),a.value.currentPaymentMode.$invalid)return!0;try{const n=e.currentPaymentMode.id?e.updatePaymentMode:e.addPaymentMode;l.value=!0,await n(e.currentPaymentMode),l.value=!1,o.refreshData&&o.refreshData(),d()}catch{return l.value=!1,!0}}function d(){o.closeModal(),setTimeout(()=>{a.value.$reset(),e.currentPaymentMode={id:"",name:null}})}return(n,i)=>{const f=u("BaseIcon"),b=u("BaseInput"),$=u("BaseInputGroup"),_=u("BaseButton"),w=u("BaseModal");return q(),j(w,{show:t(h),onClose:d},{header:r(()=>[c("div",G,[y(v(t(o).title)+" ",1),s(f,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[c("form",{action:"",onSubmit:N(B,["prevent"])},[c("div",T,[s($,{label:n.$t("settings.payment_modes.mode_name"),error:t(a).currentPaymentMode.name.$error&&t(a).currentPaymentMode.name.$errors[0].$message,required:""},{default:r(()=>[s(b,{modelValue:t(e).currentPaymentMode.name,"onUpdate:modelValue":i[0]||(i[0]=m=>t(e).currentPaymentMode.name=m),invalid:t(a).currentPaymentMode.name.$error,onInput:i[1]||(i[1]=m=>t(a).currentPaymentMode.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),c("div",A,[s(_,{variant:"primary-outline",class:"mr-3",type:"button",onClick:d},{default:r(()=>[y(v(n.$t("general.cancel")),1)]),_:1}),s(_,{loading:l.value,disabled:l.value,variant:"primary",type:"submit"},{left:r(m=>[s(f,{name:"SaveIcon",class:x(m.class)},null,8,["class"])]),default:r(()=>[y(" "+v(t(e).currentPaymentMode.id?n.$t("general.update"):n.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,L)]),_:1},8,["show"])}}};export{F as _};
import{g as I,i as S,k as p,m as P,n as V,p as C,q as k,r as u,o as q,s as j,w as r,t as c,v as y,x as v,y as t,b as s,z as x,B as N}from"./vendor.e9042f2c.js";import{g as z,o as D}from"./main.f55cd568.js";const G={class:"flex justify-between w-full"},L=["onSubmit"],T={class:"p-4 sm:p-6"},A={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},F={setup(U){const o=z(),e=D(),{t:f}=I(),l=S(!1),g=p(()=>({currentPaymentMode:{name:{required:P.withMessage(f("validation.required"),V),minLength:P.withMessage(f("validation.name_min_length",{count:3}),C(3))}}})),a=k(g,p(()=>e)),h=p(()=>o.active&&o.componentName==="PaymentModeModal");async function B(){if(a.value.currentPaymentMode.$touch(),a.value.currentPaymentMode.$invalid)return!0;try{const n=e.currentPaymentMode.id?e.updatePaymentMode:e.addPaymentMode;l.value=!0,await n(e.currentPaymentMode),l.value=!1,o.refreshData&&o.refreshData(),d()}catch{return l.value=!1,!0}}function d(){o.closeModal(),setTimeout(()=>{a.value.$reset(),e.currentPaymentMode={id:"",name:null}})}return(n,i)=>{const M=u("BaseIcon"),b=u("BaseInput"),$=u("BaseInputGroup"),_=u("BaseButton"),w=u("BaseModal");return q(),j(w,{show:t(h),onClose:d},{header:r(()=>[c("div",G,[y(v(t(o).title)+" ",1),s(M,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[c("form",{action:"",onSubmit:N(B,["prevent"])},[c("div",T,[s($,{label:n.$t("settings.payment_modes.mode_name"),error:t(a).currentPaymentMode.name.$error&&t(a).currentPaymentMode.name.$errors[0].$message,required:""},{default:r(()=>[s(b,{modelValue:t(e).currentPaymentMode.name,"onUpdate:modelValue":i[0]||(i[0]=m=>t(e).currentPaymentMode.name=m),invalid:t(a).currentPaymentMode.name.$error,onInput:i[1]||(i[1]=m=>t(a).currentPaymentMode.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),c("div",A,[s(_,{variant:"primary-outline",class:"mr-3",type:"button",onClick:d},{default:r(()=>[y(v(n.$t("general.cancel")),1)]),_:1}),s(_,{loading:l.value,disabled:l.value,variant:"primary",type:"submit"},{left:r(m=>[s(M,{name:"SaveIcon",class:x(m.class)},null,8,["class"])]),default:r(()=>[y(" "+v(t(e).currentPaymentMode.id?n.$t("general.update"):n.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,L)]),_:1},8,["show"])}}};export{F as _};

View File

@ -1 +1 @@
import{g as D,u as I,am as x,r as d,o as p,s as v,w as a,y as M,b as t,v as b,x as w,i as $,k as z,c as N,z as j,F as T}from"./vendor.e9042f2c.js";import{i as P,u as F,o as C,d as H,g as S}from"./main.9d655092.js";import{_ as L}from"./PaymentModeModal.118ad948.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(u){const c=u,y=P();F();const{t:s}=D(),o=C(),_=I();H();const f=S();x("utils");function g(e){o.fetchPaymentMode(e),f.openModal({title:s("settings.payment_modes.edit_payment_mode"),componentName:"PaymentModeModal",refreshData:c.loadData&&c.loadData,size:"sm"})}function B(e){y.openDialog({title:s("general.are_you_sure"),message:s("settings.payment_modes.payment_mode_confirm_delete"),yesLabel:s("general.ok"),noLabel:s("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async l=>{l&&(await o.deletePaymentMode(e),c.loadData&&c.loadData())})}return(e,l)=>{const n=d("BaseIcon"),i=d("BaseButton"),r=d("BaseDropdownItem"),h=d("BaseDropdown");return p(),v(h,null,{activator:a(()=>[M(_).name==="paymentModes.view"?(p(),v(i,{key:0,variant:"primary"},{default:a(()=>[t(n,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(p(),v(n,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:a(()=>[t(r,{onClick:l[0]||(l[0]=m=>g(u.row.id))},{default:a(()=>[t(n,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),b(" "+w(e.$t("general.edit")),1)]),_:1}),t(r,{onClick:l[1]||(l[1]=m=>B(u.row.id))},{default:a(()=>[t(n,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),b(" "+w(e.$t("general.delete")),1)]),_:1})]),_:1})}}},U={setup(u){const c=S();P();const y=C(),{t:s}=D(),o=$(null),_=z(()=>[{key:"name",label:s("settings.payment_modes.mode_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function f(){o.value&&o.value.refresh()}async function g({page:e,filter:l,sort:n}){let i={orderByField:n.fieldName||"created_at",orderBy:n.order||"desc",page:e},r=await y.fetchPaymentModes(i);return{data:r.data.data,pagination:{totalPages:r.data.meta.last_page,currentPage:e,totalCount:r.data.meta.total,limit:5}}}function B(){c.openModal({title:s("settings.payment_modes.add_payment_mode"),componentName:"PaymentModeModal",refreshData:o.value&&o.value.refresh,size:"sm"})}return(e,l)=>{const n=d("BaseIcon"),i=d("BaseButton"),r=d("BaseTable"),h=d("BaseSettingCard");return p(),N(T,null,[t(L),t(h,{title:e.$t("settings.payment_modes.title"),description:e.$t("settings.payment_modes.description")},{action:a(()=>[t(i,{type:"submit",variant:"primary-outline",onClick:B},{left:a(m=>[t(n,{class:j(m.class),name:"PlusIcon"},null,8,["class"])]),default:a(()=>[b(" "+w(e.$t("settings.payment_modes.add_payment_mode")),1)]),_:1})]),default:a(()=>[t(r,{ref:(m,k)=>{k.table=m,o.value=m},data:g,columns:M(_),class:"mt-16"},{"cell-actions":a(({row:m})=>[t(O,{row:m.data,table:o.value,"load-data":f},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{U as default};
import{g as D,u as I,am as x,r as d,o as p,s as v,w as a,y as M,b as t,v as b,x as w,i as $,k as z,c as N,z as j,F as T}from"./vendor.e9042f2c.js";import{i as P,u as F,o as C,d as H,g as S}from"./main.f55cd568.js";import{_ as L}from"./PaymentModeModal.83905526.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(u){const c=u,y=P();F();const{t:s}=D(),o=C(),f=I();H();const _=S();x("utils");function g(e){o.fetchPaymentMode(e),_.openModal({title:s("settings.payment_modes.edit_payment_mode"),componentName:"PaymentModeModal",refreshData:c.loadData&&c.loadData,size:"sm"})}function B(e){y.openDialog({title:s("general.are_you_sure"),message:s("settings.payment_modes.payment_mode_confirm_delete"),yesLabel:s("general.ok"),noLabel:s("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async l=>{l&&(await o.deletePaymentMode(e),c.loadData&&c.loadData())})}return(e,l)=>{const n=d("BaseIcon"),i=d("BaseButton"),r=d("BaseDropdownItem"),h=d("BaseDropdown");return p(),v(h,null,{activator:a(()=>[M(f).name==="paymentModes.view"?(p(),v(i,{key:0,variant:"primary"},{default:a(()=>[t(n,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(p(),v(n,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:a(()=>[t(r,{onClick:l[0]||(l[0]=m=>g(u.row.id))},{default:a(()=>[t(n,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),b(" "+w(e.$t("general.edit")),1)]),_:1}),t(r,{onClick:l[1]||(l[1]=m=>B(u.row.id))},{default:a(()=>[t(n,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),b(" "+w(e.$t("general.delete")),1)]),_:1})]),_:1})}}},U={setup(u){const c=S();P();const y=C(),{t:s}=D(),o=$(null),f=z(()=>[{key:"name",label:s("settings.payment_modes.mode_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function _(){o.value&&o.value.refresh()}async function g({page:e,filter:l,sort:n}){let i={orderByField:n.fieldName||"created_at",orderBy:n.order||"desc",page:e},r=await y.fetchPaymentModes(i);return{data:r.data.data,pagination:{totalPages:r.data.meta.last_page,currentPage:e,totalCount:r.data.meta.total,limit:5}}}function B(){c.openModal({title:s("settings.payment_modes.add_payment_mode"),componentName:"PaymentModeModal",refreshData:o.value&&o.value.refresh,size:"sm"})}return(e,l)=>{const n=d("BaseIcon"),i=d("BaseButton"),r=d("BaseTable"),h=d("BaseSettingCard");return p(),N(T,null,[t(L),t(h,{title:e.$t("settings.payment_modes.title"),description:e.$t("settings.payment_modes.description")},{action:a(()=>[t(i,{type:"submit",variant:"primary-outline",onClick:B},{left:a(m=>[t(n,{class:j(m.class),name:"PlusIcon"},null,8,["class"])]),default:a(()=>[b(" "+w(e.$t("settings.payment_modes.add_payment_mode")),1)]),_:1})]),default:a(()=>[t(r,{ref:(m,k)=>{k.table=m,o.value=m},data:g,columns:M(f),class:"mt-16"},{"cell-actions":a(({row:m})=>[t(O,{row:m.data,table:o.value,"load-data":_},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{U as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{g as b,u as E,C as k,am as C,r as c,o as n,s as a,w as o,y as t,b as s,v as p,x as v,A as I}from"./vendor.e9042f2c.js";import{B as x,u as S,i as V,d as $,e as y}from"./main.9d655092.js";const T={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(l){const _=l,g=x(),w=S(),B=V(),m=$(),{t:r}=b(),h=E();k(),C("utils");async function D(i=null){B.openDialog({title:r("general.are_you_sure"),message:r("invoices.confirm_delete"),yesLabel:r("general.ok"),noLabel:r("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async u=>{u&&await g.deleteMultipleRecurringInvoices(i).then(e=>{e.data.success?(_.table&&_.table.refresh(),g.$patch(d=>{d.selectedRecurringInvoices=[],d.selectAllField=!1}),w.showNotification({type:"success",message:r("recurring_invoices.deleted_message",2)})):e.data.error&&w.showNotification({type:"error",message:e.data.message})})})}return(i,u)=>{const e=c("BaseIcon"),d=c("BaseButton"),f=c("BaseDropdownItem"),R=c("router-link"),N=c("BaseDropdown");return n(),a(N,{"content-loading":t(g).isFetchingViewData},{activator:o(()=>[t(h).name==="recurring-invoices.view"?(n(),a(d,{key:0,variant:"primary"},{default:o(()=>[s(e,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(n(),a(e,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[t(m).hasAbilities(t(y).EDIT_RECURRING_INVOICE)?(n(),a(R,{key:0,to:`/admin/recurring-invoices/${l.row.id}/edit`},{default:o(()=>[s(f,null,{default:o(()=>[s(e,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):I("",!0),t(h).name!=="recurring-invoices.view"&&t(m).hasAbilities(t(y).VIEW_RECURRING_INVOICE)?(n(),a(R,{key:1,to:`recurring-invoices/${l.row.id}/view`},{default:o(()=>[s(f,null,{default:o(()=>[s(e,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):I("",!0),t(m).hasAbilities(t(y).DELETE_RECURRING_INVOICE)?(n(),a(f,{key:2,onClick:u[0]||(u[0]=j=>D(l.row.id))},{default:o(()=>[s(e,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.delete")),1)]),_:1})):I("",!0)]),_:1},8,["content-loading"])}}};export{T as _};
import{g as b,u as E,C as k,am as C,r as c,o as n,s as a,w as o,y as t,b as s,v as p,x as v,A as I}from"./vendor.e9042f2c.js";import{B as x,u as S,i as V,d as $,e as y}from"./main.f55cd568.js";const T={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(l){const _=l,g=x(),w=S(),B=V(),m=$(),{t:r}=b(),h=E();k(),C("utils");async function D(i=null){B.openDialog({title:r("general.are_you_sure"),message:r("invoices.confirm_delete"),yesLabel:r("general.ok"),noLabel:r("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async u=>{u&&await g.deleteMultipleRecurringInvoices(i).then(e=>{e.data.success?(_.table&&_.table.refresh(),g.$patch(d=>{d.selectedRecurringInvoices=[],d.selectAllField=!1}),w.showNotification({type:"success",message:r("recurring_invoices.deleted_message",2)})):e.data.error&&w.showNotification({type:"error",message:e.data.message})})})}return(i,u)=>{const e=c("BaseIcon"),d=c("BaseButton"),f=c("BaseDropdownItem"),R=c("router-link"),N=c("BaseDropdown");return n(),a(N,{"content-loading":t(g).isFetchingViewData},{activator:o(()=>[t(h).name==="recurring-invoices.view"?(n(),a(d,{key:0,variant:"primary"},{default:o(()=>[s(e,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(n(),a(e,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[t(m).hasAbilities(t(y).EDIT_RECURRING_INVOICE)?(n(),a(R,{key:0,to:`/admin/recurring-invoices/${l.row.id}/edit`},{default:o(()=>[s(f,null,{default:o(()=>[s(e,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):I("",!0),t(h).name!=="recurring-invoices.view"&&t(m).hasAbilities(t(y).VIEW_RECURRING_INVOICE)?(n(),a(R,{key:1,to:`recurring-invoices/${l.row.id}/view`},{default:o(()=>[s(f,null,{default:o(()=>[s(e,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):I("",!0),t(m).hasAbilities(t(y).DELETE_RECURRING_INVOICE)?(n(),a(f,{key:2,onClick:u[0]||(u[0]=j=>D(l.row.id))},{default:o(()=>[s(e,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.delete")),1)]),_:1})):I("",!0)]),_:1},8,["content-loading"])}}};export{T as _};

View File

@ -1 +1 @@
import{g as q,u as I,C as h,j as S,i as k,k as d,n as w,a2 as L,p as C,aQ as N,q as P,r as f,o as j,c as A,b as n,w as m,y as r,v as E,x as U,B as x,a as D}from"./vendor.e9042f2c.js";import{u as G,h as R}from"./main.9d655092.js";const F=["onSubmit"],z={setup(M){const v=G(),{t}=q(),c=I(),$=h(),o=S({email:"",password:"",password_confirmation:""}),u=k(!1),_=d(()=>({email:{required:w,email:L},password:{required:w,minLength:C(8)},password_confirmation:{sameAsPassword:N(o.password)}})),a=P(_,o),g=d(()=>a.value.email.$error?a.value.email.required.$invalid?t("validation.required"):a.value.email.email?t("validation.email_incorrect"):!1:""),b=d(()=>a.value.password.$error?a.value.password.required.$invalid?t("validation.required"):a.value.password.minLength?t("validation.password_min_length",{count:a.value.password.minLength.$params.min}):!1:""),y=d(()=>a.value.password_confirmation.$error?a.value.password_confirmation.sameAsPassword.$invalid?t("validation.password_incorrect"):!1:"");async function V(i){if(a.value.$touch(),!a.value.$invalid)try{let e={email:o.email,password:o.password,password_confirmation:o.password_confirmation,token:c.params.token};u.value=!0;let l=await D.post("/api/v1/auth/reset/password",e);u.value=!1,l.data&&(v.showNotification({type:"success",message:t("login.password_reset_successfully")}),$.push("/login"))}catch(e){R(e),u.value=!1,e.response&&e.response.status===403}}return(i,e)=>{const l=f("BaseInput"),p=f("BaseInputGroup"),B=f("BaseButton");return j(),A("form",{id:"loginForm",onSubmit:x(V,["prevent"])},[n(p,{error:r(g),label:i.$t("login.email"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).email,"onUpdate:modelValue":e[0]||(e[0]=s=>r(o).email=s),invalid:r(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=s=>r(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(p,{error:r(b),label:i.$t("login.password"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).password,"onUpdate:modelValue":e[2]||(e[2]=s=>r(o).password=s),invalid:r(a).password.$error,type:"password",name:"password",onInput:e[3]||(e[3]=s=>r(a).password.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(p,{error:r(y),label:i.$t("login.retype_password"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).password_confirmation,"onUpdate:modelValue":e[4]||(e[4]=s=>r(o).password_confirmation=s),invalid:r(a).password_confirmation.$error,type:"password",name:"password",onInput:e[5]||(e[5]=s=>r(a).password_confirmation.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(B,{loading:u.value,type:"submit",variant:"primary"},{default:m(()=>[E(U(i.$t("login.reset_password")),1)]),_:1},8,["loading"])],40,F)}}};export{z as default};
import{g as q,u as I,C as h,j as S,i as k,k as d,n as w,a2 as L,p as C,aQ as N,q as P,r as f,o as j,c as A,b as n,w as m,y as r,v as E,x as U,B as x,a as D}from"./vendor.e9042f2c.js";import{u as G,h as R}from"./main.f55cd568.js";const F=["onSubmit"],z={setup(M){const v=G(),{t}=q(),c=I(),$=h(),o=S({email:"",password:"",password_confirmation:""}),u=k(!1),_=d(()=>({email:{required:w,email:L},password:{required:w,minLength:C(8)},password_confirmation:{sameAsPassword:N(o.password)}})),a=P(_,o),g=d(()=>a.value.email.$error?a.value.email.required.$invalid?t("validation.required"):a.value.email.email?t("validation.email_incorrect"):!1:""),b=d(()=>a.value.password.$error?a.value.password.required.$invalid?t("validation.required"):a.value.password.minLength?t("validation.password_min_length",{count:a.value.password.minLength.$params.min}):!1:""),y=d(()=>a.value.password_confirmation.$error?a.value.password_confirmation.sameAsPassword.$invalid?t("validation.password_incorrect"):!1:"");async function V(i){if(a.value.$touch(),!a.value.$invalid)try{let e={email:o.email,password:o.password,password_confirmation:o.password_confirmation,token:c.params.token};u.value=!0;let l=await D.post("/api/v1/auth/reset/password",e);u.value=!1,l.data&&(v.showNotification({type:"success",message:t("login.password_reset_successfully")}),$.push("/login"))}catch(e){R(e),u.value=!1,e.response&&e.response.status===403}}return(i,e)=>{const l=f("BaseInput"),p=f("BaseInputGroup"),B=f("BaseButton");return j(),A("form",{id:"loginForm",onSubmit:x(V,["prevent"])},[n(p,{error:r(g),label:i.$t("login.email"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).email,"onUpdate:modelValue":e[0]||(e[0]=s=>r(o).email=s),invalid:r(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=s=>r(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(p,{error:r(b),label:i.$t("login.password"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).password,"onUpdate:modelValue":e[2]||(e[2]=s=>r(o).password=s),invalid:r(a).password.$error,type:"password",name:"password",onInput:e[3]||(e[3]=s=>r(a).password.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(p,{error:r(y),label:i.$t("login.retype_password"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).password_confirmation,"onUpdate:modelValue":e[4]||(e[4]=s=>r(o).password_confirmation=s),invalid:r(a).password_confirmation.$error,type:"password",name:"password",onInput:e[5]||(e[5]=s=>r(a).password_confirmation.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(B,{loading:u.value,type:"submit",variant:"primary"},{default:m(()=>[E(U(i.$t("login.reset_password")),1)]),_:1},8,["loading"])],40,F)}}};export{z as default};

View File

@ -1 +1 @@
var E=Object.defineProperty;var b=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var g=(s,t,e)=>t in s?E(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,x=(s,t)=>{for(var e in t||(t={}))P.call(t,e)&&g(s,e,t[e]);if(b)for(var e of b(t))T.call(t,e)&&g(s,e,t[e]);return s};import{i as k,g as F,k as L,r as w,o as l,c as i,b as r,t as n,w as p,y as o,s as O,v as D,x as m,z as U,a6 as G,A as N,T as H,a7 as W,F as C,H as q,a8 as J}from"./vendor.e9042f2c.js";import{g as K,r as Q,d as R,e as B}from"./main.9d655092.js";import{_ as X}from"./NoteModal.4c55688d.js";const Y={class:"w-full"},Z={class:"overflow-hidden rounded-md shadow-lg ring-1 ring-black ring-opacity-5"},ee={class:"relative grid bg-white"},te={class:"relative p-4"},se={key:0,class:"relative flex flex-col overflow-auto list max-h-36"},oe=["onClick"],ae={class:"flex justify-between px-2"},ne={class:"m-0 text-base font-semibold leading-tight text-gray-700 cursor-pointer"},le={key:1,class:"flex justify-center p-5 text-gray-400"},re={class:"text-base text-gray-500"},ie={class:"m-0 ml-3 text-sm leading-none cursor-pointer font-base text-primary-400"},fe={props:{type:{type:String,default:null}},emits:["select"],setup(s,{emit:t}){const e=s;k(null);const{t:I}=F(),c=k(null),S=K(),d=Q(),y=R(),_=L(()=>c.value?d.notes.filter(function(a){return a.name.toLowerCase().indexOf(c.value.toLowerCase())!==-1}):d.notes);async function V(){await d.fetchNotes({filter:{},orderByField:"",orderBy:"",type:e.type?e.type:""})}function z(a,u){t("select",x({},d.notes[a])),c.value=null,u()}function j(){S.openModal({title:I("settings.customization.notes.add_note"),componentName:"NoteModal",size:"lg",data:e.type})}return(a,u)=>{const v=w("BaseIcon"),M=w("BaseInput");return l(),i(C,null,[r(X),n("div",Y,[r(o(J),null,{default:p(({isOpen:$})=>[o(y).hasAbilities(o(B).VIEW_NOTE)?(l(),O(o(G),{key:0,class:U([$?"":"text-opacity-90","flex items-center z-10 font-medium text-primary-400 focus:outline-none focus:border-none"]),onClick:V},{default:p(()=>[r(v,{name:"PlusIcon",class:"w-4 h-4 font-medium text-primary-400"}),D(" "+m(a.$t("general.insert_note")),1)]),_:2},1032,["class"])):N("",!0),r(H,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"translate-y-1 opacity-0","enter-to-class":"translate-y-0 opacity-100","leave-active-class":"transition duration-150 ease-in","leave-from-class":"translate-y-0 opacity-100","leave-to-class":"translate-y-1 opacity-0"},{default:p(()=>[r(o(W),{class:"absolute z-20 px-4 mt-3 transform sm:px-0 w-screen max-w-full left-0 top-3"},{default:p(({close:A})=>[n("div",Z,[n("div",ee,[n("div",te,[r(M,{modelValue:c.value,"onUpdate:modelValue":u[0]||(u[0]=f=>c.value=f),placeholder:a.$t("general.search"),type:"text",class:"text-black"},null,8,["modelValue","placeholder"])]),o(_).length>0?(l(),i("div",se,[(l(!0),i(C,null,q(o(_),(f,h)=>(l(),i("div",{key:h,tabindex:"2",class:"px-6 py-4 border-b border-gray-200 border-solid cursor-pointer hover:bg-gray-100 hover:cursor-pointer last:border-b-0",onClick:ce=>z(h,A)},[n("div",ae,[n("label",ne,m(f.name),1)])],8,oe))),128))])):(l(),i("div",le,[n("label",re,m(a.$t("general.no_note_found")),1)]))]),o(y).hasAbilities(o(B).MANAGE_NOTE)?(l(),i("button",{key:0,type:"button",class:"h-10 flex items-center justify-center w-full px-2 py-3 bg-gray-200 border-none outline-none",onClick:j},[r(v,{name:"CheckCircleIcon",class:"text-primary-400"}),n("label",ie,m(a.$t("settings.customization.notes.add_new_note")),1)])):N("",!0)])]),_:1})]),_:1})]),_:1})])],64)}}};export{fe as _};
var E=Object.defineProperty;var b=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var g=(s,t,e)=>t in s?E(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,x=(s,t)=>{for(var e in t||(t={}))P.call(t,e)&&g(s,e,t[e]);if(b)for(var e of b(t))T.call(t,e)&&g(s,e,t[e]);return s};import{i as k,g as F,k as L,r as w,o as l,c as i,b as r,t as n,w as p,y as o,s as O,v as D,x as m,z as U,a6 as G,A as N,T as H,a7 as W,F as C,H as q,a8 as J}from"./vendor.e9042f2c.js";import{g as K,r as Q,d as R,e as B}from"./main.f55cd568.js";import{_ as X}from"./NoteModal.0435aa4f.js";const Y={class:"w-full"},Z={class:"overflow-hidden rounded-md shadow-lg ring-1 ring-black ring-opacity-5"},ee={class:"relative grid bg-white"},te={class:"relative p-4"},se={key:0,class:"relative flex flex-col overflow-auto list max-h-36"},oe=["onClick"],ae={class:"flex justify-between px-2"},ne={class:"m-0 text-base font-semibold leading-tight text-gray-700 cursor-pointer"},le={key:1,class:"flex justify-center p-5 text-gray-400"},re={class:"text-base text-gray-500"},ie={class:"m-0 ml-3 text-sm leading-none cursor-pointer font-base text-primary-400"},fe={props:{type:{type:String,default:null}},emits:["select"],setup(s,{emit:t}){const e=s;k(null);const{t:I}=F(),c=k(null),S=K(),d=Q(),y=R(),_=L(()=>c.value?d.notes.filter(function(a){return a.name.toLowerCase().indexOf(c.value.toLowerCase())!==-1}):d.notes);async function V(){await d.fetchNotes({filter:{},orderByField:"",orderBy:"",type:e.type?e.type:""})}function z(a,u){t("select",x({},d.notes[a])),c.value=null,u()}function j(){S.openModal({title:I("settings.customization.notes.add_note"),componentName:"NoteModal",size:"lg",data:e.type})}return(a,u)=>{const v=w("BaseIcon"),M=w("BaseInput");return l(),i(C,null,[r(X),n("div",Y,[r(o(J),null,{default:p(({isOpen:$})=>[o(y).hasAbilities(o(B).VIEW_NOTE)?(l(),O(o(G),{key:0,class:U([$?"":"text-opacity-90","flex items-center z-10 font-medium text-primary-400 focus:outline-none focus:border-none"]),onClick:V},{default:p(()=>[r(v,{name:"PlusIcon",class:"w-4 h-4 font-medium text-primary-400"}),D(" "+m(a.$t("general.insert_note")),1)]),_:2},1032,["class"])):N("",!0),r(H,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"translate-y-1 opacity-0","enter-to-class":"translate-y-0 opacity-100","leave-active-class":"transition duration-150 ease-in","leave-from-class":"translate-y-0 opacity-100","leave-to-class":"translate-y-1 opacity-0"},{default:p(()=>[r(o(W),{class:"absolute z-20 px-4 mt-3 transform sm:px-0 w-screen max-w-full left-0 top-3"},{default:p(({close:A})=>[n("div",Z,[n("div",ee,[n("div",te,[r(M,{modelValue:c.value,"onUpdate:modelValue":u[0]||(u[0]=f=>c.value=f),placeholder:a.$t("general.search"),type:"text",class:"text-black"},null,8,["modelValue","placeholder"])]),o(_).length>0?(l(),i("div",se,[(l(!0),i(C,null,q(o(_),(f,h)=>(l(),i("div",{key:h,tabindex:"2",class:"px-6 py-4 border-b border-gray-200 border-solid cursor-pointer hover:bg-gray-100 hover:cursor-pointer last:border-b-0",onClick:ce=>z(h,A)},[n("div",ae,[n("label",ne,m(f.name),1)])],8,oe))),128))])):(l(),i("div",le,[n("label",re,m(a.$t("general.no_note_found")),1)]))]),o(y).hasAbilities(o(B).MANAGE_NOTE)?(l(),i("button",{key:0,type:"button",class:"h-10 flex items-center justify-center w-full px-2 py-3 bg-gray-200 border-none outline-none",onClick:j},[r(v,{name:"CheckCircleIcon",class:"text-primary-400"}),n("label",ie,m(a.$t("settings.customization.notes.add_new_note")),1)])):N("",!0)])]),_:1})]),_:1})]),_:1})])],64)}}};export{fe as _};

View File

@ -1 +1 @@
import{g as O,i as h,j as T,k as C,m as p,n as B,a2 as x,q as X,r as d,o as _,s as V,w as l,t as v,v as f,x as $,y as e,b as a,c as E,A as N}from"./vendor.e9042f2c.js";import{g as H,j as J,u as K,c as Q,v as W}from"./main.9d655092.js";const Y={class:"flex justify-between w-full"},Z={key:0,action:""},ee={class:"px-8 py-8 sm:p-6"},te={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},ae={key:1},oe={class:"my-6 mx-4 border border-gray-200 relative"},se=f(" Edit "),re=["src"],le={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},de={setup(ne){const m=H(),M=J(),U=K(),k=Q();W();const{t:u}=O(),n=h(!1),I=h(""),b=h(!1),P=h(["customer","customerCustom","estimate","estimateCustom","company"]);let o=T({id:null,from:null,to:null,subject:"New Estimate",body:null});const D=C(()=>m.active&&m.componentName==="SendEstimateModal"),q=C(()=>m.data),G={from:{required:p.withMessage(u("validation.required"),B),email:p.withMessage(u("validation.email_incorrect"),x)},to:{required:p.withMessage(u("validation.required"),B),email:p.withMessage(u("validation.email_incorrect"),x)},subject:{required:p.withMessage(u("validation.required"),B)},body:{required:p.withMessage(u("validation.required"),B)}},s=X(G,C(()=>o));function A(){b.value=!1}async function F(){let r=await k.fetchBasicMailConfig();o.id=m.id,r.data&&(o.from=r.data.from_mail),q.value&&(o.to=q.value.customer.email),o.body=k.selectedCompanySettings.estimate_mail_body}async function S(){if(s.value.$touch(),s.value.$invalid)return!0;try{if(n.value=!0,!b.value){const c=await M.previewEstimate(o);n.value=!1,b.value=!0;var r=new Blob([c.data],{type:"text/html"});I.value=URL.createObjectURL(r);return}const t=await M.sendEstimate(o);if(n.value=!1,t.data.success)return y(),!0}catch(t){console.error(t),n.value=!1,U.showNotification({type:"error",message:u("estimates.something_went_wrong")})}}function y(){m.closeModal(),setTimeout(()=>{s.value.$reset(),b.value=!1,I.value=null},300)}return(r,t)=>{const c=d("BaseIcon"),j=d("BaseInput"),w=d("BaseInputGroup"),L=d("BaseCustomInput"),R=d("BaseInputGrid"),g=d("BaseButton"),z=d("BaseModal");return _(),V(z,{show:e(D),onClose:y,onOpen:F},{header:l(()=>[v("div",Y,[f($(e(m).title)+" ",1),a(c,{name:"XIcon",class:"h-6 w-6 text-gray-500 cursor-pointer",onClick:y})])]),default:l(()=>[b.value?(_(),E("div",ae,[v("div",oe,[a(g,{class:"absolute top-4 right-4",disabled:n.value,variant:"primary-outline",onClick:A},{default:l(()=>[a(c,{name:"PencilIcon",class:"h-5 mr-2"}),se]),_:1},8,["disabled"]),v("iframe",{src:I.value,frameborder:"0",class:"w-full",style:{"min-height":"500px"}},null,8,re)]),v("div",le,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(r.$t("general.cancel")),1)]),_:1}),a(g,{loading:n.value,disabled:n.value,variant:"primary",type:"button",onClick:S},{default:l(()=>[n.value?N("",!0):(_(),V(c,{key:0,name:"PaperAirplaneIcon",class:"mr-2"})),f(" "+$(r.$t("general.send")),1)]),_:1},8,["loading","disabled"])])])):(_(),E("form",Z,[v("div",ee,[a(R,{layout:"one-column"},{default:l(()=>[a(w,{label:r.$t("general.from"),required:"",error:e(s).from.$error&&e(s).from.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).from,"onUpdate:modelValue":t[0]||(t[0]=i=>e(o).from=i),type:"text",invalid:e(s).from.$error,onInput:t[1]||(t[1]=i=>e(s).from.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.to"),required:"",error:e(s).to.$error&&e(s).to.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).to,"onUpdate:modelValue":t[2]||(t[2]=i=>e(o).to=i),type:"text",invalid:e(s).to.$error,onInput:t[3]||(t[3]=i=>e(s).to.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.subject"),required:"",error:e(s).subject.$error&&e(s).subject.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).subject,"onUpdate:modelValue":t[4]||(t[4]=i=>e(o).subject=i),type:"text",invalid:e(s).subject.$error,onInput:t[5]||(t[5]=i=>e(s).subject.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.body"),required:""},{default:l(()=>[a(L,{modelValue:e(o).body,"onUpdate:modelValue":t[6]||(t[6]=i=>e(o).body=i),fields:P.value},null,8,["modelValue","fields"])]),_:1},8,["label"])]),_:1})]),v("div",te,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(r.$t("general.cancel")),1)]),_:1}),a(g,{loading:n.value,disabled:n.value,variant:"primary",type:"button",class:"mr-3",onClick:S},{default:l(()=>[n.value?N("",!0):(_(),V(c,{key:0,name:"PhotographIcon",class:"h-5 mr-2"})),f(" "+$(r.$t("general.preview")),1)]),_:1},8,["loading","disabled"])])]))]),_:1},8,["show"])}}};export{de as _};
import{g as O,i as h,j as T,k as C,m as p,n as B,a2 as x,q as X,r as d,o as _,s as V,w as l,t as v,v as f,x as $,y as e,b as a,c as E,A as N}from"./vendor.e9042f2c.js";import{g as H,j as J,u as K,c as Q,v as W}from"./main.f55cd568.js";const Y={class:"flex justify-between w-full"},Z={key:0,action:""},ee={class:"px-8 py-8 sm:p-6"},te={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},ae={key:1},oe={class:"my-6 mx-4 border border-gray-200 relative"},se=f(" Edit "),re=["src"],le={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},de={setup(ne){const m=H(),M=J(),U=K(),k=Q();W();const{t:u}=O(),n=h(!1),I=h(""),b=h(!1),P=h(["customer","customerCustom","estimate","estimateCustom","company"]);let o=T({id:null,from:null,to:null,subject:"New Estimate",body:null});const D=C(()=>m.active&&m.componentName==="SendEstimateModal"),q=C(()=>m.data),G={from:{required:p.withMessage(u("validation.required"),B),email:p.withMessage(u("validation.email_incorrect"),x)},to:{required:p.withMessage(u("validation.required"),B),email:p.withMessage(u("validation.email_incorrect"),x)},subject:{required:p.withMessage(u("validation.required"),B)},body:{required:p.withMessage(u("validation.required"),B)}},s=X(G,C(()=>o));function A(){b.value=!1}async function F(){let r=await k.fetchBasicMailConfig();o.id=m.id,r.data&&(o.from=r.data.from_mail),q.value&&(o.to=q.value.customer.email),o.body=k.selectedCompanySettings.estimate_mail_body}async function S(){if(s.value.$touch(),s.value.$invalid)return!0;try{if(n.value=!0,!b.value){const c=await M.previewEstimate(o);n.value=!1,b.value=!0;var r=new Blob([c.data],{type:"text/html"});I.value=URL.createObjectURL(r);return}const t=await M.sendEstimate(o);if(n.value=!1,t.data.success)return y(),!0}catch(t){console.error(t),n.value=!1,U.showNotification({type:"error",message:u("estimates.something_went_wrong")})}}function y(){m.closeModal(),setTimeout(()=>{s.value.$reset(),b.value=!1,I.value=null},300)}return(r,t)=>{const c=d("BaseIcon"),j=d("BaseInput"),w=d("BaseInputGroup"),L=d("BaseCustomInput"),R=d("BaseInputGrid"),g=d("BaseButton"),z=d("BaseModal");return _(),V(z,{show:e(D),onClose:y,onOpen:F},{header:l(()=>[v("div",Y,[f($(e(m).title)+" ",1),a(c,{name:"XIcon",class:"h-6 w-6 text-gray-500 cursor-pointer",onClick:y})])]),default:l(()=>[b.value?(_(),E("div",ae,[v("div",oe,[a(g,{class:"absolute top-4 right-4",disabled:n.value,variant:"primary-outline",onClick:A},{default:l(()=>[a(c,{name:"PencilIcon",class:"h-5 mr-2"}),se]),_:1},8,["disabled"]),v("iframe",{src:I.value,frameborder:"0",class:"w-full",style:{"min-height":"500px"}},null,8,re)]),v("div",le,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(r.$t("general.cancel")),1)]),_:1}),a(g,{loading:n.value,disabled:n.value,variant:"primary",type:"button",onClick:S},{default:l(()=>[n.value?N("",!0):(_(),V(c,{key:0,name:"PaperAirplaneIcon",class:"mr-2"})),f(" "+$(r.$t("general.send")),1)]),_:1},8,["loading","disabled"])])])):(_(),E("form",Z,[v("div",ee,[a(R,{layout:"one-column"},{default:l(()=>[a(w,{label:r.$t("general.from"),required:"",error:e(s).from.$error&&e(s).from.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).from,"onUpdate:modelValue":t[0]||(t[0]=i=>e(o).from=i),type:"text",invalid:e(s).from.$error,onInput:t[1]||(t[1]=i=>e(s).from.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.to"),required:"",error:e(s).to.$error&&e(s).to.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).to,"onUpdate:modelValue":t[2]||(t[2]=i=>e(o).to=i),type:"text",invalid:e(s).to.$error,onInput:t[3]||(t[3]=i=>e(s).to.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.subject"),required:"",error:e(s).subject.$error&&e(s).subject.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).subject,"onUpdate:modelValue":t[4]||(t[4]=i=>e(o).subject=i),type:"text",invalid:e(s).subject.$error,onInput:t[5]||(t[5]=i=>e(s).subject.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.body"),required:""},{default:l(()=>[a(L,{modelValue:e(o).body,"onUpdate:modelValue":t[6]||(t[6]=i=>e(o).body=i),fields:P.value},null,8,["modelValue","fields"])]),_:1},8,["label"])]),_:1})]),v("div",te,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(r.$t("general.cancel")),1)]),_:1}),a(g,{loading:n.value,disabled:n.value,variant:"primary",type:"button",class:"mr-3",onClick:S},{default:l(()=>[n.value?N("",!0):(_(),V(c,{key:0,name:"PhotographIcon",class:"h-5 mr-2"})),f(" "+$(r.$t("general.preview")),1)]),_:1},8,["loading","disabled"])])]))]),_:1},8,["show"])}}};export{de as _};

View File

@ -1 +1 @@
import{g as O,c as X,u as H,f as J,v as K}from"./main.9d655092.js";import{g as Q,i as I,j as W,k as B,m as v,n as h,a2 as x,q as Y,r as d,o as _,s as j,w as l,t as p,v as f,x as $,y as e,b as a,c as N,z as Z,A as U}from"./vendor.e9042f2c.js";const ee={class:"flex justify-between w-full"},oe={key:0,action:""},te={class:"px-8 py-8 sm:p-6"},ae={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},re={key:1},se={class:"my-6 mx-4 border border-gray-200 relative"},ne=f(" Edit "),le=["src"],ie={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},me={setup(ue){const c=O(),M=X(),P=H(),k=J();K();const{t:u}=Q();let i=I(!1);const C=I(""),b=I(!1),z=I(["customer","customerCustom","invoice","invoiceCustom","company"]),r=W({id:null,from:null,to:null,subject:"New Invoice",body:null}),D=B(()=>c.active&&c.componentName==="SendInvoiceModal"),G=B(()=>c.title),q=B(()=>c.data),A={from:{required:v.withMessage(u("validation.required"),h),email:v.withMessage(u("validation.email_incorrect"),x)},to:{required:v.withMessage(u("validation.required"),h),email:v.withMessage(u("validation.email_incorrect"),x)},subject:{required:v.withMessage(u("validation.required"),h)},body:{required:v.withMessage(u("validation.required"),h)}},t=Y(A,B(()=>r));function F(){b.value=!1}async function L(){let s=await M.fetchBasicMailConfig();r.id=c.id,s.data&&(r.from=s.data.from_mail),q.value&&(r.to=q.value.customer.email),r.body=M.selectedCompanySettings.invoice_mail_body}async function S(){if(t.value.$touch(),t.value.$invalid)return!0;try{if(i.value=!0,!b.value){const m=await k.previewInvoice(r);i.value=!1,b.value=!0;var s=new Blob([m.data],{type:"text/html"});C.value=URL.createObjectURL(s);return}if((await k.sendInvoice(r)).data.success)return y(),!0}catch(o){console.error(o),i.value=!1,P.showNotification({type:"error",message:u("invoices.something_went_wrong")})}}function y(){c.closeModal(),setTimeout(()=>{t.value.$reset(),b.value=!1,C.value=null},300)}return(s,o)=>{const m=d("BaseIcon"),V=d("BaseInput"),w=d("BaseInputGroup"),R=d("BaseCustomInput"),T=d("BaseInputGrid"),g=d("BaseButton"),E=d("BaseModal");return _(),j(E,{show:e(D),onClose:y,onOpen:L},{header:l(()=>[p("div",ee,[f($(e(G))+" ",1),a(m,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:y})])]),default:l(()=>[b.value?(_(),N("div",re,[p("div",se,[a(g,{class:"absolute top-4 right-4",disabled:e(i),variant:"primary-outline",onClick:F},{default:l(()=>[a(m,{name:"PencilIcon",class:"h-5 mr-2"}),ne]),_:1},8,["disabled"]),p("iframe",{src:C.value,frameborder:"0",class:"w-full",style:{"min-height":"500px"}},null,8,le)]),p("div",ie,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(s.$t("general.cancel")),1)]),_:1}),a(g,{loading:e(i),disabled:e(i),variant:"primary",type:"button",onClick:o[7]||(o[7]=n=>S())},{default:l(()=>[e(i)?U("",!0):(_(),j(m,{key:0,name:"PaperAirplaneIcon",class:"h-5 mr-2"})),f(" "+$(s.$t("general.send")),1)]),_:1},8,["loading","disabled"])])])):(_(),N("form",oe,[p("div",te,[a(T,{layout:"one-column",class:"col-span-7"},{default:l(()=>[a(w,{label:s.$t("general.from"),required:"",error:e(t).from.$error&&e(t).from.$errors[0].$message},{default:l(()=>[a(V,{modelValue:e(r).from,"onUpdate:modelValue":o[0]||(o[0]=n=>e(r).from=n),type:"text",invalid:e(t).from.$error,onInput:o[1]||(o[1]=n=>e(t).from.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:s.$t("general.to"),required:"",error:e(t).to.$error&&e(t).to.$errors[0].$message},{default:l(()=>[a(V,{modelValue:e(r).to,"onUpdate:modelValue":o[2]||(o[2]=n=>e(r).to=n),type:"text",invalid:e(t).to.$error,onInput:o[3]||(o[3]=n=>e(t).to.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{error:e(t).subject.$error&&e(t).subject.$errors[0].$message,label:s.$t("general.subject"),required:""},{default:l(()=>[a(V,{modelValue:e(r).subject,"onUpdate:modelValue":o[4]||(o[4]=n=>e(r).subject=n),type:"text",invalid:e(t).subject.$error,onInput:o[5]||(o[5]=n=>e(t).subject.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),a(w,{label:s.$t("general.body"),error:e(t).body.$error&&e(t).body.$errors[0].$message,required:""},{default:l(()=>[a(R,{modelValue:e(r).body,"onUpdate:modelValue":o[6]||(o[6]=n=>e(r).body=n),fields:z.value},null,8,["modelValue","fields"])]),_:1},8,["label","error"])]),_:1})]),p("div",ae,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(s.$t("general.cancel")),1)]),_:1}),a(g,{loading:e(i),disabled:e(i),variant:"primary",type:"button",class:"mr-3",onClick:S},{left:l(n=>[e(i)?U("",!0):(_(),j(m,{key:0,class:Z(n.class),name:"PhotographIcon"},null,8,["class"]))]),default:l(()=>[f(" "+$(s.$t("general.preview")),1)]),_:1},8,["loading","disabled"])])]))]),_:1},8,["show"])}}};export{me as _};
import{g as O,c as X,u as H,f as J,v as K}from"./main.f55cd568.js";import{g as Q,i as I,j as W,k as B,m as v,n as h,a2 as x,q as Y,r as d,o as _,s as j,w as l,t as p,v as f,x as $,y as e,b as a,c as N,z as Z,A as U}from"./vendor.e9042f2c.js";const ee={class:"flex justify-between w-full"},oe={key:0,action:""},te={class:"px-8 py-8 sm:p-6"},ae={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},re={key:1},se={class:"my-6 mx-4 border border-gray-200 relative"},ne=f(" Edit "),le=["src"],ie={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},me={setup(ue){const c=O(),M=X(),P=H(),k=J();K();const{t:u}=Q();let i=I(!1);const C=I(""),b=I(!1),z=I(["customer","customerCustom","invoice","invoiceCustom","company"]),r=W({id:null,from:null,to:null,subject:"New Invoice",body:null}),D=B(()=>c.active&&c.componentName==="SendInvoiceModal"),G=B(()=>c.title),q=B(()=>c.data),A={from:{required:v.withMessage(u("validation.required"),h),email:v.withMessage(u("validation.email_incorrect"),x)},to:{required:v.withMessage(u("validation.required"),h),email:v.withMessage(u("validation.email_incorrect"),x)},subject:{required:v.withMessage(u("validation.required"),h)},body:{required:v.withMessage(u("validation.required"),h)}},t=Y(A,B(()=>r));function F(){b.value=!1}async function L(){let s=await M.fetchBasicMailConfig();r.id=c.id,s.data&&(r.from=s.data.from_mail),q.value&&(r.to=q.value.customer.email),r.body=M.selectedCompanySettings.invoice_mail_body}async function S(){if(t.value.$touch(),t.value.$invalid)return!0;try{if(i.value=!0,!b.value){const m=await k.previewInvoice(r);i.value=!1,b.value=!0;var s=new Blob([m.data],{type:"text/html"});C.value=URL.createObjectURL(s);return}if((await k.sendInvoice(r)).data.success)return y(),!0}catch(o){console.error(o),i.value=!1,P.showNotification({type:"error",message:u("invoices.something_went_wrong")})}}function y(){c.closeModal(),setTimeout(()=>{t.value.$reset(),b.value=!1,C.value=null},300)}return(s,o)=>{const m=d("BaseIcon"),V=d("BaseInput"),w=d("BaseInputGroup"),R=d("BaseCustomInput"),T=d("BaseInputGrid"),g=d("BaseButton"),E=d("BaseModal");return _(),j(E,{show:e(D),onClose:y,onOpen:L},{header:l(()=>[p("div",ee,[f($(e(G))+" ",1),a(m,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:y})])]),default:l(()=>[b.value?(_(),N("div",re,[p("div",se,[a(g,{class:"absolute top-4 right-4",disabled:e(i),variant:"primary-outline",onClick:F},{default:l(()=>[a(m,{name:"PencilIcon",class:"h-5 mr-2"}),ne]),_:1},8,["disabled"]),p("iframe",{src:C.value,frameborder:"0",class:"w-full",style:{"min-height":"500px"}},null,8,le)]),p("div",ie,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(s.$t("general.cancel")),1)]),_:1}),a(g,{loading:e(i),disabled:e(i),variant:"primary",type:"button",onClick:o[7]||(o[7]=n=>S())},{default:l(()=>[e(i)?U("",!0):(_(),j(m,{key:0,name:"PaperAirplaneIcon",class:"h-5 mr-2"})),f(" "+$(s.$t("general.send")),1)]),_:1},8,["loading","disabled"])])])):(_(),N("form",oe,[p("div",te,[a(T,{layout:"one-column",class:"col-span-7"},{default:l(()=>[a(w,{label:s.$t("general.from"),required:"",error:e(t).from.$error&&e(t).from.$errors[0].$message},{default:l(()=>[a(V,{modelValue:e(r).from,"onUpdate:modelValue":o[0]||(o[0]=n=>e(r).from=n),type:"text",invalid:e(t).from.$error,onInput:o[1]||(o[1]=n=>e(t).from.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:s.$t("general.to"),required:"",error:e(t).to.$error&&e(t).to.$errors[0].$message},{default:l(()=>[a(V,{modelValue:e(r).to,"onUpdate:modelValue":o[2]||(o[2]=n=>e(r).to=n),type:"text",invalid:e(t).to.$error,onInput:o[3]||(o[3]=n=>e(t).to.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{error:e(t).subject.$error&&e(t).subject.$errors[0].$message,label:s.$t("general.subject"),required:""},{default:l(()=>[a(V,{modelValue:e(r).subject,"onUpdate:modelValue":o[4]||(o[4]=n=>e(r).subject=n),type:"text",invalid:e(t).subject.$error,onInput:o[5]||(o[5]=n=>e(t).subject.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),a(w,{label:s.$t("general.body"),error:e(t).body.$error&&e(t).body.$errors[0].$message,required:""},{default:l(()=>[a(R,{modelValue:e(r).body,"onUpdate:modelValue":o[6]||(o[6]=n=>e(r).body=n),fields:z.value},null,8,["modelValue","fields"])]),_:1},8,["label","error"])]),_:1})]),p("div",ae,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(s.$t("general.cancel")),1)]),_:1}),a(g,{loading:e(i),disabled:e(i),variant:"primary",type:"button",class:"mr-3",onClick:S},{left:l(n=>[e(i)?U("",!0):(_(),j(m,{key:0,class:Z(n.class),name:"PhotographIcon"},null,8,["class"]))]),default:l(()=>[f(" "+$(s.$t("general.preview")),1)]),_:1},8,["loading","disabled"])])]))]),_:1},8,["show"])}}};export{me as _};

View File

@ -1 +1 @@
import{o as i,c as f,W as b,k as g,r as n,s as B,w as c,A as M,t as d,x as P,$ as R,g as j,i as N,u as H,C as q,ac as A,b as a,y as h,a0 as E,H as F,F as O}from"./vendor.e9042f2c.js";import{_ as k,m as U}from"./main.9d655092.js";const D={name:"List"},G={class:"list-none"};function T(o,u,t,s,l,p){return i(),f("div",G,[b(o.$slots,"default")])}var W=k(D,[["render",T]]);const z={name:"ListItem",props:{title:{type:String,required:!1,default:""},active:{type:Boolean,required:!0},index:{type:Number,default:null}},setup(o,{slots:u}){const t="cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center";let s=g(()=>!!u.icon),l=g(()=>o.active?`${t} text-primary-500`:`${t} text-gray-500`);return{hasIconSlot:s,containerClass:l}}},J={key:0,class:"mr-3"};function K(o,u,t,s,l,p){const m=n("router-link");return i(),B(m,R(o.$attrs,{class:s.containerClass}),{default:c(()=>[s.hasIconSlot?(i(),f("span",J,[b(o.$slots,"icon")])):M("",!0),d("span",null,P(t.title),1)]),_:3},16,["class"])}var Q=k(z,[["render",K]]);const X={class:"w-full mb-6 select-wrapper xl:hidden"},Y={class:"flex"},Z={class:"hidden mt-1 xl:block min-w-[240px]"},ee={class:"w-full overflow-hidden"},ne={setup(o){const{t:u}=j();let t=N({});const s=U(),l=H(),p=q(),m=g(()=>s.settingMenu.map(e=>Object.assign({},e,{title:u(e.title)})));A(()=>{l.path==="/admin/settings"&&p.push("/admin/settings/account-settings");const e=m.value.find(_=>_.link===l.path);t.value=e});function w(e){return l.path.indexOf(e)>-1}function x(e){return p.push(e.link)}return(e,_)=>{const v=n("BaseBreadcrumbItem"),y=n("BaseBreadcrumb"),S=n("BasePageHeader"),V=n("BaseMultiselect"),C=n("BaseIcon"),I=n("RouterView"),L=n("BasePage");return i(),B(L,null,{default:c(()=>[a(S,{title:e.$tc("settings.setting",1),class:"mb-6"},{default:c(()=>[a(y,null,{default:c(()=>[a(v,{title:e.$t("general.home"),to:"/admin/dashboard"},null,8,["title"]),a(v,{title:e.$tc("settings.setting",2),to:"/admin/settings/account-settings",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),d("div",X,[a(V,{modelValue:h(t),"onUpdate:modelValue":[_[0]||(_[0]=r=>E(t)?t.value=r:t=r),x],options:h(m),"can-deselect":!1,"value-prop":"title","track-by":"title",label:"title",object:""},null,8,["modelValue","options"])]),d("div",Y,[d("div",Z,[a(W,null,{default:c(()=>[(i(!0),f(O,null,F(h(s).settingMenu,(r,$)=>(i(),B(Q,{key:$,title:e.$t(r.title),to:r.link,active:w(r.link),index:$,class:"py-3"},{icon:c(()=>[a(C,{name:r.icon},null,8,["name"])]),_:2},1032,["title","to","active","index"]))),128))]),_:1})]),d("div",ee,[a(I)])])]),_:1})}}};export{ne as default};
import{o as i,c as f,W as b,k as g,r as n,s as B,w as c,A as M,t as d,x as P,$ as R,g as j,i as N,u as H,C as q,ac as A,b as a,y as h,a0 as E,H as F,F as O}from"./vendor.e9042f2c.js";import{_ as k,m as U}from"./main.f55cd568.js";const D={name:"List"},G={class:"list-none"};function T(o,u,t,s,l,p){return i(),f("div",G,[b(o.$slots,"default")])}var W=k(D,[["render",T]]);const z={name:"ListItem",props:{title:{type:String,required:!1,default:""},active:{type:Boolean,required:!0},index:{type:Number,default:null}},setup(o,{slots:u}){const t="cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center";let s=g(()=>!!u.icon),l=g(()=>o.active?`${t} text-primary-500`:`${t} text-gray-500`);return{hasIconSlot:s,containerClass:l}}},J={key:0,class:"mr-3"};function K(o,u,t,s,l,p){const m=n("router-link");return i(),B(m,R(o.$attrs,{class:s.containerClass}),{default:c(()=>[s.hasIconSlot?(i(),f("span",J,[b(o.$slots,"icon")])):M("",!0),d("span",null,P(t.title),1)]),_:3},16,["class"])}var Q=k(z,[["render",K]]);const X={class:"w-full mb-6 select-wrapper xl:hidden"},Y={class:"flex"},Z={class:"hidden mt-1 xl:block min-w-[240px]"},ee={class:"w-full overflow-hidden"},ne={setup(o){const{t:u}=j();let t=N({});const s=U(),l=H(),p=q(),m=g(()=>s.settingMenu.map(e=>Object.assign({},e,{title:u(e.title)})));A(()=>{l.path==="/admin/settings"&&p.push("/admin/settings/account-settings");const e=m.value.find(_=>_.link===l.path);t.value=e});function w(e){return l.path.indexOf(e)>-1}function x(e){return p.push(e.link)}return(e,_)=>{const v=n("BaseBreadcrumbItem"),y=n("BaseBreadcrumb"),S=n("BasePageHeader"),V=n("BaseMultiselect"),C=n("BaseIcon"),I=n("RouterView"),L=n("BasePage");return i(),B(L,null,{default:c(()=>[a(S,{title:e.$tc("settings.setting",1),class:"mb-6"},{default:c(()=>[a(y,null,{default:c(()=>[a(v,{title:e.$t("general.home"),to:"/admin/dashboard"},null,8,["title"]),a(v,{title:e.$tc("settings.setting",2),to:"/admin/settings/account-settings",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),d("div",X,[a(V,{modelValue:h(t),"onUpdate:modelValue":[_[0]||(_[0]=r=>E(t)?t.value=r:t=r),x],options:h(m),"can-deselect":!1,"value-prop":"title","track-by":"title",label:"title",object:""},null,8,["modelValue","options"])]),d("div",Y,[d("div",Z,[a(W,null,{default:c(()=>[(i(!0),f(O,null,F(h(s).settingMenu,(r,$)=>(i(),B(Q,{key:$,title:e.$t(r.title),to:r.link,active:w(r.link),index:$,class:"py-3"},{icon:c(()=>[a(C,{name:r.icon},null,8,["name"])]),_:2},1032,["title","to","active","index"]))),128))]),_:1})]),d("div",ee,[a(I)])])]),_:1})}}};export{ne as default};

View File

@ -1 +1 @@
import{g as k,i as z,k as $,m as c,n as b,p as N,aZ as j,a4 as D,q as G,r as i,o as g,s as B,w as l,t as y,v as x,x as v,y as e,b as o,z as L,A as U,B as E}from"./vendor.e9042f2c.js";import{q as A,g as X,u as Z,j as F}from"./main.9d655092.js";const H={class:"flex justify-between w-full"},J=["onSubmit"],K={class:"p-4 sm:p-6"},O={class:"z-0 flex justify-end p-4 border-t border-solid border--200 border-modal-bg"},Y={setup(P){const a=A(),u=X();Z(),F();const{t:p,tm:Q}=k();let d=z(!1);const h=$(()=>({currentTaxType:{name:{required:c.withMessage(p("validation.required"),b),minLength:c.withMessage(p("validation.name_min_length",{count:3}),N(3))},percent:{required:c.withMessage(p("validation.required"),b),between:c.withMessage(p("validation.enter_valid_tax_rate"),j(0,100))},description:{maxLength:c.withMessage(p("validation.description_maxlength",{count:255}),D(255))}}})),r=G(h,$(()=>a));async function w(){if(r.value.currentTaxType.$touch(),r.value.currentTaxType.$invalid)return!0;try{const s=a.isEdit?a.updateTaxType:a.addTaxType;d.value=!0;let t=await s(a.currentTaxType);d.value=!1,u.refreshData&&u.refreshData(t.data.data),m()}catch{return d.value=!1,!0}}function m(){u.closeModal(),setTimeout(()=>{a.resetCurrentTaxType(),r.value.$reset()},300)}return(s,t)=>{const f=i("BaseIcon"),V=i("BaseInput"),T=i("BaseInputGroup"),I=i("BaseMoney"),M=i("BaseTextarea"),S=i("BaseSwitch"),q=i("BaseInputGrid"),_=i("BaseButton"),C=i("BaseModal");return g(),B(C,{show:e(u).active&&e(u).componentName==="TaxTypeModal",onClose:m},{header:l(()=>[y("div",H,[x(v(e(u).title)+" ",1),o(f,{name:"XIcon",class:"h-6 w-6 text-gray-500 cursor-pointer",onClick:m})])]),default:l(()=>[y("form",{action:"",onSubmit:E(w,["prevent"])},[y("div",K,[o(q,{layout:"one-column"},{default:l(()=>[o(T,{label:s.$t("tax_types.name"),variant:"horizontal",error:e(r).currentTaxType.name.$error&&e(r).currentTaxType.name.$errors[0].$message,required:""},{default:l(()=>[o(V,{modelValue:e(a).currentTaxType.name,"onUpdate:modelValue":t[0]||(t[0]=n=>e(a).currentTaxType.name=n),invalid:e(r).currentTaxType.name.$error,type:"text",onInput:t[1]||(t[1]=n=>e(r).currentTaxType.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.percent"),variant:"horizontal",error:e(r).currentTaxType.percent.$error&&e(r).currentTaxType.percent.$errors[0].$message,required:""},{default:l(()=>[o(I,{modelValue:e(a).currentTaxType.percent,"onUpdate:modelValue":t[2]||(t[2]=n=>e(a).currentTaxType.percent=n),currency:{decimal:".",thousands:",",symbol:"% ",precision:2,masked:!1},invalid:e(r).currentTaxType.percent.$error,class:"relative w-full focus:border focus:border-solid focus:border-primary",onInput:t[3]||(t[3]=n=>e(r).currentTaxType.percent.$touch())},null,8,["modelValue","currency","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.description"),error:e(r).currentTaxType.description.$error&&e(r).currentTaxType.description.$errors[0].$message,variant:"horizontal"},{default:l(()=>[o(M,{modelValue:e(a).currentTaxType.description,"onUpdate:modelValue":t[4]||(t[4]=n=>e(a).currentTaxType.description=n),invalid:e(r).currentTaxType.description.$error,rows:"4",cols:"50",onInput:t[5]||(t[5]=n=>e(r).currentTaxType.description.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.compound_tax"),variant:"horizontal",class:"flex flex-row-reverse"},{default:l(()=>[o(S,{modelValue:e(a).currentTaxType.compound_tax,"onUpdate:modelValue":t[6]||(t[6]=n=>e(a).currentTaxType.compound_tax=n),class:"flex items-center"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),y("div",O,[o(_,{class:"mr-3 text-sm",variant:"primary-outline",type:"button",onClick:m},{default:l(()=>[x(v(s.$t("general.cancel")),1)]),_:1}),o(_,{loading:e(d),disabled:e(d),variant:"primary",type:"submit"},{left:l(n=>[e(d)?U("",!0):(g(),B(f,{key:0,name:"SaveIcon",class:L(n.class)},null,8,["class"]))]),default:l(()=>[x(" "+v(e(a).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,J)]),_:1},8,["show"])}}};export{Y as _};
import{g as k,i as z,k as $,m as c,n as b,p as N,aZ as j,a4 as D,q as G,r as i,o as g,s as B,w as l,t as y,v as x,x as v,y as e,b as o,z as L,A as U,B as E}from"./vendor.e9042f2c.js";import{q as A,g as X,u as Z,j as F}from"./main.f55cd568.js";const H={class:"flex justify-between w-full"},J=["onSubmit"],K={class:"p-4 sm:p-6"},O={class:"z-0 flex justify-end p-4 border-t border-solid border--200 border-modal-bg"},Y={setup(P){const a=A(),u=X();Z(),F();const{t:p,tm:Q}=k();let d=z(!1);const h=$(()=>({currentTaxType:{name:{required:c.withMessage(p("validation.required"),b),minLength:c.withMessage(p("validation.name_min_length",{count:3}),N(3))},percent:{required:c.withMessage(p("validation.required"),b),between:c.withMessage(p("validation.enter_valid_tax_rate"),j(0,100))},description:{maxLength:c.withMessage(p("validation.description_maxlength",{count:255}),D(255))}}})),r=G(h,$(()=>a));async function w(){if(r.value.currentTaxType.$touch(),r.value.currentTaxType.$invalid)return!0;try{const s=a.isEdit?a.updateTaxType:a.addTaxType;d.value=!0;let t=await s(a.currentTaxType);d.value=!1,u.refreshData&&u.refreshData(t.data.data),m()}catch{return d.value=!1,!0}}function m(){u.closeModal(),setTimeout(()=>{a.resetCurrentTaxType(),r.value.$reset()},300)}return(s,t)=>{const f=i("BaseIcon"),V=i("BaseInput"),T=i("BaseInputGroup"),I=i("BaseMoney"),M=i("BaseTextarea"),S=i("BaseSwitch"),q=i("BaseInputGrid"),_=i("BaseButton"),C=i("BaseModal");return g(),B(C,{show:e(u).active&&e(u).componentName==="TaxTypeModal",onClose:m},{header:l(()=>[y("div",H,[x(v(e(u).title)+" ",1),o(f,{name:"XIcon",class:"h-6 w-6 text-gray-500 cursor-pointer",onClick:m})])]),default:l(()=>[y("form",{action:"",onSubmit:E(w,["prevent"])},[y("div",K,[o(q,{layout:"one-column"},{default:l(()=>[o(T,{label:s.$t("tax_types.name"),variant:"horizontal",error:e(r).currentTaxType.name.$error&&e(r).currentTaxType.name.$errors[0].$message,required:""},{default:l(()=>[o(V,{modelValue:e(a).currentTaxType.name,"onUpdate:modelValue":t[0]||(t[0]=n=>e(a).currentTaxType.name=n),invalid:e(r).currentTaxType.name.$error,type:"text",onInput:t[1]||(t[1]=n=>e(r).currentTaxType.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.percent"),variant:"horizontal",error:e(r).currentTaxType.percent.$error&&e(r).currentTaxType.percent.$errors[0].$message,required:""},{default:l(()=>[o(I,{modelValue:e(a).currentTaxType.percent,"onUpdate:modelValue":t[2]||(t[2]=n=>e(a).currentTaxType.percent=n),currency:{decimal:".",thousands:",",symbol:"% ",precision:2,masked:!1},invalid:e(r).currentTaxType.percent.$error,class:"relative w-full focus:border focus:border-solid focus:border-primary",onInput:t[3]||(t[3]=n=>e(r).currentTaxType.percent.$touch())},null,8,["modelValue","currency","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.description"),error:e(r).currentTaxType.description.$error&&e(r).currentTaxType.description.$errors[0].$message,variant:"horizontal"},{default:l(()=>[o(M,{modelValue:e(a).currentTaxType.description,"onUpdate:modelValue":t[4]||(t[4]=n=>e(a).currentTaxType.description=n),invalid:e(r).currentTaxType.description.$error,rows:"4",cols:"50",onInput:t[5]||(t[5]=n=>e(r).currentTaxType.description.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.compound_tax"),variant:"horizontal",class:"flex flex-row-reverse"},{default:l(()=>[o(S,{modelValue:e(a).currentTaxType.compound_tax,"onUpdate:modelValue":t[6]||(t[6]=n=>e(a).currentTaxType.compound_tax=n),class:"flex items-center"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),y("div",O,[o(_,{class:"mr-3 text-sm",variant:"primary-outline",type:"button",onClick:m},{default:l(()=>[x(v(s.$t("general.cancel")),1)]),_:1}),o(_,{loading:e(d),disabled:e(d),variant:"primary",type:"submit"},{left:l(n=>[e(d)?U("",!0):(g(),B(f,{key:0,name:"SaveIcon",class:L(n.class)},null,8,["class"]))]),default:l(()=>[x(" "+v(e(a).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,J)]),_:1},8,["show"])}}};export{Y as _};

View File

@ -1 +1 @@
import{i as R,u as U,q as A,d as N,g as P,e as x,c as H}from"./main.9d655092.js";import{g as $,u as q,am as Y,r as n,o as m,s as g,w as t,y as s,b as l,v as T,x as B,A as I,i as z,k as M,a5 as j,z as G,c as J,a0 as K}from"./vendor.e9042f2c.js";import{_ as Q}from"./TaxTypeModal.6600475a.js";const W={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(S){const o=S,b=R();U();const{t:i}=$(),h=A(),C=q(),_=N(),c=P();Y("utils");async function v(r){await h.fetchTaxType(r),c.openModal({title:i("settings.tax_types.edit_tax"),componentName:"TaxTypeModal",size:"sm",refreshData:o.loadData&&o.loadData})}function w(r){b.openDialog({title:i("general.are_you_sure"),message:i("settings.tax_types.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async d=>{if(d){if((await h.deleteTaxType(r)).data.success)return o.loadData&&o.loadData(),!0;o.loadData&&o.loadData()}})}return(r,d)=>{const p=n("BaseIcon"),E=n("BaseButton"),D=n("BaseDropdownItem"),a=n("BaseDropdown");return m(),g(a,null,{activator:t(()=>[s(C).name==="tax-types.view"?(m(),g(E,{key:0,variant:"primary"},{default:t(()=>[l(p,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),g(p,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[s(_).hasAbilities(s(x).EDIT_TAX_TYPE)?(m(),g(D,{key:0,onClick:d[0]||(d[0]=u=>v(S.row.id))},{default:t(()=>[l(p,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),T(" "+B(r.$t("general.edit")),1)]),_:1})):I("",!0),s(_).hasAbilities(s(x).DELETE_TAX_TYPE)?(m(),g(D,{key:1,onClick:d[1]||(d[1]=u=>w(S.row.id))},{default:t(()=>[l(p,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),T(" "+B(r.$t("general.delete")),1)]),_:1})):I("",!0)]),_:1})}}},Z={key:0},se={setup(S){const{t:o}=$(),b=Y("utils"),i=H(),h=A(),C=P(),_=N(),c=z(null),v=z(i.selectedCompanySettings.tax_per_item),w=M(()=>[{key:"name",label:o("settings.tax_types.tax_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"compound_tax",label:o("settings.tax_types.compound_tax"),tdClass:"font-medium text-gray-900"},{key:"percent",label:o("settings.tax_types.percent"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]),r=M({get:()=>v.value==="YES",set:async a=>{const u=a?"YES":"NO";let y={settings:{tax_per_item:u}};v.value=u,await i.updateCompanySettings({data:y,message:"general.setting_updated"})}});function d(){return _.hasAbilities([x.DELETE_TAX_TYPE,x.EDIT_TAX_TYPE])}async function p({page:a,filter:u,sort:y}){let k={orderByField:y.fieldName||"created_at",orderBy:y.order||"desc",page:a},f=await h.fetchTaxTypes(k);return{data:f.data.data,pagination:{totalPages:f.data.meta.last_page,currentPage:a,totalCount:f.data.meta.total,limit:5}}}async function E(){c.value&&c.value.refresh()}function D(){C.openModal({title:o("settings.tax_types.add_tax"),componentName:"TaxTypeModal",size:"sm",refreshData:c.value&&c.value.refresh})}return(a,u)=>{const y=n("BaseIcon"),k=n("BaseButton"),f=n("BaseBadge"),O=n("BaseTable"),V=n("BaseDivider"),X=n("BaseSwitchSection"),L=n("BaseSettingCard");return m(),g(L,{title:a.$t("settings.tax_types.title"),description:a.$t("settings.tax_types.description")},j({default:t(()=>[l(Q),l(O,{ref:(e,F)=>{F.table=e,c.value=e},class:"mt-16",data:p,columns:s(w)},j({"cell-compound_tax":t(({row:e})=>[l(f,{"bg-color":s(b).getBadgeStatusColor(e.data.compound_tax?"YES":"NO").bgColor,color:s(b).getBadgeStatusColor(e.data.compound_tax?"YES":"NO").color},{default:t(()=>[T(B(e.data.compound_tax?"Yes":"No".replace("_"," ")),1)]),_:2},1032,["bg-color","color"])]),"cell-percent":t(({row:e})=>[T(B(e.data.percent)+" % ",1)]),_:2},[d()?{name:"cell-actions",fn:t(({row:e})=>[l(W,{row:e.data,table:c.value,"load-data":E},null,8,["row","table"])])}:void 0]),1032,["columns"]),s(_).currentUser.is_owner?(m(),J("div",Z,[l(V,{class:"mt-8 mb-2"}),l(X,{modelValue:s(r),"onUpdate:modelValue":u[0]||(u[0]=e=>K(r)?r.value=e:null),title:a.$t("settings.tax_types.tax_per_item"),description:a.$t("settings.tax_types.tax_setting_description")},null,8,["modelValue","title","description"])])):I("",!0)]),_:2},[s(_).hasAbilities(s(x).CREATE_TAX_TYPE)?{name:"action",fn:t(()=>[l(k,{type:"submit",variant:"primary-outline",onClick:D},{left:t(e=>[l(y,{class:G(e.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[T(" "+B(a.$t("settings.tax_types.add_new_tax")),1)]),_:1})])}:void 0]),1032,["title","description"])}}};export{se as default};
import{i as R,u as U,q as A,d as N,g as P,e as x,c as H}from"./main.f55cd568.js";import{g as $,u as q,am as Y,r as n,o as m,s as g,w as t,y as s,b as l,v as T,x as B,A as I,i as z,k as M,a5 as j,z as G,c as J,a0 as K}from"./vendor.e9042f2c.js";import{_ as Q}from"./TaxTypeModal.2309f47d.js";const W={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(S){const o=S,b=R();U();const{t:i}=$(),h=A(),C=q(),_=N(),c=P();Y("utils");async function v(r){await h.fetchTaxType(r),c.openModal({title:i("settings.tax_types.edit_tax"),componentName:"TaxTypeModal",size:"sm",refreshData:o.loadData&&o.loadData})}function w(r){b.openDialog({title:i("general.are_you_sure"),message:i("settings.tax_types.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async d=>{if(d){if((await h.deleteTaxType(r)).data.success)return o.loadData&&o.loadData(),!0;o.loadData&&o.loadData()}})}return(r,d)=>{const p=n("BaseIcon"),E=n("BaseButton"),D=n("BaseDropdownItem"),a=n("BaseDropdown");return m(),g(a,null,{activator:t(()=>[s(C).name==="tax-types.view"?(m(),g(E,{key:0,variant:"primary"},{default:t(()=>[l(p,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),g(p,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[s(_).hasAbilities(s(x).EDIT_TAX_TYPE)?(m(),g(D,{key:0,onClick:d[0]||(d[0]=u=>v(S.row.id))},{default:t(()=>[l(p,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),T(" "+B(r.$t("general.edit")),1)]),_:1})):I("",!0),s(_).hasAbilities(s(x).DELETE_TAX_TYPE)?(m(),g(D,{key:1,onClick:d[1]||(d[1]=u=>w(S.row.id))},{default:t(()=>[l(p,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),T(" "+B(r.$t("general.delete")),1)]),_:1})):I("",!0)]),_:1})}}},Z={key:0},se={setup(S){const{t:o}=$(),b=Y("utils"),i=H(),h=A(),C=P(),_=N(),c=z(null),v=z(i.selectedCompanySettings.tax_per_item),w=M(()=>[{key:"name",label:o("settings.tax_types.tax_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"compound_tax",label:o("settings.tax_types.compound_tax"),tdClass:"font-medium text-gray-900"},{key:"percent",label:o("settings.tax_types.percent"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]),r=M({get:()=>v.value==="YES",set:async a=>{const u=a?"YES":"NO";let y={settings:{tax_per_item:u}};v.value=u,await i.updateCompanySettings({data:y,message:"general.setting_updated"})}});function d(){return _.hasAbilities([x.DELETE_TAX_TYPE,x.EDIT_TAX_TYPE])}async function p({page:a,filter:u,sort:y}){let k={orderByField:y.fieldName||"created_at",orderBy:y.order||"desc",page:a},f=await h.fetchTaxTypes(k);return{data:f.data.data,pagination:{totalPages:f.data.meta.last_page,currentPage:a,totalCount:f.data.meta.total,limit:5}}}async function E(){c.value&&c.value.refresh()}function D(){C.openModal({title:o("settings.tax_types.add_tax"),componentName:"TaxTypeModal",size:"sm",refreshData:c.value&&c.value.refresh})}return(a,u)=>{const y=n("BaseIcon"),k=n("BaseButton"),f=n("BaseBadge"),O=n("BaseTable"),V=n("BaseDivider"),X=n("BaseSwitchSection"),L=n("BaseSettingCard");return m(),g(L,{title:a.$t("settings.tax_types.title"),description:a.$t("settings.tax_types.description")},j({default:t(()=>[l(Q),l(O,{ref:(e,F)=>{F.table=e,c.value=e},class:"mt-16",data:p,columns:s(w)},j({"cell-compound_tax":t(({row:e})=>[l(f,{"bg-color":s(b).getBadgeStatusColor(e.data.compound_tax?"YES":"NO").bgColor,color:s(b).getBadgeStatusColor(e.data.compound_tax?"YES":"NO").color},{default:t(()=>[T(B(e.data.compound_tax?"Yes":"No".replace("_"," ")),1)]),_:2},1032,["bg-color","color"])]),"cell-percent":t(({row:e})=>[T(B(e.data.percent)+" % ",1)]),_:2},[d()?{name:"cell-actions",fn:t(({row:e})=>[l(W,{row:e.data,table:c.value,"load-data":E},null,8,["row","table"])])}:void 0]),1032,["columns"]),s(_).currentUser.is_owner?(m(),J("div",Z,[l(V,{class:"mt-8 mb-2"}),l(X,{modelValue:s(r),"onUpdate:modelValue":u[0]||(u[0]=e=>K(r)?r.value=e:null),title:a.$t("settings.tax_types.tax_per_item"),description:a.$t("settings.tax_types.tax_setting_description")},null,8,["modelValue","title","description"])])):I("",!0)]),_:2},[s(_).hasAbilities(s(x).CREATE_TAX_TYPE)?{name:"action",fn:t(()=>[l(k,{type:"submit",variant:"primary-outline",onClick:D},{left:t(e=>[l(y,{class:G(e.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[T(" "+B(a.$t("settings.tax_types.add_new_tax")),1)]),_:1})])}:void 0]),1032,["title","description"])}}};export{se as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More