mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
commit
9dd7bea511
@ -63,3 +63,5 @@ APPLE_REDIRECT_URI=
|
||||
|
||||
NORDIGEN_SECRET_ID=
|
||||
NORDIGEN_SECRET_KEY=
|
||||
|
||||
OPENEXCHANGE_APP_ID=
|
||||
|
1
.github/workflows/react_release.yml
vendored
1
.github/workflows/react_release.yml
vendored
@ -44,6 +44,7 @@ jobs:
|
||||
git clone https://${{secrets.commit_secret}}@github.com/invoiceninja/ui.git
|
||||
cd ui
|
||||
git checkout develop
|
||||
cp .env.example .env
|
||||
cp ../vite.config.ts.react ./vite.config.js
|
||||
npm i
|
||||
npm run build
|
||||
|
@ -54,7 +54,6 @@ We offer a $30 per year white-label license to remove the Invoice Ninja branding
|
||||
git clone --single-branch --branch v5-stable https://github.com/invoiceninja/invoiceninja.git
|
||||
cp .env.example .env
|
||||
composer i -o --no-dev
|
||||
php artisan key:generate
|
||||
```
|
||||
|
||||
Please Note:
|
||||
|
@ -1 +1 @@
|
||||
5.10.5
|
||||
5.10.8
|
@ -18,6 +18,7 @@ use Illuminate\Auth\Access\AuthorizationException;
|
||||
use Illuminate\Auth\AuthenticationException;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException as ModelNotFoundException;
|
||||
use Illuminate\Database\Eloquent\RelationNotFoundException;
|
||||
use Illuminate\Encryption\MissingAppKeyException;
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
use Illuminate\Http\Exceptions\ThrottleRequestsException;
|
||||
use Illuminate\Http\Request;
|
||||
@ -94,11 +95,6 @@ class Handler extends ExceptionHandler
|
||||
*/
|
||||
public function report(Throwable $exception)
|
||||
{
|
||||
if (! Schema::hasTable('accounts')) {
|
||||
info('account table not found');
|
||||
return;
|
||||
}
|
||||
|
||||
if (Ninja::isHosted()) {
|
||||
|
||||
// if($exception instanceof ThrottleRequestsException && class_exists(\Modules\Admin\Events\ThrottledExceptionRaised::class)) {
|
||||
@ -154,6 +150,10 @@ class Handler extends ExceptionHandler
|
||||
}
|
||||
|
||||
parent::report($exception);
|
||||
|
||||
if (Ninja::isSelfHost() && $exception instanceof MissingAppKeyException) {
|
||||
info('To setup the app run: cp .env.example .env');
|
||||
}
|
||||
}
|
||||
|
||||
private function validException($exception)
|
||||
|
@ -35,6 +35,7 @@ use League\Fractal\Resource\Item;
|
||||
use App\Models\BankTransactionRule;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Transformers\ArraySerializer;
|
||||
use Illuminate\Support\Facades\Schema as DbSchema;
|
||||
use App\Transformers\EntityTransformer;
|
||||
use League\Fractal\Resource\Collection;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
@ -1106,7 +1107,7 @@ class BaseController extends Controller
|
||||
public function flutterRoute()
|
||||
{
|
||||
|
||||
if ((bool) $this->checkAppSetup() !== false && $account = Account::first()) {
|
||||
if ((bool) $this->checkAppSetup() !== false && DbSchema::hasTable('accounts') && $account = Account::first()) {
|
||||
|
||||
/** @var \App\Models\Account $account */
|
||||
|
||||
|
@ -81,4 +81,34 @@ class PingController extends BaseController
|
||||
|
||||
return response()->json(SystemHealth::check(), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the last error from storage/logs/laravel.log
|
||||
*
|
||||
* @return Response| \Illuminate\Http\JsonResponse
|
||||
*
|
||||
* @OA\Get(
|
||||
* path="/api/v1/last_error",
|
||||
* operationId="getLastError",
|
||||
* tags={"last_error"},
|
||||
* summary="Get the last error from storage/logs/laravel.log",
|
||||
* description="Get the last error from storage/logs/laravel.log",
|
||||
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||
* @OA\Response(
|
||||
* response=200,
|
||||
* description="The last error from the logs",
|
||||
* @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"),
|
||||
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||
* )
|
||||
* )
|
||||
*/
|
||||
public function lastError()
|
||||
{
|
||||
if (Ninja::isNinja() || ! auth()->user()->isAdmin()) {
|
||||
return response()->json(['message' => ctrans('texts.route_not_available'), 'errors' => []], 403);
|
||||
}
|
||||
|
||||
return response()->json(['last_error' => SystemHealth::lastError()], 200);
|
||||
}
|
||||
}
|
||||
|
@ -181,6 +181,9 @@ class SelfUpdateController extends BaseController
|
||||
|
||||
public function checkVersion()
|
||||
{
|
||||
if(Ninja::isHosted())
|
||||
return '5.10.SaaS';
|
||||
|
||||
return trim(file_get_contents(config('ninja.version_url')));
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ class SetupController extends Controller
|
||||
|
||||
public function index()
|
||||
{
|
||||
$check = SystemHealth::check(false);
|
||||
$check = SystemHealth::check(false, false);
|
||||
|
||||
if ($check['system_health'] == true && $check['simple_db_check'] && Schema::hasTable('accounts') && $account = Account::first()) {
|
||||
return redirect('/');
|
||||
@ -59,7 +59,7 @@ class SetupController extends Controller
|
||||
public function doSetup(StoreSetupRequest $request)
|
||||
{
|
||||
try {
|
||||
$check = SystemHealth::check(false);
|
||||
$check = SystemHealth::check(false, false);
|
||||
} catch (Exception $e) {
|
||||
nlog(['message' => $e->getMessage(), 'action' => 'SetupController::doSetup()']);
|
||||
|
||||
@ -146,6 +146,7 @@ class SetupController extends Controller
|
||||
Artisan::call('config:clear');
|
||||
|
||||
|
||||
Artisan::call('key:generate', ['--force' => true]);
|
||||
Artisan::call('migrate', ['--force' => true]);
|
||||
Artisan::call('db:seed', ['--force' => true]);
|
||||
Artisan::call('config:clear');
|
||||
|
@ -15,10 +15,8 @@ use App\Utils\Ninja;
|
||||
use App\Http\Requests\Request;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
use App\DataMapper\CompanySettings;
|
||||
use InvoiceNinja\EInvoice\EInvoice;
|
||||
use App\Http\ValidationRules\ValidSettingsRule;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\Invoice;
|
||||
use App\Http\ValidationRules\EInvoice\ValidScheme;
|
||||
use App\Http\ValidationRules\EInvoice\ValidCompanyScheme;
|
||||
use App\Http\ValidationRules\Company\ValidSubdomain;
|
||||
|
||||
class UpdateCompanyRequest extends Request
|
||||
@ -67,7 +65,7 @@ class UpdateCompanyRequest extends Request
|
||||
$rules['smtp_local_domain'] = 'sometimes|string|nullable';
|
||||
// $rules['smtp_verify_peer'] = 'sometimes|string';
|
||||
|
||||
// $rules['e_invoice'] = ['sometimes','nullable', new ValidScheme()];
|
||||
$rules['e_invoice'] = ['sometimes','nullable', new ValidCompanyScheme()];
|
||||
|
||||
if (isset($input['portal_mode']) && ($input['portal_mode'] == 'domain' || $input['portal_mode'] == 'iframe')) {
|
||||
$rules['portal_domain'] = 'bail|nullable|sometimes|url';
|
||||
|
@ -63,7 +63,7 @@ class SendEmailRequest extends Request
|
||||
$user = auth()->user();
|
||||
|
||||
return [
|
||||
'template' => 'bail|required|in:'.implode(',', $this->templates),
|
||||
'template' => 'bail|required|string|in:'.implode(',', $this->templates),
|
||||
'entity' => 'bail|required|in:App\Models\Invoice,App\Models\Quote,App\Models\Credit,App\Models\RecurringInvoice,App\Models\PurchaseOrder,App\Models\Payment',
|
||||
'entity_id' => ['bail', 'required', Rule::exists($this->entity_plural, 'id')->where('company_id', $user->company()->id)],
|
||||
'cc_email.*' => 'bail|sometimes|email',
|
||||
|
@ -56,7 +56,7 @@ class UpdateExpenseRequest extends Request
|
||||
$rules['invoice_id'] = 'bail|sometimes|nullable|exists:invoices,id,company_id,'.$user->company()->id;
|
||||
$rules['documents'] = 'bail|sometimes|array';
|
||||
$rules['amount'] = ['sometimes', 'bail', 'nullable', 'numeric', 'max:99999999999999'];
|
||||
|
||||
|
||||
return $this->globalRules($rules);
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
namespace App\Http\ValidationRules\EInvoice;
|
||||
|
||||
use App\Services\EDocument\Standards\Validation\Peppol\CompanyLevel;
|
||||
use Closure;
|
||||
use InvoiceNinja\EInvoice\EInvoice;
|
||||
use Illuminate\Validation\Validator;
|
||||
@ -19,9 +20,9 @@ use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Contracts\Validation\ValidatorAwareRule;
|
||||
|
||||
/**
|
||||
* Class BlackListRule.
|
||||
* Class ValidScheme.
|
||||
*/
|
||||
class ValidScheme implements ValidationRule, ValidatorAwareRule
|
||||
class ValidCompanyScheme implements ValidationRule, ValidatorAwareRule
|
||||
{
|
||||
|
||||
/**
|
||||
@ -35,7 +36,7 @@ class ValidScheme implements ValidationRule, ValidatorAwareRule
|
||||
{
|
||||
|
||||
$r = new EInvoice();
|
||||
$errors = $r->validateRequest($value['Invoice'], Invoice::class);
|
||||
$errors = $r->validateRequest($value['Invoice'], CompanyLevel::class);
|
||||
|
||||
foreach ($errors as $key => $msg) {
|
||||
|
@ -13,14 +13,15 @@ namespace App\Jobs\Task;
|
||||
|
||||
use App\Models\Task;
|
||||
use App\Libraries\MultiDB;
|
||||
use App\Models\CompanyUser;
|
||||
use App\Services\Email\Email;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use App\Services\Email\EmailObject;
|
||||
use Illuminate\Mail\Mailables\Address;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use App\Utils\Traits\Notifications\UserNotifies;
|
||||
|
||||
@ -47,7 +48,7 @@ class TaskAssigned implements ShouldQueue
|
||||
|
||||
$company_user = $this->task->assignedCompanyUser();
|
||||
|
||||
if($company_user && $this->findEntityAssignedNotification($company_user, 'task'))
|
||||
if(($company_user instanceof CompanyUser) && $this->findEntityAssignedNotification($company_user, 'task'))
|
||||
{
|
||||
$mo = new EmailObject();
|
||||
$mo->subject = ctrans('texts.task_assigned_subject', ['task' => $this->task->number, 'date' => now()->setTimeZone($this->task->company->timezone()->name)->format($this->task->company->date_format()) ]);
|
||||
|
@ -46,7 +46,7 @@ class ExpenseRepository extends BaseRepository
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$payment_date = &$data['payment_date'];
|
||||
$payment_date = isset($data['payment_date']) ? $data['payment_date'] : false;
|
||||
|
||||
if($payment_date && $payment_date == $expense->payment_date) {
|
||||
//do nothing
|
||||
|
@ -53,12 +53,8 @@ class VendorRepository extends BaseRepository
|
||||
|
||||
$vendor->saveQuietly();
|
||||
|
||||
if ($vendor->number == '' || ! $vendor->number) {
|
||||
$vendor->number = $this->getNextVendorNumber($vendor);
|
||||
}
|
||||
|
||||
$vendor->saveQuietly();
|
||||
|
||||
$vendor->service()->applyNumber();
|
||||
|
||||
if (isset($data['contacts']) || $vendor->contacts()->count() == 0) {
|
||||
$this->contact_repo->save($data, $vendor);
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ class ClientService
|
||||
} catch (QueryException $e) {
|
||||
$x++;
|
||||
|
||||
if ($x > 10) {
|
||||
if ($x > 50) {
|
||||
$this->completed = false;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,303 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\Services\EDocument\Standards\Validation\Peppol;
|
||||
|
||||
use DateTime;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\AllowanceChargeType\AllowanceCharge;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\BillingReferenceType\BillingReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CodeType\AccountingCostCode;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CodeType\DocumentCurrencyCode;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CodeType\InvoiceTypeCode;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CodeType\PaymentAlternativeCurrencyCode;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CodeType\PaymentCurrencyCode;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CodeType\PricingCurrencyCode;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CodeType\TaxCurrencyCode;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CustomerPartyType\AccountingCustomerParty;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\CustomerPartyType\BuyerCustomerParty;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\DeliveryTermsType\DeliveryTerms;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\DeliveryType\Delivery;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\DocumentReferenceType\AdditionalDocumentReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\DocumentReferenceType\ContractDocumentReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\DocumentReferenceType\DespatchDocumentReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\DocumentReferenceType\OriginatorDocumentReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\DocumentReferenceType\ReceiptDocumentReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\DocumentReferenceType\StatementDocumentReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\ExchangeRateType\PaymentAlternativeExchangeRate;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\ExchangeRateType\PaymentExchangeRate;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\ExchangeRateType\PricingExchangeRate;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\ExchangeRateType\TaxExchangeRate;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\IdentifierType\CustomizationID;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\IdentifierType\ID;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\IdentifierType\ProfileExecutionID;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\IdentifierType\ProfileID;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\IdentifierType\UBLVersionID;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\IdentifierType\UUID;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\InvoiceLineType\InvoiceLine;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\MonetaryTotalType\LegalMonetaryTotal;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\NumericType\LineCountNumeric;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\OrderReferenceType\OrderReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\PartyType\PayeeParty;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\PartyType\TaxRepresentativeParty;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\PaymentMeansType\PaymentMeans;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\PaymentTermsType\PaymentTerms;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\PaymentType\PrepaidPayment;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\PeriodType\InvoicePeriod;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\ProjectReferenceType\ProjectReference;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\SignatureType\Signature;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\SupplierPartyType\AccountingSupplierParty;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\SupplierPartyType\SellerSupplierParty;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\TaxTotalType\TaxTotal;
|
||||
use InvoiceNinja\EInvoice\Models\Peppol\TaxTotalType\WithholdingTaxTotal;
|
||||
use Symfony\Component\Serializer\Attribute\Context;
|
||||
use Symfony\Component\Serializer\Attribute\SerializedName;
|
||||
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
||||
use Symfony\Component\Validator\Constraints\Date;
|
||||
use Symfony\Component\Validator\Constraints\NotBlank;
|
||||
use Symfony\Component\Validator\Constraints\NotNull;
|
||||
use Symfony\Component\Validator\Constraints\Valid;
|
||||
|
||||
class CompanyLevel
|
||||
{
|
||||
// /** @var UBLVersionID */
|
||||
// #[SerializedName('cbc:UBLVersionID')]
|
||||
// public $UBLVersionID;
|
||||
|
||||
// /** @var CustomizationID */
|
||||
// #[SerializedName('cbc:CustomizationID')]
|
||||
// public $CustomizationID;
|
||||
|
||||
// /** @var ProfileID */
|
||||
// #[SerializedName('cbc:ProfileID')]
|
||||
// public $ProfileID;
|
||||
|
||||
// /** @var ProfileExecutionID */
|
||||
// #[SerializedName('cbc:ProfileExecutionID')]
|
||||
// public $ProfileExecutionID;
|
||||
|
||||
// /** @var ID */
|
||||
// #[NotNull]
|
||||
// #[NotBlank]
|
||||
// #[Valid]
|
||||
// #[SerializedName('cbc:ID')]
|
||||
// public $ID;
|
||||
|
||||
/** @var bool */
|
||||
#[SerializedName('cbc:CopyIndicator')]
|
||||
public bool $CopyIndicator;
|
||||
|
||||
/** @var UUID */
|
||||
#[SerializedName('cbc:UUID')]
|
||||
public $UUID;
|
||||
|
||||
// /** @var ?\DateTime */
|
||||
// #[NotNull]
|
||||
// #[NotBlank]
|
||||
// #[Valid]
|
||||
// #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])]
|
||||
// #[SerializedName('cbc:IssueDate')]
|
||||
// public ?DateTime $IssueDate;
|
||||
|
||||
// /** @var ?\DateTime */
|
||||
// #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d\TH:i:s.uP'])]
|
||||
// #[SerializedName('cbc:IssueTime')]
|
||||
// public ?DateTime $IssueTime;
|
||||
|
||||
// /** @var ?\DateTime */
|
||||
// #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])]
|
||||
// #[SerializedName('cbc:DueDate')]
|
||||
// public ?DateTime $DueDate;
|
||||
|
||||
/** @var InvoiceTypeCode */
|
||||
#[SerializedName('cbc:InvoiceTypeCode')]
|
||||
public $InvoiceTypeCode;
|
||||
|
||||
/** @var string */
|
||||
#[SerializedName('cbc:Note')]
|
||||
public string $Note;
|
||||
|
||||
/** @var ?\DateTime */
|
||||
#[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])]
|
||||
#[SerializedName('cbc:TaxPointDate')]
|
||||
public ?DateTime $TaxPointDate;
|
||||
|
||||
/** @var DocumentCurrencyCode */
|
||||
#[SerializedName('cbc:DocumentCurrencyCode')]
|
||||
public $DocumentCurrencyCode;
|
||||
|
||||
/** @var TaxCurrencyCode */
|
||||
#[SerializedName('cbc:TaxCurrencyCode')]
|
||||
public $TaxCurrencyCode;
|
||||
|
||||
/** @var PricingCurrencyCode */
|
||||
#[SerializedName('cbc:PricingCurrencyCode')]
|
||||
public $PricingCurrencyCode;
|
||||
|
||||
/** @var PaymentCurrencyCode */
|
||||
#[SerializedName('cbc:PaymentCurrencyCode')]
|
||||
public $PaymentCurrencyCode;
|
||||
|
||||
/** @var PaymentAlternativeCurrencyCode */
|
||||
#[SerializedName('cbc:PaymentAlternativeCurrencyCode')]
|
||||
public $PaymentAlternativeCurrencyCode;
|
||||
|
||||
// /** @var AccountingCostCode */
|
||||
// #[SerializedName('cbc:AccountingCostCode')]
|
||||
// public $AccountingCostCode;
|
||||
|
||||
// /** @var string */
|
||||
// #[SerializedName('cbc:AccountingCost')]
|
||||
// public string $AccountingCost;
|
||||
|
||||
// /** @var LineCountNumeric */
|
||||
// #[SerializedName('cbc:LineCountNumeric')]
|
||||
// public $LineCountNumeric;
|
||||
|
||||
// /** @var string */
|
||||
// #[SerializedName('cbc:BuyerReference')]
|
||||
// public string $BuyerReference;
|
||||
|
||||
// /** @var InvoicePeriod[] */
|
||||
// #[SerializedName('cac:InvoicePeriod')]
|
||||
// public array $InvoicePeriod;
|
||||
|
||||
// /** @var OrderReference */
|
||||
// #[SerializedName('cac:OrderReference')]
|
||||
// public $OrderReference;
|
||||
|
||||
// /** @var BillingReference[] */
|
||||
// #[SerializedName('cac:BillingReference')]
|
||||
// public array $BillingReference;
|
||||
|
||||
/** @var DespatchDocumentReference[] */
|
||||
#[SerializedName('cac:DespatchDocumentReference')]
|
||||
public array $DespatchDocumentReference;
|
||||
|
||||
/** @var ReceiptDocumentReference[] */
|
||||
#[SerializedName('cac:ReceiptDocumentReference')]
|
||||
public array $ReceiptDocumentReference;
|
||||
|
||||
/** @var StatementDocumentReference[] */
|
||||
#[SerializedName('cac:StatementDocumentReference')]
|
||||
public array $StatementDocumentReference;
|
||||
|
||||
/** @var OriginatorDocumentReference[] */
|
||||
#[SerializedName('cac:OriginatorDocumentReference')]
|
||||
public array $OriginatorDocumentReference;
|
||||
|
||||
/** @var ContractDocumentReference[] */
|
||||
#[SerializedName('cac:ContractDocumentReference')]
|
||||
public array $ContractDocumentReference;
|
||||
|
||||
/** @var AdditionalDocumentReference[] */
|
||||
#[SerializedName('cac:AdditionalDocumentReference')]
|
||||
public array $AdditionalDocumentReference;
|
||||
|
||||
/** @var ProjectReference[] */
|
||||
#[SerializedName('cac:ProjectReference')]
|
||||
public array $ProjectReference;
|
||||
|
||||
// /** @var Signature[] */
|
||||
// #[SerializedName('cac:Signature')]
|
||||
// public array $Signature;
|
||||
|
||||
// /** @var AccountingSupplierParty */
|
||||
// #[NotNull]
|
||||
// #[NotBlank]
|
||||
// #[Valid]
|
||||
// #[SerializedName('cac:AccountingSupplierParty')]
|
||||
// public $AccountingSupplierParty;
|
||||
|
||||
// /** @var AccountingCustomerParty */
|
||||
// #[NotNull]
|
||||
// #[NotBlank]
|
||||
// #[Valid]
|
||||
// #[SerializedName('cac:AccountingCustomerParty')]
|
||||
// public $AccountingCustomerParty;
|
||||
|
||||
/** @var PayeeParty */
|
||||
#[SerializedName('cac:PayeeParty')]
|
||||
public $PayeeParty;
|
||||
|
||||
// /** @var BuyerCustomerParty */
|
||||
// #[SerializedName('cac:BuyerCustomerParty')]
|
||||
// public $BuyerCustomerParty;
|
||||
|
||||
// /** @var SellerSupplierParty */
|
||||
// #[SerializedName('cac:SellerSupplierParty')]
|
||||
// public $SellerSupplierParty;
|
||||
|
||||
/** @var TaxRepresentativeParty */
|
||||
#[SerializedName('cac:TaxRepresentativeParty')]
|
||||
public $TaxRepresentativeParty;
|
||||
|
||||
/** @var Delivery[] */
|
||||
#[SerializedName('cac:Delivery')]
|
||||
public array $Delivery;
|
||||
|
||||
/** @var DeliveryTerms */
|
||||
#[SerializedName('cac:DeliveryTerms')]
|
||||
public $DeliveryTerms;
|
||||
|
||||
/** @var PaymentMeans[] */
|
||||
#[SerializedName('cac:PaymentMeans')]
|
||||
public array $PaymentMeans;
|
||||
|
||||
/** @var PaymentTerms[] */
|
||||
#[SerializedName('cac:PaymentTerms')]
|
||||
public array $PaymentTerms;
|
||||
|
||||
// /** @var PrepaidPayment[] */
|
||||
// #[SerializedName('cac:PrepaidPayment')]
|
||||
// public array $PrepaidPayment;
|
||||
|
||||
// /** @var AllowanceCharge[] */
|
||||
// #[SerializedName('cac:AllowanceCharge')]
|
||||
// public array $AllowanceCharge;
|
||||
|
||||
// /** @var TaxExchangeRate */
|
||||
// #[SerializedName('cac:TaxExchangeRate')]
|
||||
// public $TaxExchangeRate;
|
||||
|
||||
// /** @var PricingExchangeRate */
|
||||
// #[SerializedName('cac:PricingExchangeRate')]
|
||||
// public $PricingExchangeRate;
|
||||
|
||||
// /** @var PaymentExchangeRate */
|
||||
// #[SerializedName('cac:PaymentExchangeRate')]
|
||||
// public $PaymentExchangeRate;
|
||||
|
||||
// /** @var PaymentAlternativeExchangeRate */
|
||||
// #[SerializedName('cac:PaymentAlternativeExchangeRate')]
|
||||
// public $PaymentAlternativeExchangeRate;
|
||||
|
||||
// /** @var TaxTotal[] */
|
||||
// #[SerializedName('cac:TaxTotal')]
|
||||
// public array $TaxTotal;
|
||||
|
||||
// /** @var WithholdingTaxTotal[] */
|
||||
// #[SerializedName('cac:WithholdingTaxTotal')]
|
||||
// public array $WithholdingTaxTotal;
|
||||
|
||||
// /** @var LegalMonetaryTotal */
|
||||
// #[NotNull]
|
||||
// #[NotBlank]
|
||||
// #[Valid]
|
||||
// #[SerializedName('cac:LegalMonetaryTotal')]
|
||||
// public $LegalMonetaryTotal;
|
||||
|
||||
// /** @var InvoiceLine[] */
|
||||
// #[NotNull]
|
||||
// #[NotBlank]
|
||||
// #[Valid]
|
||||
// #[SerializedName('cac:InvoiceLine')]
|
||||
// public array $InvoiceLine;
|
||||
}
|
45
app/Services/Vendor/VendorService.php
vendored
45
app/Services/Vendor/VendorService.php
vendored
@ -12,10 +12,55 @@
|
||||
namespace App\Services\Vendor;
|
||||
|
||||
use App\Models\Vendor;
|
||||
use App\Utils\Traits\GeneratesCounter;
|
||||
use Illuminate\Database\QueryException;
|
||||
|
||||
class VendorService
|
||||
{
|
||||
|
||||
use GeneratesCounter;
|
||||
|
||||
private bool $completed = true;
|
||||
|
||||
public function __construct(public Vendor $vendor)
|
||||
{
|
||||
}
|
||||
|
||||
public function applyNumber(): self
|
||||
{
|
||||
$x = 1;
|
||||
|
||||
if(isset($this->vendor->number)) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
do {
|
||||
try {
|
||||
$this->vendor->number = $this->getNextVendorNumber($this->vendor);
|
||||
$this->vendor->saveQuietly();
|
||||
|
||||
$this->completed = false;
|
||||
} catch (QueryException $e) {
|
||||
$x++;
|
||||
|
||||
if ($x > 50) {
|
||||
$this->completed = false;
|
||||
}
|
||||
}
|
||||
} while ($this->completed);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the vendor instance
|
||||
*
|
||||
* @return Vendor The Vendor Model
|
||||
*/
|
||||
public function save(): Vendor
|
||||
{
|
||||
$this->vendor->saveQuietly();
|
||||
|
||||
return $this->vendor->fresh();
|
||||
}
|
||||
}
|
||||
|
@ -211,7 +211,7 @@ class CompanyTransformer extends EntityTransformer
|
||||
'smtp_password' => $company->smtp_password ? '********' : '',
|
||||
'smtp_local_domain' => (string)$company->smtp_local_domain ?? '',
|
||||
'smtp_verify_peer' => (bool)$company->smtp_verify_peer,
|
||||
'e_invoice' => $company->e_invoice ?: new \stdClass(),
|
||||
// 'e_invoice' => $company->e_invoice ?: new \stdClass(),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace App\Utils;
|
||||
|
||||
use LimitIterator;
|
||||
use SplFileObject;
|
||||
use App\Libraries\MultiDB;
|
||||
use App\Mail\TestMailServer;
|
||||
use Exception;
|
||||
@ -43,7 +45,7 @@ class SystemHealth
|
||||
* @param bool $check_database
|
||||
* @return array Result set of checks
|
||||
*/
|
||||
public static function check($check_database = true): array
|
||||
public static function check($check_database = true, $check_file_system = true): array
|
||||
{
|
||||
$system_health = true;
|
||||
|
||||
@ -78,14 +80,16 @@ class SystemHealth
|
||||
'open_basedir' => (bool) self::checkOpenBaseDir(),
|
||||
'mail_mailer' => (string) self::checkMailMailer(),
|
||||
'flutter_renderer' => (string) config('ninja.flutter_canvas_kit'),
|
||||
'jobs_pending' => (int) self::checkQueueSize(),
|
||||
'pdf_engine' => (string) self::getPdfEngine(),
|
||||
'queue' => (string) config('queue.default'),
|
||||
'queue_data' => self::checkQueueData(),
|
||||
'jobs_pending' => 0, // TODO for backwards compatibility, remove once Flutter AP is updated
|
||||
'trailing_slash' => (bool) self::checkUrlState(),
|
||||
'file_permissions' => (string) self::checkFileSystem(),
|
||||
'file_permissions' => (string) ($check_file_system ? self::checkFileSystem() : ''),
|
||||
'exchange_rate_api_not_configured' => (bool)self::checkCurrencySanity(),
|
||||
'api_version' => (string) config('ninja.app_version'),
|
||||
'is_docker' => (bool) config('ninja.is_docker'),
|
||||
'pending_migrations' => self::checkPendingMigrations(),
|
||||
];
|
||||
}
|
||||
|
||||
@ -117,16 +121,28 @@ class SystemHealth
|
||||
return false;
|
||||
}
|
||||
|
||||
private static function checkQueueSize()
|
||||
private static function checkQueueData()
|
||||
{
|
||||
$count = 0;
|
||||
$pending = 0;
|
||||
$failed = 0;
|
||||
$last_error = '';
|
||||
|
||||
try {
|
||||
$count = Queue::size();
|
||||
$pending = DB::table('jobs')->count();
|
||||
$failed = DB::table('failed_jobs')->count();
|
||||
|
||||
if ($failed > 0) {
|
||||
$failed_job = DB::table('failed_jobs')->latest('failed_at')->first();
|
||||
$last_error = $failed_job->exception;
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
|
||||
return $count;
|
||||
return [
|
||||
'failed' => $failed,
|
||||
'pending' => $pending,
|
||||
'last_error' => $last_error,
|
||||
];
|
||||
}
|
||||
|
||||
public static function checkFileSystem()
|
||||
@ -157,6 +173,17 @@ class SystemHealth
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function checkPendingMigrations()
|
||||
{
|
||||
$run_count = DB::table('migrations')->count();
|
||||
|
||||
$directory = base_path('database/migrations');
|
||||
$iterator = new \FilesystemIterator($directory);
|
||||
$total_count = iterator_count($iterator) - 1;
|
||||
|
||||
return $run_count != $total_count;
|
||||
}
|
||||
|
||||
public static function getPdfEngine()
|
||||
{
|
||||
if (config('ninja.invoiceninja_hosted_pdf_generation') || config('ninja.pdf_generator') == 'hosted_ninja') {
|
||||
@ -322,4 +349,24 @@ class SystemHealth
|
||||
{
|
||||
return is_writable(base_path().'/.env');
|
||||
}
|
||||
|
||||
public static function lastError()
|
||||
{
|
||||
$log_file = new SplFileObject(sprintf('%s/laravel.log', base_path('storage/logs')));
|
||||
$log_file->seek(PHP_INT_MAX);
|
||||
$last_line = $log_file->key();
|
||||
|
||||
$lines = new LimitIterator($log_file, max(0, $last_line - 500), $last_line);
|
||||
$log_lines = iterator_to_array($lines);
|
||||
$last_error = '';
|
||||
|
||||
foreach ($lines as $line) {
|
||||
// Match the main error, ie. [2024-07-10 12:23:07] production.ERROR: ...
|
||||
if (substr($line, 0, 2) === '[2') {
|
||||
$last_error = $line;
|
||||
}
|
||||
}
|
||||
|
||||
return $last_error;
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ trait AppSetup
|
||||
return Ninja::isNinja();
|
||||
}
|
||||
|
||||
$check = SystemHealth::check();
|
||||
$check = SystemHealth::check(true, false);
|
||||
|
||||
return $check['system_health'] == 'true';
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ trait MakesReminders
|
||||
|
||||
private function checkEndlessReminder($last_sent_date, $endless_reminder_frequency_id): bool
|
||||
{
|
||||
if(!$last_sent_date)
|
||||
if(is_null($last_sent_date) || !$last_sent_date)
|
||||
return false;
|
||||
|
||||
if (Carbon::now()->startOfDay()->eq($this->addTimeInterval($last_sent_date, $endless_reminder_frequency_id))) {
|
||||
|
@ -17,8 +17,8 @@ return [
|
||||
'require_https' => env('REQUIRE_HTTPS', true),
|
||||
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
||||
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
|
||||
'app_version' => env('APP_VERSION', '5.10.5'),
|
||||
'app_tag' => env('APP_TAG', '5.10.5'),
|
||||
'app_version' => env('APP_VERSION', '5.10.8'),
|
||||
'app_tag' => env('APP_TAG', '5.10.8'),
|
||||
'minimum_client_version' => '5.0.16',
|
||||
'terms_version' => '1.0.1',
|
||||
'api_secret' => env('API_SECRET', false),
|
||||
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('invoices', function (Blueprint $table){
|
||||
$table->index(['project_id','deleted_at']);
|
||||
});
|
||||
|
||||
Schema::table('quotes', function (Blueprint $table) {
|
||||
$table->index(['project_id','deleted_at']);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
@ -5285,7 +5285,7 @@ $lang = array(
|
||||
'remind_quote' => 'Remind Quote',
|
||||
'end_of_month' => 'End Of Month',
|
||||
'tax_currency_mismatch' => 'Tax currency is different from invoice currency',
|
||||
'edocument_import_already_exists' => '\nThe invoice has already been imported on :date'
|
||||
'edocument_import_already_exists' => 'The invoice has already been imported on :date'
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -3786,7 +3786,7 @@ $lang = array(
|
||||
'entity_number_placeholder' => ':entity # :entity_number',
|
||||
'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link',
|
||||
'display_log' => 'Display Log',
|
||||
'send_fail_logs_to_our_server' => 'Report errors in realtime',
|
||||
'send_fail_logs_to_our_server' => 'Report errors to help improve the app',
|
||||
'setup' => 'Setup',
|
||||
'quick_overview_statistics' => 'Quick overview & statistics',
|
||||
'update_your_personal_info' => 'Update your personal information',
|
||||
@ -5286,7 +5286,7 @@ $lang = array(
|
||||
'remind_quote' => 'Remind Quote',
|
||||
'end_of_month' => 'End Of Month',
|
||||
'tax_currency_mismatch' => 'Tax currency is different from invoice currency',
|
||||
'edocument_import_already_exists' => '\nThe invoice has already been imported on :date',
|
||||
'edocument_import_already_exists' => 'The invoice has already been imported on :date',
|
||||
'before_valid_until' => 'Before the valid until',
|
||||
'after_valid_until' => 'After the valid until',
|
||||
'task_assigned_notification' => 'Task Assigned Notification',
|
||||
@ -5296,6 +5296,9 @@ $lang = array(
|
||||
'add_comment' => 'Add Comment',
|
||||
'added_comment' => 'Successfully saved comment',
|
||||
'tickets' => 'Tickets',
|
||||
'assigned_group' => 'Successfully assigned group',
|
||||
'merge_to_pdf' => 'Merge to PDF',
|
||||
'latest_requires_php_version' => 'Note: the latest version requires PHP :version',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -199,7 +199,7 @@ $lang = array(
|
||||
'removed_logo' => 'Successfully removed logo',
|
||||
'sent_message' => 'Successfully sent message',
|
||||
'invoice_error' => 'Please make sure to select a client and correct any errors',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!.',
|
||||
'limit_clients' => 'You\'ve hit the :count client limit on Free accounts. Congrats on your success!',
|
||||
'payment_error' => 'There was an error processing your payment. Please try again later.',
|
||||
'registration_required' => 'Registration Required',
|
||||
'confirmation_required' => 'Please confirm your email address, :link to resend the confirmation email.',
|
||||
@ -2364,7 +2364,7 @@ $lang = array(
|
||||
'currency_gold_troy_ounce' => 'Gold Troy Ounce',
|
||||
'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba',
|
||||
'currency_malagasy_ariary' => 'Malagasy ariary',
|
||||
"currency_tongan_pa_anga" => "Tongan Pa'anga",
|
||||
"currency_tongan_paanga" => "Tongan Pa'anga",
|
||||
|
||||
'review_app_help' => 'We hope you\'re enjoying using the app.<br/>If you\'d consider :link we\'d greatly appreciate it!',
|
||||
'writing_a_review' => 'writing a review',
|
||||
@ -2695,7 +2695,7 @@ $lang = array(
|
||||
'no_assets' => 'No images, drag to upload',
|
||||
'add_image' => 'Add Image',
|
||||
'select_image' => 'Select Image',
|
||||
'upgrade_to_upload_images' => 'Upgrade to the Enterprise Plan to upload images',
|
||||
'upgrade_to_upload_images' => 'Upgrade to the Enterprise Plan to upload files & images',
|
||||
'delete_image' => 'Delete Image',
|
||||
'delete_image_help' => 'Warning: deleting the image will remove it from all proposals.',
|
||||
'amount_variable_help' => 'Note: the invoice $amount field will use the partial/deposit field if set otherwise it will use the invoice balance.',
|
||||
@ -2783,7 +2783,7 @@ $lang = array(
|
||||
'paid_invoice' => 'Paid Invoice',
|
||||
'unapproved_quote' => 'Unapproved Quote',
|
||||
'unapproved_proposal' => 'Unapproved Proposal',
|
||||
'autofills_city_state' => 'Auto-fills city/state',
|
||||
'autofills_city_state' => 'Auto-fills city/county',
|
||||
'no_match_found' => 'No match found',
|
||||
'password_strength' => 'Password Strength',
|
||||
'strength_weak' => 'Weak',
|
||||
@ -2880,19 +2880,6 @@ $lang = array(
|
||||
'refunded' => 'Refunded',
|
||||
'marked_quote_as_sent' => 'Successfully marked quote as sent',
|
||||
'custom_module_settings' => 'Custom Module Settings',
|
||||
'ticket' => 'Ticket',
|
||||
'tickets' => 'Tickets',
|
||||
'ticket_number' => 'Ticket #',
|
||||
'new_ticket' => 'New Ticket',
|
||||
'edit_ticket' => 'Edit Ticket',
|
||||
'view_ticket' => 'View Ticket',
|
||||
'archive_ticket' => 'Archive Ticket',
|
||||
'restore_ticket' => 'Restore Ticket',
|
||||
'delete_ticket' => 'Delete Ticket',
|
||||
'archived_ticket' => 'Successfully archived ticket',
|
||||
'archived_tickets' => 'Successfully archived tickets',
|
||||
'restored_ticket' => 'Successfully restored ticket',
|
||||
'deleted_ticket' => 'Successfully deleted ticket',
|
||||
'open' => 'Open',
|
||||
'new' => 'New',
|
||||
'closed' => 'Closed',
|
||||
@ -2909,14 +2896,6 @@ $lang = array(
|
||||
'assigned_to' => 'Assigned to',
|
||||
'reply' => 'Reply',
|
||||
'awaiting_reply' => 'Awaiting reply',
|
||||
'ticket_close' => 'Close Ticket',
|
||||
'ticket_reopen' => 'Reopen Ticket',
|
||||
'ticket_open' => 'Open Ticket',
|
||||
'ticket_split' => 'Split Ticket',
|
||||
'ticket_merge' => 'Merge Ticket',
|
||||
'ticket_update' => 'Update Ticket',
|
||||
'ticket_settings' => 'Ticket Settings',
|
||||
'updated_ticket' => 'Ticket Updated',
|
||||
'mark_spam' => 'Mark as Spam',
|
||||
'local_part' => 'Local Part',
|
||||
'local_part_unavailable' => 'Name taken',
|
||||
@ -2943,66 +2922,25 @@ $lang = array(
|
||||
'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed',
|
||||
'default_priority' => 'Default priority',
|
||||
'alert_new_comment_id' => 'New comment',
|
||||
'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.',
|
||||
'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.',
|
||||
'new_ticket_notification_list' => 'Additional new ticket notifications',
|
||||
'update_ticket_notification_list' => 'Additional new comment notifications',
|
||||
'comma_separated_values' => 'admin@example.com, supervisor@example.com',
|
||||
'alert_ticket_assign_agent_id' => 'Ticket assignment',
|
||||
'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.',
|
||||
'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications',
|
||||
'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.',
|
||||
'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.',
|
||||
'alert_ticket_overdue_agent_id' => 'Ticket overdue',
|
||||
'alert_ticket_overdue_email' => 'Additional overdue ticket notifications',
|
||||
'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.',
|
||||
'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.',
|
||||
'ticket_master' => 'Ticket Master',
|
||||
'ticket_master_help' => 'Has the ability to assign and transfer tickets. Assigned as the default agent for all tickets.',
|
||||
'default_agent' => 'Default Agent',
|
||||
'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets',
|
||||
'show_agent_details' => 'Show agent details on responses',
|
||||
'avatar' => 'Avatar',
|
||||
'remove_avatar' => 'Remove avatar',
|
||||
'ticket_not_found' => 'Ticket not found',
|
||||
'add_template' => 'Add Template',
|
||||
'ticket_template' => 'Ticket Template',
|
||||
'ticket_templates' => 'Ticket Templates',
|
||||
'updated_ticket_template' => 'Updated Ticket Template',
|
||||
'created_ticket_template' => 'Created Ticket Template',
|
||||
'archive_ticket_template' => 'Archive Template',
|
||||
'restore_ticket_template' => 'Restore Template',
|
||||
'archived_ticket_template' => 'Successfully archived template',
|
||||
'restored_ticket_template' => 'Successfully restored template',
|
||||
'close_reason' => 'Let us know why you are closing this ticket',
|
||||
'reopen_reason' => 'Let us know why you are reopening this ticket',
|
||||
'enter_ticket_message' => 'Please enter a message to update the ticket',
|
||||
'show_hide_all' => 'Show / Hide all',
|
||||
'subject_required' => 'Subject required',
|
||||
'mobile_refresh_warning' => 'If you\'re using the mobile app you may need to do a full refresh.',
|
||||
'enable_proposals_for_background' => 'To upload a background image :link to enable the proposals module.',
|
||||
'ticket_assignment' => 'Ticket :ticket_number has been assigned to :agent',
|
||||
'ticket_contact_reply' => 'Ticket :ticket_number has been updated by client :contact',
|
||||
'ticket_new_template_subject' => 'Ticket :ticket_number has been created.',
|
||||
'ticket_updated_template_subject' => 'Ticket :ticket_number has been updated.',
|
||||
'ticket_closed_template_subject' => 'Ticket :ticket_number has been closed.',
|
||||
'ticket_overdue_template_subject' => 'Ticket :ticket_number is now overdue',
|
||||
'merge' => 'Merge',
|
||||
'merged' => 'Merged',
|
||||
'agent' => 'Agent',
|
||||
'parent_ticket' => 'Parent Ticket',
|
||||
'linked_tickets' => 'Linked Tickets',
|
||||
'merge_prompt' => 'Enter ticket number to merge into',
|
||||
'merge_from_to' => 'Ticket #:old_ticket merged into Ticket #:new_ticket',
|
||||
'merge_closed_ticket_text' => 'Ticket #:old_ticket was closed and merged into Ticket#:new_ticket - :subject',
|
||||
'merge_updated_ticket_text' => 'Ticket #:old_ticket was closed and merged into this ticket',
|
||||
'merge_placeholder' => 'Merge ticket #:ticket into the following ticket',
|
||||
'select_ticket' => 'Select Ticket',
|
||||
'new_internal_ticket' => 'New internal ticket',
|
||||
'internal_ticket' => 'Internal ticket',
|
||||
'create_ticket' => 'Create ticket',
|
||||
'allow_inbound_email_tickets_external' => 'New Tickets by email (Client)',
|
||||
'allow_inbound_email_tickets_external_help' => 'Allow clients to create new tickets by email',
|
||||
'include_in_filter' => 'Include in filter',
|
||||
'custom_client1' => ':VALUE',
|
||||
'custom_client2' => ':VALUE',
|
||||
@ -3340,7 +3278,7 @@ $lang = array(
|
||||
'email_subject_payment' => 'Email Payment Subject',
|
||||
'switch_list_table' => 'Switch List Table',
|
||||
'client_city' => 'Client City',
|
||||
'client_state' => 'Client State',
|
||||
'client_state' => 'Client County',
|
||||
'client_country' => 'Client Country',
|
||||
'client_is_active' => 'Client is Active',
|
||||
'client_balance' => 'Client Balance',
|
||||
@ -3363,7 +3301,7 @@ $lang = array(
|
||||
'custom_surcharge4' => 'Custom Surcharge 4',
|
||||
'is_deleted' => 'Is Deleted',
|
||||
'vendor_city' => 'Vendor City',
|
||||
'vendor_state' => 'Vendor State',
|
||||
'vendor_state' => 'Vendor County',
|
||||
'vendor_country' => 'Vendor Country',
|
||||
'credit_footer' => 'Credit Footer',
|
||||
'credit_terms' => 'Credit Terms',
|
||||
@ -4437,7 +4375,7 @@ $lang = array(
|
||||
'client_shipping_country' => 'Client Shipping Country',
|
||||
'load_pdf' => 'Load PDF',
|
||||
'start_free_trial' => 'Start Free Trial',
|
||||
'start_free_trial_message' => 'Start your FREE 14 day trial of the pro plan',
|
||||
'start_free_trial_message' => 'Start your FREE 14 day trial of the Pro Plan',
|
||||
'due_on_receipt' => 'Due on Receipt',
|
||||
'is_paid' => 'Is Paid',
|
||||
'age_group_paid' => 'Paid',
|
||||
@ -5147,7 +5085,7 @@ $lang = array(
|
||||
'payment_refund_receipt' => 'Payment Refund Receipt # :number',
|
||||
'payment_receipt' => 'Payment Receipt # :number',
|
||||
'load_template_description' => 'The template will be applied to following:',
|
||||
'run_template' => 'Run template',
|
||||
'run_template' => 'Run Template',
|
||||
'statement_design' => 'Statement Design',
|
||||
'delivery_note_design' => 'Delivery Note Design',
|
||||
'payment_receipt_design' => 'Payment Receipt Design',
|
||||
@ -5306,18 +5244,20 @@ $lang = array(
|
||||
'activity_140' => 'Statement sent to :client',
|
||||
'invoice_net_amount' => 'Invoice Net Amount',
|
||||
'round_to_minutes' => 'Round To Minutes',
|
||||
'1_second' => '1 Second',
|
||||
'1_minute' => '1 Minute',
|
||||
'5_minutes' => '5 Minutes',
|
||||
'15_minutes' => '15 Minutes',
|
||||
'30_minutes' => '30 Minutes',
|
||||
'1_hour' => '1 Hour',
|
||||
'1_day' => '1 Day',
|
||||
'round_tasks' => 'Round Tasks',
|
||||
'round_tasks_help' => 'Round time intervals when saving tasks',
|
||||
'round_tasks' => 'Task Rounding Direction',
|
||||
'round_tasks_help' => 'Round task times up or down.',
|
||||
'direction' => 'Direction',
|
||||
'round_up' => 'Round Up',
|
||||
'round_down' => 'Round Down',
|
||||
'task_round_to_nearest' => 'Round To Nearest',
|
||||
'task_round_to_nearest_help' => 'The interval to round the task to.',
|
||||
'bulk_updated' => 'Successfully updated data',
|
||||
'bulk_update' => 'Bulk Update',
|
||||
'calculate' => 'Calculate',
|
||||
@ -5325,6 +5265,37 @@ $lang = array(
|
||||
'money' => 'Money',
|
||||
'web_app' => 'Web App',
|
||||
'desktop_app' => 'Desktop App',
|
||||
'disconnected' => 'Disconnected',
|
||||
'reconnect' => 'Reconnect',
|
||||
'e_invoice_settings' => 'E-Invoice Settings',
|
||||
'btcpay_refund_subject' => 'Refund of your invoice via BTCPay',
|
||||
'btcpay_refund_body' => 'A refund intended for you has been issued. To claim it via BTCPay, please click on this link:',
|
||||
'currency_mauritanian_ouguiya' => 'Mauritanian Ouguiya',
|
||||
'currency_bhutan_ngultrum' => 'Bhutan Ngultrum',
|
||||
'end_of_month' => 'End Of Month',
|
||||
'merge_e_invoice_to_pdf' => 'Merge E-Invoice and PDF',
|
||||
'task_assigned_subject' => 'New task assignment [Task :task] [ :date ]',
|
||||
'task_assigned_body' => 'You have been assigned task :task <br><br> Description: :description <br><br> Client: :client',
|
||||
'activity_141' => 'User :user entered note: :notes',
|
||||
'quote_reminder_subject' => 'Reminder: Quote :quote from :company',
|
||||
'quote_reminder_message' => 'Reminder for quote :number for :amount',
|
||||
'quote_reminder1' => 'First Quote Reminder',
|
||||
'before_valid_until_date' => 'Before the valid until date',
|
||||
'after_valid_until_date' => 'After the valid until date',
|
||||
'after_quote_date' => 'After the quote date',
|
||||
'remind_quote' => 'Remind Quote',
|
||||
'end_of_month' => 'End Of Month',
|
||||
'tax_currency_mismatch' => 'Tax currency is different from invoice currency',
|
||||
'edocument_import_already_exists' => '\nThe invoice has already been imported on :date',
|
||||
'before_valid_until' => 'Before the valid until',
|
||||
'after_valid_until' => 'After the valid until',
|
||||
'task_assigned_notification' => 'Task Assigned Notification',
|
||||
'task_assigned_notification_help' => 'Send an email when a task is assigned',
|
||||
'invoices_locked_end_of_month' => 'Invoices are locked at the end of the month',
|
||||
'referral_url' => 'Referral URL',
|
||||
'add_comment' => 'Add Comment',
|
||||
'added_comment' => 'Successfully saved comment',
|
||||
'tickets' => 'Tickets',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
578
public/flutter_service_worker.js
vendored
578
public/flutter_service_worker.js
vendored
@ -5,311 +5,311 @@ const CACHE_NAME = 'flutter-app-cache';
|
||||
|
||||
const RESOURCES = {"icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35",
|
||||
"icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed",
|
||||
"flutter.js": "c71a09214cb6f5f8996a531350400a9a",
|
||||
"canvaskit/skwasm.worker.js": "bfb704a6c714a75da9ef320991e88b03",
|
||||
"canvaskit/skwasm.js": "445e9e400085faead4493be2224d95aa",
|
||||
"canvaskit/canvaskit.js.symbols": "38cba9233b92472a36ff011dc21c2c9f",
|
||||
"canvaskit/skwasm.js.symbols": "741d50ffba71f89345996b0aa8426af8",
|
||||
"canvaskit/chromium/canvaskit.js.symbols": "4525682ef039faeb11f24f37436dca06",
|
||||
"canvaskit/chromium/canvaskit.js": "43787ac5098c648979c27c13c6f804c3",
|
||||
"canvaskit/chromium/canvaskit.wasm": "f5934e694f12929ed56a671617acd254",
|
||||
"manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40",
|
||||
"canvaskit/canvaskit.js": "c86fbd9e7b17accae76e5ad116583dc4",
|
||||
"canvaskit/canvaskit.js.symbols": "38cba9233b92472a36ff011dc21c2c9f",
|
||||
"canvaskit/chromium/canvaskit.js": "43787ac5098c648979c27c13c6f804c3",
|
||||
"canvaskit/chromium/canvaskit.js.symbols": "4525682ef039faeb11f24f37436dca06",
|
||||
"canvaskit/chromium/canvaskit.wasm": "f5934e694f12929ed56a671617acd254",
|
||||
"canvaskit/canvaskit.wasm": "3d2a2d663e8c5111ac61a46367f751ac",
|
||||
"canvaskit/skwasm.wasm": "e42815763c5d05bba43f9d0337fa7d84",
|
||||
"canvaskit/skwasm.js.symbols": "741d50ffba71f89345996b0aa8426af8",
|
||||
"canvaskit/skwasm.js": "445e9e400085faead4493be2224d95aa",
|
||||
"canvaskit/skwasm.worker.js": "bfb704a6c714a75da9ef320991e88b03",
|
||||
"flutter.js": "c71a09214cb6f5f8996a531350400a9a",
|
||||
"version.json": "f789e711f61e122f41a7eda7522a1fba",
|
||||
"favicon.png": "dca91c54388f52eded692718d5a98b8b",
|
||||
"main.dart.js": "6acd51f637b30ad5fc3bc0ad9ebb3cf0",
|
||||
"assets/NOTICES": "412b336cf9e33e70058d612857effae1",
|
||||
"assets/AssetManifest.bin": "bf3be26e7055ad9a32f66b3a56138224",
|
||||
"assets/assets/images/logo_light.png": "e5f46d5a78e226e7a9553d4ca6f69219",
|
||||
"assets/assets/images/payment_types/other.png": "d936e11fa3884b8c9f1bd5c914be8629",
|
||||
"assets/assets/images/payment_types/paypal.png": "8e06c094c1871376dfea1da8088c29d1",
|
||||
"assets/assets/images/payment_types/maestro.png": "e533b92bfb50339fdbfa79e3dfe81f08",
|
||||
"assets/assets/images/payment_types/carteblanche.png": "d936e11fa3884b8c9f1bd5c914be8629",
|
||||
"assets/assets/images/payment_types/visa.png": "3ddc4a4d25c946e8ad7e6998f30fd4e3",
|
||||
"assets/assets/images/payment_types/amex.png": "c49a4247984b3732a4af50a3390aa978",
|
||||
"assets/assets/images/payment_types/discover.png": "6c0a386a00307f87db7bea366cca35f5",
|
||||
"assets/assets/images/payment_types/jcb.png": "07e0942d16c5592118b72e74f2f7198c",
|
||||
"assets/assets/images/payment_types/laser.png": "b4e6e93dd35517ac429301119ff05868",
|
||||
"assets/assets/images/payment_types/ach.png": "7433f0aff779dc98a649b7a2daf777cf",
|
||||
"assets/assets/images/payment_types/switch.png": "4fa11c45327f5fdc20205821b2cfd9cc",
|
||||
"assets/assets/images/payment_types/unionpay.png": "7002f52004e0ab8cc0b7450b0208ccb2",
|
||||
"assets/assets/images/payment_types/dinerscard.png": "06d85186ba858c18ab7c9caa42c92024",
|
||||
"assets/assets/images/payment_types/solo.png": "2030c3ccaccf5d5e87916a62f5b084d6",
|
||||
"assets/assets/images/payment_types/mastercard.png": "6f6cdc29ee2e22e06b1ac029cb52ef71",
|
||||
"assets/assets/images/icon.png": "090f69e23311a4b6d851b3880ae52541",
|
||||
"assets/assets/images/logo_dark.png": "a233ed1d4d0f7414bf97a9a10f11fb0a",
|
||||
"assets/assets/images/google_logo.png": "0f118259ce403274f407f5e982e681c3",
|
||||
"assets/assets/google_fonts/Roboto-Regular.ttf": "8a36205bd9b83e03af0591a004bc97f4",
|
||||
"assets/shaders/ink_sparkle.frag": "ecc85a2e95f5e9f53123dcaf8cb9b6ce",
|
||||
"assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf": "3759b2f7a51e83c64a58cfe07b96a8ee",
|
||||
"assets/packages/window_manager/images/ic_chrome_close.png": "75f4b8ab3608a05461a31fc18d6b47c2",
|
||||
"assets/packages/window_manager/images/ic_chrome_unmaximize.png": "4a90c1909cb74e8f0d35794e2f61d8bf",
|
||||
"assets/packages/window_manager/images/ic_chrome_minimize.png": "4282cd84cb36edf2efb950ad9269ca62",
|
||||
"assets/packages/window_manager/images/ic_chrome_maximize.png": "af7499d7657c8b69d23b85156b60298c",
|
||||
"assets/packages/intl_phone_field/assets/flags/kn.png": "f318e2fd87e5fd2cabefe9ff252bba46",
|
||||
"assets/packages/intl_phone_field/assets/flags/tg.png": "7f91f02b26b74899ff882868bd611714",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb-nir.png": "98773db151c150cabe845183241bfe6b",
|
||||
"assets/packages/intl_phone_field/assets/flags/cr.png": "bfd8b41e63fc3cc829c72c4b2e170532",
|
||||
"assets/packages/intl_phone_field/assets/flags/me.png": "590284bc85810635ace30a173e615ca4",
|
||||
"assets/packages/intl_phone_field/assets/flags/mx.png": "84b12a569b209e213daccfcbdd1fc799",
|
||||
"assets/packages/intl_phone_field/assets/flags/ve.png": "893391d65cbd10ca787a73578c77d3a7",
|
||||
"assets/packages/intl_phone_field/assets/flags/io.png": "83d45bbbff087d47b2b39f1c20598f52",
|
||||
"assets/packages/intl_phone_field/assets/flags/gq.png": "4286e56f388a37f64b21eb56550c06d9",
|
||||
"assets/packages/intl_phone_field/assets/flags/si.png": "24237e53b34752554915e71e346bb405",
|
||||
"assets/packages/window_manager/images/ic_chrome_minimize.png": "4282cd84cb36edf2efb950ad9269ca62",
|
||||
"assets/packages/window_manager/images/ic_chrome_unmaximize.png": "4a90c1909cb74e8f0d35794e2f61d8bf",
|
||||
"assets/packages/window_manager/images/ic_chrome_close.png": "75f4b8ab3608a05461a31fc18d6b47c2",
|
||||
"assets/packages/intl_phone_field/assets/flags/mm.png": "32e5293d6029d8294c7dfc3c3835c222",
|
||||
"assets/packages/intl_phone_field/assets/flags/fi.png": "3ccd69a842e55183415b7ea2c04b15c8",
|
||||
"assets/packages/intl_phone_field/assets/flags/tr.png": "27feab1a5ca390610d07e0c6bd4720d5",
|
||||
"assets/packages/intl_phone_field/assets/flags/my.png": "f7f962e8a074387fd568c9d4024e0959",
|
||||
"assets/packages/intl_phone_field/assets/flags/hk.png": "4b5ec424348c98ec71a46ad3dce3931d",
|
||||
"assets/packages/intl_phone_field/assets/flags/mh.png": "18dda388ef5c1cf37cae5e7d5fef39bc",
|
||||
"assets/packages/intl_phone_field/assets/flags/br.png": "5093e0cd8fd3c094664cd17ea8a36fd1",
|
||||
"assets/packages/intl_phone_field/assets/flags/nz.png": "65c811e96eb6c9da65538f899c110895",
|
||||
"assets/packages/intl_phone_field/assets/flags/mz.png": "1ab1ac750fbbb453d33e9f25850ac2a0",
|
||||
"assets/packages/intl_phone_field/assets/flags/td.png": "009303b6188ca0e30bd50074b16f0b16",
|
||||
"assets/packages/intl_phone_field/assets/flags/dz.png": "132ceca353a95c8214676b2e94ecd40f",
|
||||
"assets/packages/intl_phone_field/assets/flags/cn.png": "040539c2cdb60ebd9dc8957cdc6a8ad0",
|
||||
"assets/packages/intl_phone_field/assets/flags/pe.png": "4d9249aab70a26fadabb14380b3b55d2",
|
||||
"assets/packages/intl_phone_field/assets/flags/tj.png": "c73b793f2acd262e71b9236e64c77636",
|
||||
"assets/packages/intl_phone_field/assets/flags/id.png": "80bb82d11d5bc144a21042e77972bca9",
|
||||
"assets/packages/intl_phone_field/assets/flags/cz.png": "73ecd64c6144786c4d03729b1dd9b1f3",
|
||||
"assets/packages/intl_phone_field/assets/flags/cc.png": "31a475216e12fef447382c97b42876ce",
|
||||
"assets/packages/intl_phone_field/assets/flags/hr.png": "69711b2ea009a3e7c40045b538768d4e",
|
||||
"assets/packages/intl_phone_field/assets/flags/mf.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/mk.png": "835f2263974de523fa779d29c90595bf",
|
||||
"assets/packages/intl_phone_field/assets/flags/lv.png": "53105fea0cc9cc554e0ceaabc53a2d5d",
|
||||
"assets/packages/intl_phone_field/assets/flags/zm.png": "81cec35b715f227328cad8f314acd797",
|
||||
"assets/packages/intl_phone_field/assets/flags/ch.png": "a251702f7760b0aac141428ed60b7b66",
|
||||
"assets/packages/intl_phone_field/assets/flags/cy.png": "7b36f4af86257a3f15f5a5a16f4a2fcd",
|
||||
"assets/packages/intl_phone_field/assets/flags/by.png": "beabf61e94fb3a4f7c7a7890488b213d",
|
||||
"assets/packages/intl_phone_field/assets/flags/bb.png": "a8473747387e4e7a8450c499529f1c93",
|
||||
"assets/packages/intl_phone_field/assets/flags/ai.png": "ce5e91ed1725f0499b9231b69a7fd448",
|
||||
"assets/packages/intl_phone_field/assets/flags/sn.png": "68eaa89bbc83b3f356e1ba2096b09b3c",
|
||||
"assets/packages/intl_phone_field/assets/flags/at.png": "570c070177a5ea0fe03e20107ebf5283",
|
||||
"assets/packages/intl_phone_field/assets/flags/ru.png": "6974dcb42ad7eb3add1009ea0c6003e3",
|
||||
"assets/packages/intl_phone_field/assets/flags/pn.png": "0b0641b356af4c3e3489192ff4b0be77",
|
||||
"assets/packages/intl_phone_field/assets/flags/sc.png": "e969fd5afb1eb5902675b6bcf49a8c2e",
|
||||
"assets/packages/intl_phone_field/assets/flags/na.png": "cdc00e9267a873609b0abea944939ff7",
|
||||
"assets/packages/intl_phone_field/assets/flags/ag.png": "41c11d5668c93ba6e452f811defdbb24",
|
||||
"assets/packages/intl_phone_field/assets/flags/pm.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/ro.png": "85af99741fe20664d9a7112cfd8d9722",
|
||||
"assets/packages/intl_phone_field/assets/flags/mo.png": "849848a26bbfc87024017418ad7a6233",
|
||||
"assets/packages/intl_phone_field/assets/flags/um.png": "8fe7c4fed0a065fdfb9bd3125c6ecaa1",
|
||||
"assets/packages/intl_phone_field/assets/flags/th.png": "11ce0c9f8c738fd217ea52b9bc29014b",
|
||||
"assets/packages/intl_phone_field/assets/flags/pl.png": "f20e9ef473a9ed24176f5ad74dd0d50a",
|
||||
"assets/packages/intl_phone_field/assets/flags/sm.png": "a8d6801cb7c5360e18f0a2ed146b396d",
|
||||
"assets/packages/intl_phone_field/assets/flags/fk.png": "da8b0fe48829aae2c8feb4839895de63",
|
||||
"assets/packages/intl_phone_field/assets/flags/tv.png": "c57025ed7ae482210f29b9da86b0d211",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb-sct.png": "75106a5e49e3e16da76cb33bdac102ab",
|
||||
"assets/packages/intl_phone_field/assets/flags/ci.png": "7f5ca3779d5ff6ce0c803a6efa0d2da7",
|
||||
"assets/packages/intl_phone_field/assets/flags/eh.png": "515a9cf2620c802e305b5412ac81aed2",
|
||||
"assets/packages/intl_phone_field/assets/flags/vi.png": "3f317c56f31971b3179abd4e03847036",
|
||||
"assets/packages/intl_phone_field/assets/flags/kp.png": "e1c8bb52f31fca22d3368d8f492d8f27",
|
||||
"assets/packages/intl_phone_field/assets/flags/ws.png": "f206322f3e22f175869869dbfadb6ce8",
|
||||
"assets/packages/intl_phone_field/assets/flags/tm.png": "0980fb40ec450f70896f2c588510f933",
|
||||
"assets/packages/intl_phone_field/assets/flags/lb.png": "f80cde345f0d9bd0086531808ce5166a",
|
||||
"assets/packages/intl_phone_field/assets/flags/gg.png": "eed435d25bd755aa7f9cd7004b9ed49d",
|
||||
"assets/packages/intl_phone_field/assets/flags/lu.png": "6274fd1cae3c7a425d25e4ccb0941bb8",
|
||||
"assets/packages/intl_phone_field/assets/flags/ph.png": "e4025d1395a8455f1ba038597a95228c",
|
||||
"assets/packages/intl_phone_field/assets/flags/za.png": "b28280c6c3eb4624c18b5455d4a1b1ff",
|
||||
"assets/packages/intl_phone_field/assets/flags/sk.png": "2a1ee716d4b41c017ff1dbf3fd3ffc64",
|
||||
"assets/packages/intl_phone_field/assets/flags/lc.png": "8c1a03a592aa0a99fcaf2b81508a87eb",
|
||||
"assets/packages/intl_phone_field/assets/flags/bh.png": "a1acd86ef0e19ea5f0297bbe1de6cfd4",
|
||||
"assets/packages/intl_phone_field/assets/flags/md.png": "8911d3d821b95b00abbba8771e997eb3",
|
||||
"assets/packages/intl_phone_field/assets/flags/pa.png": "78e3e4fd56f0064837098fe3f22fb41b",
|
||||
"assets/packages/intl_phone_field/assets/flags/ao.png": "5f0a372aa3aa7150a3dafea97acfc10d",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb.png": "98773db151c150cabe845183241bfe6b",
|
||||
"assets/packages/intl_phone_field/assets/flags/hm.png": "72be14316f0af3903cdca7a726c0c589",
|
||||
"assets/packages/intl_phone_field/assets/flags/mp.png": "87351c30a529071ee9a4bb67765fea4f",
|
||||
"assets/packages/intl_phone_field/assets/flags/nu.png": "f4169998548e312584c67873e0d9352d",
|
||||
"assets/packages/intl_phone_field/assets/flags/ly.png": "8d65057351859065d64b4c118ff9e30e",
|
||||
"assets/packages/intl_phone_field/assets/flags/se.png": "25dd5434891ac1ca2ad1af59cda70f80",
|
||||
"assets/packages/intl_phone_field/assets/flags/gn.png": "b2287c03c88a72d968aa796a076ba056",
|
||||
"assets/packages/intl_phone_field/assets/flags/gl.png": "b79e24ee1889b7446ba3d65564b86810",
|
||||
"assets/packages/intl_phone_field/assets/flags/tn.png": "6612e9fec4bef022cbd45cbb7c02b2b6",
|
||||
"assets/packages/intl_phone_field/assets/flags/jo.png": "c01cb41f74f9db0cf07ba20f0af83011",
|
||||
"assets/packages/intl_phone_field/assets/flags/lk.png": "5a3a063cfff4a92fb0ba6158e610e025",
|
||||
"assets/packages/intl_phone_field/assets/flags/es.png": "654965f9722f6706586476fb2f5d30dd",
|
||||
"assets/packages/intl_phone_field/assets/flags/wf.png": "6f1644b8f907d197c0ff7ed2f366ad64",
|
||||
"assets/packages/intl_phone_field/assets/flags/cw.png": "6c598eb0d331d6b238da57055ec00d33",
|
||||
"assets/packages/intl_phone_field/assets/flags/ye.png": "4cf73209d90e9f02ead1565c8fdf59e5",
|
||||
"assets/packages/intl_phone_field/assets/flags/mq.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/al.png": "722cf9e5c7a1d9c9e4608fb44dbb427d",
|
||||
"assets/packages/intl_phone_field/assets/flags/gd.png": "7a4864ccfa2a0564041c2d1f8a13a8c9",
|
||||
"assets/packages/intl_phone_field/assets/flags/bt.png": "3cfe1440e952bc7266d71f7f1454fa23",
|
||||
"assets/packages/intl_phone_field/assets/flags/is.png": "907840430252c431518005b562707831",
|
||||
"assets/packages/intl_phone_field/assets/flags/vc.png": "da3ca14a978717467abbcdece05d3544",
|
||||
"assets/packages/intl_phone_field/assets/flags/cv.png": "9b1f31f9fc0795d728328dedd33eb1c0",
|
||||
"assets/packages/intl_phone_field/assets/flags/pt.png": "eba93d33545c78cc67915d9be8323661",
|
||||
"assets/packages/intl_phone_field/assets/flags/pg.png": "0f7e03465a93e0b4e3e1c9d3dd5814a4",
|
||||
"assets/packages/intl_phone_field/assets/flags/kz.png": "cb3b0095281c9d7e7fb5ce1716ef8ee5",
|
||||
"assets/packages/intl_phone_field/assets/flags/re.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/jp.png": "25ac778acd990bedcfdc02a9b4570045",
|
||||
"assets/packages/intl_phone_field/assets/flags/sr.png": "9f912879f2829a625436ccd15e643e39",
|
||||
"assets/packages/intl_phone_field/assets/flags/ne.png": "a20724c177e86d6a27143aa9c9664a6f",
|
||||
"assets/packages/intl_phone_field/assets/flags/ga.png": "b0e5b2fa1b7106c7652a955db24c11c4",
|
||||
"assets/packages/intl_phone_field/assets/flags/it.png": "5c8e910e6a33ec63dfcda6e8960dd19c",
|
||||
"assets/packages/intl_phone_field/assets/flags/kh.png": "d48d51e8769a26930da6edfc15de97fe",
|
||||
"assets/packages/intl_phone_field/assets/flags/km.png": "5554c8746c16d4f482986fb78ffd9b36",
|
||||
"assets/packages/intl_phone_field/assets/flags/gf.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/aw.png": "a93ddf8e32d246dc47f6631f38e0ed92",
|
||||
"assets/packages/intl_phone_field/assets/flags/sv.png": "217b691efbef7a0f48cdd53e91997f0e",
|
||||
"assets/packages/intl_phone_field/assets/flags/pk.png": "7a6a621f7062589677b3296ca16c6718",
|
||||
"assets/packages/intl_phone_field/assets/flags/gu.png": "2acb614b442e55864411b6e418df6eab",
|
||||
"assets/packages/intl_phone_field/assets/flags/gi.png": "446aa44aaa063d240adab88243b460d3",
|
||||
"assets/packages/intl_phone_field/assets/flags/eu.png": "c58ece3931acb87faadc5b940d4f7755",
|
||||
"assets/packages/intl_phone_field/assets/flags/nl.png": "3649c177693bfee9c2fcc63c191a51f1",
|
||||
"assets/packages/intl_phone_field/assets/flags/bw.png": "fac8b90d7404728c08686dc39bab4fb3",
|
||||
"assets/packages/intl_phone_field/assets/flags/st.png": "fef62c31713ff1063da2564df3f43eea",
|
||||
"assets/packages/intl_phone_field/assets/flags/vu.png": "3f201fdfb6d669a64c35c20a801016d1",
|
||||
"assets/packages/intl_phone_field/assets/flags/ki.png": "14db0fc29398730064503907bd696176",
|
||||
"assets/packages/intl_phone_field/assets/flags/tt.png": "a8e1fc5c65dc8bc362a9453fadf9c4b3",
|
||||
"assets/packages/intl_phone_field/assets/flags/be.png": "7e5e1831cdd91935b38415479a7110eb",
|
||||
"assets/packages/intl_phone_field/assets/flags/ht.png": "630f7f8567d87409a32955107ad11a86",
|
||||
"assets/packages/intl_phone_field/assets/flags/gy.png": "159a260bf0217128ea7475ba5b272b6a",
|
||||
"assets/packages/intl_phone_field/assets/flags/pw.png": "2e697cc6907a7b94c7f94f5d9b3bdccc",
|
||||
"assets/packages/intl_phone_field/assets/flags/li.png": "ecdf7b3fe932378b110851674335d9ab",
|
||||
"assets/packages/intl_phone_field/assets/flags/bn.png": "ed650de06fff61ff27ec92a872197948",
|
||||
"assets/packages/intl_phone_field/assets/flags/ec.png": "c1ae60d080be91f3be31e92e0a2d9555",
|
||||
"assets/packages/intl_phone_field/assets/flags/af.png": "ba710b50a060b5351381b55366396c30",
|
||||
"assets/packages/intl_phone_field/assets/flags/kg.png": "c4aa6d221d9a9d332155518d6b82dbc7",
|
||||
"assets/packages/intl_phone_field/assets/flags/aq.png": "0c586e7b91aa192758fdd0f03adb84d8",
|
||||
"assets/packages/intl_phone_field/assets/flags/us.png": "83b065848d14d33c0d10a13e01862f34",
|
||||
"assets/packages/intl_phone_field/assets/flags/ss.png": "b0120cb000b31bb1a5c801c3592139bc",
|
||||
"assets/packages/intl_phone_field/assets/flags/gr.png": "ec11281d7decbf07b81a23a72a609b59",
|
||||
"assets/packages/intl_phone_field/assets/flags/ug.png": "9a0f358b1eb19863e21ae2063fab51c0",
|
||||
"assets/packages/intl_phone_field/assets/flags/ua.png": "b4b10d893611470661b079cb30473871",
|
||||
"assets/packages/intl_phone_field/assets/flags/fj.png": "1c6a86752578eb132390febf12789cd6",
|
||||
"assets/packages/intl_phone_field/assets/flags/mt.png": "f3119401ae0c3a9d6e2dc23803928c06",
|
||||
"assets/packages/intl_phone_field/assets/flags/tw.png": "b1101fd5f871a9ffe7c9ad191a7d3304",
|
||||
"assets/packages/intl_phone_field/assets/flags/ml.png": "0c50dfd539e87bb4313da0d4556e2d13",
|
||||
"assets/packages/intl_phone_field/assets/flags/gs.png": "419dd57836797a3f1bf6258ea6589f9a",
|
||||
"assets/packages/intl_phone_field/assets/flags/tf.png": "b2c044b86509e7960b5ba66b094ea285",
|
||||
"assets/packages/intl_phone_field/assets/flags/cd.png": "5b5f832ed6cd9f9240cb31229d8763dc",
|
||||
"assets/packages/intl_phone_field/assets/flags/dk.png": "abcd01bdbcc02b4a29cbac237f29cd1d",
|
||||
"assets/packages/intl_phone_field/assets/flags/np.png": "6e099fb1e063930bdd00e8df5cef73d4",
|
||||
"assets/packages/intl_phone_field/assets/flags/bs.png": "2b9540c4fa514f71911a48de0bd77e71",
|
||||
"assets/packages/intl_phone_field/assets/flags/mn.png": "16086e8d89c9067d29fd0f2ea7021a45",
|
||||
"assets/packages/intl_phone_field/assets/flags/ke.png": "cf5aae3699d3cacb39db9803edae172b",
|
||||
"assets/packages/intl_phone_field/assets/flags/ls.png": "2bca756f9313957347404557acb532b0",
|
||||
"assets/packages/intl_phone_field/assets/flags/ie.png": "1d91912afc591dd120b47b56ea78cdbf",
|
||||
"assets/packages/intl_phone_field/assets/flags/rw.png": "d1aae0647a5b1ab977ae43ab894ce2c3",
|
||||
"assets/packages/intl_phone_field/assets/flags/dj.png": "078bd37d41f746c3cb2d84c1e9611c55",
|
||||
"assets/packages/intl_phone_field/assets/flags/mu.png": "c5228d1e94501d846b5bf203f038ae49",
|
||||
"assets/packages/intl_phone_field/assets/flags/fo.png": "2c7d9233582e83a86927e634897a2a90",
|
||||
"assets/packages/intl_phone_field/assets/flags/bi.png": "adda8121501f0543f1075244a1acc275",
|
||||
"assets/packages/intl_phone_field/assets/flags/py.png": "154d4add03b4878caf00bd3249e14f40",
|
||||
"assets/packages/intl_phone_field/assets/flags/uy.png": "da4247b21fcbd9e30dc2b3f7c5dccb64",
|
||||
"assets/packages/intl_phone_field/assets/flags/bg.png": "1d24bc616e3389684ed2c9f18bcb0209",
|
||||
"assets/packages/intl_phone_field/assets/flags/ni.png": "e398dc23e79d9ccd702546cc25f126bf",
|
||||
"assets/packages/intl_phone_field/assets/flags/hu.png": "281582a753e643b46bdd894047db08bb",
|
||||
"assets/packages/intl_phone_field/assets/flags/sj.png": "33bc70259c4908b7b9adeef9436f7a9f",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb-wls.png": "d7d7c77c72cd425d993bdc50720f4d04",
|
||||
"assets/packages/intl_phone_field/assets/flags/co.png": "e3b1be16dcdae6cb72e9c238fdddce3c",
|
||||
"assets/packages/intl_phone_field/assets/flags/qa.png": "eb9b3388e554cf85aea1e739247548df",
|
||||
"assets/packages/intl_phone_field/assets/flags/ge.png": "6fbd41f07921fa415347ebf6dff5b0f7",
|
||||
"assets/packages/intl_phone_field/assets/flags/pr.png": "b97b2f4432c430bc340d893f36527e31",
|
||||
"assets/packages/intl_phone_field/assets/flags/am.png": "aaa39141fbc80205bebaa0200b55a13a",
|
||||
"assets/packages/intl_phone_field/assets/flags/gm.png": "7148d3715527544c2e7d8d6f4a445bb6",
|
||||
"assets/packages/intl_phone_field/assets/flags/ar.png": "3bd245f8c28f70c9ef9626dae27adc65",
|
||||
"assets/packages/intl_phone_field/assets/flags/bj.png": "6fdc6449f73d23ad3f07060f92db4423",
|
||||
"assets/packages/intl_phone_field/assets/flags/au.png": "72be14316f0af3903cdca7a726c0c589",
|
||||
"assets/packages/intl_phone_field/assets/flags/gp.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/sy.png": "24186a0f4ce804a16c91592db5a16a3a",
|
||||
"assets/packages/intl_phone_field/assets/flags/fr.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/vn.png": "32ff65ccbf31a707a195be2a5141a89b",
|
||||
"assets/packages/intl_phone_field/assets/flags/no.png": "33bc70259c4908b7b9adeef9436f7a9f",
|
||||
"assets/packages/intl_phone_field/assets/flags/cf.png": "263583ffdf7a888ce4fba8487d1da0b2",
|
||||
"assets/packages/intl_phone_field/assets/flags/tz.png": "56ec99c7e0f68b88a2210620d873683a",
|
||||
"assets/packages/intl_phone_field/assets/flags/xk.png": "079259fbcb1f3c78dafa944464295c16",
|
||||
"assets/packages/intl_phone_field/assets/flags/cl.png": "6735e0e2d88c119e9ed1533be5249ef1",
|
||||
"assets/packages/intl_phone_field/assets/flags/jm.png": "074400103847c56c37425a73f9d23665",
|
||||
"assets/packages/intl_phone_field/assets/flags/in.png": "1dec13ba525529cffd4c7f8a35d51121",
|
||||
"assets/packages/intl_phone_field/assets/flags/sl.png": "61b9d992c8a6a83abc4d432069617811",
|
||||
"assets/packages/intl_phone_field/assets/flags/mr.png": "f2a62602d43a1ee14625af165b96ce2f",
|
||||
"assets/packages/intl_phone_field/assets/flags/bq.png": "3649c177693bfee9c2fcc63c191a51f1",
|
||||
"assets/packages/intl_phone_field/assets/flags/bf.png": "63f1c67fca7ce8b52b3418a90af6ad37",
|
||||
"assets/packages/intl_phone_field/assets/flags/et.png": "57edff61c7fddf2761a19948acef1498",
|
||||
"assets/packages/intl_phone_field/assets/flags/sx.png": "9c19254973d8acf81581ad95b408c7e6",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb-eng.png": "0d9f2a6775fd52b79e1d78eb1dda10cf",
|
||||
"assets/packages/intl_phone_field/assets/flags/lr.png": "b92c75e18dd97349c75d6a43bd17ee94",
|
||||
"assets/packages/intl_phone_field/assets/flags/eg.png": "311d780e8e3dd43f87e6070f6feb74c7",
|
||||
"assets/packages/intl_phone_field/assets/flags/sz.png": "d1829842e45c2b2b29222c1b7e201591",
|
||||
"assets/packages/intl_phone_field/assets/flags/yt.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/to.png": "1cdd716b5b5502f85d6161dac6ee6c5b",
|
||||
"assets/packages/intl_phone_field/assets/flags/la.png": "e8cd9c3ee6e134adcbe3e986e1974e4a",
|
||||
"assets/packages/intl_phone_field/assets/flags/ir.png": "37f67c3141e9843196cb94815be7bd37",
|
||||
"assets/packages/intl_phone_field/assets/flags/tl.png": "c80876dc80cda5ab6bb8ef078bc6b05d",
|
||||
"assets/packages/intl_phone_field/assets/flags/kw.png": "3ca448e219d0df506fb2efd5b91be092",
|
||||
"assets/packages/intl_phone_field/assets/flags/cm.png": "42d52fa71e8b4dbb182ff431749e8d0d",
|
||||
"assets/packages/intl_phone_field/assets/flags/bz.png": "fd2d7d27a5ddabe4eb9a10b1d3a433e4",
|
||||
"assets/packages/intl_phone_field/assets/flags/sa.png": "7c95c1a877148e2aa21a213d720ff4fd",
|
||||
"assets/packages/intl_phone_field/assets/flags/nf.png": "1c2069b299ce3660a2a95ec574dfde25",
|
||||
"assets/packages/intl_phone_field/assets/flags/nr.png": "1316f3a8a419d8be1975912c712535ea",
|
||||
"assets/packages/intl_phone_field/assets/flags/nc.png": "cb36e0c945b79d56def11b23c6a9c7e9",
|
||||
"assets/packages/intl_phone_field/assets/flags/ms.png": "9c955a926cf7d57fccb450a97192afa7",
|
||||
"assets/packages/intl_phone_field/assets/flags/gw.png": "05606b9a6393971bd87718b809e054f9",
|
||||
"assets/packages/intl_phone_field/assets/flags/sh.png": "98773db151c150cabe845183241bfe6b",
|
||||
"assets/packages/intl_phone_field/assets/flags/ba.png": "d415bad33b35de3f095177e8e86cbc82",
|
||||
"assets/packages/intl_phone_field/assets/flags/mc.png": "90c2ad7f144d73d4650cbea9dd621275",
|
||||
"assets/packages/intl_phone_field/assets/flags/sb.png": "296ecedbd8d1c2a6422c3ba8e5cd54bd",
|
||||
"assets/packages/intl_phone_field/assets/flags/hn.png": "9ecf68aed83c4a9b3f1e6275d96bfb04",
|
||||
"assets/packages/intl_phone_field/assets/flags/rs.png": "9dff535d2d08c504be63062f39eff0b7",
|
||||
"assets/packages/intl_phone_field/assets/flags/je.png": "288f8dca26098e83ff0455b08cceca1b",
|
||||
"assets/packages/intl_phone_field/assets/flags/kr.png": "a3b7da3b76b20a70e9cd63cc2315b51b",
|
||||
"assets/packages/intl_phone_field/assets/flags/pf.png": "1ae72c24380d087cbe2d0cd6c3b58821",
|
||||
"assets/packages/intl_phone_field/assets/flags/zw.png": "078a3267ea8eabf88b2d43fe4aed5ce5",
|
||||
"assets/packages/intl_phone_field/assets/flags/ps.png": "52a25a48658ca9274830ffa124a8c1db",
|
||||
"assets/packages/intl_phone_field/assets/flags/bl.png": "dae94f5465d3390fdc5929e4f74d3f5f",
|
||||
"assets/packages/intl_phone_field/assets/flags/ck.png": "39f343868a8dc8ca95d27b27a5caf480",
|
||||
"assets/packages/intl_phone_field/assets/flags/do.png": "ed35983a9263bb5713be37d9a52caddc",
|
||||
"assets/packages/intl_phone_field/assets/flags/sg.png": "bc772e50b8c79f08f3c2189f5d8ce491",
|
||||
"assets/packages/intl_phone_field/assets/flags/az.png": "6ffa766f6883d2d3d350cdc22a062ca3",
|
||||
"assets/packages/intl_phone_field/assets/flags/ee.png": "e242645cae28bd5291116ea211f9a566",
|
||||
"assets/packages/intl_phone_field/assets/flags/iq.png": "bc3e6f68c5188dbf99b473e2bea066f2",
|
||||
"assets/packages/intl_phone_field/assets/flags/cu.png": "f41715bd51f63a9aebf543788543b4c4",
|
||||
"assets/packages/intl_phone_field/assets/flags/ae.png": "792efc5eb6c31d780bd34bf4bad69f3f",
|
||||
"assets/packages/intl_phone_field/assets/flags/il.png": "1e06ad7783f24332405d36561024cc4c",
|
||||
"assets/packages/intl_phone_field/assets/flags/fm.png": "d571b8bc4b80980a81a5edbde788b6d2",
|
||||
"assets/packages/intl_phone_field/assets/flags/mw.png": "ffc1f18eeedc1dfbb1080aa985ce7d05",
|
||||
"assets/packages/intl_phone_field/assets/flags/lt.png": "7df2cd6566725685f7feb2051f916a3e",
|
||||
"assets/packages/intl_phone_field/assets/flags/an.png": "4e4b90fbca1275d1839ca5b44fc51071",
|
||||
"assets/packages/intl_phone_field/assets/flags/cx.png": "8efa3231c8a3900a78f2b51d829f8c52",
|
||||
"assets/packages/intl_phone_field/assets/flags/tc.png": "d728d6763c17c520ad6bcf3c24282a29",
|
||||
"assets/packages/intl_phone_field/assets/flags/mg.png": "0ef6271ad284ebc0069ff0aeb5a3ad1e",
|
||||
"assets/packages/intl_phone_field/assets/flags/so.png": "1ce20d052f9d057250be96f42647513b",
|
||||
"assets/packages/intl_phone_field/assets/flags/ky.png": "38e39eba673e82c48a1f25bd103a7e97",
|
||||
"assets/packages/intl_phone_field/assets/flags/dm.png": "8886b222ed9ccd00f67e8bcf86dadcc2",
|
||||
"assets/packages/intl_phone_field/assets/flags/va.png": "c010bf145f695d5c8fb551bafc081f77",
|
||||
"assets/packages/intl_phone_field/assets/flags/ad.png": "384e9845debe9aca8f8586d9bedcb7e6",
|
||||
"assets/packages/intl_phone_field/assets/flags/om.png": "cebd9ab4b9ab071b2142e21ae2129efc",
|
||||
"assets/packages/intl_phone_field/assets/flags/gh.png": "b35464dca793fa33e51bf890b5f3d92b",
|
||||
"assets/packages/intl_phone_field/assets/flags/as.png": "d9c1da515c6f945c2e2554592a9dfaae",
|
||||
"assets/packages/intl_phone_field/assets/flags/bd.png": "86a0e4bd8787dc8542137a407e0f987f",
|
||||
"assets/packages/intl_phone_field/assets/flags/im.png": "7c9ccb825f0fca557d795c4330cf4f50",
|
||||
"assets/packages/intl_phone_field/assets/flags/bo.png": "3ccf6fa7f9cbc27949b8418925e4e89c",
|
||||
"assets/packages/intl_phone_field/assets/flags/cg.png": "eca97338cc1cb5b5e91bec72af57b3d4",
|
||||
"assets/packages/intl_phone_field/assets/flags/ng.png": "aedbe364bd1543832e88e64b5817e877",
|
||||
"assets/packages/intl_phone_field/assets/flags/mv.png": "d9245f74e34d5c054413ace4b86b4f16",
|
||||
"assets/packages/intl_phone_field/assets/flags/de.png": "5d9561246523cf6183928756fd605e25",
|
||||
"assets/packages/intl_phone_field/assets/flags/uz.png": "3adad3bac322220cac8abc1c7cbaacac",
|
||||
"assets/packages/intl_phone_field/assets/flags/bm.png": "b366ba84cbc8286c830f392bb9086be5",
|
||||
"assets/packages/intl_phone_field/assets/flags/ma.png": "057ea2e08587f1361b3547556adae0c2",
|
||||
"assets/packages/intl_phone_field/assets/flags/bv.png": "33bc70259c4908b7b9adeef9436f7a9f",
|
||||
"assets/packages/intl_phone_field/assets/flags/er.png": "8ca78e10878a2e97c1371b38c5d258a7",
|
||||
"assets/packages/intl_phone_field/assets/flags/tk.png": "60428ff1cdbae680e5a0b8cde4677dd5",
|
||||
"assets/packages/intl_phone_field/assets/flags/ca.png": "76f2fac1d3b2cc52ba6695c2e2941632",
|
||||
"assets/packages/intl_phone_field/assets/flags/ws.png": "f206322f3e22f175869869dbfadb6ce8",
|
||||
"assets/packages/intl_phone_field/assets/flags/ss.png": "b0120cb000b31bb1a5c801c3592139bc",
|
||||
"assets/packages/intl_phone_field/assets/flags/me.png": "590284bc85810635ace30a173e615ca4",
|
||||
"assets/packages/intl_phone_field/assets/flags/pf.png": "1ae72c24380d087cbe2d0cd6c3b58821",
|
||||
"assets/packages/intl_phone_field/assets/flags/vi.png": "3f317c56f31971b3179abd4e03847036",
|
||||
"assets/packages/intl_phone_field/assets/flags/dm.png": "8886b222ed9ccd00f67e8bcf86dadcc2",
|
||||
"assets/packages/intl_phone_field/assets/flags/kg.png": "c4aa6d221d9a9d332155518d6b82dbc7",
|
||||
"assets/packages/intl_phone_field/assets/flags/lb.png": "f80cde345f0d9bd0086531808ce5166a",
|
||||
"assets/packages/intl_phone_field/assets/flags/sb.png": "296ecedbd8d1c2a6422c3ba8e5cd54bd",
|
||||
"assets/packages/intl_phone_field/assets/flags/gu.png": "2acb614b442e55864411b6e418df6eab",
|
||||
"assets/packages/intl_phone_field/assets/flags/bz.png": "fd2d7d27a5ddabe4eb9a10b1d3a433e4",
|
||||
"assets/packages/intl_phone_field/assets/flags/by.png": "beabf61e94fb3a4f7c7a7890488b213d",
|
||||
"assets/packages/intl_phone_field/assets/flags/km.png": "5554c8746c16d4f482986fb78ffd9b36",
|
||||
"assets/packages/intl_phone_field/assets/flags/jp.png": "25ac778acd990bedcfdc02a9b4570045",
|
||||
"assets/packages/intl_phone_field/assets/flags/pw.png": "2e697cc6907a7b94c7f94f5d9b3bdccc",
|
||||
"assets/packages/intl_phone_field/assets/flags/dk.png": "abcd01bdbcc02b4a29cbac237f29cd1d",
|
||||
"assets/packages/intl_phone_field/assets/flags/ph.png": "e4025d1395a8455f1ba038597a95228c",
|
||||
"assets/packages/intl_phone_field/assets/flags/lk.png": "5a3a063cfff4a92fb0ba6158e610e025",
|
||||
"assets/packages/intl_phone_field/assets/flags/fo.png": "2c7d9233582e83a86927e634897a2a90",
|
||||
"assets/packages/intl_phone_field/assets/flags/tf.png": "b2c044b86509e7960b5ba66b094ea285",
|
||||
"assets/packages/intl_phone_field/assets/flags/so.png": "1ce20d052f9d057250be96f42647513b",
|
||||
"assets/packages/intl_phone_field/assets/flags/ru.png": "6974dcb42ad7eb3add1009ea0c6003e3",
|
||||
"assets/packages/intl_phone_field/assets/flags/mh.png": "18dda388ef5c1cf37cae5e7d5fef39bc",
|
||||
"assets/packages/intl_phone_field/assets/flags/de.png": "5d9561246523cf6183928756fd605e25",
|
||||
"assets/packages/intl_phone_field/assets/flags/lr.png": "b92c75e18dd97349c75d6a43bd17ee94",
|
||||
"assets/packages/intl_phone_field/assets/flags/br.png": "5093e0cd8fd3c094664cd17ea8a36fd1",
|
||||
"assets/packages/intl_phone_field/assets/flags/ao.png": "5f0a372aa3aa7150a3dafea97acfc10d",
|
||||
"assets/packages/intl_phone_field/assets/flags/sg.png": "bc772e50b8c79f08f3c2189f5d8ce491",
|
||||
"assets/packages/intl_phone_field/assets/flags/tl.png": "c80876dc80cda5ab6bb8ef078bc6b05d",
|
||||
"assets/packages/intl_phone_field/assets/flags/bm.png": "b366ba84cbc8286c830f392bb9086be5",
|
||||
"assets/packages/intl_phone_field/assets/flags/hn.png": "9ecf68aed83c4a9b3f1e6275d96bfb04",
|
||||
"assets/packages/intl_phone_field/assets/flags/ma.png": "057ea2e08587f1361b3547556adae0c2",
|
||||
"assets/packages/intl_phone_field/assets/flags/pr.png": "b97b2f4432c430bc340d893f36527e31",
|
||||
"assets/packages/intl_phone_field/assets/flags/ly.png": "8d65057351859065d64b4c118ff9e30e",
|
||||
"assets/packages/intl_phone_field/assets/flags/ga.png": "b0e5b2fa1b7106c7652a955db24c11c4",
|
||||
"assets/packages/intl_phone_field/assets/flags/af.png": "ba710b50a060b5351381b55366396c30",
|
||||
"assets/packages/intl_phone_field/assets/flags/hr.png": "69711b2ea009a3e7c40045b538768d4e",
|
||||
"assets/packages/intl_phone_field/assets/flags/ye.png": "4cf73209d90e9f02ead1565c8fdf59e5",
|
||||
"assets/packages/intl_phone_field/assets/flags/ag.png": "41c11d5668c93ba6e452f811defdbb24",
|
||||
"assets/packages/intl_phone_field/assets/flags/us.png": "83b065848d14d33c0d10a13e01862f34",
|
||||
"assets/packages/intl_phone_field/assets/flags/mz.png": "1ab1ac750fbbb453d33e9f25850ac2a0",
|
||||
"assets/packages/intl_phone_field/assets/flags/ge.png": "6fbd41f07921fa415347ebf6dff5b0f7",
|
||||
"assets/packages/intl_phone_field/assets/flags/bh.png": "a1acd86ef0e19ea5f0297bbe1de6cfd4",
|
||||
"assets/packages/intl_phone_field/assets/flags/sv.png": "217b691efbef7a0f48cdd53e91997f0e",
|
||||
"assets/packages/intl_phone_field/assets/flags/co.png": "e3b1be16dcdae6cb72e9c238fdddce3c",
|
||||
"assets/packages/intl_phone_field/assets/flags/se.png": "25dd5434891ac1ca2ad1af59cda70f80",
|
||||
"assets/packages/intl_phone_field/assets/flags/sc.png": "e969fd5afb1eb5902675b6bcf49a8c2e",
|
||||
"assets/packages/intl_phone_field/assets/flags/vu.png": "3f201fdfb6d669a64c35c20a801016d1",
|
||||
"assets/packages/intl_phone_field/assets/flags/cu.png": "f41715bd51f63a9aebf543788543b4c4",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb-eng.png": "0d9f2a6775fd52b79e1d78eb1dda10cf",
|
||||
"assets/packages/intl_phone_field/assets/flags/sh.png": "98773db151c150cabe845183241bfe6b",
|
||||
"assets/packages/intl_phone_field/assets/flags/eg.png": "311d780e8e3dd43f87e6070f6feb74c7",
|
||||
"assets/packages/intl_phone_field/assets/flags/cf.png": "263583ffdf7a888ce4fba8487d1da0b2",
|
||||
"assets/packages/intl_phone_field/assets/flags/lc.png": "8c1a03a592aa0a99fcaf2b81508a87eb",
|
||||
"assets/packages/intl_phone_field/assets/flags/py.png": "154d4add03b4878caf00bd3249e14f40",
|
||||
"assets/packages/intl_phone_field/assets/flags/tj.png": "c73b793f2acd262e71b9236e64c77636",
|
||||
"assets/packages/intl_phone_field/assets/flags/nz.png": "65c811e96eb6c9da65538f899c110895",
|
||||
"assets/packages/intl_phone_field/assets/flags/mp.png": "87351c30a529071ee9a4bb67765fea4f",
|
||||
"assets/packages/intl_phone_field/assets/flags/mo.png": "849848a26bbfc87024017418ad7a6233",
|
||||
"assets/packages/intl_phone_field/assets/flags/pa.png": "78e3e4fd56f0064837098fe3f22fb41b",
|
||||
"assets/packages/intl_phone_field/assets/flags/nl.png": "3649c177693bfee9c2fcc63c191a51f1",
|
||||
"assets/packages/intl_phone_field/assets/flags/cm.png": "42d52fa71e8b4dbb182ff431749e8d0d",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb-nir.png": "98773db151c150cabe845183241bfe6b",
|
||||
"assets/packages/intl_phone_field/assets/flags/id.png": "80bb82d11d5bc144a21042e77972bca9",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb.png": "98773db151c150cabe845183241bfe6b",
|
||||
"assets/packages/intl_phone_field/assets/flags/an.png": "4e4b90fbca1275d1839ca5b44fc51071",
|
||||
"assets/packages/intl_phone_field/assets/flags/sm.png": "a8d6801cb7c5360e18f0a2ed146b396d",
|
||||
"assets/packages/intl_phone_field/assets/flags/to.png": "1cdd716b5b5502f85d6161dac6ee6c5b",
|
||||
"assets/packages/intl_phone_field/assets/flags/cx.png": "8efa3231c8a3900a78f2b51d829f8c52",
|
||||
"assets/packages/intl_phone_field/assets/flags/vn.png": "32ff65ccbf31a707a195be2a5141a89b",
|
||||
"assets/packages/intl_phone_field/assets/flags/mc.png": "90c2ad7f144d73d4650cbea9dd621275",
|
||||
"assets/packages/intl_phone_field/assets/flags/tt.png": "a8e1fc5c65dc8bc362a9453fadf9c4b3",
|
||||
"assets/packages/intl_phone_field/assets/flags/ae.png": "792efc5eb6c31d780bd34bf4bad69f3f",
|
||||
"assets/packages/intl_phone_field/assets/flags/am.png": "aaa39141fbc80205bebaa0200b55a13a",
|
||||
"assets/packages/intl_phone_field/assets/flags/gs.png": "419dd57836797a3f1bf6258ea6589f9a",
|
||||
"assets/packages/intl_phone_field/assets/flags/cn.png": "040539c2cdb60ebd9dc8957cdc6a8ad0",
|
||||
"assets/packages/intl_phone_field/assets/flags/cc.png": "31a475216e12fef447382c97b42876ce",
|
||||
"assets/packages/intl_phone_field/assets/flags/mx.png": "84b12a569b209e213daccfcbdd1fc799",
|
||||
"assets/packages/intl_phone_field/assets/flags/nr.png": "1316f3a8a419d8be1975912c712535ea",
|
||||
"assets/packages/intl_phone_field/assets/flags/is.png": "907840430252c431518005b562707831",
|
||||
"assets/packages/intl_phone_field/assets/flags/vg.png": "fc095e11f5b58604d6f4d3c2b43d167f",
|
||||
"assets/packages/intl_phone_field/assets/flags/gw.png": "05606b9a6393971bd87718b809e054f9",
|
||||
"assets/packages/intl_phone_field/assets/flags/ax.png": "ec2062c36f09ed8fb90ac8992d010024",
|
||||
"assets/packages/intl_phone_field/assets/flags/gt.png": "706a0c3b5e0b589c843e2539e813839e",
|
||||
"assets/packages/intl_phone_field/assets/flags/vg.png": "fc095e11f5b58604d6f4d3c2b43d167f",
|
||||
"assets/packages/intl_phone_field/assets/flags/tm.png": "0980fb40ec450f70896f2c588510f933",
|
||||
"assets/packages/intl_phone_field/assets/flags/ir.png": "37f67c3141e9843196cb94815be7bd37",
|
||||
"assets/packages/intl_phone_field/assets/flags/sa.png": "7c95c1a877148e2aa21a213d720ff4fd",
|
||||
"assets/packages/intl_phone_field/assets/flags/ee.png": "e242645cae28bd5291116ea211f9a566",
|
||||
"assets/packages/intl_phone_field/assets/flags/lt.png": "7df2cd6566725685f7feb2051f916a3e",
|
||||
"assets/packages/intl_phone_field/assets/flags/ec.png": "c1ae60d080be91f3be31e92e0a2d9555",
|
||||
"assets/packages/intl_phone_field/assets/flags/kh.png": "d48d51e8769a26930da6edfc15de97fe",
|
||||
"assets/packages/intl_phone_field/assets/flags/bf.png": "63f1c67fca7ce8b52b3418a90af6ad37",
|
||||
"assets/packages/intl_phone_field/assets/flags/im.png": "7c9ccb825f0fca557d795c4330cf4f50",
|
||||
"assets/packages/intl_phone_field/assets/flags/yt.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/fj.png": "1c6a86752578eb132390febf12789cd6",
|
||||
"assets/packages/intl_phone_field/assets/flags/pl.png": "f20e9ef473a9ed24176f5ad74dd0d50a",
|
||||
"assets/packages/intl_phone_field/assets/flags/ro.png": "85af99741fe20664d9a7112cfd8d9722",
|
||||
"assets/packages/intl_phone_field/assets/flags/ki.png": "14db0fc29398730064503907bd696176",
|
||||
"assets/packages/intl_phone_field/assets/flags/zw.png": "078a3267ea8eabf88b2d43fe4aed5ce5",
|
||||
"assets/packages/intl_phone_field/assets/flags/bs.png": "2b9540c4fa514f71911a48de0bd77e71",
|
||||
"assets/packages/intl_phone_field/assets/flags/eu.png": "c58ece3931acb87faadc5b940d4f7755",
|
||||
"assets/packages/intl_phone_field/assets/flags/kz.png": "cb3b0095281c9d7e7fb5ce1716ef8ee5",
|
||||
"assets/packages/intl_phone_field/assets/flags/pg.png": "0f7e03465a93e0b4e3e1c9d3dd5814a4",
|
||||
"assets/packages/intl_phone_field/assets/flags/ad.png": "384e9845debe9aca8f8586d9bedcb7e6",
|
||||
"assets/packages/intl_phone_field/assets/flags/mv.png": "d9245f74e34d5c054413ace4b86b4f16",
|
||||
"assets/packages/intl_phone_field/assets/flags/at.png": "570c070177a5ea0fe03e20107ebf5283",
|
||||
"assets/packages/intl_phone_field/assets/flags/kn.png": "f318e2fd87e5fd2cabefe9ff252bba46",
|
||||
"assets/packages/intl_phone_field/assets/flags/fr.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/wf.png": "6f1644b8f907d197c0ff7ed2f366ad64",
|
||||
"assets/packages/intl_phone_field/assets/flags/ps.png": "52a25a48658ca9274830ffa124a8c1db",
|
||||
"assets/packages/intl_phone_field/assets/flags/fm.png": "d571b8bc4b80980a81a5edbde788b6d2",
|
||||
"assets/packages/intl_phone_field/assets/flags/np.png": "6e099fb1e063930bdd00e8df5cef73d4",
|
||||
"assets/packages/intl_phone_field/assets/flags/gi.png": "446aa44aaa063d240adab88243b460d3",
|
||||
"assets/packages/intl_phone_field/assets/flags/gl.png": "b79e24ee1889b7446ba3d65564b86810",
|
||||
"assets/packages/intl_phone_field/assets/flags/be.png": "7e5e1831cdd91935b38415479a7110eb",
|
||||
"assets/packages/intl_phone_field/assets/flags/cl.png": "6735e0e2d88c119e9ed1533be5249ef1",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb-sct.png": "75106a5e49e3e16da76cb33bdac102ab",
|
||||
"assets/packages/intl_phone_field/assets/flags/gp.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/gg.png": "eed435d25bd755aa7f9cd7004b9ed49d",
|
||||
"assets/packages/intl_phone_field/assets/flags/bb.png": "a8473747387e4e7a8450c499529f1c93",
|
||||
"assets/packages/intl_phone_field/assets/flags/gr.png": "ec11281d7decbf07b81a23a72a609b59",
|
||||
"assets/packages/intl_phone_field/assets/flags/ug.png": "9a0f358b1eb19863e21ae2063fab51c0",
|
||||
"assets/packages/intl_phone_field/assets/flags/bv.png": "33bc70259c4908b7b9adeef9436f7a9f",
|
||||
"assets/packages/intl_phone_field/assets/flags/dj.png": "078bd37d41f746c3cb2d84c1e9611c55",
|
||||
"assets/packages/intl_phone_field/assets/flags/xk.png": "079259fbcb1f3c78dafa944464295c16",
|
||||
"assets/packages/intl_phone_field/assets/flags/iq.png": "bc3e6f68c5188dbf99b473e2bea066f2",
|
||||
"assets/packages/intl_phone_field/assets/flags/pm.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/ne.png": "a20724c177e86d6a27143aa9c9664a6f",
|
||||
"assets/packages/intl_phone_field/assets/flags/nc.png": "cb36e0c945b79d56def11b23c6a9c7e9",
|
||||
"assets/packages/intl_phone_field/assets/flags/no.png": "33bc70259c4908b7b9adeef9436f7a9f",
|
||||
"assets/packages/intl_phone_field/assets/flags/ml.png": "0c50dfd539e87bb4313da0d4556e2d13",
|
||||
"assets/packages/intl_phone_field/assets/flags/tc.png": "d728d6763c17c520ad6bcf3c24282a29",
|
||||
"assets/packages/intl_phone_field/assets/flags/tn.png": "6612e9fec4bef022cbd45cbb7c02b2b6",
|
||||
"assets/packages/intl_phone_field/assets/flags/si.png": "24237e53b34752554915e71e346bb405",
|
||||
"assets/packages/intl_phone_field/assets/flags/mg.png": "0ef6271ad284ebc0069ff0aeb5a3ad1e",
|
||||
"assets/packages/intl_phone_field/assets/flags/nu.png": "f4169998548e312584c67873e0d9352d",
|
||||
"assets/packages/intl_phone_field/assets/flags/md.png": "8911d3d821b95b00abbba8771e997eb3",
|
||||
"assets/packages/intl_phone_field/assets/flags/mt.png": "f3119401ae0c3a9d6e2dc23803928c06",
|
||||
"assets/packages/intl_phone_field/assets/flags/ch.png": "a251702f7760b0aac141428ed60b7b66",
|
||||
"assets/packages/intl_phone_field/assets/flags/ls.png": "2bca756f9313957347404557acb532b0",
|
||||
"assets/packages/intl_phone_field/assets/flags/eh.png": "515a9cf2620c802e305b5412ac81aed2",
|
||||
"assets/packages/intl_phone_field/assets/flags/vc.png": "da3ca14a978717467abbcdece05d3544",
|
||||
"assets/packages/intl_phone_field/assets/flags/kp.png": "e1c8bb52f31fca22d3368d8f492d8f27",
|
||||
"assets/packages/intl_phone_field/assets/flags/uz.png": "3adad3bac322220cac8abc1c7cbaacac",
|
||||
"assets/packages/intl_phone_field/assets/flags/gm.png": "7148d3715527544c2e7d8d6f4a445bb6",
|
||||
"assets/packages/intl_phone_field/assets/flags/td.png": "009303b6188ca0e30bd50074b16f0b16",
|
||||
"assets/packages/intl_phone_field/assets/flags/pt.png": "eba93d33545c78cc67915d9be8323661",
|
||||
"assets/packages/intl_phone_field/assets/flags/cw.png": "6c598eb0d331d6b238da57055ec00d33",
|
||||
"assets/packages/intl_phone_field/assets/flags/bt.png": "3cfe1440e952bc7266d71f7f1454fa23",
|
||||
"assets/packages/intl_phone_field/assets/flags/mw.png": "ffc1f18eeedc1dfbb1080aa985ce7d05",
|
||||
"assets/packages/intl_phone_field/assets/flags/mn.png": "16086e8d89c9067d29fd0f2ea7021a45",
|
||||
"assets/packages/intl_phone_field/assets/flags/pk.png": "7a6a621f7062589677b3296ca16c6718",
|
||||
"assets/packages/intl_phone_field/assets/flags/tw.png": "b1101fd5f871a9ffe7c9ad191a7d3304",
|
||||
"assets/packages/intl_phone_field/assets/flags/sn.png": "68eaa89bbc83b3f356e1ba2096b09b3c",
|
||||
"assets/packages/intl_phone_field/assets/flags/la.png": "e8cd9c3ee6e134adcbe3e986e1974e4a",
|
||||
"assets/packages/intl_phone_field/assets/flags/je.png": "288f8dca26098e83ff0455b08cceca1b",
|
||||
"assets/packages/intl_phone_field/assets/flags/bi.png": "adda8121501f0543f1075244a1acc275",
|
||||
"assets/packages/intl_phone_field/assets/flags/bl.png": "dae94f5465d3390fdc5929e4f74d3f5f",
|
||||
"assets/packages/intl_phone_field/assets/flags/sz.png": "d1829842e45c2b2b29222c1b7e201591",
|
||||
"assets/packages/intl_phone_field/assets/flags/hu.png": "281582a753e643b46bdd894047db08bb",
|
||||
"assets/packages/intl_phone_field/assets/flags/jm.png": "074400103847c56c37425a73f9d23665",
|
||||
"assets/packages/intl_phone_field/assets/flags/ve.png": "893391d65cbd10ca787a73578c77d3a7",
|
||||
"assets/packages/intl_phone_field/assets/flags/al.png": "722cf9e5c7a1d9c9e4608fb44dbb427d",
|
||||
"assets/packages/intl_phone_field/assets/flags/um.png": "8fe7c4fed0a065fdfb9bd3125c6ecaa1",
|
||||
"assets/packages/intl_phone_field/assets/flags/ai.png": "ce5e91ed1725f0499b9231b69a7fd448",
|
||||
"assets/packages/intl_phone_field/assets/flags/sl.png": "61b9d992c8a6a83abc4d432069617811",
|
||||
"assets/packages/intl_phone_field/assets/flags/bo.png": "3ccf6fa7f9cbc27949b8418925e4e89c",
|
||||
"assets/packages/intl_phone_field/assets/flags/gd.png": "7a4864ccfa2a0564041c2d1f8a13a8c9",
|
||||
"assets/packages/intl_phone_field/assets/flags/cg.png": "eca97338cc1cb5b5e91bec72af57b3d4",
|
||||
"assets/packages/intl_phone_field/assets/flags/cd.png": "5b5f832ed6cd9f9240cb31229d8763dc",
|
||||
"assets/packages/intl_phone_field/assets/flags/zm.png": "81cec35b715f227328cad8f314acd797",
|
||||
"assets/packages/intl_phone_field/assets/flags/gf.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/ke.png": "cf5aae3699d3cacb39db9803edae172b",
|
||||
"assets/packages/intl_phone_field/assets/flags/er.png": "8ca78e10878a2e97c1371b38c5d258a7",
|
||||
"assets/packages/intl_phone_field/assets/flags/gn.png": "b2287c03c88a72d968aa796a076ba056",
|
||||
"assets/packages/intl_phone_field/assets/flags/bj.png": "6fdc6449f73d23ad3f07060f92db4423",
|
||||
"assets/packages/intl_phone_field/assets/flags/il.png": "1e06ad7783f24332405d36561024cc4c",
|
||||
"assets/packages/intl_phone_field/assets/flags/tg.png": "7f91f02b26b74899ff882868bd611714",
|
||||
"assets/packages/intl_phone_field/assets/flags/hk.png": "4b5ec424348c98ec71a46ad3dce3931d",
|
||||
"assets/packages/intl_phone_field/assets/flags/bq.png": "3649c177693bfee9c2fcc63c191a51f1",
|
||||
"assets/packages/intl_phone_field/assets/flags/mr.png": "f2a62602d43a1ee14625af165b96ce2f",
|
||||
"assets/packages/intl_phone_field/assets/flags/sr.png": "9f912879f2829a625436ccd15e643e39",
|
||||
"assets/packages/intl_phone_field/assets/flags/aq.png": "0c586e7b91aa192758fdd0f03adb84d8",
|
||||
"assets/packages/intl_phone_field/assets/flags/az.png": "6ffa766f6883d2d3d350cdc22a062ca3",
|
||||
"assets/packages/intl_phone_field/assets/flags/io.png": "83d45bbbff087d47b2b39f1c20598f52",
|
||||
"assets/packages/intl_phone_field/assets/flags/li.png": "ecdf7b3fe932378b110851674335d9ab",
|
||||
"assets/packages/intl_phone_field/assets/flags/gb-wls.png": "d7d7c77c72cd425d993bdc50720f4d04",
|
||||
"assets/packages/intl_phone_field/assets/flags/hm.png": "72be14316f0af3903cdca7a726c0c589",
|
||||
"assets/packages/intl_phone_field/assets/flags/it.png": "5c8e910e6a33ec63dfcda6e8960dd19c",
|
||||
"assets/packages/intl_phone_field/assets/flags/gh.png": "b35464dca793fa33e51bf890b5f3d92b",
|
||||
"assets/packages/intl_phone_field/assets/flags/pe.png": "4d9249aab70a26fadabb14380b3b55d2",
|
||||
"assets/packages/intl_phone_field/assets/flags/cv.png": "9b1f31f9fc0795d728328dedd33eb1c0",
|
||||
"assets/packages/intl_phone_field/assets/flags/ie.png": "1d91912afc591dd120b47b56ea78cdbf",
|
||||
"assets/packages/intl_phone_field/assets/flags/mk.png": "835f2263974de523fa779d29c90595bf",
|
||||
"assets/packages/intl_phone_field/assets/flags/om.png": "cebd9ab4b9ab071b2142e21ae2129efc",
|
||||
"assets/packages/intl_phone_field/assets/flags/my.png": "f7f962e8a074387fd568c9d4024e0959",
|
||||
"assets/packages/intl_phone_field/assets/flags/mf.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/fk.png": "da8b0fe48829aae2c8feb4839895de63",
|
||||
"assets/packages/intl_phone_field/assets/flags/qa.png": "eb9b3388e554cf85aea1e739247548df",
|
||||
"assets/packages/intl_phone_field/assets/flags/in.png": "1dec13ba525529cffd4c7f8a35d51121",
|
||||
"assets/packages/intl_phone_field/assets/flags/cr.png": "bfd8b41e63fc3cc829c72c4b2e170532",
|
||||
"assets/packages/intl_phone_field/assets/flags/sx.png": "9c19254973d8acf81581ad95b408c7e6",
|
||||
"assets/packages/intl_phone_field/assets/flags/ng.png": "aedbe364bd1543832e88e64b5817e877",
|
||||
"assets/packages/intl_phone_field/assets/flags/kr.png": "a3b7da3b76b20a70e9cd63cc2315b51b",
|
||||
"assets/packages/intl_phone_field/assets/flags/jo.png": "c01cb41f74f9db0cf07ba20f0af83011",
|
||||
"assets/packages/intl_phone_field/assets/flags/nf.png": "1c2069b299ce3660a2a95ec574dfde25",
|
||||
"assets/packages/intl_phone_field/assets/flags/gy.png": "159a260bf0217128ea7475ba5b272b6a",
|
||||
"assets/packages/intl_phone_field/assets/flags/bw.png": "fac8b90d7404728c08686dc39bab4fb3",
|
||||
"assets/packages/intl_phone_field/assets/flags/aw.png": "a93ddf8e32d246dc47f6631f38e0ed92",
|
||||
"assets/packages/intl_phone_field/assets/flags/tr.png": "27feab1a5ca390610d07e0c6bd4720d5",
|
||||
"assets/packages/intl_phone_field/assets/flags/na.png": "cdc00e9267a873609b0abea944939ff7",
|
||||
"assets/packages/intl_phone_field/assets/flags/sd.png": "65ce270762dfc87475ea99bd18f79025",
|
||||
"assets/AssetManifest.bin.json": "611449d46e56c96b3baef404bfc56246",
|
||||
"assets/packages/intl_phone_field/assets/flags/kw.png": "3ca448e219d0df506fb2efd5b91be092",
|
||||
"assets/packages/intl_phone_field/assets/flags/sj.png": "33bc70259c4908b7b9adeef9436f7a9f",
|
||||
"assets/packages/intl_phone_field/assets/flags/ar.png": "3bd245f8c28f70c9ef9626dae27adc65",
|
||||
"assets/packages/intl_phone_field/assets/flags/rw.png": "d1aae0647a5b1ab977ae43ab894ce2c3",
|
||||
"assets/packages/intl_phone_field/assets/flags/bg.png": "1d24bc616e3389684ed2c9f18bcb0209",
|
||||
"assets/packages/intl_phone_field/assets/flags/gq.png": "4286e56f388a37f64b21eb56550c06d9",
|
||||
"assets/packages/intl_phone_field/assets/flags/do.png": "ed35983a9263bb5713be37d9a52caddc",
|
||||
"assets/packages/intl_phone_field/assets/flags/cz.png": "73ecd64c6144786c4d03729b1dd9b1f3",
|
||||
"assets/packages/intl_phone_field/assets/flags/mu.png": "c5228d1e94501d846b5bf203f038ae49",
|
||||
"assets/packages/intl_phone_field/assets/flags/va.png": "c010bf145f695d5c8fb551bafc081f77",
|
||||
"assets/packages/intl_phone_field/assets/flags/za.png": "b28280c6c3eb4624c18b5455d4a1b1ff",
|
||||
"assets/packages/intl_phone_field/assets/flags/sy.png": "24186a0f4ce804a16c91592db5a16a3a",
|
||||
"assets/packages/intl_phone_field/assets/flags/tv.png": "c57025ed7ae482210f29b9da86b0d211",
|
||||
"assets/packages/intl_phone_field/assets/flags/tz.png": "56ec99c7e0f68b88a2210620d873683a",
|
||||
"assets/packages/intl_phone_field/assets/flags/fi.png": "3ccd69a842e55183415b7ea2c04b15c8",
|
||||
"assets/packages/intl_phone_field/assets/flags/dz.png": "132ceca353a95c8214676b2e94ecd40f",
|
||||
"assets/packages/intl_phone_field/assets/flags/as.png": "d9c1da515c6f945c2e2554592a9dfaae",
|
||||
"assets/packages/intl_phone_field/assets/flags/ck.png": "39f343868a8dc8ca95d27b27a5caf480",
|
||||
"assets/packages/intl_phone_field/assets/flags/st.png": "fef62c31713ff1063da2564df3f43eea",
|
||||
"assets/packages/intl_phone_field/assets/flags/lu.png": "6274fd1cae3c7a425d25e4ccb0941bb8",
|
||||
"assets/packages/intl_phone_field/assets/flags/ca.png": "76f2fac1d3b2cc52ba6695c2e2941632",
|
||||
"assets/packages/intl_phone_field/assets/flags/bd.png": "86a0e4bd8787dc8542137a407e0f987f",
|
||||
"assets/packages/intl_phone_field/assets/flags/ms.png": "9c955a926cf7d57fccb450a97192afa7",
|
||||
"assets/packages/intl_phone_field/assets/flags/ba.png": "d415bad33b35de3f095177e8e86cbc82",
|
||||
"assets/packages/intl_phone_field/assets/flags/ci.png": "7f5ca3779d5ff6ce0c803a6efa0d2da7",
|
||||
"assets/packages/intl_phone_field/assets/flags/re.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/ht.png": "630f7f8567d87409a32955107ad11a86",
|
||||
"assets/packages/intl_phone_field/assets/flags/lv.png": "53105fea0cc9cc554e0ceaabc53a2d5d",
|
||||
"assets/packages/intl_phone_field/assets/flags/ua.png": "b4b10d893611470661b079cb30473871",
|
||||
"assets/packages/intl_phone_field/assets/flags/ky.png": "38e39eba673e82c48a1f25bd103a7e97",
|
||||
"assets/packages/intl_phone_field/assets/flags/bn.png": "ed650de06fff61ff27ec92a872197948",
|
||||
"assets/packages/intl_phone_field/assets/flags/mq.png": "134bee9f9d794dc5c0922d1b9bdbb710",
|
||||
"assets/packages/intl_phone_field/assets/flags/ni.png": "e398dc23e79d9ccd702546cc25f126bf",
|
||||
"assets/packages/intl_phone_field/assets/flags/rs.png": "9dff535d2d08c504be63062f39eff0b7",
|
||||
"assets/packages/intl_phone_field/assets/flags/pn.png": "0b0641b356af4c3e3489192ff4b0be77",
|
||||
"assets/packages/intl_phone_field/assets/flags/cy.png": "7b36f4af86257a3f15f5a5a16f4a2fcd",
|
||||
"assets/packages/intl_phone_field/assets/flags/es.png": "654965f9722f6706586476fb2f5d30dd",
|
||||
"assets/packages/intl_phone_field/assets/flags/et.png": "57edff61c7fddf2761a19948acef1498",
|
||||
"assets/packages/intl_phone_field/assets/flags/au.png": "72be14316f0af3903cdca7a726c0c589",
|
||||
"assets/packages/intl_phone_field/assets/flags/uy.png": "da4247b21fcbd9e30dc2b3f7c5dccb64",
|
||||
"assets/packages/intl_phone_field/assets/flags/th.png": "11ce0c9f8c738fd217ea52b9bc29014b",
|
||||
"assets/packages/intl_phone_field/assets/flags/sk.png": "2a1ee716d4b41c017ff1dbf3fd3ffc64",
|
||||
"assets/NOTICES": "412b336cf9e33e70058d612857effae1",
|
||||
"assets/AssetManifest.bin": "bf3be26e7055ad9a32f66b3a56138224",
|
||||
"assets/FontManifest.json": "087fb858dc3cbfbf6baf6a30004922f1",
|
||||
"assets/AssetManifest.bin.json": "611449d46e56c96b3baef404bfc56246",
|
||||
"assets/assets/google_fonts/Roboto-Regular.ttf": "8a36205bd9b83e03af0591a004bc97f4",
|
||||
"assets/assets/images/google_logo.png": "0f118259ce403274f407f5e982e681c3",
|
||||
"assets/assets/images/logo_dark.png": "a233ed1d4d0f7414bf97a9a10f11fb0a",
|
||||
"assets/assets/images/payment_types/visa.png": "3ddc4a4d25c946e8ad7e6998f30fd4e3",
|
||||
"assets/assets/images/payment_types/amex.png": "c49a4247984b3732a4af50a3390aa978",
|
||||
"assets/assets/images/payment_types/ach.png": "7433f0aff779dc98a649b7a2daf777cf",
|
||||
"assets/assets/images/payment_types/laser.png": "b4e6e93dd35517ac429301119ff05868",
|
||||
"assets/assets/images/payment_types/discover.png": "6c0a386a00307f87db7bea366cca35f5",
|
||||
"assets/assets/images/payment_types/unionpay.png": "7002f52004e0ab8cc0b7450b0208ccb2",
|
||||
"assets/assets/images/payment_types/carteblanche.png": "d936e11fa3884b8c9f1bd5c914be8629",
|
||||
"assets/assets/images/payment_types/switch.png": "4fa11c45327f5fdc20205821b2cfd9cc",
|
||||
"assets/assets/images/payment_types/dinerscard.png": "06d85186ba858c18ab7c9caa42c92024",
|
||||
"assets/assets/images/payment_types/jcb.png": "07e0942d16c5592118b72e74f2f7198c",
|
||||
"assets/assets/images/payment_types/other.png": "d936e11fa3884b8c9f1bd5c914be8629",
|
||||
"assets/assets/images/payment_types/maestro.png": "e533b92bfb50339fdbfa79e3dfe81f08",
|
||||
"assets/assets/images/payment_types/solo.png": "2030c3ccaccf5d5e87916a62f5b084d6",
|
||||
"assets/assets/images/payment_types/paypal.png": "8e06c094c1871376dfea1da8088c29d1",
|
||||
"assets/assets/images/payment_types/mastercard.png": "6f6cdc29ee2e22e06b1ac029cb52ef71",
|
||||
"assets/assets/images/icon.png": "090f69e23311a4b6d851b3880ae52541",
|
||||
"assets/assets/images/logo_light.png": "e5f46d5a78e226e7a9553d4ca6f69219",
|
||||
"assets/fonts/MaterialIcons-Regular.otf": "a57618538ab8b4c4081d4491870ac333",
|
||||
"assets/AssetManifest.json": "759f9ef9973f7e26c2a51450b55bb9fa",
|
||||
"/": "09dd63a64a586d8b9ee7b21d2761a403",
|
||||
"assets/shaders/ink_sparkle.frag": "ecc85a2e95f5e9f53123dcaf8cb9b6ce",
|
||||
"/": "b4ae35c60e383dbaea943020ee57bca5",
|
||||
"favicon.ico": "51636d3a390451561744c42188ccd628",
|
||||
"manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40"};
|
||||
"main.dart.js": "01b109a52b66680ee41d64c1d79cc807"};
|
||||
// The application shell files that are downloaded before a service worker can
|
||||
// start.
|
||||
const CORE = ["main.dart.js",
|
||||
|
168093
public/main.dart.js
vendored
168093
public/main.dart.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
165575
public/main.foss.dart.js
vendored
165575
public/main.foss.dart.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
362
public/main.profile.dart.js
vendored
362
public/main.profile.dart.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
<div>
|
||||
<div class="flex flex-row space-x-2 float-right mb-2" x-data>
|
||||
<button wire:loading.attr="disabled" wire:click="downloadPdf" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<button wire:loading.attr="disabled" wire:click="downloadPdf" class="button bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<span class="mr-0">{{ ctrans('texts.download_pdf') }}</span>
|
||||
<div wire:loading wire:target="downloadPdf">
|
||||
<svg class="animate-spin h-5 w-5 text-blue" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
@ -10,7 +10,7 @@
|
||||
</div>
|
||||
</button>
|
||||
@if($entity_type == 'invoice' && $settings->enable_e_invoice)
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="button bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<span>{{ ctrans('texts.download_e_invoice') }}</span>
|
||||
<div wire:loading wire:target="downloadEDocument">
|
||||
<svg class="animate-spin h-5 w-5 text-blue" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
@ -21,7 +21,7 @@
|
||||
</button>
|
||||
@endif
|
||||
@if($entity_type == 'credit' && $settings->enable_e_invoice)
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="button bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<span>{{ ctrans('texts.download_e_credit') }}</span>
|
||||
<div wire:loading wire:target="downloadEDocument">
|
||||
<svg class="animate-spin h-5 w-5 text-blue" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
@ -32,7 +32,7 @@
|
||||
</button>
|
||||
@endif
|
||||
@if($entity_type == 'quote' && $settings->enable_e_invoice)
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="button bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<span>{{ ctrans('texts.download_e_quote') }}</span>
|
||||
<div wire:loading wire:target="downloadEDocument">
|
||||
<svg class="animate-spin h-5 w-5 text-blue" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
@ -44,7 +44,7 @@
|
||||
@endif
|
||||
{{-- Not implemented yet--}}
|
||||
{{-- @if($entity_type == 'purchase_order' && $settings->enable_e_invoice)
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEInvoice" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEInvoice" class="button bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<span>{{ ctrans('texts.download_e_invoice') }}</span>
|
||||
<div wire:loading wire:target="downloadEInvoice">
|
||||
<svg class="animate-spin h-5 w-5 text-blue" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
|
@ -9,16 +9,6 @@
|
||||
<h3 class="text-lg leading-6 font-medium text-gray-900">
|
||||
{{ ctrans('texts.entity_number_placeholder', ['entity' => ctrans('texts.credit'), 'entity_number' => $credit->number]) }}
|
||||
</h3>
|
||||
|
||||
@if($key)
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("client/credit/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="mr-2">{{url("client/credit/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -30,11 +20,16 @@
|
||||
@endsection
|
||||
|
||||
@section('footer')
|
||||
<script src="{{ asset('vendor/clipboard.min.js') }}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var clipboard = new ClipboardJS('.btn');
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
@if($key)
|
||||
window.history.pushState({}, "", "{{ url("client/credit/{$key}") }}");
|
||||
@endif
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@endsection
|
||||
|
@ -56,17 +56,6 @@
|
||||
{{ ctrans('texts.invoice_number_placeholder', ['invoice' => $invoice->number])}}
|
||||
- {{ ctrans('texts.unpaid') }}
|
||||
</h3>
|
||||
|
||||
@if($key)
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("client/invoice/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="mr-2">{{url("client/invoice/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
</div>
|
||||
<div class="mt-5 sm:mt-0 sm:ml-6 flex justify-end">
|
||||
<div class="inline-flex rounded-md shadow-sm">
|
||||
@ -93,15 +82,6 @@
|
||||
{{ ctrans('texts.invoice_number_placeholder', ['invoice' => $invoice->number])}}
|
||||
- {{ \App\Models\Invoice::stringStatus($invoice->status_id) }}
|
||||
</h3>
|
||||
|
||||
@if($key)
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("client/invoice/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="pr-10">{{url("client/invoice/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -121,15 +101,16 @@
|
||||
|
||||
@push('head')
|
||||
@vite('resources/js/clients/invoices/payment.js')
|
||||
<script src="{{ asset('vendor/clipboard.min.js') }}" defer></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
var clipboard = new ClipboardJS('.btn');
|
||||
@if($key)
|
||||
window.history.pushState({}, "", "{{ url("client/invoice/{$key}") }}");
|
||||
@endif
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@endpush
|
||||
|
@ -10,11 +10,17 @@
|
||||
</div>
|
||||
|
||||
<div class="col-span-2 h-screen flex">
|
||||
<div class="m-auto md:w-1/2 lg:w-1/4 flex flex-col items-center">
|
||||
<div class="m-auto md:w-1/2 lg:w-1/3 flex flex-col items-center">
|
||||
<span class="flex items-center text-2xl">
|
||||
@yield('code') — @yield('message')
|
||||
</span>
|
||||
|
||||
@if (\App\Utils\Ninja::isSelfHost())
|
||||
<span class="flex items-center text-1xl">
|
||||
Check storage/logs for more details
|
||||
</span>
|
||||
@endif
|
||||
|
||||
<a class="button-link text-sm mt-2" href="{{ url(request()->getSchemeAndHttpHost() . '/client') }}">
|
||||
{{ ctrans('texts.back_to', ['url' => parse_url(request()->getHttpHost())['host'] ?? request()->getHttpHost()]) }}
|
||||
</a>
|
||||
|
@ -10,18 +10,9 @@
|
||||
<div class="px-4 py-5 sm:p-6">
|
||||
<div class="sm:flex sm:items-start sm:justify-between">
|
||||
<div>
|
||||
|
||||
<h3 class="text-lg leading-6 font-medium text-gray-900">
|
||||
{{ ctrans('texts.approve') }}
|
||||
</h3>
|
||||
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("vendor/purchase_order/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="mr-2">{{url("vendor/purchase_order/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-5 sm:mt-0 sm:ml-6 sm:flex-shrink-0 sm:flex sm:items-center">
|
||||
|
@ -30,15 +30,6 @@
|
||||
{{ ctrans('texts.purchase_order_number_placeholder', ['purchase_order' => $purchase_order->number])}}
|
||||
- {{ \App\Models\PurchaseOrder::stringStatus($purchase_order->status_id) }}
|
||||
</h3>
|
||||
|
||||
@if($key)
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("vendor/purchase_order/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="pr-10">{{url("vendor/purchase_order/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -57,13 +48,14 @@
|
||||
|
||||
@push('head')
|
||||
@vite('resources/js/clients/purchase_orders/accept.js')
|
||||
<script src="{{ asset('vendor/clipboard.min.js') }}" defer></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
var clipboard = new ClipboardJS('.btn');
|
||||
@if($key)
|
||||
window.history.pushState({}, "", "{{ url("vendor/purchase_order/{$key}") }}");
|
||||
@endif
|
||||
|
||||
});
|
||||
|
||||
|
@ -11,17 +11,9 @@
|
||||
<div class="px-4 py-5 sm:p-6">
|
||||
<div class="sm:flex sm:items-start sm:justify-between">
|
||||
<div>
|
||||
|
||||
<h3 class="text-lg leading-6 font-medium text-gray-900">
|
||||
{{ ctrans('texts.approve') }}
|
||||
</h3>
|
||||
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("client/quote/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="mr-2">{{url("client/quote/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-5 sm:mt-0 sm:ml-6 sm:flex-shrink-0 sm:flex sm:items-center">
|
||||
|
@ -29,16 +29,6 @@
|
||||
<h3 class="text-lg leading-6 font-medium text-gray-900">
|
||||
{{ ctrans('texts.approved') }}
|
||||
</h3>
|
||||
|
||||
@if($key)
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("client/quote/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="mr-2">{{url("client/quote/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
@if($quote->invoice()->exists())
|
||||
@ -61,15 +51,6 @@
|
||||
<h3 class="text-lg leading-6 font-medium text-gray-900">
|
||||
{{ ctrans('texts.approved') }}
|
||||
</h3>
|
||||
|
||||
@if($key)
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("client/quote/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="mr-2">{{url("client/quote/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -84,15 +65,6 @@
|
||||
<h3 class="text-lg leading-6 font-medium text-gray-900">
|
||||
{{ ctrans('texts.expired') }}
|
||||
</h3>
|
||||
|
||||
@if($key)
|
||||
<div class="btn hidden md:block" data-clipboard-text="{{url("client/quote/{$key}")}}" aria-label="Copied!">
|
||||
<div class="flex text-sm leading-6 font-medium text-gray-500">
|
||||
<p class="mr-2">{{url("client/quote/{$key}")}}</p>
|
||||
<p><img class="h-5 w-5" src="{{ asset('assets/clippy.svg') }}" alt="Copy to clipboard"></p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -112,13 +84,14 @@
|
||||
|
||||
@push('head')
|
||||
@vite('resources/js/clients/quotes/approve.js')
|
||||
<script src="{{ asset('vendor/clipboard.min.js') }}" defer></script>
|
||||
|
||||
<script type="text/javascript" defer>
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
var clipboard = new ClipboardJS('.btn');
|
||||
@if($key)
|
||||
window.history.pushState({}, "", "{{ url("client/quote/{$key}") }}");
|
||||
@endif
|
||||
|
||||
});
|
||||
|
||||
|
@ -25,10 +25,12 @@
|
||||
{{ ctrans('texts.https') }}
|
||||
</dt>
|
||||
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
|
||||
<input type="checkbox" class="form-checkbox mr-1" name="https"
|
||||
{{ old('https') ? 'checked': '' }} checked>
|
||||
<span>{{ ctrans('texts.require') }}</span>
|
||||
<span class="text-gray-600 text-xs ml-2">({{ ctrans('texts.recommended_in_production') }})</span>
|
||||
<label for="https">
|
||||
<input type="checkbox" class="form-checkbox mr-1" name="https"
|
||||
id="https" {{ old('https') ? 'checked': '' }} checked>
|
||||
<span>{{ ctrans('texts.require') }}</span>
|
||||
<span class="text-gray-600 text-xs ml-2">({{ ctrans('texts.recommended_in_production') }})</span>
|
||||
</label>
|
||||
</dd>
|
||||
</div>
|
||||
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6 sm:flex sm:items-center">
|
||||
@ -36,9 +38,11 @@
|
||||
{{ ctrans('texts.reports') }}
|
||||
</dt>
|
||||
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
|
||||
<input type="checkbox" class="form-checkbox mr-1"
|
||||
name="send_logs" {{ old('send_logs' ? 'checked': '') }}>
|
||||
<span>{{ ctrans('texts.send_fail_logs_to_our_server') }}</span>
|
||||
<label for="send_logs">
|
||||
<input type="checkbox" class="form-checkbox mr-1"
|
||||
name="send_logs" id="send_logs" {{ old('send_logs' ? 'checked': '') }}>
|
||||
<span>{{ ctrans('texts.send_fail_logs_to_our_server') }}</span>
|
||||
</label>
|
||||
<a class="button-link mt-1 block" target="_blank" href="https://www.invoiceninja.com/privacy-policy/">Read more
|
||||
about how we use this.</a>
|
||||
</dd>
|
||||
|
@ -42,13 +42,7 @@
|
||||
@endif
|
||||
|
||||
<!-- Title -->
|
||||
@auth('contact')
|
||||
<title>@yield('meta_title', '') — {{ auth()->guard('contact')->user()->user->account->isPaid() ? auth()->guard('contact')->user()->company->present()->name() : 'Invoice Ninja' }}</title>
|
||||
@endauth
|
||||
|
||||
@guest
|
||||
<title>@yield('meta_title', '') — {{ config('app.name') }}</title>
|
||||
@endguest
|
||||
<title>@yield('meta_title', '') — {{ config('app.name') }}</title>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
@ -86,10 +80,6 @@
|
||||
<link href="{{ str_replace("setup", "", Request::url())}}css/app.css" rel="stylesheet">
|
||||
@endif
|
||||
|
||||
@if(auth()->guard('contact')->user() && !auth()->guard('contact')->user()->user->account->isPaid())
|
||||
{{-- <link href="{{ mix('favicon.png') }}" rel="shortcut icon" type="image/png"> --}}
|
||||
@endif
|
||||
|
||||
<link rel="canonical" href="{{ config('ninja.app_url') }}/{{ request()->path() }}"/>
|
||||
|
||||
{{-- Feel free to push anything to header using @push('header') --}}
|
||||
@ -102,8 +92,6 @@
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('vendor/cookieconsent@3/cookieconsent.min.css') }}" />
|
||||
</head>
|
||||
|
||||
@include('portal.ninja2020.components.primary-color')
|
||||
|
||||
<body class="antialiased {{ $custom_body_class ?? '' }}">
|
||||
@if(session()->has('message'))
|
||||
<div class="py-1 text-sm text-center text-white bg-primary disposable-alert">
|
@ -1,4 +1,4 @@
|
||||
@extends('portal.ninja2020.layout.clean_setup')
|
||||
@extends('setup.clean_setup')
|
||||
@section('meta_title', ctrans('texts.setup'))
|
||||
|
||||
@section('body')
|
||||
@ -59,16 +59,20 @@
|
||||
<div class="flex justify-center mt-4 hidden" id="submit-wrapper">
|
||||
<div class="flex flex-col">
|
||||
<div class="mt-4 text-sm">
|
||||
<input type="checkbox" class="form-checkbox mr-2" name="terms_of_service" required>
|
||||
<span>{{ ctrans('texts.i_agree') }}
|
||||
<a class="button-link text-blue-600" target="_blank" href="https://www.invoiceninja.com/self-hosting-terms-service/">{{ ctrans('texts.terms_of_service') }}</a>
|
||||
</span>
|
||||
<label for="terms_of_service">
|
||||
<input type="checkbox" class="form-checkbox mr-2" name="terms_of_service" id="terms_of_service" required>
|
||||
<span>{{ ctrans('texts.i_agree') }}
|
||||
<a class="button-link text-blue-600" target="_blank" href="https://www.invoiceninja.com/self-hosting-terms-service/">{{ ctrans('texts.terms_of_service') }}</a>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="mt-2 text-sm">
|
||||
<input type="checkbox" class="form-checkbox mr-2" name="privacy_policy" required>
|
||||
<span>{{ ctrans('texts.i_agree') }}
|
||||
<a class="button-link text-blue-600" target="_blank" href="https://www.invoiceninja.com/self-hosting-privacy-data-control/">{{ ctrans('texts.privacy_policy') }}</a>
|
||||
</span>
|
||||
<label for="privacy_policy">
|
||||
<input type="checkbox" class="form-checkbox mr-2" name="privacy_policy" id="privacy_policy" required>
|
||||
<span>{{ ctrans('texts.i_agree') }}
|
||||
<a class="button-link text-blue-600" target="_blank" href="https://www.invoiceninja.com/self-hosting-privacy-data-control/">{{ ctrans('texts.privacy_policy') }}</a>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="button button-primary bg-blue-600 w-1/2 my-4">{{ ctrans('texts.submit') }}</button>
|
||||
|
@ -152,6 +152,7 @@ Route::group(['middleware' => ['throttle:api', 'api_db', 'token_auth', 'locale']
|
||||
Route::post('check_subdomain', [SubdomainController::class, 'index'])->name('check_subdomain');
|
||||
Route::get('ping', [PingController::class, 'index'])->name('ping');
|
||||
Route::get('health_check', [PingController::class, 'health'])->name('health_check');
|
||||
Route::get('last_error', [PingController::class, 'lastError'])->name('last_error');
|
||||
|
||||
Route::get('activities', [ActivityController::class, 'index']);
|
||||
Route::post('activities/entity', [ActivityController::class, 'entityActivity']);
|
||||
|
@ -47,6 +47,46 @@ class ExpenseApiTest extends TestCase
|
||||
Model::reguard();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testVendorPayment()
|
||||
{
|
||||
$data = [
|
||||
'amount' => 100,
|
||||
'payment_date' => now()->format('Y-m-d'),
|
||||
'vendor_id' => $this->vendor->hashed_id,
|
||||
'date' => '2021-10-01',
|
||||
];
|
||||
|
||||
$response = $this->withHeaders([
|
||||
'X-API-SECRET' => config('ninja.api_secret'),
|
||||
'X-API-TOKEN' => $this->token,
|
||||
])->postJson('/api/v1/expenses', $data);
|
||||
|
||||
|
||||
$arr = $response->json();
|
||||
$response->assertStatus(200);
|
||||
|
||||
$this->assertEquals($this->vendor->hashed_id, $arr['data']['vendor_id']);
|
||||
$this->assertEquals(now()->format('Y-m-d'), $arr['data']['payment_date']);
|
||||
|
||||
$data = [
|
||||
'amount' => 100,
|
||||
];
|
||||
|
||||
$response = $this->withHeaders([
|
||||
'X-API-SECRET' => config('ninja.api_secret'),
|
||||
'X-API-TOKEN' => $this->token,
|
||||
])->putJson('/api/v1/expenses/'.$arr['data']['id'], $data);
|
||||
|
||||
$arr = $response->json();
|
||||
$response->assertStatus(200);
|
||||
|
||||
$this->assertEquals(now()->format('Y-m-d'), $arr['data']['payment_date']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testExpensePutWithVendorStatus()
|
||||
{
|
||||
|
||||
|
@ -47,7 +47,6 @@ class VendorApiTest extends TestCase
|
||||
Model::reguard();
|
||||
}
|
||||
|
||||
|
||||
public function testVendorContactCreation()
|
||||
{
|
||||
$data = [
|
||||
|
Loading…
x
Reference in New Issue
Block a user