mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-30 17:03:02 -04:00 
			
		
		
		
	Merge remote-tracking branch 'origin/v5-develop' into v5-develop
This commit is contained in:
		
						commit
						f661ea7ba9
					
				
							
								
								
									
										65
									
								
								.env.cypress
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								.env.cypress
									
									
									
									
									
								
							| @ -1,65 +0,0 @@ | |||||||
| APP_NAME="Invoice Ninja" |  | ||||||
| APP_ENV=local |  | ||||||
| APP_KEY=base64:xV0ixUbXIGjeWImmcjCYL8/XespgcEk+dTTPlM17dNE= |  | ||||||
| APP_DEBUG=true |  | ||||||
| APP_DOMAIN=ninja.test:8000 |  | ||||||
| 
 |  | ||||||
| APP_URL=http://ninja.test:8000/ |  | ||||||
| #APP_URL=https://ninja.test |  | ||||||
| 
 |  | ||||||
| DB_CONNECTION=mysql |  | ||||||
| MULTI_DB_ENABLED=false |  | ||||||
| 
 |  | ||||||
| DB_HOST1=127.0.0.1 |  | ||||||
| DB_DATABASE1=db-ninja-01 |  | ||||||
| DB_USERNAME1=ninja |  | ||||||
| DB_PASSWORD1=ninja |  | ||||||
| DB_PORT1=3306 |  | ||||||
| 
 |  | ||||||
| DB_HOST2=127.0.0.1 |  | ||||||
| DB_DATABASE2=db-ninja-02 |  | ||||||
| DB_USERNAME2=ninja |  | ||||||
| DB_PASSWORD2=ninja |  | ||||||
| DB_PORT2=3306 |  | ||||||
| 
 |  | ||||||
| DEMO_MODE=false |  | ||||||
| 
 |  | ||||||
| LOG_CHANNEL=stack |  | ||||||
| REQUIRE_HTTPS=false |  | ||||||
| BROADCAST_DRIVER=pusher |  | ||||||
| CACHE_DRIVER=redis |  | ||||||
| QUEUE_CONNECTION=database |  | ||||||
| SESSION_DRIVER=redis |  | ||||||
| SESSION_DOMAIN=.ninja.test |  | ||||||
| SESSION_LIFETIME=120 |  | ||||||
| 
 |  | ||||||
| REDIS_HOST=127.0.0.1 |  | ||||||
| REDIS_PASSWORD=null |  | ||||||
| REDIS_PORT=6379 |  | ||||||
| 
 |  | ||||||
| PUSHER_APP_ID="ninja" |  | ||||||
| PUSHER_APP_KEY="ninja" |  | ||||||
| PUSHER_APP_SECRET="ninja" |  | ||||||
| PUSHER_APP_CLUSTER="ninja1" |  | ||||||
| 
 |  | ||||||
| MAIL_MAILER=log |  | ||||||
| MAIL_HOST=localhost |  | ||||||
| MAIL_PORT=1025 |  | ||||||
| MAIL_USERNAME=null |  | ||||||
| MAIL_PASSWORD=null |  | ||||||
| MAIL_ENCRYPTION=null |  | ||||||
| 
 |  | ||||||
| MAIL_FROM_ADDRESS='' |  | ||||||
| MAIL_FROM_NAME='' |  | ||||||
| 
 |  | ||||||
| GOOGLE_MAPS_API_KEY= |  | ||||||
| 
 |  | ||||||
| NINJA_ENVIRONMENT=selfhost |  | ||||||
| 
 |  | ||||||
| HASH_SALT= |  | ||||||
| 
 |  | ||||||
| FILESYSTEM_DRIVER=public |  | ||||||
| 
 |  | ||||||
| PDF_GENERATOR=snappdf  |  | ||||||
| 
 |  | ||||||
