Changeset 3605861
- Timestamp:
- 07/13/2026 10:33:34 AM (3 months ago)
- Location:
- payshop-online-payments
- Files:
-
- 18 added
- 60 edited
- 3 copied
-
tags/2.3.3 (copied) (copied from payshop-online-payments/trunk )
-
tags/2.3.3/controllers/front/PayshopProcessFailedRedirect.php (modified) (1 diff)
-
tags/2.3.3/controllers/front/PayshopProcessWalletPayment.php (modified) (1 diff)
-
tags/2.3.3/controllers/front/PayshopProcessWebhook.php (modified) (2 diffs)
-
tags/2.3.3/includes/PayshopAdminBootstrap.php (modified) (2 diffs)
-
tags/2.3.3/includes/PayshopBootstrap.php (modified) (5 diffs)
-
tags/2.3.3/includes/helpers/PayshopCommons.php (modified) (1 diff)
-
tags/2.3.3/includes/module/actions/PayshopCreatePaymentOrder.php (modified) (3 diffs)
-
tags/2.3.3/includes/module/alerts/PayshopCredentialsAlert.php (modified) (3 diffs)
-
tags/2.3.3/includes/module/dialogs/PayshopReferencesDialog.php (modified) (4 diffs)
-
tags/2.3.3/includes/module/events/PayshopPaymentReferenceExpired.php (added)
-
tags/2.3.3/includes/module/events/PayshopPaymentRefunded.php (added)
-
tags/2.3.3/includes/module/events/PayshopPaymentRefused.php (modified) (1 diff)
-
tags/2.3.3/includes/module/events/PayshopProcessEvent.php (modified) (5 diffs)
-
tags/2.3.3/includes/module/integrations (added)
-
tags/2.3.3/includes/module/integrations/PayshopApgSms.php (added)
-
tags/2.3.3/includes/module/integrations/index.php (added)
-
tags/2.3.3/includes/module/payments/PayshopCard.php (modified) (2 diffs)
-
tags/2.3.3/includes/module/payments/PayshopMultibanco.php (modified) (3 diffs)
-
tags/2.3.3/includes/module/payments/PayshopPaymentMethods.php (modified) (2 diffs)
-
tags/2.3.3/includes/module/payments/PayshopReference.php (modified) (3 diffs)
-
tags/2.3.3/includes/module/payments/blocks/PayshopMBWayBlock.php (modified) (1 diff)
-
tags/2.3.3/includes/module/payments/blocks/PayshopPaymentBlocks.php (modified) (3 diffs)
-
tags/2.3.3/includes/module/settings/PayshopCredentialsSettings.php (modified) (3 diffs)
-
tags/2.3.3/includes/module/settings/PayshopOthersSettings.php (added)
-
tags/2.3.3/includes/module/settings/PayshopPaymentServiceUUID.php (modified) (2 diffs)
-
tags/2.3.3/includes/module/settings/PayshopSettings.php (added)
-
tags/2.3.3/includes/sdk/PayshopClientFactory.php (modified) (1 diff)
-
tags/2.3.3/payshop-online-payments.php (copied) (copied from payshop-online-payments/trunk/payshop-online-payments.php ) (2 diffs)
-
tags/2.3.3/readme.txt (copied) (copied from payshop-online-payments/trunk/readme.txt ) (4 diffs)
-
tags/2.3.3/templates/blocks/build/mbway.asset.php (modified) (1 diff)
-
tags/2.3.3/templates/blocks/build/mbway.js (modified) (3 diffs)
-
tags/2.3.3/templates/blocks/build/mbway.js.map (modified) (1 diff)
-
tags/2.3.3/templates/blocks/package.json (modified) (1 diff)
-
tags/2.3.3/templates/blocks/src/mbway.js (modified) (2 diffs)
-
tags/2.3.3/templates/css/references-dialog.css (modified) (2 diffs)
-
tags/2.3.3/templates/js/admin/payshop-settings.js (added)
-
tags/2.3.3/templates/views/front/mbway.php (modified) (1 diff)
-
tags/2.3.3/templates/views/front/references-direct.php (added)
-
tags/2.3.3/translations/payshop-online-payments-pt_PT.mo (modified) ( previous)
-
tags/2.3.3/translations/payshop-online-payments-pt_PT.po (modified) (4 diffs)
-
trunk/controllers/front/PayshopProcessFailedRedirect.php (modified) (1 diff)
-
trunk/controllers/front/PayshopProcessWalletPayment.php (modified) (1 diff)
-
trunk/controllers/front/PayshopProcessWebhook.php (modified) (2 diffs)
-
trunk/includes/PayshopAdminBootstrap.php (modified) (2 diffs)
-
trunk/includes/PayshopBootstrap.php (modified) (5 diffs)
-
trunk/includes/helpers/PayshopCommons.php (modified) (1 diff)
-
trunk/includes/module/actions/PayshopCreatePaymentOrder.php (modified) (3 diffs)
-
trunk/includes/module/alerts/PayshopCredentialsAlert.php (modified) (3 diffs)
-
trunk/includes/module/dialogs/PayshopReferencesDialog.php (modified) (4 diffs)
-
trunk/includes/module/events/PayshopPaymentReferenceExpired.php (added)
-
trunk/includes/module/events/PayshopPaymentRefunded.php (added)
-
trunk/includes/module/events/PayshopPaymentRefused.php (modified) (1 diff)
-
trunk/includes/module/events/PayshopProcessEvent.php (modified) (5 diffs)
-
trunk/includes/module/integrations (added)
-
trunk/includes/module/integrations/PayshopApgSms.php (added)
-
trunk/includes/module/integrations/index.php (added)
-
trunk/includes/module/payments/PayshopCard.php (modified) (2 diffs)
-
trunk/includes/module/payments/PayshopMultibanco.php (modified) (3 diffs)
-
trunk/includes/module/payments/PayshopPaymentMethods.php (modified) (2 diffs)
-
trunk/includes/module/payments/PayshopReference.php (modified) (3 diffs)
-
trunk/includes/module/payments/blocks/PayshopMBWayBlock.php (modified) (1 diff)
-
trunk/includes/module/payments/blocks/PayshopPaymentBlocks.php (modified) (3 diffs)
-
trunk/includes/module/settings/PayshopCredentialsSettings.php (modified) (3 diffs)
-
trunk/includes/module/settings/PayshopOthersSettings.php (added)
-
trunk/includes/module/settings/PayshopPaymentServiceUUID.php (modified) (2 diffs)
-
trunk/includes/module/settings/PayshopSettings.php (added)
-
trunk/includes/sdk/PayshopClientFactory.php (modified) (1 diff)
-
trunk/payshop-online-payments.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (4 diffs)
-
trunk/templates/blocks/build/mbway.asset.php (modified) (1 diff)
-
trunk/templates/blocks/build/mbway.js (modified) (3 diffs)
-
trunk/templates/blocks/build/mbway.js.map (modified) (1 diff)
-
trunk/templates/blocks/package.json (modified) (1 diff)
-
trunk/templates/blocks/src/mbway.js (modified) (2 diffs)
-
trunk/templates/css/references-dialog.css (modified) (2 diffs)
-
trunk/templates/js/admin/payshop-settings.js (added)
-
trunk/templates/views/front/mbway.php (modified) (1 diff)
-
trunk/templates/views/front/references-direct.php (added)
-
trunk/translations/payshop-online-payments-pt_PT.mo (modified) ( previous)
-
trunk/translations/payshop-online-payments-pt_PT.po (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
payshop-online-payments/tags/2.3.3/controllers/front/PayshopProcessFailedRedirect.php
r3392166 r3605861 41 41 } 42 42 43 $order->update_status( 'failed', esc_html__('Payment refused', 'payshop-online-payments'));43 $order->update_status(PayshopCommons::getRefusedOrderStatus(), esc_html__('Payment refused', 'payshop-online-payments')); 44 44 $order->save(); 45 45 -
payshop-online-payments/tags/2.3.3/controllers/front/PayshopProcessWalletPayment.php
r3392166 r3605861 29 29 $result = $this->payshopCreateWalletPayment->execute($data); 30 30 31 $order = wc_get_order($data['order_id']);32 33 if ($data['payment_type'] === 'GOOGLEPAY') {34 $redirect = $result;35 } else {36 $redirect = $order->get_checkout_order_received_url();37 }38 39 31 wp_send_json([ 40 32 'success' => !! $result, 41 'redirect' => $re direct33 'redirect' => $result 42 34 ]); 43 35 } catch (\Throwable $e) { -
payshop-online-payments/tags/2.3.3/controllers/front/PayshopProcessWebhook.php
r3392166 r3605861 47 47 $data['order']['transactions'][$key]['status'] = sanitize_text_field($transaction['status']); 48 48 } 49 if (isset($transaction['error_details']['error_code'])) { 50 $data['order']['transactions'][$key]['error_details']['error_code'] = sanitize_text_field($transaction['error_details']['error_code']); 51 } 52 if (isset($transaction['operative'])) { 53 $data['order']['transactions'][$key]['operative'] = sanitize_text_field($transaction['operative']); 54 } 49 55 } 50 56 } … … 81 87 return in_array($orderPaymentStatus, [ 82 88 'CREATED', 83 'PARTIALLY_REFUNDED',84 89 'PARTIALLY_CONFIRMED', 85 'REFUNDED',86 90 'PENDING_PROCESSOR_RESPONSE', 87 91 'PENDING_3DS_RESPONSE', -
payshop-online-payments/tags/2.3.3/includes/PayshopAdminBootstrap.php
r3392166 r3605861 32 32 require_once PAYSHOP_PLUGIN_DIR . '/controllers/admin/PayshopTwoStepPayment.php'; 33 33 34 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopSettings.php'; 34 35 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopCredentialsSettings.php'; 36 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopOthersSettings.php'; 35 37 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopPaymentServiceUUID.php'; 36 38 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopPluginListLinks.php'; … … 59 61 (new PayshopRequirementsAlert())->execute(); 60 62 (new PayshopWoocommerceAlert())->execute(); 61 (new Payshop CredentialsSettings())->execute();63 (new PayshopSettings())->execute(); 62 64 (new PayshopPluginListLinks())->execute(); 63 65 (new PayshopCredentialsAlert())->execute(); -
payshop-online-payments/tags/2.3.3/includes/PayshopBootstrap.php
r3392166 r3605861 70 70 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopCreatePaymentOrder.php'; 71 71 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopUpdateOrder.php'; 72 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopAppleValidateMerchant.php';73 72 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopCreateWalletPayment.php'; 74 73 … … 81 80 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopClickToPay.php'; 82 81 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopGooglePay.php'; 83 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopApplePay.php';84 82 85 83 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopPaymentBlocks.php'; … … 87 85 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopReferencesDialog.php'; 88 86 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopGooglePayDialog.php'; 89 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopApplePayDialog.php';90 91 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/schedules/PayshopCancelOrderSchedule.php';92 87 93 88 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/loaders/PayshopCSS.php'; 94 89 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/PayshopAddHeaders.php'; 95 90 91 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/integrations/PayshopApgSms.php'; 92 96 93 require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessWebhook.php'; 97 94 require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessFailedRedirect.php'; 98 95 require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessWalletPayment.php'; 99 require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopApplepayMerchantValidation.php';100 96 101 97 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/emails/PayshopReferencesEmail.php'; … … 112 108 new PayshopProcessFailedRedirect(); 113 109 new PayshopProcessWalletPayment(); 114 new PayshopApplepayMerchantValidation();115 110 } 116 111 … … 126 121 new PayshopPaymentBlocks(); 127 122 new PayshopAddHeaders(); 123 new PayshopApgSms(); 128 124 129 125 (new PayshopReferencesDialog())->execute(); 130 126 (new PayshopGooglePayDialog())->execute(); 131 (new PayshopApplePayDialog())->execute();132 127 133 128 new PayshopReferencesEmail(); 134 new PayshopCancelOrderSchedule();135 129 } 136 130 } -
payshop-online-payments/tags/2.3.3/includes/helpers/PayshopCommons.php
r3392166 r3605861 81 81 $order->save(); 82 82 } 83 84 /** 85 * Get refused order status from settings 86 * 87 * @return string 88 */ 89 public static function getRefusedOrderStatus() 90 { 91 $status = get_option('payshop_refused_payment_status', 'failed'); 92 return str_replace('wc-', '', $status); 93 } 83 94 } -
payshop-online-payments/tags/2.3.3/includes/module/actions/PayshopCreatePaymentOrder.php
r3392166 r3605861 174 174 { 175 175 if ($order->get_payment_method() === 'payshop_card') { 176 return[176 $options = [ 177 177 'secure' => true, 178 178 'save_card' => false, 179 179 ]; 180 181 if (get_option('payshop_apple_pay_enabled') === 'yes' && !empty(get_option('payshop_checkout_id')) && get_option('payshop_environment') == 'production') { 182 $options['extra_data'] = [ 183 "checkout" => [ 184 "uuid" => get_option('payshop_checkout_id'), 185 "customization" => null, 186 "payment_methods" => ["APPLEPAY", "PAYMENT_CARD"] 187 ] 188 ]; 189 } 190 191 return $options; 180 192 } 181 193 … … 202 214 } 203 215 204 $phone = sanitize_text_field(wp_unslash($_POST['phone'])); 216 // Keep only digits: the phone field is masked for display with spaces, 217 // but the gateway requires the raw number. 218 $phone = preg_replace('/\D/', '', sanitize_text_field(wp_unslash($_POST['phone']))); 205 219 $prefix = sanitize_text_field(wp_unslash($_POST['prefix'])); 206 220 … … 222 236 } 223 237 238 if ($order->get_payment_method() === 'payshop_multibanco' || $order->get_payment_method() === 'payshop_reference') { 239 $days_to_expire = (int) get_option('payshop_reference_expiration', 3); 240 $deadline_date = date('Y-m-d', strtotime("+$days_to_expire days")); 241 242 $options['extra_data'] = [ 243 "payment" => [ 244 "deadline" => $deadline_date, 245 ] 246 ]; 247 } 248 224 249 return $options; 225 250 } -
payshop-online-payments/tags/2.3.3/includes/module/alerts/PayshopCredentialsAlert.php
r3392166 r3605861 10 10 public function execute() 11 11 { 12 $this->checkProdutionCredencials(); 12 if ($this->isPayshopSettingsPage()) { 13 return; 14 } 13 15 14 $this->checkSandboxCredencials(); 16 if (get_option('payshop_environment') === false) { 17 $this->checkCredentials(); 18 return; 19 } 20 21 if (get_option('payshop_environment') == 'production') { 22 $this->checkProdutionCredencials(); 23 return; 24 } 25 26 if (get_option('payshop_environment') == 'sandbox') { 27 $this->checkSandboxCredencials(); 28 } 29 } 30 31 /** 32 * Check if the current page is the Payshop settings page 33 * 34 * @return bool 35 */ 36 protected function isPayshopSettingsPage() 37 { 38 return isset($_GET['page']) && $_GET['page'] === 'wc-settings' && isset($_GET['tab']) && $_GET['tab'] === 'payshop'; 39 } 40 41 /** 42 * Check if it has any credentials 43 * @return void 44 */ 45 private function checkCredentials() 46 { 47 $type = 'error'; 48 $message = esc_html__('Payshop Error: Check credentials on payshop settings.', 'payshop-online-payments'); 49 50 $this->show($type, $message); 15 51 } 16 52 … … 22 58 private function checkProdutionCredencials() 23 59 { 24 if (get_option('payshop_environment') == 'sandbox') {25 return;26 }27 28 60 if (!get_option('payshop_api_key') || !get_option('payshop_signature') || !get_option('payshop_client_uuid')) { 29 61 $type = 'error'; … … 41 73 private function checkSandboxCredencials() 42 74 { 43 if (get_option('payshop_environment') == 'production') {44 return;45 }46 47 75 if (!get_option('payshop_sandbox_api_key') || !get_option('payshop_sandbox_signature') || !get_option('payshop_sandbox_client_uuid')) { 48 76 $type = 'error'; -
payshop-online-payments/tags/2.3.3/includes/module/dialogs/PayshopReferencesDialog.php
r3392166 r3605861 4 4 { 5 5 /** 6 * Class constructor6 * @var bool 7 7 */ 8 public function __construct() 9 { 10 add_action('woocommerce_after_register_post_type', [$this, 'execute']); 11 } 8 private static $rendered = false; 12 9 13 10 /** 14 * Show references iframe 11 * Show references iframe or direct content 15 12 * 16 13 * @return void … … 18 15 public function execute() 19 16 { 20 add_action('wp_enqueue_scripts', [$this, 'showDialog']); 17 add_action('wp_enqueue_scripts', [$this, 'popupIframe']); 18 add_action('woocommerce_thankyou', [$this, 'renderDirectly'], 5); 19 add_action('woocommerce_order_details_before_order_table', [$this, 'renderDirectly'], 5); 21 20 } 22 21 23 22 /** 24 * Show the References dialog25 * 23 * Enqueue scripts and styles 24 * 26 25 * @return void 27 26 */ 28 public function showDialog()27 public function popupIframe() 29 28 { 30 if (!is_order_received_page()) { 31 return; 32 } 33 34 global $wp; 35 $orderId = $wp->query_vars['order-received']; 36 $order = wc_get_order($orderId); 37 38 if (!$order) { 39 return; 40 } 41 42 if ( 43 $order->get_payment_method() !== 'payshop_multibanco' && 44 $order->get_payment_method() !== 'payshop_reference' 45 ) { 46 return; 47 } 48 49 $iframeContent = wc()->session->get('order_iframe_content'); 50 51 if (empty($iframeContent)) { 29 if (!is_wc_endpoint_url('order-received')) { 52 30 return; 53 31 } … … 57 35 PAYSHOP_PLUGIN_URL . 'templates/css/references-dialog.css' 58 36 ); 37 38 $showDirectly = get_option('payshop_show_references_directly') === 'yes'; 39 if ($showDirectly) { 40 return; 41 } 42 43 global $wp; 44 $orderId = $wp->query_vars['order-received']; 45 $order = wc_get_order($orderId); 46 $method = $order->get_payment_method(); 47 if ($method !== 'payshop_multibanco' && $method !== 'payshop_reference') { 48 return; 49 } 50 51 $iframeContent = wc()->session->get('order_iframe_content'); 52 if (empty($iframeContent)) { 53 return; 54 } 59 55 60 56 wp_enqueue_script( … … 75 71 76 72 add_action('wp_footer', function () { 77 require_once PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-dialog.php';73 include PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-dialog.php'; 78 74 }); 75 76 } 77 78 /** 79 * Render references directly in the Thank You page 80 * 81 * @param int|WC_Order $order_id 82 * @return void 83 */ 84 public function renderDirectly($order_id) 85 { 86 if (self::$rendered) { 87 return; 88 } 89 90 $showDirectly = get_option('payshop_show_references_directly') === 'yes'; 91 if (!$showDirectly) { 92 return; 93 } 94 95 if (is_numeric($order_id)) { 96 $order = wc_get_order($order_id); 97 } elseif ($order_id instanceof WC_Order) { 98 $order = $order_id; 99 } else { 100 return; 101 } 102 103 if (!$order) { 104 return; 105 } 106 107 $method = $order->get_payment_method(); 108 if ($method !== 'payshop_multibanco' && $method !== 'payshop_reference') { 109 return; 110 } 111 112 $entity = $order->get_meta('_payshop_entity'); 113 $reference = $order->get_meta('_payshop_reference'); 114 $deadline = $order->get_meta('_payshop_deadline'); 115 116 if (!$reference) { 117 return; 118 } 119 120 self::$rendered = true; 121 include PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-direct.php'; 79 122 } 80 123 } -
payshop-online-payments/tags/2.3.3/includes/module/events/PayshopPaymentRefused.php
r3392166 r3605861 31 31 $this->payshopUpdateOrder->execute( 32 32 $order->get_id(), 33 'failed',33 PayshopCommons::getRefusedOrderStatus(), 34 34 $order->get_meta('_payshop_payment_order_uuid'), 35 35 ); -
payshop-online-payments/tags/2.3.3/includes/module/events/PayshopProcessEvent.php
r3392166 r3605861 3 3 if ( ! defined( 'ABSPATH' ) ) exit; 4 4 5 require_once 'PayshopPaymentReferenceExpired.php'; 6 require_once 'PayshopPaymentRefunded.php'; 5 7 require_once 'PayshopPaymentRefused.php'; 6 8 require_once 'PayshopPaymentSuccess.php'; … … 24 26 25 27 /** 28 * @var PayshopPaymentReferenceExpired 29 */ 30 private $payshopPaymentReferenceExpired; 31 32 /** 33 * @var PayshopPaymentRefunded 34 */ 35 private $payshopPaymentRefunded; 36 37 /** 26 38 * Class constructor 27 39 */ … … 31 43 $this->payshopPaymentSuccess = new PayshopPaymentSuccess(); 32 44 $this->payshopPaymentRefused = new PayshopPaymentRefused(); 45 $this->payshopPaymentReferenceExpired = new PayshopPaymentReferenceExpired(); 46 $this->payshopPaymentRefunded = new PayshopPaymentRefunded(); 33 47 } 34 48 … … 42 56 { 43 57 $order = $this->getOrderByPaymentOrderUUID($paymentOrder['uuid']); 58 44 59 $this->addMetadataAppName($paymentOrder); 60 61 if ($this->payshopPaymentRefunded->check($paymentOrder)) { 62 return $this->payshopPaymentRefunded->process($order, $paymentOrder); 63 } 45 64 46 65 $isPaymentInTwoStep = $order->get_meta('_payshop_payment_in_two_steps') == 'yes'; … … 57 76 } 58 77 78 if ($paymentOrder['status'] == 'REFUSED' && $this->isReferenceExpired($paymentOrder)) { 79 return $this->payshopPaymentReferenceExpired->process($order); 80 } 81 59 82 return $this->payshopPaymentRefused->process($order); 83 } 84 85 /** 86 * Check if the payment was refused due to an expired reference (error E0621) 87 * 88 * @param array $paymentOrder 89 * @return bool 90 */ 91 private function isReferenceExpired(array $paymentOrder): bool 92 { 93 $transactions = $paymentOrder['transactions'] ?? []; 94 95 if (!$transactions) { 96 return false; 97 } 98 99 $lastTransaction = $transactions[count($transactions) - 1]; 100 101 return ($lastTransaction['status'] ?? null) === 'REFUSED' 102 && ($lastTransaction['error_details']['error_code'] ?? null) === 'E0621'; 60 103 } 61 104 -
payshop-online-payments/tags/2.3.3/includes/module/payments/PayshopCard.php
r3534778 r3605861 33 33 $this->description = $this->get_option('payshop_card_description'); 34 34 $this->enabled = $this->get_option('payshop_card_enabled'); 35 36 if (get_option('payshop_apple_pay_enabled') === 'yes') { 37 $this->method_title = esc_html__('Payshop Card and Apple Pay', 'payshop-online-payments'); 38 $this->method_description = esc_html__('Debit, credit card and Apple Pay on Payshop Online Payments', 'payshop-online-payments'); 39 $this->title = esc_html__('Credit or debit card / Apple Pay', 'payshop-online-payments'); 40 $this->description = esc_html__('Pay with your card or Apple Pay via Payshop Online Payments.', 'payshop-online-payments'); 41 } 35 42 36 43 add_action('woocommerce_update_options_payment_gateways_' . $this->id, [$this, 'process_admin_options']); … … 118 125 $paymentOrder['uuid'] 119 126 ); 120 127 121 128 return [ 122 129 'result' => 'success', -
payshop-online-payments/tags/2.3.3/includes/module/payments/PayshopMultibanco.php
r3400393 r3605861 12 12 */ 13 13 private $payshopUpdateOrder; 14 15 /**16 * @var PayshopCancelOrderSchedule17 */18 private $payshopCancelOrderSchedule;19 14 20 15 /** … … 43 38 $this->payshopCreatePaymentOrder = new PayshopCreatePaymentOrder(); 44 39 $this->payshopUpdateOrder = new PayshopUpdateOrder(); 45 $this->payshopCancelOrderSchedule = new PayshopCancelOrderSchedule();46 40 } 47 41 … … 115 109 $paymentOrder = $paymentOrder['response']['order']; 116 110 PayshopCommons::saveOrderReference($order, $paymentOrder['transactions'][0]['payment_data']); 117 118 $this->payshopCancelOrderSchedule->schedule_cancellation(119 $paymentOrder['transactions'][0]['payment_data']['deadline'],120 $orderId121 );122 111 123 112 $this->payshopUpdateOrder->execute( -
payshop-online-payments/tags/2.3.3/includes/module/payments/PayshopPaymentMethods.php
r3392166 r3605861 18 18 public function addPaymentMethods($gateways) 19 19 { 20 $gateways = [];21 22 20 $paymentServices = [ 23 21 'payshop_card' => 'PayshopCard', … … 27 25 'payshop_paypal' => 'PayshopPaypal', 28 26 'payshop_clicktopay' => 'PayshopClickToPay', 29 'payshop_googlepay' => 'PayshopGooglePay', 30 'payshop_applepay' => 'PayshopApplePay' 27 'payshop_googlepay' => 'PayshopGooglePay' 31 28 ]; 32 29 -
payshop-online-payments/tags/2.3.3/includes/module/payments/PayshopReference.php
r3400393 r3605861 12 12 */ 13 13 private $payshopUpdateOrder; 14 15 /**16 * @var PayshopCancelOrderSchedule17 */18 private $payshopCancelOrderSchedule;19 14 20 15 /** … … 43 38 $this->payshopCreatePaymentOrder = new PayshopCreatePaymentOrder(); 44 39 $this->payshopUpdateOrder = new PayshopUpdateOrder(); 45 $this->payshopCancelOrderSchedule = new PayshopCancelOrderSchedule();46 40 } 47 41 … … 116 110 PayshopCommons::saveOrderReference($order, $paymentOrder['transactions'][0]['payment_data']); 117 111 118 $this->payshopCancelOrderSchedule->schedule_cancellation(119 $paymentOrder['transactions'][0]['payment_data']['deadline'],120 $orderId121 );122 112 123 113 $this->payshopUpdateOrder->execute( -
payshop-online-payments/tags/2.3.3/includes/module/payments/blocks/PayshopMBWayBlock.php
r3400393 r3605861 50 50 'wp-i18n', 51 51 ], 52 null,52 filemtime(PAYSHOP_PLUGIN_DIR . 'templates/blocks/build/mbway.js'), 53 53 true 54 54 ); -
payshop-online-payments/tags/2.3.3/includes/module/payments/blocks/PayshopPaymentBlocks.php
r3392166 r3605861 23 23 { 24 24 if (class_exists(FeaturesUtil::class)) { 25 $pluginFile = PAYSHOP_PLUGIN_DIR . ' /payshop.php';25 $pluginFile = PAYSHOP_PLUGIN_DIR . 'payshop-online-payments.php'; 26 26 FeaturesUtil::declare_compatibility('cart_checkout_blocks', $pluginFile, true); 27 27 } … … 43 43 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopMBWayBlock.php'; 44 44 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopGooglePayBlock.php'; 45 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopApplePayBlock.php';46 45 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopPaypalBlock.php'; 47 46 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopClickToPayBlock.php'; … … 55 54 $payment_method_registry->register(new PayshopMultibancoBlock); 56 55 $payment_method_registry->register(new PayshopGooglePayBlock); 57 $payment_method_registry->register(new PayshopApplePayBlock);58 56 $payment_method_registry->register(new PayshopPaypalBlock); 59 57 $payment_method_registry->register(new PayshopClickToPayBlock); -
payshop-online-payments/tags/2.3.3/includes/module/settings/PayshopCredentialsSettings.php
r3392166 r3605861 9 9 10 10 /** 11 * Define payshop credentials settings 11 * Constructor 12 */ 13 public function __construct() 14 { 15 $this->PayshopPaymentServiceUUID = new PayshopPaymentServiceUUID(); 16 } 17 18 /** 19 * Save credentials specific data 12 20 * 13 21 * @return void 14 22 */ 15 public function execute() 16 { 17 $this->PayshopPaymentServiceUUID = new PayshopPaymentServiceUUID(); 18 add_filter('woocommerce_settings_tabs_array', [$this, 'addSettingsTab'], 50); 19 add_action('woocommerce_settings_tabs_payshop', [$this, 'settingsTab']); 20 add_action('woocommerce_update_options_payshop', [$this, 'updateSettings']); 21 } 22 23 /** 24 * Add payshop settings tab 25 * 26 * @param array $settingsTabs 27 * @return array 28 */ 29 public function addSettingsTab($settingsTabs) 30 { 31 $settingsTabs['payshop'] = esc_html__('Payshop', 'payshop-online-payments'); 32 33 return $settingsTabs; 34 } 35 36 /** 37 * Define fields in Settings tab 38 * 39 * @return void 40 */ 41 public function settingsTab() 42 { 43 woocommerce_admin_fields($this->getSettings()); 44 } 45 46 /** 47 * Save settings fields 48 * 49 * @return array 50 */ 51 public function updateSettings() 23 public function update() 52 24 { 53 25 update_option('payshop_card_service_uuid', NULL); … … 55 27 update_option('payshop_multibanco_service_uuid', NULL); 56 28 update_option('payshop_reference_service_uuid', NULL); 57 58 woocommerce_update_options($this->getSettings());29 update_option('payshop_googlepay_service_uuid', NULL); 30 // update_option('payshop_applepay_service_uuid', NULL); 59 31 60 32 try { … … 70 42 * @return array 71 43 */ 72 p rivatefunction getSettings()44 public function getSettings() 73 45 { 74 46 return $this->generalSettings() + -
payshop-online-payments/tags/2.3.3/includes/module/settings/PayshopPaymentServiceUUID.php
r3392166 r3605861 14 14 15 15 /** 16 * Class constructor17 */18 public function __construct()19 {20 $this->payshopSDK = PayshopClientFactory::getInstance();21 }22 23 /**24 16 * Add links to plugin list 25 17 * … … 28 20 public function execute() 29 21 { 22 $this->payshopSDK = PayshopClientFactory::getInstance(true); 23 30 24 $this->availableServices = $this->getGatewayServices(); 31 25 -
payshop-online-payments/tags/2.3.3/includes/sdk/PayshopClientFactory.php
r3392166 r3605861 18 18 * @return PayshopClient 19 19 */ 20 public static function getInstance( )20 public static function getInstance($force = false) 21 21 { 22 if (null === self::$payshopClient ) {22 if (null === self::$payshopClient || $force) { 23 23 try { 24 24 self::$payshopClient = new PayshopClient( -
payshop-online-payments/tags/2.3.3/payshop-online-payments.php
r3604199 r3605861 7 7 * Plugin URI: https://payshop.pt 8 8 * Description: Customize the payment experience of your customers in your online store. 9 * Version: 2. 2.149 * Version: 2.3.3 10 10 * Requires at least: 5.8 11 11 * Tested up to: 7.0 … … 19 19 20 20 // the version needs to be changed in the file readme.txt too 21 define('PAYSHOP_PLUGIN_VERSION', '2. 2.14');21 define('PAYSHOP_PLUGIN_VERSION', '2.3.3'); 22 22 define('PAYSHOP_PLUGIN_DIR', plugin_dir_path( __FILE__ )); 23 23 define('PAYSHOP_PLUGIN_URL', plugin_dir_url( __FILE__ )); -
payshop-online-payments/tags/2.3.3/readme.txt
r3604199 r3605861 5 5 Tested up to: 7.0 6 6 Requires PHP: 7.4 7 Stable tag: 2. 2.177 Stable tag: 2.3.3 8 8 License: GPLv3 9 9 License URI: https://www.gnu.org/licenses/gpl-3.0.html … … 22 22 * Credit and Debit Cards (Visa, Mastercard) 23 23 * Google Pay 24 * Apple Pay - New! 24 25 * Foreign Cards with 3D Secure support 25 * Manual payments via link (sent by email, SMS, or social media)26 * Coming soon: Apple Pay27 26 28 27 == Features == … … 32 31 * Access to the POP Backoffice to easily manage your payments 33 32 * Instant refunds using the original payment method 34 * Send payment links via email, SMS, WhatsApp, or social media33 * Two Step Payment using credit card 35 34 * Funds transferred on the next business day, hassle-free 36 35 * Automatic synchronisation of order numbering between Woocommerce and POP BackOffice, through integration with the Sequential Order Numbers for Woocommerce plugin … … 85 84 == Changelog == 86 85 86 = 2.3.3 = 87 * Expired reference orders are now always marked as cancelled instead of using the configured failed order status 88 * Fix log warning error 89 90 = 2.3.2 = 91 * Call Apple Pay checkout only on the production environment 92 * Remove custom font-family from the reference section on the Thank You page 93 * Fix log warning error 94 95 = 2.3.1 = 96 * Add APG SMS Notifications integration 97 * Add MB WAY input mask on checkout 98 99 = 2.3.0 = 100 * Bump plugin version 101 102 = 2.2.13 = 103 * Remove first party Apple Pay and handle it together with credit card on the external redirect checkout 104 * Implement refund flow via webhook 105 * Expire Payshop and Multibanco references 106 * Add Checkout ID setting to support Apple Pay integration in the external checkout 107 * Add a new field to define the reference expiration date and send it to the gateway 108 * Remove the scheduled cancellation of expired references, now handled when receiving the callback 109 * Add direct display of payment references on the Thank You page 110 * Enhance responsive design and layout for payment references display 111 * Refactor payment refusal handling to use a configurable order status and update translations 112 * Avoid showing the references popup iframe when the payment method is not a reference 113 * Refactor settings to define settings in the correct files and add "Other Settings" 114 * Fix bug that was forcing the user to click save twice to save credentials and get service UUIDs 115 * Refactor to avoid showing a message on the Payshop credentials page and improve the error message when the environment option is not set 116 117 = 2.2.12 = 118 * Update the plugin version for the WordPress repository release 119 120 = 2.2.11 = 121 * Adjust Google Pay brand 122 123 = 2.2.10 = 124 * Add Google Pay paid message display and update translations 125 126 = 2.2.9 = 127 * Remove the alert before the Google Pay 3DS redirect 128 129 = 2.2.8 = 130 * Improve translations 131 132 = 2.2.6 = 133 * Update the readme file 134 135 = 2.2.5 = 136 * Change custom action prefixes 137 * Define the correct name for the Sequential Order Numbers for WooCommerce plugin 138 139 = 2.2.4 = 140 * Automatic cancellation of Multibanco and Payshop orders after the payment deadline 141 * Fix the Payshop reference service type name after a PNP change 142 * Send the sequential order number to the gateway 143 87 144 = 2.2.2 = 88 145 * Initial public release of the POP plugin for WooCommerce -
payshop-online-payments/tags/2.3.3/templates/blocks/build/mbway.asset.php
r3392166 r3605861 1 <?php return array('dependencies' => array('react', 'wp-element'), 'version' => ' a4f4f3072fceb509c008');1 <?php return array('dependencies' => array('react', 'wp-element'), 'version' => 'c3abf80fad94761db627'); -
payshop-online-payments/tags/2.3.3/templates/blocks/build/mbway.js
r3392166 r3605861 654 654 } 655 655 function phoneChange(e) { 656 phoneRef.current = e.target.value; 657 setPhone(e.target.value); 656 const value = e.target.value.replace(/\D/g, '').slice(0, 9); 657 phoneRef.current = value; 658 setPhone(value); 658 659 } 659 660 (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => { … … 703 704 onChange: prefixChange 704 705 }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", { 705 value: phone ,706 value: phone.replace(/(\d{3})(?=\d)/g, '$1 '), 706 707 onChange: phoneChange, 707 708 id: "id-phone-number", 708 709 placeholder: "N\xFAmero Telem\xF3vel", 709 710 className: "input-text wc-credit-card-form-card-number", 710 inputmode: " text",711 inputmode: "numeric", 711 712 autocorrect: "no", 712 713 autocapitalize: "no", … … 715 716 "data-checkout": "wbwayNumber", 716 717 name: "phone", 717 maxlength: "1 9",718 maxlength: "11", 718 719 required: true, 719 720 style: { -
payshop-online-payments/tags/2.3.3/templates/blocks/build/mbway.js.map
r3392166 r3605861 1 {"version":3,"file":"mbway.js","mappings":";;;;;;;;;;;;;;;;;AAAe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACvC,OACIC,oDAAA;IAAQC,KAAK,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAAA,GAAKH,KAAK;IAAEI,SAAS,EAAC,4CAA4C;IAACC,QAAQ;IAACC,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAK;EAAE,GACvJP,oDAAA;IAAQQ,KAAK,EAAC;EAAG,GAAC,IAAU,CAAC,EAC7BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC,KAAK;IAACC,QAAQ;EAAA,GAAC,MAAY,CAAC,EAC1CT,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EA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","sources":["webpack://payshop-blocks/./src/components/phone-prefix.js","webpack://payshop-blocks/./src/utils/ErrorHandler.js","webpack://payshop-blocks/external window \"React\"","webpack://payshop-blocks/external window [\"wp\",\"element\"]","webpack://payshop-blocks/webpack/bootstrap","webpack://payshop-blocks/webpack/runtime/compat get default export","webpack://payshop-blocks/webpack/runtime/define property getters","webpack://payshop-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://payshop-blocks/webpack/runtime/make namespace object","webpack://payshop-blocks/./src/mbway.js"],"sourcesContent":["export default function PhonePrefix(props) {\n return (\n <select class=\"prefix\" name=\"prefix\" {...props} className=\"input-text wc-credit-card-form-card-number\" required style={{width: \"80px\", paddingLeft: \"3px\"}}>\n <option value=\"1\">+1</option>\n <option value=\"20\">+20</option>\n <option value=\"30\">+30</option>\n <option value=\"31\">+31</option>\n <option value=\"32\">+32</option>\n <option value=\"33\">+33</option>\n <option value=\"34\">+34</option>\n <option value=\"36\">+36</option>\n <option value=\"39\">+39</option>\n <option value=\"40\">+40</option>\n <option value=\"41\">+41</option>\n <option value=\"43\">+43</option>\n <option value=\"44\">+44</option>\n <option value=\"45\">+45</option>\n <option value=\"46\">+46</option>\n <option value=\"47\">+47</option>\n <option value=\"48\">+48</option>\n <option value=\"49\">+49</option>\n <option value=\"51\">+51</option>\n <option value=\"52\">+52</option>\n <option value=\"53\">+53</option>\n <option value=\"54\">+54</option>\n <option value=\"55\">+55</option>\n <option value=\"56\">+56</option>\n <option value=\"57\">+57</option>\n <option value=\"58\">+58</option>\n <option value=\"60\">+60</option>\n <option value=\"61\">+61</option>\n <option value=\"62\">+62</option>\n <option value=\"63\">+63</option>\n <option value=\"64\">+64</option>\n <option value=\"65\">+65</option>\n <option value=\"66\">+66</option>\n <option value=\"81\">+81</option>\n <option value=\"82\">+82</option>\n <option value=\"84\">+84</option>\n <option value=\"86\">+86</option>\n <option value=\"90\">+90</option>\n <option value=\"91\">+91</option>\n <option value=\"92\">+92</option>\n <option value=\"93\">+93</option>\n <option value=\"94\">+94</option>\n <option value=\"95\">+95</option>\n <option value=\"98\">+98</option>\n <option value=\"211\">+211</option>\n <option value=\"212\">+212</option>\n <option value=\"213\">+213</option>\n <option value=\"216\">+216</option>\n <option value=\"218\">+218</option>\n <option value=\"220\">+220</option>\n <option value=\"221\">+221</option>\n <option value=\"222\">+222</option>\n <option value=\"223\">+223</option>\n <option value=\"224\">+224</option>\n <option value=\"225\">+225</option>\n <option value=\"226\">+226</option>\n <option value=\"227\">+227</option>\n <option value=\"228\">+228</option>\n <option value=\"229\">+229</option>\n <option value=\"230\">+230</option>\n <option value=\"231\">+231</option>\n <option value=\"232\">+232</option>\n <option value=\"233\">+233</option>\n <option value=\"234\">+234</option>\n <option value=\"235\">+235</option>\n <option value=\"236\">+236</option>\n <option value=\"237\">+237</option>\n <option value=\"238\">+238</option>\n <option value=\"239\">+239</option>\n <option value=\"240\">+240</option>\n <option value=\"241\">+241</option>\n <option value=\"242\">+242</option>\n <option value=\"243\">+243</option>\n <option value=\"244\">+244</option>\n <option value=\"245\">+245</option>\n <option value=\"246\">+246</option>\n <option value=\"248\">+248</option>\n <option value=\"249\">+249</option>\n <option value=\"250\">+250</option>\n <option value=\"251\">+251</option>\n <option value=\"252\">+252</option>\n <option value=\"253\">+253</option>\n <option value=\"254\">+254</option>\n <option value=\"255\">+255</option>\n <option value=\"256\">+256</option>\n <option value=\"257\">+257</option>\n <option value=\"258\">+258</option>\n <option value=\"260\">+260</option>\n <option value=\"261\">+261</option>\n <option value=\"262\">+262</option>\n <option value=\"263\">+263</option>\n <option value=\"264\">+264</option>\n <option value=\"265\">+265</option>\n <option value=\"266\">+266</option>\n <option value=\"267\">+267</option>\n <option value=\"268\">+268</option>\n <option value=\"269\">+269</option>\n <option value=\"290\">+290</option>\n <option value=\"291\">+291</option>\n <option value=\"297\">+297</option>\n <option value=\"298\">+298</option>\n <option value=\"299\">+299</option>\n <option value=\"350\">+350</option>\n <option value=\"351\" selected>+351</option>\n <option value=\"352\">+352</option>\n <option value=\"353\">+353</option>\n <option value=\"354\">+354</option>\n <option value=\"355\">+355</option>\n <option value=\"356\">+356</option>\n <option value=\"357\">+357</option>\n <option value=\"358\">+358</option>\n <option value=\"359\">+359</option>\n <option value=\"370\">+370</option>\n <option value=\"371\">+371</option>\n <option value=\"372\">+372</option>\n <option value=\"373\">+373</option>\n <option value=\"374\">+374</option>\n <option value=\"375\">+375</option>\n <option value=\"376\">+376</option>\n <option value=\"377\">+377</option>\n <option value=\"378\">+378</option>\n <option value=\"379\">+379</option>\n <option value=\"380\">+380</option>\n <option value=\"381\">+381</option>\n <option value=\"382\">+382</option>\n <option value=\"383\">+383</option>\n <option value=\"385\">+385</option>\n <option value=\"386\">+386</option>\n <option value=\"387\">+387</option>\n <option value=\"389\">+389</option>\n <option value=\"420\">+420</option>\n <option value=\"421\">+421</option>\n <option value=\"423\">+423</option>\n <option value=\"500\">+500</option>\n <option value=\"501\">+501</option>\n <option value=\"502\">+502</option>\n <option value=\"503\">+503</option>\n <option value=\"504\">+504</option>\n <option value=\"505\">+505</option>\n <option value=\"506\">+506</option>\n <option value=\"507\">+507</option>\n <option value=\"508\">+508</option>\n <option value=\"509\">+509</option>\n <option value=\"590\">+590</option>\n <option value=\"591\">+591</option>\n <option value=\"592\">+592</option>\n <option value=\"593\">+593</option>\n <option value=\"594\">+594</option>\n <option value=\"595\">+595</option>\n <option value=\"596\">+596</option>\n <option value=\"597\">+597</option>\n <option value=\"598\">+598</option>\n <option value=\"599\">+599</option>\n <option value=\"670\">+670</option>\n <option value=\"672\">+672</option>\n <option value=\"673\">+673</option>\n <option value=\"674\">+674</option>\n <option value=\"675\">+675</option>\n <option value=\"676\">+676</option>\n <option value=\"677\">+677</option>\n <option value=\"678\">+678</option>\n <option value=\"679\">+679</option>\n <option value=\"680\">+680</option>\n <option value=\"681\">+681</option>\n <option value=\"682\">+682</option>\n <option value=\"683\">+683</option>\n <option value=\"685\">+685</option>\n <option value=\"686\">+686</option>\n <option value=\"687\">+687</option>\n <option value=\"688\">+688</option>\n <option value=\"689\">+689</option>\n <option value=\"690\">+690</option>\n <option value=\"691\">+691</option>\n <option value=\"692\">+692</option>\n <option value=\"850\">+850</option>\n <option value=\"852\">+852</option>\n <option value=\"853\">+853</option>\n <option value=\"855\">+855</option>\n <option value=\"856\">+856</option>\n <option value=\"880\">+880</option>\n <option value=\"886\">+886</option>\n <option value=\"960\">+960</option>\n <option value=\"961\">+961</option>\n <option value=\"962\">+962</option>\n <option value=\"963\">+963</option>\n <option value=\"964\">+964</option>\n <option value=\"965\">+965</option>\n <option value=\"966\">+966</option>\n <option value=\"967\">+967</option>\n <option value=\"968\">+968</option>\n <option value=\"970\">+970</option>\n <option value=\"971\">+971</option>\n <option value=\"972\">+972</option>\n <option value=\"973\">+973</option>\n <option value=\"974\">+974</option>\n <option value=\"975\">+975</option>\n <option value=\"976\">+976</option>\n </select>\n );\n}","class ErrorHandler {\n\n /**\n * @param {String} genericErrorText\n * @param {Element} wrapper\n */\n constructor(genericErrorText, wrapper)\n {\n this.genericErrorText = genericErrorText;\n this.wrapper = wrapper;\n }\n\n genericError() {\n this.clear();\n this.message(this.genericErrorText)\n }\n\n appendPreparedErrorMessageElement(errorMessageElement)\n {\n this._getMessageContainer().replaceWith(errorMessageElement);\n }\n\n /**\n * @param {String} text\n */\n message(text)\n {\n this._addMessage(text);\n\n this._scrollToMessages();\n }\n\n /**\n * @param {Array} texts\n */\n messages(texts)\n {\n texts.forEach(t => this._addMessage(t));\n\n this._scrollToMessages();\n }\n\n /**\n * @returns {String}\n */\n currentHtml()\n {\n const messageContainer = this._getMessageContainer();\n return messageContainer.outerHTML;\n }\n\n /**\n * @private\n * @param {String} text\n */\n _addMessage(text)\n {\n if(! typeof String || text.length === 0) {\n throw new Error('A new message text must be a non-empty string.');\n }\n\n const messageContainer = this._getMessageContainer();\n\n let messageNode = this._prepareMessageElement(text);\n messageContainer.appendChild(messageNode);\n }\n\n /**\n * @private\n */\n _scrollToMessages()\n {\n jQuery.scroll_to_notices(jQuery('.woocommerce-error'));\n }\n\n /**\n * @private\n */\n _getMessageContainer()\n {\n let messageContainer = document.querySelector('ul.woocommerce-error');\n if (messageContainer === null) {\n messageContainer = document.createElement('ul');\n messageContainer.setAttribute('class', 'woocommerce-error');\n messageContainer.setAttribute('role', 'alert');\n jQuery(this.wrapper).prepend(messageContainer);\n }\n return messageContainer;\n }\n\n /**\n * @private\n */\n _prepareMessageElement(message)\n {\n const li = document.createElement('li');\n li.innerHTML = message;\n\n return li;\n }\n\n clear()\n {\n jQuery( '.woocommerce-error, .woocommerce-message' ).remove();\n }\n}\n\nexport default ErrorHandler;","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"element\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { useEffect, useState } from '@wordpress/element';\nimport ErrorHandler from './utils/ErrorHandler';\nimport PhonePrefix from \"./components/phone-prefix\";\n\n\nconst settings = window.wc.wcSettings.getSetting(\"payshop_mbway_data\", {});\nconst label = window.wp.htmlEntities.decodeEntities(settings.title);\nconst icon = settings.icon;\n\nconst Content = ( props ) => {\n\tconst { eventRegistration, emitResponse } = props;\n\tconst { onPaymentSetup, onCheckoutFail } = eventRegistration;\n\n const [prefix, setPrefix] = useState('+351');\n const [phone, setPhone] = useState('');\n const prefixRef = React.useRef(prefix);\n const phoneRef = React.useRef(phone);\n\n\tfunction prefixChange(e) {\n prefixRef.current = e.target.value;\n setPrefix(e.target.value);\n }\n\n function phoneChange(e) {\n phoneRef.current = e.target.value;\n setPhone(e.target.value);\n }\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = onPaymentSetup( async () => {\n\t\t\tconst phone = phoneRef.current;\n\t\t\tconst prefix = prefixRef.current;\n\n\t\t\tif ( phone !== '' && prefix !== '' ) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: emitResponse.responseTypes.SUCCESS,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tpaymentMethodData: {\n\t\t\t\t\t\t\tprefix,\n\t\t\t\t\t\t\tphone,\n\t\t\t\t\t\t\tpayshop_mbway_nonce: settings.nonce\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: emitResponse.responseTypes.ERROR,\n\t\t\t\tmessage: settings.error_message,\n\t\t\t};\n\t\t} );\n\n\t\tonCheckoutFail(async (paymentResponse) => {\n\t\t\t// Extract error message from paymentResponse object\n\t\t\tconst errorMessage = paymentResponse.processingResponse.paymentDetails.errorMessage ?? '';\n\t\t \n\t\t\tlet errorHandler = new ErrorHandler(\n 'Default message',\n document.querySelector('.woocommerce-notices-wrapper')\n );\n\n errorHandler.clear();\n errorHandler.message(errorMessage);\n });\n\n\t\t// Unsubscribes when this component is unmounted.\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, [\n\t\temitResponse.responseTypes.ERROR,\n\t\temitResponse.responseTypes.SUCCESS,\n\t\tonPaymentSetup,\n\t] );\n\n\treturn <fieldset id=\"wc-payshop_card-cc-form\" className=\"wc-credit-card-form wc-payment-form\">\n <p className=\"form-row form-row-wide woocommerce-validated\" style={{display: \"flex\"}}>\n\t\t\t\t\t<PhonePrefix onChange={prefixChange} />\n <input value={phone} onChange={phoneChange} id=\"id-phone-number\" placeholder=\"Número Telemóvel\" className=\"input-text wc-credit-card-form-card-number\" inputmode=\"text\" autocorrect=\"no\" autocapitalize=\"no\" spellcheck=\"no\" type=\"text\" data-checkout=\"wbwayNumber\" name=\"phone\" maxlength=\"19\" required style={{flexGrow: \"1\"}} />\n </p>\n </fieldset>;\n};\n\nconst Block_Gateway = {\n name: \"payshop_mbway\",\n label: <div style={{display: \"flex\", alignItems: \"center\"}}>\n <span>{label}</span>\n <img src={icon} style={{marginLeft: \"10px\"}} />\n </div>,\n content: <Content />,\n edit: <div>{label}</div>,\n canMakePayment: () => true,\n ariaLabel: label,\n supports: {\n features: settings.supports,\n },\n};\n\nwindow.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);"],"names":["PhonePrefix","props","createElement","class","name","className","required","style","width","paddingLeft","value","selected","ErrorHandler","constructor","genericErrorText","wrapper","genericError","clear","message","appendPreparedErrorMessageElement","errorMessageElement","_getMessageContainer","replaceWith","text","_addMessage","_scrollToMessages","messages","texts","forEach","t","currentHtml","messageContainer","outerHTML","String","length","Error","messageNode","_prepareMessageElement","appendChild","jQuery","scroll_to_notices","document","querySelector","setAttribute","prepend","li","innerHTML","remove","useEffect","useState","settings","window","wc","wcSettings","getSetting","label","wp","htmlEntities","decodeEntities","title","icon","Content","eventRegistration","emitResponse","onPaymentSetup","onCheckoutFail","prefix","setPrefix","phone","setPhone","prefixRef","React","useRef","phoneRef","prefixChange","e","current","target","phoneChange","unsubscribe","type","responseTypes","SUCCESS","meta","paymentMethodData","payshop_mbway_nonce","nonce","ERROR","error_message","paymentResponse","_paymentResponse$proc","errorMessage","processingResponse","paymentDetails","errorHandler","id","display","onChange","placeholder","inputmode","autocorrect","autocapitalize","spellcheck","maxlength","flexGrow","Block_Gateway","alignItems","src","marginLeft","content","edit","canMakePayment","ariaLabel","supports","features","wcBlocksRegistry","registerPaymentMethod"],"sourceRoot":""}1 {"version":3,"file":"mbway.js","mappings":";;;;;;;;;;;;;;;;;AAAe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACvC,OACIC,oDAAA;IAAQC,KAAK,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAAA,GAAKH,KAAK;IAAEI,SAAS,EAAC,4CAA4C;IAACC,QAAQ;IAACC,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAK;EAAE,GACvJP,oDAAA;IAAQQ,KAAK,EAAC;EAAG,GAAC,IAAU,CAAC,EAC7BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC,KAAK;IAACC,QAAQ;EAAA,GAAC,MAAY,CAAC,EAC1CT,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EA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","sources":["webpack://payshop-blocks/./src/components/phone-prefix.js","webpack://payshop-blocks/./src/utils/ErrorHandler.js","webpack://payshop-blocks/external window \"React\"","webpack://payshop-blocks/external window [\"wp\",\"element\"]","webpack://payshop-blocks/webpack/bootstrap","webpack://payshop-blocks/webpack/runtime/compat get default export","webpack://payshop-blocks/webpack/runtime/define property getters","webpack://payshop-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://payshop-blocks/webpack/runtime/make namespace object","webpack://payshop-blocks/./src/mbway.js"],"sourcesContent":["export default function PhonePrefix(props) {\n return (\n <select class=\"prefix\" name=\"prefix\" {...props} className=\"input-text wc-credit-card-form-card-number\" required style={{width: \"80px\", paddingLeft: \"3px\"}}>\n <option value=\"1\">+1</option>\n <option value=\"20\">+20</option>\n <option value=\"30\">+30</option>\n <option value=\"31\">+31</option>\n <option value=\"32\">+32</option>\n <option value=\"33\">+33</option>\n <option value=\"34\">+34</option>\n <option value=\"36\">+36</option>\n <option value=\"39\">+39</option>\n <option value=\"40\">+40</option>\n <option value=\"41\">+41</option>\n <option value=\"43\">+43</option>\n <option value=\"44\">+44</option>\n <option value=\"45\">+45</option>\n <option value=\"46\">+46</option>\n <option value=\"47\">+47</option>\n <option value=\"48\">+48</option>\n <option value=\"49\">+49</option>\n <option value=\"51\">+51</option>\n <option value=\"52\">+52</option>\n <option value=\"53\">+53</option>\n <option value=\"54\">+54</option>\n <option value=\"55\">+55</option>\n <option value=\"56\">+56</option>\n <option value=\"57\">+57</option>\n <option value=\"58\">+58</option>\n <option value=\"60\">+60</option>\n <option value=\"61\">+61</option>\n <option value=\"62\">+62</option>\n <option value=\"63\">+63</option>\n <option value=\"64\">+64</option>\n <option value=\"65\">+65</option>\n <option value=\"66\">+66</option>\n <option value=\"81\">+81</option>\n <option value=\"82\">+82</option>\n <option value=\"84\">+84</option>\n <option value=\"86\">+86</option>\n <option value=\"90\">+90</option>\n <option value=\"91\">+91</option>\n <option value=\"92\">+92</option>\n <option value=\"93\">+93</option>\n <option value=\"94\">+94</option>\n <option value=\"95\">+95</option>\n <option value=\"98\">+98</option>\n <option value=\"211\">+211</option>\n <option value=\"212\">+212</option>\n <option value=\"213\">+213</option>\n <option value=\"216\">+216</option>\n <option value=\"218\">+218</option>\n <option value=\"220\">+220</option>\n <option value=\"221\">+221</option>\n <option value=\"222\">+222</option>\n <option value=\"223\">+223</option>\n <option value=\"224\">+224</option>\n <option value=\"225\">+225</option>\n <option value=\"226\">+226</option>\n <option value=\"227\">+227</option>\n <option value=\"228\">+228</option>\n <option value=\"229\">+229</option>\n <option value=\"230\">+230</option>\n <option value=\"231\">+231</option>\n <option value=\"232\">+232</option>\n <option value=\"233\">+233</option>\n <option value=\"234\">+234</option>\n <option value=\"235\">+235</option>\n <option value=\"236\">+236</option>\n <option value=\"237\">+237</option>\n <option value=\"238\">+238</option>\n <option value=\"239\">+239</option>\n <option value=\"240\">+240</option>\n <option value=\"241\">+241</option>\n <option value=\"242\">+242</option>\n <option value=\"243\">+243</option>\n <option value=\"244\">+244</option>\n <option value=\"245\">+245</option>\n <option value=\"246\">+246</option>\n <option value=\"248\">+248</option>\n <option value=\"249\">+249</option>\n <option value=\"250\">+250</option>\n <option value=\"251\">+251</option>\n <option value=\"252\">+252</option>\n <option value=\"253\">+253</option>\n <option value=\"254\">+254</option>\n <option value=\"255\">+255</option>\n <option value=\"256\">+256</option>\n <option value=\"257\">+257</option>\n <option value=\"258\">+258</option>\n <option value=\"260\">+260</option>\n <option value=\"261\">+261</option>\n <option value=\"262\">+262</option>\n <option value=\"263\">+263</option>\n <option value=\"264\">+264</option>\n <option value=\"265\">+265</option>\n <option value=\"266\">+266</option>\n <option value=\"267\">+267</option>\n <option value=\"268\">+268</option>\n <option value=\"269\">+269</option>\n <option value=\"290\">+290</option>\n <option value=\"291\">+291</option>\n <option value=\"297\">+297</option>\n <option value=\"298\">+298</option>\n <option value=\"299\">+299</option>\n <option value=\"350\">+350</option>\n <option value=\"351\" selected>+351</option>\n <option value=\"352\">+352</option>\n <option value=\"353\">+353</option>\n <option value=\"354\">+354</option>\n <option value=\"355\">+355</option>\n <option value=\"356\">+356</option>\n <option value=\"357\">+357</option>\n <option value=\"358\">+358</option>\n <option value=\"359\">+359</option>\n <option value=\"370\">+370</option>\n <option value=\"371\">+371</option>\n <option value=\"372\">+372</option>\n <option value=\"373\">+373</option>\n <option value=\"374\">+374</option>\n <option value=\"375\">+375</option>\n <option value=\"376\">+376</option>\n <option value=\"377\">+377</option>\n <option value=\"378\">+378</option>\n <option value=\"379\">+379</option>\n <option value=\"380\">+380</option>\n <option value=\"381\">+381</option>\n <option value=\"382\">+382</option>\n <option value=\"383\">+383</option>\n <option value=\"385\">+385</option>\n <option value=\"386\">+386</option>\n <option value=\"387\">+387</option>\n <option value=\"389\">+389</option>\n <option value=\"420\">+420</option>\n <option value=\"421\">+421</option>\n <option value=\"423\">+423</option>\n <option value=\"500\">+500</option>\n <option value=\"501\">+501</option>\n <option value=\"502\">+502</option>\n <option value=\"503\">+503</option>\n <option value=\"504\">+504</option>\n <option value=\"505\">+505</option>\n <option value=\"506\">+506</option>\n <option value=\"507\">+507</option>\n <option value=\"508\">+508</option>\n <option value=\"509\">+509</option>\n <option value=\"590\">+590</option>\n <option value=\"591\">+591</option>\n <option value=\"592\">+592</option>\n <option value=\"593\">+593</option>\n <option value=\"594\">+594</option>\n <option value=\"595\">+595</option>\n <option value=\"596\">+596</option>\n <option value=\"597\">+597</option>\n <option value=\"598\">+598</option>\n <option value=\"599\">+599</option>\n <option value=\"670\">+670</option>\n <option value=\"672\">+672</option>\n <option value=\"673\">+673</option>\n <option value=\"674\">+674</option>\n <option value=\"675\">+675</option>\n <option value=\"676\">+676</option>\n <option value=\"677\">+677</option>\n <option value=\"678\">+678</option>\n <option value=\"679\">+679</option>\n <option value=\"680\">+680</option>\n <option value=\"681\">+681</option>\n <option value=\"682\">+682</option>\n <option value=\"683\">+683</option>\n <option value=\"685\">+685</option>\n <option value=\"686\">+686</option>\n <option value=\"687\">+687</option>\n <option value=\"688\">+688</option>\n <option value=\"689\">+689</option>\n <option value=\"690\">+690</option>\n <option value=\"691\">+691</option>\n <option value=\"692\">+692</option>\n <option value=\"850\">+850</option>\n <option value=\"852\">+852</option>\n <option value=\"853\">+853</option>\n <option value=\"855\">+855</option>\n <option value=\"856\">+856</option>\n <option value=\"880\">+880</option>\n <option value=\"886\">+886</option>\n <option value=\"960\">+960</option>\n <option value=\"961\">+961</option>\n <option value=\"962\">+962</option>\n <option value=\"963\">+963</option>\n <option value=\"964\">+964</option>\n <option value=\"965\">+965</option>\n <option value=\"966\">+966</option>\n <option value=\"967\">+967</option>\n <option value=\"968\">+968</option>\n <option value=\"970\">+970</option>\n <option value=\"971\">+971</option>\n <option value=\"972\">+972</option>\n <option value=\"973\">+973</option>\n <option value=\"974\">+974</option>\n <option value=\"975\">+975</option>\n <option value=\"976\">+976</option>\n </select>\n );\n}","class ErrorHandler {\n\n /**\n * @param {String} genericErrorText\n * @param {Element} wrapper\n */\n constructor(genericErrorText, wrapper)\n {\n this.genericErrorText = genericErrorText;\n this.wrapper = wrapper;\n }\n\n genericError() {\n this.clear();\n this.message(this.genericErrorText)\n }\n\n appendPreparedErrorMessageElement(errorMessageElement)\n {\n this._getMessageContainer().replaceWith(errorMessageElement);\n }\n\n /**\n * @param {String} text\n */\n message(text)\n {\n this._addMessage(text);\n\n this._scrollToMessages();\n }\n\n /**\n * @param {Array} texts\n */\n messages(texts)\n {\n texts.forEach(t => this._addMessage(t));\n\n this._scrollToMessages();\n }\n\n /**\n * @returns {String}\n */\n currentHtml()\n {\n const messageContainer = this._getMessageContainer();\n return messageContainer.outerHTML;\n }\n\n /**\n * @private\n * @param {String} text\n */\n _addMessage(text)\n {\n if(! typeof String || text.length === 0) {\n throw new Error('A new message text must be a non-empty string.');\n }\n\n const messageContainer = this._getMessageContainer();\n\n let messageNode = this._prepareMessageElement(text);\n messageContainer.appendChild(messageNode);\n }\n\n /**\n * @private\n */\n _scrollToMessages()\n {\n jQuery.scroll_to_notices(jQuery('.woocommerce-error'));\n }\n\n /**\n * @private\n */\n _getMessageContainer()\n {\n let messageContainer = document.querySelector('ul.woocommerce-error');\n if (messageContainer === null) {\n messageContainer = document.createElement('ul');\n messageContainer.setAttribute('class', 'woocommerce-error');\n messageContainer.setAttribute('role', 'alert');\n jQuery(this.wrapper).prepend(messageContainer);\n }\n return messageContainer;\n }\n\n /**\n * @private\n */\n _prepareMessageElement(message)\n {\n const li = document.createElement('li');\n li.innerHTML = message;\n\n return li;\n }\n\n clear()\n {\n jQuery( '.woocommerce-error, .woocommerce-message' ).remove();\n }\n}\n\nexport default ErrorHandler;","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"element\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { useEffect, useState } from '@wordpress/element';\nimport ErrorHandler from './utils/ErrorHandler';\nimport PhonePrefix from \"./components/phone-prefix\";\n\n\nconst settings = window.wc.wcSettings.getSetting(\"payshop_mbway_data\", {});\nconst label = window.wp.htmlEntities.decodeEntities(settings.title);\nconst icon = settings.icon;\n\nconst Content = ( props ) => {\n\tconst { eventRegistration, emitResponse } = props;\n\tconst { onPaymentSetup, onCheckoutFail } = eventRegistration;\n\n const [prefix, setPrefix] = useState('+351');\n const [phone, setPhone] = useState('');\n const prefixRef = React.useRef(prefix);\n const phoneRef = React.useRef(phone);\n\n\tfunction prefixChange(e) {\n prefixRef.current = e.target.value;\n setPrefix(e.target.value);\n }\n\n function phoneChange(e) {\n const value = e.target.value.replace(/\\D/g, '').slice(0, 9);\n phoneRef.current = value;\n setPhone(value);\n }\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = onPaymentSetup( async () => {\n\t\t\tconst phone = phoneRef.current;\n\t\t\tconst prefix = prefixRef.current;\n\n\t\t\tif ( phone !== '' && prefix !== '' ) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: emitResponse.responseTypes.SUCCESS,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tpaymentMethodData: {\n\t\t\t\t\t\t\tprefix,\n\t\t\t\t\t\t\tphone,\n\t\t\t\t\t\t\tpayshop_mbway_nonce: settings.nonce\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: emitResponse.responseTypes.ERROR,\n\t\t\t\tmessage: settings.error_message,\n\t\t\t};\n\t\t} );\n\n\t\tonCheckoutFail(async (paymentResponse) => {\n\t\t\t// Extract error message from paymentResponse object\n\t\t\tconst errorMessage = paymentResponse.processingResponse.paymentDetails.errorMessage ?? '';\n\t\t \n\t\t\tlet errorHandler = new ErrorHandler(\n 'Default message',\n document.querySelector('.woocommerce-notices-wrapper')\n );\n\n errorHandler.clear();\n errorHandler.message(errorMessage);\n });\n\n\t\t// Unsubscribes when this component is unmounted.\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, [\n\t\temitResponse.responseTypes.ERROR,\n\t\temitResponse.responseTypes.SUCCESS,\n\t\tonPaymentSetup,\n\t] );\n\n\treturn <fieldset id=\"wc-payshop_card-cc-form\" className=\"wc-credit-card-form wc-payment-form\">\n <p className=\"form-row form-row-wide woocommerce-validated\" style={{display: \"flex\"}}>\n\t\t\t\t\t<PhonePrefix onChange={prefixChange} />\n <input value={phone.replace(/(\\d{3})(?=\\d)/g, '$1 ')} onChange={phoneChange} id=\"id-phone-number\" placeholder=\"Número Telemóvel\" className=\"input-text wc-credit-card-form-card-number\" inputmode=\"numeric\" autocorrect=\"no\" autocapitalize=\"no\" spellcheck=\"no\" type=\"text\" data-checkout=\"wbwayNumber\" name=\"phone\" maxlength=\"11\" required style={{flexGrow: \"1\"}} />\n </p>\n </fieldset>;\n};\n\nconst Block_Gateway = {\n name: \"payshop_mbway\",\n label: <div style={{display: \"flex\", alignItems: \"center\"}}>\n <span>{label}</span>\n <img src={icon} style={{marginLeft: \"10px\"}} />\n </div>,\n content: <Content />,\n edit: <div>{label}</div>,\n canMakePayment: () => true,\n ariaLabel: label,\n supports: {\n features: settings.supports,\n },\n};\n\nwindow.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);"],"names":["PhonePrefix","props","createElement","class","name","className","required","style","width","paddingLeft","value","selected","ErrorHandler","constructor","genericErrorText","wrapper","genericError","clear","message","appendPreparedErrorMessageElement","errorMessageElement","_getMessageContainer","replaceWith","text","_addMessage","_scrollToMessages","messages","texts","forEach","t","currentHtml","messageContainer","outerHTML","String","length","Error","messageNode","_prepareMessageElement","appendChild","jQuery","scroll_to_notices","document","querySelector","setAttribute","prepend","li","innerHTML","remove","useEffect","useState","settings","window","wc","wcSettings","getSetting","label","wp","htmlEntities","decodeEntities","title","icon","Content","eventRegistration","emitResponse","onPaymentSetup","onCheckoutFail","prefix","setPrefix","phone","setPhone","prefixRef","React","useRef","phoneRef","prefixChange","e","current","target","phoneChange","replace","slice","unsubscribe","type","responseTypes","SUCCESS","meta","paymentMethodData","payshop_mbway_nonce","nonce","ERROR","error_message","paymentResponse","_paymentResponse$proc","errorMessage","processingResponse","paymentDetails","errorHandler","id","display","onChange","placeholder","inputmode","autocorrect","autocapitalize","spellcheck","maxlength","flexGrow","Block_Gateway","alignItems","src","marginLeft","content","edit","canMakePayment","ariaLabel","supports","features","wcBlocksRegistry","registerPaymentMethod"],"sourceRoot":""} -
payshop-online-payments/tags/2.3.3/templates/blocks/package.json
r3392166 r3605861 6 6 "scripts": { 7 7 "build": "wp-scripts build", 8 "start": "wp-scripts start ./src/card.js ./src/mbway.js ./src/payshop-reference.js ./src/multibanco-reference.js ./src/googlepay.js ./src/ applepay.js ./src/clicktopay.js ./src/paypal.js"8 "start": "wp-scripts start ./src/card.js ./src/mbway.js ./src/payshop-reference.js ./src/multibanco-reference.js ./src/googlepay.js ./src/clicktopay.js ./src/paypal.js" 9 9 }, 10 10 "author": "", -
payshop-online-payments/tags/2.3.3/templates/blocks/src/mbway.js
r3392166 r3605861 23 23 24 24 function phoneChange(e) { 25 phoneRef.current = e.target.value; 26 setPhone(e.target.value); 25 const value = e.target.value.replace(/\D/g, '').slice(0, 9); 26 phoneRef.current = value; 27 setPhone(value); 27 28 } 28 29 … … 77 78 <p className="form-row form-row-wide woocommerce-validated" style={{display: "flex"}}> 78 79 <PhonePrefix onChange={prefixChange} /> 79 <input value={phone } onChange={phoneChange} id="id-phone-number" placeholder="Número Telemóvel" className="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="19" required style={{flexGrow: "1"}} />80 <input value={phone.replace(/(\d{3})(?=\d)/g, '$1 ')} onChange={phoneChange} id="id-phone-number" placeholder="Número Telemóvel" className="input-text wc-credit-card-form-card-number" inputmode="numeric" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="11" required style={{flexGrow: "1"}} /> 80 81 </p> 81 82 </fieldset>; -
payshop-online-payments/tags/2.3.3/templates/css/references-dialog.css
r3392166 r3605861 15 15 left: 50%; 16 16 transform: translate(-50%, -50%); 17 width: 400px; 17 width: 90%; 18 max-width: 400px; 18 19 height: 90%; 19 20 background: #fff; … … 39 40 display: none; 40 41 } 42 43 /* Direct display styles */ 44 .payshop-references-container { 45 box-sizing: border-box; 46 border: 2px solid #0055b8; /* Multibanco blue as default */ 47 border-radius: 8px; 48 padding: 20px; 49 margin: 20px 0; 50 background-color: #f9f9f9; 51 max-width: 100%; 52 width: 100%; 53 } 54 55 .payshop-references-header { 56 display: flex; 57 align-items: center; 58 flex-wrap: wrap; 59 margin-bottom: 20px; 60 border-bottom: 1px solid #ddd; 61 padding-bottom: 10px; 62 } 63 64 .payshop-references-header img { 65 height: 40px; 66 margin-right: 15px; 67 flex-shrink: 0; 68 } 69 70 .payshop-references-header h3 { 71 margin: 0; 72 font-size: 1.25em; 73 color: #333; 74 word-break: break-word; 75 } 76 77 .payshop-reference-item { 78 display: flex; 79 justify-content: space-between; 80 padding: 10px 0; 81 border-bottom: 1px dashed #eee; 82 gap: 10px; 83 } 84 85 .payshop-reference-item:last-child { 86 border-bottom: none; 87 } 88 89 .payshop-reference-item .label { 90 font-weight: bold; 91 color: #666; 92 flex-shrink: 0; 93 } 94 95 .payshop-reference-item .value { 96 font-weight: 800; 97 font-size: 1.1em; 98 color: #000; 99 word-break: break-all; 100 text-align: right; 101 } 102 103 .payshop-references-footer { 104 margin-top: 15px; 105 font-size: 0.9em; 106 color: #777; 107 text-align: center; 108 } 109 110 @media (max-width: 480px) { 111 .payshop-reference-item { 112 flex-direction: column; 113 align-items: flex-start; 114 gap: 5px; 115 } 116 117 .payshop-reference-item .value { 118 margin-top: 0; 119 text-align: left; 120 } 121 } 122 "" -
payshop-online-payments/tags/2.3.3/templates/views/front/mbway.php
r3392166 r3605861 15 15 <div style="display: flex;"> 16 16 <?php include ('partials/phone-prefix.php')?> 17 <input id="id-phone-number" class="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength=" 19" required style="flex-grow: 1;">17 <input id="id-phone-number" class="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="9" required style="flex-grow: 1;"> 18 18 </div> 19 19 <small id="payshop-error-phone-number" class="payshop-erro-form" data-main="#id-phone-number" style="display: none; color: #e81814;"> -
payshop-online-payments/tags/2.3.3/translations/payshop-online-payments-pt_PT.po
r3471786 r3605861 5 5 "Project-Id-Version: Plugins - Payshop Online Payments - Stable (latest release)\n" 6 6 "POT-Creation-Date: \n" 7 "PO-Revision-Date: 2026-0 2-28 16:22-0300\n"7 "PO-Revision-Date: 2026-05-16 15:58-0300\n" 8 8 "Last-Translator: \n" 9 9 "Language-Team: \n" … … 536 536 msgstr "Erro Payshop: Verifique as credenciais de produção nas definições do Payshop." 537 537 538 #: includes/module/alerts/PayshopCredentialsAlert.php:30 539 msgid "Payshop Error: Check credentials on payshop settings." 540 msgstr "Erro Payshop: Verifique as credenciais nas definições do Payshop." 541 538 542 #: includes/module/actions/PayshopUpdateOrder.php:97 539 543 msgid "Payment status updated" … … 618 622 #: controllers/front/PayshopProcessFailedRedirect.php:43 619 623 #: includes/module/events/PayshopPaymentRefused.php:39 620 #: includes/module/schedules/PayshopCancelOrderSchedule.php:32621 624 msgid "Payment refused" 622 625 msgstr "O pagamento foi rejeitado" 626 627 #: includes/module/events/PayshopPaymentReferenceExpired.php:39 628 msgid "Payment reference expired" 629 msgstr "A referência de pagamento expirou" 630 631 #: includes/module/events/PayshopPaymentRefunded.php:57 632 msgid "Refund processed by Payshop gateway" 633 msgstr "Reembolso processado pelo gateway Payshop" 634 635 #: includes/module/events/PayshopPaymentRefunded.php:69 636 msgid "Refunded %s" 637 msgstr "Reembolsado %s" 623 638 624 639 #: controllers/front/PayshopProcessFailedRedirect.php:34 … … 679 694 msgid "Payshop Online Payments" 680 695 msgstr "Payshop Online Payments" 696 697 #: includes/module/settings/PayshopCredentialsSettings.php:107 698 msgid "Enable Apple Pay" 699 msgstr "Habilitar Apple Pay" 700 701 #: includes/module/settings/PayshopCredentialsSettings.php:109 702 msgid "If enabled, the option to pay with Apple Pay will be shown alongside credit card and the customer will be able to see the Apple Pay button on the same credit card payment page. Attention, this feature must be enabled in your Payshop account." 703 msgstr "Se habilitado a opção de pagar com Apple Pay será mostrada junto com o cartão de crédito e o cliente poderá ver o botão do Apple Pay na mesma página de pagamento com cartão de crédito. Atenção, esse recurso precisa estar habilitado na sua conta do Payshop" 704 705 #: includes/module/payments/PayshopCard.php:40 706 msgid "Payshop Card and Apple Pay" 707 msgstr "Cartão Payshop e Apple Pay" 708 709 #: includes/module/payments/PayshopCard.php:41 710 msgid "Debit, credit card and Apple Pay on Payshop Online Payments" 711 msgstr "Cartão de crédito, débito e Apple Pay no Payshop Online Payments" 712 713 #: includes/module/payments/PayshopCard.php:42 714 msgid "Credit or debit card / Apple Pay" 715 msgstr "Cartão de crédito ou débito / Apple Pay" 716 717 #: includes/module/payments/PayshopCard.php:43 718 msgid "Pay with your card or Apple Pay via Payshop Online Payments." 719 msgstr "Pague com seu cartão ou Apple Pay via Payshop Online Payments." 720 721 #: includes/module/settings/PayshopCredentialsSettings.php:121 722 msgid "The status selected here will be the default order status when a payment is refused. Note: only the \"failed\" status will allow the customer to retry the payment." 723 msgstr "O status selecionado aqui será o status padrão da ordem quando o pagamento for recusado. Observação: apenas o status falhado vai dar a opção do cliente tentar efetuar novamente o pagamento." 724 725 #: includes/module/settings/PayshopCredentialsSettings.php:119 726 msgid "Refused Payment Status" 727 msgstr "Status Pagamento Recusado" 728 729 #: includes/module/settings/PayshopCredentialsSettings.php:115 730 msgid "Show references directly" 731 msgstr "Mostrar referências diretamente" 732 733 #: includes/module/settings/PayshopCredentialsSettings.php:117 734 msgid "If enabled, the payment reference data (Payshop Reference and Multibanco) will be shown directly on the thank you page instead of a popup." 735 msgstr "Se ativado, os dados de referência de pagamento (Payshop Referência e Multibanco) serão mostrados diretamente na página de obrigado em vez de um popup." 736 737 #: templates/views/front/references-direct.php:11 738 msgid "Multibanco Payment Details" 739 msgstr "Detalhes do Pagamento Multibanco" 740 741 #: templates/views/front/references-direct.php:14 742 msgid "Payshop Payment Details" 743 msgstr "Detalhes do Pagamento Payshop" 744 745 #: templates/views/front/references-direct.php:26 746 msgid "Entity:" 747 msgstr "Entidade:" 748 749 #: templates/views/front/references-direct.php:31 750 msgid "Reference:" 751 msgstr "Referência:" 752 753 #: templates/views/front/references-direct.php:35 754 msgid "Amount:" 755 msgstr "Montante:" 756 757 #: templates/views/front/references-direct.php:40 758 msgid "Deadline:" 759 msgstr "Validade:" 760 761 #: templates/views/front/references-direct.php:47 762 msgid "Please use the details above to complete your payment." 763 msgstr "Por favor, utilize os dados acima para completar o seu pagamento." 764 765 msgid "Other Settings" 766 msgstr "Outras Configurações" 767 768 #: includes/module/settings/PayshopOthersSettings.php:32 769 msgid "Reference expiration date" 770 msgstr "Prazo de expiração da Referência" 771 772 #: includes/module/settings/PayshopOthersSettings.php:34 773 msgid "Expiration period of Payshop and Multibanco references in days from the day of creation" 774 msgstr "Prazo de expiração das referencias Payshop e Multibanco em dias a partir do dia de criação" 775 776 msgid "Checkout ID" 777 msgstr "Checkout ID" 778 779 msgid "Get your checkout id in the Payshop backoffice. Select the Production environment, then go to settings > checkouts > copy the checkout id." 780 msgstr "Obtenha seu checkout id no backoffice da payshop. Selecione o ambiente Produção, em seguida vá em configurações > checkouts > copie o checkout id." 781 782 msgid "Apple Pay was disabled because the Checkout ID is required." 783 msgstr "O Apple Pay foi desativado porque o Checkout ID é obrigatório." 784 785 msgid "If enabled, the option to pay with Apple Pay will be shown alongside credit card and the customer will be able to see the Apple Pay button on the same credit card payment page. Attention, this feature must be enabled in your Payshop account. Note: The Apple Pay button only appears in production environment, using Safari on Macs and iPhones." 786 msgstr "Se ativado, a opção de pagar com Apple Pay será exibida ao lado do cartão de crédito e o cliente poderá ver o botão Apple Pay na mesma página de pagamento com cartão de crédito. Atenção, este recurso deve estar ativado na sua conta Payshop. Nota: O botão Apple Pay só aparece em ambiente de produção, usando Safari em Macs e iPhones." 787 788 #: includes/module/integrations/PayshopApgSms.php 789 msgid "Ent." 790 msgstr "Ent." 791 792 #: includes/module/integrations/PayshopApgSms.php 793 msgid "Ref." 794 msgstr "Ref." 795 796 #: includes/module/integrations/PayshopApgSms.php 797 msgid "Val." 798 msgstr "Val." 799 800 #: includes/module/integrations/PayshopApgSms.php 801 msgid "Valid until" 802 msgstr "Válida até" -
payshop-online-payments/trunk/controllers/front/PayshopProcessFailedRedirect.php
r3392166 r3605861 41 41 } 42 42 43 $order->update_status( 'failed', esc_html__('Payment refused', 'payshop-online-payments'));43 $order->update_status(PayshopCommons::getRefusedOrderStatus(), esc_html__('Payment refused', 'payshop-online-payments')); 44 44 $order->save(); 45 45 -
payshop-online-payments/trunk/controllers/front/PayshopProcessWalletPayment.php
r3392166 r3605861 29 29 $result = $this->payshopCreateWalletPayment->execute($data); 30 30 31 $order = wc_get_order($data['order_id']);32 33 if ($data['payment_type'] === 'GOOGLEPAY') {34 $redirect = $result;35 } else {36 $redirect = $order->get_checkout_order_received_url();37 }38 39 31 wp_send_json([ 40 32 'success' => !! $result, 41 'redirect' => $re direct33 'redirect' => $result 42 34 ]); 43 35 } catch (\Throwable $e) { -
payshop-online-payments/trunk/controllers/front/PayshopProcessWebhook.php
r3392166 r3605861 47 47 $data['order']['transactions'][$key]['status'] = sanitize_text_field($transaction['status']); 48 48 } 49 if (isset($transaction['error_details']['error_code'])) { 50 $data['order']['transactions'][$key]['error_details']['error_code'] = sanitize_text_field($transaction['error_details']['error_code']); 51 } 52 if (isset($transaction['operative'])) { 53 $data['order']['transactions'][$key]['operative'] = sanitize_text_field($transaction['operative']); 54 } 49 55 } 50 56 } … … 81 87 return in_array($orderPaymentStatus, [ 82 88 'CREATED', 83 'PARTIALLY_REFUNDED',84 89 'PARTIALLY_CONFIRMED', 85 'REFUNDED',86 90 'PENDING_PROCESSOR_RESPONSE', 87 91 'PENDING_3DS_RESPONSE', -
payshop-online-payments/trunk/includes/PayshopAdminBootstrap.php
r3392166 r3605861 32 32 require_once PAYSHOP_PLUGIN_DIR . '/controllers/admin/PayshopTwoStepPayment.php'; 33 33 34 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopSettings.php'; 34 35 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopCredentialsSettings.php'; 36 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopOthersSettings.php'; 35 37 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopPaymentServiceUUID.php'; 36 38 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopPluginListLinks.php'; … … 59 61 (new PayshopRequirementsAlert())->execute(); 60 62 (new PayshopWoocommerceAlert())->execute(); 61 (new Payshop CredentialsSettings())->execute();63 (new PayshopSettings())->execute(); 62 64 (new PayshopPluginListLinks())->execute(); 63 65 (new PayshopCredentialsAlert())->execute(); -
payshop-online-payments/trunk/includes/PayshopBootstrap.php
r3392166 r3605861 70 70 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopCreatePaymentOrder.php'; 71 71 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopUpdateOrder.php'; 72 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopAppleValidateMerchant.php';73 72 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopCreateWalletPayment.php'; 74 73 … … 81 80 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopClickToPay.php'; 82 81 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopGooglePay.php'; 83 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopApplePay.php';84 82 85 83 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopPaymentBlocks.php'; … … 87 85 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopReferencesDialog.php'; 88 86 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopGooglePayDialog.php'; 89 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopApplePayDialog.php';90 91 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/schedules/PayshopCancelOrderSchedule.php';92 87 93 88 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/loaders/PayshopCSS.php'; 94 89 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/PayshopAddHeaders.php'; 95 90 91 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/integrations/PayshopApgSms.php'; 92 96 93 require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessWebhook.php'; 97 94 require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessFailedRedirect.php'; 98 95 require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessWalletPayment.php'; 99 require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopApplepayMerchantValidation.php';100 96 101 97 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/emails/PayshopReferencesEmail.php'; … … 112 108 new PayshopProcessFailedRedirect(); 113 109 new PayshopProcessWalletPayment(); 114 new PayshopApplepayMerchantValidation();115 110 } 116 111 … … 126 121 new PayshopPaymentBlocks(); 127 122 new PayshopAddHeaders(); 123 new PayshopApgSms(); 128 124 129 125 (new PayshopReferencesDialog())->execute(); 130 126 (new PayshopGooglePayDialog())->execute(); 131 (new PayshopApplePayDialog())->execute();132 127 133 128 new PayshopReferencesEmail(); 134 new PayshopCancelOrderSchedule();135 129 } 136 130 } -
payshop-online-payments/trunk/includes/helpers/PayshopCommons.php
r3392166 r3605861 81 81 $order->save(); 82 82 } 83 84 /** 85 * Get refused order status from settings 86 * 87 * @return string 88 */ 89 public static function getRefusedOrderStatus() 90 { 91 $status = get_option('payshop_refused_payment_status', 'failed'); 92 return str_replace('wc-', '', $status); 93 } 83 94 } -
payshop-online-payments/trunk/includes/module/actions/PayshopCreatePaymentOrder.php
r3392166 r3605861 174 174 { 175 175 if ($order->get_payment_method() === 'payshop_card') { 176 return[176 $options = [ 177 177 'secure' => true, 178 178 'save_card' => false, 179 179 ]; 180 181 if (get_option('payshop_apple_pay_enabled') === 'yes' && !empty(get_option('payshop_checkout_id')) && get_option('payshop_environment') == 'production') { 182 $options['extra_data'] = [ 183 "checkout" => [ 184 "uuid" => get_option('payshop_checkout_id'), 185 "customization" => null, 186 "payment_methods" => ["APPLEPAY", "PAYMENT_CARD"] 187 ] 188 ]; 189 } 190 191 return $options; 180 192 } 181 193 … … 202 214 } 203 215 204 $phone = sanitize_text_field(wp_unslash($_POST['phone'])); 216 // Keep only digits: the phone field is masked for display with spaces, 217 // but the gateway requires the raw number. 218 $phone = preg_replace('/\D/', '', sanitize_text_field(wp_unslash($_POST['phone']))); 205 219 $prefix = sanitize_text_field(wp_unslash($_POST['prefix'])); 206 220 … … 222 236 } 223 237 238 if ($order->get_payment_method() === 'payshop_multibanco' || $order->get_payment_method() === 'payshop_reference') { 239 $days_to_expire = (int) get_option('payshop_reference_expiration', 3); 240 $deadline_date = date('Y-m-d', strtotime("+$days_to_expire days")); 241 242 $options['extra_data'] = [ 243 "payment" => [ 244 "deadline" => $deadline_date, 245 ] 246 ]; 247 } 248 224 249 return $options; 225 250 } -
payshop-online-payments/trunk/includes/module/alerts/PayshopCredentialsAlert.php
r3392166 r3605861 10 10 public function execute() 11 11 { 12 $this->checkProdutionCredencials(); 12 if ($this->isPayshopSettingsPage()) { 13 return; 14 } 13 15 14 $this->checkSandboxCredencials(); 16 if (get_option('payshop_environment') === false) { 17 $this->checkCredentials(); 18 return; 19 } 20 21 if (get_option('payshop_environment') == 'production') { 22 $this->checkProdutionCredencials(); 23 return; 24 } 25 26 if (get_option('payshop_environment') == 'sandbox') { 27 $this->checkSandboxCredencials(); 28 } 29 } 30 31 /** 32 * Check if the current page is the Payshop settings page 33 * 34 * @return bool 35 */ 36 protected function isPayshopSettingsPage() 37 { 38 return isset($_GET['page']) && $_GET['page'] === 'wc-settings' && isset($_GET['tab']) && $_GET['tab'] === 'payshop'; 39 } 40 41 /** 42 * Check if it has any credentials 43 * @return void 44 */ 45 private function checkCredentials() 46 { 47 $type = 'error'; 48 $message = esc_html__('Payshop Error: Check credentials on payshop settings.', 'payshop-online-payments'); 49 50 $this->show($type, $message); 15 51 } 16 52 … … 22 58 private function checkProdutionCredencials() 23 59 { 24 if (get_option('payshop_environment') == 'sandbox') {25 return;26 }27 28 60 if (!get_option('payshop_api_key') || !get_option('payshop_signature') || !get_option('payshop_client_uuid')) { 29 61 $type = 'error'; … … 41 73 private function checkSandboxCredencials() 42 74 { 43 if (get_option('payshop_environment') == 'production') {44 return;45 }46 47 75 if (!get_option('payshop_sandbox_api_key') || !get_option('payshop_sandbox_signature') || !get_option('payshop_sandbox_client_uuid')) { 48 76 $type = 'error'; -
payshop-online-payments/trunk/includes/module/dialogs/PayshopReferencesDialog.php
r3392166 r3605861 4 4 { 5 5 /** 6 * Class constructor6 * @var bool 7 7 */ 8 public function __construct() 9 { 10 add_action('woocommerce_after_register_post_type', [$this, 'execute']); 11 } 8 private static $rendered = false; 12 9 13 10 /** 14 * Show references iframe 11 * Show references iframe or direct content 15 12 * 16 13 * @return void … … 18 15 public function execute() 19 16 { 20 add_action('wp_enqueue_scripts', [$this, 'showDialog']); 17 add_action('wp_enqueue_scripts', [$this, 'popupIframe']); 18 add_action('woocommerce_thankyou', [$this, 'renderDirectly'], 5); 19 add_action('woocommerce_order_details_before_order_table', [$this, 'renderDirectly'], 5); 21 20 } 22 21 23 22 /** 24 * Show the References dialog25 * 23 * Enqueue scripts and styles 24 * 26 25 * @return void 27 26 */ 28 public function showDialog()27 public function popupIframe() 29 28 { 30 if (!is_order_received_page()) { 31 return; 32 } 33 34 global $wp; 35 $orderId = $wp->query_vars['order-received']; 36 $order = wc_get_order($orderId); 37 38 if (!$order) { 39 return; 40 } 41 42 if ( 43 $order->get_payment_method() !== 'payshop_multibanco' && 44 $order->get_payment_method() !== 'payshop_reference' 45 ) { 46 return; 47 } 48 49 $iframeContent = wc()->session->get('order_iframe_content'); 50 51 if (empty($iframeContent)) { 29 if (!is_wc_endpoint_url('order-received')) { 52 30 return; 53 31 } … … 57 35 PAYSHOP_PLUGIN_URL . 'templates/css/references-dialog.css' 58 36 ); 37 38 $showDirectly = get_option('payshop_show_references_directly') === 'yes'; 39 if ($showDirectly) { 40 return; 41 } 42 43 global $wp; 44 $orderId = $wp->query_vars['order-received']; 45 $order = wc_get_order($orderId); 46 $method = $order->get_payment_method(); 47 if ($method !== 'payshop_multibanco' && $method !== 'payshop_reference') { 48 return; 49 } 50 51 $iframeContent = wc()->session->get('order_iframe_content'); 52 if (empty($iframeContent)) { 53 return; 54 } 59 55 60 56 wp_enqueue_script( … … 75 71 76 72 add_action('wp_footer', function () { 77 require_once PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-dialog.php';73 include PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-dialog.php'; 78 74 }); 75 76 } 77 78 /** 79 * Render references directly in the Thank You page 80 * 81 * @param int|WC_Order $order_id 82 * @return void 83 */ 84 public function renderDirectly($order_id) 85 { 86 if (self::$rendered) { 87 return; 88 } 89 90 $showDirectly = get_option('payshop_show_references_directly') === 'yes'; 91 if (!$showDirectly) { 92 return; 93 } 94 95 if (is_numeric($order_id)) { 96 $order = wc_get_order($order_id); 97 } elseif ($order_id instanceof WC_Order) { 98 $order = $order_id; 99 } else { 100 return; 101 } 102 103 if (!$order) { 104 return; 105 } 106 107 $method = $order->get_payment_method(); 108 if ($method !== 'payshop_multibanco' && $method !== 'payshop_reference') { 109 return; 110 } 111 112 $entity = $order->get_meta('_payshop_entity'); 113 $reference = $order->get_meta('_payshop_reference'); 114 $deadline = $order->get_meta('_payshop_deadline'); 115 116 if (!$reference) { 117 return; 118 } 119 120 self::$rendered = true; 121 include PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-direct.php'; 79 122 } 80 123 } -
payshop-online-payments/trunk/includes/module/events/PayshopPaymentRefused.php
r3392166 r3605861 31 31 $this->payshopUpdateOrder->execute( 32 32 $order->get_id(), 33 'failed',33 PayshopCommons::getRefusedOrderStatus(), 34 34 $order->get_meta('_payshop_payment_order_uuid'), 35 35 ); -
payshop-online-payments/trunk/includes/module/events/PayshopProcessEvent.php
r3392166 r3605861 3 3 if ( ! defined( 'ABSPATH' ) ) exit; 4 4 5 require_once 'PayshopPaymentReferenceExpired.php'; 6 require_once 'PayshopPaymentRefunded.php'; 5 7 require_once 'PayshopPaymentRefused.php'; 6 8 require_once 'PayshopPaymentSuccess.php'; … … 24 26 25 27 /** 28 * @var PayshopPaymentReferenceExpired 29 */ 30 private $payshopPaymentReferenceExpired; 31 32 /** 33 * @var PayshopPaymentRefunded 34 */ 35 private $payshopPaymentRefunded; 36 37 /** 26 38 * Class constructor 27 39 */ … … 31 43 $this->payshopPaymentSuccess = new PayshopPaymentSuccess(); 32 44 $this->payshopPaymentRefused = new PayshopPaymentRefused(); 45 $this->payshopPaymentReferenceExpired = new PayshopPaymentReferenceExpired(); 46 $this->payshopPaymentRefunded = new PayshopPaymentRefunded(); 33 47 } 34 48 … … 42 56 { 43 57 $order = $this->getOrderByPaymentOrderUUID($paymentOrder['uuid']); 58 44 59 $this->addMetadataAppName($paymentOrder); 60 61 if ($this->payshopPaymentRefunded->check($paymentOrder)) { 62 return $this->payshopPaymentRefunded->process($order, $paymentOrder); 63 } 45 64 46 65 $isPaymentInTwoStep = $order->get_meta('_payshop_payment_in_two_steps') == 'yes'; … … 57 76 } 58 77 78 if ($paymentOrder['status'] == 'REFUSED' && $this->isReferenceExpired($paymentOrder)) { 79 return $this->payshopPaymentReferenceExpired->process($order); 80 } 81 59 82 return $this->payshopPaymentRefused->process($order); 83 } 84 85 /** 86 * Check if the payment was refused due to an expired reference (error E0621) 87 * 88 * @param array $paymentOrder 89 * @return bool 90 */ 91 private function isReferenceExpired(array $paymentOrder): bool 92 { 93 $transactions = $paymentOrder['transactions'] ?? []; 94 95 if (!$transactions) { 96 return false; 97 } 98 99 $lastTransaction = $transactions[count($transactions) - 1]; 100 101 return ($lastTransaction['status'] ?? null) === 'REFUSED' 102 && ($lastTransaction['error_details']['error_code'] ?? null) === 'E0621'; 60 103 } 61 104 -
payshop-online-payments/trunk/includes/module/payments/PayshopCard.php
r3534778 r3605861 33 33 $this->description = $this->get_option('payshop_card_description'); 34 34 $this->enabled = $this->get_option('payshop_card_enabled'); 35 36 if (get_option('payshop_apple_pay_enabled') === 'yes') { 37 $this->method_title = esc_html__('Payshop Card and Apple Pay', 'payshop-online-payments'); 38 $this->method_description = esc_html__('Debit, credit card and Apple Pay on Payshop Online Payments', 'payshop-online-payments'); 39 $this->title = esc_html__('Credit or debit card / Apple Pay', 'payshop-online-payments'); 40 $this->description = esc_html__('Pay with your card or Apple Pay via Payshop Online Payments.', 'payshop-online-payments'); 41 } 35 42 36 43 add_action('woocommerce_update_options_payment_gateways_' . $this->id, [$this, 'process_admin_options']); … … 118 125 $paymentOrder['uuid'] 119 126 ); 120 127 121 128 return [ 122 129 'result' => 'success', -
payshop-online-payments/trunk/includes/module/payments/PayshopMultibanco.php
r3400393 r3605861 12 12 */ 13 13 private $payshopUpdateOrder; 14 15 /**16 * @var PayshopCancelOrderSchedule17 */18 private $payshopCancelOrderSchedule;19 14 20 15 /** … … 43 38 $this->payshopCreatePaymentOrder = new PayshopCreatePaymentOrder(); 44 39 $this->payshopUpdateOrder = new PayshopUpdateOrder(); 45 $this->payshopCancelOrderSchedule = new PayshopCancelOrderSchedule();46 40 } 47 41 … … 115 109 $paymentOrder = $paymentOrder['response']['order']; 116 110 PayshopCommons::saveOrderReference($order, $paymentOrder['transactions'][0]['payment_data']); 117 118 $this->payshopCancelOrderSchedule->schedule_cancellation(119 $paymentOrder['transactions'][0]['payment_data']['deadline'],120 $orderId121 );122 111 123 112 $this->payshopUpdateOrder->execute( -
payshop-online-payments/trunk/includes/module/payments/PayshopPaymentMethods.php
r3392166 r3605861 18 18 public function addPaymentMethods($gateways) 19 19 { 20 $gateways = [];21 22 20 $paymentServices = [ 23 21 'payshop_card' => 'PayshopCard', … … 27 25 'payshop_paypal' => 'PayshopPaypal', 28 26 'payshop_clicktopay' => 'PayshopClickToPay', 29 'payshop_googlepay' => 'PayshopGooglePay', 30 'payshop_applepay' => 'PayshopApplePay' 27 'payshop_googlepay' => 'PayshopGooglePay' 31 28 ]; 32 29 -
payshop-online-payments/trunk/includes/module/payments/PayshopReference.php
r3400393 r3605861 12 12 */ 13 13 private $payshopUpdateOrder; 14 15 /**16 * @var PayshopCancelOrderSchedule17 */18 private $payshopCancelOrderSchedule;19 14 20 15 /** … … 43 38 $this->payshopCreatePaymentOrder = new PayshopCreatePaymentOrder(); 44 39 $this->payshopUpdateOrder = new PayshopUpdateOrder(); 45 $this->payshopCancelOrderSchedule = new PayshopCancelOrderSchedule();46 40 } 47 41 … … 116 110 PayshopCommons::saveOrderReference($order, $paymentOrder['transactions'][0]['payment_data']); 117 111 118 $this->payshopCancelOrderSchedule->schedule_cancellation(119 $paymentOrder['transactions'][0]['payment_data']['deadline'],120 $orderId121 );122 112 123 113 $this->payshopUpdateOrder->execute( -
payshop-online-payments/trunk/includes/module/payments/blocks/PayshopMBWayBlock.php
r3400393 r3605861 50 50 'wp-i18n', 51 51 ], 52 null,52 filemtime(PAYSHOP_PLUGIN_DIR . 'templates/blocks/build/mbway.js'), 53 53 true 54 54 ); -
payshop-online-payments/trunk/includes/module/payments/blocks/PayshopPaymentBlocks.php
r3392166 r3605861 23 23 { 24 24 if (class_exists(FeaturesUtil::class)) { 25 $pluginFile = PAYSHOP_PLUGIN_DIR . ' /payshop.php';25 $pluginFile = PAYSHOP_PLUGIN_DIR . 'payshop-online-payments.php'; 26 26 FeaturesUtil::declare_compatibility('cart_checkout_blocks', $pluginFile, true); 27 27 } … … 43 43 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopMBWayBlock.php'; 44 44 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopGooglePayBlock.php'; 45 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopApplePayBlock.php';46 45 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopPaypalBlock.php'; 47 46 require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopClickToPayBlock.php'; … … 55 54 $payment_method_registry->register(new PayshopMultibancoBlock); 56 55 $payment_method_registry->register(new PayshopGooglePayBlock); 57 $payment_method_registry->register(new PayshopApplePayBlock);58 56 $payment_method_registry->register(new PayshopPaypalBlock); 59 57 $payment_method_registry->register(new PayshopClickToPayBlock); -
payshop-online-payments/trunk/includes/module/settings/PayshopCredentialsSettings.php
r3392166 r3605861 9 9 10 10 /** 11 * Define payshop credentials settings 11 * Constructor 12 */ 13 public function __construct() 14 { 15 $this->PayshopPaymentServiceUUID = new PayshopPaymentServiceUUID(); 16 } 17 18 /** 19 * Save credentials specific data 12 20 * 13 21 * @return void 14 22 */ 15 public function execute() 16 { 17 $this->PayshopPaymentServiceUUID = new PayshopPaymentServiceUUID(); 18 add_filter('woocommerce_settings_tabs_array', [$this, 'addSettingsTab'], 50); 19 add_action('woocommerce_settings_tabs_payshop', [$this, 'settingsTab']); 20 add_action('woocommerce_update_options_payshop', [$this, 'updateSettings']); 21 } 22 23 /** 24 * Add payshop settings tab 25 * 26 * @param array $settingsTabs 27 * @return array 28 */ 29 public function addSettingsTab($settingsTabs) 30 { 31 $settingsTabs['payshop'] = esc_html__('Payshop', 'payshop-online-payments'); 32 33 return $settingsTabs; 34 } 35 36 /** 37 * Define fields in Settings tab 38 * 39 * @return void 40 */ 41 public function settingsTab() 42 { 43 woocommerce_admin_fields($this->getSettings()); 44 } 45 46 /** 47 * Save settings fields 48 * 49 * @return array 50 */ 51 public function updateSettings() 23 public function update() 52 24 { 53 25 update_option('payshop_card_service_uuid', NULL); … … 55 27 update_option('payshop_multibanco_service_uuid', NULL); 56 28 update_option('payshop_reference_service_uuid', NULL); 57 58 woocommerce_update_options($this->getSettings());29 update_option('payshop_googlepay_service_uuid', NULL); 30 // update_option('payshop_applepay_service_uuid', NULL); 59 31 60 32 try { … … 70 42 * @return array 71 43 */ 72 p rivatefunction getSettings()44 public function getSettings() 73 45 { 74 46 return $this->generalSettings() + -
payshop-online-payments/trunk/includes/module/settings/PayshopPaymentServiceUUID.php
r3392166 r3605861 14 14 15 15 /** 16 * Class constructor17 */18 public function __construct()19 {20 $this->payshopSDK = PayshopClientFactory::getInstance();21 }22 23 /**24 16 * Add links to plugin list 25 17 * … … 28 20 public function execute() 29 21 { 22 $this->payshopSDK = PayshopClientFactory::getInstance(true); 23 30 24 $this->availableServices = $this->getGatewayServices(); 31 25 -
payshop-online-payments/trunk/includes/sdk/PayshopClientFactory.php
r3392166 r3605861 18 18 * @return PayshopClient 19 19 */ 20 public static function getInstance( )20 public static function getInstance($force = false) 21 21 { 22 if (null === self::$payshopClient ) {22 if (null === self::$payshopClient || $force) { 23 23 try { 24 24 self::$payshopClient = new PayshopClient( -
payshop-online-payments/trunk/payshop-online-payments.php
r3604199 r3605861 7 7 * Plugin URI: https://payshop.pt 8 8 * Description: Customize the payment experience of your customers in your online store. 9 * Version: 2. 2.149 * Version: 2.3.3 10 10 * Requires at least: 5.8 11 11 * Tested up to: 7.0 … … 19 19 20 20 // the version needs to be changed in the file readme.txt too 21 define('PAYSHOP_PLUGIN_VERSION', '2. 2.14');21 define('PAYSHOP_PLUGIN_VERSION', '2.3.3'); 22 22 define('PAYSHOP_PLUGIN_DIR', plugin_dir_path( __FILE__ )); 23 23 define('PAYSHOP_PLUGIN_URL', plugin_dir_url( __FILE__ )); -
payshop-online-payments/trunk/readme.txt
r3604199 r3605861 5 5 Tested up to: 7.0 6 6 Requires PHP: 7.4 7 Stable tag: 2. 2.177 Stable tag: 2.3.3 8 8 License: GPLv3 9 9 License URI: https://www.gnu.org/licenses/gpl-3.0.html … … 22 22 * Credit and Debit Cards (Visa, Mastercard) 23 23 * Google Pay 24 * Apple Pay - New! 24 25 * Foreign Cards with 3D Secure support 25 * Manual payments via link (sent by email, SMS, or social media)26 * Coming soon: Apple Pay27 26 28 27 == Features == … … 32 31 * Access to the POP Backoffice to easily manage your payments 33 32 * Instant refunds using the original payment method 34 * Send payment links via email, SMS, WhatsApp, or social media33 * Two Step Payment using credit card 35 34 * Funds transferred on the next business day, hassle-free 36 35 * Automatic synchronisation of order numbering between Woocommerce and POP BackOffice, through integration with the Sequential Order Numbers for Woocommerce plugin … … 85 84 == Changelog == 86 85 86 = 2.3.3 = 87 * Expired reference orders are now always marked as cancelled instead of using the configured failed order status 88 * Fix log warning error 89 90 = 2.3.2 = 91 * Call Apple Pay checkout only on the production environment 92 * Remove custom font-family from the reference section on the Thank You page 93 * Fix log warning error 94 95 = 2.3.1 = 96 * Add APG SMS Notifications integration 97 * Add MB WAY input mask on checkout 98 99 = 2.3.0 = 100 * Bump plugin version 101 102 = 2.2.13 = 103 * Remove first party Apple Pay and handle it together with credit card on the external redirect checkout 104 * Implement refund flow via webhook 105 * Expire Payshop and Multibanco references 106 * Add Checkout ID setting to support Apple Pay integration in the external checkout 107 * Add a new field to define the reference expiration date and send it to the gateway 108 * Remove the scheduled cancellation of expired references, now handled when receiving the callback 109 * Add direct display of payment references on the Thank You page 110 * Enhance responsive design and layout for payment references display 111 * Refactor payment refusal handling to use a configurable order status and update translations 112 * Avoid showing the references popup iframe when the payment method is not a reference 113 * Refactor settings to define settings in the correct files and add "Other Settings" 114 * Fix bug that was forcing the user to click save twice to save credentials and get service UUIDs 115 * Refactor to avoid showing a message on the Payshop credentials page and improve the error message when the environment option is not set 116 117 = 2.2.12 = 118 * Update the plugin version for the WordPress repository release 119 120 = 2.2.11 = 121 * Adjust Google Pay brand 122 123 = 2.2.10 = 124 * Add Google Pay paid message display and update translations 125 126 = 2.2.9 = 127 * Remove the alert before the Google Pay 3DS redirect 128 129 = 2.2.8 = 130 * Improve translations 131 132 = 2.2.6 = 133 * Update the readme file 134 135 = 2.2.5 = 136 * Change custom action prefixes 137 * Define the correct name for the Sequential Order Numbers for WooCommerce plugin 138 139 = 2.2.4 = 140 * Automatic cancellation of Multibanco and Payshop orders after the payment deadline 141 * Fix the Payshop reference service type name after a PNP change 142 * Send the sequential order number to the gateway 143 87 144 = 2.2.2 = 88 145 * Initial public release of the POP plugin for WooCommerce -
payshop-online-payments/trunk/templates/blocks/build/mbway.asset.php
r3392166 r3605861 1 <?php return array('dependencies' => array('react', 'wp-element'), 'version' => ' a4f4f3072fceb509c008');1 <?php return array('dependencies' => array('react', 'wp-element'), 'version' => 'c3abf80fad94761db627'); -
payshop-online-payments/trunk/templates/blocks/build/mbway.js
r3392166 r3605861 654 654 } 655 655 function phoneChange(e) { 656 phoneRef.current = e.target.value; 657 setPhone(e.target.value); 656 const value = e.target.value.replace(/\D/g, '').slice(0, 9); 657 phoneRef.current = value; 658 setPhone(value); 658 659 } 659 660 (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => { … … 703 704 onChange: prefixChange 704 705 }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", { 705 value: phone ,706 value: phone.replace(/(\d{3})(?=\d)/g, '$1 '), 706 707 onChange: phoneChange, 707 708 id: "id-phone-number", 708 709 placeholder: "N\xFAmero Telem\xF3vel", 709 710 className: "input-text wc-credit-card-form-card-number", 710 inputmode: " text",711 inputmode: "numeric", 711 712 autocorrect: "no", 712 713 autocapitalize: "no", … … 715 716 "data-checkout": "wbwayNumber", 716 717 name: "phone", 717 maxlength: "1 9",718 maxlength: "11", 718 719 required: true, 719 720 style: { -
payshop-online-payments/trunk/templates/blocks/build/mbway.js.map
r3392166 r3605861 1 {"version":3,"file":"mbway.js","mappings":";;;;;;;;;;;;;;;;;AAAe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACvC,OACIC,oDAAA;IAAQC,KAAK,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAAA,GAAKH,KAAK;IAAEI,SAAS,EAAC,4CAA4C;IAACC,QAAQ;IAACC,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAK;EAAE,GACvJP,oDAAA;IAAQQ,KAAK,EAAC;EAAG,GAAC,IAAU,CAAC,EAC7BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC,KAAK;IAACC,QAAQ;EAAA,GAAC,MAAY,CAAC,EAC1CT,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAC5B,CAAC;AAEjB;;;;;;;;;;;;;;AC1MA,MAAME,YAAY,CAAC;EAEf;AACJ;AACA;AACA;EACIC,WAAWA,CAACC,gBAAgB,EAAEC,OAAO,EACrC;IACI,IAAI,CAACD,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEAC,YAAYA,CAAA,EAAG;IACX,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACC,OAAO,CAAC,IAAI,CAACJ,gBAAgB,CAAC;EACvC;EAEAK,iCAAiCA,CAACC,mBAAmB,EACrD;IACI,IAAI,CAACC,oBAAoB,CAAC,CAAC,CAACC,WAAW,CAACF,mBAAmB,CAAC;EAChE;;EAEA;AACJ;AACA;EACIF,OAAOA,CAACK,IAAI,EACZ;IACI,IAAI,CAACC,WAAW,CAACD,IAAI,CAAC;IAEtB,IAAI,CAACE,iBAAiB,CAAC,CAAC;EAC5B;;EAEA;AACJ;AACA;EACIC,QAAQA,CAACC,KAAK,EACd;IACIA,KAAK,CAACC,OAAO,CAACC,CAAC,IAAI,IAAI,CAACL,WAAW,CAACK,CAAC,CAAC,CAAC;IAEvC,IAAI,CAACJ,iBAAiB,CAAC,CAAC;EAC5B;;EAEA;AACJ;AACA;EACIK,WAAWA,CAAA,EACX;IACI,MAAMC,gBAAgB,GAAG,IAAI,CAACV,oBAAoB,CAAC,CAAC;IACpD,OAAOU,gBAAgB,CAACC,SAAS;EACrC;;EAEA;AACJ;AACA;AACA;EACIR,WAAWA,CAACD,IAAI,EAChB;IACI,IAAG,CAAE,OAAOU,MAAM,IAAIV,IAAI,CAACW,MAAM,KAAK,CAAC,EAAE;MACrC,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;IACrE;IAEA,MAAMJ,gBAAgB,GAAG,IAAI,CAACV,oBAAoB,CAAC,CAAC;IAEpD,IAAIe,WAAW,GAAG,IAAI,CAACC,sBAAsB,CAACd,IAAI,CAAC;IACnDQ,gBAAgB,CAACO,WAAW,CAACF,WAAW,CAAC;EAC7C;;EAEA;AACJ;AACA;EACIX,iBAAiBA,CAAA,EACjB;IACIc,MAAM,CAACC,iBAAiB,CAACD,MAAM,CAAC,oBAAoB,CAAC,CAAC;EAC1D;;EAEA;AACJ;AACA;EACIlB,oBAAoBA,CAAA,EACpB;IACI,IAAIU,gBAAgB,GAAGU,QAAQ,CAACC,aAAa,CAAC,sBAAsB,CAAC;IACrE,IAAIX,gBAAgB,KAAK,IAAI,EAAE;MAC3BA,gBAAgB,GAAGU,QAAQ,CAACvC,aAAa,CAAC,IAAI,CAAC;MAC/C6B,gBAAgB,CAACY,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC;MAC3DZ,gBAAgB,CAACY,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;MAC9CJ,MAAM,CAAC,IAAI,CAACxB,OAAO,CAAC,CAAC6B,OAAO,CAACb,gBAAgB,CAAC;IAClD;IACA,OAAOA,gBAAgB;EAC3B;;EAEA;AACJ;AACA;EACIM,sBAAsBA,CAACnB,OAAO,EAC9B;IACI,MAAM2B,EAAE,GAAGJ,QAAQ,CAACvC,aAAa,CAAC,IAAI,CAAC;IACvC2C,EAAE,CAACC,SAAS,GAAG5B,OAAO;IAEtB,OAAO2B,EAAE;EACb;EAEA5B,KAAKA,CAAA,EACL;IACIsB,MAAM,CAAE,0CAA2C,CAAC,CAACQ,MAAM,CAAC,CAAC;EACjE;AACJ;AAEA,iEAAenC,YAAY;;;;;;;;;;AC3G3B;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;ACNyD;AACT;AACI;AAGpD,MAAMsC,QAAQ,GAAGC,MAAM,CAACC,EAAE,CAACC,UAAU,CAACC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;AAC1E,MAAMC,KAAK,GAAGJ,MAAM,CAACK,EAAE,CAACC,YAAY,CAACC,cAAc,CAACR,QAAQ,CAACS,KAAK,CAAC;AACnE,MAAMC,IAAI,GAAGV,QAAQ,CAACU,IAAI;AAE1B,MAAMC,OAAO,GAAK5D,KAAK,IAAM;EAC5B,MAAM;IAAE6D,iBAAiB;IAAEC;EAAa,CAAC,GAAG9D,KAAK;EACjD,MAAM;IAAE+D,cAAc;IAAEC;EAAgB,CAAC,GAAGH,iBAAiB;EAE1D,MAAM,CAACI,MAAM,EAAEC,SAAS,CAAC,GAAGlB,4DAAQ,CAAC,MAAM,CAAC;EAC5C,MAAM,CAACmB,KAAK,EAAEC,QAAQ,CAAC,GAAGpB,4DAAQ,CAAC,EAAE,CAAC;EACtC,MAAMqB,SAAS,GAAGC,KAAK,CAACC,MAAM,CAACN,MAAM,CAAC;EACtC,MAAMO,QAAQ,GAAGF,KAAK,CAACC,MAAM,CAACJ,KAAK,CAAC;EAEvC,SAASM,YAAYA,CAACC,CAAC,EAAE;IAClBL,SAAS,CAACM,OAAO,GAAGD,CAAC,CAACE,MAAM,CAACnE,KAAK;IAClCyD,SAAS,CAACQ,CAAC,CAACE,MAAM,CAACnE,KAAK,CAAC;EAC7B;EAEA,SAASoE,WAAWA,CAACH,CAAC,EAAE;IACpB F,QAAQ,CAACG,OAAO,GAAGD,CAAC,CAACE,MAAM,CAACnE,KAAK;IACjC2D,QAAQ,CAACM,CAAC,CAACE,MAAM,CAACnE,KAAK,CAAC;EAC5B;EAEHsC,6DAAS,CAAE,MAAM;IAChB,MAAM+B,WAAW,GAAGf,cAAc,CAAE,YAAY;MAC/C,MAAMI,KAAK,GAAGK,QAAQ,CAACG,OAAO;MAC9B,MAAMV,MAAM,GAAGI,SAAS,CAACM,OAAO;MAEhC,IAAKR,KAAK,KAAK,EAAE,IAAIF,MAAM,KAAK,EAAE,EAAG;QACpC,OAAO;UACNc,IAAI,EAAEjB,YAAY,CAACkB,aAAa,CAACC,OAAO;UACxCC,IAAI,EAAE;YACLC,iBAAiB,EAAE;cAClBlB,MAAM;cACNE,KAAK;cACLiB,mBAAmB,EAAEnC,QAAQ,CAACoC;YAC/B;UACD;QACD,CAAC;MACF;MAEA,OAAO;QACNN,IAAI,EAAEjB,YAAY,CAACkB,aAAa,CAACM,KAAK;QACtCrE,OAAO,EAAEgC,QAAQ,CAACsC;MACnB,CAAC;IACF,CAAE,CAAC;IAEHvB,cAAc,CAAC,MAAOwB,eAAe,IAAK;MAAA,IAAAC,qBAAA;MACzC;MACA,MAAMC,YAAY,IAAAD,qBAAA,GAAGD,eAAe,CAACG,kBAAkB,CAACC,cAAc,CAACF,YAAY,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MAEzF,IAAII,YAAY,GAAG,IAAIlF,2DAAY,CACtB,iBAAiB,EACjB6B,QAAQ,CAACC,aAAa,CAAC,8BAA8B,CACzD,CAAC;MAEDoD,YAAY,CAAC7E,KAAK,CAAC,CAAC;MACpB6E,YAAY,CAAC5E,OAAO,CAACyE,YAAY,CAAC;IACtC,CAAC,CAAC;;IAER;IACA,OAAO,MAAM;MACZZ,WAAW,CAAC,CAAC;IACd,CAAC;EACF,CAAC,EAAE,CACFhB,YAAY,CAACkB,aAAa,CAACM,KAAK,EAChCxB,YAAY,CAACkB,aAAa,CAACC,OAAO,EAClClB,cAAc,CACb,CAAC;EAEH,OAAO9D,oDAAA;IAAU6F,EAAE,EAAC,yBAAyB;IAAC1F,SAAS,EAAC;EAAqC,GAC9EH,oDAAA;IAAGG,SAAS,EAAC,8CAA8C;IAACE,KAAK,EAAE;MAACyF,OAAO,EAAE;IAAM;EAAE,GAChG9F,oDAAA,CAACF,gEAAW;IAACiG,QAAQ,EAAEvB;EAAa,CAAE,CAAC,EACxBxE,oDAAA;IAAOQ,KAAK,EAAE0D,KAAM;IAAC6B,QAAQ,EAAEnB,WAAY;IAACiB,EAAE,EAAC,iBAAiB;IAACG,WAAW,EAAC,wBAAkB;IAAC7F,SAAS,EAAC,4CAA4C;IAAC8F,SAAS,EAAC,MAAM;IAACC,WAAW,EAAC,IAAI;IAACC,cAAc,EAAC,IAAI;IAACC,UAAU,EAAC,IAAI;IAACtB,IAAI,EAAC,MAAM;IAAC,iBAAc,aAAa;IAAC5E,IAAI,EAAC,OAAO;IAACmG,SAAS,EAAC,IAAI;IAACjG,QAAQ;IAACC,KAAK,EAAE;MAACiG,QAAQ,EAAE;IAAG;EAAE,CAAE,CACpU,CACG,CAAC;AACvB,CAAC;AAED,MAAMC,aAAa,GAAG;EAClBrG,IAAI,EAAE,eAAe;EACrBmD,KAAK,EAAErD,oDAAA;IAAKK,KAAK,EAAE;MAACyF,OAAO,EAAE,MAAM;MAAEU,UAAU,EAAE;IAAQ;EAAE,GACnDxG,oDAAA,eAAOqD,KAAY,CAAC,EACpBrD,oDAAA;IAAKyG,GAAG,EAAE/C,IAAK;IAACrD,KAAK,EAAE;MAACqG,UAAU,EAAE;IAAM;EAAE,CAAE,CAC7C,CAAC;EACVC,OAAO,EAAE3G,oDAAA,CAAC2D,OAAO,MAAE,CAAC;EACpBiD,IAAI,EAAE5G,oDAAA,cAAMqD,KAAW,CAAC;EACxBwD,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,SAAS,EAAEzD,KAAK;EAChB0D,QAAQ,EAAE;IACNC,QAAQ,EAAEhE,QAAQ,CAAC+D;EACvB;AACJ,CAAC;AAED9D,MAAM,CAACC,EAAE,CAAC+D,gBAAgB,CAACC,qBAAqB,CAACX,aAAa,CAAC,C","sources":["webpack://payshop-blocks/./src/components/phone-prefix.js","webpack://payshop-blocks/./src/utils/ErrorHandler.js","webpack://payshop-blocks/external window \"React\"","webpack://payshop-blocks/external window [\"wp\",\"element\"]","webpack://payshop-blocks/webpack/bootstrap","webpack://payshop-blocks/webpack/runtime/compat get default export","webpack://payshop-blocks/webpack/runtime/define property getters","webpack://payshop-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://payshop-blocks/webpack/runtime/make namespace object","webpack://payshop-blocks/./src/mbway.js"],"sourcesContent":["export default function PhonePrefix(props) {\n return (\n <select class=\"prefix\" name=\"prefix\" {...props} className=\"input-text wc-credit-card-form-card-number\" required style={{width: \"80px\", paddingLeft: \"3px\"}}>\n <option value=\"1\">+1</option>\n <option value=\"20\">+20</option>\n <option value=\"30\">+30</option>\n <option value=\"31\">+31</option>\n <option value=\"32\">+32</option>\n <option value=\"33\">+33</option>\n <option value=\"34\">+34</option>\n <option value=\"36\">+36</option>\n <option value=\"39\">+39</option>\n <option value=\"40\">+40</option>\n <option value=\"41\">+41</option>\n <option value=\"43\">+43</option>\n <option value=\"44\">+44</option>\n <option value=\"45\">+45</option>\n <option value=\"46\">+46</option>\n <option value=\"47\">+47</option>\n <option value=\"48\">+48</option>\n <option value=\"49\">+49</option>\n <option value=\"51\">+51</option>\n <option value=\"52\">+52</option>\n <option value=\"53\">+53</option>\n <option value=\"54\">+54</option>\n <option value=\"55\">+55</option>\n <option value=\"56\">+56</option>\n <option value=\"57\">+57</option>\n <option value=\"58\">+58</option>\n <option value=\"60\">+60</option>\n <option value=\"61\">+61</option>\n <option value=\"62\">+62</option>\n <option value=\"63\">+63</option>\n <option value=\"64\">+64</option>\n <option value=\"65\">+65</option>\n <option value=\"66\">+66</option>\n <option value=\"81\">+81</option>\n <option value=\"82\">+82</option>\n <option value=\"84\">+84</option>\n <option value=\"86\">+86</option>\n <option value=\"90\">+90</option>\n <option value=\"91\">+91</option>\n <option value=\"92\">+92</option>\n <option value=\"93\">+93</option>\n <option value=\"94\">+94</option>\n <option value=\"95\">+95</option>\n <option value=\"98\">+98</option>\n <option value=\"211\">+211</option>\n <option value=\"212\">+212</option>\n <option value=\"213\">+213</option>\n <option value=\"216\">+216</option>\n <option value=\"218\">+218</option>\n <option value=\"220\">+220</option>\n <option value=\"221\">+221</option>\n <option value=\"222\">+222</option>\n <option value=\"223\">+223</option>\n <option value=\"224\">+224</option>\n <option value=\"225\">+225</option>\n <option value=\"226\">+226</option>\n <option value=\"227\">+227</option>\n <option value=\"228\">+228</option>\n <option value=\"229\">+229</option>\n <option value=\"230\">+230</option>\n <option value=\"231\">+231</option>\n <option value=\"232\">+232</option>\n <option value=\"233\">+233</option>\n <option value=\"234\">+234</option>\n <option value=\"235\">+235</option>\n <option value=\"236\">+236</option>\n <option value=\"237\">+237</option>\n <option value=\"238\">+238</option>\n <option value=\"239\">+239</option>\n <option value=\"240\">+240</option>\n <option value=\"241\">+241</option>\n <option value=\"242\">+242</option>\n <option value=\"243\">+243</option>\n <option value=\"244\">+244</option>\n <option value=\"245\">+245</option>\n <option value=\"246\">+246</option>\n <option value=\"248\">+248</option>\n <option value=\"249\">+249</option>\n <option value=\"250\">+250</option>\n <option value=\"251\">+251</option>\n <option value=\"252\">+252</option>\n <option value=\"253\">+253</option>\n <option value=\"254\">+254</option>\n <option value=\"255\">+255</option>\n <option value=\"256\">+256</option>\n <option value=\"257\">+257</option>\n <option value=\"258\">+258</option>\n <option value=\"260\">+260</option>\n <option value=\"261\">+261</option>\n <option value=\"262\">+262</option>\n <option value=\"263\">+263</option>\n <option value=\"264\">+264</option>\n <option value=\"265\">+265</option>\n <option value=\"266\">+266</option>\n <option value=\"267\">+267</option>\n <option value=\"268\">+268</option>\n <option value=\"269\">+269</option>\n <option value=\"290\">+290</option>\n <option value=\"291\">+291</option>\n <option value=\"297\">+297</option>\n <option value=\"298\">+298</option>\n <option value=\"299\">+299</option>\n <option value=\"350\">+350</option>\n <option value=\"351\" selected>+351</option>\n <option value=\"352\">+352</option>\n <option value=\"353\">+353</option>\n <option value=\"354\">+354</option>\n <option value=\"355\">+355</option>\n <option value=\"356\">+356</option>\n <option value=\"357\">+357</option>\n <option value=\"358\">+358</option>\n <option value=\"359\">+359</option>\n <option value=\"370\">+370</option>\n <option value=\"371\">+371</option>\n <option value=\"372\">+372</option>\n <option value=\"373\">+373</option>\n <option value=\"374\">+374</option>\n <option value=\"375\">+375</option>\n <option value=\"376\">+376</option>\n <option value=\"377\">+377</option>\n <option value=\"378\">+378</option>\n <option value=\"379\">+379</option>\n <option value=\"380\">+380</option>\n <option value=\"381\">+381</option>\n <option value=\"382\">+382</option>\n <option value=\"383\">+383</option>\n <option value=\"385\">+385</option>\n <option value=\"386\">+386</option>\n <option value=\"387\">+387</option>\n <option value=\"389\">+389</option>\n <option value=\"420\">+420</option>\n <option value=\"421\">+421</option>\n <option value=\"423\">+423</option>\n <option value=\"500\">+500</option>\n <option value=\"501\">+501</option>\n <option value=\"502\">+502</option>\n <option value=\"503\">+503</option>\n <option value=\"504\">+504</option>\n <option value=\"505\">+505</option>\n <option value=\"506\">+506</option>\n <option value=\"507\">+507</option>\n <option value=\"508\">+508</option>\n <option value=\"509\">+509</option>\n <option value=\"590\">+590</option>\n <option value=\"591\">+591</option>\n <option value=\"592\">+592</option>\n <option value=\"593\">+593</option>\n <option value=\"594\">+594</option>\n <option value=\"595\">+595</option>\n <option value=\"596\">+596</option>\n <option value=\"597\">+597</option>\n <option value=\"598\">+598</option>\n <option value=\"599\">+599</option>\n <option value=\"670\">+670</option>\n <option value=\"672\">+672</option>\n <option value=\"673\">+673</option>\n <option value=\"674\">+674</option>\n <option value=\"675\">+675</option>\n <option value=\"676\">+676</option>\n <option value=\"677\">+677</option>\n <option value=\"678\">+678</option>\n <option value=\"679\">+679</option>\n <option value=\"680\">+680</option>\n <option value=\"681\">+681</option>\n <option value=\"682\">+682</option>\n <option value=\"683\">+683</option>\n <option value=\"685\">+685</option>\n <option value=\"686\">+686</option>\n <option value=\"687\">+687</option>\n <option value=\"688\">+688</option>\n <option value=\"689\">+689</option>\n <option value=\"690\">+690</option>\n <option value=\"691\">+691</option>\n <option value=\"692\">+692</option>\n <option value=\"850\">+850</option>\n <option value=\"852\">+852</option>\n <option value=\"853\">+853</option>\n <option value=\"855\">+855</option>\n <option value=\"856\">+856</option>\n <option value=\"880\">+880</option>\n <option value=\"886\">+886</option>\n <option value=\"960\">+960</option>\n <option value=\"961\">+961</option>\n <option value=\"962\">+962</option>\n <option value=\"963\">+963</option>\n <option value=\"964\">+964</option>\n <option value=\"965\">+965</option>\n <option value=\"966\">+966</option>\n <option value=\"967\">+967</option>\n <option value=\"968\">+968</option>\n <option value=\"970\">+970</option>\n <option value=\"971\">+971</option>\n <option value=\"972\">+972</option>\n <option value=\"973\">+973</option>\n <option value=\"974\">+974</option>\n <option value=\"975\">+975</option>\n <option value=\"976\">+976</option>\n </select>\n );\n}","class ErrorHandler {\n\n /**\n * @param {String} genericErrorText\n * @param {Element} wrapper\n */\n constructor(genericErrorText, wrapper)\n {\n this.genericErrorText = genericErrorText;\n this.wrapper = wrapper;\n }\n\n genericError() {\n this.clear();\n this.message(this.genericErrorText)\n }\n\n appendPreparedErrorMessageElement(errorMessageElement)\n {\n this._getMessageContainer().replaceWith(errorMessageElement);\n }\n\n /**\n * @param {String} text\n */\n message(text)\n {\n this._addMessage(text);\n\n this._scrollToMessages();\n }\n\n /**\n * @param {Array} texts\n */\n messages(texts)\n {\n texts.forEach(t => this._addMessage(t));\n\n this._scrollToMessages();\n }\n\n /**\n * @returns {String}\n */\n currentHtml()\n {\n const messageContainer = this._getMessageContainer();\n return messageContainer.outerHTML;\n }\n\n /**\n * @private\n * @param {String} text\n */\n _addMessage(text)\n {\n if(! typeof String || text.length === 0) {\n throw new Error('A new message text must be a non-empty string.');\n }\n\n const messageContainer = this._getMessageContainer();\n\n let messageNode = this._prepareMessageElement(text);\n messageContainer.appendChild(messageNode);\n }\n\n /**\n * @private\n */\n _scrollToMessages()\n {\n jQuery.scroll_to_notices(jQuery('.woocommerce-error'));\n }\n\n /**\n * @private\n */\n _getMessageContainer()\n {\n let messageContainer = document.querySelector('ul.woocommerce-error');\n if (messageContainer === null) {\n messageContainer = document.createElement('ul');\n messageContainer.setAttribute('class', 'woocommerce-error');\n messageContainer.setAttribute('role', 'alert');\n jQuery(this.wrapper).prepend(messageContainer);\n }\n return messageContainer;\n }\n\n /**\n * @private\n */\n _prepareMessageElement(message)\n {\n const li = document.createElement('li');\n li.innerHTML = message;\n\n return li;\n }\n\n clear()\n {\n jQuery( '.woocommerce-error, .woocommerce-message' ).remove();\n }\n}\n\nexport default ErrorHandler;","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"element\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { useEffect, useState } from '@wordpress/element';\nimport ErrorHandler from './utils/ErrorHandler';\nimport PhonePrefix from \"./components/phone-prefix\";\n\n\nconst settings = window.wc.wcSettings.getSetting(\"payshop_mbway_data\", {});\nconst label = window.wp.htmlEntities.decodeEntities(settings.title);\nconst icon = settings.icon;\n\nconst Content = ( props ) => {\n\tconst { eventRegistration, emitResponse } = props;\n\tconst { onPaymentSetup, onCheckoutFail } = eventRegistration;\n\n const [prefix, setPrefix] = useState('+351');\n const [phone, setPhone] = useState('');\n const prefixRef = React.useRef(prefix);\n const phoneRef = React.useRef(phone);\n\n\tfunction prefixChange(e) {\n prefixRef.current = e.target.value;\n setPrefix(e.target.value);\n }\n\n function phoneChange(e) {\n phoneRef.current = e.target.value;\n setPhone(e.target.value);\n }\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = onPaymentSetup( async () => {\n\t\t\tconst phone = phoneRef.current;\n\t\t\tconst prefix = prefixRef.current;\n\n\t\t\tif ( phone !== '' && prefix !== '' ) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: emitResponse.responseTypes.SUCCESS,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tpaymentMethodData: {\n\t\t\t\t\t\t\tprefix,\n\t\t\t\t\t\t\tphone,\n\t\t\t\t\t\t\tpayshop_mbway_nonce: settings.nonce\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: emitResponse.responseTypes.ERROR,\n\t\t\t\tmessage: settings.error_message,\n\t\t\t};\n\t\t} );\n\n\t\tonCheckoutFail(async (paymentResponse) => {\n\t\t\t// Extract error message from paymentResponse object\n\t\t\tconst errorMessage = paymentResponse.processingResponse.paymentDetails.errorMessage ?? '';\n\t\t \n\t\t\tlet errorHandler = new ErrorHandler(\n 'Default message',\n document.querySelector('.woocommerce-notices-wrapper')\n );\n\n errorHandler.clear();\n errorHandler.message(errorMessage);\n });\n\n\t\t// Unsubscribes when this component is unmounted.\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, [\n\t\temitResponse.responseTypes.ERROR,\n\t\temitResponse.responseTypes.SUCCESS,\n\t\tonPaymentSetup,\n\t] );\n\n\treturn <fieldset id=\"wc-payshop_card-cc-form\" className=\"wc-credit-card-form wc-payment-form\">\n <p className=\"form-row form-row-wide woocommerce-validated\" style={{display: \"flex\"}}>\n\t\t\t\t\t<PhonePrefix onChange={prefixChange} />\n <input value={phone} onChange={phoneChange} id=\"id-phone-number\" placeholder=\"Número Telemóvel\" className=\"input-text wc-credit-card-form-card-number\" inputmode=\"text\" autocorrect=\"no\" autocapitalize=\"no\" spellcheck=\"no\" type=\"text\" data-checkout=\"wbwayNumber\" name=\"phone\" maxlength=\"19\" required style={{flexGrow: \"1\"}} />\n </p>\n </fieldset>;\n};\n\nconst Block_Gateway = {\n name: \"payshop_mbway\",\n label: <div style={{display: \"flex\", alignItems: \"center\"}}>\n <span>{label}</span>\n <img src={icon} style={{marginLeft: \"10px\"}} />\n </div>,\n content: <Content />,\n edit: <div>{label}</div>,\n canMakePayment: () => true,\n ariaLabel: label,\n supports: {\n features: settings.supports,\n },\n};\n\nwindow.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);"],"names":["PhonePrefix","props","createElement","class","name","className","required","style","width","paddingLeft","value","selected","ErrorHandler","constructor","genericErrorText","wrapper","genericError","clear","message","appendPreparedErrorMessageElement","errorMessageElement","_getMessageContainer","replaceWith","text","_addMessage","_scrollToMessages","messages","texts","forEach","t","currentHtml","messageContainer","outerHTML","String","length","Error","messageNode","_prepareMessageElement","appendChild","jQuery","scroll_to_notices","document","querySelector","setAttribute","prepend","li","innerHTML","remove","useEffect","useState","settings","window","wc","wcSettings","getSetting","label","wp","htmlEntities","decodeEntities","title","icon","Content","eventRegistration","emitResponse","onPaymentSetup","onCheckoutFail","prefix","setPrefix","phone","setPhone","prefixRef","React","useRef","phoneRef","prefixChange","e","current","target","phoneChange","unsubscribe","type","responseTypes","SUCCESS","meta","paymentMethodData","payshop_mbway_nonce","nonce","ERROR","error_message","paymentResponse","_paymentResponse$proc","errorMessage","processingResponse","paymentDetails","errorHandler","id","display","onChange","placeholder","inputmode","autocorrect","autocapitalize","spellcheck","maxlength","flexGrow","Block_Gateway","alignItems","src","marginLeft","content","edit","canMakePayment","ariaLabel","supports","features","wcBlocksRegistry","registerPaymentMethod"],"sourceRoot":""}1 {"version":3,"file":"mbway.js","mappings":";;;;;;;;;;;;;;;;;AAAe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACvC,OACIC,oDAAA;IAAQC,KAAK,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAAA,GAAKH,KAAK;IAAEI,SAAS,EAAC,4CAA4C;IAACC,QAAQ;IAACC,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAK;EAAE,GACvJP,oDAAA;IAAQQ,KAAK,EAAC;EAAG,GAAC,IAAU,CAAC,EAC7BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC,KAAK;IAACC,QAAQ;EAAA,GAAC,MAAY,CAAC,EAC1CT,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EA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","sources":["webpack://payshop-blocks/./src/components/phone-prefix.js","webpack://payshop-blocks/./src/utils/ErrorHandler.js","webpack://payshop-blocks/external window \"React\"","webpack://payshop-blocks/external window [\"wp\",\"element\"]","webpack://payshop-blocks/webpack/bootstrap","webpack://payshop-blocks/webpack/runtime/compat get default export","webpack://payshop-blocks/webpack/runtime/define property getters","webpack://payshop-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://payshop-blocks/webpack/runtime/make namespace object","webpack://payshop-blocks/./src/mbway.js"],"sourcesContent":["export default function PhonePrefix(props) {\n return (\n <select class=\"prefix\" name=\"prefix\" {...props} className=\"input-text wc-credit-card-form-card-number\" required style={{width: \"80px\", paddingLeft: \"3px\"}}>\n <option value=\"1\">+1</option>\n <option value=\"20\">+20</option>\n <option value=\"30\">+30</option>\n <option value=\"31\">+31</option>\n <option value=\"32\">+32</option>\n <option value=\"33\">+33</option>\n <option value=\"34\">+34</option>\n <option value=\"36\">+36</option>\n <option value=\"39\">+39</option>\n <option value=\"40\">+40</option>\n <option value=\"41\">+41</option>\n <option value=\"43\">+43</option>\n <option value=\"44\">+44</option>\n <option value=\"45\">+45</option>\n <option value=\"46\">+46</option>\n <option value=\"47\">+47</option>\n <option value=\"48\">+48</option>\n <option value=\"49\">+49</option>\n <option value=\"51\">+51</option>\n <option value=\"52\">+52</option>\n <option value=\"53\">+53</option>\n <option value=\"54\">+54</option>\n <option value=\"55\">+55</option>\n <option value=\"56\">+56</option>\n <option value=\"57\">+57</option>\n <option value=\"58\">+58</option>\n <option value=\"60\">+60</option>\n <option value=\"61\">+61</option>\n <option value=\"62\">+62</option>\n <option value=\"63\">+63</option>\n <option value=\"64\">+64</option>\n <option value=\"65\">+65</option>\n <option value=\"66\">+66</option>\n <option value=\"81\">+81</option>\n <option value=\"82\">+82</option>\n <option value=\"84\">+84</option>\n <option value=\"86\">+86</option>\n <option value=\"90\">+90</option>\n <option value=\"91\">+91</option>\n <option value=\"92\">+92</option>\n <option value=\"93\">+93</option>\n <option value=\"94\">+94</option>\n <option value=\"95\">+95</option>\n <option value=\"98\">+98</option>\n <option value=\"211\">+211</option>\n <option value=\"212\">+212</option>\n <option value=\"213\">+213</option>\n <option value=\"216\">+216</option>\n <option value=\"218\">+218</option>\n <option value=\"220\">+220</option>\n <option value=\"221\">+221</option>\n <option value=\"222\">+222</option>\n <option value=\"223\">+223</option>\n <option value=\"224\">+224</option>\n <option value=\"225\">+225</option>\n <option value=\"226\">+226</option>\n <option value=\"227\">+227</option>\n <option value=\"228\">+228</option>\n <option value=\"229\">+229</option>\n <option value=\"230\">+230</option>\n <option value=\"231\">+231</option>\n <option value=\"232\">+232</option>\n <option value=\"233\">+233</option>\n <option value=\"234\">+234</option>\n <option value=\"235\">+235</option>\n <option value=\"236\">+236</option>\n <option value=\"237\">+237</option>\n <option value=\"238\">+238</option>\n <option value=\"239\">+239</option>\n <option value=\"240\">+240</option>\n <option value=\"241\">+241</option>\n <option value=\"242\">+242</option>\n <option value=\"243\">+243</option>\n <option value=\"244\">+244</option>\n <option value=\"245\">+245</option>\n <option value=\"246\">+246</option>\n <option value=\"248\">+248</option>\n <option value=\"249\">+249</option>\n <option value=\"250\">+250</option>\n <option value=\"251\">+251</option>\n <option value=\"252\">+252</option>\n <option value=\"253\">+253</option>\n <option value=\"254\">+254</option>\n <option value=\"255\">+255</option>\n <option value=\"256\">+256</option>\n <option value=\"257\">+257</option>\n <option value=\"258\">+258</option>\n <option value=\"260\">+260</option>\n <option value=\"261\">+261</option>\n <option value=\"262\">+262</option>\n <option value=\"263\">+263</option>\n <option value=\"264\">+264</option>\n <option value=\"265\">+265</option>\n <option value=\"266\">+266</option>\n <option value=\"267\">+267</option>\n <option value=\"268\">+268</option>\n <option value=\"269\">+269</option>\n <option value=\"290\">+290</option>\n <option value=\"291\">+291</option>\n <option value=\"297\">+297</option>\n <option value=\"298\">+298</option>\n <option value=\"299\">+299</option>\n <option value=\"350\">+350</option>\n <option value=\"351\" selected>+351</option>\n <option value=\"352\">+352</option>\n <option value=\"353\">+353</option>\n <option value=\"354\">+354</option>\n <option value=\"355\">+355</option>\n <option value=\"356\">+356</option>\n <option value=\"357\">+357</option>\n <option value=\"358\">+358</option>\n <option value=\"359\">+359</option>\n <option value=\"370\">+370</option>\n <option value=\"371\">+371</option>\n <option value=\"372\">+372</option>\n <option value=\"373\">+373</option>\n <option value=\"374\">+374</option>\n <option value=\"375\">+375</option>\n <option value=\"376\">+376</option>\n <option value=\"377\">+377</option>\n <option value=\"378\">+378</option>\n <option value=\"379\">+379</option>\n <option value=\"380\">+380</option>\n <option value=\"381\">+381</option>\n <option value=\"382\">+382</option>\n <option value=\"383\">+383</option>\n <option value=\"385\">+385</option>\n <option value=\"386\">+386</option>\n <option value=\"387\">+387</option>\n <option value=\"389\">+389</option>\n <option value=\"420\">+420</option>\n <option value=\"421\">+421</option>\n <option value=\"423\">+423</option>\n <option value=\"500\">+500</option>\n <option value=\"501\">+501</option>\n <option value=\"502\">+502</option>\n <option value=\"503\">+503</option>\n <option value=\"504\">+504</option>\n <option value=\"505\">+505</option>\n <option value=\"506\">+506</option>\n <option value=\"507\">+507</option>\n <option value=\"508\">+508</option>\n <option value=\"509\">+509</option>\n <option value=\"590\">+590</option>\n <option value=\"591\">+591</option>\n <option value=\"592\">+592</option>\n <option value=\"593\">+593</option>\n <option value=\"594\">+594</option>\n <option value=\"595\">+595</option>\n <option value=\"596\">+596</option>\n <option value=\"597\">+597</option>\n <option value=\"598\">+598</option>\n <option value=\"599\">+599</option>\n <option value=\"670\">+670</option>\n <option value=\"672\">+672</option>\n <option value=\"673\">+673</option>\n <option value=\"674\">+674</option>\n <option value=\"675\">+675</option>\n <option value=\"676\">+676</option>\n <option value=\"677\">+677</option>\n <option value=\"678\">+678</option>\n <option value=\"679\">+679</option>\n <option value=\"680\">+680</option>\n <option value=\"681\">+681</option>\n <option value=\"682\">+682</option>\n <option value=\"683\">+683</option>\n <option value=\"685\">+685</option>\n <option value=\"686\">+686</option>\n <option value=\"687\">+687</option>\n <option value=\"688\">+688</option>\n <option value=\"689\">+689</option>\n <option value=\"690\">+690</option>\n <option value=\"691\">+691</option>\n <option value=\"692\">+692</option>\n <option value=\"850\">+850</option>\n <option value=\"852\">+852</option>\n <option value=\"853\">+853</option>\n <option value=\"855\">+855</option>\n <option value=\"856\">+856</option>\n <option value=\"880\">+880</option>\n <option value=\"886\">+886</option>\n <option value=\"960\">+960</option>\n <option value=\"961\">+961</option>\n <option value=\"962\">+962</option>\n <option value=\"963\">+963</option>\n <option value=\"964\">+964</option>\n <option value=\"965\">+965</option>\n <option value=\"966\">+966</option>\n <option value=\"967\">+967</option>\n <option value=\"968\">+968</option>\n <option value=\"970\">+970</option>\n <option value=\"971\">+971</option>\n <option value=\"972\">+972</option>\n <option value=\"973\">+973</option>\n <option value=\"974\">+974</option>\n <option value=\"975\">+975</option>\n <option value=\"976\">+976</option>\n </select>\n );\n}","class ErrorHandler {\n\n /**\n * @param {String} genericErrorText\n * @param {Element} wrapper\n */\n constructor(genericErrorText, wrapper)\n {\n this.genericErrorText = genericErrorText;\n this.wrapper = wrapper;\n }\n\n genericError() {\n this.clear();\n this.message(this.genericErrorText)\n }\n\n appendPreparedErrorMessageElement(errorMessageElement)\n {\n this._getMessageContainer().replaceWith(errorMessageElement);\n }\n\n /**\n * @param {String} text\n */\n message(text)\n {\n this._addMessage(text);\n\n this._scrollToMessages();\n }\n\n /**\n * @param {Array} texts\n */\n messages(texts)\n {\n texts.forEach(t => this._addMessage(t));\n\n this._scrollToMessages();\n }\n\n /**\n * @returns {String}\n */\n currentHtml()\n {\n const messageContainer = this._getMessageContainer();\n return messageContainer.outerHTML;\n }\n\n /**\n * @private\n * @param {String} text\n */\n _addMessage(text)\n {\n if(! typeof String || text.length === 0) {\n throw new Error('A new message text must be a non-empty string.');\n }\n\n const messageContainer = this._getMessageContainer();\n\n let messageNode = this._prepareMessageElement(text);\n messageContainer.appendChild(messageNode);\n }\n\n /**\n * @private\n */\n _scrollToMessages()\n {\n jQuery.scroll_to_notices(jQuery('.woocommerce-error'));\n }\n\n /**\n * @private\n */\n _getMessageContainer()\n {\n let messageContainer = document.querySelector('ul.woocommerce-error');\n if (messageContainer === null) {\n messageContainer = document.createElement('ul');\n messageContainer.setAttribute('class', 'woocommerce-error');\n messageContainer.setAttribute('role', 'alert');\n jQuery(this.wrapper).prepend(messageContainer);\n }\n return messageContainer;\n }\n\n /**\n * @private\n */\n _prepareMessageElement(message)\n {\n const li = document.createElement('li');\n li.innerHTML = message;\n\n return li;\n }\n\n clear()\n {\n jQuery( '.woocommerce-error, .woocommerce-message' ).remove();\n }\n}\n\nexport default ErrorHandler;","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"element\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { useEffect, useState } from '@wordpress/element';\nimport ErrorHandler from './utils/ErrorHandler';\nimport PhonePrefix from \"./components/phone-prefix\";\n\n\nconst settings = window.wc.wcSettings.getSetting(\"payshop_mbway_data\", {});\nconst label = window.wp.htmlEntities.decodeEntities(settings.title);\nconst icon = settings.icon;\n\nconst Content = ( props ) => {\n\tconst { eventRegistration, emitResponse } = props;\n\tconst { onPaymentSetup, onCheckoutFail } = eventRegistration;\n\n const [prefix, setPrefix] = useState('+351');\n const [phone, setPhone] = useState('');\n const prefixRef = React.useRef(prefix);\n const phoneRef = React.useRef(phone);\n\n\tfunction prefixChange(e) {\n prefixRef.current = e.target.value;\n setPrefix(e.target.value);\n }\n\n function phoneChange(e) {\n const value = e.target.value.replace(/\\D/g, '').slice(0, 9);\n phoneRef.current = value;\n setPhone(value);\n }\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = onPaymentSetup( async () => {\n\t\t\tconst phone = phoneRef.current;\n\t\t\tconst prefix = prefixRef.current;\n\n\t\t\tif ( phone !== '' && prefix !== '' ) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: emitResponse.responseTypes.SUCCESS,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tpaymentMethodData: {\n\t\t\t\t\t\t\tprefix,\n\t\t\t\t\t\t\tphone,\n\t\t\t\t\t\t\tpayshop_mbway_nonce: settings.nonce\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: emitResponse.responseTypes.ERROR,\n\t\t\t\tmessage: settings.error_message,\n\t\t\t};\n\t\t} );\n\n\t\tonCheckoutFail(async (paymentResponse) => {\n\t\t\t// Extract error message from paymentResponse object\n\t\t\tconst errorMessage = paymentResponse.processingResponse.paymentDetails.errorMessage ?? '';\n\t\t \n\t\t\tlet errorHandler = new ErrorHandler(\n 'Default message',\n document.querySelector('.woocommerce-notices-wrapper')\n );\n\n errorHandler.clear();\n errorHandler.message(errorMessage);\n });\n\n\t\t// Unsubscribes when this component is unmounted.\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, [\n\t\temitResponse.responseTypes.ERROR,\n\t\temitResponse.responseTypes.SUCCESS,\n\t\tonPaymentSetup,\n\t] );\n\n\treturn <fieldset id=\"wc-payshop_card-cc-form\" className=\"wc-credit-card-form wc-payment-form\">\n <p className=\"form-row form-row-wide woocommerce-validated\" style={{display: \"flex\"}}>\n\t\t\t\t\t<PhonePrefix onChange={prefixChange} />\n <input value={phone.replace(/(\\d{3})(?=\\d)/g, '$1 ')} onChange={phoneChange} id=\"id-phone-number\" placeholder=\"Número Telemóvel\" className=\"input-text wc-credit-card-form-card-number\" inputmode=\"numeric\" autocorrect=\"no\" autocapitalize=\"no\" spellcheck=\"no\" type=\"text\" data-checkout=\"wbwayNumber\" name=\"phone\" maxlength=\"11\" required style={{flexGrow: \"1\"}} />\n </p>\n </fieldset>;\n};\n\nconst Block_Gateway = {\n name: \"payshop_mbway\",\n label: <div style={{display: \"flex\", alignItems: \"center\"}}>\n <span>{label}</span>\n <img src={icon} style={{marginLeft: \"10px\"}} />\n </div>,\n content: <Content />,\n edit: <div>{label}</div>,\n canMakePayment: () => true,\n ariaLabel: label,\n supports: {\n features: settings.supports,\n },\n};\n\nwindow.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);"],"names":["PhonePrefix","props","createElement","class","name","className","required","style","width","paddingLeft","value","selected","ErrorHandler","constructor","genericErrorText","wrapper","genericError","clear","message","appendPreparedErrorMessageElement","errorMessageElement","_getMessageContainer","replaceWith","text","_addMessage","_scrollToMessages","messages","texts","forEach","t","currentHtml","messageContainer","outerHTML","String","length","Error","messageNode","_prepareMessageElement","appendChild","jQuery","scroll_to_notices","document","querySelector","setAttribute","prepend","li","innerHTML","remove","useEffect","useState","settings","window","wc","wcSettings","getSetting","label","wp","htmlEntities","decodeEntities","title","icon","Content","eventRegistration","emitResponse","onPaymentSetup","onCheckoutFail","prefix","setPrefix","phone","setPhone","prefixRef","React","useRef","phoneRef","prefixChange","e","current","target","phoneChange","replace","slice","unsubscribe","type","responseTypes","SUCCESS","meta","paymentMethodData","payshop_mbway_nonce","nonce","ERROR","error_message","paymentResponse","_paymentResponse$proc","errorMessage","processingResponse","paymentDetails","errorHandler","id","display","onChange","placeholder","inputmode","autocorrect","autocapitalize","spellcheck","maxlength","flexGrow","Block_Gateway","alignItems","src","marginLeft","content","edit","canMakePayment","ariaLabel","supports","features","wcBlocksRegistry","registerPaymentMethod"],"sourceRoot":""} -
payshop-online-payments/trunk/templates/blocks/package.json
r3392166 r3605861 6 6 "scripts": { 7 7 "build": "wp-scripts build", 8 "start": "wp-scripts start ./src/card.js ./src/mbway.js ./src/payshop-reference.js ./src/multibanco-reference.js ./src/googlepay.js ./src/ applepay.js ./src/clicktopay.js ./src/paypal.js"8 "start": "wp-scripts start ./src/card.js ./src/mbway.js ./src/payshop-reference.js ./src/multibanco-reference.js ./src/googlepay.js ./src/clicktopay.js ./src/paypal.js" 9 9 }, 10 10 "author": "", -
payshop-online-payments/trunk/templates/blocks/src/mbway.js
r3392166 r3605861 23 23 24 24 function phoneChange(e) { 25 phoneRef.current = e.target.value; 26 setPhone(e.target.value); 25 const value = e.target.value.replace(/\D/g, '').slice(0, 9); 26 phoneRef.current = value; 27 setPhone(value); 27 28 } 28 29 … … 77 78 <p className="form-row form-row-wide woocommerce-validated" style={{display: "flex"}}> 78 79 <PhonePrefix onChange={prefixChange} /> 79 <input value={phone } onChange={phoneChange} id="id-phone-number" placeholder="Número Telemóvel" className="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="19" required style={{flexGrow: "1"}} />80 <input value={phone.replace(/(\d{3})(?=\d)/g, '$1 ')} onChange={phoneChange} id="id-phone-number" placeholder="Número Telemóvel" className="input-text wc-credit-card-form-card-number" inputmode="numeric" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="11" required style={{flexGrow: "1"}} /> 80 81 </p> 81 82 </fieldset>; -
payshop-online-payments/trunk/templates/css/references-dialog.css
r3392166 r3605861 15 15 left: 50%; 16 16 transform: translate(-50%, -50%); 17 width: 400px; 17 width: 90%; 18 max-width: 400px; 18 19 height: 90%; 19 20 background: #fff; … … 39 40 display: none; 40 41 } 42 43 /* Direct display styles */ 44 .payshop-references-container { 45 box-sizing: border-box; 46 border: 2px solid #0055b8; /* Multibanco blue as default */ 47 border-radius: 8px; 48 padding: 20px; 49 margin: 20px 0; 50 background-color: #f9f9f9; 51 max-width: 100%; 52 width: 100%; 53 } 54 55 .payshop-references-header { 56 display: flex; 57 align-items: center; 58 flex-wrap: wrap; 59 margin-bottom: 20px; 60 border-bottom: 1px solid #ddd; 61 padding-bottom: 10px; 62 } 63 64 .payshop-references-header img { 65 height: 40px; 66 margin-right: 15px; 67 flex-shrink: 0; 68 } 69 70 .payshop-references-header h3 { 71 margin: 0; 72 font-size: 1.25em; 73 color: #333; 74 word-break: break-word; 75 } 76 77 .payshop-reference-item { 78 display: flex; 79 justify-content: space-between; 80 padding: 10px 0; 81 border-bottom: 1px dashed #eee; 82 gap: 10px; 83 } 84 85 .payshop-reference-item:last-child { 86 border-bottom: none; 87 } 88 89 .payshop-reference-item .label { 90 font-weight: bold; 91 color: #666; 92 flex-shrink: 0; 93 } 94 95 .payshop-reference-item .value { 96 font-weight: 800; 97 font-size: 1.1em; 98 color: #000; 99 word-break: break-all; 100 text-align: right; 101 } 102 103 .payshop-references-footer { 104 margin-top: 15px; 105 font-size: 0.9em; 106 color: #777; 107 text-align: center; 108 } 109 110 @media (max-width: 480px) { 111 .payshop-reference-item { 112 flex-direction: column; 113 align-items: flex-start; 114 gap: 5px; 115 } 116 117 .payshop-reference-item .value { 118 margin-top: 0; 119 text-align: left; 120 } 121 } 122 "" -
payshop-online-payments/trunk/templates/views/front/mbway.php
r3392166 r3605861 15 15 <div style="display: flex;"> 16 16 <?php include ('partials/phone-prefix.php')?> 17 <input id="id-phone-number" class="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength=" 19" required style="flex-grow: 1;">17 <input id="id-phone-number" class="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="9" required style="flex-grow: 1;"> 18 18 </div> 19 19 <small id="payshop-error-phone-number" class="payshop-erro-form" data-main="#id-phone-number" style="display: none; color: #e81814;"> -
payshop-online-payments/trunk/translations/payshop-online-payments-pt_PT.po
r3471786 r3605861 5 5 "Project-Id-Version: Plugins - Payshop Online Payments - Stable (latest release)\n" 6 6 "POT-Creation-Date: \n" 7 "PO-Revision-Date: 2026-0 2-28 16:22-0300\n"7 "PO-Revision-Date: 2026-05-16 15:58-0300\n" 8 8 "Last-Translator: \n" 9 9 "Language-Team: \n" … … 536 536 msgstr "Erro Payshop: Verifique as credenciais de produção nas definições do Payshop." 537 537 538 #: includes/module/alerts/PayshopCredentialsAlert.php:30 539 msgid "Payshop Error: Check credentials on payshop settings." 540 msgstr "Erro Payshop: Verifique as credenciais nas definições do Payshop." 541 538 542 #: includes/module/actions/PayshopUpdateOrder.php:97 539 543 msgid "Payment status updated" … … 618 622 #: controllers/front/PayshopProcessFailedRedirect.php:43 619 623 #: includes/module/events/PayshopPaymentRefused.php:39 620 #: includes/module/schedules/PayshopCancelOrderSchedule.php:32621 624 msgid "Payment refused" 622 625 msgstr "O pagamento foi rejeitado" 626 627 #: includes/module/events/PayshopPaymentReferenceExpired.php:39 628 msgid "Payment reference expired" 629 msgstr "A referência de pagamento expirou" 630 631 #: includes/module/events/PayshopPaymentRefunded.php:57 632 msgid "Refund processed by Payshop gateway" 633 msgstr "Reembolso processado pelo gateway Payshop" 634 635 #: includes/module/events/PayshopPaymentRefunded.php:69 636 msgid "Refunded %s" 637 msgstr "Reembolsado %s" 623 638 624 639 #: controllers/front/PayshopProcessFailedRedirect.php:34 … … 679 694 msgid "Payshop Online Payments" 680 695 msgstr "Payshop Online Payments" 696 697 #: includes/module/settings/PayshopCredentialsSettings.php:107 698 msgid "Enable Apple Pay" 699 msgstr "Habilitar Apple Pay" 700 701 #: includes/module/settings/PayshopCredentialsSettings.php:109 702 msgid "If enabled, the option to pay with Apple Pay will be shown alongside credit card and the customer will be able to see the Apple Pay button on the same credit card payment page. Attention, this feature must be enabled in your Payshop account." 703 msgstr "Se habilitado a opção de pagar com Apple Pay será mostrada junto com o cartão de crédito e o cliente poderá ver o botão do Apple Pay na mesma página de pagamento com cartão de crédito. Atenção, esse recurso precisa estar habilitado na sua conta do Payshop" 704 705 #: includes/module/payments/PayshopCard.php:40 706 msgid "Payshop Card and Apple Pay" 707 msgstr "Cartão Payshop e Apple Pay" 708 709 #: includes/module/payments/PayshopCard.php:41 710 msgid "Debit, credit card and Apple Pay on Payshop Online Payments" 711 msgstr "Cartão de crédito, débito e Apple Pay no Payshop Online Payments" 712 713 #: includes/module/payments/PayshopCard.php:42 714 msgid "Credit or debit card / Apple Pay" 715 msgstr "Cartão de crédito ou débito / Apple Pay" 716 717 #: includes/module/payments/PayshopCard.php:43 718 msgid "Pay with your card or Apple Pay via Payshop Online Payments." 719 msgstr "Pague com seu cartão ou Apple Pay via Payshop Online Payments." 720 721 #: includes/module/settings/PayshopCredentialsSettings.php:121 722 msgid "The status selected here will be the default order status when a payment is refused. Note: only the \"failed\" status will allow the customer to retry the payment." 723 msgstr "O status selecionado aqui será o status padrão da ordem quando o pagamento for recusado. Observação: apenas o status falhado vai dar a opção do cliente tentar efetuar novamente o pagamento." 724 725 #: includes/module/settings/PayshopCredentialsSettings.php:119 726 msgid "Refused Payment Status" 727 msgstr "Status Pagamento Recusado" 728 729 #: includes/module/settings/PayshopCredentialsSettings.php:115 730 msgid "Show references directly" 731 msgstr "Mostrar referências diretamente" 732 733 #: includes/module/settings/PayshopCredentialsSettings.php:117 734 msgid "If enabled, the payment reference data (Payshop Reference and Multibanco) will be shown directly on the thank you page instead of a popup." 735 msgstr "Se ativado, os dados de referência de pagamento (Payshop Referência e Multibanco) serão mostrados diretamente na página de obrigado em vez de um popup." 736 737 #: templates/views/front/references-direct.php:11 738 msgid "Multibanco Payment Details" 739 msgstr "Detalhes do Pagamento Multibanco" 740 741 #: templates/views/front/references-direct.php:14 742 msgid "Payshop Payment Details" 743 msgstr "Detalhes do Pagamento Payshop" 744 745 #: templates/views/front/references-direct.php:26 746 msgid "Entity:" 747 msgstr "Entidade:" 748 749 #: templates/views/front/references-direct.php:31 750 msgid "Reference:" 751 msgstr "Referência:" 752 753 #: templates/views/front/references-direct.php:35 754 msgid "Amount:" 755 msgstr "Montante:" 756 757 #: templates/views/front/references-direct.php:40 758 msgid "Deadline:" 759 msgstr "Validade:" 760 761 #: templates/views/front/references-direct.php:47 762 msgid "Please use the details above to complete your payment." 763 msgstr "Por favor, utilize os dados acima para completar o seu pagamento." 764 765 msgid "Other Settings" 766 msgstr "Outras Configurações" 767 768 #: includes/module/settings/PayshopOthersSettings.php:32 769 msgid "Reference expiration date" 770 msgstr "Prazo de expiração da Referência" 771 772 #: includes/module/settings/PayshopOthersSettings.php:34 773 msgid "Expiration period of Payshop and Multibanco references in days from the day of creation" 774 msgstr "Prazo de expiração das referencias Payshop e Multibanco em dias a partir do dia de criação" 775 776 msgid "Checkout ID" 777 msgstr "Checkout ID" 778 779 msgid "Get your checkout id in the Payshop backoffice. Select the Production environment, then go to settings > checkouts > copy the checkout id." 780 msgstr "Obtenha seu checkout id no backoffice da payshop. Selecione o ambiente Produção, em seguida vá em configurações > checkouts > copie o checkout id." 781 782 msgid "Apple Pay was disabled because the Checkout ID is required." 783 msgstr "O Apple Pay foi desativado porque o Checkout ID é obrigatório." 784 785 msgid "If enabled, the option to pay with Apple Pay will be shown alongside credit card and the customer will be able to see the Apple Pay button on the same credit card payment page. Attention, this feature must be enabled in your Payshop account. Note: The Apple Pay button only appears in production environment, using Safari on Macs and iPhones." 786 msgstr "Se ativado, a opção de pagar com Apple Pay será exibida ao lado do cartão de crédito e o cliente poderá ver o botão Apple Pay na mesma página de pagamento com cartão de crédito. Atenção, este recurso deve estar ativado na sua conta Payshop. Nota: O botão Apple Pay só aparece em ambiente de produção, usando Safari em Macs e iPhones." 787 788 #: includes/module/integrations/PayshopApgSms.php 789 msgid "Ent." 790 msgstr "Ent." 791 792 #: includes/module/integrations/PayshopApgSms.php 793 msgid "Ref." 794 msgstr "Ref." 795 796 #: includes/module/integrations/PayshopApgSms.php 797 msgid "Val." 798 msgstr "Val." 799 800 #: includes/module/integrations/PayshopApgSms.php 801 msgid "Valid until" 802 msgstr "Válida até"
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)