mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Merge pull request #8242 from turbo124/v5-develop
Optional user input after a quote is approved.
This commit is contained in:
commit
4403ac397b
@ -443,6 +443,8 @@ class CompanySettings extends BaseSettings
|
|||||||
|
|
||||||
public $postmark_secret = '';
|
public $postmark_secret = '';
|
||||||
|
|
||||||
|
public $custom_sending_email = '';
|
||||||
|
|
||||||
public $mailgun_secret = '';
|
public $mailgun_secret = '';
|
||||||
|
|
||||||
public $mailgun_domain = '';
|
public $mailgun_domain = '';
|
||||||
@ -459,7 +461,11 @@ class CompanySettings extends BaseSettings
|
|||||||
|
|
||||||
public $show_shipping_address = false;
|
public $show_shipping_address = false;
|
||||||
|
|
||||||
|
public $accept_client_input_quote_approval = false;
|
||||||
|
|
||||||
public static $casts = [
|
public static $casts = [
|
||||||
|
'accept_client_input_quote_approval' => 'bool',
|
||||||
|
'custom_sending_email' => 'string',
|
||||||
'show_paid_stamp' => 'bool',
|
'show_paid_stamp' => 'bool',
|
||||||
'show_shipping_address' => 'bool',
|
'show_shipping_address' => 'bool',
|
||||||
'company_logo_size' => 'string',
|
'company_logo_size' => 'string',
|
||||||
|
@ -110,7 +110,6 @@ class EntityViewController extends Controller
|
|||||||
$key = $entity_type.'_id';
|
$key = $entity_type.'_id';
|
||||||
|
|
||||||
$invitation = $invitation_entity::where('key', $invitation_key)->firstOrFail();
|
$invitation = $invitation_entity::where('key', $invitation_key)->firstOrFail();
|
||||||
// $invitation = $invitation_entity::whereRaw('BINARY `key`= ?', [$invitation_key])->firstOrFail();
|
|
||||||
|
|
||||||
$contact = $invitation->contact;
|
$contact = $invitation->contact;
|
||||||
|
|
||||||
@ -141,7 +140,7 @@ class EntityViewController extends Controller
|
|||||||
$query->where('is_deleted', 0);
|
$query->where('is_deleted', 0);
|
||||||
})
|
})
|
||||||
->with('contact.client')
|
->with('contact.client')
|
||||||
->first();
|
->firstOrFail();
|
||||||
|
|
||||||
$contact = $invitation->contact;
|
$contact = $invitation->contact;
|
||||||
$contact->password = Hash::make($request->password);
|
$contact->password = Hash::make($request->password);
|
||||||
|
@ -81,6 +81,7 @@ class QuoteController extends Controller
|
|||||||
public function bulk(ProcessQuotesInBulkRequest $request)
|
public function bulk(ProcessQuotesInBulkRequest $request)
|
||||||
{
|
{
|
||||||
$transformed_ids = $this->transformKeys($request->quotes);
|
$transformed_ids = $this->transformKeys($request->quotes);
|
||||||
|
nlog(request()->all());
|
||||||
|
|
||||||
if ($request->action == 'download') {
|
if ($request->action == 'download') {
|
||||||
return $this->downloadQuotes((array) $transformed_ids);
|
return $this->downloadQuotes((array) $transformed_ids);
|
||||||
@ -180,6 +181,14 @@ class QuoteController extends Controller
|
|||||||
|
|
||||||
if ($process) {
|
if ($process) {
|
||||||
foreach ($quotes as $quote) {
|
foreach ($quotes as $quote) {
|
||||||
|
|
||||||
|
|
||||||
|
if(request()->has('user_input') && strlen(request()->input('user_input')) > 2) {
|
||||||
|
|
||||||
|
$quote->public_notes .= $quote->public_notes . "\n" . request()->input('user_input');
|
||||||
|
$quote->saveQuietly();
|
||||||
|
}
|
||||||
|
|
||||||
$quote->service()->approve(auth()->user())->save();
|
$quote->service()->approve(auth()->user())->save();
|
||||||
|
|
||||||
if (request()->has('signature') && ! is_null(request()->signature) && ! empty(request()->signature)) {
|
if (request()->has('signature') && ! is_null(request()->signature) && ! empty(request()->signature)) {
|
||||||
|
@ -642,10 +642,57 @@ class CreditController extends BaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @OA\Get(
|
||||||
|
* path="/api/v1/credit/{invitation_key}/download",
|
||||||
|
* operationId="downloadCredit",
|
||||||
|
* tags={"quotes"},
|
||||||
|
* summary="Download a specific credit by invitation key",
|
||||||
|
* description="Downloads a specific quote",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="invitation_key",
|
||||||
|
* in="path",
|
||||||
|
* description="The Credit Invitation Key",
|
||||||
|
* example="D2J234DFA",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns the credit pdf",
|
||||||
|
* @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"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
* @param $invitation_key
|
||||||
|
* @return \Symfony\Component\HttpFoundation\BinaryFileResponse
|
||||||
|
*/
|
||||||
public function downloadPdf($invitation_key)
|
public function downloadPdf($invitation_key)
|
||||||
{
|
{
|
||||||
$invitation = $this->credit_repository->getInvitationByKey($invitation_key);
|
$invitation = $this->credit_repository->getInvitationByKey($invitation_key);
|
||||||
|
|
||||||
|
if (! $invitation) {
|
||||||
|
return response()->json(['message' => 'no record found'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
$credit = $invitation->credit;
|
$credit = $invitation->credit;
|
||||||
|
|
||||||
$file = $credit->service()->getCreditPdf($invitation);
|
$file = $credit->service()->getCreditPdf($invitation);
|
||||||
|
@ -762,4 +762,74 @@ class PurchaseOrderController extends BaseController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @OA\Get(
|
||||||
|
* path="/api/v1/purchase_order/{invitation_key}/download",
|
||||||
|
* operationId="downloadPurchaseOrder",
|
||||||
|
* tags={"purchase_orders"},
|
||||||
|
* summary="Download a specific purchase order by invitation key",
|
||||||
|
* description="Downloads a specific purchase order",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="invitation_key",
|
||||||
|
* in="path",
|
||||||
|
* description="The Purchase Order Invitation Key",
|
||||||
|
* example="D2J234DFA",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns the Purchase Order pdf",
|
||||||
|
* @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"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
* @param $invitation_key
|
||||||
|
* @return \Symfony\Component\HttpFoundation\BinaryFileResponse
|
||||||
|
*/
|
||||||
|
public function downloadPdf($invitation_key)
|
||||||
|
{
|
||||||
|
$invitation = $this->purchase_order_repository->getInvitationByKey($invitation_key);
|
||||||
|
|
||||||
|
if (! $invitation) {
|
||||||
|
return response()->json(['message' => 'no record found'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
$purchase_order = $invitation->purchase_order;
|
||||||
|
|
||||||
|
$file = $purchase_order->service()->getPurchaseOrderPdf();
|
||||||
|
|
||||||
|
$headers = ['Content-Type' => 'application/pdf'];
|
||||||
|
|
||||||
|
if (request()->input('inline') == 'true') {
|
||||||
|
$headers = array_merge($headers, ['Content-Disposition' => 'inline']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->streamDownload(function () use ($file) {
|
||||||
|
echo Storage::get($file);
|
||||||
|
}, basename($file), $headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -779,9 +779,58 @@ class QuoteController extends BaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @OA\Get(
|
||||||
|
* path="/api/v1/quote/{invitation_key}/download",
|
||||||
|
* operationId="downloadQuote",
|
||||||
|
* tags={"quotes"},
|
||||||
|
* summary="Download a specific quote by invitation key",
|
||||||
|
* description="Downloads a specific quote",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="invitation_key",
|
||||||
|
* in="path",
|
||||||
|
* description="The Quote Invitation Key",
|
||||||
|
* example="D2J234DFA",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns the quote pdf",
|
||||||
|
* @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"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
* @param $invitation_key
|
||||||
|
* @return \Symfony\Component\HttpFoundation\BinaryFileResponse
|
||||||
|
*/
|
||||||
|
|
||||||
public function downloadPdf($invitation_key)
|
public function downloadPdf($invitation_key)
|
||||||
{
|
{
|
||||||
$invitation = $this->quote_repo->getInvitationByKey($invitation_key);
|
$invitation = $this->quote_repo->getInvitationByKey($invitation_key);
|
||||||
|
|
||||||
|
if (! $invitation) {
|
||||||
|
return response()->json(['message' => 'no record found'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
$contact = $invitation->contact;
|
$contact = $invitation->contact;
|
||||||
$quote = $invitation->quote;
|
$quote = $invitation->quote;
|
||||||
|
|
||||||
|
@ -15,12 +15,35 @@ namespace App\Http\Livewire;
|
|||||||
use App\Libraries\MultiDB;
|
use App\Libraries\MultiDB;
|
||||||
use App\Models\ClientContact;
|
use App\Models\ClientContact;
|
||||||
use App\Models\CompanyGateway;
|
use App\Models\CompanyGateway;
|
||||||
|
use App\Models\Invoice;
|
||||||
|
use App\Utils\Traits\MakesHash;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
|
|
||||||
class RequiredClientInfo extends Component
|
class RequiredClientInfo extends Component
|
||||||
{
|
{
|
||||||
|
use MakesHash;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
public $show_terms = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $invoice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
public $terms_accepted = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
public $fields = [];
|
public $fields = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,6 +51,9 @@ class RequiredClientInfo extends Component
|
|||||||
*/
|
*/
|
||||||
public $contact;
|
public $contact;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Client
|
||||||
|
*/
|
||||||
public $client;
|
public $client;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -60,6 +86,11 @@ class RequiredClientInfo extends Component
|
|||||||
'client_shipping_postal_code' => 'shipping_postal_code',
|
'client_shipping_postal_code' => 'shipping_postal_code',
|
||||||
'client_shipping_country_id' => 'shipping_country_id',
|
'client_shipping_country_id' => 'shipping_country_id',
|
||||||
|
|
||||||
|
'client_custom_value1' => 'custom_value1',
|
||||||
|
'client_custom_value2' => 'custom_value2',
|
||||||
|
'client_custom_value3' => 'custom_value3',
|
||||||
|
'client_custom_value4' => 'custom_value4',
|
||||||
|
|
||||||
'contact_first_name' => 'first_name',
|
'contact_first_name' => 'first_name',
|
||||||
'contact_last_name' => 'last_name',
|
'contact_last_name' => 'last_name',
|
||||||
'contact_email' => 'email',
|
'contact_email' => 'email',
|
||||||
@ -100,6 +131,10 @@ class RequiredClientInfo extends Component
|
|||||||
'client.name' => '',
|
'client.name' => '',
|
||||||
'client.website' => '',
|
'client.website' => '',
|
||||||
'client.phone' => '',
|
'client.phone' => '',
|
||||||
|
'client.custom_value1' => '',
|
||||||
|
'client.custom_value2' => '',
|
||||||
|
'client.custom_value3' => '',
|
||||||
|
'client.custom_value4' => '',
|
||||||
];
|
];
|
||||||
|
|
||||||
public $show_form = false;
|
public $show_form = false;
|
||||||
@ -114,9 +149,28 @@ class RequiredClientInfo extends Component
|
|||||||
|
|
||||||
$this->client = $this->contact->client;
|
$this->client = $this->contact->client;
|
||||||
|
|
||||||
count($this->fields) > 0
|
if($this->company->settings->show_accept_invoice_terms && request()->query('hash'))
|
||||||
|
{
|
||||||
|
$this->show_terms = true;
|
||||||
|
$this->terms_accepted = false;
|
||||||
|
$this->show_form = true;
|
||||||
|
|
||||||
|
$hash = Cache::get(request()->input('hash'));
|
||||||
|
|
||||||
|
$this->invoice = Invoice::find($this->decodePrimaryKey($hash['invoice_id']));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
count($this->fields) > 0 || $this->show_terms
|
||||||
? $this->checkFields()
|
? $this->checkFields()
|
||||||
: $this->show_form = false;
|
: $this->show_form = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function toggleTermsAccepted()
|
||||||
|
{
|
||||||
|
$this->terms_accepted = !$this->terms_accepted;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function handleSubmit(array $data): bool
|
public function handleSubmit(array $data): bool
|
||||||
@ -155,7 +209,7 @@ class RequiredClientInfo extends Component
|
|||||||
|
|
||||||
private function updateClientDetails(array $data): bool
|
private function updateClientDetails(array $data): bool
|
||||||
{
|
{
|
||||||
nlog($this->company->id);
|
|
||||||
$client = [];
|
$client = [];
|
||||||
$contact = [];
|
$contact = [];
|
||||||
|
|
||||||
@ -215,6 +269,7 @@ class RequiredClientInfo extends Component
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showCopyBillingCheckbox(): bool
|
public function showCopyBillingCheckbox(): bool
|
||||||
|
@ -68,6 +68,11 @@ class BaseTransformer
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getInvoiceTypeId($data, $field)
|
||||||
|
{
|
||||||
|
return isset($data[$field]) && $data[$field] ? (string)$data[$field] : '1';
|
||||||
|
}
|
||||||
|
|
||||||
public function getNumber($data, $field)
|
public function getNumber($data, $field)
|
||||||
{
|
{
|
||||||
return (isset($data->$field) && $data->$field) ? (int)$data->$field : 0;
|
return (isset($data->$field) && $data->$field) ? (int)$data->$field : 0;
|
||||||
|
@ -222,9 +222,10 @@ class InvoiceTransformer extends BaseTransformer
|
|||||||
$record,
|
$record,
|
||||||
'item.custom_value4'
|
'item.custom_value4'
|
||||||
),
|
),
|
||||||
'type_id' => '1', //$this->getInvoiceTypeId( $record, 'item.type_id' ),
|
'type_id' => $this->getInvoiceTypeId( $record, 'item.type_id' ),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
$transformed['line_items'] = $line_items;
|
$transformed['line_items'] = $line_items;
|
||||||
|
|
||||||
return $transformed;
|
return $transformed;
|
||||||
|
@ -176,25 +176,17 @@ class NinjaMailerJob implements ShouldQueue
|
|||||||
* this merges a text string with a json object
|
* this merges a text string with a json object
|
||||||
* need to harvest the ->Message property using the following
|
* need to harvest the ->Message property using the following
|
||||||
*/
|
*/
|
||||||
if(stripos($e->getMessage(), 'code 406') || stripos($e->getMessage(), 'code 300'))
|
if(stripos($e->getMessage(), 'code 406') || stripos($e->getMessage(), 'code 300') || stripos($e->getMessage(), 'code 413'))
|
||||||
{
|
{
|
||||||
|
|
||||||
$message = "Either Attachment too large, or recipient has been suppressed.";
|
$message = "Either Attachment too large, or recipient has been suppressed.";
|
||||||
|
|
||||||
$this->fail();
|
$this->fail();
|
||||||
|
$this->logMailError($e->getMessage(), $this->company->clients()->first());
|
||||||
$this->cleanUpMailers();
|
$this->cleanUpMailers();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// $response = $e->getResponse();
|
|
||||||
// $message_body = json_decode($response->getBody()->getContents());
|
|
||||||
|
|
||||||
// if($message_body && property_exists($message_body, 'Message')){
|
|
||||||
// $message = $message_body->Message;
|
|
||||||
// }
|
|
||||||
|
|
||||||
/*Do not retry if this is a postmark specific issue such as invalid recipient. */
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//only report once, not on all tries
|
//only report once, not on all tries
|
||||||
@ -386,12 +378,14 @@ class NinjaMailerJob implements ShouldQueue
|
|||||||
return $this->setMailDriver();
|
return $this->setMailDriver();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$user = $this->resolveSendingUser();
|
$user = $this->resolveSendingUser();
|
||||||
|
|
||||||
|
$sending_email = (isset($this->nmo->settings->custom_sending_email) && stripos($this->nmo->settings->custom_sending_email, "@")) ? $this->nmo->settings->custom_sending_email : $user->email;
|
||||||
|
$sending_user = (isset($this->nmo->settings->email_from_name) && strlen($this->nmo->settings->email_from_name) > 2) ? $this->nmo->settings->email_from_name : $user->name();
|
||||||
|
|
||||||
$this->nmo
|
$this->nmo
|
||||||
->mailable
|
->mailable
|
||||||
->from($user->email, $user->name());
|
->from($sending_email, $sending_user);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -410,9 +404,12 @@ class NinjaMailerJob implements ShouldQueue
|
|||||||
|
|
||||||
$user = $this->resolveSendingUser();
|
$user = $this->resolveSendingUser();
|
||||||
|
|
||||||
|
$sending_email = (isset($this->nmo->settings->custom_sending_email) && stripos($this->nmo->settings->custom_sending_email, "@")) ? $this->nmo->settings->custom_sending_email : $user->email;
|
||||||
|
$sending_user = (isset($this->nmo->settings->email_from_name) && strlen($this->nmo->settings->email_from_name) > 2) ? $this->nmo->settings->email_from_name : $user->name();
|
||||||
|
|
||||||
$this->nmo
|
$this->nmo
|
||||||
->mailable
|
->mailable
|
||||||
->from($user->email, $user->name());
|
->from($sending_email, $sending_user);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -99,6 +99,6 @@ class SystemLogger implements ShouldQueue
|
|||||||
|
|
||||||
public function failed($e)
|
public function failed($e)
|
||||||
{
|
{
|
||||||
nlog($e->getMessage());
|
config(['queue.failed.driver' => null]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,8 @@ class BaseEmailEngine implements EngineInterface
|
|||||||
|
|
||||||
public $attachments = [];
|
public $attachments = [];
|
||||||
|
|
||||||
|
public $attachment_links = [];
|
||||||
|
|
||||||
public $link;
|
public $link;
|
||||||
|
|
||||||
public $text;
|
public $text;
|
||||||
@ -37,6 +39,8 @@ class BaseEmailEngine implements EngineInterface
|
|||||||
|
|
||||||
public $text_footer;
|
public $text_footer;
|
||||||
|
|
||||||
|
public int $max_attachment_size = 3000000;
|
||||||
|
|
||||||
public function setFooter($footer)
|
public function setFooter($footer)
|
||||||
{
|
{
|
||||||
$this->footer = $footer;
|
$this->footer = $footer;
|
||||||
@ -95,6 +99,14 @@ class BaseEmailEngine implements EngineInterface
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setAttachmentLinks($links)
|
||||||
|
{
|
||||||
|
$this->attachment_links = array_merge($this->getAttachmentLinks(), $links);
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function setViewLink($link)
|
public function setViewLink($link)
|
||||||
{
|
{
|
||||||
$this->link = $link;
|
$this->link = $link;
|
||||||
@ -131,6 +143,11 @@ class BaseEmailEngine implements EngineInterface
|
|||||||
return $this->attachments;
|
return $this->attachments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getAttachmentLinks()
|
||||||
|
{
|
||||||
|
return $this->attachment_links;
|
||||||
|
}
|
||||||
|
|
||||||
public function getFooter()
|
public function getFooter()
|
||||||
{
|
{
|
||||||
return $this->footer;
|
return $this->footer;
|
||||||
|
@ -18,6 +18,7 @@ use App\Utils\Ninja;
|
|||||||
use App\Utils\Number;
|
use App\Utils\Number;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Lang;
|
use Illuminate\Support\Facades\Lang;
|
||||||
|
use Illuminate\Support\Facades\URL;
|
||||||
|
|
||||||
class CreditEmailEngine extends BaseEmailEngine
|
class CreditEmailEngine extends BaseEmailEngine
|
||||||
{
|
{
|
||||||
@ -136,10 +137,18 @@ class CreditEmailEngine extends BaseEmailEngine
|
|||||||
|
|
||||||
// Storage::url
|
// Storage::url
|
||||||
foreach ($this->credit->documents as $document) {
|
foreach ($this->credit->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, 'file' => base64_encode($document->getFile())]]);
|
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, 'file' => base64_encode($document->getFile())]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->credit->company->documents as $document) {
|
foreach ($this->credit->company->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, 'file' => base64_encode($document->getFile())]]);
|
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, 'file' => base64_encode($document->getFile())]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ use App\Utils\Number;
|
|||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Lang;
|
use Illuminate\Support\Facades\Lang;
|
||||||
|
use Illuminate\Support\Facades\URL;
|
||||||
|
|
||||||
class InvoiceEmailEngine extends BaseEmailEngine
|
class InvoiceEmailEngine extends BaseEmailEngine
|
||||||
{
|
{
|
||||||
@ -136,12 +137,21 @@ class InvoiceEmailEngine extends BaseEmailEngine
|
|||||||
//attach third party documents
|
//attach third party documents
|
||||||
if ($this->client->getSetting('document_email_attachment') !== false && $this->invoice->company->account->hasFeature(Account::FEATURE_DOCUMENTS)) {
|
if ($this->client->getSetting('document_email_attachment') !== false && $this->invoice->company->account->hasFeature(Account::FEATURE_DOCUMENTS)) {
|
||||||
|
|
||||||
|
|
||||||
// Storage::url
|
// Storage::url
|
||||||
foreach ($this->invoice->documents as $document) {
|
foreach ($this->invoice->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['file' => base64_encode($document->getFile()), 'path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
$this->setAttachments([['file' => base64_encode($document->getFile()), 'path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->invoice->company->documents as $document) {
|
foreach ($this->invoice->company->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['file' => base64_encode($document->getFile()), 'path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
$this->setAttachments([['file' => base64_encode($document->getFile()), 'path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,7 +170,12 @@ class InvoiceEmailEngine extends BaseEmailEngine
|
|||||||
->cursor()
|
->cursor()
|
||||||
->each(function ($expense) {
|
->each(function ($expense) {
|
||||||
foreach ($expense->documents as $document) {
|
foreach ($expense->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -176,7 +191,12 @@ class InvoiceEmailEngine extends BaseEmailEngine
|
|||||||
->cursor()
|
->cursor()
|
||||||
->each(function ($task) {
|
->each(function ($task) {
|
||||||
foreach ($task->documents as $document) {
|
foreach ($task->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ use App\Utils\Ninja;
|
|||||||
use App\Utils\Number;
|
use App\Utils\Number;
|
||||||
use App\Utils\Traits\MakesDates;
|
use App\Utils\Traits\MakesDates;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
|
use Illuminate\Support\Facades\URL;
|
||||||
|
|
||||||
class PaymentEmailEngine extends BaseEmailEngine
|
class PaymentEmailEngine extends BaseEmailEngine
|
||||||
{
|
{
|
||||||
@ -100,6 +101,10 @@ class PaymentEmailEngine extends BaseEmailEngine
|
|||||||
if ($this->client->getSetting('document_email_attachment') !== false)
|
if ($this->client->getSetting('document_email_attachment') !== false)
|
||||||
{
|
{
|
||||||
foreach ($invoice->documents as $document) {
|
foreach ($invoice->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ use App\Utils\Traits\MakesHash;
|
|||||||
use App\Utils\VendorHtmlEngine;
|
use App\Utils\VendorHtmlEngine;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Lang;
|
use Illuminate\Support\Facades\Lang;
|
||||||
|
use Illuminate\Support\Facades\URL;
|
||||||
|
|
||||||
class PurchaseOrderEmailEngine extends BaseEmailEngine
|
class PurchaseOrderEmailEngine extends BaseEmailEngine
|
||||||
{
|
{
|
||||||
@ -126,11 +127,6 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine
|
|||||||
->setTextBody($text_body);
|
->setTextBody($text_body);
|
||||||
|
|
||||||
if ($this->vendor->getSetting('pdf_email_attachment') !== false && $this->purchase_order->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) {
|
if ($this->vendor->getSetting('pdf_email_attachment') !== false && $this->purchase_order->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) {
|
||||||
// if (Ninja::isHosted()) {
|
|
||||||
// $this->setAttachments([$this->purchase_order->pdf_file_path($this->invitation, 'url', true)]);
|
|
||||||
// } else {
|
|
||||||
// $this->setAttachments([$this->purchase_order->pdf_file_path($this->invitation)]);
|
|
||||||
// }
|
|
||||||
|
|
||||||
$pdf = (new CreatePurchaseOrderPdf($this->invitation))->rawPdf();
|
$pdf = (new CreatePurchaseOrderPdf($this->invitation))->rawPdf();
|
||||||
|
|
||||||
@ -143,13 +139,19 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine
|
|||||||
|
|
||||||
// Storage::url
|
// Storage::url
|
||||||
foreach ($this->purchase_order->documents as $document) {
|
foreach ($this->purchase_order->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => null]]);
|
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => null]]);
|
||||||
// $this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, 'file' => base64_encode($document->getFile())]]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->purchase_order->company->documents as $document) {
|
foreach ($this->purchase_order->company->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => null]]);
|
$this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => null]]);
|
||||||
// $this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, 'file' => base64_encode($document->getFile())]]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ use App\Utils\Ninja;
|
|||||||
use App\Utils\Number;
|
use App\Utils\Number;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Lang;
|
use Illuminate\Support\Facades\Lang;
|
||||||
|
use Illuminate\Support\Facades\URL;
|
||||||
|
|
||||||
class QuoteEmailEngine extends BaseEmailEngine
|
class QuoteEmailEngine extends BaseEmailEngine
|
||||||
{
|
{
|
||||||
@ -128,10 +129,18 @@ class QuoteEmailEngine extends BaseEmailEngine
|
|||||||
|
|
||||||
// Storage::url
|
// Storage::url
|
||||||
foreach ($this->quote->documents as $document) {
|
foreach ($this->quote->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['file' => base64_encode($document->getFile()), 'path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
$this->setAttachments([['file' => base64_encode($document->getFile()), 'path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->quote->company->documents as $document) {
|
foreach ($this->quote->company->documents as $document) {
|
||||||
|
|
||||||
|
if($document->size > $this->max_attachment_size)
|
||||||
|
$this->setAttachmentLinks(["<a class='doc_links' href='" . URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]) ."'>". $document->name ."</a>"]);
|
||||||
|
else
|
||||||
$this->setAttachments([['file' => base64_encode($document->getFile()), 'path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
$this->setAttachments([['file' => base64_encode($document->getFile()), 'path' => $document->filePath(), 'name' => $document->name, 'mime' => NULL, ]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -116,6 +116,7 @@ class TemplateEmail extends Mailable
|
|||||||
'company' => $company,
|
'company' => $company,
|
||||||
'whitelabel' => $this->client->user->account->isPaid() ? true : false,
|
'whitelabel' => $this->client->user->account->isPaid() ? true : false,
|
||||||
'logo' => $this->company->present()->logo($settings),
|
'logo' => $this->company->present()->logo($settings),
|
||||||
|
'links' => $this->build_email->getAttachmentLinks(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
foreach ($this->build_email->getAttachments() as $file) {
|
foreach ($this->build_email->getAttachments() as $file) {
|
||||||
|
@ -109,6 +109,7 @@ class VendorTemplateEmail extends Mailable
|
|||||||
'company' => $this->company,
|
'company' => $this->company,
|
||||||
'whitelabel' => $this->vendor->user->account->isPaid() ? true : false,
|
'whitelabel' => $this->vendor->user->account->isPaid() ? true : false,
|
||||||
'logo' => $this->company->present()->logo($settings),
|
'logo' => $this->company->present()->logo($settings),
|
||||||
|
'links' => $this->build_email->getAttachmentLinks(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,6 +43,10 @@ class CompanyGateway extends BaseModel
|
|||||||
'require_client_phone',
|
'require_client_phone',
|
||||||
'require_contact_name',
|
'require_contact_name',
|
||||||
'require_contact_email',
|
'require_contact_email',
|
||||||
|
'require_custom_value1',
|
||||||
|
'require_custom_value2',
|
||||||
|
'require_custom_value3',
|
||||||
|
'require_custom_value4',
|
||||||
'update_details',
|
'update_details',
|
||||||
'config',
|
'config',
|
||||||
'fees_and_limits',
|
'fees_and_limits',
|
||||||
|
@ -67,17 +67,6 @@ class AuthorizePaymentDriver extends BaseDriver
|
|||||||
public function getClientRequiredFields(): array
|
public function getClientRequiredFields(): array
|
||||||
{
|
{
|
||||||
|
|
||||||
$fields = [];
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_shipping_address) {
|
|
||||||
$fields[] = ['name' => 'client_shipping_address_line_1', 'label' => ctrans('texts.shipping_address1'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_city', 'label' => ctrans('texts.shipping_city'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_state', 'label' => ctrans('texts.shipping_state'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_postal_code', 'label' => ctrans('texts.shipping_postal_code'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
['name' => 'client_name', 'label' => ctrans('texts.name'), 'type' => 'text', 'validation' => 'required|min:2'],
|
['name' => 'client_name', 'label' => ctrans('texts.name'), 'type' => 'text', 'validation' => 'required|min:2'],
|
||||||
['name' => 'contact_email', 'label' => ctrans('texts.email'), 'type' => 'text', 'validation' => 'required|email:rfc'],
|
['name' => 'contact_email', 'label' => ctrans('texts.email'), 'type' => 'text', 'validation' => 'required|email:rfc'],
|
||||||
@ -88,7 +77,43 @@ class AuthorizePaymentDriver extends BaseDriver
|
|||||||
['name' => 'client_country_id', 'label' => ctrans('texts.country'), 'type' => 'select', 'validation' => 'required'],
|
['name' => 'client_country_id', 'label' => ctrans('texts.country'), 'type' => 'select', 'validation' => 'required'],
|
||||||
];
|
];
|
||||||
|
|
||||||
return array_merge($fields, $data);
|
$fields = [];
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_shipping_address) {
|
||||||
|
$fields[] = ['name' => 'client_shipping_address_line_1', 'label' => ctrans('texts.shipping_address1'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_shipping_city', 'label' => ctrans('texts.shipping_city'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_shipping_state', 'label' => ctrans('texts.shipping_state'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_shipping_postal_code', 'label' => ctrans('texts.shipping_postal_code'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value1) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value1', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client1'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value2) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value2', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client2'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value3) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value3', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client3'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value4) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value4', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client4'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_merge($data, $fields);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ use App\Models\PaymentType;
|
|||||||
use App\Models\SystemLog;
|
use App\Models\SystemLog;
|
||||||
use App\Models\TransactionEvent;
|
use App\Models\TransactionEvent;
|
||||||
use App\Services\Subscription\SubscriptionService;
|
use App\Services\Subscription\SubscriptionService;
|
||||||
|
use App\Utils\Helpers;
|
||||||
use App\Utils\Ninja;
|
use App\Utils\Ninja;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
use App\Utils\Traits\SystemLogTrait;
|
use App\Utils\Traits\SystemLogTrait;
|
||||||
@ -76,6 +77,8 @@ class BaseDriver extends AbstractPaymentDriver
|
|||||||
/* PaymentHash */
|
/* PaymentHash */
|
||||||
public $payment_hash;
|
public $payment_hash;
|
||||||
|
|
||||||
|
public $helpers;
|
||||||
|
|
||||||
/* Array of payment methods */
|
/* Array of payment methods */
|
||||||
public static $methods = [];
|
public static $methods = [];
|
||||||
|
|
||||||
@ -87,6 +90,7 @@ class BaseDriver extends AbstractPaymentDriver
|
|||||||
$this->company_gateway = $company_gateway;
|
$this->company_gateway = $company_gateway;
|
||||||
$this->invitation = $invitation;
|
$this->invitation = $invitation;
|
||||||
$this->client = $client;
|
$this->client = $client;
|
||||||
|
$this->helpers = new Helpers();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -94,9 +98,75 @@ class BaseDriver extends AbstractPaymentDriver
|
|||||||
*
|
*
|
||||||
* @return array[]
|
* @return array[]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function getClientRequiredFields(): array
|
public function getClientRequiredFields(): array
|
||||||
{
|
{
|
||||||
return [];
|
$fields = [];
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_client_name) {
|
||||||
|
$fields[] = ['name' => 'client_name', 'label' => ctrans('texts.client_name'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_contact_name) {
|
||||||
|
$fields[] = ['name' => 'contact_first_name', 'label' => ctrans('texts.first_name'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'contact_last_name', 'label' => ctrans('texts.last_name'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_contact_email) {
|
||||||
|
$fields[] = ['name' => 'contact_email', 'label' => ctrans('texts.email'), 'type' => 'text', 'validation' => 'required,email:rfc'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_client_phone) {
|
||||||
|
$fields[] = ['name' => 'client_phone', 'label' => ctrans('texts.client_phone'), 'type' => 'tel', 'validation' => 'required'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_billing_address) {
|
||||||
|
$fields[] = ['name' => 'client_address_line_1', 'label' => ctrans('texts.address1'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_city', 'label' => ctrans('texts.city'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_state', 'label' => ctrans('texts.state'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_country_id', 'label' => ctrans('texts.country'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_postal_code) {
|
||||||
|
$fields[] = ['name' => 'client_postal_code', 'label' => ctrans('texts.postal_code'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_shipping_address) {
|
||||||
|
$fields[] = ['name' => 'client_shipping_address_line_1', 'label' => ctrans('texts.shipping_address1'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_shipping_city', 'label' => ctrans('texts.shipping_city'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_shipping_state', 'label' => ctrans('texts.shipping_state'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_shipping_postal_code', 'label' => ctrans('texts.shipping_postal_code'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value1) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value1', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client1'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value2) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value2', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client2'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value3) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value3', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client3'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value4) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value4', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client4'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return $fields;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -593,21 +663,6 @@ class BaseDriver extends AbstractPaymentDriver
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if ($this->company_gateway->require_contact_email) {
|
|
||||||
// if ($this->checkRequiredResource($this->email)) {
|
|
||||||
// $this->required_fields[] = 'contact_email';
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if ($this->company_gateway->require_contact_name) {
|
|
||||||
// if ($this->checkRequiredResource($this->first_name)) {
|
|
||||||
// $this->required_fields[] = 'contact_first_name';
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if ($this->checkRequiredResource($this->last_name)) {
|
|
||||||
// $this->required_fields[] = 'contact_last_name';
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_postal_code) {
|
if ($this->company_gateway->require_postal_code) {
|
||||||
// In case "require_postal_code" is true, we don't need billing address.
|
// In case "require_postal_code" is true, we don't need billing address.
|
||||||
|
@ -155,49 +155,6 @@ class CheckoutComPaymentDriver extends BaseDriver
|
|||||||
return 'gateways.checkout.credit_card.pay';
|
return 'gateways.checkout.credit_card.pay';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getClientRequiredFields(): array
|
|
||||||
{
|
|
||||||
$fields = [];
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_client_name) {
|
|
||||||
$fields[] = ['name' => 'client_name', 'label' => ctrans('texts.client_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_contact_name) {
|
|
||||||
$fields[] = ['name' => 'contact_first_name', 'label' => ctrans('texts.first_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'contact_last_name', 'label' => ctrans('texts.last_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_contact_email) {
|
|
||||||
$fields[] = ['name' => 'contact_email', 'label' => ctrans('texts.email'), 'type' => 'text', 'validation' => 'required,email:rfc'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_client_phone) {
|
|
||||||
$fields[] = ['name' => 'client_phone', 'label' => ctrans('texts.client_phone'), 'type' => 'tel', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_billing_address) {
|
|
||||||
$fields[] = ['name' => 'client_address_line_1', 'label' => ctrans('texts.address1'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_city', 'label' => ctrans('texts.city'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_state', 'label' => ctrans('texts.state'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_country_id', 'label' => ctrans('texts.country'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_postal_code) {
|
|
||||||
$fields[] = ['name' => 'client_postal_code', 'label' => ctrans('texts.postal_code'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_shipping_address) {
|
|
||||||
$fields[] = ['name' => 'client_shipping_address_line_1', 'label' => ctrans('texts.shipping_address1'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_city', 'label' => ctrans('texts.shipping_city'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_state', 'label' => ctrans('texts.shipping_state'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_postal_code', 'label' => ctrans('texts.shipping_postal_code'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $fields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function authorizeView($data)
|
public function authorizeView($data)
|
||||||
{
|
{
|
||||||
return $this->payment_method->authorizeView($data);
|
return $this->payment_method->authorizeView($data);
|
||||||
|
@ -191,6 +191,32 @@ class EwayPaymentDriver extends BaseDriver
|
|||||||
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value1) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value1', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client1'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value2) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value2', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client2'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value3) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value3', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client3'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value4) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value4', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client4'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return $fields;
|
return $fields;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
namespace App\PaymentDrivers;
|
namespace App\PaymentDrivers;
|
||||||
|
|
||||||
use App\Exceptions\SystemError;
|
use App\Exceptions\SystemError;
|
||||||
|
use App\Http\Requests\Payments\PaymentWebhookRequest;
|
||||||
use App\Jobs\Util\SystemLogger;
|
use App\Jobs\Util\SystemLogger;
|
||||||
use App\Models\ClientGatewayToken;
|
use App\Models\ClientGatewayToken;
|
||||||
use App\Models\GatewayType;
|
use App\Models\GatewayType;
|
||||||
@ -166,51 +167,6 @@ class PaytracePaymentDriver extends BaseDriver
|
|||||||
$this->processUnsuccessfulTransaction($data, false);
|
$this->processUnsuccessfulTransaction($data, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getClientRequiredFields(): array
|
|
||||||
{
|
|
||||||
$fields = [];
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_client_name) {
|
|
||||||
$fields[] = ['name' => 'client_name', 'label' => ctrans('texts.client_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_contact_name) {
|
|
||||||
$fields[] = ['name' => 'contact_first_name', 'label' => ctrans('texts.first_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'contact_last_name', 'label' => ctrans('texts.last_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_contact_email) {
|
|
||||||
$fields[] = ['name' => 'contact_email', 'label' => ctrans('texts.email'), 'type' => 'text', 'validation' => 'required,email:rfc'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_client_phone) {
|
|
||||||
$fields[] = ['name' => 'client_phone', 'label' => ctrans('texts.client_phone'), 'type' => 'tel', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$fields[] = ['name' => 'client_address_line_1', 'label' => ctrans('texts.address1'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_billing_address) {
|
|
||||||
$fields[] = ['name' => 'client_city', 'label' => ctrans('texts.city'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_state', 'label' => ctrans('texts.state'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_country_id', 'label' => ctrans('texts.country'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// if ($this->company_gateway->require_postal_code) {
|
|
||||||
$fields[] = ['name' => 'client_postal_code', 'label' => ctrans('texts.postal_code'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_city', 'label' => ctrans('texts.shipping_city'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_state', 'label' => ctrans('texts.shipping_state'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_shipping_address) {
|
|
||||||
$fields[] = ['name' => 'client_shipping_address_line_1', 'label' => ctrans('texts.shipping_address1'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_postal_code', 'label' => ctrans('texts.shipping_postal_code'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $fields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function processWebhookRequest(PaymentWebhookRequest $request, Payment $payment = null)
|
public function processWebhookRequest(PaymentWebhookRequest $request, Payment $payment = null)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -182,48 +182,6 @@ class SquarePaymentDriver extends BaseDriver
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getClientRequiredFields(): array
|
|
||||||
{
|
|
||||||
$fields = [];
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_client_name) {
|
|
||||||
$fields[] = ['name' => 'client_name', 'label' => ctrans('texts.client_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_contact_name) {
|
|
||||||
$fields[] = ['name' => 'contact_first_name', 'label' => ctrans('texts.first_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'contact_last_name', 'label' => ctrans('texts.last_name'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_contact_email) {
|
|
||||||
$fields[] = ['name' => 'contact_email', 'label' => ctrans('texts.email'), 'type' => 'text', 'validation' => 'required,email:rfc'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_client_phone) {
|
|
||||||
$fields[] = ['name' => 'client_phone', 'label' => ctrans('texts.client_phone'), 'type' => 'tel', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_billing_address) {
|
|
||||||
$fields[] = ['name' => 'client_address_line_1', 'label' => ctrans('texts.address1'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
// $fields[] = ['name' => 'client_address_line_2', 'label' => ctrans('texts.address2'), 'type' => 'text', 'validation' => 'nullable'];
|
|
||||||
$fields[] = ['name' => 'client_postal_code', 'label' => ctrans('texts.postal_code'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_city', 'label' => ctrans('texts.city'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_state', 'label' => ctrans('texts.state'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_country_id', 'label' => ctrans('texts.country'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->company_gateway->require_shipping_address) {
|
|
||||||
$fields[] = ['name' => 'client_shipping_address_line_1', 'label' => ctrans('texts.shipping_address1'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
// $fields[] = ['name' => 'client_shipping_address_line_2', 'label' => ctrans('texts.shipping_address2'), 'type' => 'text', 'validation' => 'sometimes'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_city', 'label' => ctrans('texts.shipping_city'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_state', 'label' => ctrans('texts.shipping_state'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_postal_code', 'label' => ctrans('texts.shipping_postal_code'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $fields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function convertAmount($amount)
|
public function convertAmount($amount)
|
||||||
{
|
{
|
||||||
$precision = $this->client->currency()->precision;
|
$precision = $this->client->currency()->precision;
|
||||||
|
@ -354,6 +354,34 @@ class StripePaymentDriver extends BaseDriver
|
|||||||
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value1) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value1', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client1'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value2) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value2', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client2'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value3) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value3', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client3'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value4) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value4', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client4'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return $fields;
|
return $fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -342,6 +342,36 @@ class WePayPaymentDriver extends BaseDriver
|
|||||||
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
$fields[] = ['name' => 'client_shipping_country_id', 'label' => ctrans('texts.shipping_country'), 'type' => 'text', 'validation' => 'required'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value1) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value1', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client1'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value2) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value2', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client2'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value3) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value3', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client3'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->company_gateway->require_custom_value4) {
|
||||||
|
|
||||||
|
$fields[] = ['name' => 'client_custom_value4', 'label' => $this->helpers->makeCustomField($this->client->company->custom_fields, 'client4'), 'type' => 'text', 'validation' => 'required'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return $fields;
|
return $fields;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -322,8 +322,11 @@ class EmailMailer implements ShouldQueue
|
|||||||
|
|
||||||
$user = $this->resolveSendingUser();
|
$user = $this->resolveSendingUser();
|
||||||
|
|
||||||
|
$sending_email = (isset($this->email_service->email_object->settings->custom_sending_email) && stripos($this->email_service->email_object->settings->custom_sending_email, "@")) ? $this->email_service->email_object->settings->custom_sending_email : $user->email;
|
||||||
|
$sending_user = (isset($this->email_service->email_object->settings->email_from_name) && strlen($this->email_service->email_object->settings->email_from_name) > 2) ? $this->email_service->email_object->settings->email_from_name : $user->name();
|
||||||
|
|
||||||
$this->email_mailable
|
$this->email_mailable
|
||||||
->from($user->email, $user->name());
|
->from($sending_email, $sending_user);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -342,8 +345,11 @@ class EmailMailer implements ShouldQueue
|
|||||||
|
|
||||||
$user = $this->resolveSendingUser();
|
$user = $this->resolveSendingUser();
|
||||||
|
|
||||||
|
$sending_email = (isset($this->email_service->email_object->settings->custom_sending_email) && stripos($this->email_service->email_object->settings->custom_sending_email, "@")) ? $this->email_service->email_object->settings->custom_sending_email : $user->email;
|
||||||
|
$sending_user = (isset($this->email_service->email_object->settings->email_from_name) && strlen($this->email_service->email_object->settings->email_from_name) > 2) ? $this->email_service->email_object->settings->email_from_name : $user->name();
|
||||||
|
|
||||||
$this->email_mailable
|
$this->email_mailable
|
||||||
->from($user->email, $user->name());
|
->from($sending_email, $sending_user);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,6 +60,10 @@ class CompanyGatewayTransformer extends EntityTransformer
|
|||||||
'require_client_phone' => (bool) $company_gateway->require_client_phone,
|
'require_client_phone' => (bool) $company_gateway->require_client_phone,
|
||||||
'require_contact_name' => (bool) $company_gateway->require_contact_name,
|
'require_contact_name' => (bool) $company_gateway->require_contact_name,
|
||||||
'require_contact_email' => (bool) $company_gateway->require_contact_email,
|
'require_contact_email' => (bool) $company_gateway->require_contact_email,
|
||||||
|
'require_custom_value1' => (bool) $company_gateway->require_custom_value1,
|
||||||
|
'require_custom_value2' => (bool) $company_gateway->require_custom_value2,
|
||||||
|
'require_custom_value3' => (bool) $company_gateway->require_custom_value3,
|
||||||
|
'require_custom_value4' => (bool) $company_gateway->require_custom_value4,
|
||||||
'show_billing_address' => (bool) $company_gateway->show_billing_address, //@deprecated
|
'show_billing_address' => (bool) $company_gateway->show_billing_address, //@deprecated
|
||||||
'show_shipping_address' => (bool) $company_gateway->show_shipping_address, //@deprecated
|
'show_shipping_address' => (bool) $company_gateway->show_shipping_address, //@deprecated
|
||||||
'update_details' => (bool) $company_gateway->update_details,
|
'update_details' => (bool) $company_gateway->update_details,
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('company_gateways', function (Blueprint $table)
|
||||||
|
{
|
||||||
|
|
||||||
|
$table->boolean('require_custom_value1')->default(false);
|
||||||
|
$table->boolean('require_custom_value2')->default(false);
|
||||||
|
$table->boolean('require_custom_value3')->default(false);
|
||||||
|
$table->boolean('require_custom_value4')->default(false);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
};
|
188900
public/css/app.css
vendored
188900
public/css/app.css
vendored
File diff suppressed because one or more lines are too long
3632
public/js/app.js
vendored
3632
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
138
public/js/clients/invoices/action-selectors.js
vendored
138
public/js/clients/invoices/action-selectors.js
vendored
@ -1,2 +1,136 @@
|
|||||||
/*! For license information please see action-selectors.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,n){if(!e)return;if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return t(e,n)}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0,c=function(){};return{s:c,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw i}}}}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(new(function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.parentElement=document.querySelector(".form-check-parent"),this.parentForm=document.getElementById("bulkActions")}var r,o,c;return r=t,o=[{key:"watchCheckboxes",value:function(e){var t=this;document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),document.querySelectorAll(".form-check-child").forEach((function(n){e.checked?(n.checked=e.checked,t.processChildItem(n,document.getElementById("bulkActions"))):(n.checked=!1,document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})))}))}},{key:"processChildItem",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(r.hasOwnProperty("single")&&document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),!1!==t.checked){var o=document.createElement("INPUT");o.setAttribute("name","invoices[]"),o.setAttribute("value",t.dataset.value),o.setAttribute("class","child-hidden-input"),o.hidden=!0,n.append(o)}else{var c,i=document.querySelectorAll("input.child-hidden-input"),a=e(i);try{for(a.s();!(c=a.n()).done;){var l=c.value;l.value==t.dataset.value&&l.remove()}}catch(e){a.e(e)}finally{a.f()}}}},{key:"handle",value:function(){var t=this;this.parentElement.addEventListener("click",(function(){t.watchCheckboxes(t.parentElement)}));var n,r=e(document.querySelectorAll(".form-check-child"));try{var o=function(){var e=n.value;e.addEventListener("click",(function(){t.processChildItem(e,t.parentForm)}))};for(r.s();!(n=r.n()).done;)o()}catch(e){r.e(e)}finally{r.f()}}}],o&&n(r.prototype,o),c&&n(r,c),Object.defineProperty(r,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/invoices/action-selectors.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
||||||
|
|
||||||
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||||
|
|
||||||
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ActionSelectors = /*#__PURE__*/function () {
|
||||||
|
function ActionSelectors() {
|
||||||
|
_classCallCheck(this, ActionSelectors);
|
||||||
|
|
||||||
|
this.parentElement = document.querySelector('.form-check-parent');
|
||||||
|
this.parentForm = document.getElementById('bulkActions');
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(ActionSelectors, [{
|
||||||
|
key: "watchCheckboxes",
|
||||||
|
value: function watchCheckboxes(parentElement) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
document.querySelectorAll('.form-check-child').forEach(function (child) {
|
||||||
|
if (parentElement.checked) {
|
||||||
|
child.checked = parentElement.checked;
|
||||||
|
|
||||||
|
_this.processChildItem(child, document.getElementById('bulkActions'));
|
||||||
|
} else {
|
||||||
|
child.checked = false;
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "processChildItem",
|
||||||
|
value: function processChildItem(element, parent) {
|
||||||
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||||
|
|
||||||
|
if (options.hasOwnProperty('single')) {
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.checked === false) {
|
||||||
|
var inputs = document.querySelectorAll('input.child-hidden-input');
|
||||||
|
|
||||||
|
var _iterator = _createForOfIteratorHelper(inputs),
|
||||||
|
_step;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||||
|
var i = _step.value;
|
||||||
|
if (i.value == element.dataset.value) i.remove();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_iterator.e(err);
|
||||||
|
} finally {
|
||||||
|
_iterator.f();
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _temp = document.createElement('INPUT');
|
||||||
|
|
||||||
|
_temp.setAttribute('name', 'invoices[]');
|
||||||
|
|
||||||
|
_temp.setAttribute('value', element.dataset.value);
|
||||||
|
|
||||||
|
_temp.setAttribute('class', 'child-hidden-input');
|
||||||
|
|
||||||
|
_temp.hidden = true;
|
||||||
|
parent.append(_temp);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
this.parentElement.addEventListener('click', function () {
|
||||||
|
_this2.watchCheckboxes(_this2.parentElement);
|
||||||
|
});
|
||||||
|
|
||||||
|
var _iterator2 = _createForOfIteratorHelper(document.querySelectorAll('.form-check-child')),
|
||||||
|
_step2;
|
||||||
|
|
||||||
|
try {
|
||||||
|
var _loop = function _loop() {
|
||||||
|
var child = _step2.value;
|
||||||
|
child.addEventListener('click', function () {
|
||||||
|
_this2.processChildItem(child, _this2.parentForm);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
||||||
|
_loop();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_iterator2.e(err);
|
||||||
|
} finally {
|
||||||
|
_iterator2.f();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return ActionSelectors;
|
||||||
|
}();
|
||||||
|
/** @handle **/
|
||||||
|
|
||||||
|
|
||||||
|
new ActionSelectors().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
128
public/js/clients/invoices/payment.js
vendored
128
public/js/clients/invoices/payment.js
vendored
@ -1,2 +1,126 @@
|
|||||||
/*! For license information please see payment.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var t=function(){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.shouldDisplayTerms=e,this.shouldDisplaySignature=n,this.termsAccepted=!1,this.submitting=!1}var n,i,a;return n=t,(i=[{key:"handleMethodSelect",value:function(e){var t=this;document.getElementById("company_gateway_id").value=e.dataset.companyGatewayId,document.getElementById("payment_method_id").value=e.dataset.gatewayTypeId,this.shouldDisplaySignature&&!this.shouldDisplayTerms&&(this.signaturePad&&this.signaturePad.isEmpty()&&alert("Please sign"),this.displayTerms(),document.getElementById("accept-terms-button").addEventListener("click",(function(){t.termsAccepted=!0,t.submitForm()}))),!this.shouldDisplaySignature&&this.shouldDisplayTerms&&(this.displaySignature(),document.getElementById("signature-next-step").addEventListener("click",(function(){document.querySelector('input[name="signature"').value=t.signaturePad.toDataURL(),t.submitForm()}))),this.shouldDisplaySignature&&this.shouldDisplayTerms&&(this.displaySignature(),document.getElementById("signature-next-step").addEventListener("click",(function(){t.displayTerms(),document.getElementById("accept-terms-button").addEventListener("click",(function(){document.querySelector('input[name="signature"').value=t.signaturePad.toDataURL(),t.termsAccepted=!0,t.submitForm()}))}))),this.shouldDisplaySignature||this.shouldDisplayTerms||this.submitForm()}},{key:"submitForm",value:function(){this.submitting=!0,document.getElementById("payment-form").submit()}},{key:"displayTerms",value:function(){document.getElementById("displayTermsModal").removeAttribute("style")}},{key:"displaySignature",value:function(){document.getElementById("displaySignatureModal").removeAttribute("style");var e=new SignaturePad(document.getElementById("signature-pad"),{penColor:"rgb(0, 0, 0)"});e.onEnd=function(){document.getElementById("signature-next-step").disabled=!1},this.signaturePad=e}},{key:"handle",value:function(){var e=this;document.getElementById("signature-next-step").disabled=!0,document.querySelectorAll(".dropdown-gateway-button").forEach((function(t){t.addEventListener("click",(function(){e.submitting||e.handleMethodSelect(t)}))}))}}])&&e(n.prototype,i),a&&e(n,a),Object.defineProperty(n,"prototype",{writable:!1}),t}(),n=document.querySelector('meta[name="require-invoice-signature"]').content,i=document.querySelector('meta[name="show-invoice-terms"]').content;new t(Boolean(+n),Boolean(+i)).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!**************************************************!*\
|
||||||
|
!*** ./resources/js/clients/invoices/payment.js ***!
|
||||||
|
\**************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var Payment = /*#__PURE__*/function () {
|
||||||
|
function Payment(displayTerms, displaySignature) {
|
||||||
|
_classCallCheck(this, Payment);
|
||||||
|
|
||||||
|
this.shouldDisplayTerms = displayTerms;
|
||||||
|
this.shouldDisplaySignature = displaySignature;
|
||||||
|
this.termsAccepted = false;
|
||||||
|
this.submitting = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(Payment, [{
|
||||||
|
key: "handleMethodSelect",
|
||||||
|
value: function handleMethodSelect(element) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
document.getElementById("company_gateway_id").value = element.dataset.companyGatewayId;
|
||||||
|
document.getElementById("payment_method_id").value = element.dataset.gatewayTypeId;
|
||||||
|
|
||||||
|
if (this.shouldDisplaySignature && !this.shouldDisplayTerms) {
|
||||||
|
if (this.signaturePad && this.signaturePad.isEmpty()) alert("Please sign");
|
||||||
|
this.displayTerms();
|
||||||
|
document.getElementById("accept-terms-button").addEventListener("click", function () {
|
||||||
|
_this.termsAccepted = true;
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.shouldDisplaySignature && this.shouldDisplayTerms) {
|
||||||
|
this.displaySignature();
|
||||||
|
document.getElementById("signature-next-step").addEventListener("click", function () {
|
||||||
|
document.querySelector('input[name="signature"').value = _this.signaturePad.toDataURL();
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.shouldDisplaySignature && this.shouldDisplayTerms) {
|
||||||
|
this.displaySignature();
|
||||||
|
document.getElementById("signature-next-step").addEventListener("click", function () {
|
||||||
|
_this.displayTerms();
|
||||||
|
|
||||||
|
document.getElementById("accept-terms-button").addEventListener("click", function () {
|
||||||
|
document.querySelector('input[name="signature"').value = _this.signaturePad.toDataURL();
|
||||||
|
_this.termsAccepted = true;
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.shouldDisplaySignature && !this.shouldDisplayTerms) {
|
||||||
|
this.submitForm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "submitForm",
|
||||||
|
value: function submitForm() {
|
||||||
|
this.submitting = true;
|
||||||
|
document.getElementById("payment-form").submit();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "displayTerms",
|
||||||
|
value: function displayTerms() {
|
||||||
|
var displayTermsModal = document.getElementById("displayTermsModal");
|
||||||
|
displayTermsModal.removeAttribute("style");
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "displaySignature",
|
||||||
|
value: function displaySignature() {
|
||||||
|
var displaySignatureModal = document.getElementById("displaySignatureModal");
|
||||||
|
displaySignatureModal.removeAttribute("style");
|
||||||
|
var signaturePad = new SignaturePad(document.getElementById("signature-pad"), {
|
||||||
|
penColor: "rgb(0, 0, 0)"
|
||||||
|
});
|
||||||
|
|
||||||
|
signaturePad.onEnd = function () {
|
||||||
|
document.getElementById("signature-next-step").disabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.signaturePad = signaturePad;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
document.getElementById("signature-next-step").disabled = true;
|
||||||
|
document.querySelectorAll(".dropdown-gateway-button").forEach(function (element) {
|
||||||
|
element.addEventListener("click", function () {
|
||||||
|
if (!_this2.submitting) {
|
||||||
|
_this2.handleMethodSelect(element);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Payment;
|
||||||
|
}();
|
||||||
|
|
||||||
|
var signature = document.querySelector('meta[name="require-invoice-signature"]').content;
|
||||||
|
var terms = document.querySelector('meta[name="show-invoice-terms"]').content;
|
||||||
|
new Payment(Boolean(+signature), Boolean(+terms)).handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
377
public/js/clients/linkify-urls.js
vendored
377
public/js/clients/linkify-urls.js
vendored
@ -1 +1,376 @@
|
|||||||
(()=>{var e,t={2623:(e,t,r)=>{"use strict";e.exports=r(4666)},1886:(e,t)=>{"use strict";const r=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">"),n=e=>e.replace(/>/g,">").replace(/</g,"<").replace(/�?39;/g,"'").replace(/"/g,'"').replace(/&/g,"&");t.T=(e,...t)=>{if("string"==typeof e)return r(e);let n=e[0];for(const[o,a]of t.entries())n=n+r(String(a))+e[o+1];return n}},2395:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=r(1886);var o=r(2623);const a=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">");const i=new Set(o);function c({name:e="div",attributes:t={},html:r="",text:o}={}){if(r&&o)throw new Error("The `html` and `text` options are mutually exclusive");const c=o?function(e,...t){if("string"==typeof e)return a(e);let r=e[0];for(const[n,o]of t.entries())r=r+a(String(o))+e[n+1];return r}(o):r;let l=`<${e}${function(e){const t=[];for(let[r,o]of Object.entries(e)){if(!1===o)continue;Array.isArray(o)&&(o=o.join(" "));let e=(0,n.T)(r);!0!==o&&(e+=`="${(0,n.T)(String(o))}"`),t.push(e)}return t.length>0?" "+t.join(" "):""}(t)}>`;return i.has(e)||(l+=`${c}</${e}>`),l}const l=(e,t)=>c({name:"a",attributes:{href:"",...t.attributes,href:e},text:void 0===t.value?e:void 0,html:void 0===t.value?void 0:"function"==typeof t.value?t.value(e):t.value});function s(e,t){if("string"===(t={attributes:{},type:"string",...t}).type)return((e,t)=>e.replace(/((?<!\+)https?:\/\/(?:www\.)?(?:[-\w.]+?[.@][a-zA-Z\d]{2,}|localhost)(?:[-\w.:%+~#*$!?&/=@]*?(?:,(?!\s))*?)*)/g,(e=>l(e,t))))(e,t);if("dom"===t.type)return((e,t)=>{const r=document.createDocumentFragment();for(const[o,a]of Object.entries(e.split(/((?<!\+)https?:\/\/(?:www\.)?(?:[-\w.]+?[.@][a-zA-Z\d]{2,}|localhost)(?:[-\w.:%+~#*$!?&/=@]*?(?:,(?!\s))*?)*)/g)))o%2?r.append((n=l(a,t),document.createRange().createContextualFragment(n))):a.length>0&&r.append(a);var n;return r})(e,t);throw new TypeError("The type option must be either `dom` or `string`")}},4666:e=>{"use strict";e.exports=JSON.parse('["area","base","br","col","embed","hr","img","input","link","menuitem","meta","param","source","track","wbr"]')}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},e=n(2395),document.querySelectorAll("[data-ref=entity-terms]").forEach((function(t){"function"===e&&(t.innerHTML=e(t.innerText,{attributes:{target:"_blank",class:"text-primary"}}))}))})();
|
/******/ (() => { // webpackBootstrap
|
||||||
|
/******/ var __webpack_modules__ = ({
|
||||||
|
|
||||||
|
/***/ "./node_modules/html-tags/void.js":
|
||||||
|
/*!****************************************!*\
|
||||||
|
!*** ./node_modules/html-tags/void.js ***!
|
||||||
|
\****************************************/
|
||||||
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
module.exports = __webpack_require__(/*! ./html-tags-void.json */ "./node_modules/html-tags/html-tags-void.json");
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./node_modules/stringify-attributes/node_modules/escape-goat/index.js":
|
||||||
|
/*!*****************************************************************************!*\
|
||||||
|
!*** ./node_modules/stringify-attributes/node_modules/escape-goat/index.js ***!
|
||||||
|
\*****************************************************************************/
|
||||||
|
/***/ ((__unused_webpack_module, exports) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
|
||||||
|
const htmlEscape = string => string
|
||||||
|
.replace(/&/g, '&')
|
||||||
|
.replace(/"/g, '"')
|
||||||
|
.replace(/'/g, ''')
|
||||||
|
.replace(/</g, '<')
|
||||||
|
.replace(/>/g, '>');
|
||||||
|
|
||||||
|
const htmlUnescape = htmlString => htmlString
|
||||||
|
.replace(/>/g, '>')
|
||||||
|
.replace(/</g, '<')
|
||||||
|
.replace(/�?39;/g, '\'')
|
||||||
|
.replace(/"/g, '"')
|
||||||
|
.replace(/&/g, '&');
|
||||||
|
|
||||||
|
exports.htmlEscape = (strings, ...values) => {
|
||||||
|
if (typeof strings === 'string') {
|
||||||
|
return htmlEscape(strings);
|
||||||
|
}
|
||||||
|
|
||||||
|
let output = strings[0];
|
||||||
|
for (const [index, value] of values.entries()) {
|
||||||
|
output = output + htmlEscape(String(value)) + strings[index + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.htmlUnescape = (strings, ...values) => {
|
||||||
|
if (typeof strings === 'string') {
|
||||||
|
return htmlUnescape(strings);
|
||||||
|
}
|
||||||
|
|
||||||
|
let output = strings[0];
|
||||||
|
for (const [index, value] of values.entries()) {
|
||||||
|
output = output + htmlUnescape(String(value)) + strings[index + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./node_modules/create-html-element/index.js":
|
||||||
|
/*!***************************************************!*\
|
||||||
|
!*** ./node_modules/create-html-element/index.js ***!
|
||||||
|
\***************************************************/
|
||||||
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
__webpack_require__.r(__webpack_exports__);
|
||||||
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||||
|
/* harmony export */ "default": () => (/* binding */ createHtmlElement)
|
||||||
|
/* harmony export */ });
|
||||||
|
/* harmony import */ var stringify_attributes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! stringify-attributes */ "./node_modules/stringify-attributes/index.js");
|
||||||
|
/* harmony import */ var html_tags_void_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! html-tags/void.js */ "./node_modules/html-tags/void.js");
|
||||||
|
/* harmony import */ var escape_goat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! escape-goat */ "./node_modules/escape-goat/index.js");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const voidHtmlTags = new Set(html_tags_void_js__WEBPACK_IMPORTED_MODULE_1__);
|
||||||
|
|
||||||
|
function createHtmlElement(
|
||||||
|
{
|
||||||
|
name = 'div',
|
||||||
|
attributes = {},
|
||||||
|
html = '',
|
||||||
|
text,
|
||||||
|
} = {},
|
||||||
|
) {
|
||||||
|
if (html && text) {
|
||||||
|
throw new Error('The `html` and `text` options are mutually exclusive');
|
||||||
|
}
|
||||||
|
|
||||||
|
const content = text ? (0,escape_goat__WEBPACK_IMPORTED_MODULE_2__.htmlEscape)(text) : html;
|
||||||
|
let result = `<${name}${(0,stringify_attributes__WEBPACK_IMPORTED_MODULE_0__["default"])(attributes)}>`;
|
||||||
|
|
||||||
|
if (!voidHtmlTags.has(name)) {
|
||||||
|
result += `${content}</${name}>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./node_modules/escape-goat/index.js":
|
||||||
|
/*!*******************************************!*\
|
||||||
|
!*** ./node_modules/escape-goat/index.js ***!
|
||||||
|
\*******************************************/
|
||||||
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
__webpack_require__.r(__webpack_exports__);
|
||||||
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||||
|
/* harmony export */ "htmlEscape": () => (/* binding */ htmlEscape),
|
||||||
|
/* harmony export */ "htmlUnescape": () => (/* binding */ htmlUnescape)
|
||||||
|
/* harmony export */ });
|
||||||
|
const _htmlEscape = string => string
|
||||||
|
.replace(/&/g, '&')
|
||||||
|
.replace(/"/g, '"')
|
||||||
|
.replace(/'/g, ''')
|
||||||
|
.replace(/</g, '<')
|
||||||
|
.replace(/>/g, '>');
|
||||||
|
|
||||||
|
const _htmlUnescape = htmlString => htmlString
|
||||||
|
.replace(/>/g, '>')
|
||||||
|
.replace(/</g, '<')
|
||||||
|
.replace(/�?39;/g, '\'')
|
||||||
|
.replace(/"/g, '"')
|
||||||
|
.replace(/&/g, '&');
|
||||||
|
|
||||||
|
function htmlEscape(strings, ...values) {
|
||||||
|
if (typeof strings === 'string') {
|
||||||
|
return _htmlEscape(strings);
|
||||||
|
}
|
||||||
|
|
||||||
|
let output = strings[0];
|
||||||
|
for (const [index, value] of values.entries()) {
|
||||||
|
output = output + _htmlEscape(String(value)) + strings[index + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
function htmlUnescape(strings, ...values) {
|
||||||
|
if (typeof strings === 'string') {
|
||||||
|
return _htmlUnescape(strings);
|
||||||
|
}
|
||||||
|
|
||||||
|
let output = strings[0];
|
||||||
|
for (const [index, value] of values.entries()) {
|
||||||
|
output = output + _htmlUnescape(String(value)) + strings[index + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./node_modules/linkify-urls/index.js":
|
||||||
|
/*!********************************************!*\
|
||||||
|
!*** ./node_modules/linkify-urls/index.js ***!
|
||||||
|
\********************************************/
|
||||||
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
__webpack_require__.r(__webpack_exports__);
|
||||||
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||||
|
/* harmony export */ "default": () => (/* binding */ linkifyUrls)
|
||||||
|
/* harmony export */ });
|
||||||
|
/* harmony import */ var create_html_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! create-html-element */ "./node_modules/create-html-element/index.js");
|
||||||
|
|
||||||
|
|
||||||
|
// Capture the whole URL in group 1 to keep `String#split()` support
|
||||||
|
const urlRegex = () => (/((?<!\+)https?:\/\/(?:www\.)?(?:[-\w.]+?[.@][a-zA-Z\d]{2,}|localhost)(?:[-\w.:%+~#*$!?&/=@]*?(?:,(?!\s))*?)*)/g);
|
||||||
|
|
||||||
|
// Get `<a>` element as string
|
||||||
|
const linkify = (href, options) => (0,create_html_element__WEBPACK_IMPORTED_MODULE_0__["default"])({
|
||||||
|
name: 'a',
|
||||||
|
attributes: {
|
||||||
|
href: '',
|
||||||
|
...options.attributes,
|
||||||
|
href, // eslint-disable-line no-dupe-keys
|
||||||
|
},
|
||||||
|
text: typeof options.value === 'undefined' ? href : undefined,
|
||||||
|
html: typeof options.value === 'undefined' ? undefined
|
||||||
|
: (typeof options.value === 'function' ? options.value(href) : options.value),
|
||||||
|
});
|
||||||
|
|
||||||
|
// Get DOM node from HTML
|
||||||
|
const domify = html => document.createRange().createContextualFragment(html);
|
||||||
|
|
||||||
|
const getAsString = (string, options) => string.replace(urlRegex(), match => linkify(match, options));
|
||||||
|
|
||||||
|
const getAsDocumentFragment = (string, options) => {
|
||||||
|
const fragment = document.createDocumentFragment();
|
||||||
|
for (const [index, text] of Object.entries(string.split(urlRegex()))) {
|
||||||
|
if (index % 2) { // URLs are always in odd positions
|
||||||
|
fragment.append(domify(linkify(text, options)));
|
||||||
|
} else if (text.length > 0) {
|
||||||
|
fragment.append(text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fragment;
|
||||||
|
};
|
||||||
|
|
||||||
|
function linkifyUrls(string, options) {
|
||||||
|
options = {
|
||||||
|
attributes: {},
|
||||||
|
type: 'string',
|
||||||
|
...options,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (options.type === 'string') {
|
||||||
|
return getAsString(string, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.type === 'dom') {
|
||||||
|
return getAsDocumentFragment(string, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new TypeError('The type option must be either `dom` or `string`');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./node_modules/stringify-attributes/index.js":
|
||||||
|
/*!****************************************************!*\
|
||||||
|
!*** ./node_modules/stringify-attributes/index.js ***!
|
||||||
|
\****************************************************/
|
||||||
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
__webpack_require__.r(__webpack_exports__);
|
||||||
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||||
|
/* harmony export */ "default": () => (/* binding */ stringifyAttributes)
|
||||||
|
/* harmony export */ });
|
||||||
|
/* harmony import */ var escape_goat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! escape-goat */ "./node_modules/stringify-attributes/node_modules/escape-goat/index.js");
|
||||||
|
|
||||||
|
|
||||||
|
function stringifyAttributes(attributes) {
|
||||||
|
const handledAttributes = [];
|
||||||
|
|
||||||
|
for (let [key, value] of Object.entries(attributes)) {
|
||||||
|
if (value === false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
value = value.join(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
let attribute = (0,escape_goat__WEBPACK_IMPORTED_MODULE_0__.htmlEscape)(key);
|
||||||
|
|
||||||
|
if (value !== true) {
|
||||||
|
attribute += `="${(0,escape_goat__WEBPACK_IMPORTED_MODULE_0__.htmlEscape)(String(value))}"`;
|
||||||
|
}
|
||||||
|
|
||||||
|
handledAttributes.push(attribute);
|
||||||
|
}
|
||||||
|
|
||||||
|
return handledAttributes.length > 0 ? ' ' + handledAttributes.join(' ') : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./node_modules/html-tags/html-tags-void.json":
|
||||||
|
/*!****************************************************!*\
|
||||||
|
!*** ./node_modules/html-tags/html-tags-void.json ***!
|
||||||
|
\****************************************************/
|
||||||
|
/***/ ((module) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
module.exports = JSON.parse('["area","base","br","col","embed","hr","img","input","link","menuitem","meta","param","source","track","wbr"]');
|
||||||
|
|
||||||
|
/***/ })
|
||||||
|
|
||||||
|
/******/ });
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ // The module cache
|
||||||
|
/******/ var __webpack_module_cache__ = {};
|
||||||
|
/******/
|
||||||
|
/******/ // The require function
|
||||||
|
/******/ function __webpack_require__(moduleId) {
|
||||||
|
/******/ // Check if module is in cache
|
||||||
|
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||||||
|
/******/ if (cachedModule !== undefined) {
|
||||||
|
/******/ return cachedModule.exports;
|
||||||
|
/******/ }
|
||||||
|
/******/ // Create a new module (and put it into the cache)
|
||||||
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||||||
|
/******/ // no module.id needed
|
||||||
|
/******/ // no module.loaded needed
|
||||||
|
/******/ exports: {}
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Execute the module function
|
||||||
|
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||||
|
/******/
|
||||||
|
/******/ // Return the exports of the module
|
||||||
|
/******/ return module.exports;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ /* webpack/runtime/define property getters */
|
||||||
|
/******/ (() => {
|
||||||
|
/******/ // define getter functions for harmony exports
|
||||||
|
/******/ __webpack_require__.d = (exports, definition) => {
|
||||||
|
/******/ for(var key in definition) {
|
||||||
|
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
||||||
|
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ };
|
||||||
|
/******/ })();
|
||||||
|
/******/
|
||||||
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||||
|
/******/ (() => {
|
||||||
|
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
||||||
|
/******/ })();
|
||||||
|
/******/
|
||||||
|
/******/ /* webpack/runtime/make namespace object */
|
||||||
|
/******/ (() => {
|
||||||
|
/******/ // define __esModule on exports
|
||||||
|
/******/ __webpack_require__.r = (exports) => {
|
||||||
|
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||||
|
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||||
|
/******/ }
|
||||||
|
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
/******/ };
|
||||||
|
/******/ })();
|
||||||
|
/******/
|
||||||
|
/************************************************************************/
|
||||||
|
var __webpack_exports__ = {};
|
||||||
|
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
||||||
|
(() => {
|
||||||
|
/*!**********************************************!*\
|
||||||
|
!*** ./resources/js/clients/linkify-urls.js ***!
|
||||||
|
\**********************************************/
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var linkifyUrls = __webpack_require__(/*! linkify-urls */ "./node_modules/linkify-urls/index.js");
|
||||||
|
|
||||||
|
document.querySelectorAll('[data-ref=entity-terms]').forEach(function (text) {
|
||||||
|
if (linkifyUrls === 'function') {
|
||||||
|
text.innerHTML = linkifyUrls(text.innerText, {
|
||||||
|
attributes: {
|
||||||
|
target: '_blank',
|
||||||
|
"class": 'text-primary'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
|
/******/ })()
|
||||||
|
;
|
@ -1,2 +1,95 @@
|
|||||||
/*! For license information please see authorize-authorize-card.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var a=0;a<t.length;a++){var r=t[a];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var t=function(){function t(e,a){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.publicKey=e,this.loginId=a,this.cardHolderName=document.getElementById("cardholder_name"),this.cardButton=document.getElementById("card_button")}var a,r,n;return a=t,(r=[{key:"handleAuthorization",value:function(){var e=$("#my-card"),t={};t.clientKey=this.publicKey,t.apiLoginID=this.loginId;var a={};a.cardNumber=e.CardJs("cardNumber").replace(/[^\d]/g,""),a.month=e.CardJs("expiryMonth").replace(/[^\d]/g,""),a.year=e.CardJs("expiryYear").replace(/[^\d]/g,""),a.cardCode=document.getElementById("cvv").value.replace(/[^\d]/g,"");var r={};return r.authData=t,r.cardData=a,document.getElementById("card_button").disabled=!0,document.querySelector("#card_button > svg").classList.remove("hidden"),document.querySelector("#card_button > span").classList.add("hidden"),Accept.dispatchData(r,this.responseHandler),!1}},{key:"responseHandler",value:function(e){return"Error"===e.messages.resultCode?($("#errors").show().html("<p>"+e.messages.message[0].code+": "+e.messages.message[0].text+"</p>"),document.getElementById("card_button").disabled=!1,document.querySelector("#card_button > svg").classList.add("hidden"),document.querySelector("#card_button > span").classList.remove("hidden")):"Ok"===e.messages.resultCode&&(document.getElementById("dataDescriptor").value=e.opaqueData.dataDescriptor,document.getElementById("dataValue").value=e.opaqueData.dataValue,document.getElementById("server_response").submit()),!1}},{key:"handle",value:function(){var e=this;return this.cardButton.addEventListener("click",(function(){e.cardButton.disabled=!e.cardButton.disabled,e.handleAuthorization()})),this}}])&&e(a.prototype,r),n&&e(a,n),Object.defineProperty(a,"prototype",{writable:!1}),t}();new t(document.querySelector('meta[name="authorize-public-key"]').content,document.querySelector('meta[name="authorize-login-id"]').content).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!**************************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payment_methods/authorize-authorize-card.js ***!
|
||||||
|
\**************************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var AuthorizeAuthorizeCard = /*#__PURE__*/function () {
|
||||||
|
function AuthorizeAuthorizeCard(publicKey, loginId) {
|
||||||
|
_classCallCheck(this, AuthorizeAuthorizeCard);
|
||||||
|
|
||||||
|
this.publicKey = publicKey;
|
||||||
|
this.loginId = loginId;
|
||||||
|
this.cardHolderName = document.getElementById("cardholder_name");
|
||||||
|
this.cardButton = document.getElementById("card_button");
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(AuthorizeAuthorizeCard, [{
|
||||||
|
key: "handleAuthorization",
|
||||||
|
value: function handleAuthorization() {
|
||||||
|
var myCard = $('#my-card');
|
||||||
|
var authData = {};
|
||||||
|
authData.clientKey = this.publicKey;
|
||||||
|
authData.apiLoginID = this.loginId;
|
||||||
|
var cardData = {};
|
||||||
|
cardData.cardNumber = myCard.CardJs('cardNumber').replace(/[^\d]/g, '');
|
||||||
|
cardData.month = myCard.CardJs('expiryMonth').replace(/[^\d]/g, '');
|
||||||
|
cardData.year = myCard.CardJs('expiryYear').replace(/[^\d]/g, '');
|
||||||
|
cardData.cardCode = document.getElementById("cvv").value.replace(/[^\d]/g, '');
|
||||||
|
;
|
||||||
|
var secureData = {};
|
||||||
|
secureData.authData = authData;
|
||||||
|
secureData.cardData = cardData;
|
||||||
|
document.getElementById('card_button').disabled = true;
|
||||||
|
document.querySelector('#card_button > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#card_button > span').classList.add('hidden');
|
||||||
|
Accept.dispatchData(secureData, this.responseHandler);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "responseHandler",
|
||||||
|
value: function responseHandler(response) {
|
||||||
|
if (response.messages.resultCode === "Error") {
|
||||||
|
var i = 0;
|
||||||
|
var $errors = $('#errors'); // get the reference of the div
|
||||||
|
|
||||||
|
$errors.show().html("<p>" + response.messages.message[i].code + ": " + response.messages.message[i].text + "</p>");
|
||||||
|
document.getElementById('card_button').disabled = false;
|
||||||
|
document.querySelector('#card_button > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#card_button > span').classList.remove('hidden');
|
||||||
|
} else if (response.messages.resultCode === "Ok") {
|
||||||
|
document.getElementById("dataDescriptor").value = response.opaqueData.dataDescriptor;
|
||||||
|
document.getElementById("dataValue").value = response.opaqueData.dataValue;
|
||||||
|
document.getElementById("server_response").submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
this.cardButton.addEventListener("click", function () {
|
||||||
|
_this.cardButton.disabled = !_this.cardButton.disabled;
|
||||||
|
|
||||||
|
_this.handleAuthorization();
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return AuthorizeAuthorizeCard;
|
||||||
|
}();
|
||||||
|
|
||||||
|
var publicKey = document.querySelector('meta[name="authorize-public-key"]').content;
|
||||||
|
var loginId = document.querySelector('meta[name="authorize-login-id"]').content;
|
||||||
|
/** @handle */
|
||||||
|
|
||||||
|
new AuthorizeAuthorizeCard(publicKey, loginId).handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
@ -1,2 +1,59 @@
|
|||||||
/*! For license information please see authorize-checkout-card.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(new(function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.button=document.querySelector("#pay-button")}var n,r,a;return n=t,(r=[{key:"init",value:function(){this.frames=Frames.init(document.querySelector("meta[name=public-key]").content)}},{key:"handle",value:function(){var e=this;this.init(),Frames.addEventHandler(Frames.Events.CARD_VALIDATION_CHANGED,(function(t){e.button.disabled=!Frames.isCardValid()})),Frames.addEventHandler(Frames.Events.CARD_TOKENIZED,(function(e){document.querySelector('input[name="gateway_response"]').value=JSON.stringify(e),document.getElementById("server_response").submit()})),document.querySelector("#authorization-form").addEventListener("submit",(function(t){e.button.disabled=!0,t.preventDefault(),Frames.submitCard()}))}}])&&e(n.prototype,r),a&&e(n,a),Object.defineProperty(n,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*************************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payment_methods/authorize-checkout-card.js ***!
|
||||||
|
\*************************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var CheckoutCreditCardAuthorization = /*#__PURE__*/function () {
|
||||||
|
function CheckoutCreditCardAuthorization() {
|
||||||
|
_classCallCheck(this, CheckoutCreditCardAuthorization);
|
||||||
|
|
||||||
|
this.button = document.querySelector('#pay-button');
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(CheckoutCreditCardAuthorization, [{
|
||||||
|
key: "init",
|
||||||
|
value: function init() {
|
||||||
|
this.frames = Frames.init(document.querySelector('meta[name=public-key]').content);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
this.init();
|
||||||
|
Frames.addEventHandler(Frames.Events.CARD_VALIDATION_CHANGED, function (event) {
|
||||||
|
_this.button.disabled = !Frames.isCardValid();
|
||||||
|
});
|
||||||
|
Frames.addEventHandler(Frames.Events.CARD_TOKENIZED, function (event) {
|
||||||
|
document.querySelector('input[name="gateway_response"]').value = JSON.stringify(event);
|
||||||
|
document.getElementById('server_response').submit();
|
||||||
|
});
|
||||||
|
document.querySelector('#authorization-form').addEventListener('submit', function (event) {
|
||||||
|
_this.button.disabled = true;
|
||||||
|
event.preventDefault();
|
||||||
|
Frames.submitCard();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return CheckoutCreditCardAuthorization;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new CheckoutCreditCardAuthorization().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
@ -1,2 +1,69 @@
|
|||||||
/*! For license information please see braintree-ach.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e;window.braintree.client.create({authorization:null===(e=document.querySelector('meta[name="client-token"]'))||void 0===e?void 0:e.content}).then((function(e){return braintree.usBankAccount.create({client:e})})).then((function(e){var t;null===(t=document.getElementById("authorize-bank-account"))||void 0===t||t.addEventListener("click",(function(t){t.target.parentElement.disabled=!0,document.getElementById("errors").hidden=!0,document.getElementById("errors").textContent="";var n={accountNumber:document.getElementById("account-number").value,routingNumber:document.getElementById("routing-number").value,accountType:document.querySelector('input[name="account-type"]:checked').value,ownershipType:document.querySelector('input[name="ownership-type"]:checked').value,billingAddress:{streetAddress:document.getElementById("billing-street-address").value,extendedAddress:document.getElementById("billing-extended-address").value,locality:document.getElementById("billing-locality").value,region:document.getElementById("billing-region").value,postalCode:document.getElementById("billing-postal-code").value}};if("personal"===n.ownershipType){var o=document.getElementById("account-holder-name").value.split(" ",2);n.firstName=o[0],n.lastName=o[1]}else n.businessName=document.getElementById("account-holder-name").value;e.tokenize({bankDetails:n,mandateText:'By clicking ["Checkout"], I authorize Braintree, a service of PayPal, on behalf of [your business name here] (i) to verify my bank account information using bank information and consumer reports and (ii) to debit my bank account.'}).then((function(e){document.querySelector("input[name=nonce]").value=e.nonce,document.getElementById("server_response").submit()})).catch((function(e){t.target.parentElement.disabled=!1,document.getElementById("errors").textContent="".concat(e.details.originalError.message," ").concat(e.details.originalError.details.originalError[0].message),document.getElementById("errors").hidden=!1}))}))})).catch((function(e){document.getElementById("errors").textContent=e.message,document.getElementById("errors").hidden=!1}))})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payment_methods/braintree-ach.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
var _document$querySelect;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
window.braintree.client.create({
|
||||||
|
authorization: (_document$querySelect = document.querySelector('meta[name="client-token"]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.content
|
||||||
|
}).then(function (clientInstance) {
|
||||||
|
return braintree.usBankAccount.create({
|
||||||
|
client: clientInstance
|
||||||
|
});
|
||||||
|
}).then(function (usBankAccountInstance) {
|
||||||
|
var _document$getElementB;
|
||||||
|
|
||||||
|
(_document$getElementB = document.getElementById('authorize-bank-account')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.addEventListener('click', function (e) {
|
||||||
|
e.target.parentElement.disabled = true;
|
||||||
|
document.getElementById('errors').hidden = true;
|
||||||
|
document.getElementById('errors').textContent = '';
|
||||||
|
var bankDetails = {
|
||||||
|
accountNumber: document.getElementById('account-number').value,
|
||||||
|
routingNumber: document.getElementById('routing-number').value,
|
||||||
|
accountType: document.querySelector('input[name="account-type"]:checked').value,
|
||||||
|
ownershipType: document.querySelector('input[name="ownership-type"]:checked').value,
|
||||||
|
billingAddress: {
|
||||||
|
streetAddress: document.getElementById('billing-street-address').value,
|
||||||
|
extendedAddress: document.getElementById('billing-extended-address').value,
|
||||||
|
locality: document.getElementById('billing-locality').value,
|
||||||
|
region: document.getElementById('billing-region').value,
|
||||||
|
postalCode: document.getElementById('billing-postal-code').value
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (bankDetails.ownershipType === 'personal') {
|
||||||
|
var name = document.getElementById('account-holder-name').value.split(' ', 2);
|
||||||
|
bankDetails.firstName = name[0];
|
||||||
|
bankDetails.lastName = name[1];
|
||||||
|
} else {
|
||||||
|
bankDetails.businessName = document.getElementById('account-holder-name').value;
|
||||||
|
}
|
||||||
|
|
||||||
|
usBankAccountInstance.tokenize({
|
||||||
|
bankDetails: bankDetails,
|
||||||
|
mandateText: 'By clicking ["Checkout"], I authorize Braintree, a service of PayPal, on behalf of [your business name here] (i) to verify my bank account information using bank information and consumer reports and (ii) to debit my bank account.'
|
||||||
|
}).then(function (payload) {
|
||||||
|
document.querySelector('input[name=nonce]').value = payload.nonce;
|
||||||
|
document.getElementById('server_response').submit();
|
||||||
|
})["catch"](function (error) {
|
||||||
|
e.target.parentElement.disabled = false;
|
||||||
|
document.getElementById('errors').textContent = "".concat(error.details.originalError.message, " ").concat(error.details.originalError.details.originalError[0].message);
|
||||||
|
document.getElementById('errors').hidden = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})["catch"](function (err) {
|
||||||
|
document.getElementById('errors').textContent = err.message;
|
||||||
|
document.getElementById('errors').hidden = false;
|
||||||
|
});
|
||||||
|
/******/ })()
|
||||||
|
;
|
@ -1,2 +1,77 @@
|
|||||||
/*! For license information please see wepay-bank-account.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}var n=function(){function n(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,n)}var t,o,r;return t=n,(o=[{key:"initializeWePay",value:function(){var e,n=null===(e=document.querySelector('meta[name="wepay-environment"]'))||void 0===e?void 0:e.content;return WePay.set_endpoint("staging"===n?"stage":"production"),this}},{key:"showBankPopup",value:function(){var e,n;WePay.bank_account.create({client_id:null===(e=document.querySelector("meta[name=wepay-client-id]"))||void 0===e?void 0:e.content,email:null===(n=document.querySelector("meta[name=contact-email]"))||void 0===n?void 0:n.content,options:{avoidMicrodeposits:!0}},(function(e){e.error?(errors.textContent="",errors.textContent=e.error_description,errors.hidden=!1):(document.querySelector('input[name="bank_account_id"]').value=e.bank_account_id,document.getElementById("server_response").submit())}),(function(e){e.error&&(errors.textContent="",errors.textContent=e.error_description,errors.hidden=!1)}))}},{key:"handle",value:function(){this.initializeWePay().showBankPopup()}}])&&e(t.prototype,o),r&&e(t,r),Object.defineProperty(t,"prototype",{writable:!1}),n}();document.addEventListener("DOMContentLoaded",(function(){(new n).handle()}))})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payment_methods/wepay-bank-account.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var WePayBank = /*#__PURE__*/function () {
|
||||||
|
function WePayBank() {
|
||||||
|
_classCallCheck(this, WePayBank);
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(WePayBank, [{
|
||||||
|
key: "initializeWePay",
|
||||||
|
value: function initializeWePay() {
|
||||||
|
var _document$querySelect;
|
||||||
|
|
||||||
|
var environment = (_document$querySelect = document.querySelector('meta[name="wepay-environment"]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.content;
|
||||||
|
WePay.set_endpoint(environment === 'staging' ? 'stage' : 'production');
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "showBankPopup",
|
||||||
|
value: function showBankPopup() {
|
||||||
|
var _document$querySelect2, _document$querySelect3;
|
||||||
|
|
||||||
|
WePay.bank_account.create({
|
||||||
|
client_id: (_document$querySelect2 = document.querySelector('meta[name=wepay-client-id]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content,
|
||||||
|
email: (_document$querySelect3 = document.querySelector('meta[name=contact-email]')) === null || _document$querySelect3 === void 0 ? void 0 : _document$querySelect3.content,
|
||||||
|
options: {
|
||||||
|
avoidMicrodeposits: true
|
||||||
|
}
|
||||||
|
}, function (data) {
|
||||||
|
if (data.error) {
|
||||||
|
errors.textContent = '';
|
||||||
|
errors.textContent = data.error_description;
|
||||||
|
errors.hidden = false;
|
||||||
|
} else {
|
||||||
|
document.querySelector('input[name="bank_account_id"]').value = data.bank_account_id;
|
||||||
|
document.getElementById('server_response').submit();
|
||||||
|
}
|
||||||
|
}, function (data) {
|
||||||
|
if (data.error) {
|
||||||
|
errors.textContent = '';
|
||||||
|
errors.textContent = data.error_description;
|
||||||
|
errors.hidden = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
this.initializeWePay().showBankPopup();
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return WePayBank;
|
||||||
|
}();
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
new WePayBank().handle();
|
||||||
|
});
|
||||||
|
/******/ })()
|
||||||
|
;
|
@ -1,2 +1,137 @@
|
|||||||
/*! For license information please see authorize-credit-card-payment.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var n=function(){function n(e,a){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),t(this,"handleAuthorization",(function(){var e=$("#my-card"),t={};t.clientKey=r.publicKey,t.apiLoginID=r.loginId;var n={};n.cardNumber=e.CardJs("cardNumber").replace(/[^\d]/g,""),n.month=e.CardJs("expiryMonth").replace(/[^\d]/g,""),n.year=e.CardJs("expiryYear").replace(/[^\d]/g,""),n.cardCode=document.getElementById("cvv").value.replace(/[^\d]/g,"");var a={};return a.authData=t,a.cardData=n,document.getElementById("pay-now")&&(document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden")),Accept.dispatchData(a,r.responseHandler),!1})),t(this,"responseHandler",(function(e){if("Error"===e.messages.resultCode){$("#errors").show().html("<p>"+e.messages.message[0].code+": "+e.messages.message[0].text+"</p>"),document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden")}else if("Ok"===e.messages.resultCode){document.getElementById("dataDescriptor").value=e.opaqueData.dataDescriptor,document.getElementById("dataValue").value=e.opaqueData.dataValue;var t=document.querySelector("input[name=token-billing-checkbox]:checked");t&&(document.getElementById("store_card").value=t.value),document.getElementById("server_response").submit()}return!1})),t(this,"handle",(function(){Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach((function(e){return e.addEventListener("click",(function(e){document.getElementById("save-card--container").style.display="none",document.getElementById("authorize--credit-card-container").style.display="none",document.getElementById("token").value=e.target.dataset.token}))}));var e=document.getElementById("toggle-payment-with-credit-card");e&&e.addEventListener("click",(function(){document.getElementById("save-card--container").style.display="grid",document.getElementById("authorize--credit-card-container").style.display="flex",document.getElementById("token").value=null}));var t=document.getElementById("pay-now");return t&&t.addEventListener("click",(function(e){var t=document.getElementById("token");t.value?r.handlePayNowAction(t.value):r.handleAuthorization()})),r})),this.publicKey=e,this.loginId=a,this.cardHolderName=document.getElementById("cardholder_name")}var a,r,o;return a=n,(r=[{key:"handlePayNowAction",value:function(e){document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),document.getElementById("token").value=e,document.getElementById("server_response").submit()}}])&&e(a.prototype,r),o&&e(a,o),Object.defineProperty(a,"prototype",{writable:!1}),n}();new n(document.querySelector('meta[name="authorize-public-key"]').content,document.querySelector('meta[name="authorize-login-id"]').content).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!************************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/authorize-credit-card-payment.js ***!
|
||||||
|
\************************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var AuthorizeAuthorizeCard = /*#__PURE__*/function () {
|
||||||
|
function AuthorizeAuthorizeCard(publicKey, loginId) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, AuthorizeAuthorizeCard);
|
||||||
|
|
||||||
|
_defineProperty(this, "handleAuthorization", function () {
|
||||||
|
var myCard = $('#my-card');
|
||||||
|
var authData = {};
|
||||||
|
authData.clientKey = _this.publicKey;
|
||||||
|
authData.apiLoginID = _this.loginId;
|
||||||
|
var cardData = {};
|
||||||
|
cardData.cardNumber = myCard.CardJs('cardNumber').replace(/[^\d]/g, '');
|
||||||
|
cardData.month = myCard.CardJs('expiryMonth').replace(/[^\d]/g, '');
|
||||||
|
cardData.year = myCard.CardJs('expiryYear').replace(/[^\d]/g, '');
|
||||||
|
cardData.cardCode = document.getElementById("cvv").value.replace(/[^\d]/g, '');
|
||||||
|
var secureData = {};
|
||||||
|
secureData.authData = authData;
|
||||||
|
secureData.cardData = cardData; // If using banking information instead of card information,
|
||||||
|
// send the bankData object instead of the cardData object.
|
||||||
|
//
|
||||||
|
// secureData.bankData = bankData;
|
||||||
|
|
||||||
|
var payNowButton = document.getElementById('pay-now');
|
||||||
|
|
||||||
|
if (payNowButton) {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
Accept.dispatchData(secureData, _this.responseHandler);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "responseHandler", function (response) {
|
||||||
|
if (response.messages.resultCode === "Error") {
|
||||||
|
var i = 0;
|
||||||
|
var $errors = $('#errors'); // get the reference of the div
|
||||||
|
|
||||||
|
$errors.show().html("<p>" + response.messages.message[i].code + ": " + response.messages.message[i].text + "</p>");
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||||
|
} else if (response.messages.resultCode === "Ok") {
|
||||||
|
document.getElementById("dataDescriptor").value = response.opaqueData.dataDescriptor;
|
||||||
|
document.getElementById("dataValue").value = response.opaqueData.dataValue;
|
||||||
|
var storeCard = document.querySelector('input[name=token-billing-checkbox]:checked');
|
||||||
|
|
||||||
|
if (storeCard) {
|
||||||
|
document.getElementById("store_card").value = storeCard.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById("server_response").submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) {
|
||||||
|
return element.addEventListener('click', function (e) {
|
||||||
|
document.getElementById('save-card--container').style.display = 'none';
|
||||||
|
document.getElementById('authorize--credit-card-container').style.display = 'none';
|
||||||
|
document.getElementById('token').value = e.target.dataset.token;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
var payWithCreditCardToggle = document.getElementById('toggle-payment-with-credit-card');
|
||||||
|
|
||||||
|
if (payWithCreditCardToggle) {
|
||||||
|
payWithCreditCardToggle.addEventListener('click', function () {
|
||||||
|
document.getElementById('save-card--container').style.display = 'grid';
|
||||||
|
document.getElementById('authorize--credit-card-container').style.display = 'flex';
|
||||||
|
document.getElementById('token').value = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var payNowButton = document.getElementById('pay-now');
|
||||||
|
|
||||||
|
if (payNowButton) {
|
||||||
|
payNowButton.addEventListener('click', function (e) {
|
||||||
|
var token = document.getElementById('token');
|
||||||
|
token.value ? _this.handlePayNowAction(token.value) : _this.handleAuthorization();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
this.publicKey = publicKey;
|
||||||
|
this.loginId = loginId;
|
||||||
|
this.cardHolderName = document.getElementById("cardholder_name");
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(AuthorizeAuthorizeCard, [{
|
||||||
|
key: "handlePayNowAction",
|
||||||
|
value: function handlePayNowAction(token_hashed_id) {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
document.getElementById("token").value = token_hashed_id;
|
||||||
|
document.getElementById("server_response").submit();
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return AuthorizeAuthorizeCard;
|
||||||
|
}();
|
||||||
|
|
||||||
|
var publicKey = document.querySelector('meta[name="authorize-public-key"]').content;
|
||||||
|
var loginId = document.querySelector('meta[name="authorize-login-id"]').content;
|
||||||
|
/** @handle */
|
||||||
|
|
||||||
|
new AuthorizeAuthorizeCard(publicKey, loginId).handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
149
public/js/clients/payments/braintree-credit-card.js
vendored
149
public/js/clients/payments/braintree-credit-card.js
vendored
@ -1,2 +1,147 @@
|
|||||||
/*! For license information please see braintree-credit-card.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(new(function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t)}var n,a,r;return n=t,(a=[{key:"initBraintreeDataCollector",value:function(){window.braintree.client.create({authorization:document.querySelector("meta[name=client-token]").content},(function(e,t){window.braintree.dataCollector.create({client:t,paypal:!0},(function(e,t){e||(document.querySelector("input[name=client-data]").value=t.deviceData)}))}))}},{key:"mountBraintreePaymentWidget",value:function(){window.braintree.dropin.create({authorization:document.querySelector("meta[name=client-token]").content,container:"#dropin-container",threeDSecure:"true"===document.querySelector("input[name=threeds_enable]").value.toLowerCase()},this.handleCallback)}},{key:"handleCallback",value:function(e,t){if(e)console.error(e);else{var n=document.getElementById("pay-now");params=JSON.parse(document.querySelector("input[name=threeds]").value),n.addEventListener("click",(function(){t.requestPaymentMethod({threeDSecure:{challengeRequested:!0,amount:params.amount,email:params.email,billingAddress:{givenName:params.billingAddress.givenName,surname:params.billingAddress.surname,phoneNumber:params.billingAddress.phoneNumber,streetAddress:params.billingAddress.streetAddress,extendedAddress:params.billingAddress.extendedAddress,locality:params.billingAddress.locality,region:params.billingAddress.region,postalCode:params.billingAddress.postalCode,countryCodeAlpha2:params.billingAddress.countryCodeAlpha2}}},(function(e,t){if(e)return console.log(e),dropin.clearSelectedPaymentMethod(),void alert("There was a problem verifying this card, please contact your merchant");if("true"===document.querySelector("input[name=threeds_enable]").value&&!t.liabilityShifted)return console.log("Liability did not shift",t),void alert("There was a problem verifying this card, please contact your merchant");n.disabled=!0,n.querySelector("svg").classList.remove("hidden"),n.querySelector("span").classList.add("hidden"),document.querySelector("input[name=gateway_response]").value=JSON.stringify(t);var a=document.querySelector('input[name="token-billing-checkbox"]:checked');a&&(document.querySelector('input[name="store_card"]').value=a.value),document.getElementById("server-response").submit()}))}))}}},{key:"handle",value:function(){this.initBraintreeDataCollector(),this.mountBraintreePaymentWidget(),Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach((function(e){return e.addEventListener("click",(function(e){document.getElementById("dropin-container").classList.add("hidden"),document.getElementById("save-card--container").style.display="none",document.querySelector("input[name=token]").value=e.target.dataset.token,document.getElementById("pay-now-with-token").classList.remove("hidden"),document.getElementById("pay-now").classList.add("hidden")}))})),document.getElementById("toggle-payment-with-credit-card").addEventListener("click",(function(e){document.getElementById("dropin-container").classList.remove("hidden"),document.getElementById("save-card--container").style.display="grid",document.querySelector("input[name=token]").value="",document.getElementById("pay-now-with-token").classList.add("hidden"),document.getElementById("pay-now").classList.remove("hidden")}));var e=document.getElementById("pay-now-with-token");e.addEventListener("click",(function(t){e.disabled=!0,e.querySelector("svg").classList.remove("hidden"),e.querySelector("span").classList.add("hidden"),document.getElementById("server-response").submit()}))}}])&&e(n.prototype,a),r&&e(n,r),Object.defineProperty(n,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!****************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/braintree-credit-card.js ***!
|
||||||
|
\****************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var BraintreeCreditCard = /*#__PURE__*/function () {
|
||||||
|
function BraintreeCreditCard() {
|
||||||
|
_classCallCheck(this, BraintreeCreditCard);
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(BraintreeCreditCard, [{
|
||||||
|
key: "initBraintreeDataCollector",
|
||||||
|
value: function initBraintreeDataCollector() {
|
||||||
|
window.braintree.client.create({
|
||||||
|
authorization: document.querySelector('meta[name=client-token]').content
|
||||||
|
}, function (err, clientInstance) {
|
||||||
|
window.braintree.dataCollector.create({
|
||||||
|
client: clientInstance,
|
||||||
|
paypal: true
|
||||||
|
}, function (err, dataCollectorInstance) {
|
||||||
|
if (err) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('input[name=client-data]').value = dataCollectorInstance.deviceData;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "mountBraintreePaymentWidget",
|
||||||
|
value: function mountBraintreePaymentWidget() {
|
||||||
|
window.braintree.dropin.create({
|
||||||
|
authorization: document.querySelector('meta[name=client-token]').content,
|
||||||
|
container: '#dropin-container',
|
||||||
|
threeDSecure: document.querySelector('input[name=threeds_enable]').value.toLowerCase() === 'true'
|
||||||
|
}, this.handleCallback);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handleCallback",
|
||||||
|
value: function handleCallback(error, dropinInstance) {
|
||||||
|
if (error) {
|
||||||
|
console.error(error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var payNow = document.getElementById('pay-now');
|
||||||
|
params = JSON.parse(document.querySelector('input[name=threeds]').value);
|
||||||
|
payNow.addEventListener('click', function () {
|
||||||
|
dropinInstance.requestPaymentMethod({
|
||||||
|
threeDSecure: {
|
||||||
|
challengeRequested: true,
|
||||||
|
amount: params.amount,
|
||||||
|
email: params.email,
|
||||||
|
billingAddress: {
|
||||||
|
givenName: params.billingAddress.givenName,
|
||||||
|
// ASCII-printable characters required, else will throw a validation error
|
||||||
|
surname: params.billingAddress.surname,
|
||||||
|
// ASCII-printable characters required, else will throw a validation error
|
||||||
|
phoneNumber: params.billingAddress.phoneNumber,
|
||||||
|
streetAddress: params.billingAddress.streetAddress,
|
||||||
|
extendedAddress: params.billingAddress.extendedAddress,
|
||||||
|
locality: params.billingAddress.locality,
|
||||||
|
region: params.billingAddress.region,
|
||||||
|
postalCode: params.billingAddress.postalCode,
|
||||||
|
countryCodeAlpha2: params.billingAddress.countryCodeAlpha2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, function (err, payload) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
dropin.clearSelectedPaymentMethod();
|
||||||
|
alert("There was a problem verifying this card, please contact your merchant");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (document.querySelector('input[name=threeds_enable]').value === 'true' && !payload.liabilityShifted) {
|
||||||
|
console.log('Liability did not shift', payload);
|
||||||
|
alert("There was a problem verifying this card, please contact your merchant");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
payNow.disabled = true;
|
||||||
|
payNow.querySelector('svg').classList.remove('hidden');
|
||||||
|
payNow.querySelector('span').classList.add('hidden');
|
||||||
|
document.querySelector('input[name=gateway_response]').value = JSON.stringify(payload);
|
||||||
|
var tokenBillingCheckbox = document.querySelector('input[name="token-billing-checkbox"]:checked');
|
||||||
|
|
||||||
|
if (tokenBillingCheckbox) {
|
||||||
|
document.querySelector('input[name="store_card"]').value = tokenBillingCheckbox.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
this.initBraintreeDataCollector();
|
||||||
|
this.mountBraintreePaymentWidget();
|
||||||
|
Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) {
|
||||||
|
return element.addEventListener('click', function (element) {
|
||||||
|
document.getElementById('dropin-container').classList.add('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'none';
|
||||||
|
document.querySelector('input[name=token]').value = element.target.dataset.token;
|
||||||
|
document.getElementById('pay-now-with-token').classList.remove('hidden');
|
||||||
|
document.getElementById('pay-now').classList.add('hidden');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
document.getElementById('toggle-payment-with-credit-card').addEventListener('click', function (element) {
|
||||||
|
document.getElementById('dropin-container').classList.remove('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'grid';
|
||||||
|
document.querySelector('input[name=token]').value = "";
|
||||||
|
document.getElementById('pay-now-with-token').classList.add('hidden');
|
||||||
|
document.getElementById('pay-now').classList.remove('hidden');
|
||||||
|
});
|
||||||
|
var payNowWithToken = document.getElementById('pay-now-with-token');
|
||||||
|
payNowWithToken.addEventListener('click', function (element) {
|
||||||
|
payNowWithToken.disabled = true;
|
||||||
|
payNowWithToken.querySelector('svg').classList.remove('hidden');
|
||||||
|
payNowWithToken.querySelector('span').classList.add('hidden');
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return BraintreeCreditCard;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new BraintreeCreditCard().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
132
public/js/clients/payments/braintree-paypal.js
vendored
132
public/js/clients/payments/braintree-paypal.js
vendored
@ -1,2 +1,130 @@
|
|||||||
/*! For license information please see braintree-paypal.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(new(function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t)}var n,a,o;return n=t,o=[{key:"getPaymentDetails",value:function(){return{flow:"vault"}}},{key:"handleErrorMessage",value:function(e){var t=document.getElementById("errors");t.innerText=e,t.hidden=!1}}],(a=[{key:"initBraintreeDataCollector",value:function(){window.braintree.client.create({authorization:document.querySelector("meta[name=client-token]").content},(function(e,t){window.braintree.dataCollector.create({client:t,paypal:!0},(function(e,t){e||(document.querySelector("input[name=client-data]").value=t.deviceData)}))}))}},{key:"handlePaymentWithToken",value:function(){Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach((function(e){return e.addEventListener("click",(function(e){document.getElementById("paypal-button").classList.add("hidden"),document.getElementById("save-card--container").style.display="none",document.querySelector("input[name=token]").value=e.target.dataset.token,document.getElementById("pay-now-with-token").classList.remove("hidden"),document.getElementById("pay-now").classList.add("hidden")}))}));var e=document.getElementById("pay-now-with-token");e.addEventListener("click",(function(t){e.disabled=!0,e.querySelector("svg").classList.remove("hidden"),e.querySelector("span").classList.add("hidden"),document.getElementById("server-response").submit()}))}},{key:"handle",value:function(){this.initBraintreeDataCollector(),this.handlePaymentWithToken(),braintree.client.create({authorization:document.querySelector("meta[name=client-token]").content}).then((function(e){return braintree.paypalCheckout.create({client:e})})).then((function(e){return e.loadPayPalSDK({vault:!0}).then((function(e){return paypal.Buttons({fundingSource:paypal.FUNDING.PAYPAL,createBillingAgreement:function(){return e.createPayment(t.getPaymentDetails())},onApprove:function(t,n){return e.tokenizePayment(t).then((function(e){var t=document.querySelector('input[name="token-billing-checkbox"]:checked');t&&(document.querySelector('input[name="store_card"]').value=t.value),document.querySelector("input[name=gateway_response]").value=JSON.stringify(e),document.getElementById("server-response").submit()}))},onCancel:function(e){},onError:function(e){console.log(e.message),t.handleErrorMessage(e.message)}}).render("#paypal-button")}))})).catch((function(e){console.log(e.message),t.handleErrorMessage(e.message)}))}}])&&e(n.prototype,a),o&&e(n,o),Object.defineProperty(n,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/braintree-paypal.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var BraintreePayPal = /*#__PURE__*/function () {
|
||||||
|
function BraintreePayPal() {
|
||||||
|
_classCallCheck(this, BraintreePayPal);
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(BraintreePayPal, [{
|
||||||
|
key: "initBraintreeDataCollector",
|
||||||
|
value: function initBraintreeDataCollector() {
|
||||||
|
window.braintree.client.create({
|
||||||
|
authorization: document.querySelector('meta[name=client-token]').content
|
||||||
|
}, function (err, clientInstance) {
|
||||||
|
window.braintree.dataCollector.create({
|
||||||
|
client: clientInstance,
|
||||||
|
paypal: true
|
||||||
|
}, function (err, dataCollectorInstance) {
|
||||||
|
if (err) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('input[name=client-data]').value = dataCollectorInstance.deviceData;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handlePaymentWithToken",
|
||||||
|
value: function handlePaymentWithToken() {
|
||||||
|
Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) {
|
||||||
|
return element.addEventListener('click', function (element) {
|
||||||
|
document.getElementById('paypal-button').classList.add('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'none';
|
||||||
|
document.querySelector('input[name=token]').value = element.target.dataset.token;
|
||||||
|
document.getElementById('pay-now-with-token').classList.remove('hidden');
|
||||||
|
document.getElementById('pay-now').classList.add('hidden');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
var payNowWithToken = document.getElementById('pay-now-with-token');
|
||||||
|
payNowWithToken.addEventListener('click', function (element) {
|
||||||
|
payNowWithToken.disabled = true;
|
||||||
|
payNowWithToken.querySelector('svg').classList.remove('hidden');
|
||||||
|
payNowWithToken.querySelector('span').classList.add('hidden');
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
this.initBraintreeDataCollector();
|
||||||
|
this.handlePaymentWithToken();
|
||||||
|
braintree.client.create({
|
||||||
|
authorization: document.querySelector('meta[name=client-token]').content
|
||||||
|
}).then(function (clientInstance) {
|
||||||
|
return braintree.paypalCheckout.create({
|
||||||
|
client: clientInstance
|
||||||
|
});
|
||||||
|
}).then(function (paypalCheckoutInstance) {
|
||||||
|
return paypalCheckoutInstance.loadPayPalSDK({
|
||||||
|
vault: true
|
||||||
|
}).then(function (paypalCheckoutInstance) {
|
||||||
|
return paypal.Buttons({
|
||||||
|
fundingSource: paypal.FUNDING.PAYPAL,
|
||||||
|
createBillingAgreement: function createBillingAgreement() {
|
||||||
|
return paypalCheckoutInstance.createPayment(BraintreePayPal.getPaymentDetails());
|
||||||
|
},
|
||||||
|
onApprove: function onApprove(data, actions) {
|
||||||
|
return paypalCheckoutInstance.tokenizePayment(data).then(function (payload) {
|
||||||
|
var tokenBillingCheckbox = document.querySelector('input[name="token-billing-checkbox"]:checked');
|
||||||
|
|
||||||
|
if (tokenBillingCheckbox) {
|
||||||
|
document.querySelector('input[name="store_card"]').value = tokenBillingCheckbox.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('input[name=gateway_response]').value = JSON.stringify(payload);
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onCancel: function onCancel(data) {// ..
|
||||||
|
},
|
||||||
|
onError: function onError(err) {
|
||||||
|
console.log(err.message);
|
||||||
|
BraintreePayPal.handleErrorMessage(err.message);
|
||||||
|
}
|
||||||
|
}).render('#paypal-button');
|
||||||
|
});
|
||||||
|
})["catch"](function (err) {
|
||||||
|
console.log(err.message);
|
||||||
|
BraintreePayPal.handleErrorMessage(err.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}], [{
|
||||||
|
key: "getPaymentDetails",
|
||||||
|
value: function getPaymentDetails() {
|
||||||
|
return {
|
||||||
|
flow: 'vault'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handleErrorMessage",
|
||||||
|
value: function handleErrorMessage(message) {
|
||||||
|
var errorsContainer = document.getElementById('errors');
|
||||||
|
errorsContainer.innerText = message;
|
||||||
|
errorsContainer.hidden = false;
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return BraintreePayPal;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new BraintreePayPal().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
9
public/js/clients/payments/card-js.min.js
vendored
9
public/js/clients/payments/card-js.min.js
vendored
File diff suppressed because one or more lines are too long
101
public/js/clients/payments/checkout-credit-card.js
vendored
101
public/js/clients/payments/checkout-credit-card.js
vendored
@ -1,2 +1,99 @@
|
|||||||
/*! For license information please see checkout-credit-card.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(new(function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.tokens=[]}var n,a,o;return n=t,(a=[{key:"mountFrames",value:function(){console.log("Mount checkout frames..")}},{key:"handlePaymentUsingToken",value:function(e){document.getElementById("checkout--container").classList.add("hidden"),document.getElementById("pay-now-with-token--container").classList.remove("hidden"),document.getElementById("save-card--container").style.display="none",document.querySelector("input[name=token]").value=e.target.dataset.token}},{key:"handlePaymentUsingCreditCard",value:function(e){var t;document.getElementById("checkout--container").classList.remove("hidden"),document.getElementById("pay-now-with-token--container").classList.add("hidden"),document.getElementById("save-card--container").style.display="grid",document.querySelector("input[name=token]").value="";var n=document.getElementById("pay-button"),a=null!==(t=document.querySelector('meta[name="public-key"]').content)&&void 0!==t?t:"",o=document.getElementById("payment-form");Frames.init(a),Frames.addEventHandler(Frames.Events.CARD_VALIDATION_CHANGED,(function(e){n.disabled=!Frames.isCardValid()})),Frames.addEventHandler(Frames.Events.CARD_TOKENIZATION_FAILED,(function(e){pay.button.disabled=!1})),Frames.addEventHandler(Frames.Events.CARD_TOKENIZED,(function(e){n.disabled=!0,document.querySelector('input[name="gateway_response"]').value=JSON.stringify(e),document.querySelector('input[name="store_card"]').value=document.querySelector("input[name=token-billing-checkbox]:checked").value,document.getElementById("server-response").submit()})),o.addEventListener("submit",(function(e){e.preventDefault(),Frames.submitCard()}))}},{key:"completePaymentUsingToken",value:function(e){var t=document.getElementById("pay-now-with-token");t.disabled=!0,t.querySelector("svg").classList.remove("hidden"),t.querySelector("span").classList.add("hidden"),document.getElementById("server-response").submit()}},{key:"handle",value:function(){var e=this;this.handlePaymentUsingCreditCard(),Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach((function(t){return t.addEventListener("click",e.handlePaymentUsingToken)})),document.getElementById("toggle-payment-with-credit-card").addEventListener("click",this.handlePaymentUsingCreditCard),document.getElementById("pay-now-with-token").addEventListener("click",this.completePaymentUsingToken)}}])&&e(n.prototype,a),o&&e(n,o),Object.defineProperty(n,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/checkout-credit-card.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var CheckoutCreditCard = /*#__PURE__*/function () {
|
||||||
|
function CheckoutCreditCard() {
|
||||||
|
_classCallCheck(this, CheckoutCreditCard);
|
||||||
|
|
||||||
|
this.tokens = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(CheckoutCreditCard, [{
|
||||||
|
key: "mountFrames",
|
||||||
|
value: function mountFrames() {
|
||||||
|
console.log('Mount checkout frames..');
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handlePaymentUsingToken",
|
||||||
|
value: function handlePaymentUsingToken(e) {
|
||||||
|
document.getElementById('checkout--container').classList.add('hidden');
|
||||||
|
document.getElementById('pay-now-with-token--container').classList.remove('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'none';
|
||||||
|
document.querySelector('input[name=token]').value = e.target.dataset.token;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handlePaymentUsingCreditCard",
|
||||||
|
value: function handlePaymentUsingCreditCard(e) {
|
||||||
|
var _document$querySelect;
|
||||||
|
|
||||||
|
document.getElementById('checkout--container').classList.remove('hidden');
|
||||||
|
document.getElementById('pay-now-with-token--container').classList.add('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'grid';
|
||||||
|
document.querySelector('input[name=token]').value = '';
|
||||||
|
var payButton = document.getElementById('pay-button');
|
||||||
|
var publicKey = (_document$querySelect = document.querySelector('meta[name="public-key"]').content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var form = document.getElementById('payment-form');
|
||||||
|
Frames.init(publicKey);
|
||||||
|
Frames.addEventHandler(Frames.Events.CARD_VALIDATION_CHANGED, function (event) {
|
||||||
|
payButton.disabled = !Frames.isCardValid();
|
||||||
|
});
|
||||||
|
Frames.addEventHandler(Frames.Events.CARD_TOKENIZATION_FAILED, function (event) {
|
||||||
|
pay.button.disabled = false;
|
||||||
|
});
|
||||||
|
Frames.addEventHandler(Frames.Events.CARD_TOKENIZED, function (event) {
|
||||||
|
payButton.disabled = true;
|
||||||
|
document.querySelector('input[name="gateway_response"]').value = JSON.stringify(event);
|
||||||
|
document.querySelector('input[name="store_card"]').value = document.querySelector('input[name=token-billing-checkbox]:checked').value;
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
});
|
||||||
|
form.addEventListener('submit', function (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
Frames.submitCard();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "completePaymentUsingToken",
|
||||||
|
value: function completePaymentUsingToken(e) {
|
||||||
|
var btn = document.getElementById('pay-now-with-token');
|
||||||
|
btn.disabled = true;
|
||||||
|
btn.querySelector('svg').classList.remove('hidden');
|
||||||
|
btn.querySelector('span').classList.add('hidden');
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
this.handlePaymentUsingCreditCard();
|
||||||
|
Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) {
|
||||||
|
return element.addEventListener('click', _this.handlePaymentUsingToken);
|
||||||
|
});
|
||||||
|
document.getElementById('toggle-payment-with-credit-card').addEventListener('click', this.handlePaymentUsingCreditCard);
|
||||||
|
document.getElementById('pay-now-with-token').addEventListener('click', this.completePaymentUsingToken);
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return CheckoutCreditCard;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new CheckoutCreditCard().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
380
public/js/clients/payments/eway-credit-card.js
vendored
380
public/js/clients/payments/eway-credit-card.js
vendored
File diff suppressed because one or more lines are too long
87
public/js/clients/payments/forte-ach-payment.js
vendored
87
public/js/clients/payments/forte-ach-payment.js
vendored
@ -1,2 +1,85 @@
|
|||||||
/*! For license information please see forte-ach-payment.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function n(n,t,o){return t&&e(n.prototype,t),o&&e(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n}function t(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var o=n((function e(n){var o=this;!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),t(this,"handleAuthorization",(function(){var e=document.getElementById("account-number").value,n=document.getElementById("routing-number").value,t={api_login_id:o.apiLoginId,account_number:e,routing_number:n,account_type:"checking"};return document.getElementById("pay-now")&&(document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden")),forte.createToken(t).success(o.successResponseHandler).error(o.failedResponseHandler),!1})),t(this,"successResponseHandler",(function(e){return document.getElementById("payment_token").value=e.onetime_token,document.getElementById("server_response").submit(),!1})),t(this,"failedResponseHandler",(function(e){var n='<div class="alert alert-failure mb-4"><ul><li>'+e.response_description+"</li></ul></div>";return document.getElementById("forte_errors").innerHTML=n,document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden"),!1})),t(this,"handle",(function(){var e=document.getElementById("pay-now");return e&&e.addEventListener("click",(function(e){o.handleAuthorization()})),o})),this.apiLoginId=n}));new o(document.querySelector('meta[name="forte-api-login-id"]').content).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/forte-ach-payment.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://opensource.org/licenses/AAL
|
||||||
|
*/
|
||||||
|
var ForteAuthorizeACH = /*#__PURE__*/_createClass(function ForteAuthorizeACH(apiLoginId) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ForteAuthorizeACH);
|
||||||
|
|
||||||
|
_defineProperty(this, "handleAuthorization", function () {
|
||||||
|
var account_number = document.getElementById('account-number').value;
|
||||||
|
var routing_number = document.getElementById('routing-number').value;
|
||||||
|
var data = {
|
||||||
|
api_login_id: _this.apiLoginId,
|
||||||
|
account_number: account_number,
|
||||||
|
routing_number: routing_number,
|
||||||
|
account_type: 'checking'
|
||||||
|
};
|
||||||
|
var payNowButton = document.getElementById('pay-now');
|
||||||
|
|
||||||
|
if (payNowButton) {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
} // console.log(data);
|
||||||
|
|
||||||
|
|
||||||
|
forte.createToken(data).success(_this.successResponseHandler).error(_this.failedResponseHandler);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "successResponseHandler", function (response) {
|
||||||
|
document.getElementById('payment_token').value = response.onetime_token;
|
||||||
|
document.getElementById('server_response').submit();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "failedResponseHandler", function (response) {
|
||||||
|
var errors = '<div class="alert alert-failure mb-4"><ul><li>' + response.response_description + '</li></ul></div>';
|
||||||
|
document.getElementById('forte_errors').innerHTML = errors;
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
var payNowButton = document.getElementById('pay-now');
|
||||||
|
|
||||||
|
if (payNowButton) {
|
||||||
|
payNowButton.addEventListener('click', function (e) {
|
||||||
|
_this.handleAuthorization();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
this.apiLoginId = apiLoginId;
|
||||||
|
});
|
||||||
|
|
||||||
|
var apiLoginId = document.querySelector('meta[name="forte-api-login-id"]').content;
|
||||||
|
/** @handle */
|
||||||
|
|
||||||
|
new ForteAuthorizeACH(apiLoginId).handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
@ -1,2 +1,86 @@
|
|||||||
/*! For license information please see forte-credit-card-payment.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function n(n,t,r){return t&&e(n.prototype,t),r&&e(n,r),Object.defineProperty(n,"prototype",{writable:!1}),n}function t(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var r=n((function e(n){var r=this;!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),t(this,"handleAuthorization",(function(){var e=$("#my-card"),n={api_login_id:r.apiLoginId,card_number:e.CardJs("cardNumber").replace(/[^\d]/g,""),expire_year:e.CardJs("expiryYear").replace(/[^\d]/g,""),expire_month:e.CardJs("expiryMonth").replace(/[^\d]/g,""),cvv:document.getElementById("cvv").value.replace(/[^\d]/g,"")};return document.getElementById("pay-now")&&(document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden")),forte.createToken(n).success(r.successResponseHandler).error(r.failedResponseHandler),!1})),t(this,"successResponseHandler",(function(e){return document.getElementById("payment_token").value=e.onetime_token,document.getElementById("card_brand").value=e.card_type,document.getElementById("server_response").submit(),!1})),t(this,"failedResponseHandler",(function(e){var n='<div class="alert alert-failure mb-4"><ul><li>'+e.response_description+"</li></ul></div>";return document.getElementById("forte_errors").innerHTML=n,document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden"),!1})),t(this,"handle",(function(){var e=document.getElementById("pay-now");return e&&e.addEventListener("click",(function(e){r.handleAuthorization()})),r})),this.apiLoginId=n,this.cardHolderName=document.getElementById("cardholder_name")}));new r(document.querySelector('meta[name="forte-api-login-id"]').content).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/forte-credit-card-payment.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://opensource.org/licenses/AAL
|
||||||
|
*/
|
||||||
|
var ForteAuthorizeCard = /*#__PURE__*/_createClass(function ForteAuthorizeCard(apiLoginId) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ForteAuthorizeCard);
|
||||||
|
|
||||||
|
_defineProperty(this, "handleAuthorization", function () {
|
||||||
|
var myCard = $('#my-card');
|
||||||
|
var data = {
|
||||||
|
api_login_id: _this.apiLoginId,
|
||||||
|
card_number: myCard.CardJs('cardNumber').replace(/[^\d]/g, ''),
|
||||||
|
expire_year: myCard.CardJs('expiryYear').replace(/[^\d]/g, ''),
|
||||||
|
expire_month: myCard.CardJs('expiryMonth').replace(/[^\d]/g, ''),
|
||||||
|
cvv: document.getElementById('cvv').value.replace(/[^\d]/g, '')
|
||||||
|
};
|
||||||
|
var payNowButton = document.getElementById('pay-now');
|
||||||
|
|
||||||
|
if (payNowButton) {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
forte.createToken(data).success(_this.successResponseHandler).error(_this.failedResponseHandler);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "successResponseHandler", function (response) {
|
||||||
|
document.getElementById('payment_token').value = response.onetime_token;
|
||||||
|
document.getElementById('card_brand').value = response.card_type;
|
||||||
|
document.getElementById('server_response').submit();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "failedResponseHandler", function (response) {
|
||||||
|
var errors = '<div class="alert alert-failure mb-4"><ul><li>' + response.response_description + '</li></ul></div>';
|
||||||
|
document.getElementById('forte_errors').innerHTML = errors;
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
var payNowButton = document.getElementById('pay-now');
|
||||||
|
|
||||||
|
if (payNowButton) {
|
||||||
|
payNowButton.addEventListener('click', function (e) {
|
||||||
|
_this.handleAuthorization();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
this.apiLoginId = apiLoginId;
|
||||||
|
this.cardHolderName = document.getElementById('cardholder_name');
|
||||||
|
});
|
||||||
|
|
||||||
|
var apiLoginId = document.querySelector('meta[name="forte-api-login-id"]').content;
|
||||||
|
/** @handle */
|
||||||
|
|
||||||
|
new ForteAuthorizeCard(apiLoginId).handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
157
public/js/clients/payments/mollie-credit-card.js
vendored
157
public/js/clients/payments/mollie-credit-card.js
vendored
@ -1,2 +1,155 @@
|
|||||||
/*! For license information please see mollie-credit-card.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(new(function(){function t(){var e,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.mollie=Mollie(null===(e=document.querySelector("meta[name=mollie-profileId]"))||void 0===e?void 0:e.content,{testmode:null===(n=document.querySelector("meta[name=mollie-testmode]"))||void 0===n?void 0:n.content,locale:"en_US"})}var n,r,o;return n=t,(r=[{key:"createCardHolderInput",value:function(){var e=this.mollie.createComponent("cardHolder");e.mount("#card-holder");var t=document.getElementById("card-holder-error");return e.addEventListener("change",(function(e){e.error&&e.touched?t.textContent=e.error:t.textContent=""})),this}},{key:"createCardNumberInput",value:function(){var e=this.mollie.createComponent("cardNumber");e.mount("#card-number");var t=document.getElementById("card-number-error");return e.addEventListener("change",(function(e){e.error&&e.touched?t.textContent=e.error:t.textContent=""})),this}},{key:"createExpiryDateInput",value:function(){var e=this.mollie.createComponent("expiryDate");e.mount("#expiry-date");var t=document.getElementById("expiry-date-error");return e.addEventListener("change",(function(e){e.error&&e.touched?t.textContent=e.error:t.textContent=""})),this}},{key:"createCvvInput",value:function(){var e=this.mollie.createComponent("verificationCode");e.mount("#cvv");var t=document.getElementById("cvv-error");return e.addEventListener("change",(function(e){e.error&&e.touched?t.textContent=e.error:t.textContent=""})),this}},{key:"handlePayNowButton",value:function(){if(document.getElementById("pay-now").disabled=!0,""!==document.querySelector("input[name=token]").value)return document.querySelector("input[name=gateway_response]").value="",document.getElementById("server-response").submit();this.mollie.createToken().then((function(e){var t=e.token,n=e.error;if(n){document.getElementById("pay-now").disabled=!1;var r=document.getElementById("errors");return r.innerText=n.message,void(r.hidden=!1)}var o=document.querySelector('input[name="token-billing-checkbox"]:checked');o&&(document.querySelector('input[name="store_card"]').value=o.value),document.querySelector("input[name=gateway_response]").value=t,document.querySelector("input[name=token]").value="",document.getElementById("server-response").submit()}))}},{key:"handle",value:function(){var e=this;this.createCardHolderInput().createCardNumberInput().createExpiryDateInput().createCvvInput(),Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach((function(e){return e.addEventListener("click",(function(e){document.getElementById("mollie--payment-container").classList.add("hidden"),document.getElementById("save-card--container").style.display="none",document.querySelector("input[name=token]").value=e.target.dataset.token}))})),document.getElementById("toggle-payment-with-credit-card").addEventListener("click",(function(e){document.getElementById("mollie--payment-container").classList.remove("hidden"),document.getElementById("save-card--container").style.display="grid",document.querySelector("input[name=token]").value=""})),document.getElementById("pay-now").addEventListener("click",(function(){return e.handlePayNowButton()}))}}])&&e(n.prototype,r),o&&e(n,o),Object.defineProperty(n,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/mollie-credit-card.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var _Mollie = /*#__PURE__*/function () {
|
||||||
|
function _Mollie() {
|
||||||
|
var _document$querySelect, _document$querySelect2;
|
||||||
|
|
||||||
|
_classCallCheck(this, _Mollie);
|
||||||
|
|
||||||
|
this.mollie = Mollie((_document$querySelect = document.querySelector('meta[name=mollie-profileId]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.content, {
|
||||||
|
testmode: (_document$querySelect2 = document.querySelector('meta[name=mollie-testmode]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content,
|
||||||
|
locale: 'en_US'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(_Mollie, [{
|
||||||
|
key: "createCardHolderInput",
|
||||||
|
value: function createCardHolderInput() {
|
||||||
|
var cardHolder = this.mollie.createComponent('cardHolder');
|
||||||
|
cardHolder.mount('#card-holder');
|
||||||
|
var cardHolderError = document.getElementById('card-holder-error');
|
||||||
|
cardHolder.addEventListener('change', function (event) {
|
||||||
|
if (event.error && event.touched) {
|
||||||
|
cardHolderError.textContent = event.error;
|
||||||
|
} else {
|
||||||
|
cardHolderError.textContent = '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "createCardNumberInput",
|
||||||
|
value: function createCardNumberInput() {
|
||||||
|
var cardNumber = this.mollie.createComponent('cardNumber');
|
||||||
|
cardNumber.mount('#card-number');
|
||||||
|
var cardNumberError = document.getElementById('card-number-error');
|
||||||
|
cardNumber.addEventListener('change', function (event) {
|
||||||
|
if (event.error && event.touched) {
|
||||||
|
cardNumberError.textContent = event.error;
|
||||||
|
} else {
|
||||||
|
cardNumberError.textContent = '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "createExpiryDateInput",
|
||||||
|
value: function createExpiryDateInput() {
|
||||||
|
var expiryDate = this.mollie.createComponent('expiryDate');
|
||||||
|
expiryDate.mount('#expiry-date');
|
||||||
|
var expiryDateError = document.getElementById('expiry-date-error');
|
||||||
|
expiryDate.addEventListener('change', function (event) {
|
||||||
|
if (event.error && event.touched) {
|
||||||
|
expiryDateError.textContent = event.error;
|
||||||
|
} else {
|
||||||
|
expiryDateError.textContent = '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "createCvvInput",
|
||||||
|
value: function createCvvInput() {
|
||||||
|
var verificationCode = this.mollie.createComponent('verificationCode');
|
||||||
|
verificationCode.mount('#cvv');
|
||||||
|
var verificationCodeError = document.getElementById('cvv-error');
|
||||||
|
verificationCode.addEventListener('change', function (event) {
|
||||||
|
if (event.error && event.touched) {
|
||||||
|
verificationCodeError.textContent = event.error;
|
||||||
|
} else {
|
||||||
|
verificationCodeError.textContent = '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handlePayNowButton",
|
||||||
|
value: function handlePayNowButton() {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
|
||||||
|
if (document.querySelector('input[name=token]').value !== '') {
|
||||||
|
document.querySelector('input[name=gateway_response]').value = '';
|
||||||
|
return document.getElementById('server-response').submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.mollie.createToken().then(function (result) {
|
||||||
|
var token = result.token;
|
||||||
|
var error = result.error;
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
var errorsContainer = document.getElementById('errors');
|
||||||
|
errorsContainer.innerText = error.message;
|
||||||
|
errorsContainer.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var tokenBillingCheckbox = document.querySelector('input[name="token-billing-checkbox"]:checked');
|
||||||
|
|
||||||
|
if (tokenBillingCheckbox) {
|
||||||
|
document.querySelector('input[name="store_card"]').value = tokenBillingCheckbox.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('input[name=gateway_response]').value = token;
|
||||||
|
document.querySelector('input[name=token]').value = '';
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
this.createCardHolderInput().createCardNumberInput().createExpiryDateInput().createCvvInput();
|
||||||
|
Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) {
|
||||||
|
return element.addEventListener('click', function (element) {
|
||||||
|
document.getElementById('mollie--payment-container').classList.add('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'none';
|
||||||
|
document.querySelector('input[name=token]').value = element.target.dataset.token;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
document.getElementById('toggle-payment-with-credit-card').addEventListener('click', function (element) {
|
||||||
|
document.getElementById('mollie--payment-container').classList.remove('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'grid';
|
||||||
|
document.querySelector('input[name=token]').value = '';
|
||||||
|
});
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function () {
|
||||||
|
return _this.handlePayNowButton();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return _Mollie;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new _Mollie().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
176
public/js/clients/payments/paytrace-credit-card.js
vendored
176
public/js/clients/payments/paytrace-credit-card.js
vendored
@ -1,2 +1,174 @@
|
|||||||
/*! For license information please see paytrace-credit-card.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(new(function(){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.clientKey=null===(e=document.querySelector("meta[name=paytrace-client-key]"))||void 0===e?void 0:e.content}var n,o,r;return n=t,(o=[{key:"creditCardStyles",get:function(){return{font_color:"#111827",border_color:"rgba(210,214,220,1)",label_color:"#111827",label_size:"12pt",background_color:"white",border_style:"solid",font_size:"15pt",height:"30px",width:"100%"}}},{key:"codeStyles",get:function(){return{font_color:"#111827",border_color:"rgba(210,214,220,1)",label_color:"#111827",label_size:"12pt",background_color:"white",border_style:"solid",font_size:"15pt",height:"30px",width:"300px"}}},{key:"expStyles",get:function(){return{font_color:"#111827",border_color:"rgba(210,214,220,1)",label_color:"#111827",label_size:"12pt",background_color:"white",border_style:"solid",font_size:"15pt",height:"30px",width:"85px",type:"dropdown"}}},{key:"updatePayTraceLabels",value:function(){window.PTPayment.getControl("securityCode").label.text(document.querySelector("meta[name=ctrans-cvv]").content),window.PTPayment.getControl("creditCard").label.text(document.querySelector("meta[name=ctrans-card_number]").content),window.PTPayment.getControl("expiration").label.text(document.querySelector("meta[name=ctrans-expires]").content)}},{key:"setupPayTrace",value:function(){return window.PTPayment.setup({styles:{code:this.codeStyles,cc:this.creditCardStyles,exp:this.expStyles},authorization:{clientKey:this.clientKey}})}},{key:"handlePaymentWithCreditCard",value:function(e){var t=this;e.target.parentElement.disabled=!0,document.getElementById("errors").hidden=!0,window.PTPayment.validate((function(n){if(n.length>=1){var o=document.getElementById("errors");return o.textContent=n[0].description,o.hidden=!1,e.target.parentElement.disabled=!1}t.ptInstance.process().then((function(e){document.getElementById("HPF_Token").value=e.message.hpf_token,document.getElementById("enc_key").value=e.message.enc_key;var t=document.querySelector('input[name="token-billing-checkbox"]:checked');t&&(document.querySelector('input[name="store_card"]').value=t.value),document.getElementById("server_response").submit()})).catch((function(e){document.getElementById("errors").textContent=JSON.stringify(e),document.getElementById("errors").hidden=!1,console.log(e)}))}))}},{key:"handlePaymentWithToken",value:function(e){e.target.parentElement.disabled=!0,document.getElementById("server_response").submit()}},{key:"handle",value:function(){var e,t=this;Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach((function(e){return e.addEventListener("click",(function(e){document.getElementById("paytrace--credit-card-container").classList.add("hidden"),document.getElementById("save-card--container").style.display="none",document.querySelector("input[name=token]").value=e.target.dataset.token}))})),null===(e=document.getElementById("toggle-payment-with-credit-card"))||void 0===e||e.addEventListener("click",(function(e){document.getElementById("paytrace--credit-card-container").classList.remove("hidden"),document.getElementById("save-card--container").style.display="grid",document.querySelector("input[name=token]").value="",t.setupPayTrace().then((function(e){t.ptInstance=e,t.updatePayTraceLabels()}))})),document.getElementById("pay-now").addEventListener("click",(function(e){return""===document.querySelector("input[name=token]").value?t.handlePaymentWithCreditCard(e):t.handlePaymentWithToken(e)}))}}])&&e(n.prototype,o),r&&e(n,r),Object.defineProperty(n,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/paytrace-credit-card.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var PayTraceCreditCard = /*#__PURE__*/function () {
|
||||||
|
function PayTraceCreditCard() {
|
||||||
|
var _document$querySelect;
|
||||||
|
|
||||||
|
_classCallCheck(this, PayTraceCreditCard);
|
||||||
|
|
||||||
|
this.clientKey = (_document$querySelect = document.querySelector('meta[name=paytrace-client-key]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.content;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(PayTraceCreditCard, [{
|
||||||
|
key: "creditCardStyles",
|
||||||
|
get: function get() {
|
||||||
|
return {
|
||||||
|
font_color: '#111827',
|
||||||
|
border_color: 'rgba(210,214,220,1)',
|
||||||
|
label_color: '#111827',
|
||||||
|
label_size: '12pt',
|
||||||
|
background_color: 'white',
|
||||||
|
border_style: 'solid',
|
||||||
|
font_size: '15pt',
|
||||||
|
height: '30px',
|
||||||
|
width: '100%'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "codeStyles",
|
||||||
|
get: function get() {
|
||||||
|
return {
|
||||||
|
font_color: '#111827',
|
||||||
|
border_color: 'rgba(210,214,220,1)',
|
||||||
|
label_color: '#111827',
|
||||||
|
label_size: '12pt',
|
||||||
|
background_color: 'white',
|
||||||
|
border_style: 'solid',
|
||||||
|
font_size: '15pt',
|
||||||
|
height: '30px',
|
||||||
|
width: '300px'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "expStyles",
|
||||||
|
get: function get() {
|
||||||
|
return {
|
||||||
|
font_color: '#111827',
|
||||||
|
border_color: 'rgba(210,214,220,1)',
|
||||||
|
label_color: '#111827',
|
||||||
|
label_size: '12pt',
|
||||||
|
background_color: 'white',
|
||||||
|
border_style: 'solid',
|
||||||
|
font_size: '15pt',
|
||||||
|
height: '30px',
|
||||||
|
width: '85px',
|
||||||
|
type: 'dropdown'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "updatePayTraceLabels",
|
||||||
|
value: function updatePayTraceLabels() {
|
||||||
|
window.PTPayment.getControl('securityCode').label.text(document.querySelector('meta[name=ctrans-cvv]').content);
|
||||||
|
window.PTPayment.getControl('creditCard').label.text(document.querySelector('meta[name=ctrans-card_number]').content);
|
||||||
|
window.PTPayment.getControl('expiration').label.text(document.querySelector('meta[name=ctrans-expires]').content);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "setupPayTrace",
|
||||||
|
value: function setupPayTrace() {
|
||||||
|
return window.PTPayment.setup({
|
||||||
|
styles: {
|
||||||
|
code: this.codeStyles,
|
||||||
|
cc: this.creditCardStyles,
|
||||||
|
exp: this.expStyles
|
||||||
|
},
|
||||||
|
authorization: {
|
||||||
|
clientKey: this.clientKey
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handlePaymentWithCreditCard",
|
||||||
|
value: function handlePaymentWithCreditCard(event) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
event.target.parentElement.disabled = true;
|
||||||
|
document.getElementById('errors').hidden = true;
|
||||||
|
window.PTPayment.validate(function (errors) {
|
||||||
|
if (errors.length >= 1) {
|
||||||
|
var errorsContainer = document.getElementById('errors');
|
||||||
|
errorsContainer.textContent = errors[0].description;
|
||||||
|
errorsContainer.hidden = false;
|
||||||
|
return event.target.parentElement.disabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_this.ptInstance.process().then(function (response) {
|
||||||
|
document.getElementById('HPF_Token').value = response.message.hpf_token;
|
||||||
|
document.getElementById('enc_key').value = response.message.enc_key;
|
||||||
|
var tokenBillingCheckbox = document.querySelector('input[name="token-billing-checkbox"]:checked');
|
||||||
|
|
||||||
|
if (tokenBillingCheckbox) {
|
||||||
|
document.querySelector('input[name="store_card"]').value = tokenBillingCheckbox.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('server_response').submit();
|
||||||
|
})["catch"](function (error) {
|
||||||
|
document.getElementById('errors').textContent = JSON.stringify(error);
|
||||||
|
document.getElementById('errors').hidden = false;
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handlePaymentWithToken",
|
||||||
|
value: function handlePaymentWithToken(event) {
|
||||||
|
event.target.parentElement.disabled = true;
|
||||||
|
document.getElementById('server_response').submit();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _document$getElementB,
|
||||||
|
_this2 = this;
|
||||||
|
|
||||||
|
Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) {
|
||||||
|
return element.addEventListener('click', function (element) {
|
||||||
|
document.getElementById('paytrace--credit-card-container').classList.add('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'none';
|
||||||
|
document.querySelector('input[name=token]').value = element.target.dataset.token;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
(_document$getElementB = document.getElementById('toggle-payment-with-credit-card')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.addEventListener('click', function (element) {
|
||||||
|
document.getElementById('paytrace--credit-card-container').classList.remove('hidden');
|
||||||
|
document.getElementById('save-card--container').style.display = 'grid';
|
||||||
|
document.querySelector('input[name=token]').value = '';
|
||||||
|
|
||||||
|
_this2.setupPayTrace().then(function (instance) {
|
||||||
|
_this2.ptInstance = instance;
|
||||||
|
|
||||||
|
_this2.updatePayTraceLabels();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
if (document.querySelector('input[name=token]').value === '') {
|
||||||
|
return _this2.handlePaymentWithCreditCard(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this2.handlePaymentWithToken(e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return PayTraceCreditCard;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new PayTraceCreditCard().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
40
public/js/clients/payments/razorpay-aio.js
vendored
40
public/js/clients/payments/razorpay-aio.js
vendored
@ -1,2 +1,38 @@
|
|||||||
/*! For license information please see razorpay-aio.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,n=JSON.parse(null===(e=document.querySelector("meta[name=razorpay-options]"))||void 0===e?void 0:e.content);n.handler=function(e){document.getElementById("razorpay_payment_id").value=e.razorpay_payment_id,document.getElementById("razorpay_signature").value=e.razorpay_signature,document.getElementById("server-response").submit()},n.modal={ondismiss:function(){o.disabled=!1}};var a=new Razorpay(n),o=document.getElementById("pay-now");o.onclick=function(e){o.disabled=!0,a.open()}})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*******************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/razorpay-aio.js ***!
|
||||||
|
\*******************************************************/
|
||||||
|
var _document$querySelect;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var options = JSON.parse((_document$querySelect = document.querySelector('meta[name=razorpay-options]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.content);
|
||||||
|
|
||||||
|
options.handler = function (response) {
|
||||||
|
document.getElementById('razorpay_payment_id').value = response.razorpay_payment_id;
|
||||||
|
document.getElementById('razorpay_signature').value = response.razorpay_signature;
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
};
|
||||||
|
|
||||||
|
options.modal = {
|
||||||
|
ondismiss: function ondismiss() {
|
||||||
|
payNowButton.disabled = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var razorpay = new Razorpay(options);
|
||||||
|
var payNowButton = document.getElementById('pay-now');
|
||||||
|
|
||||||
|
payNowButton.onclick = function (event) {
|
||||||
|
payNowButton.disabled = true;
|
||||||
|
razorpay.open();
|
||||||
|
};
|
||||||
|
/******/ })()
|
||||||
|
;
|
309
public/js/clients/payments/square-credit-card.js
vendored
309
public/js/clients/payments/square-credit-card.js
vendored
File diff suppressed because one or more lines are too long
114
public/js/clients/payments/stripe-ach.js
vendored
114
public/js/clients/payments/stripe-ach.js
vendored
@ -1,2 +1,112 @@
|
|||||||
/*! For license information please see stripe-ach.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}(new(function(){function n(){var e,r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),t(this,"setupStripe",(function(){return r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key),r})),t(this,"getFormData",(function(){return{country:document.getElementById("country").value,currency:document.getElementById("currency").value,routing_number:document.getElementById("routing-number").value,account_number:document.getElementById("account-number").value,account_holder_name:document.getElementById("account-holder-name").value,account_holder_type:document.querySelector('input[name="account-holder-type"]:checked').value}})),t(this,"handleError",(function(e){document.getElementById("save-button").disabled=!1,document.querySelector("#save-button > svg").classList.add("hidden"),document.querySelector("#save-button > span").classList.remove("hidden"),r.errors.textContent="",r.errors.textContent=e,r.errors.hidden=!1})),t(this,"handleSuccess",(function(e){document.getElementById("gateway_response").value=JSON.stringify(e),document.getElementById("server_response").submit()})),t(this,"handleSubmit",(function(e){if(!document.getElementById("accept-terms").checked)return errors.textContent="You must accept the mandate terms prior to making payment.",void(errors.hidden=!1);document.getElementById("save-button").disabled=!0,document.querySelector("#save-button > svg").classList.remove("hidden"),document.querySelector("#save-button > span").classList.add("hidden"),e.preventDefault(),r.errors.textContent="",r.errors.hidden=!0,r.stripe.createToken("bank_account",r.getFormData()).then((function(e){return e.hasOwnProperty("error")?r.handleError(e.error.message):r.handleSuccess(e)}))})),this.errors=document.getElementById("errors"),this.key=document.querySelector('meta[name="stripe-publishable-key"]').content,this.stripe_connect=null===(e=document.querySelector('meta[name="stripe-account-id"]'))||void 0===e?void 0:e.content}var r,o,u;return r=n,(o=[{key:"handle",value:function(){var e=this;document.getElementById("save-button").addEventListener("click",(function(t){return e.handleSubmit(t)}))}}])&&e(r.prototype,o),u&&e(r,u),Object.defineProperty(r,"prototype",{writable:!1}),n}())).setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*****************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-ach.js ***!
|
||||||
|
\*****************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var AuthorizeACH = /*#__PURE__*/function () {
|
||||||
|
function AuthorizeACH() {
|
||||||
|
var _this = this,
|
||||||
|
_document$querySelect;
|
||||||
|
|
||||||
|
_classCallCheck(this, AuthorizeACH);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "getFormData", function () {
|
||||||
|
return {
|
||||||
|
country: document.getElementById('country').value,
|
||||||
|
currency: document.getElementById('currency').value,
|
||||||
|
routing_number: document.getElementById('routing-number').value,
|
||||||
|
account_number: document.getElementById('account-number').value,
|
||||||
|
account_holder_name: document.getElementById('account-holder-name').value,
|
||||||
|
account_holder_type: document.querySelector('input[name="account-holder-type"]:checked').value
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handleError", function (message) {
|
||||||
|
document.getElementById('save-button').disabled = false;
|
||||||
|
document.querySelector('#save-button > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#save-button > span').classList.remove('hidden');
|
||||||
|
_this.errors.textContent = '';
|
||||||
|
_this.errors.textContent = message;
|
||||||
|
_this.errors.hidden = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handleSuccess", function (response) {
|
||||||
|
document.getElementById('gateway_response').value = JSON.stringify(response);
|
||||||
|
document.getElementById('server_response').submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handleSubmit", function (e) {
|
||||||
|
if (!document.getElementById('accept-terms').checked) {
|
||||||
|
errors.textContent = "You must accept the mandate terms prior to making payment.";
|
||||||
|
errors.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('save-button').disabled = true;
|
||||||
|
document.querySelector('#save-button > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#save-button > span').classList.add('hidden');
|
||||||
|
e.preventDefault();
|
||||||
|
_this.errors.textContent = '';
|
||||||
|
_this.errors.hidden = true;
|
||||||
|
|
||||||
|
_this.stripe.createToken('bank_account', _this.getFormData()).then(function (result) {
|
||||||
|
if (result.hasOwnProperty('error')) {
|
||||||
|
return _this.handleError(result.error.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this.handleSuccess(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.key = document.querySelector('meta[name="stripe-publishable-key"]').content;
|
||||||
|
this.stripe_connect = (_document$querySelect = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.content;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(AuthorizeACH, [{
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
document.getElementById('save-button').addEventListener('click', function (e) {
|
||||||
|
return _this2.handleSubmit(e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return AuthorizeACH;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new AuthorizeACH().setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
116
public/js/clients/payments/stripe-acss.js
vendored
116
public/js/clients/payments/stripe-acss.js
vendored
@ -1,2 +1,114 @@
|
|||||||
/*! For license information please see stripe-acss.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i=function(){function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"setupStripe",(function(){return r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key),r})),a(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){var t=document.getElementById("errors");return""===document.getElementById("acss-name").value?(document.getElementById("acss-name").focus(),t.textContent=document.querySelector("meta[name=translation-name-required]").content,void(t.hidden=!1)):""===document.getElementById("acss-email-address").value?(document.getElementById("acss-email-address").focus(),t.textContent=document.querySelector("meta[name=translation-email-required]").content,void(t.hidden=!1)):(document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),void r.stripe.confirmAcssDebitPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{billing_details:{name:document.getElementById("acss-name").value,email:document.getElementById("acss-email-address").value}}}).then((function(e){return e.error?r.handleFailure(e.error.message):r.handleSuccess(e)})))}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}var t,n,r;return t=e,(n=[{key:"handleSuccess",value:function(e){document.querySelector('input[name="gateway_response"]').value=JSON.stringify(e.paymentIntent),document.getElementById("server-response").submit()}},{key:"handleFailure",value:function(e){var t=document.getElementById("errors");t.textContent="",t.textContent=e,t.hidden=!1,document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden")}}])&&o(t.prototype,n),r&&o(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();new i(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!******************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-acss.js ***!
|
||||||
|
\******************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessACSS = /*#__PURE__*/function () {
|
||||||
|
function ProcessACSS(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessACSS);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
|
||||||
|
if (document.getElementById('acss-name').value === "") {
|
||||||
|
document.getElementById('acss-name').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-name-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (document.getElementById('acss-email-address').value === "") {
|
||||||
|
document.getElementById('acss-email-address').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-email-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmAcssDebitPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
billing_details: {
|
||||||
|
name: document.getElementById("acss-name").value,
|
||||||
|
email: document.getElementById("acss-email-address").value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).then(function (result) {
|
||||||
|
if (result.error) {
|
||||||
|
return _this.handleFailure(result.error.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this.handleSuccess(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(ProcessACSS, [{
|
||||||
|
key: "handleSuccess",
|
||||||
|
value: function handleSuccess(result) {
|
||||||
|
document.querySelector('input[name="gateway_response"]').value = JSON.stringify(result.paymentIntent);
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handleFailure",
|
||||||
|
value: function handleFailure(message) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
errors.textContent = '';
|
||||||
|
errors.textContent = message;
|
||||||
|
errors.hidden = false;
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return ProcessACSS;
|
||||||
|
}();
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessACSS(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
83
public/js/clients/payments/stripe-alipay.js
vendored
83
public/js/clients/payments/stripe-alipay.js
vendored
@ -1,2 +1,81 @@
|
|||||||
/*! For license information please see stripe-alipay.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=i((function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"setupStripe",(function(){return r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key),r})),c(this,"handle",(function(){var e={type:"alipay",amount:document.querySelector('meta[name="amount"]').content,currency:document.querySelector('meta[name="currency"]').content,redirect:{return_url:document.querySelector('meta[name="return-url"]').content}};document.getElementById("pay-now").addEventListener("click",(function(t){document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden"),r.stripe.createSource(e).then((function(e){if(e.hasOwnProperty("source"))return window.location=e.source.redirect.url;document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),this.errors.textContent="",this.errors.textContent=e.error.message,this.errors.hidden=!1}))}))})),this.key=t,this.stripeConnect=n,this.errors=document.getElementById("errors")}));new u(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-alipay.js ***!
|
||||||
|
\********************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessAlipay = /*#__PURE__*/_createClass(function ProcessAlipay(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessAlipay);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
var data = {
|
||||||
|
type: 'alipay',
|
||||||
|
amount: document.querySelector('meta[name="amount"]').content,
|
||||||
|
currency: document.querySelector('meta[name="currency"]').content,
|
||||||
|
redirect: {
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
}
|
||||||
|
};
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||||
|
|
||||||
|
_this.stripe.createSource(data).then(function (result) {
|
||||||
|
if (result.hasOwnProperty('source')) {
|
||||||
|
return window.location = result.source.redirect.url;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
this.errors.textContent = '';
|
||||||
|
this.errors.textContent = result.error.message;
|
||||||
|
this.errors.hidden = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
});
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessAlipay(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
80
public/js/clients/payments/stripe-bancontact.js
vendored
80
public/js/clients/payments/stripe-bancontact.js
vendored
@ -1,2 +1,78 @@
|
|||||||
/*! For license information please see stripe-bancontact.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=i((function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"setupStripe",(function(){return r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key),r})),a(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){var t=document.getElementById("errors");if(!document.getElementById("bancontact-name").value)return t.textContent=document.querySelector("meta[name=translation-name-required]").content,t.hidden=!1,void console.log("name");document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),r.stripe.confirmBancontactPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{billing_details:{name:document.getElementById("bancontact-name").value}},return_url:document.querySelector('meta[name="return-url"]').content})}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}));new c(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-bancontact.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessBANCONTACTPay = /*#__PURE__*/_createClass(function ProcessBANCONTACTPay(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessBANCONTACTPay);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
|
||||||
|
if (!document.getElementById('bancontact-name').value) {
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-name-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
console.log("name");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmBancontactPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
billing_details: {
|
||||||
|
name: document.getElementById("bancontact-name").value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
});
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessBANCONTACTPay(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
157
public/js/clients/payments/stripe-becs.js
vendored
157
public/js/clients/payments/stripe-becs.js
vendored
@ -1,2 +1,155 @@
|
|||||||
/*! For license information please see stripe-becs.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,o;function a(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=function(){function e(t,n){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r(this,"setupStripe",(function(){o.stripeConnect?o.stripe=Stripe(o.key,{stripeAccount:o.stripeConnect}):o.stripe=Stripe(o.key);var e=o.stripe.elements(),t={style:{base:{color:"#32325d",fontSize:"16px","::placeholder":{color:"#aab7c4"},":-webkit-autofill":{color:"#32325d"}},invalid:{color:"#fa755a",iconColor:"#fa755a",":-webkit-autofill":{color:"#fa755a"}}},disabled:!1,hideIcon:!1,iconStyle:"default"};return o.auBankAccount=e.create("auBankAccount",t),o.auBankAccount.mount("#becs-iban"),o})),r(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){var t=document.getElementById("errors");return""===document.getElementById("becs-name").value?(document.getElementById("becs-name").focus(),t.textContent=document.querySelector("meta[name=translation-name-required]").content,void(t.hidden=!1)):""===document.getElementById("becs-email-address").value?(document.getElementById("becs-email-address").focus(),t.textContent=document.querySelector("meta[name=translation-email-required]").content,void(t.hidden=!1)):document.getElementById("becs-mandate-acceptance").checked?(document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),void o.stripe.confirmAuBecsDebitPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{au_becs_debit:o.auBankAccount,billing_details:{name:document.getElementById("becs-name").value,email:document.getElementById("becs-email-address").value}}}).then((function(e){return e.error?o.handleFailure(e.error.message):o.handleSuccess(e)}))):(document.getElementById("becs-mandate-acceptance").focus(),t.textContent=document.querySelector("meta[name=translation-terms-required]").content,t.hidden=!1,void console.log("Terms"))}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}var t,n,o;return t=e,(n=[{key:"handleSuccess",value:function(e){document.querySelector('input[name="gateway_response"]').value=JSON.stringify(e.paymentIntent),document.getElementById("server-response").submit()}},{key:"handleFailure",value:function(e){var t=document.getElementById("errors");t.textContent="",t.textContent=e,t.hidden=!1,document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden")}}])&&a(t.prototype,n),o&&a(t,o),Object.defineProperty(t,"prototype",{writable:!1}),e}();new c(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(o=document.querySelector('meta[name="stripe-account-id"]'))||void 0===o?void 0:o.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!******************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-becs.js ***!
|
||||||
|
\******************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessBECS = /*#__PURE__*/function () {
|
||||||
|
function ProcessBECS(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessBECS);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
var elements = _this.stripe.elements();
|
||||||
|
|
||||||
|
var style = {
|
||||||
|
base: {
|
||||||
|
color: '#32325d',
|
||||||
|
fontSize: '16px',
|
||||||
|
'::placeholder': {
|
||||||
|
color: '#aab7c4'
|
||||||
|
},
|
||||||
|
':-webkit-autofill': {
|
||||||
|
color: '#32325d'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
invalid: {
|
||||||
|
color: '#fa755a',
|
||||||
|
iconColor: '#fa755a',
|
||||||
|
':-webkit-autofill': {
|
||||||
|
color: '#fa755a'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var options = {
|
||||||
|
style: style,
|
||||||
|
disabled: false,
|
||||||
|
hideIcon: false,
|
||||||
|
iconStyle: "default" // or "solid"
|
||||||
|
|
||||||
|
};
|
||||||
|
_this.auBankAccount = elements.create("auBankAccount", options);
|
||||||
|
|
||||||
|
_this.auBankAccount.mount("#becs-iban");
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
|
||||||
|
if (document.getElementById('becs-name').value === "") {
|
||||||
|
document.getElementById('becs-name').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-name-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (document.getElementById('becs-email-address').value === "") {
|
||||||
|
document.getElementById('becs-email-address').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-email-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!document.getElementById('becs-mandate-acceptance').checked) {
|
||||||
|
document.getElementById('becs-mandate-acceptance').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-terms-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
console.log("Terms");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmAuBecsDebitPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
au_becs_debit: _this.auBankAccount,
|
||||||
|
billing_details: {
|
||||||
|
name: document.getElementById("becs-name").value,
|
||||||
|
email: document.getElementById("becs-email-address").value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).then(function (result) {
|
||||||
|
if (result.error) {
|
||||||
|
return _this.handleFailure(result.error.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this.handleSuccess(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(ProcessBECS, [{
|
||||||
|
key: "handleSuccess",
|
||||||
|
value: function handleSuccess(result) {
|
||||||
|
document.querySelector('input[name="gateway_response"]').value = JSON.stringify(result.paymentIntent);
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handleFailure",
|
||||||
|
value: function handleFailure(message) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
errors.textContent = '';
|
||||||
|
errors.textContent = message;
|
||||||
|
errors.hidden = false;
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return ProcessBECS;
|
||||||
|
}();
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessBECS(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
124
public/js/clients/payments/stripe-browserpay.js
vendored
124
public/js/clients/payments/stripe-browserpay.js
vendored
@ -1,2 +1,122 @@
|
|||||||
/*! For license information please see stripe-browserpay.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(new(function(){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.clientSecret=null===(e=document.querySelector("meta[name=stripe-pi-client-secret]"))||void 0===e?void 0:e.content}var n,r,o;return n=t,(r=[{key:"init",value:function(){var e,t,n={};return document.querySelector("meta[name=stripe-account-id]")&&(n.apiVersion="2020-08-27",n.stripeAccount=null===(t=document.querySelector("meta[name=stripe-account-id]"))||void 0===t?void 0:t.content),this.stripe=Stripe(null===(e=document.querySelector("meta[name=stripe-publishable-key]"))||void 0===e?void 0:e.content,n),this.elements=this.stripe.elements(),this}},{key:"createPaymentRequest",value:function(){return this.paymentRequest=this.stripe.paymentRequest(JSON.parse(document.querySelector("meta[name=payment-request-data").content)),this}},{key:"createPaymentRequestButton",value:function(){this.paymentRequestButton=this.elements.create("paymentRequestButton",{paymentRequest:this.paymentRequest})}},{key:"handlePaymentRequestEvents",value:function(e,t){document.querySelector("#errors").hidden=!0,this.paymentRequest.on("paymentmethod",(function(n){e.confirmCardPayment(t,{payment_method:n.paymentMethod.id},{handleActions:!1}).then((function(r){r.error?(document.querySelector("#errors").innerText=r.error.message,document.querySelector("#errors").hidden=!1,n.complete("fail")):(n.complete("success"),"requires_action"===r.paymentIntent.status?e.confirmCardPayment(t).then((function(e){e.error?(n.complete("fail"),document.querySelector("#errors").innerText=e.error.message,document.querySelector("#errors").hidden=!1):(document.querySelector('input[name="gateway_response"]').value=JSON.stringify(e.paymentIntent),document.getElementById("server-response").submit())})):(document.querySelector('input[name="gateway_response"]').value=JSON.stringify(r.paymentIntent),document.getElementById("server-response").submit()))}))}))}},{key:"handle",value:function(){var e=this;this.init().createPaymentRequest().createPaymentRequestButton(),this.paymentRequest.canMakePayment().then((function(t){var n;if(t)return e.paymentRequestButton.mount("#payment-request-button");document.querySelector("#errors").innerHTML=JSON.parse(null===(n=document.querySelector("meta[name=no-available-methods]"))||void 0===n?void 0:n.content),document.querySelector("#errors").hidden=!1})),this.handlePaymentRequestEvents(this.stripe,this.clientSecret)}}])&&e(n.prototype,r),o&&e(n,o),Object.defineProperty(n,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-browserpay.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var StripeBrowserPay = /*#__PURE__*/function () {
|
||||||
|
function StripeBrowserPay() {
|
||||||
|
var _document$querySelect;
|
||||||
|
|
||||||
|
_classCallCheck(this, StripeBrowserPay);
|
||||||
|
|
||||||
|
this.clientSecret = (_document$querySelect = document.querySelector('meta[name=stripe-pi-client-secret]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.content;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(StripeBrowserPay, [{
|
||||||
|
key: "init",
|
||||||
|
value: function init() {
|
||||||
|
var _document$querySelect3;
|
||||||
|
|
||||||
|
var config = {};
|
||||||
|
|
||||||
|
if (document.querySelector('meta[name=stripe-account-id]')) {
|
||||||
|
var _document$querySelect2;
|
||||||
|
|
||||||
|
config.apiVersion = '2020-08-27';
|
||||||
|
config.stripeAccount = (_document$querySelect2 = document.querySelector('meta[name=stripe-account-id]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.stripe = Stripe((_document$querySelect3 = document.querySelector('meta[name=stripe-publishable-key]')) === null || _document$querySelect3 === void 0 ? void 0 : _document$querySelect3.content, config);
|
||||||
|
this.elements = this.stripe.elements();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "createPaymentRequest",
|
||||||
|
value: function createPaymentRequest() {
|
||||||
|
this.paymentRequest = this.stripe.paymentRequest(JSON.parse(document.querySelector('meta[name=payment-request-data').content));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "createPaymentRequestButton",
|
||||||
|
value: function createPaymentRequestButton() {
|
||||||
|
this.paymentRequestButton = this.elements.create('paymentRequestButton', {
|
||||||
|
paymentRequest: this.paymentRequest
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handlePaymentRequestEvents",
|
||||||
|
value: function handlePaymentRequestEvents(stripe, clientSecret) {
|
||||||
|
document.querySelector('#errors').hidden = true;
|
||||||
|
this.paymentRequest.on('paymentmethod', function (ev) {
|
||||||
|
stripe.confirmCardPayment(clientSecret, {
|
||||||
|
payment_method: ev.paymentMethod.id
|
||||||
|
}, {
|
||||||
|
handleActions: false
|
||||||
|
}).then(function (confirmResult) {
|
||||||
|
if (confirmResult.error) {
|
||||||
|
document.querySelector('#errors').innerText = confirmResult.error.message;
|
||||||
|
document.querySelector('#errors').hidden = false;
|
||||||
|
ev.complete('fail');
|
||||||
|
} else {
|
||||||
|
ev.complete('success');
|
||||||
|
|
||||||
|
if (confirmResult.paymentIntent.status === 'requires_action') {
|
||||||
|
stripe.confirmCardPayment(clientSecret).then(function (result) {
|
||||||
|
if (result.error) {
|
||||||
|
ev.complete('fail');
|
||||||
|
document.querySelector('#errors').innerText = result.error.message;
|
||||||
|
document.querySelector('#errors').hidden = false;
|
||||||
|
} else {
|
||||||
|
document.querySelector('input[name="gateway_response"]').value = JSON.stringify(result.paymentIntent);
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
document.querySelector('input[name="gateway_response"]').value = JSON.stringify(confirmResult.paymentIntent);
|
||||||
|
document.getElementById('server-response').submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
this.init().createPaymentRequest().createPaymentRequestButton();
|
||||||
|
this.paymentRequest.canMakePayment().then(function (result) {
|
||||||
|
var _document$querySelect4;
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
return _this.paymentRequestButton.mount('#payment-request-button');
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('#errors').innerHTML = JSON.parse((_document$querySelect4 = document.querySelector('meta[name=no-available-methods]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content);
|
||||||
|
document.querySelector('#errors').hidden = false;
|
||||||
|
});
|
||||||
|
this.handlePaymentRequestEvents(this.stripe, this.clientSecret);
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return StripeBrowserPay;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new StripeBrowserPay().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
221
public/js/clients/payments/stripe-credit-card.js
vendored
221
public/js/clients/payments/stripe-credit-card.js
vendored
File diff suppressed because one or more lines are too long
99
public/js/clients/payments/stripe-eps.js
vendored
99
public/js/clients/payments/stripe-eps.js
vendored
@ -1,2 +1,97 @@
|
|||||||
/*! For license information please see stripe-eps.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=i((function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"setupStripe",(function(){r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key);var e=r.stripe.elements();return r.eps=e.create("epsBank",{style:{base:{padding:"10px 12px",color:"#32325d",fontSize:"16px","::placeholder":{color:"#aab7c4"}}}}),r.eps.mount("#eps-bank-element"),r})),a(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){var t=document.getElementById("errors");if(!document.getElementById("eps-name").value)return t.textContent=document.querySelector("meta[name=translation-name-required]").content,t.hidden=!1,void console.log("name");document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),r.stripe.confirmEpsPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{eps:r.eps,billing_details:{name:document.getElementById("ideal-name").value}},return_url:document.querySelector('meta[name="return-url"]').content})}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}));new c(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*****************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-eps.js ***!
|
||||||
|
\*****************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessEPSPay = /*#__PURE__*/_createClass(function ProcessEPSPay(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessEPSPay);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
var elements = _this.stripe.elements();
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
style: {
|
||||||
|
base: {
|
||||||
|
padding: '10px 12px',
|
||||||
|
color: '#32325d',
|
||||||
|
fontSize: '16px',
|
||||||
|
'::placeholder': {
|
||||||
|
color: '#aab7c4'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
_this.eps = elements.create('epsBank', options);
|
||||||
|
|
||||||
|
_this.eps.mount("#eps-bank-element");
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
|
||||||
|
if (!document.getElementById('eps-name').value) {
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-name-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
console.log("name");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmEpsPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
eps: _this.eps,
|
||||||
|
billing_details: {
|
||||||
|
name: document.getElementById("ideal-name").value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
});
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessEPSPay(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
109
public/js/clients/payments/stripe-fpx.js
vendored
109
public/js/clients/payments/stripe-fpx.js
vendored
@ -1,2 +1,107 @@
|
|||||||
/*! For license information please see stripe-fpx.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var a=function(){function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i(this,"setupStripe",(function(){r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key);var e=r.stripe.elements();return r.fpx=e.create("fpxBank",{style:{base:{padding:"10px 12px",color:"#32325d",fontSize:"16px"}},accountHolderType:"individual"}),r.fpx.mount("#fpx-bank-element"),r})),i(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),r.stripe.confirmFpxPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{fpx:r.fpx},return_url:document.querySelector('meta[name="return-url"]').content}).then((function(e){e.error&&r.handleFailure(e.error.message)}))}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}var t,n,r;return t=e,(n=[{key:"handleFailure",value:function(e){var t=document.getElementById("errors");t.textContent="",t.textContent=e,t.hidden=!1,document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden")}}])&&o(t.prototype,n),r&&o(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();new a(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*****************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-fpx.js ***!
|
||||||
|
\*****************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessFPXPay = /*#__PURE__*/function () {
|
||||||
|
function ProcessFPXPay(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessFPXPay);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
var elements = _this.stripe.elements();
|
||||||
|
|
||||||
|
var style = {
|
||||||
|
base: {
|
||||||
|
// Add your base input styles here. For example:
|
||||||
|
padding: '10px 12px',
|
||||||
|
color: '#32325d',
|
||||||
|
fontSize: '16px'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
_this.fpx = elements.create('fpxBank', {
|
||||||
|
style: style,
|
||||||
|
accountHolderType: 'individual'
|
||||||
|
});
|
||||||
|
|
||||||
|
_this.fpx.mount("#fpx-bank-element");
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmFpxPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
fpx: _this.fpx
|
||||||
|
},
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
}).then(function (result) {
|
||||||
|
if (result.error) {
|
||||||
|
_this.handleFailure(result.error.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(ProcessFPXPay, [{
|
||||||
|
key: "handleFailure",
|
||||||
|
value: function handleFailure(message) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
errors.textContent = '';
|
||||||
|
errors.textContent = message;
|
||||||
|
errors.hidden = false;
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return ProcessFPXPay;
|
||||||
|
}();
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessFPXPay(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
80
public/js/clients/payments/stripe-giropay.js
vendored
80
public/js/clients/payments/stripe-giropay.js
vendored
@ -1,2 +1,78 @@
|
|||||||
/*! For license information please see stripe-giropay.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=i((function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"setupStripe",(function(){return r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key),r})),a(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){var t=document.getElementById("errors");if(!document.getElementById("giropay-mandate-acceptance").checked)return t.textContent=document.querySelector("meta[name=translation-terms-required]").content,t.hidden=!1,void console.log("Terms");document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),r.stripe.confirmGiropayPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{billing_details:{name:document.getElementById("giropay-name").value}},return_url:document.querySelector('meta[name="return-url"]').content})}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}));new c(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-giropay.js ***!
|
||||||
|
\*********************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessGiroPay = /*#__PURE__*/_createClass(function ProcessGiroPay(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessGiroPay);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
|
||||||
|
if (!document.getElementById('giropay-mandate-acceptance').checked) {
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-terms-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
console.log("Terms");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmGiropayPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
billing_details: {
|
||||||
|
name: document.getElementById("giropay-name").value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
});
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessGiroPay(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
99
public/js/clients/payments/stripe-ideal.js
vendored
99
public/js/clients/payments/stripe-ideal.js
vendored
@ -1,2 +1,97 @@
|
|||||||
/*! For license information please see stripe-ideal.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=i((function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"setupStripe",(function(){r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key);var e=r.stripe.elements();return r.ideal=e.create("idealBank",{style:{base:{padding:"10px 12px",color:"#32325d",fontSize:"16px","::placeholder":{color:"#aab7c4"}}}}),r.ideal.mount("#ideal-bank-element"),r})),a(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){var t=document.getElementById("errors");if(!document.getElementById("ideal-name").value)return t.textContent=document.querySelector("meta[name=translation-name-required]").content,t.hidden=!1,void console.log("name");document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),r.stripe.confirmIdealPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{ideal:r.ideal,billing_details:{name:document.getElementById("ideal-name").value}},return_url:document.querySelector('meta[name="return-url"]').content})}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}));new l(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*******************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-ideal.js ***!
|
||||||
|
\*******************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessIDEALPay = /*#__PURE__*/_createClass(function ProcessIDEALPay(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessIDEALPay);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
var elements = _this.stripe.elements();
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
style: {
|
||||||
|
base: {
|
||||||
|
padding: '10px 12px',
|
||||||
|
color: '#32325d',
|
||||||
|
fontSize: '16px',
|
||||||
|
'::placeholder': {
|
||||||
|
color: '#aab7c4'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
_this.ideal = elements.create('idealBank', options);
|
||||||
|
|
||||||
|
_this.ideal.mount("#ideal-bank-element");
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
|
||||||
|
if (!document.getElementById('ideal-name').value) {
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-name-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
console.log("name");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmIdealPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
ideal: _this.ideal,
|
||||||
|
billing_details: {
|
||||||
|
name: document.getElementById("ideal-name").value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
});
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessIDEALPay(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
104
public/js/clients/payments/stripe-klarna.js
vendored
104
public/js/clients/payments/stripe-klarna.js
vendored
@ -1,2 +1,102 @@
|
|||||||
/*! For license information please see stripe-klarna.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i=a((function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"setupStripe",(function(){return r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key),r})),c(this,"handleError",(function(e){document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden"),r.errors.textContent="",r.errors.textContent=e,r.errors.hidden=!1})),c(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){var t=document.getElementById("errors"),n=document.getElementById("klarna-name").value;/^[A-Za-z\s]*$/.test(n)?(document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),r.stripe.confirmKlarnaPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{billing_details:{name:n,email:document.querySelector("meta[name=email]").content,address:{line1:document.querySelector("meta[name=address-1]").content,line2:document.querySelector("meta[name=address-2]").content,city:document.querySelector("meta[name=city]").content,postal_code:document.querySelector("meta[name=postal_code]").content,state:document.querySelector("meta[name=state]").content,country:document.querySelector("meta[name=country]").content}}},return_url:document.querySelector('meta[name="return-url"]').content}).then((function(e){if(e.hasOwnProperty("error"))return r.handleError(e.error.message)}))):(document.getElementById("klarna-name-correction").hidden=!1,document.getElementById("klarna-name").textContent=n.replace(/^[A-Za-z\s]*$/,""),document.getElementById("klarna-name").focus(),t.textContent=document.querySelector("meta[name=translation-name-without-special-characters]").content,t.hidden=!1)}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}));new i(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-klarna.js ***!
|
||||||
|
\********************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessKlarna = /*#__PURE__*/_createClass(function ProcessKlarna(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessKlarna);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handleError", function (message) {
|
||||||
|
document.getElementById('pay-now').disabled = false;
|
||||||
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||||
|
_this.errors.textContent = '';
|
||||||
|
_this.errors.textContent = message;
|
||||||
|
_this.errors.hidden = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
var name = document.getElementById("klarna-name").value;
|
||||||
|
|
||||||
|
if (!/^[A-Za-z\s]*$/.test(name)) {
|
||||||
|
document.getElementById('klarna-name-correction').hidden = false;
|
||||||
|
document.getElementById('klarna-name').textContent = name.replace(/^[A-Za-z\s]*$/, "");
|
||||||
|
document.getElementById('klarna-name').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-name-without-special-characters]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
} else {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmKlarnaPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
billing_details: {
|
||||||
|
name: name,
|
||||||
|
email: document.querySelector('meta[name=email]').content,
|
||||||
|
address: {
|
||||||
|
line1: document.querySelector('meta[name=address-1]').content,
|
||||||
|
line2: document.querySelector('meta[name=address-2]').content,
|
||||||
|
city: document.querySelector('meta[name=city]').content,
|
||||||
|
postal_code: document.querySelector('meta[name=postal_code]').content,
|
||||||
|
state: document.querySelector('meta[name=state]').content,
|
||||||
|
country: document.querySelector('meta[name=country]').content
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
}).then(function (result) {
|
||||||
|
if (result.hasOwnProperty('error')) {
|
||||||
|
return _this.handleError(result.error.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
});
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessKlarna(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
120
public/js/clients/payments/stripe-przelewy24.js
vendored
120
public/js/clients/payments/stripe-przelewy24.js
vendored
@ -1,2 +1,118 @@
|
|||||||
/*! For license information please see stripe-przelewy24.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,o;function a(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function r(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=r((function e(t,n){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"setupStripe",(function(){o.stripeConnect?o.stripe=Stripe(o.key,{stripeAccount:o.stripeConnect}):o.stripe=Stripe(o.key);var e=o.stripe.elements();return o.p24bank=e.create("p24Bank",{style:{base:{padding:"10px 12px",color:"#32325d",fontSize:"16px","::placeholder":{color:"#aab7c4"}}}}),o.p24bank.mount("#p24-bank-element"),o})),c(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){var t=document.getElementById("errors");return""===document.getElementById("p24-name").value?(document.getElementById("p24-name").focus(),t.textContent=document.querySelector("meta[name=translation-name-required]").content,void(t.hidden=!1)):""===document.getElementById("p24-email-address").value?(document.getElementById("p24-email-address").focus(),t.textContent=document.querySelector("meta[name=translation-email-required]").content,void(t.hidden=!1)):document.getElementById("p24-mandate-acceptance").checked?(document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),void o.stripe.confirmP24Payment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{p24:o.p24bank,billing_details:{name:document.getElementById("p24-name").value,email:document.getElementById("p24-email-address").value}},payment_method_options:{p24:{tos_shown_and_accepted:document.getElementById("p24-mandate-acceptance").checked}},return_url:document.querySelector('meta[name="return-url"]').content})):(document.getElementById("p24-mandate-acceptance").focus(),t.textContent=document.querySelector("meta[name=translation-terms-required]").content,void(t.hidden=!1))}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}));new d(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(o=document.querySelector('meta[name="stripe-account-id"]'))||void 0===o?void 0:o.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-przelewy24.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessPRZELEWY24 = /*#__PURE__*/_createClass(function ProcessPRZELEWY24(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessPRZELEWY24);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
var elements = _this.stripe.elements();
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
// Custom styling can be passed to options when creating an Element
|
||||||
|
style: {
|
||||||
|
base: {
|
||||||
|
padding: '10px 12px',
|
||||||
|
color: '#32325d',
|
||||||
|
fontSize: '16px',
|
||||||
|
'::placeholder': {
|
||||||
|
color: '#aab7c4'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
_this.p24bank = elements.create('p24Bank', options);
|
||||||
|
|
||||||
|
_this.p24bank.mount('#p24-bank-element');
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
var errors = document.getElementById('errors');
|
||||||
|
|
||||||
|
if (document.getElementById('p24-name').value === "") {
|
||||||
|
document.getElementById('p24-name').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-name-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (document.getElementById('p24-email-address').value === "") {
|
||||||
|
document.getElementById('p24-email-address').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-email-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!document.getElementById('p24-mandate-acceptance').checked) {
|
||||||
|
document.getElementById('p24-mandate-acceptance').focus();
|
||||||
|
errors.textContent = document.querySelector('meta[name=translation-terms-required]').content;
|
||||||
|
errors.hidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmP24Payment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
p24: _this.p24bank,
|
||||||
|
billing_details: {
|
||||||
|
name: document.getElementById('p24-name').value,
|
||||||
|
email: document.getElementById('p24-email-address').value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
payment_method_options: {
|
||||||
|
p24: {
|
||||||
|
tos_shown_and_accepted: document.getElementById('p24-mandate-acceptance').checked
|
||||||
|
}
|
||||||
|
},
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
});
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessPRZELEWY24(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
196
public/js/clients/payments/stripe-sepa.js
vendored
196
public/js/clients/payments/stripe-sepa.js
vendored
File diff suppressed because one or more lines are too long
71
public/js/clients/payments/stripe-sofort.js
vendored
71
public/js/clients/payments/stripe-sofort.js
vendored
@ -1,2 +1,69 @@
|
|||||||
/*! For license information please see stripe-sofort.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{var e,t,n,r;function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=i((function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"setupStripe",(function(){return r.stripeConnect?r.stripe=Stripe(r.key,{stripeAccount:r.stripeConnect}):r.stripe=Stripe(r.key),r})),c(this,"handle",(function(){document.getElementById("pay-now").addEventListener("click",(function(e){document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),r.stripe.confirmSofortPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{sofort:{country:document.querySelector('meta[name="country"]').content}},return_url:document.querySelector('meta[name="return-url"]').content})}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}));new u(null!==(e=null===(t=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===t?void 0:t.content)&&void 0!==e?e:"",null!==(n=null===(r=document.querySelector('meta[name="stripe-account-id"]'))||void 0===r?void 0:r.content)&&void 0!==n?n:"").setupStripe().handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/payments/stripe-sofort.js ***!
|
||||||
|
\********************************************************/
|
||||||
|
var _document$querySelect, _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ProcessSOFORT = /*#__PURE__*/_createClass(function ProcessSOFORT(key, stripeConnect) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
_classCallCheck(this, ProcessSOFORT);
|
||||||
|
|
||||||
|
_defineProperty(this, "setupStripe", function () {
|
||||||
|
if (_this.stripeConnect) {
|
||||||
|
// this.stripe.stripeAccount = this.stripeConnect;
|
||||||
|
_this.stripe = Stripe(_this.key, {
|
||||||
|
stripeAccount: _this.stripeConnect
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_this.stripe = Stripe(_this.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _this;
|
||||||
|
});
|
||||||
|
|
||||||
|
_defineProperty(this, "handle", function () {
|
||||||
|
document.getElementById('pay-now').addEventListener('click', function (e) {
|
||||||
|
document.getElementById('pay-now').disabled = true;
|
||||||
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
|
|
||||||
|
_this.stripe.confirmSofortPayment(document.querySelector('meta[name=pi-client-secret').content, {
|
||||||
|
payment_method: {
|
||||||
|
sofort: {
|
||||||
|
country: document.querySelector('meta[name="country"]').content
|
||||||
|
}
|
||||||
|
},
|
||||||
|
return_url: document.querySelector('meta[name="return-url"]').content
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.errors = document.getElementById('errors');
|
||||||
|
this.stripeConnect = stripeConnect;
|
||||||
|
});
|
||||||
|
|
||||||
|
var publishableKey = (_document$querySelect = (_document$querySelect2 = document.querySelector('meta[name="stripe-publishable-key"]')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
|
||||||
|
var stripeConnect = (_document$querySelect3 = (_document$querySelect4 = document.querySelector('meta[name="stripe-account-id"]')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.content) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '';
|
||||||
|
new ProcessSOFORT(publishableKey, stripeConnect).setupStripe().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
224
public/js/clients/payments/wepay-credit-card.js
vendored
224
public/js/clients/payments/wepay-credit-card.js
vendored
File diff suppressed because one or more lines are too long
114
public/js/clients/purchase_orders/accept.js
vendored
114
public/js/clients/purchase_orders/accept.js
vendored
@ -1,2 +1,112 @@
|
|||||||
/*! For license information please see accept.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}var t=function(){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.shouldDisplaySignature=e,this.shouldDisplayTerms=n,this.termsAccepted=!1}var n,a,r;return n=t,(a=[{key:"submitForm",value:function(){document.getElementById("approve-form").submit()}},{key:"displaySignature",value:function(){document.getElementById("displaySignatureModal").removeAttribute("style");var e=new SignaturePad(document.getElementById("signature-pad"),{penColor:"rgb(0, 0, 0)"});e.onEnd=function(){document.getElementById("signature-next-step").disabled=!1},this.signaturePad=e}},{key:"displayTerms",value:function(){document.getElementById("displayTermsModal").removeAttribute("style")}},{key:"handle",value:function(){var e=this;document.getElementById("signature-next-step").disabled=!0,document.getElementById("approve-button").addEventListener("click",(function(){e.shouldDisplaySignature&&e.shouldDisplayTerms&&(e.displaySignature(),document.getElementById("signature-next-step").addEventListener("click",(function(){e.displayTerms(),document.getElementById("accept-terms-button").addEventListener("click",(function(){document.querySelector('input[name="signature"').value=e.signaturePad.toDataURL(),e.termsAccepted=!0,e.submitForm()}))}))),e.shouldDisplaySignature&&!e.shouldDisplayTerms&&(e.displaySignature(),document.getElementById("signature-next-step").addEventListener("click",(function(){document.querySelector('input[name="signature"').value=e.signaturePad.toDataURL(),e.submitForm()}))),!e.shouldDisplaySignature&&e.shouldDisplayTerms&&(e.displayTerms(),document.getElementById("accept-terms-button").addEventListener("click",(function(){e.termsAccepted=!0,e.submitForm()}))),e.shouldDisplaySignature||e.shouldDisplayTerms||e.submitForm()}))}}])&&e(n.prototype,a),r&&e(n,r),Object.defineProperty(n,"prototype",{writable:!1}),t}(),n=document.querySelector('meta[name="require-purchase_order-signature"]').content,a=document.querySelector('meta[name="show-purchase_order-terms"]').content;new t(Boolean(+n),Boolean(+a)).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/purchase_orders/accept.js ***!
|
||||||
|
\********************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var Accept = /*#__PURE__*/function () {
|
||||||
|
function Accept(displaySignature, displayTerms) {
|
||||||
|
_classCallCheck(this, Accept);
|
||||||
|
|
||||||
|
this.shouldDisplaySignature = displaySignature;
|
||||||
|
this.shouldDisplayTerms = displayTerms;
|
||||||
|
this.termsAccepted = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(Accept, [{
|
||||||
|
key: "submitForm",
|
||||||
|
value: function submitForm() {
|
||||||
|
document.getElementById('approve-form').submit();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "displaySignature",
|
||||||
|
value: function displaySignature() {
|
||||||
|
var displaySignatureModal = document.getElementById('displaySignatureModal');
|
||||||
|
displaySignatureModal.removeAttribute('style');
|
||||||
|
var signaturePad = new SignaturePad(document.getElementById('signature-pad'), {
|
||||||
|
penColor: 'rgb(0, 0, 0)'
|
||||||
|
});
|
||||||
|
|
||||||
|
signaturePad.onEnd = function () {
|
||||||
|
document.getElementById("signature-next-step").disabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.signaturePad = signaturePad;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "displayTerms",
|
||||||
|
value: function displayTerms() {
|
||||||
|
var displayTermsModal = document.getElementById("displayTermsModal");
|
||||||
|
displayTermsModal.removeAttribute("style");
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
document.getElementById("signature-next-step").disabled = true;
|
||||||
|
document.getElementById('approve-button').addEventListener('click', function () {
|
||||||
|
if (_this.shouldDisplaySignature && _this.shouldDisplayTerms) {
|
||||||
|
_this.displaySignature();
|
||||||
|
|
||||||
|
document.getElementById('signature-next-step').addEventListener('click', function () {
|
||||||
|
_this.displayTerms();
|
||||||
|
|
||||||
|
document.getElementById('accept-terms-button').addEventListener('click', function () {
|
||||||
|
document.querySelector('input[name="signature"').value = _this.signaturePad.toDataURL();
|
||||||
|
_this.termsAccepted = true;
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_this.shouldDisplaySignature && !_this.shouldDisplayTerms) {
|
||||||
|
_this.displaySignature();
|
||||||
|
|
||||||
|
document.getElementById('signature-next-step').addEventListener('click', function () {
|
||||||
|
document.querySelector('input[name="signature"').value = _this.signaturePad.toDataURL();
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_this.shouldDisplaySignature && _this.shouldDisplayTerms) {
|
||||||
|
_this.displayTerms();
|
||||||
|
|
||||||
|
document.getElementById('accept-terms-button').addEventListener('click', function () {
|
||||||
|
_this.termsAccepted = true;
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_this.shouldDisplaySignature && !_this.shouldDisplayTerms) {
|
||||||
|
_this.submitForm();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Accept;
|
||||||
|
}();
|
||||||
|
|
||||||
|
var signature = document.querySelector('meta[name="require-purchase_order-signature"]').content;
|
||||||
|
var terms = document.querySelector('meta[name="show-purchase_order-terms"]').content;
|
||||||
|
new Accept(Boolean(+signature), Boolean(+terms)).handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
@ -1,2 +1,136 @@
|
|||||||
/*! For license information please see action-selectors.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,n){if(!e)return;if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return t(e,n)}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0,c=function(){};return{s:c,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw i}}}}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(new(function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.parentElement=document.querySelector(".form-check-parent"),this.parentForm=document.getElementById("bulkActions")}var r,o,c;return r=t,o=[{key:"watchCheckboxes",value:function(e){var t=this;document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),document.querySelectorAll(".form-check-child").forEach((function(n){e.checked?(n.checked=e.checked,t.processChildItem(n,document.getElementById("bulkActions"))):(n.checked=!1,document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})))}))}},{key:"processChildItem",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(r.hasOwnProperty("single")&&document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),!1!==t.checked){var o=document.createElement("INPUT");o.setAttribute("name","purchase_orders[]"),o.setAttribute("value",t.dataset.value),o.setAttribute("class","child-hidden-input"),o.hidden=!0,n.append(o)}else{var c,i=document.querySelectorAll("input.child-hidden-input"),a=e(i);try{for(a.s();!(c=a.n()).done;){var l=c.value;l.value==t.dataset.value&&l.remove()}}catch(e){a.e(e)}finally{a.f()}}}},{key:"handle",value:function(){var t=this;this.parentElement.addEventListener("click",(function(){t.watchCheckboxes(t.parentElement)}));var n,r=e(document.querySelectorAll(".form-check-child"));try{var o=function(){var e=n.value;e.addEventListener("click",(function(){t.processChildItem(e,t.parentForm)}))};for(r.s();!(n=r.n()).done;)o()}catch(e){r.e(e)}finally{r.f()}}}],o&&n(r.prototype,o),c&&n(r,c),Object.defineProperty(r,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./resources/js/clients/purchase_orders/action-selectors.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
||||||
|
|
||||||
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||||
|
|
||||||
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ActionSelectors = /*#__PURE__*/function () {
|
||||||
|
function ActionSelectors() {
|
||||||
|
_classCallCheck(this, ActionSelectors);
|
||||||
|
|
||||||
|
this.parentElement = document.querySelector('.form-check-parent');
|
||||||
|
this.parentForm = document.getElementById('bulkActions');
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(ActionSelectors, [{
|
||||||
|
key: "watchCheckboxes",
|
||||||
|
value: function watchCheckboxes(parentElement) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
document.querySelectorAll('.form-check-child').forEach(function (child) {
|
||||||
|
if (parentElement.checked) {
|
||||||
|
child.checked = parentElement.checked;
|
||||||
|
|
||||||
|
_this.processChildItem(child, document.getElementById('bulkActions'));
|
||||||
|
} else {
|
||||||
|
child.checked = false;
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "processChildItem",
|
||||||
|
value: function processChildItem(element, parent) {
|
||||||
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||||
|
|
||||||
|
if (options.hasOwnProperty('single')) {
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.checked === false) {
|
||||||
|
var inputs = document.querySelectorAll('input.child-hidden-input');
|
||||||
|
|
||||||
|
var _iterator = _createForOfIteratorHelper(inputs),
|
||||||
|
_step;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||||
|
var i = _step.value;
|
||||||
|
if (i.value == element.dataset.value) i.remove();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_iterator.e(err);
|
||||||
|
} finally {
|
||||||
|
_iterator.f();
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _temp = document.createElement('INPUT');
|
||||||
|
|
||||||
|
_temp.setAttribute('name', 'purchase_orders[]');
|
||||||
|
|
||||||
|
_temp.setAttribute('value', element.dataset.value);
|
||||||
|
|
||||||
|
_temp.setAttribute('class', 'child-hidden-input');
|
||||||
|
|
||||||
|
_temp.hidden = true;
|
||||||
|
parent.append(_temp);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
this.parentElement.addEventListener('click', function () {
|
||||||
|
_this2.watchCheckboxes(_this2.parentElement);
|
||||||
|
});
|
||||||
|
|
||||||
|
var _iterator2 = _createForOfIteratorHelper(document.querySelectorAll('.form-check-child')),
|
||||||
|
_step2;
|
||||||
|
|
||||||
|
try {
|
||||||
|
var _loop = function _loop() {
|
||||||
|
var child = _step2.value;
|
||||||
|
child.addEventListener('click', function () {
|
||||||
|
_this2.processChildItem(child, _this2.parentForm);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
||||||
|
_loop();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_iterator2.e(err);
|
||||||
|
} finally {
|
||||||
|
_iterator2.f();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return ActionSelectors;
|
||||||
|
}();
|
||||||
|
/** @handle **/
|
||||||
|
|
||||||
|
|
||||||
|
new ActionSelectors().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
138
public/js/clients/quotes/action-selectors.js
vendored
138
public/js/clients/quotes/action-selectors.js
vendored
@ -1,2 +1,136 @@
|
|||||||
/*! For license information please see action-selectors.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,n){if(!e)return;if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return t(e,n)}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0,c=function(){};return{s:c,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw i}}}}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(new(function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.parentElement=document.querySelector(".form-check-parent"),this.parentForm=document.getElementById("bulkActions")}var r,o,c;return r=t,o=[{key:"watchCheckboxes",value:function(e){var t=this;document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),document.querySelectorAll(".form-check-child").forEach((function(n){e.checked?(n.checked=e.checked,t.processChildItem(n,document.getElementById("bulkActions"))):(n.checked=!1,document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})))}))}},{key:"processChildItem",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(r.hasOwnProperty("single")&&document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),!1!==t.checked){var o=document.createElement("INPUT");o.setAttribute("name","quotes[]"),o.setAttribute("value",t.dataset.value),o.setAttribute("class","child-hidden-input"),o.hidden=!0,n.append(o)}else{var c,i=document.querySelectorAll("input.child-hidden-input"),a=e(i);try{for(a.s();!(c=a.n()).done;){var l=c.value;l.value==t.dataset.value&&l.remove()}}catch(e){a.e(e)}finally{a.f()}}}},{key:"handle",value:function(){var t=this;this.parentElement.addEventListener("click",(function(){t.watchCheckboxes(t.parentElement)}));var n,r=e(document.querySelectorAll(".form-check-child"));try{var o=function(){var e=n.value;e.addEventListener("click",(function(){t.processChildItem(e,t.parentForm)}))};for(r.s();!(n=r.n()).done;)o()}catch(e){r.e(e)}finally{r.f()}}}],o&&n(r.prototype,o),c&&n(r,c),Object.defineProperty(r,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/quotes/action-selectors.js ***!
|
||||||
|
\*********************************************************/
|
||||||
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
||||||
|
|
||||||
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||||
|
|
||||||
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var ActionSelectors = /*#__PURE__*/function () {
|
||||||
|
function ActionSelectors() {
|
||||||
|
_classCallCheck(this, ActionSelectors);
|
||||||
|
|
||||||
|
this.parentElement = document.querySelector('.form-check-parent');
|
||||||
|
this.parentForm = document.getElementById('bulkActions');
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(ActionSelectors, [{
|
||||||
|
key: "watchCheckboxes",
|
||||||
|
value: function watchCheckboxes(parentElement) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
document.querySelectorAll('.form-check-child').forEach(function (child) {
|
||||||
|
if (parentElement.checked) {
|
||||||
|
child.checked = parentElement.checked;
|
||||||
|
|
||||||
|
_this.processChildItem(child, document.getElementById('bulkActions'));
|
||||||
|
} else {
|
||||||
|
child.checked = false;
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "processChildItem",
|
||||||
|
value: function processChildItem(element, parent) {
|
||||||
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||||
|
|
||||||
|
if (options.hasOwnProperty('single')) {
|
||||||
|
document.querySelectorAll('.child-hidden-input').forEach(function (element) {
|
||||||
|
return element.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.checked === false) {
|
||||||
|
var inputs = document.querySelectorAll('input.child-hidden-input');
|
||||||
|
|
||||||
|
var _iterator = _createForOfIteratorHelper(inputs),
|
||||||
|
_step;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||||
|
var i = _step.value;
|
||||||
|
if (i.value == element.dataset.value) i.remove();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_iterator.e(err);
|
||||||
|
} finally {
|
||||||
|
_iterator.f();
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _temp = document.createElement('INPUT');
|
||||||
|
|
||||||
|
_temp.setAttribute('name', 'quotes[]');
|
||||||
|
|
||||||
|
_temp.setAttribute('value', element.dataset.value);
|
||||||
|
|
||||||
|
_temp.setAttribute('class', 'child-hidden-input');
|
||||||
|
|
||||||
|
_temp.hidden = true;
|
||||||
|
parent.append(_temp);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
this.parentElement.addEventListener('click', function () {
|
||||||
|
_this2.watchCheckboxes(_this2.parentElement);
|
||||||
|
});
|
||||||
|
|
||||||
|
var _iterator2 = _createForOfIteratorHelper(document.querySelectorAll('.form-check-child')),
|
||||||
|
_step2;
|
||||||
|
|
||||||
|
try {
|
||||||
|
var _loop = function _loop() {
|
||||||
|
var child = _step2.value;
|
||||||
|
child.addEventListener('click', function () {
|
||||||
|
_this2.processChildItem(child, _this2.parentForm);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
||||||
|
_loop();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_iterator2.e(err);
|
||||||
|
} finally {
|
||||||
|
_iterator2.f();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return ActionSelectors;
|
||||||
|
}();
|
||||||
|
/** @handle **/
|
||||||
|
|
||||||
|
|
||||||
|
new ActionSelectors().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
145
public/js/clients/quotes/approve.js
vendored
145
public/js/clients/quotes/approve.js
vendored
@ -1,2 +1,143 @@
|
|||||||
/*! For license information please see approve.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}var t=function(){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.shouldDisplaySignature=e,this.shouldDisplayTerms=n,this.termsAccepted=!1}var n,a,u;return n=t,(a=[{key:"submitForm",value:function(){document.getElementById("approve-form").submit()}},{key:"displaySignature",value:function(){document.getElementById("displaySignatureModal").removeAttribute("style");var e=new SignaturePad(document.getElementById("signature-pad"),{penColor:"rgb(0, 0, 0)"});e.onEnd=function(){document.getElementById("signature-next-step").disabled=!1},this.signaturePad=e}},{key:"displayTerms",value:function(){document.getElementById("displayTermsModal").removeAttribute("style")}},{key:"handle",value:function(){var e=this;document.getElementById("signature-next-step").disabled=!0,document.getElementById("close_button").addEventListener("click",(function(){var e=document.getElementById("approve-button");e&&(e.disabled=!1)})),document.getElementById("approve-button").addEventListener("click",(function(){e.shouldDisplaySignature&&e.shouldDisplayTerms&&(e.displaySignature(),document.getElementById("signature-next-step").addEventListener("click",(function(){e.displayTerms(),document.getElementById("accept-terms-button").addEventListener("click",(function(){document.querySelector('input[name="signature"').value=e.signaturePad.toDataURL(),e.termsAccepted=!0,e.submitForm()}))}))),e.shouldDisplaySignature&&!e.shouldDisplayTerms&&(e.displaySignature(),document.getElementById("signature-next-step").addEventListener("click",(function(){document.querySelector('input[name="signature"').value=e.signaturePad.toDataURL(),e.submitForm()}))),!e.shouldDisplaySignature&&e.shouldDisplayTerms&&(e.displayTerms(),document.getElementById("accept-terms-button").addEventListener("click",(function(){e.termsAccepted=!0,e.submitForm()}))),e.shouldDisplaySignature||e.shouldDisplayTerms||e.submitForm()}))}}])&&e(n.prototype,a),u&&e(n,u),Object.defineProperty(n,"prototype",{writable:!1}),t}(),n=document.querySelector('meta[name="require-quote-signature"]').content,a=document.querySelector('meta[name="show-quote-terms"]').content;new t(Boolean(+n),Boolean(+a)).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!************************************************!*\
|
||||||
|
!*** ./resources/js/clients/quotes/approve.js ***!
|
||||||
|
\************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var Approve = /*#__PURE__*/function () {
|
||||||
|
function Approve(displaySignature, displayTerms, userInput) {
|
||||||
|
_classCallCheck(this, Approve);
|
||||||
|
|
||||||
|
this.shouldDisplaySignature = displaySignature;
|
||||||
|
this.shouldDisplayTerms = displayTerms;
|
||||||
|
this.shouldDisplayUserInput = userInput;
|
||||||
|
this.termsAccepted = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(Approve, [{
|
||||||
|
key: "submitForm",
|
||||||
|
value: function submitForm() {
|
||||||
|
document.getElementById('approve-form').submit();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "displaySignature",
|
||||||
|
value: function displaySignature() {
|
||||||
|
var displaySignatureModal = document.getElementById('displaySignatureModal');
|
||||||
|
displaySignatureModal.removeAttribute('style');
|
||||||
|
var signaturePad = new SignaturePad(document.getElementById('signature-pad'), {
|
||||||
|
penColor: 'rgb(0, 0, 0)'
|
||||||
|
});
|
||||||
|
|
||||||
|
signaturePad.onEnd = function () {
|
||||||
|
document.getElementById("signature-next-step").disabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.signaturePad = signaturePad;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "displayTerms",
|
||||||
|
value: function displayTerms() {
|
||||||
|
var displayTermsModal = document.getElementById("displayTermsModal");
|
||||||
|
displayTermsModal.removeAttribute("style");
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "displayInput",
|
||||||
|
value: function displayInput() {
|
||||||
|
var displayInputModal = document.getElementById("displayInputModal");
|
||||||
|
displayInputModal.removeAttribute("style");
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
document.getElementById("signature-next-step").disabled = true;
|
||||||
|
document.getElementById("close_button").addEventListener('click', function () {
|
||||||
|
var approveButton = document.getElementById("approve-button");
|
||||||
|
if (approveButton) approveButton.disabled = false;
|
||||||
|
});
|
||||||
|
document.getElementById("hide_close").addEventListener('click', function () {
|
||||||
|
var approveButton = document.getElementById("approve-button");
|
||||||
|
if (approveButton) approveButton.disabled = false;
|
||||||
|
});
|
||||||
|
document.getElementById('approve-button').addEventListener('click', function () {
|
||||||
|
if (!_this.shouldDisplaySignature && !_this.shouldDisplayTerms && _this.shouldDisplayUserInput) {
|
||||||
|
_this.displayInput();
|
||||||
|
|
||||||
|
document.getElementById('input-next-step').addEventListener('click', function () {
|
||||||
|
document.querySelector('input[name="user_input"').value = document.getElementById('user_input').value;
|
||||||
|
_this.termsAccepted = true;
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_this.shouldDisplayUserInput) _this.displayInput();
|
||||||
|
|
||||||
|
if (_this.shouldDisplaySignature && _this.shouldDisplayTerms) {
|
||||||
|
_this.displaySignature();
|
||||||
|
|
||||||
|
document.getElementById('signature-next-step').addEventListener('click', function () {
|
||||||
|
_this.displayTerms();
|
||||||
|
|
||||||
|
document.getElementById('accept-terms-button').addEventListener('click', function () {
|
||||||
|
document.querySelector('input[name="signature"').value = _this.signaturePad.toDataURL();
|
||||||
|
document.querySelector('input[name="user_input"').value = document.getElementById('user_input').value;
|
||||||
|
_this.termsAccepted = true;
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_this.shouldDisplaySignature && !_this.shouldDisplayTerms) {
|
||||||
|
_this.displaySignature();
|
||||||
|
|
||||||
|
document.getElementById('signature-next-step').addEventListener('click', function () {
|
||||||
|
document.querySelector('input[name="signature"').value = _this.signaturePad.toDataURL();
|
||||||
|
document.querySelector('input[name="user_input"').value = document.getElementById('user_input').value;
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_this.shouldDisplaySignature && _this.shouldDisplayTerms) {
|
||||||
|
_this.displayTerms();
|
||||||
|
|
||||||
|
document.getElementById('accept-terms-button').addEventListener('click', function () {
|
||||||
|
_this.termsAccepted = true;
|
||||||
|
|
||||||
|
_this.submitForm();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_this.shouldDisplaySignature && !_this.shouldDisplayTerms && _this.shouldDisplayUserInput) {
|
||||||
|
_this.submitForm();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Approve;
|
||||||
|
}();
|
||||||
|
|
||||||
|
var signature = document.querySelector('meta[name="require-quote-signature"]').content;
|
||||||
|
var terms = document.querySelector('meta[name="show-quote-terms"]').content;
|
||||||
|
var user_input = document.querySelector('meta[name="accept-user-input"]').content;
|
||||||
|
new Approve(Boolean(+signature), Boolean(+terms), Boolean(+user_input)).handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
38
public/js/clients/shared/multiple-downloads.js
vendored
38
public/js/clients/shared/multiple-downloads.js
vendored
@ -1 +1,37 @@
|
|||||||
window.appendToElement=function(e,t){var n=document.getElementById(e),a=n.querySelector('input[value="'.concat(t,'"]'));if(a)return a.remove();var r=document.createElement("INPUT");r.setAttribute("name","file_hash[]"),r.setAttribute("value",t),r.hidden=!0,n.append(r)};
|
/******/ (() => { // webpackBootstrap
|
||||||
|
var __webpack_exports__ = {};
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./resources/js/clients/shared/multiple-downloads.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var appendToElement = function appendToElement(parent, value) {
|
||||||
|
var _parent = document.getElementById(parent);
|
||||||
|
|
||||||
|
var _possibleElement = _parent.querySelector("input[value=\"".concat(value, "\"]"));
|
||||||
|
|
||||||
|
if (_possibleElement) {
|
||||||
|
return _possibleElement.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
var _temp = document.createElement('INPUT');
|
||||||
|
|
||||||
|
_temp.setAttribute('name', 'file_hash[]');
|
||||||
|
|
||||||
|
_temp.setAttribute('value', value);
|
||||||
|
|
||||||
|
_temp.hidden = true;
|
||||||
|
|
||||||
|
_parent.append(_temp);
|
||||||
|
};
|
||||||
|
|
||||||
|
window.appendToElement = appendToElement;
|
||||||
|
/******/ })()
|
||||||
|
;
|
186
public/js/clients/shared/pdf.js
vendored
186
public/js/clients/shared/pdf.js
vendored
File diff suppressed because one or more lines are too long
106
public/js/clients/statements/view.js
vendored
106
public/js/clients/statements/view.js
vendored
@ -1,2 +1,104 @@
|
|||||||
/*! For license information please see view.js.LICENSE.txt */
|
/******/ (() => { // webpackBootstrap
|
||||||
(()=>{function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(new(function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.url=new URL(document.querySelector("meta[name=pdf-url]").content),this.startDate="",this.endDate="",this.showPaymentsTable=!1,this.showAgingTable=!1,this.status=""}var a,n,r;return a=t,(n=[{key:"bindEventListeners",value:function(){var e=this;["#date-from","#date-to","#show-payments-table","#show-aging-table","#status"].forEach((function(t){document.querySelector(t).addEventListener("change",(function(t){return e.handleValueChange(t)}))}))}},{key:"handleValueChange",value:function(e){"checkbox"===e.target.type?this[e.target.dataset.field]=e.target.checked:this[e.target.dataset.field]=e.target.value,this.updatePdf()}},{key:"composedUrl",get:function(){return this.url.search="",this.startDate.length>0&&this.url.searchParams.append("start_date",this.startDate),this.endDate.length>0&&this.url.searchParams.append("end_date",this.endDate),this.url.searchParams.append("status",document.getElementById("status").value),this.url.searchParams.append("show_payments_table",+this.showPaymentsTable),this.url.searchParams.append("show_aging_table",+this.showAgingTable),this.url.href}},{key:"updatePdf",value:function(){document.querySelector("meta[name=pdf-url]").content=this.composedUrl;var e=document.querySelector("#pdf-iframe");e&&(e.src=this.composedUrl),document.querySelector("meta[name=pdf-url]").dispatchEvent(new Event("change"))}},{key:"handle",value:function(){var e=this;this.bindEventListeners(),document.querySelector("#pdf-download").addEventListener("click",(function(){var t=new URL(e.composedUrl);t.searchParams.append("download",1),window.location.href=t.href}))}}])&&e(a.prototype,n),r&&e(a,r),Object.defineProperty(a,"prototype",{writable:!1}),t}())).handle()})();
|
var __webpack_exports__ = {};
|
||||||
|
/*!*************************************************!*\
|
||||||
|
!*** ./resources/js/clients/statements/view.js ***!
|
||||||
|
\*************************************************/
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
var Statement = /*#__PURE__*/function () {
|
||||||
|
function Statement() {
|
||||||
|
_classCallCheck(this, Statement);
|
||||||
|
|
||||||
|
this.url = new URL(document.querySelector('meta[name=pdf-url]').content);
|
||||||
|
this.startDate = '';
|
||||||
|
this.endDate = '';
|
||||||
|
this.showPaymentsTable = false;
|
||||||
|
this.showAgingTable = false;
|
||||||
|
this.status = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(Statement, [{
|
||||||
|
key: "bindEventListeners",
|
||||||
|
value: function bindEventListeners() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
['#date-from', '#date-to', '#show-payments-table', '#show-aging-table', '#status'].forEach(function (selector) {
|
||||||
|
document.querySelector(selector).addEventListener('change', function (event) {
|
||||||
|
return _this.handleValueChange(event);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handleValueChange",
|
||||||
|
value: function handleValueChange(event) {
|
||||||
|
if (event.target.type === 'checkbox') {
|
||||||
|
this[event.target.dataset.field] = event.target.checked;
|
||||||
|
} else {
|
||||||
|
this[event.target.dataset.field] = event.target.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.updatePdf();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "composedUrl",
|
||||||
|
get: function get() {
|
||||||
|
this.url.search = '';
|
||||||
|
|
||||||
|
if (this.startDate.length > 0) {
|
||||||
|
this.url.searchParams.append('start_date', this.startDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.endDate.length > 0) {
|
||||||
|
this.url.searchParams.append('end_date', this.endDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.url.searchParams.append('status', document.getElementById("status").value);
|
||||||
|
this.url.searchParams.append('show_payments_table', +this.showPaymentsTable);
|
||||||
|
this.url.searchParams.append('show_aging_table', +this.showAgingTable);
|
||||||
|
return this.url.href;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "updatePdf",
|
||||||
|
value: function updatePdf() {
|
||||||
|
document.querySelector('meta[name=pdf-url]').content = this.composedUrl;
|
||||||
|
var iframe = document.querySelector('#pdf-iframe');
|
||||||
|
|
||||||
|
if (iframe) {
|
||||||
|
iframe.src = this.composedUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('meta[name=pdf-url]').dispatchEvent(new Event('change'));
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "handle",
|
||||||
|
value: function handle() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
this.bindEventListeners();
|
||||||
|
document.querySelector('#pdf-download').addEventListener('click', function () {
|
||||||
|
var url = new URL(_this2.composedUrl);
|
||||||
|
url.searchParams.append('download', 1);
|
||||||
|
window.location.href = url.href;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Statement;
|
||||||
|
}();
|
||||||
|
|
||||||
|
new Statement().handle();
|
||||||
|
/******/ })()
|
||||||
|
;
|
2596
public/js/setup/setup.js
vendored
2596
public/js/setup/setup.js
vendored
File diff suppressed because one or more lines are too long
@ -1,49 +1,49 @@
|
|||||||
{
|
{
|
||||||
"/js/app.js": "/js/app.js?id=19300612c6880925e8043b61e8d49632",
|
"/js/app.js": "/js/app.js?id=7b6124b74168ccb1cc7da22f7a2bc9ed",
|
||||||
"/js/clients/payment_methods/authorize-authorize-card.js": "/js/clients/payment_methods/authorize-authorize-card.js?id=9fb77e87fe0f85a367050e08f79ec9df",
|
"/js/clients/payment_methods/authorize-authorize-card.js": "/js/clients/payment_methods/authorize-authorize-card.js?id=b6723e0b8ea33f1f50617fa5f289a9d3",
|
||||||
"/js/clients/payments/authorize-credit-card-payment.js": "/js/clients/payments/authorize-credit-card-payment.js?id=803182f668c39d631ca5c55437876da4",
|
"/js/clients/payments/authorize-credit-card-payment.js": "/js/clients/payments/authorize-credit-card-payment.js?id=faf4828cc6b3b73b69c53d3046661884",
|
||||||
"/js/clients/payments/forte-credit-card-payment.js": "/js/clients/payments/forte-credit-card-payment.js?id=6e9f466c5504d3753f9b4ffc6f947095",
|
"/js/clients/payments/forte-credit-card-payment.js": "/js/clients/payments/forte-credit-card-payment.js?id=f42dd0caddb3603e71db061924c4b172",
|
||||||
"/js/clients/payments/forte-ach-payment.js": "/js/clients/payments/forte-ach-payment.js?id=1d10fcc52a1f15858e5da216f1df45ec",
|
"/js/clients/payments/forte-ach-payment.js": "/js/clients/payments/forte-ach-payment.js?id=b8173c7c0dee76bf9ae6312a963ae0e4",
|
||||||
"/js/clients/payments/stripe-ach.js": "/js/clients/payments/stripe-ach.js?id=7bed15f51bca764378d9a3aa605b8664",
|
"/js/clients/payments/stripe-ach.js": "/js/clients/payments/stripe-ach.js?id=207f218c44553470287f35f33a7eb154",
|
||||||
"/js/clients/payments/stripe-klarna.js": "/js/clients/payments/stripe-klarna.js?id=5770e0d82d3843c68903744530f5ae73",
|
"/js/clients/payments/stripe-klarna.js": "/js/clients/payments/stripe-klarna.js?id=7268f9282c6bb3b04d19d11a7b0c1681",
|
||||||
"/js/clients/invoices/action-selectors.js": "/js/clients/invoices/action-selectors.js?id=d4f86ddee4e8a1d6e9719010aa0fe62b",
|
"/js/clients/invoices/action-selectors.js": "/js/clients/invoices/action-selectors.js?id=404b7ee18e420de0e73f5402b7e39122",
|
||||||
"/js/clients/purchase_orders/action-selectors.js": "/js/clients/purchase_orders/action-selectors.js?id=160b8161599fc2429b449b0970d3ba6c",
|
"/js/clients/purchase_orders/action-selectors.js": "/js/clients/purchase_orders/action-selectors.js?id=2f0c4e3bab30a98e33ac768255113174",
|
||||||
"/js/clients/purchase_orders/accept.js": "/js/clients/purchase_orders/accept.js?id=ddd4aa4069ea79411eeec367b7d5986d",
|
"/js/clients/purchase_orders/accept.js": "/js/clients/purchase_orders/accept.js?id=9bb483a89a887f753e49c0b635d6276a",
|
||||||
"/js/clients/invoices/payment.js": "/js/clients/invoices/payment.js?id=28221de8f1cb37f845ba4ec59bcd8867",
|
"/js/clients/invoices/payment.js": "/js/clients/invoices/payment.js?id=752e2bb6390f1a422e31868cf2a2bf67",
|
||||||
"/js/clients/payments/stripe-sofort.js": "/js/clients/payments/stripe-sofort.js?id=1c5493a4c53a5b862d07ee1818179ea9",
|
"/js/clients/payments/stripe-sofort.js": "/js/clients/payments/stripe-sofort.js?id=4fc5dec1bc4fc21b9e32b1b490c3e7ae",
|
||||||
"/js/clients/payments/stripe-alipay.js": "/js/clients/payments/stripe-alipay.js?id=0274ab4f8d2b411f2a2fe5142301e7af",
|
"/js/clients/payments/stripe-alipay.js": "/js/clients/payments/stripe-alipay.js?id=018ecad3a1bcc1ecc47f76754a573ff2",
|
||||||
"/js/clients/payments/checkout-credit-card.js": "/js/clients/payments/checkout-credit-card.js?id=4bd34a0b160f6f29b3096d870ac4d308",
|
"/js/clients/payments/checkout-credit-card.js": "/js/clients/payments/checkout-credit-card.js?id=7cb96275b3eb4901054564c654fb60e3",
|
||||||
"/js/clients/quotes/action-selectors.js": "/js/clients/quotes/action-selectors.js?id=6fb63bae43d077b5061f4dadfe8dffc8",
|
"/js/clients/quotes/action-selectors.js": "/js/clients/quotes/action-selectors.js?id=3a4c5cfac7dd4c9218be55945c3c8e85",
|
||||||
"/js/clients/quotes/approve.js": "/js/clients/quotes/approve.js?id=cdc76607aaf0b47a5a4e554e4177713d",
|
"/js/clients/quotes/approve.js": "/js/clients/quotes/approve.js?id=1474ce4457835874ef2e540e3a1da7eb",
|
||||||
"/js/clients/payments/stripe-credit-card.js": "/js/clients/payments/stripe-credit-card.js?id=809de47258a681f0ffebe787dd6a9a93",
|
"/js/clients/payments/stripe-credit-card.js": "/js/clients/payments/stripe-credit-card.js?id=6e7c8ab039a239727317ae8622de10db",
|
||||||
"/js/setup/setup.js": "/js/setup/setup.js?id=27560b012f166f8b9417ced2188aab70",
|
"/js/setup/setup.js": "/js/setup/setup.js?id=8cab3339ef48418e1fb2e7a9259d51ca",
|
||||||
"/js/clients/payments/card-js.min.js": "/js/clients/payments/card-js.min.js?id=8ce33c3deae058ad314fb8357e5be63b",
|
"/js/clients/payments/card-js.min.js": "/js/clients/payments/card-js.min.js?id=cf50b5ba1fcd1d184bf0c10d710672c8",
|
||||||
"/js/clients/shared/pdf.js": "/js/clients/shared/pdf.js?id=be5307abc990bb44f2f92628103b1d98",
|
"/js/clients/shared/pdf.js": "/js/clients/shared/pdf.js?id=682de6347049b32c9488f39c78a68ace",
|
||||||
"/js/clients/shared/multiple-downloads.js": "/js/clients/shared/multiple-downloads.js?id=c2caa29f753ad1f3a12ca45acddacd72",
|
"/js/clients/shared/multiple-downloads.js": "/js/clients/shared/multiple-downloads.js?id=d3c404bb646f1aeaf2382a8c57ab8e1a",
|
||||||
"/js/clients/linkify-urls.js": "/js/clients/linkify-urls.js?id=2b2fe55f926789abc52f19111006e1ec",
|
"/js/clients/linkify-urls.js": "/js/clients/linkify-urls.js?id=e1c0599d6f7dc163b549a6df0b3490b4",
|
||||||
"/js/clients/payments/braintree-credit-card.js": "/js/clients/payments/braintree-credit-card.js?id=8e3b1c4c78c976ff0c43cb739c26b1f3",
|
"/js/clients/payments/braintree-credit-card.js": "/js/clients/payments/braintree-credit-card.js?id=8b036822abaa4ceb379008fc14208dc2",
|
||||||
"/js/clients/payments/braintree-paypal.js": "/js/clients/payments/braintree-paypal.js?id=5764a8d406c1eda848d073f10d178626",
|
"/js/clients/payments/braintree-paypal.js": "/js/clients/payments/braintree-paypal.js?id=de0b1d0c6da7ff509bef3aee8d09e7f8",
|
||||||
"/js/clients/payments/wepay-credit-card.js": "/js/clients/payments/wepay-credit-card.js?id=dbba20d70fbebb326ddbc46115af9771",
|
"/js/clients/payments/wepay-credit-card.js": "/js/clients/payments/wepay-credit-card.js?id=92ef8632637d335cd0e4bc29a05b7df8",
|
||||||
"/js/clients/payment_methods/wepay-bank-account.js": "/js/clients/payment_methods/wepay-bank-account.js?id=b8706d7de6127f184ad19b2a810880be",
|
"/js/clients/payment_methods/wepay-bank-account.js": "/js/clients/payment_methods/wepay-bank-account.js?id=af85b3f6d53c55b5d0e3a80ef58ce0de",
|
||||||
"/js/clients/payments/paytrace-credit-card.js": "/js/clients/payments/paytrace-credit-card.js?id=e0b1231a7bf6252672836222285c0f52",
|
"/js/clients/payments/paytrace-credit-card.js": "/js/clients/payments/paytrace-credit-card.js?id=3869bc6d80acc83f81d9afe8efaae728",
|
||||||
"/js/clients/payments/mollie-credit-card.js": "/js/clients/payments/mollie-credit-card.js?id=bbab588ed009a93345bec520cbe66869",
|
"/js/clients/payments/mollie-credit-card.js": "/js/clients/payments/mollie-credit-card.js?id=7cd5a1d95d33ada211ce185ad6e4bb33",
|
||||||
"/js/clients/payments/eway-credit-card.js": "/js/clients/payments/eway-credit-card.js?id=31d068e55757636f34834bc2494250df",
|
"/js/clients/payments/eway-credit-card.js": "/js/clients/payments/eway-credit-card.js?id=27274d334aed0824ce4654fa22132f7f",
|
||||||
"/js/clients/payment_methods/braintree-ach.js": "/js/clients/payment_methods/braintree-ach.js?id=6d8c7fd66d911b20cdc4248e33db1b3a",
|
"/js/clients/payment_methods/braintree-ach.js": "/js/clients/payment_methods/braintree-ach.js?id=f85ebb6a77002afd350086d1274b6af5",
|
||||||
"/js/clients/payments/square-credit-card.js": "/js/clients/payments/square-credit-card.js?id=b180fd6378d3723d3e9133e0b1943ac6",
|
"/js/clients/payments/square-credit-card.js": "/js/clients/payments/square-credit-card.js?id=238e7001420a22b001856193689a1e70",
|
||||||
"/js/clients/statements/view.js": "/js/clients/statements/view.js?id=7971b212e8a849fe36bfe915f81023bd",
|
"/js/clients/statements/view.js": "/js/clients/statements/view.js?id=13e043123f1e58409394458a70461d63",
|
||||||
"/js/clients/payments/razorpay-aio.js": "/js/clients/payments/razorpay-aio.js?id=c36ab5621413ef1de7c864bc8eb7439e",
|
"/js/clients/payments/razorpay-aio.js": "/js/clients/payments/razorpay-aio.js?id=494f58d2fd8984792833ba7d3055de08",
|
||||||
"/js/clients/payments/stripe-sepa.js": "/js/clients/payments/stripe-sepa.js?id=b258636d8bae366e9d8f54274f437181",
|
"/js/clients/payments/stripe-sepa.js": "/js/clients/payments/stripe-sepa.js?id=77d4e397d193196e482af80737bff64a",
|
||||||
"/js/clients/payment_methods/authorize-checkout-card.js": "/js/clients/payment_methods/authorize-checkout-card.js?id=e43f862d70d8710761f0856e528ec3d1",
|
"/js/clients/payment_methods/authorize-checkout-card.js": "/js/clients/payment_methods/authorize-checkout-card.js?id=659c4287fb8ef1c458071c206c4d965d",
|
||||||
"/js/clients/payments/stripe-giropay.js": "/js/clients/payments/stripe-giropay.js?id=72ad4ad19297f211c2e6d0fa1fa1f76d",
|
"/js/clients/payments/stripe-giropay.js": "/js/clients/payments/stripe-giropay.js?id=852a9abf5f3a29f5d7d2f989cbeab374",
|
||||||
"/js/clients/payments/stripe-acss.js": "/js/clients/payments/stripe-acss.js?id=90b1805b1ca0264474b38054a2664c5b",
|
"/js/clients/payments/stripe-acss.js": "/js/clients/payments/stripe-acss.js?id=447c587a5eeb0c1de3091c8358db7ad7",
|
||||||
"/js/clients/payments/stripe-bancontact.js": "/js/clients/payments/stripe-bancontact.js?id=03e5d7ee187e76b0b7c16bfa91804a8a",
|
"/js/clients/payments/stripe-bancontact.js": "/js/clients/payments/stripe-bancontact.js?id=f694d3f9f01e4550cb5a3eb6cb43c12d",
|
||||||
"/js/clients/payments/stripe-becs.js": "/js/clients/payments/stripe-becs.js?id=de2bd0ef2859e19e4f98ea9d6d11cb54",
|
"/js/clients/payments/stripe-becs.js": "/js/clients/payments/stripe-becs.js?id=97ea3555a8504662eda5fce9c9115e5a",
|
||||||
"/js/clients/payments/stripe-eps.js": "/js/clients/payments/stripe-eps.js?id=213d9ad34a79144a0d3345cb6a262e95",
|
"/js/clients/payments/stripe-eps.js": "/js/clients/payments/stripe-eps.js?id=749cba1332a29baa444b37cee2ade2d7",
|
||||||
"/js/clients/payments/stripe-ideal.js": "/js/clients/payments/stripe-ideal.js?id=0a6b434e3849db26c35a143e0347e914",
|
"/js/clients/payments/stripe-ideal.js": "/js/clients/payments/stripe-ideal.js?id=34cf4ee3f189427fb69d0df8f5a4b766",
|
||||||
"/js/clients/payments/stripe-przelewy24.js": "/js/clients/payments/stripe-przelewy24.js?id=3d53d2f7d0291d9f92cf7414dd2d351c",
|
"/js/clients/payments/stripe-przelewy24.js": "/js/clients/payments/stripe-przelewy24.js?id=448b197a1d94b4408e130b5b8b1c2e53",
|
||||||
"/js/clients/payments/stripe-browserpay.js": "/js/clients/payments/stripe-browserpay.js?id=db71055862995fd6ae21becfc587a3de",
|
"/js/clients/payments/stripe-browserpay.js": "/js/clients/payments/stripe-browserpay.js?id=7015e43eb5f9f9f2f45f54b41b5780a0",
|
||||||
"/js/clients/payments/stripe-fpx.js": "/js/clients/payments/stripe-fpx.js?id=914a6846ad1e5584635e7430fef76875",
|
"/js/clients/payments/stripe-fpx.js": "/js/clients/payments/stripe-fpx.js?id=243c2929386b10c6a0c49ca3bcabfb2d",
|
||||||
"/css/app.css": "/css/app.css?id=8302160c986075306be2b78945bb6f4a",
|
"/css/app.css": "/css/app.css?id=0cb847167b91d8db2ca50d30e0d691ae",
|
||||||
"/css/card-js.min.css": "/css/card-js.min.css?id=62afeb675235451543ada60afcedcb7c",
|
"/css/card-js.min.css": "/css/card-js.min.css?id=62afeb675235451543ada60afcedcb7c",
|
||||||
"/vendor/clipboard.min.js": "/vendor/clipboard.min.js?id=15f52a1ee547f2bdd46e56747332ca2d"
|
"/vendor/clipboard.min.js": "/vendor/clipboard.min.js?id=15f52a1ee547f2bdd46e56747332ca2d"
|
||||||
}
|
}
|
||||||
|
4
public/vendor/livewire/livewire.js
vendored
4
public/vendor/livewire/livewire.js
vendored
File diff suppressed because one or more lines are too long
2
public/vendor/livewire/livewire.js.map
vendored
2
public/vendor/livewire/livewire.js.map
vendored
File diff suppressed because one or more lines are too long
2
public/vendor/livewire/manifest.json
vendored
2
public/vendor/livewire/manifest.json
vendored
@ -1 +1 @@
|
|||||||
{"/livewire.js":"/livewire.js?id=de3fca26689cb5a39af4"}
|
{"/livewire.js":"/livewire.js?id=fe747446aa84856d8b66"}
|
51
resources/js/clients/quotes/approve.js
vendored
51
resources/js/clients/quotes/approve.js
vendored
@ -9,9 +9,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class Approve {
|
class Approve {
|
||||||
constructor(displaySignature, displayTerms) {
|
constructor(displaySignature, displayTerms, userInput) {
|
||||||
this.shouldDisplaySignature = displaySignature;
|
this.shouldDisplaySignature = displaySignature;
|
||||||
this.shouldDisplayTerms = displayTerms;
|
this.shouldDisplayTerms = displayTerms;
|
||||||
|
this.shouldDisplayUserInput = userInput;
|
||||||
this.termsAccepted = false;
|
this.termsAccepted = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,9 +46,15 @@ class Approve {
|
|||||||
displayTermsModal.removeAttribute("style");
|
displayTermsModal.removeAttribute("style");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
displayInput() {
|
||||||
|
let displayInputModal = document.getElementById("displayInputModal");
|
||||||
|
displayInputModal.removeAttribute("style");
|
||||||
|
}
|
||||||
|
|
||||||
handle() {
|
handle() {
|
||||||
|
|
||||||
document.getElementById("signature-next-step").disabled = true;
|
document.getElementById("signature-next-step").disabled = true;
|
||||||
|
|
||||||
document.getElementById("close_button").addEventListener('click', () => {
|
document.getElementById("close_button").addEventListener('click', () => {
|
||||||
const approveButton = document.getElementById("approve-button");
|
const approveButton = document.getElementById("approve-button");
|
||||||
|
|
||||||
@ -56,9 +63,37 @@ class Approve {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
document.getElementById("hide_close").addEventListener('click', () => {
|
||||||
|
const approveButton = document.getElementById("approve-button");
|
||||||
|
|
||||||
|
if(approveButton)
|
||||||
|
approveButton.disabled = false;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
document
|
document
|
||||||
.getElementById('approve-button')
|
.getElementById('approve-button')
|
||||||
.addEventListener('click', () => {
|
.addEventListener('click', () => {
|
||||||
|
|
||||||
|
if (!this.shouldDisplaySignature && !this.shouldDisplayTerms && this.shouldDisplayUserInput){
|
||||||
|
this.displayInput();
|
||||||
|
|
||||||
|
document
|
||||||
|
.getElementById('input-next-step')
|
||||||
|
.addEventListener('click', () => {
|
||||||
|
document.querySelector(
|
||||||
|
'input[name="user_input"'
|
||||||
|
).value = document.getElementById('user_input').value;
|
||||||
|
this.termsAccepted = true;
|
||||||
|
this.submitForm();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.shouldDisplayUserInput)
|
||||||
|
this.displayInput();
|
||||||
|
|
||||||
|
|
||||||
if (this.shouldDisplaySignature && this.shouldDisplayTerms) {
|
if (this.shouldDisplaySignature && this.shouldDisplayTerms) {
|
||||||
this.displaySignature();
|
this.displaySignature();
|
||||||
|
|
||||||
@ -73,13 +108,18 @@ class Approve {
|
|||||||
document.querySelector(
|
document.querySelector(
|
||||||
'input[name="signature"'
|
'input[name="signature"'
|
||||||
).value = this.signaturePad.toDataURL();
|
).value = this.signaturePad.toDataURL();
|
||||||
|
document.querySelector(
|
||||||
|
'input[name="user_input"'
|
||||||
|
).value = document.getElementById('user_input').value;
|
||||||
this.termsAccepted = true;
|
this.termsAccepted = true;
|
||||||
this.submitForm();
|
this.submitForm();
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.shouldDisplaySignature && !this.shouldDisplayTerms) {
|
if (this.shouldDisplaySignature && !this.shouldDisplayTerms) {
|
||||||
|
|
||||||
this.displaySignature();
|
this.displaySignature();
|
||||||
|
|
||||||
document
|
document
|
||||||
@ -88,6 +128,9 @@ class Approve {
|
|||||||
document.querySelector(
|
document.querySelector(
|
||||||
'input[name="signature"'
|
'input[name="signature"'
|
||||||
).value = this.signaturePad.toDataURL();
|
).value = this.signaturePad.toDataURL();
|
||||||
|
document.querySelector(
|
||||||
|
'input[name="user_input"'
|
||||||
|
).value = document.getElementById('user_input').value;
|
||||||
this.submitForm();
|
this.submitForm();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -103,7 +146,7 @@ class Approve {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.shouldDisplaySignature && !this.shouldDisplayTerms) {
|
if (!this.shouldDisplaySignature && !this.shouldDisplayTerms && this.shouldDisplayUserInput) {
|
||||||
this.submitForm();
|
this.submitForm();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -115,4 +158,6 @@ const signature = document.querySelector('meta[name="require-quote-signature"]')
|
|||||||
|
|
||||||
const terms = document.querySelector('meta[name="show-quote-terms"]').content;
|
const terms = document.querySelector('meta[name="show-quote-terms"]').content;
|
||||||
|
|
||||||
new Approve(Boolean(+signature), Boolean(+terms)).handle();
|
const user_input = document.querySelector('meta[name="accept-user-input"]').content;
|
||||||
|
|
||||||
|
new Approve(Boolean(+signature), Boolean(+terms), Boolean(+user_input)).handle();
|
||||||
|
@ -109,6 +109,21 @@
|
|||||||
z-index:200 !important;
|
z-index:200 !important;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.doc_links {
|
||||||
|
|
||||||
|
padding-bottom: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
|
||||||
|
text-decoration: none;
|
||||||
|
color: inherit !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!--[if gte mso 9]>
|
<!--[if gte mso 9]>
|
||||||
@ -160,6 +175,14 @@
|
|||||||
style="display: inline-block;background-color: {{ $primary_color }}; color: #ffffff; text-transform: uppercase;letter-spacing: 2px; text-decoration: none; font-size: 13px; font-weight: 600;">
|
style="display: inline-block;background-color: {{ $primary_color }}; color: #ffffff; text-transform: uppercase;letter-spacing: 2px; text-decoration: none; font-size: 13px; font-weight: 600;">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
@isset($links)
|
||||||
|
@foreach($links as $link)
|
||||||
|
{!! $link ?? '' !!}<br>
|
||||||
|
@endforeach
|
||||||
|
@endisset
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -45,9 +45,73 @@
|
|||||||
@endcomponent
|
@endcomponent
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@if($show_terms)
|
||||||
|
|
||||||
|
@component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.terms_of_service') ])
|
||||||
|
<div x-data="{ open: false }">
|
||||||
|
<input
|
||||||
|
wire:click="toggleTermsAccepted()"
|
||||||
|
id="terms"
|
||||||
|
name="terms_accepted"
|
||||||
|
type="checkbox"
|
||||||
|
class="h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
|
||||||
|
/>
|
||||||
|
<a href="#" class="group relative inline-block ml-4 text-blue-500 hover:text-red-500 duration-300 no-underline" @click="open = true">{{ ctrans('texts.terms')}}</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div x-show="open" class="fixed bottom-0 inset-x-0 px-4 pb-4 sm:inset-0 sm:flex sm:items-center sm:justify-center z-50"
|
||||||
|
style="display:none; background: rgba(0,0,0); background: transparent; z-index: 100;">
|
||||||
|
<div x-show="open" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200"
|
||||||
|
x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"
|
||||||
|
class="fixed inset-0 transition-opacity" style="display:none;">
|
||||||
|
<div class="absolute inset-0 bg-gray-500 opacity-75"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div x-show="open"
|
||||||
|
class="bg-white rounded-lg px-4 pt-5 pb-4 overflow-hidden shadow-xl transform transition-all sm:max-w-lg sm:w-full sm:p-6">
|
||||||
|
<div class="sm:flex sm:items-start">
|
||||||
|
<div
|
||||||
|
class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10">
|
||||||
|
<svg class="h-6 w-6 text-red-600" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||||
|
d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
|
||||||
|
<h3 class="text-lg leading-6 font-medium text-gray-900" translate>
|
||||||
|
{{ ctrans('texts.terms_of_service' )}}
|
||||||
|
</h3>
|
||||||
|
<div class="mt-2">
|
||||||
|
<p class="text-sm leading-5 text-gray-500 bg-opacity-100">
|
||||||
|
{!! nl2br($invoice->terms) !!}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
|
||||||
|
<div class="mt-3 flex w-full rounded-md shadow-sm sm:mt-0 sm:w-auto">
|
||||||
|
<button @click="open = false" type="button" class="button button-secondary button-block">
|
||||||
|
{{ ctrans('texts.close') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endcomponent
|
||||||
|
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
@component('portal.ninja2020.components.general.card-element-single')
|
@component('portal.ninja2020.components.general.card-element-single')
|
||||||
<div class="flex flex-col items-end">
|
<div class="flex flex-col items-end">
|
||||||
<button class="button button-primary bg-primary">
|
<button class="button button-primary bg-primary" {{ $terms_accepted ? '' : 'disabled' }}>
|
||||||
{{ trans('texts.continue') }}
|
{{ trans('texts.continue') }}
|
||||||
</button>
|
</button>
|
||||||
<small class="mt-1 text-gray-800">{{ ctrans('texts.required_client_info_save_label') }}</small>
|
<small class="mt-1 text-gray-800">{{ ctrans('texts.required_client_info_save_label') }}</small>
|
||||||
@ -65,4 +129,5 @@
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -27,8 +27,8 @@
|
|||||||
{{ ctrans('texts.next_step') }}
|
{{ ctrans('texts.next_step') }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-3 flex w-full rounded-md shadow-sm sm:mt-0 sm:w-auto">
|
<div class="mt-3 flex w-full rounded-md shadow-sm sm:mt-0 sm:w-auto" id="close_button">
|
||||||
<button id="close_button" onclick="document.getElementById('displaySignatureModal').style.display = 'none'; return true;" type="button" class="button button-secondary">
|
<button @click="document.getElementById('displaySignatureModal').style.display = 'none';" type="button" class="button button-secondary">
|
||||||
{{ ctrans('texts.close') }}
|
{{ ctrans('texts.close') }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
{{ ctrans('texts.i_agree') }}
|
{{ ctrans('texts.i_agree') }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-3 flex w-full rounded-md shadow-sm sm:mt-0 sm:w-auto">
|
<div class="mt-3 flex w-full rounded-md shadow-sm sm:mt-0 sm:w-auto" id="hide_close">
|
||||||
<button @click="document.getElementById('displayTermsModal').style.display = 'none';" type="button" class="button button-secondary">
|
<button @click="document.getElementById('displayTermsModal').style.display = 'none';" type="button" class="button button-secondary">
|
||||||
{{ ctrans('texts.close') }}
|
{{ ctrans('texts.close') }}
|
||||||
</button>
|
</button>
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
@csrf
|
@csrf
|
||||||
<input type="hidden" name="action" value="approve">
|
<input type="hidden" name="action" value="approve">
|
||||||
<input type="hidden" name="process" value="true">
|
<input type="hidden" name="process" value="true">
|
||||||
|
<input type="hidden" name="user_input" value="">
|
||||||
|
|
||||||
@foreach($quotes as $quote)
|
@foreach($quotes as $quote)
|
||||||
<input type="hidden" name="quotes[]" value="{{ $quote->hashed_id }}">
|
<input type="hidden" name="quotes[]" value="{{ $quote->hashed_id }}">
|
||||||
@endforeach
|
@endforeach
|
||||||
@ -83,6 +85,8 @@
|
|||||||
|
|
||||||
@include('portal.ninja2020.invoices.includes.terms', ['entities' => $quotes, 'entity_type' => ctrans('texts.quote')])
|
@include('portal.ninja2020.invoices.includes.terms', ['entities' => $quotes, 'entity_type' => ctrans('texts.quote')])
|
||||||
@include('portal.ninja2020.invoices.includes.signature')
|
@include('portal.ninja2020.invoices.includes.signature')
|
||||||
|
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('footer')
|
@push('footer')
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
<input type="hidden" name="process" value="true">
|
<input type="hidden" name="process" value="true">
|
||||||
<input type="hidden" name="quotes[]" value="{{ $quote->hashed_id }}">
|
<input type="hidden" name="quotes[]" value="{{ $quote->hashed_id }}">
|
||||||
<input type="hidden" name="signature">
|
<input type="hidden" name="signature">
|
||||||
|
<input type="hidden" name="user_input" value="">
|
||||||
|
|
||||||
<div class="bg-white shadow sm:rounded-lg">
|
<div class="bg-white shadow sm:rounded-lg">
|
||||||
<div class="px-4 py-5 sm:p-6">
|
<div class="px-4 py-5 sm:p-6">
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
<div style="display: none;" id="displayInputModal" class="fixed bottom-0 inset-x-0 px-4 pb-4 sm:inset-0 sm:flex sm:items-center sm:justify-center">
|
||||||
|
<div x-show="open" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="fixed inset-0 transition-opacity">
|
||||||
|
<div class="absolute inset-0 bg-gray-500 opacity-75"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div x-show="open" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100" x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" class="bg-white rounded-lg px-4 pt-5 pb-4 overflow-hidden shadow-xl transform transition-all sm:max-w-lg sm:w-full sm:p-6">
|
||||||
|
<div class="sm:flex sm:items-start">
|
||||||
|
<div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
|
||||||
|
<h3 class="text-xl leading-6 font-medium text-gray-900">
|
||||||
|
{{ ctrans('texts.notes') }}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div class="mx-auto max-w-xs space-y-5">
|
||||||
|
<textarea name="user_input" id="user_input" class="block w-full rounded-md border-transparent bg-gray-100 focus:border-primary-300 focus:bg-white focus:ring focus:ring-primary-200 focus:ring-opacity-50 disabled:cursor-not-allowed disabled:bg-gray-50" col="10" rows="3" placeholder=""></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
|
||||||
|
<div class="flex w-full rounded-md shadow-sm sm:ml-3 sm:w-auto">
|
||||||
|
<button type="button" id="input-next-step" class="button button-primary bg-primary" @click="document.getElementById('displayInputModal').style.display = 'none';">
|
||||||
|
{{ ctrans('texts.next_step') }}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
<meta name="show-quote-terms" content="{{ $settings->show_accept_quote_terms ? true : false }}">
|
<meta name="show-quote-terms" content="{{ $settings->show_accept_quote_terms ? true : false }}">
|
||||||
<meta name="require-quote-signature" content="{{ $client->company->account->hasFeature(\App\Models\Account::FEATURE_INVOICE_SETTINGS) && $settings->require_quote_signature }}">
|
<meta name="require-quote-signature" content="{{ $client->company->account->hasFeature(\App\Models\Account::FEATURE_INVOICE_SETTINGS) && $settings->require_quote_signature }}">
|
||||||
|
<meta name="accept-user-input" content="{{ $client->getSetting('accept_client_input_quote_approval') }}">
|
||||||
|
|
||||||
@include('portal.ninja2020.components.no-cache')
|
@include('portal.ninja2020.components.no-cache')
|
||||||
|
|
||||||
@ -108,6 +109,7 @@
|
|||||||
@include('portal.ninja2020.components.pdf-viewer', ['entity' => $quote, 'invitation' => $invitation])
|
@include('portal.ninja2020.components.pdf-viewer', ['entity' => $quote, 'invitation' => $invitation])
|
||||||
@include('portal.ninja2020.invoices.includes.terms', ['entities' => [$quote], 'entity_type' => ctrans('texts.quote')])
|
@include('portal.ninja2020.invoices.includes.terms', ['entities' => [$quote], 'entity_type' => ctrans('texts.quote')])
|
||||||
@include('portal.ninja2020.invoices.includes.signature')
|
@include('portal.ninja2020.invoices.includes.signature')
|
||||||
|
@include('portal.ninja2020.quotes.includes.user-input')
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('footer')
|
@section('footer')
|
||||||
|
@ -172,6 +172,7 @@ Route::group(['middleware' => ['throttle:300,1', 'api_db', 'token_auth', 'locale
|
|||||||
Route::put('credits/{credit}/upload', [CreditController::class, 'upload'])->name('credits.upload');
|
Route::put('credits/{credit}/upload', [CreditController::class, 'upload'])->name('credits.upload');
|
||||||
Route::get('credits/{credit}/{action}', [CreditController::class, 'action'])->name('credits.action');
|
Route::get('credits/{credit}/{action}', [CreditController::class, 'action'])->name('credits.action');
|
||||||
Route::post('credits/bulk', [CreditController::class, 'bulk'])->name('credits.bulk');
|
Route::post('credits/bulk', [CreditController::class, 'bulk'])->name('credits.bulk');
|
||||||
|
Route::get('credit/{invitation_key}/download', [CreditController::class, 'downloadPdf'])->name('credits.downloadPdf');
|
||||||
|
|
||||||
Route::resource('designs', DesignController::class); // name = (payments. index / create / show / update / destroy / edit
|
Route::resource('designs', DesignController::class); // name = (payments. index / create / show / update / destroy / edit
|
||||||
Route::post('designs/bulk', [DesignController::class, 'bulk'])->name('designs.bulk');
|
Route::post('designs/bulk', [DesignController::class, 'bulk'])->name('designs.bulk');
|
||||||
@ -241,10 +242,17 @@ Route::group(['middleware' => ['throttle:300,1', 'api_db', 'token_auth', 'locale
|
|||||||
Route::post('projects/bulk', [ProjectController::class, 'bulk'])->name('projects.bulk');
|
Route::post('projects/bulk', [ProjectController::class, 'bulk'])->name('projects.bulk');
|
||||||
Route::put('projects/{project}/upload', [ProjectController::class, 'upload'])->name('projects.upload');
|
Route::put('projects/{project}/upload', [ProjectController::class, 'upload'])->name('projects.upload');
|
||||||
|
|
||||||
|
Route::resource('purchase_orders', PurchaseOrderController::class);
|
||||||
|
Route::post('purchase_orders/bulk', [PurchaseOrderController::class, 'bulk'])->name('purchase_orders.bulk');
|
||||||
|
Route::put('purchase_orders/{purchase_order}/upload', [PurchaseOrderController::class, 'upload']);
|
||||||
|
Route::get('purchase_orders/{purchase_order}/{action}', [PurchaseOrderController::class, 'action'])->name('purchase_orders.action');
|
||||||
|
Route::get('purchase_order/{invitation_key}/download', [PurchaseOrderController::class, 'downloadPdf'])->name('purchase_orders.downloadPdf');
|
||||||
|
|
||||||
Route::resource('quotes', QuoteController::class); // name = (quotes. index / create / show / update / destroy / edit
|
Route::resource('quotes', QuoteController::class); // name = (quotes. index / create / show / update / destroy / edit
|
||||||
Route::get('quotes/{quote}/{action}', [QuoteController::class, 'action'])->name('quotes.action');
|
Route::get('quotes/{quote}/{action}', [QuoteController::class, 'action'])->name('quotes.action');
|
||||||
Route::post('quotes/bulk', [QuoteController::class, 'bulk'])->name('quotes.bulk');
|
Route::post('quotes/bulk', [QuoteController::class, 'bulk'])->name('quotes.bulk');
|
||||||
Route::put('quotes/{quote}/upload', [QuoteController::class, 'upload']);
|
Route::put('quotes/{quote}/upload', [QuoteController::class, 'upload']);
|
||||||
|
Route::get('quote/{invitation_key}/download', [QuoteController::class, 'downloadPdf'])->name('quotes.downloadPdf');
|
||||||
|
|
||||||
Route::resource('recurring_expenses', RecurringExpenseController::class);
|
Route::resource('recurring_expenses', RecurringExpenseController::class);
|
||||||
Route::post('recurring_expenses/bulk', [RecurringExpenseController::class, 'bulk'])->name('recurring_expenses.bulk');
|
Route::post('recurring_expenses/bulk', [RecurringExpenseController::class, 'bulk'])->name('recurring_expenses.bulk');
|
||||||
@ -314,12 +322,6 @@ Route::group(['middleware' => ['throttle:300,1', 'api_db', 'token_auth', 'locale
|
|||||||
Route::post('vendors/bulk', [VendorController::class, 'bulk'])->name('vendors.bulk');
|
Route::post('vendors/bulk', [VendorController::class, 'bulk'])->name('vendors.bulk');
|
||||||
Route::put('vendors/{vendor}/upload', [VendorController::class, 'upload']);
|
Route::put('vendors/{vendor}/upload', [VendorController::class, 'upload']);
|
||||||
|
|
||||||
Route::resource('purchase_orders', PurchaseOrderController::class);
|
|
||||||
Route::post('purchase_orders/bulk', [PurchaseOrderController::class, 'bulk'])->name('purchase_orders.bulk');
|
|
||||||
Route::put('purchase_orders/{purchase_order}/upload', [PurchaseOrderController::class, 'upload']);
|
|
||||||
|
|
||||||
Route::get('purchase_orders/{purchase_order}/{action}', [PurchaseOrderController::class, 'action'])->name('purchase_orders.action');
|
|
||||||
|
|
||||||
Route::get('users', [UserController::class, 'index']);
|
Route::get('users', [UserController::class, 'index']);
|
||||||
Route::get('users/create', [UserController::class, 'create'])->middleware('password_protected');
|
Route::get('users/create', [UserController::class, 'create'])->middleware('password_protected');
|
||||||
Route::get('users/{user}', [UserController::class, 'show'])->middleware('password_protected');
|
Route::get('users/{user}', [UserController::class, 'show'])->middleware('password_protected');
|
||||||
|
@ -40,6 +40,23 @@ class CreditTest extends TestCase
|
|||||||
$this->makeTestData();
|
$this->makeTestData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function testQuoteDownloadPDF()
|
||||||
|
{
|
||||||
|
$i = $this->credit->invitations->first();
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->get("/api/v1/credit/{$i->key}/download");
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$this->assertTrue($response->headers->get('content-type') == 'application/pdf');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function testBulkActions()
|
public function testBulkActions()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -40,6 +40,21 @@ class PurchaseOrderTest extends TestCase
|
|||||||
$this->makeTestData();
|
$this->makeTestData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testPurchaseOrderDownloadPDF()
|
||||||
|
{
|
||||||
|
$i = $this->purchase_order->invitations->first();
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->get("/api/v1/purchase_order/{$i->key}/download");
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$this->assertTrue($response->headers->get('content-type') == 'application/pdf');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function testPurchaseOrderGetWithClientStatus()
|
public function testPurchaseOrderGetWithClientStatus()
|
||||||
{
|
{
|
||||||
$response = $this->withHeaders([
|
$response = $this->withHeaders([
|
||||||
|
@ -50,6 +50,20 @@ class QuoteTest extends TestCase
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testQuoteDownloadPDF()
|
||||||
|
{
|
||||||
|
$i = $this->quote->invitations->first();
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->get("/api/v1/quote/{$i->key}/download");
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$this->assertTrue($response->headers->get('content-type') == 'application/pdf');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function testQuoteListApproved()
|
public function testQuoteListApproved()
|
||||||
{
|
{
|
||||||
$response = $this->withHeaders([
|
$response = $this->withHeaders([
|
||||||
|
@ -64,4 +64,48 @@ class CompanyDocumentsTest extends TestCase
|
|||||||
|
|
||||||
// $this->assertFalse(Storage::exists($document->url));
|
// $this->assertFalse(Storage::exists($document->url));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// public function testSignedRoutes()
|
||||||
|
// {
|
||||||
|
|
||||||
|
// $company_key = $this->company->company_key;
|
||||||
|
|
||||||
|
// $original_count = Document::whereCompanyId($this->company->id)->count();
|
||||||
|
|
||||||
|
// $image = UploadedFile::fake()->image('avatar.jpg');
|
||||||
|
|
||||||
|
|
||||||
|
// $document = (new UploadFile(
|
||||||
|
// $image,
|
||||||
|
// UploadFile::IMAGE,
|
||||||
|
// $this->user,
|
||||||
|
// $this->company,
|
||||||
|
// $this->invoice))->handle();
|
||||||
|
|
||||||
|
// $this->assertNotNull($document);
|
||||||
|
|
||||||
|
// // $url = \Illuminate\Support\Facades\URL::signedRoute('api.documents.show', ['document' => $document->hashed_id]);
|
||||||
|
// $url = \Illuminate\Support\Facades\URL::signedRoute('documents.public_download', ['document_hash' => $document->hash]);
|
||||||
|
|
||||||
|
// nlog($url);
|
||||||
|
|
||||||
|
// $response = $this->withHeaders([
|
||||||
|
// 'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
// 'X-API-TOKEN' => $this->token,
|
||||||
|
// ])->get($url);
|
||||||
|
|
||||||
|
|
||||||
|
// $content = $response->streamedContent();
|
||||||
|
// nlog($content);
|
||||||
|
|
||||||
|
|
||||||
|
// $response->assertStatus(200);
|
||||||
|
|
||||||
|
// $arr = $response->json();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// $this->assertFalse($arr);
|
||||||
|
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user