| MIX_ASSET_URL=false |  | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -24,6 +24,7 @@ _ide_helper.php | |||||||
| /resources/assets/bower | /resources/assets/bower | ||||||
| /public/logo | /public/logo | ||||||
| .env.dusk.local | .env.dusk.local | ||||||
|  | .env.cypress | ||||||
| /public/vendors/* | /public/vendors/* | ||||||
| *.log | *.log | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1 +1 @@ | |||||||
| 5.5.86 | 5.5.88 | ||||||
| @ -135,7 +135,9 @@ class PaymentFilters extends QueryFilters | |||||||
|     /** |     /** | ||||||
|      * Sorts the list based on $sort. |      * Sorts the list based on $sort. | ||||||
|      * |      * | ||||||
|      * @param string sort formatted as column|asc |      *  formatted as column|asc | ||||||
|  |      *   | ||||||
|  |      * @param string $sort | ||||||
|      * @return Builder |      * @return Builder | ||||||
|      */ |      */ | ||||||
|     public function sort(string $sort = ''): Builder |     public function sort(string $sort = ''): Builder | ||||||
| @ -152,7 +154,7 @@ class PaymentFilters extends QueryFilters | |||||||
|     /** |     /** | ||||||
|      * Filters the query by the users company ID. |      * Filters the query by the users company ID. | ||||||
|      * |      * | ||||||
|      * @return Illuminate\Database\Query\Builder |      * @return Illuminate\Database\Eloquent\Builder | ||||||
|      */ |      */ | ||||||
|     public function entityFilter(): Builder |     public function entityFilter(): Builder | ||||||
|     { |     { | ||||||
|  | |||||||
| @ -179,9 +179,9 @@ class PreviewController extends BaseController | |||||||
| 
 | 
 | ||||||
|     public function design(DesignPreviewRequest $request) |     public function design(DesignPreviewRequest $request) | ||||||
|     { |     { | ||||||
|         if (Ninja::isHosted() && !in_array($request->getHost(), ['preview.invoicing.co','staging.invoicing.co'])) { |         // if (Ninja::isHosted() && !in_array($request->getHost(), ['preview.invoicing.co','staging.invoicing.co'])) {
 | ||||||
|             return response()->json(['message' => 'This server cannot handle this request.'], 400); |         //     return response()->json(['message' => 'This server cannot handle this request.'], 400);
 | ||||||
|         } |         // }
 | ||||||
| 
 | 
 | ||||||
|         $pdf = (new PdfMock($request->all(), auth()->user()->company()))->build()->getPdf(); |         $pdf = (new PdfMock($request->all(), auth()->user()->company()))->build()->getPdf(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -144,7 +144,7 @@ class Gateway extends StaticModel | |||||||
|                     GatewayType::DIRECT_DEBIT => ['refund' => false, 'token_billing' => false, 'webhooks' => ['payment_intent.processing','payment_intent.succeeded','payment_intent.partially_funded']], |                     GatewayType::DIRECT_DEBIT => ['refund' => false, 'token_billing' => false, 'webhooks' => ['payment_intent.processing','payment_intent.succeeded','payment_intent.partially_funded']], | ||||||
|                     GatewayType::ALIPAY => ['refund' => false, 'token_billing' => false], |                     GatewayType::ALIPAY => ['refund' => false, 'token_billing' => false], | ||||||
|                     GatewayType::APPLE_PAY => ['refund' => false, 'token_billing' => false], |                     GatewayType::APPLE_PAY => ['refund' => false, 'token_billing' => false], | ||||||
|                     GatewayType::BACS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded']], |                     GatewayType::BACS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.processing', 'payment_intent.succeeded', 'mandate.updated']], | ||||||
|                     GatewayType::SOFORT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::SOFORT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], | ||||||
|                     GatewayType::KLARNA => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::KLARNA => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], | ||||||
|                     GatewayType::SEPA => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::SEPA => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], | ||||||
| @ -191,7 +191,7 @@ class Gateway extends StaticModel | |||||||
|                     GatewayType::EPS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::EPS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], | ||||||
|                     GatewayType::BANCONTACT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::BANCONTACT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], | ||||||
|                     GatewayType::BECS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::BECS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], | ||||||
|                     GatewayType::BACS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::BACS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.processing', 'payment_intent.succeeded', 'mandate.updated']], | ||||||
|                     GatewayType::IDEAL => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::IDEAL => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], | ||||||
|                     GatewayType::ACSS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], |                     GatewayType::ACSS => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded', 'payment_intent.succeeded']], | ||||||
|                     GatewayType::FPX => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded']], |                     GatewayType::FPX => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded']], | ||||||
|  | |||||||
| @ -49,7 +49,6 @@ class EmailQualityNotification extends Notification | |||||||
|      * Get the mail representation of the notification. |      * Get the mail representation of the notification. | ||||||
|      * |      * | ||||||
|      * @param  mixed  $notifiable |      * @param  mixed  $notifiable | ||||||
|      * @return MailMessage |  | ||||||
|      */ |      */ | ||||||
|     public function toMail($notifiable) |     public function toMail($notifiable) | ||||||
|     { |     { | ||||||
|  | |||||||
| @ -281,7 +281,7 @@ class ACH | |||||||
|                 $data['payment_method_types'] = ['us_bank_account']; |                 $data['payment_method_types'] = ['us_bank_account']; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             $response = $this->stripe->createPaymentIntent($data, $this->stripe->stripe_connect_auth); |             $response = $this->stripe->createPaymentIntent($data); | ||||||
| 
 | 
 | ||||||
|             SystemLogger::dispatch($response, SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_SUCCESS, SystemLog::TYPE_STRIPE, $this->stripe->client, $this->stripe->client->company); |             SystemLogger::dispatch($response, SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_SUCCESS, SystemLog::TYPE_STRIPE, $this->stripe->client, $this->stripe->client->company); | ||||||
|         } catch (\Exception $e) { |         } catch (\Exception $e) { | ||||||
|  | |||||||
| @ -82,7 +82,9 @@ class BACS | |||||||
|     { |     { | ||||||
|         $this->stripe->init(); |         $this->stripe->init(); | ||||||
|         $invoice_numbers = collect($this->stripe->payment_hash->invoices())->pluck('invoice_number')->implode(','); |         $invoice_numbers = collect($this->stripe->payment_hash->invoices())->pluck('invoice_number')->implode(','); | ||||||
|         $description = ctrans('texts.stripe_payment_text', ['invoicenumber' => $invoice_numbers, 'amount' => Number::formatMoney($request->amount, $this->stripe->client), 'client' => $this->stripe->client->present()->name()]); |         // $description = ctrans('texts.stripe_payment_text', ['invoicenumber' => $invoice_numbers, 'amount' => Number::formatMoney($request->amount, $this->stripe->client), 'client' => $this->stripe->client->present()->name()]);
 | ||||||
|  |         $description = $this->stripe->getDescription(false); | ||||||
|  | 
 | ||||||
|         $payment_intent_data = [ |         $payment_intent_data = [ | ||||||
|             'amount' => $this->stripe->convertToStripeAmount($request->amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), |             'amount' => $this->stripe->convertToStripeAmount($request->amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), | ||||||
|             'currency' => $this->stripe->client->getCurrencyCode(), |             'currency' => $this->stripe->client->getCurrencyCode(), | ||||||
| @ -130,14 +132,14 @@ class BACS | |||||||
| 
 | 
 | ||||||
|         $payment = $this->stripe->createPayment($data, Payment::STATUS_PENDING); |         $payment = $this->stripe->createPayment($data, Payment::STATUS_PENDING); | ||||||
| 
 | 
 | ||||||
|         SystemLogger::dispatch( |         (new SystemLogger( | ||||||
|             ['response' => $payment_intent, 'data' => $data], |             ['response' => $payment_intent, 'data' => $data], | ||||||
|             SystemLog::CATEGORY_GATEWAY_RESPONSE, |             SystemLog::CATEGORY_GATEWAY_RESPONSE, | ||||||
|             SystemLog::EVENT_GATEWAY_SUCCESS, |             SystemLog::EVENT_GATEWAY_SUCCESS, | ||||||
|             SystemLog::TYPE_STRIPE, |             SystemLog::TYPE_STRIPE, | ||||||
|             $this->stripe->client, |             $this->stripe->client, | ||||||
|             $this->stripe->client->company, |             $this->stripe->client->company, | ||||||
|         ); |         ))->handle(); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         return redirect()->route('client.payments.show', ['payment' => $this->stripe->encodePrimaryKey($payment->id)]); |         return redirect()->route('client.payments.show', ['payment' => $this->stripe->encodePrimaryKey($payment->id)]); | ||||||
| @ -152,14 +154,14 @@ class BACS | |||||||
|             'data' => $this->stripe->payment_hash->data, |             'data' => $this->stripe->payment_hash->data, | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         SystemLogger::dispatch( |         (new SystemLogger( | ||||||
|             $message, |             $message, | ||||||
|             SystemLog::CATEGORY_GATEWAY_RESPONSE, |             SystemLog::CATEGORY_GATEWAY_RESPONSE, | ||||||
|             SystemLog::EVENT_GATEWAY_FAILURE, |             SystemLog::EVENT_GATEWAY_FAILURE, | ||||||
|             SystemLog::TYPE_STRIPE, |             SystemLog::TYPE_STRIPE, | ||||||
|             $this->stripe->client, |             $this->stripe->client, | ||||||
|             $this->stripe->client->company, |             $this->stripe->client->company, | ||||||
|         ); |         ))->handle(); | ||||||
| 
 | 
 | ||||||
|         throw new PaymentFailed('Failed to process the payment.', 500); |         throw new PaymentFailed('Failed to process the payment.', 500); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -15,13 +15,11 @@ namespace App\PaymentDrivers\Stripe; | |||||||
| 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; | ||||||
| use App\Models\Invoice; |  | ||||||
| use App\Models\Payment; | use App\Models\Payment; | ||||||
| use App\Models\PaymentHash; | use App\Models\PaymentHash; | ||||||
| use App\Models\PaymentType; | use App\Models\PaymentType; | ||||||
| use App\Models\SystemLog; | use App\Models\SystemLog; | ||||||
| use App\PaymentDrivers\StripePaymentDriver; | use App\PaymentDrivers\StripePaymentDriver; | ||||||
| use App\Utils\Number; |  | ||||||
| use App\Utils\Traits\MakesHash; | use App\Utils\Traits\MakesHash; | ||||||
| use Stripe\Exception\ApiErrorException; | use Stripe\Exception\ApiErrorException; | ||||||
| use Stripe\Exception\AuthenticationException; | use Stripe\Exception\AuthenticationException; | ||||||
|  | |||||||
| @ -35,12 +35,10 @@ use App\PaymentDrivers\Stripe\EPS; | |||||||
| use App\PaymentDrivers\Stripe\FPX; | use App\PaymentDrivers\Stripe\FPX; | ||||||
| use App\PaymentDrivers\Stripe\ACSS; | use App\PaymentDrivers\Stripe\ACSS; | ||||||
| use App\PaymentDrivers\Stripe\Alipay; | use App\PaymentDrivers\Stripe\Alipay; | ||||||
| use App\PaymentDrivers\Stripe\ApplePay; |  | ||||||
| use App\PaymentDrivers\Stripe\BACS; | use App\PaymentDrivers\Stripe\BACS; | ||||||
| use App\PaymentDrivers\Stripe\BECS; | use App\PaymentDrivers\Stripe\BECS; | ||||||
| use App\PaymentDrivers\Stripe\SEPA; | use App\PaymentDrivers\Stripe\SEPA; | ||||||
| use App\PaymentDrivers\Stripe\iDeal; | use App\PaymentDrivers\Stripe\iDeal; | ||||||
| use App\PaymentDrivers\Stripe\Alipay; |  | ||||||
| use App\PaymentDrivers\Stripe\Charge; | use App\PaymentDrivers\Stripe\Charge; | ||||||
| use App\PaymentDrivers\Stripe\Klarna; | use App\PaymentDrivers\Stripe\Klarna; | ||||||
| use App\PaymentDrivers\Stripe\SOFORT; | use App\PaymentDrivers\Stripe\SOFORT; | ||||||
| @ -244,7 +242,6 @@ class StripePaymentDriver extends BaseDriver | |||||||
|             && $this->client->currency() |             && $this->client->currency() | ||||||
|             && in_array($this->client->currency()->code, ['GBP']) |             && in_array($this->client->currency()->code, ['GBP']) | ||||||
|             && isset($this->client->country) |             && isset($this->client->country) | ||||||
|             && in_array($this->client->company->country()->getID(), ['826']) |  | ||||||
|             && in_array($this->client->country->iso_3166_3, ['GBR'])) { |             && in_array($this->client->country->iso_3166_3, ['GBR'])) { | ||||||
|             $types[] = GatewayType::BACS; |             $types[] = GatewayType::BACS; | ||||||
|         } |         } | ||||||
| @ -259,7 +256,6 @@ class StripePaymentDriver extends BaseDriver | |||||||
|             && $this->client->currency() |             && $this->client->currency() | ||||||
|             && in_array($this->client->currency()->code, ['EUR', 'DKK', 'GBP', 'NOK', 'SEK', 'AUD', 'NZD', 'CAD', 'PLN', 'CHF', 'USD']) |             && in_array($this->client->currency()->code, ['EUR', 'DKK', 'GBP', 'NOK', 'SEK', 'AUD', 'NZD', 'CAD', 'PLN', 'CHF', 'USD']) | ||||||
|             && isset($this->client->country) |             && isset($this->client->country) | ||||||
|             && in_array($this->client->company->country()->id, ['840']) |  | ||||||
|             && in_array($this->client->country->iso_3166_3, ['AUT','BEL','DNK','FIN','FRA','DEU','IRL','ITA','NLD','NOR','ESP','SWE','GBR','USA'])) { |             && in_array($this->client->country->iso_3166_3, ['AUT','BEL','DNK','FIN','FRA','DEU','IRL','ITA','NLD','NOR','ESP','SWE','GBR','USA'])) { | ||||||
|             $types[] = GatewayType::KLARNA; |             $types[] = GatewayType::KLARNA; | ||||||
|         } |         } | ||||||
| @ -292,30 +288,22 @@ class StripePaymentDriver extends BaseDriver | |||||||
|         switch ($gateway_type_id) { |         switch ($gateway_type_id) { | ||||||
|             case GatewayType::CREDIT_CARD: |             case GatewayType::CREDIT_CARD: | ||||||
|                 return 'gateways.stripe.credit_card'; |                 return 'gateways.stripe.credit_card'; | ||||||
|                 break; |  | ||||||
|             case GatewayType::SOFORT: |             case GatewayType::SOFORT: | ||||||
|                 return 'gateways.stripe.sofort'; |                 return 'gateways.stripe.sofort'; | ||||||
|                 break; |  | ||||||
|             case GatewayType::BANK_TRANSFER: |             case GatewayType::BANK_TRANSFER: | ||||||
|                 return 'gateways.stripe.ach'; |                 return 'gateways.stripe.ach'; | ||||||
|                 break; |  | ||||||
|             case GatewayType::SEPA: |             case GatewayType::SEPA: | ||||||
|                 return 'gateways.stripe.sepa'; |                 return 'gateways.stripe.sepa'; | ||||||
|                 break; |  | ||||||
|             case GatewayType::PRZELEWY24: |             case GatewayType::PRZELEWY24: | ||||||
|                 return 'gateways.stripe.przelewy24'; |                 return 'gateways.stripe.przelewy24'; | ||||||
|                 break; |  | ||||||
|             case GatewayType::CRYPTO: |             case GatewayType::CRYPTO: | ||||||
|             case GatewayType::ALIPAY: |             case GatewayType::ALIPAY: | ||||||
|             case GatewayType::APPLE_PAY: |             case GatewayType::APPLE_PAY: | ||||||
|                 return 'gateways.stripe.other'; |                 return 'gateways.stripe.other'; | ||||||
|                 break; |  | ||||||
|             case GatewayType::GIROPAY: |             case GatewayType::GIROPAY: | ||||||
|                 return 'gateways.stripe.giropay'; |                 return 'gateways.stripe.giropay'; | ||||||
|                 break; |  | ||||||
|             case GatewayType::KLARNA: |             case GatewayType::KLARNA: | ||||||
|                 return 'gateways.stripe.klarna'; |                 return 'gateways.stripe.klarna'; | ||||||
|                 break; |  | ||||||
|             case GatewayType::IDEAL: |             case GatewayType::IDEAL: | ||||||
|                 return 'gateways.stripe.ideal'; |                 return 'gateways.stripe.ideal'; | ||||||
|             case GatewayType::EPS: |             case GatewayType::EPS: | ||||||
| @ -769,58 +757,38 @@ class StripePaymentDriver extends BaseDriver | |||||||
|         } elseif ($request->type === "payment_method.automatically_updated"){ |         } elseif ($request->type === "payment_method.automatically_updated"){ | ||||||
|             // Will notify customer on updated information
 |             // Will notify customer on updated information
 | ||||||
|             return response()->json([], 200); |             return response()->json([], 200); | ||||||
|         } elseif ($request->type === "checkout.session.completed"){ |  | ||||||
|             // Store payment token for Stripe BACS
 |  | ||||||
|             $this->init(); |  | ||||||
|             $setup_intent = $this->stripe->setupIntents->retrieve($request->data['object']['setup_intent'], []); |  | ||||||
|             $clientpayment_token = ClientGatewayToken::where('gateway_customer_reference', $request->data['object']['customer'])->first(); |  | ||||||
|             if ($clientpayment_token){ |  | ||||||
|                 $this->client = Client::where('id', $clientpayment_token->client_id)->first(); |  | ||||||
|                 $customer = $this->findOrCreateCustomer(); |  | ||||||
|                 $this->attach($setup_intent->payment_method, $customer); |  | ||||||
|                 $payment_method =  $this->getStripePaymentMethod($setup_intent->payment_method); |  | ||||||
|                 $payment_meta = new \stdClass; |  | ||||||
|                 $payment_meta->brand = (string) $payment_method->bacs_debit->sort_code; |  | ||||||
|                 $payment_meta->last4 = (string) $payment_method->bacs_debit->last4; |  | ||||||
|                 $payment_meta->state = 'unauthorized'; |  | ||||||
|                 $payment_meta->type = GatewayType::BACS; |  | ||||||
| 
 |  | ||||||
|                 $data = [ |  | ||||||
|                     'payment_meta' => $payment_meta, |  | ||||||
|                     'token' => $payment_method->id, |  | ||||||
|                     'payment_method_id' => GatewayType::BACS, |  | ||||||
|                 ]; |  | ||||||
|                 $clientgateway = ClientGatewayToken::query() |  | ||||||
|                     ->where('token', $payment_method) |  | ||||||
|                     ->first(); |  | ||||||
|                 if (!$clientgateway){ |  | ||||||
|                     $this->storeGatewayToken($data, ['gateway_customer_reference' => $customer->id]); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             return response()->json([], 200); |  | ||||||
|         } elseif ($request->type === "mandate.updated"){ |         } elseif ($request->type === "mandate.updated"){ | ||||||
|             // Check if payment method BACS is still valid
 | 
 | ||||||
|             if ($request->data['object']['status'] === "active"){ |             if ($request->data['object']['status'] == "active"){ | ||||||
|                 // Check if payment method exists
 |                 // Check if payment method existsn
 | ||||||
|                 $payment_method = (string) $request->data['object']['payment_method']; |                 $payment_method = (string) $request->data['object']['payment_method']; | ||||||
|  | 
 | ||||||
|                 $clientgateway = ClientGatewayToken::query() |                 $clientgateway = ClientGatewayToken::query() | ||||||
|                     ->where('token', $payment_method) |                     ->where('token', $payment_method) | ||||||
|                     ->first(); |                     ->first(); | ||||||
|  | 
 | ||||||
|                 if ($clientgateway){ |                 if ($clientgateway){ | ||||||
|                     $clientgateway->meta->state = 'authorized'; | 
 | ||||||
|                     $clientgateway->update(); |                     $meta = $clientgateway->meta; | ||||||
|                 }; |                     $meta->state = 'authorized'; | ||||||
|  |                     $clientgateway->meta = $meta; | ||||||
|  |                     $clientgateway->save(); | ||||||
|  | 
 | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|                 return response()->json([], 200); |                 return response()->json([], 200); | ||||||
|             } |             } | ||||||
|             elseif ($request->data['object']['status'] === "inactive" && $request->data['object']['payment_method']){ |             elseif ($request->data['object']['status'] == "inactive" && $request->data['object']['payment_method']){ | ||||||
|                 // Delete payment method
 |                 // Delete payment method
 | ||||||
|                 $clientgateway = ClientGatewayToken::query() |                 $clientgateway = ClientGatewayToken::query() | ||||||
|                     ->where('token', $request->data['object']['payment_method']) |                     ->where('token', $request->data['object']['payment_method']) | ||||||
|                     ->first(); |                     ->first(); | ||||||
|  | 
 | ||||||
|                 $clientgateway->delete(); |                 $clientgateway->delete(); | ||||||
|  |                  | ||||||
|                 return response()->json([], 200); |                 return response()->json([], 200); | ||||||
|             } |             } | ||||||
|             elseif ($request->data['object']['status'] === "pending"){ |             elseif ($request->data['object']['status'] == "pending"){ | ||||||
|                 return response()->json([], 200); |                 return response()->json([], 200); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -109,6 +109,7 @@ class EmailDefaults | |||||||
|         $this->template = $this->email->email_object->settings->email_style; |         $this->template = $this->email->email_object->settings->email_style; | ||||||
| 
 | 
 | ||||||
|         match ($this->email->email_object->settings->email_style) { |         match ($this->email->email_object->settings->email_style) { | ||||||
|  |             'plain' => $this->template = 'email.template.plain', | ||||||
|             'light' => $this->template = 'email.template.client', |             'light' => $this->template = 'email.template.client', | ||||||
|             'dark' => $this->template = 'email.template.client', |             'dark' => $this->template = 'email.template.client', | ||||||
|             'custom' => $this->template = 'email.template.custom', |             'custom' => $this->template = 'email.template.custom', | ||||||
| @ -272,24 +273,40 @@ class EmailDefaults | |||||||
|         $documents = []; |         $documents = []; | ||||||
| 
 | 
 | ||||||
|         /* Return early if the user cannot attach documents */ |         /* Return early if the user cannot attach documents */ | ||||||
|         if (!$this->email->email_object->settings->document_email_attachment || !$this->email->company->account->hasFeature(Account::FEATURE_DOCUMENTS)) { |         if (!$this->email->company->account->hasFeature(Account::FEATURE_DOCUMENTS)) { | ||||||
|             return $this; |             return $this; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         /** Purchase Order / Invoice / Credit / Quote PDF  */ |         /** Purchase Order / Invoice / Credit / Quote PDF  */ | ||||||
|         if ($this->email->email_object->entity instanceof PurchaseOrder) { |         if ($this->email->email_object->settings->pdf_email_attachment && $this->email->email_object->entity instanceof PurchaseOrder) { | ||||||
|  | 
 | ||||||
|             $pdf = (new CreatePurchaseOrderPdf($this->email->email_object->invitation))->rawPdf(); |             $pdf = (new CreatePurchaseOrderPdf($this->email->email_object->invitation))->rawPdf(); | ||||||
| 
 | 
 | ||||||
|             $this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($pdf), 'name' => $this->email->email_object->entity->numberFormatter().'.pdf']]); |             $this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($pdf), 'name' => $this->email->email_object->entity->numberFormatter().'.pdf']]); | ||||||
|  | 
 | ||||||
|         } elseif ($this->email->email_object->settings->pdf_email_attachment && |         } elseif ($this->email->email_object->settings->pdf_email_attachment && | ||||||
|         ($this->email->email_object->entity instanceof Invoice || |         ($this->email->email_object->entity instanceof Invoice || | ||||||
|          $this->email->email_object->entity instanceof Quote || |          $this->email->email_object->entity instanceof Quote || | ||||||
|          $this->email->email_object->entity instanceof Credit)) { |          $this->email->email_object->entity instanceof Credit)) { | ||||||
|  | 
 | ||||||
|             $pdf = ((new CreateRawPdf($this->email->email_object->invitation, $this->email->company->db))->handle()); |             $pdf = ((new CreateRawPdf($this->email->email_object->invitation, $this->email->company->db))->handle()); | ||||||
| 
 | 
 | ||||||
|             $this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($pdf), 'name' => $this->email->email_object->entity->numberFormatter().'.pdf']]); |             $this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($pdf), 'name' => $this->email->email_object->entity->numberFormatter().'.pdf']]); | ||||||
|  | 
 | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         /** UBL xml file */ | ||||||
|  |         if ($this->email->email_object->settings->ubl_email_attachment && $this->email->email_object->entity instanceof Invoice) { | ||||||
|  |             $ubl_string = (new CreateUbl($this->email->email_object->entity))->handle(); | ||||||
|  | 
 | ||||||
|  |             if ($ubl_string) { | ||||||
|  |                 $this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($ubl_string), 'name' => $this->email->email_object->entity->getFileName('xml')]]); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if(!$this->email->email_object->settings->document_email_attachment) | ||||||
|  |             return $this; | ||||||
|  | 
 | ||||||
|         /* Company Documents */ |         /* Company Documents */ | ||||||
|         $this->email->email_object->documents = array_merge($this->email->email_object->documents, $this->email->company->documents->pluck('id')->toArray()); |         $this->email->email_object->documents = array_merge($this->email->email_object->documents, $this->email->company->documents->pluck('id')->toArray()); | ||||||
| 
 | 
 | ||||||
| @ -336,15 +353,6 @@ class EmailDefaults | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         /** UBL xml file */ |  | ||||||
|         if ($this->email->email_object->entity instanceof Invoice && $this->email->email_object->settings->ubl_email_attachment) { |  | ||||||
|             $ubl_string = (new CreateUbl($this->email->email_object->entity))->handle(); |  | ||||||
| 
 |  | ||||||
|             if ($ubl_string) { |  | ||||||
|                 $this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($ubl_string), 'name' => $this->email->email_object->entity->getFileName('xml')]]); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         return $this; |         return $this; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -33,20 +33,24 @@ use App\Models\PurchaseOrderInvitation; | |||||||
|  */ |  */ | ||||||
| class EmailObject | class EmailObject | ||||||
| { | { | ||||||
|  |     /** @var array[string] $args */ | ||||||
|     public array $to = []; |     public array $to = []; | ||||||
| 
 | 
 | ||||||
|     public ?Address $from = null; |     public ?Address $from = null; | ||||||
| 
 | 
 | ||||||
|     public array $reply_to = []; |     public array $reply_to = []; | ||||||
| 
 | 
 | ||||||
|  |     /** @var array[Address] $args */ | ||||||
|     public array $cc = []; |     public array $cc = []; | ||||||
| 
 | 
 | ||||||
|  |     /** @var array[Address] $args */ | ||||||
|     public array $bcc = []; |     public array $bcc = []; | ||||||
| 
 | 
 | ||||||
|     public ?string $subject = null; |     public ?string $subject = null; | ||||||
| 
 | 
 | ||||||
|     public ?string $body = null; |     public ?string $body = null; | ||||||
| 
 | 
 | ||||||
|  |     /** @var array{key: value} $args */ | ||||||
|     public array $attachments = []; |     public array $attachments = []; | ||||||
| 
 | 
 | ||||||
|     public string $company_key; |     public string $company_key; | ||||||
| @ -97,17 +101,19 @@ class EmailObject | |||||||
| 
 | 
 | ||||||
|     public ?string $text_template = 'email.template.text'; |     public ?string $text_template = 'email.template.text'; | ||||||
| 
 | 
 | ||||||
|  |     /** @var array{key: value} $args */ | ||||||
|     public array $headers = []; |     public array $headers = []; | ||||||
| 
 | 
 | ||||||
|     public ?string $entity_class = null; |     public ?string $entity_class = null; | ||||||
| 
 | 
 | ||||||
|  |     /** @var array{key: value} $args */ | ||||||
|     public array $variables = []; |     public array $variables = []; | ||||||
| 
 | 
 | ||||||
|     public bool $override = false; |     public bool $override = false; | ||||||
| 
 | 
 | ||||||
|     public ?string $invitation_key = null; |     public ?string $invitation_key = null; | ||||||
| 
 | 
 | ||||||
|     // @phpstan-ignore-next-line    
 |     /** @var array[int] $args */ | ||||||
|     public array $documents = []; |     public array $documents = []; | ||||||
| 
 | 
 | ||||||
|     public ?string $template = null; //invoice //quote //reminder1
 |     public ?string $template = null; //invoice //quote //reminder1
 | ||||||
|  | |||||||
| @ -240,7 +240,7 @@ class Design extends BaseDesign | |||||||
|     { |     { | ||||||
|         $elements = []; |         $elements = []; | ||||||
| 
 | 
 | ||||||
|         if (!$this->client) { |         if (!$this->client || $this->type == self::DELIVERY_NOTE) { | ||||||
|             return $elements; |             return $elements; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -984,6 +984,10 @@ html { | |||||||
|      */ |      */ | ||||||
|     private function buildViewButton(string $link, string $text): string |     private function buildViewButton(string $link, string $text): string | ||||||
|     { |     { | ||||||
|  | 
 | ||||||
|  | if($this->settings->email_style == 'plain') | ||||||
|  |     return '<a href="'. $link .'" target="_blank">'. $text .'</a>';        | ||||||
|  | 
 | ||||||
|         return ' |         return ' | ||||||
| <div> | <div> | ||||||
| <!--[if (gte mso 9)|(IE)]> | <!--[if (gte mso 9)|(IE)]> | ||||||
|  | |||||||
							
								
								
									
										53
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										53
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							| @ -380,16 +380,16 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "aws/aws-sdk-php", |             "name": "aws/aws-sdk-php", | ||||||
|             "version": "3.261.8", |             "version": "3.261.9", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/aws/aws-sdk-php.git", |                 "url": "https://github.com/aws/aws-sdk-php.git", | ||||||
|                 "reference": "9c38c82b7d3fb2b15957e71cae3957450e131ed8" |                 "reference": "d91e6f89a6c41e8df859b0d313150386cfee6f6a" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/9c38c82b7d3fb2b15957e71cae3957450e131ed8", |                 "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d91e6f89a6c41e8df859b0d313150386cfee6f6a", | ||||||
|                 "reference": "9c38c82b7d3fb2b15957e71cae3957450e131ed8", |                 "reference": "d91e6f89a6c41e8df859b0d313150386cfee6f6a", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -468,9 +468,9 @@ | |||||||
|             "support": { |             "support": { | ||||||
|                 "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", |                 "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", | ||||||
|                 "issues": "https://github.com/aws/aws-sdk-php/issues", |                 "issues": "https://github.com/aws/aws-sdk-php/issues", | ||||||
|                 "source": "https://github.com/aws/aws-sdk-php/tree/3.261.8" |                 "source": "https://github.com/aws/aws-sdk-php/tree/3.261.9" | ||||||
|             }, |             }, | ||||||
|             "time": "2023-03-09T19:23:27+00:00" |             "time": "2023-03-10T19:25:08+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "bacon/bacon-qr-code", |             "name": "bacon/bacon-qr-code", | ||||||
| @ -4432,34 +4432,37 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "league/csv", |             "name": "league/csv", | ||||||
|             "version": "9.8.0", |             "version": "9.9.0", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/thephpleague/csv.git", |                 "url": "https://github.com/thephpleague/csv.git", | ||||||
|                 "reference": "9d2e0265c5d90f5dd601bc65ff717e05cec19b47" |                 "reference": "b4418ede47fbd88facc34e40a16c8ce9153b961b" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/thephpleague/csv/zipball/9d2e0265c5d90f5dd601bc65ff717e05cec19b47", |                 "url": "https://api.github.com/repos/thephpleague/csv/zipball/b4418ede47fbd88facc34e40a16c8ce9153b961b", | ||||||
|                 "reference": "9d2e0265c5d90f5dd601bc65ff717e05cec19b47", |                 "reference": "b4418ede47fbd88facc34e40a16c8ce9153b961b", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
|                 "ext-json": "*", |                 "ext-json": "*", | ||||||
|                 "ext-mbstring": "*", |                 "ext-mbstring": "*", | ||||||
|                 "php": "^7.4 || ^8.0" |                 "php": "^8.1.2" | ||||||
|             }, |             }, | ||||||
|             "require-dev": { |             "require-dev": { | ||||||
|                 "ext-curl": "*", |                 "doctrine/collections": "^2.1.2", | ||||||
|                 "ext-dom": "*", |                 "ext-dom": "*", | ||||||
|                 "friendsofphp/php-cs-fixer": "^v3.4.0", |                 "ext-xdebug": "*", | ||||||
|                 "phpstan/phpstan": "^1.3.0", |                 "friendsofphp/php-cs-fixer": "^v3.14.3", | ||||||
|                 "phpstan/phpstan-phpunit": "^1.0.0", |                 "phpbench/phpbench": "^1.2.8", | ||||||
|                 "phpstan/phpstan-strict-rules": "^1.1.0", |                 "phpstan/phpstan": "^1.10.4", | ||||||
|                 "phpunit/phpunit": "^9.5.11" |                 "phpstan/phpstan-deprecation-rules": "^1.1.2", | ||||||
|  |                 "phpstan/phpstan-phpunit": "^1.3.10", | ||||||
|  |                 "phpstan/phpstan-strict-rules": "^1.5.0", | ||||||
|  |                 "phpunit/phpunit": "^10.0.14" | ||||||
|             }, |             }, | ||||||
|             "suggest": { |             "suggest": { | ||||||
|                 "ext-dom": "Required to use the XMLConverter and or the HTMLConverter classes", |                 "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes", | ||||||
|                 "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters" |                 "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters" | ||||||
|             }, |             }, | ||||||
|             "type": "library", |             "type": "library", | ||||||
| @ -4512,7 +4515,7 @@ | |||||||
|                     "type": "github" |                     "type": "github" | ||||||
|                 } |                 } | ||||||
|             ], |             ], | ||||||
|             "time": "2022-01-04T00:13:07+00:00" |             "time": "2023-03-11T15:57:12+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "league/flysystem", |             "name": "league/flysystem", | ||||||
| @ -5064,16 +5067,16 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "mollie/mollie-api-php", |             "name": "mollie/mollie-api-php", | ||||||
|             "version": "v2.50.0", |             "version": "v2.50.1", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/mollie/mollie-api-php.git", |                 "url": "https://github.com/mollie/mollie-api-php.git", | ||||||
|                 "reference": "2291b114ec636392e3e48b73d33199b3b4a790d5" |                 "reference": "b2739c31a8a037d6fa1bf204e071c9dd4f465f38" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/2291b114ec636392e3e48b73d33199b3b4a790d5", |                 "url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/b2739c31a8a037d6fa1bf204e071c9dd4f465f38", | ||||||
|                 "reference": "2291b114ec636392e3e48b73d33199b3b4a790d5", |                 "reference": "b2739c31a8a037d6fa1bf204e071c9dd4f465f38", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -5150,9 +5153,9 @@ | |||||||
|             ], |             ], | ||||||
|             "support": { |             "support": { | ||||||
|                 "issues": "https://github.com/mollie/mollie-api-php/issues", |                 "issues": "https://github.com/mollie/mollie-api-php/issues", | ||||||
|                 "source": "https://github.com/mollie/mollie-api-php/tree/v2.50.0" |                 "source": "https://github.com/mollie/mollie-api-php/tree/v2.50.1" | ||||||
|             }, |             }, | ||||||
|             "time": "2023-01-02T08:49:24+00:00" |             "time": "2023-03-10T12:15:10+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "moneyphp/money", |             "name": "moneyphp/money", | ||||||
|  | |||||||
| @ -14,8 +14,8 @@ return [ | |||||||
|     'require_https' => env('REQUIRE_HTTPS', true), |     'require_https' => env('REQUIRE_HTTPS', true), | ||||||
|     'app_url' => rtrim(env('APP_URL', ''), '/'), |     'app_url' => rtrim(env('APP_URL', ''), '/'), | ||||||
|     'app_domain' => env('APP_DOMAIN', 'invoicing.co'), |     'app_domain' => env('APP_DOMAIN', 'invoicing.co'), | ||||||
|     'app_version' => '5.5.86', |     'app_version' => '5.5.88', | ||||||
|     'app_tag' => '5.5.86', |     'app_tag' => '5.5.88', | ||||||
|     'minimum_client_version' => '5.0.16', |     'minimum_client_version' => '5.0.16', | ||||||
|     'terms_version' => '1.0.1', |     'terms_version' => '1.0.1', | ||||||
|     'api_secret' => env('API_SECRET', ''), |     'api_secret' => env('API_SECRET', ''), | ||||||
|  | |||||||
							
								
								
									
										74
									
								
								config/purchase.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								config/purchase.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,74 @@ | |||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\Cancel; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\Refund; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\Revoke; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\DidRenew; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\DidRecover; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\InitialBuy; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\DidFailToRenew; | ||||||
|  | use App\Listeners\Subscription\AppStoreRenewSubscription; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\InteractiveRenewal; | ||||||
|  | use App\Listeners\Subscription\PlayStoreRenewSubscription; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\DidChangeRenewalPref; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\PriceIncreaseConsent; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionOnHold; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPaused; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionExpired; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRenewed; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRevoked; | ||||||
|  | use Imdhemy\Purchases\Events\AppStore\DidChangeRenewalStatus; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionCanceled; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionDeferred; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPurchased; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRecovered; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRestarted; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionInGracePeriod; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPauseScheduleChanged; | ||||||
|  | use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPriceChangeConfirmed; | ||||||
|  | 
 | ||||||
|  | return [ | ||||||
|  |     'routing' => [], | ||||||
|  | 
 | ||||||
|  |     'google_play_package_name' => env('GOOGLE_PLAY_PACKAGE_NAME', 'com.invoiceninja.app'), | ||||||
|  | 
 | ||||||
|  |     'appstore_password' => env('APPSTORE_PASSWORD', ''), | ||||||
|  | 
 | ||||||
|  |     'eventListeners' => [ | ||||||
|  |         /** | ||||||
|  |          * -------------------------------------------------------- | ||||||
|  |          * Google Play Events | ||||||
|  |          * -------------------------------------------------------- | ||||||
|  |          */ | ||||||
|  |         SubscriptionPurchased::class => [], | ||||||
|  |         SubscriptionRenewed::class => [PlayStoreRenewSubscription::class], | ||||||
|  |         SubscriptionInGracePeriod::class => [], | ||||||
|  |         SubscriptionExpired::class => [], | ||||||
|  |         SubscriptionCanceled::class => [], | ||||||
|  |         SubscriptionPaused::class => [], | ||||||
|  |         SubscriptionRestarted::class => [], | ||||||
|  |         SubscriptionDeferred::class => [], | ||||||
|  |         SubscriptionRevoked::class => [], | ||||||
|  |         SubscriptionOnHold::class => [], | ||||||
|  |         SubscriptionRecovered::class => [], | ||||||
|  |         SubscriptionPauseScheduleChanged::class => [], | ||||||
|  |         SubscriptionPriceChangeConfirmed::class => [], | ||||||
|  | 
 | ||||||
|  |         /** | ||||||
|  |          * -------------------------------------------------------- | ||||||
|  |          * Appstore Events | ||||||
|  |          * -------------------------------------------------------- | ||||||
|  |          */ | ||||||
|  |         Cancel::class => [], | ||||||
|  |         DidChangeRenewalPref::class => [], | ||||||
|  |         DidChangeRenewalStatus::class => [], | ||||||
|  |         DidFailToRenew::class => [], | ||||||
|  |         DidRecover::class => [], | ||||||
|  |         DidRenew::class => [AppStoreRenewSubscription::class], | ||||||
|  |         InitialBuy::class => [], | ||||||
|  |         InteractiveRenewal::class => [], | ||||||
|  |         PriceIncreaseConsent::class => [], | ||||||
|  |         Refund::class => [], | ||||||
|  |         Revoke::class => [], | ||||||
|  |     ], | ||||||
|  | ]; | ||||||
| @ -30,8 +30,11 @@ use App\Models\GroupSetting; | |||||||
| use App\Models\ClientContact; | use App\Models\ClientContact; | ||||||
| use App\Models\VendorContact; | use App\Models\VendorContact; | ||||||
| use App\Models\CompanyGateway; | use App\Models\CompanyGateway; | ||||||
|  | use App\Models\BankIntegration; | ||||||
|  | use App\Models\BankTransaction; | ||||||
| use Illuminate\Database\Seeder; | use Illuminate\Database\Seeder; | ||||||
| use App\Models\RecurringInvoice; | use App\Models\RecurringInvoice; | ||||||
|  | use App\DataMapper\FeesAndLimits; | ||||||
| use App\DataMapper\ClientSettings; | use App\DataMapper\ClientSettings; | ||||||
| use App\DataMapper\CompanySettings; | use App\DataMapper\CompanySettings; | ||||||
| use App\Helpers\Invoice\InvoiceSum; | use App\Helpers\Invoice\InvoiceSum; | ||||||
| @ -44,8 +47,6 @@ use App\Repositories\InvoiceRepository; | |||||||
| use Illuminate\Database\Eloquent\Model; | use Illuminate\Database\Eloquent\Model; | ||||||
| use App\Events\Payment\PaymentWasCreated; | use App\Events\Payment\PaymentWasCreated; | ||||||
| use App\Helpers\Invoice\InvoiceSumInclusive; | use App\Helpers\Invoice\InvoiceSumInclusive; | ||||||
| use App\Models\BankIntegration; |  | ||||||
| use App\Models\BankTransaction; |  | ||||||
| 
 | 
 | ||||||
| class RandomDataSeeder extends Seeder | class RandomDataSeeder extends Seeder | ||||||
| { | { | ||||||
| @ -374,6 +375,13 @@ class RandomDataSeeder extends Seeder | |||||||
|             $cg->require_shipping_address = true; |             $cg->require_shipping_address = true; | ||||||
|             $cg->update_details = true; |             $cg->update_details = true; | ||||||
|             $cg->config = encrypt(config('ninja.testvars.stripe')); |             $cg->config = encrypt(config('ninja.testvars.stripe')); | ||||||
|  | 
 | ||||||
|  |             $gateway_types = $cg->driver()->gatewayTypes(); | ||||||
|  | 
 | ||||||
|  |             $fees_and_limits = new \stdClass; | ||||||
|  |             $fees_and_limits->{$gateway_types[0]} = new FeesAndLimits; | ||||||
|  | 
 | ||||||
|  |             $cg->fees_and_limits = $fees_and_limits; | ||||||
|             $cg->save(); |             $cg->save(); | ||||||
| 
 | 
 | ||||||
|             $cg = new CompanyGateway; |             $cg = new CompanyGateway; | ||||||
|  | |||||||
							
								
								
									
										21
									
								
								preload.php
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								preload.php
									
									
									
									
									
								
							| @ -12,6 +12,8 @@ class Preloader | |||||||
| 
 | 
 | ||||||
|     private array $fileMap; |     private array $fileMap; | ||||||
| 
 | 
 | ||||||
|  |     private array $exclude_paths; | ||||||
|  | 
 | ||||||
|     public function __construct(string ...$paths) |     public function __construct(string ...$paths) | ||||||
|     { |     { | ||||||
|         $this->paths = $paths; |         $this->paths = $paths; | ||||||
| @ -62,6 +64,10 @@ class Preloader | |||||||
|         // If the current path is a directory,
 |         // If the current path is a directory,
 | ||||||
|         // we'll load all files in it
 |         // we'll load all files in it
 | ||||||
|         if (is_dir($path)) { |         if (is_dir($path)) { | ||||||
|  |             if (in_array($path, $this->exclude_paths)) { | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|             $this->loadDir($path); |             $this->loadDir($path); | ||||||
| 
 | 
 | ||||||
|             return; |             return; | ||||||
| @ -105,7 +111,14 @@ class Preloader | |||||||
| 
 | 
 | ||||||
|         self::$count++; |         self::$count++; | ||||||
| 
 | 
 | ||||||
|         echo "[Preloader] Preloaded `{$class}`" . PHP_EOL; |         // echo "[Preloader] Preloaded `{$class}`" . PHP_EOL;
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public function excludePaths(array $exclude_paths): Preloader | ||||||
|  |     { | ||||||
|  |         $this->exclude_paths = $exclude_paths; | ||||||
|  | 
 | ||||||
|  |         return $this; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private function shouldIgnore(?string $name): bool |     private function shouldIgnore(?string $name): bool | ||||||
| @ -126,6 +139,12 @@ class Preloader | |||||||
| 
 | 
 | ||||||
| (new Preloader()) | (new Preloader()) | ||||||
|     ->paths(__DIR__ . '/vendor/laravel') |     ->paths(__DIR__ . '/vendor/laravel') | ||||||
|  |     ->excludePaths([ | ||||||
|  |         __DIR__ . '/vendor/laravel/framework/src/Illuminate/Support/Testing', | ||||||
|  |         __DIR__ . '/vendor/laravel/framework/src/Illuminate/Http/Testing', | ||||||
|  |         __DIR__ . '/vendor/laravel/framework/src/Illuminate/Testing', | ||||||
|  |         __DIR__ . '/vendor/laravel/framework/src/Illuminate/Foundation/Testing', | ||||||
|  |     ]) | ||||||
|     ->ignore( |     ->ignore( | ||||||
|         \Illuminate\Filesystem\Cache::class, |         \Illuminate\Filesystem\Cache::class, | ||||||
|         \Illuminate\Log\LogManager::class, |         \Illuminate\Log\LogManager::class, | ||||||
|  | |||||||
| @ -6142,7 +6142,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||||
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||||||
| cross_file | cross_file | ||||||
| flutter_plugin_android_lifecycle | flutter_plugin_android_lifecycle | ||||||
| google_identity_services_web |  | ||||||
| google_sign_in | google_sign_in | ||||||
| google_sign_in_android | google_sign_in_android | ||||||
| google_sign_in_ios | google_sign_in_ios | ||||||
|  | |||||||
							
								
								
									
										196816
									
								
								public/css/app.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										196816
									
								
								public/css/app.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										6
									
								
								public/flutter_service_worker.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								public/flutter_service_worker.js
									
									
									
									
										vendored
									
									
								
							| @ -9,7 +9,7 @@ const RESOURCES = { | |||||||
| "canvaskit/profiling/canvaskit.js": "c21852696bc1cc82e8894d851c01921a", | "canvaskit/profiling/canvaskit.js": "c21852696bc1cc82e8894d851c01921a", | ||||||
| "favicon.png": "dca91c54388f52eded692718d5a98b8b", | "favicon.png": "dca91c54388f52eded692718d5a98b8b", | ||||||
| "favicon.ico": "51636d3a390451561744c42188ccd628", | "favicon.ico": "51636d3a390451561744c42188ccd628", | ||||||
| "assets/NOTICES": "b6ef5cf9eac9b8ae3f08bcf37ba466fd", | "assets/NOTICES": "3dad07993c5dfb9208eba18d3e2bda8e", | ||||||
| "assets/assets/images/google_logo.png": "0f118259ce403274f407f5e982e681c3", | "assets/assets/images/google_logo.png": "0f118259ce403274f407f5e982e681c3", | ||||||
| "assets/assets/images/payment_types/discover.png": "6c0a386a00307f87db7bea366cca35f5", | "assets/assets/images/payment_types/discover.png": "6c0a386a00307f87db7bea366cca35f5", | ||||||
| "assets/assets/images/payment_types/carteblanche.png": "d936e11fa3884b8c9f1bd5c914be8629", | "assets/assets/images/payment_types/carteblanche.png": "d936e11fa3884b8c9f1bd5c914be8629", | ||||||
| @ -294,10 +294,10 @@ const RESOURCES = { | |||||||
| "assets/packages/intl_phone_field/assets/flags/mx.png": "84b12a569b209e213daccfcbdd1fc799", | "assets/packages/intl_phone_field/assets/flags/mx.png": "84b12a569b209e213daccfcbdd1fc799", | ||||||
| "assets/packages/intl_phone_field/assets/flags/ke.png": "cf5aae3699d3cacb39db9803edae172b", | "assets/packages/intl_phone_field/assets/flags/ke.png": "cf5aae3699d3cacb39db9803edae172b", | ||||||
| "assets/AssetManifest.json": "759f9ef9973f7e26c2a51450b55bb9fa", | "assets/AssetManifest.json": "759f9ef9973f7e26c2a51450b55bb9fa", | ||||||
| "main.dart.js": "a3720b075429162ee97a092f75257ded", | "main.dart.js": "b97003cce3ed83c9a77095561185d27f", | ||||||
| "manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40", | "manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40", | ||||||
| "flutter.js": "a85fcf6324d3c4d3ae3be1ae4931e9c5", | "flutter.js": "a85fcf6324d3c4d3ae3be1ae4931e9c5", | ||||||
| "/": "c37a614dd7e04f8c7a62274ce81cd7b0", | "/": "8fd413aeb8f0524d69cc006a2223b895", | ||||||
| "icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed", | "icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed", | ||||||
| "icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35", | "icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35", | ||||||
| "version.json": "2be88b1b71eb79c99ccdf1bd26cf7104" | "version.json": "2be88b1b71eb79c99ccdf1bd26cf7104" | ||||||
|  | |||||||
							
								
								
									
										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,136 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see action-selectors.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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){if((arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).hasOwnProperty("single")&&document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),!1!==t.checked){var r=document.createElement("INPUT");r.setAttribute("name","invoices[]"),r.setAttribute("value",t.dataset.value),r.setAttribute("class","child-hidden-input"),r.hidden=!0,n.append(r)}else{var o,c=e(document.querySelectorAll("input.child-hidden-input"));try{for(c.s();!(o=c.n()).done;){var i=o.value;i.value==t.dataset.value&&i.remove()}}catch(e){c.e(e)}finally{c.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()})(); | ||||||
| /*!***********************************************************!*\ |  | ||||||
|   !*** ./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,126 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see payment.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!**************************************************!*\ |  | ||||||
|   !*** ./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,376 +1 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | (()=>{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:()=>p});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}),s=(e,t)=>e.replace(/((?<!\+)https?:\/\/(?:www\.)?(?:[-\w.]+?[.@][a-zA-Z\d]{2,}|localhost)(?:[-\w.:%+~#*$!?&/=@]*?(?:,(?!\s))*?)*)/g,(e=>l(e,t))),u=(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};function p(e,t){if("string"===(t={attributes:{},type:"string",...t}).type)return s(e,t);if("dom"===t.type)return u(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"}}))}))})(); | ||||||
| /******/ 	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,95 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see authorize-authorize-card.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!**************************************************************************!*\ |  | ||||||
|   !*** ./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,59 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see authorize-checkout-card.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!*************************************************************************!*\ |  | ||||||
|   !*** ./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,69 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see braintree-ach.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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}))})(); | ||||||
| /*!***************************************************************!*\ |  | ||||||
|   !*** ./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,77 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see wepay-bank-account.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()}))})(); | ||||||
| /*!********************************************************************!*\ |  | ||||||
|   !*** ./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,137 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see authorize-credit-card-payment.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!************************************************************************!*\ |  | ||||||
|   !*** ./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,147 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see braintree-credit-card.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!****************************************************************!*\ |  | ||||||
|   !*** ./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,130 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see braintree-paypal.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!***********************************************************!*\ |  | ||||||
|   !*** ./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,99 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see checkout-credit-card.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!***************************************************************!*\ |  | ||||||
|   !*** ./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,85 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see forte-ach-payment.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!************************************************************!*\ |  | ||||||
|   !*** ./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,86 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see forte-credit-card-payment.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!********************************************************************!*\ |  | ||||||
|   !*** ./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,155 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see mollie-credit-card.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!*************************************************************!*\ |  | ||||||
|   !*** ./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,174 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see paytrace-credit-card.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!***************************************************************!*\ |  | ||||||
|   !*** ./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,38 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see razorpay-aio.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()}})(); | ||||||
| /*!*******************************************************!*\ |  | ||||||
|   !*** ./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,112 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-ach.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!*****************************************************!*\ |  | ||||||
|   !*** ./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,114 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-acss.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!******************************************************!*\ |  | ||||||
|   !*** ./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(); |  | ||||||
| /******/ })() |  | ||||||
| ; |  | ||||||
							
								
								
									
										135
									
								
								public/js/clients/payments/stripe-alipay.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										135
									
								
								public/js/clients/payments/stripe-alipay.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										80
									
								
								public/js/clients/payments/stripe-bancontact.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										80
									
								
								public/js/clients/payments/stripe-bancontact.js
									
									
									
									
										vendored
									
									
								
							| @ -1,78 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-bancontact.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!************************************************************!*\ |  | ||||||
|   !*** ./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,155 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-becs.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!******************************************************!*\ |  | ||||||
|   !*** ./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,122 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-browserpay.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!************************************************************!*\ |  | ||||||
|   !*** ./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
											
										
									
								
							
							
								
								
									
										98
									
								
								public/js/clients/payments/stripe-eps.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										98
									
								
								public/js/clients/payments/stripe-eps.js
									
									
									
									
										vendored
									
									
								
							| @ -1,96 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-eps.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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,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"),r.stripe.confirmEpsPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{eps:r.eps,billing_details:{name:document.getElementById("eps-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()})(); | ||||||
| /*!*****************************************************!*\ |  | ||||||
|   !*** ./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; |  | ||||||
|         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("eps-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,107 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-fpx.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!*****************************************************!*\ |  | ||||||
|   !*** ./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,78 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-giropay.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!*********************************************************!*\ |  | ||||||
|   !*** ./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,97 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-ideal.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!*******************************************************!*\ |  | ||||||
|   !*** ./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,102 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-klarna.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!********************************************************!*\ |  | ||||||
|   !*** ./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(); |  | ||||||
| /******/ })() |  | ||||||
| ; |  | ||||||
							
								
								
									
										134
									
								
								public/js/clients/payments/stripe-przelewy24.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										134
									
								
								public/js/clients/payments/stripe-przelewy24.js
									
									
									
									
										vendored
									
									
								
							| @ -1,132 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-przelewy24.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{var e,t,n,o;function r(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 a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(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=a((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),d(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})),d(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}).then((function(e){e.error?(t.textContent=e.error.message,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")):"succeeded"===e.paymentIntent.status&&(window.location=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 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()})(); | ||||||
| /*!************************************************************!*\ |  | ||||||
|   !*** ./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 |  | ||||||
|       }).then(function (result) { |  | ||||||
|         if (result.error) { |  | ||||||
|           // Show error to your customer
 |  | ||||||
|           errors.textContent = result.error.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'); |  | ||||||
|         } else { |  | ||||||
|           // The payment has been processed!
 |  | ||||||
|           if (result.paymentIntent.status === 'succeeded') { |  | ||||||
|             window.location = 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
									
									
								
							| @ -1,194 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-sepa.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{var e,t,n,a;function o(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 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 a=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r(this,"setupStripe",(function(){a.stripeConnect?a.stripe=Stripe(a.key,{stripeAccount:a.stripeConnect}):a.stripe=Stripe(a.key);var e=a.stripe.elements(),t={style:{base:{color:"#32325d",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',fontSmoothing:"antialiased",fontSize:"16px","::placeholder":{color:"#aab7c4"},":-webkit-autofill":{color:"#32325d"}},invalid:{color:"#fa755a",iconColor:"#fa755a",":-webkit-autofill":{color:"#fa755a"}}},supportedCountries:["SEPA"],placeholderCountry:document.querySelector('meta[name="country"]').content};return a.iban=e.create("iban",t),a.iban.mount("#sepa-iban"),document.getElementById("sepa-name").value=document.querySelector("meta[name=client_name]").content,document.getElementById("sepa-email-address").value=document.querySelector("meta[name=client_email]").content,a})),r(this,"handle",(function(){var e=document.getElementById("errors");Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach((function(e){return e.addEventListener("click",(function(e){document.getElementById("stripe--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-new-bank-account").addEventListener("click",(function(e){document.getElementById("stripe--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(t){if(0!==document.querySelector("input[name=token]").value.length)document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),a.stripe.confirmSepaDebitPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:document.querySelector("input[name=token]").value}).then((function(e){return e.error?a.handleFailure(e.error.message):a.handleSuccess(e)}));else{if(""===document.getElementById("sepa-name").value)return document.getElementById("sepa-name").focus(),e.textContent=document.querySelector("meta[name=translation-name-required]").content,void(e.hidden=!1);if(""===document.getElementById("sepa-email-address").value)return document.getElementById("sepa-email-address").focus(),e.textContent=document.querySelector("meta[name=translation-email-required]").content,void(e.hidden=!1);if(!document.getElementById("sepa-mandate-acceptance").checked)return e.textContent=document.querySelector("meta[name=translation-terms-required]").content,void(e.hidden=!1);document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),a.stripe.confirmSepaDebitPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{sepa_debit:a.iban,billing_details:{name:document.getElementById("sepa-name").value,email:document.getElementById("sepa-email-address").value}}}).then((function(e){return e.error?a.handleFailure(e.error.message):a.handleSuccess(e)}))}}))})),this.key=t,this.errors=document.getElementById("errors"),this.stripeConnect=n}var t,n,a;return t=e,(n=[{key:"handleSuccess",value:function(e){document.querySelector('input[name="gateway_response"]').value=JSON.stringify(e.paymentIntent);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()}},{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),a&&o(t,a),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===(a=document.querySelector('meta[name="stripe-account-id"]'))||void 0===a?void 0:a.content)&&void 0!==n?n:"").setupStripe().handle()})(); | ||||||
| /*!******************************************************!*\ |  | ||||||
|   !*** ./resources/js/clients/payments/stripe-sepa.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 ProcessSEPA = /*#__PURE__*/function () { |  | ||||||
|   function ProcessSEPA(key, stripeConnect) { |  | ||||||
|     var _this = this; |  | ||||||
| 
 |  | ||||||
|     _classCallCheck(this, ProcessSEPA); |  | ||||||
| 
 |  | ||||||
|     _defineProperty(this, "setupStripe", function () { |  | ||||||
|       if (_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', |  | ||||||
|           fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif', |  | ||||||
|           fontSmoothing: 'antialiased', |  | ||||||
|           fontSize: '16px', |  | ||||||
|           '::placeholder': { |  | ||||||
|             color: '#aab7c4' |  | ||||||
|           }, |  | ||||||
|           ':-webkit-autofill': { |  | ||||||
|             color: '#32325d' |  | ||||||
|           } |  | ||||||
|         }, |  | ||||||
|         invalid: { |  | ||||||
|           color: '#fa755a', |  | ||||||
|           iconColor: '#fa755a', |  | ||||||
|           ':-webkit-autofill': { |  | ||||||
|             color: '#fa755a' |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }; |  | ||||||
|       var options = { |  | ||||||
|         style: style, |  | ||||||
|         supportedCountries: ['SEPA'], |  | ||||||
|         // If you know the country of the customer, you can optionally pass it to
 |  | ||||||
|         // the Element as placeholderCountry. The example IBAN that is being used
 |  | ||||||
|         // as placeholder reflects the IBAN format of that country.
 |  | ||||||
|         placeholderCountry: document.querySelector('meta[name="country"]').content |  | ||||||
|       }; |  | ||||||
|       _this.iban = elements.create('iban', options); |  | ||||||
| 
 |  | ||||||
|       _this.iban.mount('#sepa-iban'); |  | ||||||
| 
 |  | ||||||
|       document.getElementById('sepa-name').value = document.querySelector('meta[name=client_name]').content; |  | ||||||
|       document.getElementById('sepa-email-address').value = document.querySelector('meta[name=client_email]').content; |  | ||||||
|       return _this; |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     _defineProperty(this, "handle", function () { |  | ||||||
|       var errors = document.getElementById('errors'); |  | ||||||
|       Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) { |  | ||||||
|         return element.addEventListener('click', function (element) { |  | ||||||
|           document.getElementById('stripe--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-new-bank-account').addEventListener('click', function (element) { |  | ||||||
|         document.getElementById('stripe--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 (e) { |  | ||||||
|         if (document.querySelector('input[name=token]').value.length !== 0) { |  | ||||||
|           document.getElementById('pay-now').disabled = true; |  | ||||||
|           document.querySelector('#pay-now > svg').classList.remove('hidden'); |  | ||||||
|           document.querySelector('#pay-now > span').classList.add('hidden'); |  | ||||||
| 
 |  | ||||||
|           _this.stripe.confirmSepaDebitPayment(document.querySelector('meta[name=pi-client-secret').content, { |  | ||||||
|             payment_method: document.querySelector('input[name=token]').value |  | ||||||
|           }).then(function (result) { |  | ||||||
|             if (result.error) { |  | ||||||
|               return _this.handleFailure(result.error.message); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             return _this.handleSuccess(result); |  | ||||||
|           }); |  | ||||||
|         } else { |  | ||||||
|           if (document.getElementById('sepa-name').value === '') { |  | ||||||
|             document.getElementById('sepa-name').focus(); |  | ||||||
|             errors.textContent = document.querySelector('meta[name=translation-name-required]').content; |  | ||||||
|             errors.hidden = false; |  | ||||||
|             return; |  | ||||||
|           } |  | ||||||
| 
 |  | ||||||
|           if (document.getElementById('sepa-email-address').value === '') { |  | ||||||
|             document.getElementById('sepa-email-address').focus(); |  | ||||||
|             errors.textContent = document.querySelector('meta[name=translation-email-required]').content; |  | ||||||
|             errors.hidden = false; |  | ||||||
|             return; |  | ||||||
|           } |  | ||||||
| 
 |  | ||||||
|           if (!document.getElementById('sepa-mandate-acceptance').checked) { |  | ||||||
|             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.confirmSepaDebitPayment(document.querySelector('meta[name=pi-client-secret').content, { |  | ||||||
|             payment_method: { |  | ||||||
|               sepa_debit: _this.iban, |  | ||||||
|               billing_details: { |  | ||||||
|                 name: document.getElementById('sepa-name').value, |  | ||||||
|                 email: document.getElementById('sepa-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(ProcessSEPA, [{ |  | ||||||
|     key: "handleSuccess", |  | ||||||
|     value: function handleSuccess(result) { |  | ||||||
|       document.querySelector('input[name="gateway_response"]').value = JSON.stringify(result.paymentIntent); |  | ||||||
|       var tokenBillingCheckbox = document.querySelector('input[name="token-billing-checkbox"]:checked'); |  | ||||||
| 
 |  | ||||||
|       if (tokenBillingCheckbox) { |  | ||||||
|         document.querySelector('input[name="store_card"]').value = tokenBillingCheckbox.value; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       if (document.querySelector('input[name=token]').value.length > 2) { |  | ||||||
|         document.querySelector('input[name="store_card"]').value = false; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       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 ProcessSEPA; |  | ||||||
| }(); |  | ||||||
| 
 |  | ||||||
| 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 ProcessSEPA(publishableKey, stripeConnect).setupStripe().handle(); |  | ||||||
| /******/ })() |  | ||||||
| ; |  | ||||||
							
								
								
									
										71
									
								
								public/js/clients/payments/stripe-sofort.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								public/js/clients/payments/stripe-sofort.js
									
									
									
									
										vendored
									
									
								
							| @ -1,69 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see stripe-sofort.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!********************************************************!*\ |  | ||||||
|   !*** ./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,112 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see accept.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!********************************************************!*\ |  | ||||||
|   !*** ./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,136 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see action-selectors.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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){if((arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).hasOwnProperty("single")&&document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),!1!==t.checked){var r=document.createElement("INPUT");r.setAttribute("name","purchase_orders[]"),r.setAttribute("value",t.dataset.value),r.setAttribute("class","child-hidden-input"),r.hidden=!0,n.append(r)}else{var o,c=e(document.querySelectorAll("input.child-hidden-input"));try{for(c.s();!(o=c.n()).done;){var i=o.value;i.value==t.dataset.value&&i.remove()}}catch(e){c.e(e)}finally{c.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()})(); | ||||||
| /*!******************************************************************!*\ |  | ||||||
|   !*** ./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,136 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see action-selectors.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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){if((arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).hasOwnProperty("single")&&document.querySelectorAll(".child-hidden-input").forEach((function(e){return e.remove()})),!1!==t.checked){var r=document.createElement("INPUT");r.setAttribute("name","quotes[]"),r.setAttribute("value",t.dataset.value),r.setAttribute("class","child-hidden-input"),r.hidden=!0,n.append(r)}else{var o,c=e(document.querySelectorAll("input.child-hidden-input"));try{for(c.s();!(o=c.n()).done;){var i=o.value;i.value==t.dataset.value&&i.remove()}}catch(e){c.e(e)}finally{c.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()})(); | ||||||
| /*!*********************************************************!*\ |  | ||||||
|   !*** ./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,143 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see approve.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{function e(e,t){for(var n=0;n<t.length;n++){var u=t[n];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(e,u.key,u)}}var t=function(){function t(e,n,u){!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.shouldDisplayUserInput=u,this.termsAccepted=!1}var n,u,a;return n=t,(u=[{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:"displayInput",value:function(){document.getElementById("displayInputModal").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("hide_close").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.shouldDisplayUserInput||(e.displayInput(),document.getElementById("input-next-step").addEventListener("click",(function(){document.querySelector('input[name="user_input"').value=document.getElementById("user_input").value,e.termsAccepted=!0,e.submitForm()}))),e.shouldDisplayUserInput&&e.displayInput(),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(),document.querySelector('input[name="user_input"').value=document.getElementById("user_input").value,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(),document.querySelector('input[name="user_input"').value=document.getElementById("user_input").value,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.shouldDisplayUserInput||e.submitForm()}))}}])&&e(n.prototype,u),a&&e(n,a),Object.defineProperty(n,"prototype",{writable:!1}),t}(),n=document.querySelector('meta[name="require-quote-signature"]').content,u=document.querySelector('meta[name="show-quote-terms"]').content,a=document.querySelector('meta[name="accept-user-input"]').content;new t(Boolean(+n),Boolean(+u),Boolean(+a)).handle()})(); | ||||||
| /*!************************************************!*\ |  | ||||||
|   !*** ./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,37 +1 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | 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)}; | ||||||
| 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,104 +1,2 @@ | |||||||
| /******/ (() => { // webpackBootstrap
 | /*! For license information please see view.js.LICENSE.txt */ | ||||||
| var __webpack_exports__ = {}; | (()=>{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()})(); | ||||||
| /*!*************************************************!*\ |  | ||||||
|   !*** ./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
											
										
									
								
							
							
								
								
									
										277372
									
								
								public/main.dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										277372
									
								
								public/main.dart.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2376
									
								
								public/main.foss.dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2376
									
								
								public/main.foss.dart.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										18061
									
								
								public/main.profile.dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18061
									
								
								public/main.profile.dart.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -1,5 +1,5 @@ | |||||||
| { | { | ||||||
|     "/js/app.js": "/js/app.js?id=19300612c6880925e8043b61e8d49632", |     "/js/app.js": "/js/app.js?id=cbd2a86dc66f6e552e4b5ac87941ad5c", | ||||||
|     "/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=9fb77e87fe0f85a367050e08f79ec9df", | ||||||
|     "/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=803182f668c39d631ca5c55437876da4", | ||||||
|     "/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=6e9f466c5504d3753f9b4ffc6f947095", | ||||||
| @ -7,24 +7,24 @@ | |||||||
|     "/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=7bed15f51bca764378d9a3aa605b8664", | ||||||
|     "/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=5770e0d82d3843c68903744530f5ae73", | ||||||
|     "/js/clients/payments/stripe-bacs.js": "/js/clients/payments/stripe-bacs.js?id=5739aad61ac7bbb20f2149d203849ff7", |     "/js/clients/payments/stripe-bacs.js": "/js/clients/payments/stripe-bacs.js?id=5739aad61ac7bbb20f2149d203849ff7", | ||||||
|     "/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=13643c5378913a2de30368287859f0d9", | ||||||
|     "/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=c2f534146ad14c33e74cb53f8324d682", | ||||||
|     "/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=ddd4aa4069ea79411eeec367b7d5986d", | ||||||
|     "/js/clients/invoices/payment.js": "/js/clients/invoices/payment.js?id=28221de8f1cb37f845ba4ec59bcd8867", |     "/js/clients/invoices/payment.js": "/js/clients/invoices/payment.js?id=28221de8f1cb37f845ba4ec59bcd8867", | ||||||
|     "/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=1c5493a4c53a5b862d07ee1818179ea9", | ||||||
|     "/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=1b018ae099e239e47ca2e394b90af576", | ||||||
|     "/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=4bd34a0b160f6f29b3096d870ac4d308", | ||||||
|     "/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=0af9e4910d17cd5c67ceae955488b950", | ||||||
|     "/js/clients/quotes/approve.js": "/js/clients/quotes/approve.js?id=61a346e1977d3a1fec3634b234baa25c", |     "/js/clients/quotes/approve.js": "/js/clients/quotes/approve.js?id=2cb18f2df99d0eca47fa34f1d652c34f", | ||||||
|     "/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=cdcc94a3abdd08dfd981870eaa9d2a85", | ||||||
|     "/js/setup/setup.js": "/js/setup/setup.js?id=27560b012f166f8b9417ced2188aab70", |     "/js/setup/setup.js": "/js/setup/setup.js?id=27560b012f166f8b9417ced2188aab70", | ||||||
|     "/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=8ce33c3deae058ad314fb8357e5be63b", | ||||||
|     "/js/clients/shared/pdf.js": "/js/clients/shared/pdf.js?id=be5307abc990bb44f2f92628103b1d98", |     "/js/clients/shared/pdf.js": "/js/clients/shared/pdf.js?id=be5307abc990bb44f2f92628103b1d98", | ||||||
|     "/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=c2caa29f753ad1f3a12ca45acddacd72", | ||||||
|     "/js/clients/linkify-urls.js": "/js/clients/linkify-urls.js?id=2b2fe55f926789abc52f19111006e1ec", |     "/js/clients/linkify-urls.js": "/js/clients/linkify-urls.js?id=f7ed588c8fc0c0d0f797fceda02186b6", | ||||||
|     "/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=8e3b1c4c78c976ff0c43cb739c26b1f3", | ||||||
|     "/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=5764a8d406c1eda848d073f10d178626", | ||||||
|     "/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=dffbc3b7a502a61742e8f8ae5357a0fa", | ||||||
|     "/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=b8706d7de6127f184ad19b2a810880be", | ||||||
|     "/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=e0b1231a7bf6252672836222285c0f52", | ||||||
|     "/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=bbab588ed009a93345bec520cbe66869", | ||||||
| @ -33,18 +33,18 @@ | |||||||
|     "/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=b180fd6378d3723d3e9133e0b1943ac6", | ||||||
|     "/js/clients/statements/view.js": "/js/clients/statements/view.js?id=7971b212e8a849fe36bfe915f81023bd", |     "/js/clients/statements/view.js": "/js/clients/statements/view.js?id=7971b212e8a849fe36bfe915f81023bd", | ||||||
|     "/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=c36ab5621413ef1de7c864bc8eb7439e", | ||||||
|     "/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=0e3a5b2c1c8af491d577da6e84d2c219", | ||||||
|     "/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=e43f862d70d8710761f0856e528ec3d1", | ||||||
|     "/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=72ad4ad19297f211c2e6d0fa1fa1f76d", | ||||||
|     "/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=90b1805b1ca0264474b38054a2664c5b", | ||||||
|     "/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=03e5d7ee187e76b0b7c16bfa91804a8a", | ||||||
|     "/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=de2bd0ef2859e19e4f98ea9d6d11cb54", | ||||||
|     "/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=fc366183606619ea13aba0f8bcacba3e", | ||||||
|     "/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=0a6b434e3849db26c35a143e0347e914", | ||||||
|     "/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=2f3909c552b00cb7b9901bada1ff8d13", | ||||||
|     "/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=db71055862995fd6ae21becfc587a3de", | ||||||
|     "/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=914a6846ad1e5584635e7430fef76875", | ||||||
|     "/css/app.css": "/css/app.css?id=aeba2a01bf369ac522071ab602096c66", |     "/css/app.css": "/css/app.css?id=5995a04fad88b94db406903a8dfa526c", | ||||||
|     "/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" | ||||||
| } | } | ||||||
|  | |||||||
| @ -198,6 +198,8 @@ class StripeCreditCard { | |||||||
|             document |             document | ||||||
|                 .getElementById('pay-now') |                 .getElementById('pay-now') | ||||||
|                 .addEventListener('click', () => { |                 .addEventListener('click', () => { | ||||||
|  | 
 | ||||||
|  |                 try { | ||||||
|                     let tokenInput = document.querySelector('input[name=token]'); |                     let tokenInput = document.querySelector('input[name=token]'); | ||||||
| 
 | 
 | ||||||
|                     if (tokenInput.value) { |                     if (tokenInput.value) { | ||||||
| @ -205,6 +207,10 @@ class StripeCreditCard { | |||||||
|                     } |                     } | ||||||
| 
 | 
 | ||||||
|                     return this.completePaymentWithoutToken(); |                     return this.completePaymentWithoutToken(); | ||||||
|  |                 }catch(error){ | ||||||
|  |                     console.log(error.message); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|                 }); |                 }); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -2,6 +2,16 @@ | |||||||
| <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> | <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> | ||||||
| 
 | 
 | ||||||
|     <head> |     <head> | ||||||
|  |     @if(\App\Utils\Ninja::isHosted()) | ||||||
|  |     <!-- Google Tag Manager --> | ||||||
|  |     <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': | ||||||
|  |     new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], | ||||||
|  |     j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= | ||||||
|  |     'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); | ||||||
|  |     })(window,document,'script','dataLayer','GTM-WMJ5W23');</script> | ||||||
|  |     <!-- End Google Tag Manager --> | ||||||
|  |     @endif | ||||||
|  |      | ||||||
|         <!-- Error: {{ session('error') }} --> |         <!-- Error: {{ session('error') }} --> | ||||||
| 
 | 
 | ||||||
|         @if (config('services.analytics.tracking_id')) |         @if (config('services.analytics.tracking_id')) | ||||||
|  | |||||||
							
								
								
									
										54
									
								
								tests/cypress/integration/invoices.cy.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								tests/cypress/integration/invoices.cy.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | |||||||
|  | describe('Test Invoices', () => { | ||||||
|  | 
 | ||||||
|  |     it('Show Invoice List.', () => { | ||||||
|  | 
 | ||||||
|  |         cy.visit('/client/login'); | ||||||
|  |         cy.contains('Client Portal'); | ||||||
|  | 
 | ||||||
|  |         cy.get('input[name=email]').type('cypress@example.com'); | ||||||
|  |         cy.get('input[name=password]').type('password{enter}'); | ||||||
|  |         cy.url().should('include', '/invoices'); | ||||||
|  | 
 | ||||||
|  |         cy.get('[dusk="pay-now"]').first().click(); | ||||||
|  |         cy.url().should('include', '/invoices/payment'); | ||||||
|  | 
 | ||||||
|  |         cy.get('[dusk="pay-now-dropdown"]').first().click(); | ||||||
|  |         cy.get('[dusk="pay-with-0"]').first().click(); | ||||||
|  | 
 | ||||||
|  |         cy.url().should('include', '/payments/process'); | ||||||
|  | 
 | ||||||
|  |         cy.get('input[name=client_address_line_1]').clear().type('5 Wallaby Way'); | ||||||
|  |         cy.get('input[name=client_city]').clear().type('Perth'); | ||||||
|  |         cy.get('input[name=client_state]').clear().type('WA'); | ||||||
|  |         cy.get('#client_country').select("840"); | ||||||
|  |          | ||||||
|  |         cy.get('input[name=client_shipping_address_line_1]').clear().type('5 Wallaby Way'); | ||||||
|  |         cy.get('input[name=client_shipping_city]').clear().type('Perth'); | ||||||
|  |         cy.get('input[name=client_shipping_state]').clear().type('WA'); | ||||||
|  |         cy.get('#client_country').select("840"); | ||||||
|  |          | ||||||
|  |         cy.contains('Continue').click(); | ||||||
|  | 
 | ||||||
|  |         cy.get('#cardholder-name').type('Cypress Test'); | ||||||
|  | 
 | ||||||
|  |         cy.get("iframe").then($iframe => { | ||||||
|  |             const $body = $iframe.contents().find("body"); | ||||||
|  |             cy.wrap($body) | ||||||
|  |                 .find("input[placeholder='Card number']") | ||||||
|  |                 .type("4242424242424242"); | ||||||
|  |             cy.wrap($body) | ||||||
|  |                 .find("input[placeholder='MM / YY']") | ||||||
|  |                 .type("1225"); | ||||||
|  |             cy.wrap($body) | ||||||
|  |                 .find("input[placeholder='CVC']") | ||||||
|  |                 .type("100"); | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  |         cy.get('#pay-now').click(); | ||||||
|  |         cy.url().should('include', '/payments'); | ||||||
|  | 
 | ||||||
|  |          | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |    | ||||||
|  | }); | ||||||
							
								
								
									
										4
									
								
								tests/cypress/support/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								tests/cypress/support/index.js
									
									
									
									
										vendored
									
									
								
							| @ -26,7 +26,9 @@ before(() => { | |||||||
|     cy.artisan("migrate:fresh", { |     cy.artisan("migrate:fresh", { | ||||||
|         '--seed': true, |         '--seed': true, | ||||||
|     }); |     }); | ||||||
|     cy.seed('RandomDataSeeder'); |     cy.artisan("db:seed", { | ||||||
|  |         '--class': 'RandomDataSeeder', | ||||||
|  |     }); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| after(() => { | after(() => { | ||||||
|  | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user