@payrails/web-sdk 5.47.0 → 5.48.0-RC-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
- !function(){"use strict";function e(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}function t(e,t,i,n){return new(i||(i=Promise))(function(s,o){function r(e){try{l(n.next(e))}catch(e){o(e)}}function a(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(r,a)}l((n=n.apply(e,t||[])).next())})}function i(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}function n(e,t,i,n,s){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?s.call(e,i):s?s.value=i:t.set(e,i),i}"function"==typeof SuppressedError&&SuppressedError;var s={};!function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var t=(e=>(e.PAYRAILS_CLIENT_CONFIG_MALFORMED="payrails:client:init.config_malformed",e.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT="payrails:client:collectContainer.unmountable",e.PAYRAILS_CLIENT_UI_ELEMENT_MISSING="payrails:client:mount.ui_element_missing",e.PAYRAILS_CLIENT_PARENT_ELEMENT_MISSING="payrails:client:mount.parent_element_missing",e.PAYRAILS_CLIENT_SUBELEMENTS_RENDER_ERROR="payrails:client:mount.subelements_render_error",e.PAYRAILS_CLIENT_CARD_FORM_MISSING="payrails:client:pay.card_form_missing",e.PAYRAILS_CLIENT_GPAY_LOADING_ERROR="payrails:client:mount.gpay_loading_error",e.PAYRAILS_CLIENT_GPAY_CONFIG_MISSING="payrails:client:init.gpay_config_missing",e.PAYRAILS_CLIENT_APPLEPAY_LOADING_ERROR="payrails:client:mount.applepay_loading_error",e.PAYRAILS_CLIENT_APPLEPAY_CONFIG_MISSING="payrails:client:init.applepay_config_missing",e.PAYRAILS_CLIENT_APPLEPAY_START_PAYMENT_SESSION_ERROR="payrails:client:init.applepay_start_payment_session_error",e.PAYRAILS_CLIENT_APPLEPAY_MERCHANT_VALIDATION_FAILED="payrails:client:init.applepay_merchant_validation_failed",e.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR="payrails:client:init.paypal_loading_error",e.PAYRAILS_CLIENT_PAYPAL_CONFIG_MISSING="payrails:client:init.paypal_config_missing",e.PAYRAILS_CLIENT_PAYPAL_ORDER_CREATION="payrails:client:init.paypal_order_creation",e.PAYRAILS_CLIENT_PAYPAL_BUTTON_MOUNT="payrails:client:mount.paypal_button_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAY_ERROR="payrails:client:payment_executor.pay_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAYOUT_ERROR="payrails:client:payment_executor.payout_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_3DS_ERROR="payrails:client:payment_executor.3ds_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_CONFIRM_ERROR="payrails:client:payment_executor.confirm_error",e.PAYRAILS_API_UNAUTHORIZED="payrails:api:unauthorized",e.PAYRAILS_API_TOO_MANY_REQUESTS="payrails:api:too_many_requests",e.PAYRAILS_API_UNSUCCESSFUL="payrails:api:unsuccessful",e.PAYRAILS_API_AUTHORIZATION_NOT_REQUESTED="payrails:api:authorization_not_requested",e.PAYRAILS_API_AUTHENTICATION_ERROR="payrails:api:request_authentication_error",e.PAYRAILS_API_AUTHORIZATION_ERROR="payrails:api:request_authorization_error",e.PAYRAILS_API_PAYOUT_ERROR="payrails:api:request_payout_error",e.PAYRAILS_CLIENT_API_URL_NOT_FOUND="payrails:client:api_url_not_found",e.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND="payrails:client:workflow_execution_not_found",e.PAYRAILS_CARD_FORM_CREATION_FAILED="payrails:card_form:iframe_creation_failed",e.PAYRAILS_CARD_FORM_IFRAME_URL_MISSING="payrails:card_form:iframe_url_missing",e.PAYRAILS_CLIENT_UNKNOWN_ERROR="payrails:client:unknown",e.PAYRAILS_API_UNKNOWN_ERROR="payrails:api:unknown",e.PAYRAILS_CLIENT_SESSION_REFRESH_FAILED="payrails:client:session_refresh_failed",e.PAYRAILS_CLIENT_CALLBACK_FAILED="payrails:client:callback_failed",e.PAYRAILS_API_BIN_LOOKUP_FAILED="payrails:api:bin_lookup_failed",e.PAYRAILS_CARD_FORM_ELEMENT_NOT_MOUNTED_IN_ELEMENT_MATCH_RULE="payrails.card_form.element_not_mounted_in_element_match_rule",e.PAYRAILS_CARD_FORM_REQUIRED_PARAMS_NOT_PROVIDED="payrails.card_form.required_params_not_provided",e.PAYRAILS_CARD_FORM_CLIENT_CONNECTION="payrails.card_form.client_connection",e.PAYRAILS_CARD_FORM_IFRAME_NOT_FOUND="payrails.card_form.iframe_not_found",e.PAYRAILS_CARD_FORM_IFRAME_LOADING_ERROR="payrails.card_form.iframe_loading_error",e.PAYRAILS_CARD_FORM_CSP_ERROR="payrails.card_form.iframe_csp_error",e.PAYRAILS_CARD_FORM_COMPLETE_AND_VALID_INPUTS="payrails.card_form.complete_and_valid_inputs",e.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED="payrails.card_form.collect_element_not_mounted",e.PAYRAILS_CLIENT_GENERIC_REDIRECT_MISSING_REDIRECT_LINK="payrails:client:generic_redirect.missing.redirect_link",e.PAYRAILS_CLIENT_COLLECT_CREATION_FAILED="payrails:client:collect_container.creation.failed",e.PAYRAILS_CLIENT_COLLECT_EMPTY_CONTAINER_TYPE="payrails:client:collect_container.empty_container_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_CONTAINER_TYPE="payrails:client:collect_container.invalid_container_type",e.PAYRAILS_CLIENT_COLLECT_OPERATION_FAILED="payrails:client:collect_container.collect_operation_failed",e.PAYRAILS_CLIENT_VAULT_CONNECTION_ERROR="payrails:client:vault.connection_error",e.PAYRAILS_CLIENT_VAULT_NETWORK_ERROR="payrails:client:vault.network.error",e.PAYRAILS_CLIENT_COLLECT_UNIQUE_ELEMENT_NAME="payrails:client:collect_container.unique_element_name",e.PAYRAILS_CLIENT_COLLECT_INVALID_TOKENS="payrails:client:collect_container.invalid_tokens",e.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_IN_MOUNT="payrails:client:collect_container.empty_element",e.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER="payrails:client:collect_container.invalid_event_listener",e.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER="payrails:client:collect_container.missing_event_handler",e.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER="payrails:client:collect_container.invalid_event_handler",e.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_TYPE="payrails:client:collect_container.invalid_event_type",e.PAYRAILS_CLIENT_COLLECT_TABLE_NAME_MISSING="payrails:client:collect_container.table_name_missing",e.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE="payrails:client:collect_container.empty_table",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_NAME="payrails:client:collect_container.invalid_table_name",e.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN="payrails:client:collect_container.missing_column",e.PAYRAILS_CLIENT_COLLECT_EMPTY_COLUMN="payrails:client:collect_container.empty_column",e.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN="payrails:client:collect_container.invalid_column",e.PAYRAILS_CLIENT_COLLECT_EMPTY_SKYFLOW_ID="payrails:client:collect_container.empty_skyflow_id",e.PAYRAILS_CLIENT_COLLECT_INVALID_SKYFLOW_ID="payrails:client:collect_container.invalid_skyflow_id",e.PAYRAILS_CLIENT_COLLECT_MISMATCH_ELEMENT_COUNT_LAYOUT_SUM="payrails:client:collect_container.mismatch_element_count_layout_sum",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_SELECTOR="payrails:client:collect_container.invalid_element_selector",e.PAYRAILS_CLIENT_COLLECT_DUPLICATE_ELEMENT="payrails:client:collect_container.duplicate_element",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_TYPE="payrails:client:collect_container.invalid_element_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATIONS_TYPE="payrails:client:collect_container.invalid_validations_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_TYPE="payrails:client:collect_container.missing_validation_rule_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_TYPE="payrails:client:collect_container.invalid_validation_rule_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_PARAMS="payrails:client:collect_container.missing_validation_rule_params",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_PARAMS="payrails:client:collect_container.invalid_validation_rule_params",e.PAYRAILS_CLIENT_COLLECT_MISSING_REGEX_IN_REGEX_MATCH_RULE="payrails:client:collect_container.missing_regex_in_regex_match_rule",e.PAYRAILS_CLIENT_COLLECT_MISSING_MIN_AND_MAX_IN_LENGTH_MATCH_RULE="payrails:client:collect_container.missing_min_and_max_in_length_match_rule",e.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_IN_ELEMENT_MATCH_RULE="payrails:client:collect_container.missing_element_in_element_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_IN_ELEMENT_MATCH_RULE="payrails:client:collect_container.invalid_element_in_element_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_REGEX_IN_REGEX_MATCH_RULE="payrails:client:collect_container.invalid_regex_in_regex_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_BOOLEAN_OPTIONS="payrails:client:collect_container.invalid_boolean_options",e.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_TYPE="payrails:client:collect_container.missing_element_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_TYPE="payrails:client:collect_container.empty_element_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_TYPE="payrails:client:collect_container.invalid_upsert_option_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_UPSERT_OPTIONS_ARRAY="payrails:client:collect_container.empty_upsert_options_array",e.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_OBJECT_TYPE="payrails:client:collect_container.invalid_upsert_option_object_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_UPSERT_OPTION="payrails:client:collect_container.missing_table_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_UPSERT_OPTION="payrails:client:collect_container.invalid_table_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN_IN_UPSERT_OPTION="payrails:client:collect_container.missing_column_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN_IN_UPSERT_OPTION="payrails:client:collect_container.invalid_column_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_CONTAINER_OPTIONS="payrails:client:collect_container.missing_composable_container_options",e.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_CONTAINER_OPTIONS="payrails:client:collect_container.invalid_composable_container_options",e.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_LAYOUT_KEY="payrails:client:collect_container.missing_composable_layout_key",e.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE="payrails:client:collect_container.invalid_composable_layout_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_COMPOSABLE_LAYOUT_ARRAY="payrails:client:collect_container.empty_composable_layout_array",e.PAYRAILS_CLIENT_COLLECT_NEGATIVE_VALUES_COMPOSABLE_LAYOUT="payrails:client:collect_container.negative_values_composable_layout",e.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_FORMAT="payrails:client:collect_container.invalid_input_options_format",e.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_TRANSLATION="payrails:client:collect_container.invalid_input_options_translation",e.PAYRAILS_CLIENT_COLLECT_RECORDS_KEY_MISSING_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.records_key_missing_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_RECORDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_records_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_RECORDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_records_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.empty_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_EMPTY_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.empty_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_GET_BEARER_TOKEN_MISSING="payrails:client:collect_container.get_bearer_token_missing",e.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_MISSING="payrails:client:composable_container_options_missing",e.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_INVALID="payrails:client:composable_container_options_invalid",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_UNSUPPORTED_COMPONENT_TYPE="payrails:client:dynamic_element_form.unsupported_component_type",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_MISSING_CONFIG="payrails:client:dynamic_element_form.missing_config",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_NOT_MOUNTED="payrails:client:dynamic_element_form.not_mounted",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_FORM_INVALID="payrails:client:dynamic_element_form.form_invalid",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_PAYMENT_BUTTON_MISSING_WORKFLOW_CODE="payrails:client:payment_button.no_instrument_selected",e.PAYRAILS_CLIENT_CREATE_STORED_INSTRUMENT_INVALID_ELEMENT_TYPE="payrails:client:create_stored_instrument.invalid_element_type",e.PAYRAILS_CLIENT_API_PAYOUT_NO_INSTRUMENT_SELECTED="payrails:client:api:payout_no_instrument_selected",e))(t||{});const i={"payrails:client:init.config_malformed":{description:"The provided configuration string is invalid. Please ensure it matches the required format and structure as defined in the documentation",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:unknown":{description:"Unknown Client",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:unauthorized":{description:"Unauthorized access to the Payrails API",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:too_many_requests":{description:"Too many requests to the Payrails API",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:unsuccessful":{description:"Unsuccessful request to the Payrails API",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collectContainer.unmountable":{description:"Collect container cannot be mounted",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.ui_element_missing":{description:"Collect container element does not exist",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:pay.card_form_missing":{description:"Trying to collect values from non-existent card form",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.gpay_loading_error":{description:"Google pay can not be initialized",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.paypal_loading_error":{description:"Paypal can not be initialized",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.paypal_order_creation":{description:"Paypal order creation failed",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.paypal_button_error":{description:"PaypalButtonError occurred",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.parent_element_missing":{description:"Parent element not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.subelements_render_error":{description:"Subelements could not be rendered. Please set id for the element first.",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:api_url_not_found":{description:"API URL not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:workflow_execution_not_found":{description:"Workflow execution not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.paypal_config_missing":{description:"Paypal config not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:authorization_not_requested":{description:"Authorization was not requested",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.gpay_config_missing":{description:"Google pay config not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.applepay_loading_error":{description:"Apple pay can not be initialized",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.applepay_config_missing":{description:"Apple pay config not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.applepay_start_payment_session_error":{description:"Apple pay start payment session call failed",docUrl:"https://docs.payrails.com/"},"payrails:client:init.applepay_merchant_validation_failed":{description:"Apple pay merchant validation failed",docUrl:"https://docs.payrails.com/docs/apple-pay#pre-requisites"},"payrails:card_form:iframe_creation_failed":{description:"Error occured while creating an iframe",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:card_form:iframe_url_missing":{description:"Iframe URL is missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:callback_failed":{description:"Callback passed threw an error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:session_refresh_failed":{description:"Error occured while refreshing the session",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:bin_lookup_failed":{description:"Error occured while looking up the BIN",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:request_authentication_error":{description:"Authentication error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:unknown":{description:"Unknown API error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_executor.pay_error":{description:"Error occured while executing a payment",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_executor.payout_error":{description:"Error occured while executing a payout",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_executor.confirm_error":{description:"Error occured while confirming a payment",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:request_authorization_error":{description:"Authorization error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:request_payout_error":{description:"Payout error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_executor.3ds_error":{description:"Authorization failed after 3DS challenge.",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.element_not_mounted_in_element_match_rule":{description:"Interface: collect element - collect element is not mounted in ValidationRule params at index %s1 in validations array",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.required_params_not_provided":{description:"Interface: collect element - Required params are not provided.",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.client_connection":{description:"Interface: collect container - client connection not established. client info has not reached iframes",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.iframe_not_found":{description:"Interface: collect element - frame not found:",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.complete_and_valid_inputs":{description:"Interface: collect container - Provide complete and valid inputs",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.collect_element_not_mounted":{description:"Interface: composable collect - collect element is not mounted",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.iframe_loading_error":{description:"Interface: collect element - Error occured while loading iframe",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.iframe_csp_error":{description:"Interface: collect element - Content Security Policy error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:generic_redirect.missing.redirect_link":{description:"[Generic Redirect] Missing redirect link in response"},"payrails:client:collect_container.creation.failed":{description:"Collect container failed to initialize",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_container_type":{description:"client container - Invalid container type. Container object cannot be empty.",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_container_type":{description:"client container - Invalid container type. Invalid container object",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:vault.connection_error":{description:"Vault connection error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:vault.network.error":{description:"Vault network error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.unique_element_name":{description:"client container - Element name must be unique",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_tokens":{description:"client container - Invalid tokens",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_element":{description:"client container - Element cannot be empty",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_event_listener":{description:"client container - Invalid event listener",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_event_handler":{description:"client container - Missing handler in event listener",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_event_handler":{description:"client container - Invalid handler in event listener",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_event_type":{description:"client container - Invalid event type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.table_name_missing":{description:"client container - Table name missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_table":{description:"client container - Table cannot be empty",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_table_name":{description:"client container - Invalid table name",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_column":{description:"client container - Column missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_column":{description:"client container - Column cannot be empty",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_column":{description:"client container - Invalid column",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_skyflow_id":{description:"client container - Skyflow ID cannot be empty",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_skyflow_id":{description:"client container - Invalid Skyflow ID",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.mismatch_element_count_layout_sum":{description:"client container - Element count does not match layout sum",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_element_selector":{description:"client container - Invalid element selector",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.duplicate_element":{description:"client container - Duplicate element",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_element_type":{description:"client container - Invalid element type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_validations_type":{description:"client container - Invalid validations type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_validation_rule_type":{description:"client container - Missing validation rule type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_validation_rule_type":{description:"client container - Invalid validation rule type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_validation_rule_params":{description:"client container - Missing validation rule params",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_validation_rule_params":{description:"client container - Invalid validation rule params",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_regex_in_regex_match_rule":{description:"client container - Missing regex in regex match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_min_and_max_in_length_match_rule":{description:"client container - Missing min and max in length match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_element_in_element_match_rule":{description:"client container - Missing element in element match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_element_in_element_match_rule":{description:"client container - Invalid element in element match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_regex_in_regex_match_rule":{description:"client container - Invalid regex in regex match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_boolean_options":{description:"client container - Invalid boolean options",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_element_type":{description:"client container - Missing element type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_element_type":{description:"client container - EMPTY element type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_upsert_option_type":{description:"client container - Invalid upsert option type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_upsert_options_array":{description:"client container - Empty upsert options array",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_upsert_option_object_type":{description:"client container - Invalid upsert option object type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_table_in_upsert_option":{description:"client container - Missing table in upsert option",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_table_in_upsert_option":{description:"client container - Invalid table in upsert option",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_column_in_upsert_option":{description:"client container - Missing column in upsert option",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_column_in_upsert_option":{description:"client container - Invalid column in upsert option",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_composable_container_options":{description:"client container - Missing composable container options",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_composable_container_options":{description:"client container - Invalid composable container options",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_composable_layout_key":{description:"client container - Missing composable layout key",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_composable_layout_type":{description:"client container - Invalid composable layout type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_composable_layout_array":{description:"client container - Empty composable layout array",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.negative_values_composable_layout":{description:"client container - Negative values in composable layout",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_input_options_format":{description:"client container - Invalid input options format",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_input_options_translation":{description:"client container - Invalid input options translation",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.records_key_missing_in_additional_fields":{description:"client container - Records key missing in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_records_in_additional_fields":{description:"client container - Invalid records in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_records_in_additional_fields":{description:"client container - Missing records in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_table_in_additional_fields":{description:"client container - Missing table in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_table_in_additional_fields":{description:"client container - Empty table in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_table_in_additional_fields":{description:"client container - Invalid table in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_fields_in_additional_fields":{description:"client container - Missing fields in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_fields_in_additional_fields":{description:"client container - Empty fields in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_fields_in_additional_fields":{description:"client container - Invalid fields in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.get_bearer_token_missing":{description:"client container - Get bearer token missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:composable_container_options_missing":{description:"client container - Composable container options missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:composable_container_options_invalid":{description:"client container - Composable container options invalid",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.collect_operation_failed":{description:"client container - Collect operation failed",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:dynamic_element_form.unsupported_component_type":{description:"client container - Unsupported component type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:dynamic_element_form.missing_config":{description:"client container - Dynamic element form missing config",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:dynamic_element_form.not_mounted":{description:"client container - Dynamic element form not mounted",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:dynamic_element_form.form_invalid":{description:"client container - Dynamic element form is invalid",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_button.no_instrument_selected":{description:"client container - Dynamic element payment button can only support payout workflows",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:create_stored_instrument.invalid_element_type":{description:"client container - Invalid element type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:api:payout_no_instrument_selected":{description:"client container - No instrument selected for payout",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"}};var n=(e=>(e.ERROR="payrails:error",e.INFO="payrails:info",e.DEBUG="payrails:debug",e.WARN="payrails:warn",e))(n||{});class s extends Error{constructor(e,t){var n;const{description:o,docUrl:r,cause:a}=null!=t?t:{},{description:l,docUrl:d}=i[e]||{},c=null!=(n=null!=o?o:l)?n:"An unknown error occurred",u=null!=r?r:d;super(c),this.name=e,this.docUrl=u,this.cause=a,this.message=c,Error.captureStackTrace&&Error.captureStackTrace(this,s)}toJSON(){return{name:this.name,message:this.message,docUrl:this.docUrl,stack:this.stack,cause:this.cause}}}e.ERROR_CODES=t,e.PAYRAILS_OBSERVABILITY_EVENTS=n,e.PayrailsError=s}(s);var o={};!function(e){var t=Object.defineProperty,i=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,o=(e,i,n)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n,r=(e,t)=>{for(var r in t||(t={}))n.call(t,r)&&o(e,r,t[r]);if(i)for(var r of i(t))s.call(t,r)&&o(e,r,t[r]);return e};Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var a=(e=>(e.PAYRAILS_CLIENT_CONFIG_MALFORMED="payrails:client:init.config_malformed",e.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT="payrails:client:collectContainer.unmountable",e.PAYRAILS_CLIENT_UI_ELEMENT_MISSING="payrails:client:mount.ui_element_missing",e.PAYRAILS_CLIENT_PARENT_ELEMENT_MISSING="payrails:client:mount.parent_element_missing",e.PAYRAILS_CLIENT_SUBELEMENTS_RENDER_ERROR="payrails:client:mount.subelements_render_error",e.PAYRAILS_CLIENT_CARD_FORM_MISSING="payrails:client:pay.card_form_missing",e.PAYRAILS_CLIENT_GPAY_LOADING_ERROR="payrails:client:mount.gpay_loading_error",e.PAYRAILS_CLIENT_GPAY_CONFIG_MISSING="payrails:client:init.gpay_config_missing",e.PAYRAILS_CLIENT_APPLEPAY_LOADING_ERROR="payrails:client:mount.applepay_loading_error",e.PAYRAILS_CLIENT_APPLEPAY_CONFIG_MISSING="payrails:client:init.applepay_config_missing",e.PAYRAILS_CLIENT_APPLEPAY_START_PAYMENT_SESSION_ERROR="payrails:client:init.applepay_start_payment_session_error",e.PAYRAILS_CLIENT_APPLEPAY_MERCHANT_VALIDATION_FAILED="payrails:client:init.applepay_merchant_validation_failed",e.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR="payrails:client:init.paypal_loading_error",e.PAYRAILS_CLIENT_PAYPAL_CONFIG_MISSING="payrails:client:init.paypal_config_missing",e.PAYRAILS_CLIENT_PAYPAL_ORDER_CREATION="payrails:client:init.paypal_order_creation",e.PAYRAILS_CLIENT_PAYPAL_BUTTON_MOUNT="payrails:client:mount.paypal_button_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAY_ERROR="payrails:client:payment_executor.pay_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAYOUT_ERROR="payrails:client:payment_executor.payout_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_3DS_ERROR="payrails:client:payment_executor.3ds_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_CONFIRM_ERROR="payrails:client:payment_executor.confirm_error",e.PAYRAILS_API_UNAUTHORIZED="payrails:api:unauthorized",e.PAYRAILS_API_TOO_MANY_REQUESTS="payrails:api:too_many_requests",e.PAYRAILS_API_UNSUCCESSFUL="payrails:api:unsuccessful",e.PAYRAILS_API_AUTHORIZATION_NOT_REQUESTED="payrails:api:authorization_not_requested",e.PAYRAILS_API_AUTHENTICATION_ERROR="payrails:api:request_authentication_error",e.PAYRAILS_API_AUTHORIZATION_ERROR="payrails:api:request_authorization_error",e.PAYRAILS_API_PAYOUT_ERROR="payrails:api:request_payout_error",e.PAYRAILS_CLIENT_API_URL_NOT_FOUND="payrails:client:api_url_not_found",e.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND="payrails:client:workflow_execution_not_found",e.PAYRAILS_CARD_FORM_CREATION_FAILED="payrails:card_form:iframe_creation_failed",e.PAYRAILS_CARD_FORM_IFRAME_URL_MISSING="payrails:card_form:iframe_url_missing",e.PAYRAILS_CLIENT_UNKNOWN_ERROR="payrails:client:unknown",e.PAYRAILS_API_UNKNOWN_ERROR="payrails:api:unknown",e.PAYRAILS_CLIENT_SESSION_REFRESH_FAILED="payrails:client:session_refresh_failed",e.PAYRAILS_CLIENT_CALLBACK_FAILED="payrails:client:callback_failed",e.PAYRAILS_API_BIN_LOOKUP_FAILED="payrails:api:bin_lookup_failed",e.PAYRAILS_CARD_FORM_ELEMENT_NOT_MOUNTED_IN_ELEMENT_MATCH_RULE="payrails.card_form.element_not_mounted_in_element_match_rule",e.PAYRAILS_CARD_FORM_REQUIRED_PARAMS_NOT_PROVIDED="payrails.card_form.required_params_not_provided",e.PAYRAILS_CARD_FORM_CLIENT_CONNECTION="payrails.card_form.client_connection",e.PAYRAILS_CARD_FORM_IFRAME_NOT_FOUND="payrails.card_form.iframe_not_found",e.PAYRAILS_CARD_FORM_IFRAME_LOADING_ERROR="payrails.card_form.iframe_loading_error",e.PAYRAILS_CARD_FORM_CSP_ERROR="payrails.card_form.iframe_csp_error",e.PAYRAILS_CARD_FORM_COMPLETE_AND_VALID_INPUTS="payrails.card_form.complete_and_valid_inputs",e.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED="payrails.card_form.collect_element_not_mounted",e.PAYRAILS_CLIENT_GENERIC_REDIRECT_MISSING_REDIRECT_LINK="payrails:client:generic_redirect.missing.redirect_link",e.PAYRAILS_CLIENT_COLLECT_CREATION_FAILED="payrails:client:collect_container.creation.failed",e.PAYRAILS_CLIENT_COLLECT_EMPTY_CONTAINER_TYPE="payrails:client:collect_container.empty_container_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_CONTAINER_TYPE="payrails:client:collect_container.invalid_container_type",e.PAYRAILS_CLIENT_COLLECT_OPERATION_FAILED="payrails:client:collect_container.collect_operation_failed",e.PAYRAILS_CLIENT_VAULT_CONNECTION_ERROR="payrails:client:vault.connection_error",e.PAYRAILS_CLIENT_VAULT_NETWORK_ERROR="payrails:client:vault.network.error",e.PAYRAILS_CLIENT_COLLECT_UNIQUE_ELEMENT_NAME="payrails:client:collect_container.unique_element_name",e.PAYRAILS_CLIENT_COLLECT_INVALID_TOKENS="payrails:client:collect_container.invalid_tokens",e.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_IN_MOUNT="payrails:client:collect_container.empty_element",e.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER="payrails:client:collect_container.invalid_event_listener",e.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER="payrails:client:collect_container.missing_event_handler",e.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER="payrails:client:collect_container.invalid_event_handler",e.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_TYPE="payrails:client:collect_container.invalid_event_type",e.PAYRAILS_CLIENT_COLLECT_TABLE_NAME_MISSING="payrails:client:collect_container.table_name_missing",e.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE="payrails:client:collect_container.empty_table",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_NAME="payrails:client:collect_container.invalid_table_name",e.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN="payrails:client:collect_container.missing_column",e.PAYRAILS_CLIENT_COLLECT_EMPTY_COLUMN="payrails:client:collect_container.empty_column",e.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN="payrails:client:collect_container.invalid_column",e.PAYRAILS_CLIENT_COLLECT_EMPTY_SKYFLOW_ID="payrails:client:collect_container.empty_skyflow_id",e.PAYRAILS_CLIENT_COLLECT_INVALID_SKYFLOW_ID="payrails:client:collect_container.invalid_skyflow_id",e.PAYRAILS_CLIENT_COLLECT_MISMATCH_ELEMENT_COUNT_LAYOUT_SUM="payrails:client:collect_container.mismatch_element_count_layout_sum",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_SELECTOR="payrails:client:collect_container.invalid_element_selector",e.PAYRAILS_CLIENT_COLLECT_DUPLICATE_ELEMENT="payrails:client:collect_container.duplicate_element",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_TYPE="payrails:client:collect_container.invalid_element_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATIONS_TYPE="payrails:client:collect_container.invalid_validations_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_TYPE="payrails:client:collect_container.missing_validation_rule_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_TYPE="payrails:client:collect_container.invalid_validation_rule_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_PARAMS="payrails:client:collect_container.missing_validation_rule_params",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_PARAMS="payrails:client:collect_container.invalid_validation_rule_params",e.PAYRAILS_CLIENT_COLLECT_MISSING_REGEX_IN_REGEX_MATCH_RULE="payrails:client:collect_container.missing_regex_in_regex_match_rule",e.PAYRAILS_CLIENT_COLLECT_MISSING_MIN_AND_MAX_IN_LENGTH_MATCH_RULE="payrails:client:collect_container.missing_min_and_max_in_length_match_rule",e.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_IN_ELEMENT_MATCH_RULE="payrails:client:collect_container.missing_element_in_element_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_IN_ELEMENT_MATCH_RULE="payrails:client:collect_container.invalid_element_in_element_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_REGEX_IN_REGEX_MATCH_RULE="payrails:client:collect_container.invalid_regex_in_regex_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_BOOLEAN_OPTIONS="payrails:client:collect_container.invalid_boolean_options",e.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_TYPE="payrails:client:collect_container.missing_element_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_TYPE="payrails:client:collect_container.empty_element_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_TYPE="payrails:client:collect_container.invalid_upsert_option_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_UPSERT_OPTIONS_ARRAY="payrails:client:collect_container.empty_upsert_options_array",e.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_OBJECT_TYPE="payrails:client:collect_container.invalid_upsert_option_object_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_UPSERT_OPTION="payrails:client:collect_container.missing_table_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_UPSERT_OPTION="payrails:client:collect_container.invalid_table_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN_IN_UPSERT_OPTION="payrails:client:collect_container.missing_column_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN_IN_UPSERT_OPTION="payrails:client:collect_container.invalid_column_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_CONTAINER_OPTIONS="payrails:client:collect_container.missing_composable_container_options",e.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_CONTAINER_OPTIONS="payrails:client:collect_container.invalid_composable_container_options",e.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_LAYOUT_KEY="payrails:client:collect_container.missing_composable_layout_key",e.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE="payrails:client:collect_container.invalid_composable_layout_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_COMPOSABLE_LAYOUT_ARRAY="payrails:client:collect_container.empty_composable_layout_array",e.PAYRAILS_CLIENT_COLLECT_NEGATIVE_VALUES_COMPOSABLE_LAYOUT="payrails:client:collect_container.negative_values_composable_layout",e.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_FORMAT="payrails:client:collect_container.invalid_input_options_format",e.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_TRANSLATION="payrails:client:collect_container.invalid_input_options_translation",e.PAYRAILS_CLIENT_COLLECT_RECORDS_KEY_MISSING_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.records_key_missing_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_RECORDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_records_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_RECORDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_records_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.empty_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_EMPTY_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.empty_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_GET_BEARER_TOKEN_MISSING="payrails:client:collect_container.get_bearer_token_missing",e.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_MISSING="payrails:client:composable_container_options_missing",e.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_INVALID="payrails:client:composable_container_options_invalid",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_UNSUPPORTED_COMPONENT_TYPE="payrails:client:dynamic_element_form.unsupported_component_type",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_MISSING_CONFIG="payrails:client:dynamic_element_form.missing_config",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_NOT_MOUNTED="payrails:client:dynamic_element_form.not_mounted",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_FORM_INVALID="payrails:client:dynamic_element_form.form_invalid",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_PAYMENT_BUTTON_MISSING_WORKFLOW_CODE="payrails:client:payment_button.no_instrument_selected",e.PAYRAILS_CLIENT_CREATE_STORED_INSTRUMENT_INVALID_ELEMENT_TYPE="payrails:client:create_stored_instrument.invalid_element_type",e.PAYRAILS_CLIENT_API_PAYOUT_NO_INSTRUMENT_SELECTED="payrails:client:api:payout_no_instrument_selected",e))(a||{}),l=(e=>(e.ERROR="payrails:error",e.INFO="payrails:info",e.DEBUG="payrails:debug",e.WARN="payrails:warn",e))(l||{});class d{log(e,t){console.group(`%c[${e}] : ${t.mssg}`,function(e){switch(e){case"error":return"color:red";case"info":return"color:blue";case"warn":return"color:orange";default:return"color:black"}}(e)),console.log(t.error),console.log("metadata",t.withMetada),console.log("extra",t.extra),console.groupEnd()}}function c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var u,p={},h={};var _,E={};var m,v={};var y,I={};var f,A={};var L,g={};var O,T={};var C,R={};var N,S={};var P,b={};var D,M,w,k,Y={},U={};function x(){if(D)return U;D=1,Object.defineProperty(U,"__esModule",{value:!0}),U.Framebus=void 0;var e=K(),t="undefined"!=typeof window&&window.Promise,i=function(){function i(e){void 0===e&&(e={}),this.origin=e.origin||"*",this.channel=e.channel||"",this.verifyDomain=e.verifyDomain,this.targetFrames=e.targetFrames||[],this.limitBroadcastToFramesArray=Boolean(e.targetFrames),this.isDestroyed=!1,this.listeners=[],this.hasAdditionalChecksForOnListeners=Boolean(this.verifyDomain||this.limitBroadcastToFramesArray)}return i.setPromise=function(e){i.Promise=e},i.target=function(e){return new i(e)},i.prototype.addTargetFrame=function(e){this.limitBroadcastToFramesArray&&this.targetFrames.push(e)},i.prototype.include=function(t){return null!=t&&(null!=t.Window&&(t.constructor===t.Window&&(e.childWindows.push(t),!0)))},i.prototype.target=function(e){return i.target(e)},i.prototype.emit=function(t,i,n){if(this.isDestroyed)return!1;var s=this.origin;if(t=this.namespaceEvent(t),(0,e.isntString)(t))return!1;if((0,e.isntString)(s))return!1;"function"==typeof i&&(n=i,i=void 0);var o=(0,e.packagePayload)(t,s,i,n);return!!o&&(this.limitBroadcastToFramesArray?this.targetFramesAsWindows().forEach(function(t){(0,e.sendMessage)(t,o,s)}):(0,e.broadcast)(o,{origin:s,frame:window.top||window.self}),!0)},i.prototype.emitAsPromise=function(e,t){var n=this;return new i.Promise(function(i,s){n.emit(e,t,function(e){i(e)})||s(new Error('Listener not added for "'.concat(e,'"')))})},i.prototype.on=function(t,i){if(this.isDestroyed)return!1;var n=this,s=this.origin,o=i;return t=this.namespaceEvent(t),!(0,e.subscriptionArgsInvalid)(t,o,s)&&(this.hasAdditionalChecksForOnListeners&&(o=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];n.passesVerifyDomainCheck(this&&this.origin)&&n.hasMatchingTargetFrame(this&&this.source)&&i.apply(void 0,e)}),this.listeners.push({eventName:t,handler:o,originalHandler:i}),e.subscribers[s]=e.subscribers[s]||{},e.subscribers[s][t]=e.subscribers[s][t]||[],e.subscribers[s][t].push(o),!0)},i.prototype.off=function(t,i){var n=i;if(this.isDestroyed)return!1;if(this.verifyDomain)for(var s=0;s<this.listeners.length;s++){var o=this.listeners[s];o.originalHandler===i&&(n=o.handler)}t=this.namespaceEvent(t);var r=this.origin;if((0,e.subscriptionArgsInvalid)(t,n,r))return!1;var a=e.subscribers[r]&&e.subscribers[r][t];if(!a)return!1;for(s=0;s<a.length;s++)if(a[s]===n)return a.splice(s,1),!0;return!1},i.prototype.teardown=function(){if(!this.isDestroyed){this.isDestroyed=!0;for(var e=0;e<this.listeners.length;e++){var t=this.listeners[e];this.off(t.eventName,t.handler)}this.listeners.length=0}},i.prototype.passesVerifyDomainCheck=function(e){return!this.verifyDomain||this.checkOrigin(e)},i.prototype.targetFramesAsWindows=function(){return this.limitBroadcastToFramesArray?this.targetFrames.map(function(e){return e instanceof HTMLIFrameElement?e.contentWindow:e}).filter(function(e){return e}):[]},i.prototype.hasMatchingTargetFrame=function(e){if(!this.limitBroadcastToFramesArray)return!0;var t=this.targetFramesAsWindows().find(function(t){return t===e});return Boolean(t)},i.prototype.checkOrigin=function(e){var t,i=document.createElement("a");return i.href=location.href,t="https:"===i.protocol?i.host.replace(/:443$/,""):"http:"===i.protocol?i.host.replace(/:80$/,""):i.host,i.protocol+"//"+t===e||(!this.verifyDomain||this.verifyDomain(e))},i.prototype.namespaceEvent=function(e){return this.channel?"".concat(this.channel,":").concat(e):e},i.Promise=t,i}();return U.Framebus=i,U}function F(){if(k)return Y;k=1;var e=Y&&Y.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Y,"__esModule",{value:!0}),Y.subscribeReplier=void 0;var t=x(),i=e((w||(w=1,M=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}),M));return Y.subscribeReplier=function(e,n){var s=(0,i.default)();return t.Framebus.target({origin:n}).on(s,function i(o,r){e(o,r),t.Framebus.target({origin:n}).off(s,i)}),s},Y}var j,B={};var V,G={};var X,z,H,q,W={};function K(){return z||(z=1,function(e){var t=p&&p.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),i=p&&p.__exportStar||function(e,i){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(i,n)||t(i,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),i(function(){if(u)return h;u=1,Object.defineProperty(h,"__esModule",{value:!0}),h.detach=h.attach=void 0;var e=K(),t=!1;return h.attach=function(){t||"undefined"==typeof window||(t=!0,window.addEventListener("message",e.onMessage,!1))},h.detach=function(){t=!1,window.removeEventListener("message",e.onMessage,!1)},h}(),e),i(function(){if(_)return E;_=1,Object.defineProperty(E,"__esModule",{value:!0}),E.broadcastToChildWindows=void 0;var e=K();return E.broadcastToChildWindows=function(t,i,n){for(var s=e.childWindows.length-1;s>=0;s--){var o=e.childWindows[s];o.closed?e.childWindows.splice(s,1):n!==o&&(0,e.broadcast)(t,{origin:i,frame:o.top})}},E}(),e),i(function(){if(m)return v;m=1,Object.defineProperty(v,"__esModule",{value:!0}),v.broadcast=void 0;var e=K();return v.broadcast=function t(i,n){var s,o=0,r=n.origin,a=n.frame;try{for(a.postMessage(i,r),(0,e.hasOpener)(a)&&a.opener.top!==window.top&&t(i,{origin:r,frame:a.opener.top});s=a.frames[o];)t(i,{origin:r,frame:s}),o++}catch(e){}},v}(),e),i((y||(y=1,Object.defineProperty(I,"__esModule",{value:!0}),I.subscribers=I.childWindows=I.prefix=void 0,I.prefix="/*framebus*/",I.childWindows=[],I.subscribers={}),I),e),i(function(){if(f)return A;f=1,Object.defineProperty(A,"__esModule",{value:!0}),A.dispatch=void 0;var e=K();return A.dispatch=function(t,i,n,s,o){if(e.subscribers[t]&&e.subscribers[t][i]){var r=[];n&&r.push(n),s&&r.push(s);for(var a=0;a<e.subscribers[t][i].length;a++)e.subscribers[t][i][a].apply(o,r)}},A}(),e),i((L||(L=1,Object.defineProperty(g,"__esModule",{value:!0}),g.hasOpener=void 0,g.hasOpener=function(e){return e.top===e&&null!=e.opener&&e.opener!==e&&!0!==e.opener.closed}),g),e),i((O||(O=1,Object.defineProperty(T,"__esModule",{value:!0}),T.isntString=void 0,T.isntString=function(e){return"string"!=typeof e}),T),e),i(function(){if(C)return R;C=1,Object.defineProperty(R,"__esModule",{value:!0}),R.onMessage=void 0;var e=K();return R.onMessage=function(t){if(!(0,e.isntString)(t.data)){var i=(0,e.unpackPayload)(t);if(i){var n=i.eventData,s=i.reply;(0,e.dispatch)("*",i.event,n,s,t),(0,e.dispatch)(t.origin,i.event,n,s,t),(0,e.broadcastToChildWindows)(t.data,i.origin,t.source)}}},R}(),e),i(function(){if(N)return S;N=1,Object.defineProperty(S,"__esModule",{value:!0}),S.packagePayload=void 0;var e=K();return S.packagePayload=function(t,i,n,s){var o,r={event:t,origin:i};"function"==typeof s&&(r.reply=(0,e.subscribeReplier)(s,i)),r.eventData=n;try{o=e.prefix+JSON.stringify(r)}catch(e){throw new Error("Could not stringify event: ".concat(e.message))}return o},S}(),e),i((P||(P=1,Object.defineProperty(b,"__esModule",{value:!0}),b.sendMessage=void 0,b.sendMessage=function(e,t,i){try{e.postMessage(t,i)}catch(e){}}),b),e),i(F(),e),i(function(){if(j)return B;j=1,Object.defineProperty(B,"__esModule",{value:!0}),B.subscriptionArgsInvalid=void 0;var e=K();return B.subscriptionArgsInvalid=function(t,i,n){return!!(0,e.isntString)(t)||"function"!=typeof i||(0,e.isntString)(n)},B}(),e),i((V||(V=1,Object.defineProperty(G,"__esModule",{value:!0})),G),e),i(function(){if(X)return W;X=1,Object.defineProperty(W,"__esModule",{value:!0}),W.unpackPayload=void 0;var e=K();return W.unpackPayload=function(t){var i;if(t.data.slice(0,e.prefix.length)!==e.prefix)return!1;try{i=JSON.parse(t.data.slice(e.prefix.length))}catch(e){return!1}if(i.reply){var n=t.origin,s=t.source,o=i.reply;i.reply=function(t){if(s){var i=(0,e.packagePayload)(o,n,t);i&&s.postMessage(i,n)}}}return i},W}(),e)}(p)),p}const $=c(function(){if(q)return H;q=1;var e=K(),t=x();return(0,e.attach)(),H=t.Framebus}());class Z{constructor(e){this.origin=null,this.onAndEmit=(e,t,i="*")=>{const n=`${e}-REQ`,s=n=>{return s=this,o=null,r=function*(){const s=yield t(n);this.bus.target({origin:i}).emit(`${e}-RES`,s)},new Promise((e,t)=>{var i=e=>{try{a(r.next(e))}catch(e){t(e)}},n=e=>{try{a(r.throw(e))}catch(e){t(e)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,n);a((r=r.apply(s,o)).next())});var s,o,r};return this.bus.on(n,s),()=>this.bus.off(n,s)},this.emitAndResolve=(e,t,i="*",n)=>new Promise((s,o)=>{if(null==n?void 0:n.aborted)return void o(n.reason);const a=`${e}-RES`,l=e=>{c(),s(e)},d=()=>{c(),o(n.reason)},c=()=>{this.bus.off(a,l),null==n||n.removeEventListener("abort",d)};this.bus.on(a,l),null==n||n.addEventListener("abort",d),this.bus.target({origin:i}).emit(`${e}-REQ`,r({},t))}),this.bus=new $(e)}static getInstance(){return Z.instance||(Z.instance=new Z),Z.instance}on(e,t){return this.bus.on(e,t)}off(e,t){return this.bus.off(e,t)}emit(e,t,i=void 0){return this.bus.emit(e,t,i)}target(e){return this.bus.target(e)}}class J{constructor(){this.bus=Z.getInstance()}log(e,t){this.bus.emit(l.ERROR,{level:e,event:t})}}var Q,ee;const te=c(function(){if(ee)return Q;ee=1;var e=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var i=Object.prototype.toString.call(e);return"[object RegExp]"===i||"[object Date]"===i||function(e){return e.$$typeof===t}(e)}(e)},t="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((i=e,Array.isArray(i)?[]:{}),e,t):e;var i}function n(e,t,n){return e.concat(t).map(function(e){return i(e,n)})}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function r(e,t,n){var r={};return n.isMergeableObject(e)&&s(e).forEach(function(t){r[t]=i(e[t],n)}),s(t).forEach(function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&n.isMergeableObject(t[s])?r[s]=function(e,t){if(!t.customMerge)return a;var i=t.customMerge(e);return"function"==typeof i?i:a}(s,n)(e[s],t[s],n):r[s]=i(t[s],n))}),r}function a(t,s,o){(o=o||{}).arrayMerge=o.arrayMerge||n,o.isMergeableObject=o.isMergeableObject||e,o.cloneUnlessOtherwiseSpecified=i;var a=Array.isArray(s);return a===Array.isArray(t)?a?o.arrayMerge(t,s,o):r(t,s,o):i(s,o)}return a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,i){return a(e,i,t)},{})},Q=a}());class ie{constructor(){this.state={}}static getInstance(){return ie.instance||(ie.instance=new ie),ie.instance}getState(e){return this.state[e]}setState(e){this.state=te(this.state,e)}}const ne=ie.getInstance(),se=()=>window&&window.navigator,oe=()=>window&&window.screen,re=()=>({resolution:`${oe().width}x${oe().height}`,user_agent:se().userAgent,language:se().language}),ae=[a.PAYRAILS_API_AUTHORIZATION_ERROR,a.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_3DS_ERROR,a.PAYRAILS_API_UNSUCCESSFUL];class le{constructor(e){this.adapter=[new J],this.enabled=e.enabled||!0,this.initGlobalState(e),e.logLevel=e.logLevel||"error","debug"===e.logLevel&&this.addAdapter(new d)}static init(e){le.instance=new le(e)}static getLogger(){return le.instance}initGlobalState(e){ne.setState({payrails:e.payrails,sdk:e.sdk})}static setState(e){ne.setState(e)}log(e,t,i){var n;this.enabled&&-1===ae.indexOf(null==(n=null==i?void 0:i.error)?void 0:n.name)&&this.adapter.forEach(n=>{n.log(e,{mssg:t,error:null==i?void 0:i.error,withMetada:r(r({},this.constructMetadata()),null==i?void 0:i.withMetada),extra:null==i?void 0:i.extra})})}constructMetadata(){return{device:re(),payrails:ne.getState("payrails"),sdk:ne.getState("sdk")}}addAdapter(e){this.adapter.push(e)}static log(e,t){this.getLogger().log("info",e,t)}static debug(e,t){this.getLogger().log("debug",e,t)}static info(e,t){this.getLogger().log("info",e,t)}static warn(e,t){this.getLogger().log("warning",e,t)}static error(e,t){this.getLogger().log("error",e,t)}static exception(e,t){this.error(e,t)}}e.PayrailsLogger=le,e.getDeviceInfo=re}(o);const r={INITIALIZE_CLIENT:"%s1 - Initializing skyflow client.",CLIENT_INITIALIZED:"%s1 - Initialized skyflow client successfully.",CREATE_COLLECT_CONTAINER:"%s1 - Creating Collect container.",COLLECT_CONTAINER_CREATED:"%s1 - Created Collect container successfully.",VALIDATE_RECORDS:"%s1 - Validating insert records.",VALIDATE_DETOKENIZE_INPUT:"%s1 - Validating detokenize input.",VALIDATE_GET_INPUT:"%s1 - Validating get input.",VALIDATE_DELETE_INPUT:"%s1 - Validating delete input.",VALIDATE_COLLECT_RECORDS:"%s1 - Validating collect element input.",CREATED_ELEMENT:"%s1 - Created %s2 element.",ELEMENT_MOUNTED:"%s1 - %s2 Element mounted.",COLLECT_SUBMIT_SUCCESS:"%s1 - Data has been collected successfully.",INSERT_DATA_SUCCESS:"%s1 - Data has been inserted successfully.",DELETE_SUCCESS:"%s1 - Data has been deleted successfully.",BEARER_TOKEN_LISTENER:"%s1 - Get bearer token listener added.",CAPTURED_BEARER_TOKEN_EVENT:"%s1 - Captured bearer token event.",BEARER_TOKEN_RESOLVED:"%s1 - GetBearerToken promise resolved successfully.",REUSE_BEARER_TOKEN:"%s1 - Reusing the bearer token.",PUREJS_CONTROLLER_INITIALIZED:"%s1 - SkyflowController initialized.",PUREJS_LISTENER_READY:"%s1 - Purejs listener ready.",EMIT_PURE_JS_CONTROLLER:"%s1 - Emitted Skyflow controller event.",INSERT_TRIGGERED:"%s1 - Insert method triggered.",DETOKENIZE_TRIGGERED:"%s1 - Detokenize method triggered.",GET_TRIGGERED:"%s1 - Get method triggered.",GET_BY_ID_TRIGGERED:"%s1 - Get method triggered.",DELETE_TRIGGERED:"%s1 - Delete method triggered.",EMIT_PURE_JS_REQUEST:"%s1 - Emitted %s2 request.",CAPTURE_PURE_JS_REQUEST:"%s1 - Captured %s2 event.",LISTEN_PURE_JS_REQUEST:"%s1 - Listening to %s2 event.",CAPTURE_PUREJS_FRAME:"%s1 - Captured SkyflowController frame ready event.",FETCH_RECORDS_RESOLVED:"%s1 - Detokenize request is resolved.",INSERT_RECORDS_RESOLVED:"%s1 - Insert request is resolved.",GET_RESOLVED:"%s1 - Get request is resolved.",GET_BY_SKYFLOWID_RESOLVED:"%s1 - GetById request is resolved.",DELETE_RESOLVED:"%s1 - Delete request is resolved",EMIT_EVENT:"%s1 - %s2 event emitted",CAPTURE_EVENT:"%s1 - Captured event %s2",LISTEN_COLLECT_FRAME_READY:"%s1 - Listening to collect FRAME_READY event",EMIT_COLLECT_ELEMENT_FRAME_READY:"%s1 - Emitting collect element %s2 FRAME_READY event",ENTERED_COLLECT_FRAME_READY_CB:"%s1 - In IFrameForm constructor, Entered FRAME_READY callback",EXECUTE_COLLECT_ELEMENT_FRAME_READY_CB:"%s1 - In IFrameForm, executing collect element, %s2 FRAME_READY callback",CLIENT_METADATA_NOT_SET:"%s1 - Client metadata not set",EXECUTE_COLLECT_ELEMENT_INIT:"%s1 - calling Collect element init",INSIDE__COLLECT_ELEMENT_INIT:"%s1 - Inside Collect element init for %s2",CREATING_COLLECT_ELEMENT_FORM:"%s1 - Start, creating iframe form for %s2",COLLECT_FRAME_READY_CB:"%s1 - In FrameElements, executing collect element FRAME_READY cb for %s2, sending metadata",INSIDE_FRAME_ELEMENTS_CONSTRUCOTR:"%s1 - Inside FrameElements constructor",SETUP_IN_START:"%s1 - Inside FrameElements start(), calling setup",SETUP_IN_CONSTRUCTOR:"%s1 - Inside FrameElements constructor, calling setup",COLLECT_ELEMET_START:"%s1 - %s2, Collect Element start",COLLECT_CONTROLLER_START:"%s1 - %s2, Collect Controller start",EMIT_COLLECT_FRAME_CONTROLLER_EVENT:"%s1 - Emit collect FrameController FRAME_READY event",EXECUTE_COLLECT_CONTROLLER_READY_CB:"%s1 - Executing collect FrameController FRAME_READY callback, set client metadata",IFRAMEFORM_CONSTRUCTOR_FRAME_READY_LISTNER:"%s1 - In IFrameForm constructor, Adding listner for FRAME_READY event",IFRAMEFORM_CONSTRUCTOR_TOKENIZATION_LISTNER:"%s1 - In IFrameForm constructor, Adding listner for TOKENIZATION_REQUEST event",CURRENT_ENV:"%s1 - Client Env is %s2",CURRENT_LOG_LEVEL:"%s1 - Client LogLevel is %s2",VALIDATE_GET_BY_ID_INPUT:"%s1 - Validating getByID input."},a={CLIENT_CONNECTION:"Interface: collect container - client connection not established. client info has not reached iframes",INVALID_BEARER_TOKEN:"Interface: init - Invalid token is generated from getBearerToken callback",BEARER_TOKEN_REJECTED:"Interface: init - GetBearerToken promise got rejected.",VAULTID_IS_REQUIRED:"Interface: init - Invalid client credentials. vaultID is required.",EMPTY_VAULTID_IN_INIT:"Interface: init - Invalid client credentials. vaultID cannot be empty.",VAULTURL_IS_REQUIRED:"Interface: init - Invalid client credentials. vaultURL is required.",EMPTY_VAULTURL_IN_INIT:"Interface: init - Invalid client credentials. vaultURL cannot be empty.",INVALID_VAULTURL_IN_INIT:"Interface: init - Invalid client credentials. Expecting https://XYZ for vaultURL",GET_BEARER_TOKEN_IS_REQUIRED:"Interface: init - Invalid client credentials. getBearerToken is required.",EMPTY_CONTAINER_TYPE:"Interface: client {containerType} container - Invalid container type. Container object cannot be empty.",INVALID_CONTAINER_TYPE:"Interface: client {containerType} container - Invalid container type. Invalid container object.",INVALID_COLLECT_VALUE:"Invalid value",INVALID_COLLECT_VALUE_WITH_LABEL:"Invalid %s1",REQUIRED_COLLECT_VALUE:"%s1 is required",DEFAULT_REQUIRED_COLLECT_VALUE:"Field is required",RECORDS_KEY_NOT_FOUND:"Interface: client insert - records object is required.",INVALID_RECORDS_IN_INSERT:"Interface: client insert - Invalid records. records object should be an array.",EMPTY_RECORDS_IN_INSERT:"Interface: client insert - records array cannot be empty.",MISSING_TABLE_IN_INSERT:'Interface: client insert - "table" key is required in records array at index %s1',EMPTY_TABLE_IN_INSERT:"Interface: client insert - table cannot be empty in records array at index %s1",INVALID_TABLE_IN_INSERT:"Interface: client insert - table of type string is required at index %s1 in records array.",EMPTY_FIELDS_IN_INSERT:"Interface: client insert - fields cannot be empty in records array at index %s1",MISSING_FIELDS_IN_INSERT:'Interface: client insert - "fields" key is required in records array at index %s1',INVALID_FIELDS_IN_INSERT:"Interface: client insert - fields of type object is required at index %s1 in records array.",INVALID_TOKENS_IN_INSERT:"Interface: client insert - Invalid tokens in options. tokens of type boolean is required.",RECORDS_KEY_NOT_FOUND_DELETE:"Interface: client delete - records object is required.",INVALID_RECORDS_IN_DELETE:"Interface: client delete - Invalid records. records object should be an array.",EMPTY_RECORDS_IN_DELETE:"Interface: client delete - records array cannot be empty.",MISSING_TABLE_IN_DELETE:'Interface: client delete - "table" key is required in records array at index %s1',EMPTY_TABLE_IN_DELETE:"Interface: client delete - table cannot be empty in records array at index %s1",INVALID_TABLE_IN_DELETE:"Interface: client delete - table of type string is required at index %s1 in records array.",MISSING_ID_IN_DELETE:'Interface: client delete - "id" key is required in records array at index %s1',EMPTY_ID_IN_DELETE:"Interface: client delete - id cannot be empty in records array at index %s1",INVALID_ID_IN_DELETE:"Interface: client delete - id of type string is required at index %s1 in records array.",DELETE_RECORDS_REJECTED:"Interface: client delete - delete request is rejected.",INVALID_TOKENS_IN_COLLECT:"Interface: collect container - Invalid tokens. tokens of type boolean is required.",RECORDS_KEY_NOT_FOUND_IN_ADDITIONAL_FIELDS:'Interface: collect container - "records" key not found in additionalFields',INVALID_RECORDS_IN_ADDITIONAL_FIELDS:"Interface: collect container - records should be an array inside additionalFields",EMPTY_RECORDS_IN_ADDITIONAL_FIELDS:"Interface: collect container - records object cannot be empty in additionalFields",MISSING_TABLE_IN_ADDITIONAL_FIELDS:'Interface: collect container - "table" key not found in additionalFields records at index %s1',INVALID_TABLE_IN_ADDITIONAL_FIELDS:"Interface: collect container - Provide valid table name in additionalFields records at index %s1",INVALID_SKYFLOW_ID_IN_ADDITIONAL_FIELDS:"Interface: collect container - Provide valid skyflow id in additionalFields records at index %s1",MISSING_FIELDS_IN_ADDITIONAL_FIELDS:'Interface: collect container - "fields" key not found in additionalFields records at index %s1',INVALID_FIELDS_IN_ADDITIONAL_FIELDS:"Interface: collect container - Provide valid fields in additionalFields records at index %s1",RECORDS_KEY_NOT_FOUND_DETOKENIZE:"Interface: client detokenize - records object is required.",EMPTY_RECORDS_DETOKENIZE:"Interface: client detokenize - records array cannot be empty.",INVALID_RECORDS_IN_DETOKENIZE:"Interface: client detokenize - Invalid records. records object should be an array.",MISSING_TOKEN_IN_DETOKENIZE:'Interface: client detokenize - "token" key is required in records array at index %s1 ',INVALID_TOKEN_IN_DETOKENIZE:"Interface: client detokenize - Invalid token. token of type string is required at index %s1 in records array.",RECORDS_KEY_NOT_FOUND_GET:"Interface: client get - records object is required.",INVALID_RECORDS_IN_GET:"Interface: client get - Invalid records. records object should be an array.",EMPTY_RECORDS_GET:"Interface: client get - records array cannot be empty.",MISSING_IDS_IN_GET:'Interface: client get - "ids" key is required in records array at index %s1',INVALID_IDS_IN_GET:"Interface: client get - Invalid ids. ids object should be an array.",INVALID_COLUMN_VALUES_IN_GET:"Interface: client get - Invalid column values. column values object should be an array.",EMPTY_IDS_IN_GET:"Interface: client get - ids array cannot be empty at index %s1",INVALID_SKYFLOWID_TYPE_IN_GET:"Interface: client get - Invalid skyflowId in ids array at index %s1",MISSING_TABLE_IN_GET:'Interface: client get - "table" key is required in records array at index %s1',INVALID_TABLE_IN_GET:"Interface: client get - table of type string is required at index %s1 in records array.",MISSING_REDACTION_IN_GET:'Interface: client get - "redaction" key is required in records array at index %s1',INVALID_REDACTION_TYPE_IN_GET:"Interface: client get - Invalid redaction type in records array at index %s1",INVALID_TOKENS_IN_GET:"Interface: client get - Invalid tokens in options. tokens of type boolean is required.",TOKENS_GET_COLUMN_NOT_SUPPORTED:"Interface: client get - column_name or column_values cannot be used with tokens in options.",REDACTION_WITH_TOKENS_NOT_SUPPORTED:"Interface: client get - redaction cannot be used when tokens are true in options.",INVALID_REDACTION_TYPE_IN_DETOKENIZE:"Interface: client get - Invalid redaction type in records array at index %s1",EMPTY_TABLE_IN_ADDITIONAL_FIELDS:"Interface: collect container - table cannot be empty in additionalFields at index %s1",EMPTY_FIELDS_IN_ADDITIONAL_FIELDS:"Interface: collect container - fields cannot be empty in additionalFields at index %s1",EMPTY_TOKEN_IN_DETOKENIZE:"Interface: client detokenize - token cannot be empty in records array at index %s1",EMPTY_SKYFLOWID_IN_GET:"Interface: client get - id cannot be empty in records array at index %s1",EMPTY_TABLE_IN_GET:"Interface: client get - table cannot be empty in records array at index %s1",EMPTY_REDACTION_TYPE_IN_GET:"Interface: client get - redaction cannot be empty in records array at index %s1",FETCH_RECORDS_REJECTED:"Interface: client detokenize - detokenize request is rejected.",INSERT_RECORDS_REJECTED:"Interface: client insert - insert request is rejected.",GET_REJECTED:"Interface: client get - get request is rejected.",MISSING_TABLE_IN_COLLECT:'Interface: collect element - "table" key is required.',EMPTY_TABLE_IN_COLLECT:"Interface: collect element - table cannot be empty.",EMPTY_SKYFLOW_ID_IN_ADDITIONAL_FIELDS:"Interface: collect element - id cannot be empty.",INVALID_TABLE_IN_COLLECT:"Interface: collect element - Invalid table. table of type string is required",INVALID_SKYFLOWID_IN_COLLECT:"Interface: collect element - Invalid id. id of type string is required",MISSING_COLUMN_IN_COLLECT:'Interface: collect element - "column" key is required.',EMPTY_COLUMN_IN_COLLECT:"Interface: collect element - column cannot be empty.",INVALID_COLUMN_IN_COLLECT:"Interface: collect element - Invalid column. column of type string is required",UNIQUE_ELEMENT_NAME:"The element name has to unique: %s1",ELEMENTS_NOT_MOUNTED:"Interface: collect container - Elements should be mounted before invoking collect",DUPLICATE_ELEMENT:"Interface: collect container - Duplicate column %s1 found in %s2.",DUPLICATE_ELEMENT_ADDITIONAL_FIELDS:"Interface: collect container - Duplicate column %s1 found in %s2 in additional fields",MISSING_ELEMENT_TYPE:'Interface:container element with type {TYPE} - Invalid element type. "type" key is required.',EMPTY_ELEMENT_TYPE:"Interface:container element with type {TYPE} - Invalid element type. type cannot be empty.",INVALID_ELEMENT_TYPE:"Interface:container element with type {TYPE} - invalid element type. type not found",INVALID_ELEMENT_SELECTOR:"Interface: container element with type {TYPE} - Div cannot be found.",CANNOT_CHANGE_ELEMENT:"Element can't be changed.",INVALID_IFRAME:"Error occured while creating an iframe",INVALID_FIELD:"Invalid Field.",FRAME_NOT_FOUND:"Interface: collect element - %s1 frame not found:",COMPLETE_AND_VALID_INPUTS:"Interface: collect container - Provide complete and valid inputs for %s1",REQUIRED_PARAMS_NOT_PROVIDED:"Interface: collect element - Required params are not provided.",INVALID_EVENT_TYPE:"Interface: collect element - Provide a valid event type.",INVALID_EVENT_LISTENER:'Interface: "on" on CollectElement - Provide valid event listener.',MISSING_HANDLER_IN_EVENT_LISTENER:'Interface: "on" on CollectElement - Second argument is missing. handler cannot be empty.',INVALID_HANDLER_IN_EVENT_LISTENER:'Interface: "on" on CollectElement - Invalid handler. handler should be of type function.',UNKNOWN_ERROR:"Unknown Error.",NETWORK_ERROR:"A network error occurred. This could be a CORS issue or a dropped internet connection. It is not possible for us to know. Please reach out to skyflow if you see this error",CONNECTION_ERROR:"Error while initializing the connection.",ERROR_OCCURED:"Error occurred.",INVALID_VALIDATIONS_TYPE:"Interface: collect element - Invalid validations type.",MISSING_VALIDATION_RULE_TYPE:"Interface: collect element - Type is missing in validationRule at index %s1 in validations array",INVALID_VALIDATION_RULE_TYPE:"Interface: collect element - Invalid ValidationRuleType at index %s1 in validations array",MISSING_VALIDATION_RULE_PARAMS:"Interface: collect element - params are missing in validationRule at index %s1 in validations array",INVALID_VALIDATION_RULE_PARAMS:"Interface: collect element - Invalid ValidationRule params at index %s1 in validations array",MISSING_REGEX_IN_REGEX_MATCH_RULE:"Interface: collect element - Missing regex in ValidationRule params at index %s1 in validations array",INVALID_REGEX_IN_REGEX_MATCH_RULE:"Interface: collect element - Invalid regex in ValidationRule params at index %s1 in validations array",MISSING_MIN_AND_MAX_IN_LENGTH_MATCH_RULE:"Interface: collect element - Either min or max is required in ValidationRule params at index %s1 in validations array",MISSING_ELEMENT_IN_ELEMENT_MATCH_RULE:"Interface: collect element - Missing element in ValidationRule params at index %s1 in validations array",INVALID_ELEMENT_IN_ELEMENT_MATCH_RULE:"Interface: collect element - Invalid collect element in ValidationRule params at index %s1 in validations array",ELEMENT_NOT_MOUNTED_IN_ELEMENT_MATCH_RULE:"Interface: collect element - collect element is not mounted in ValidationRule params at index %s1 in validations array",EMPTY_ELEMENT_IN_MOUNT:"Interface: mount element with type %s1 - Mount cannot be empty.",VALIDATION_FAILED:"Validation failed",INVALID_UPSERT_OPTION_TYPE:"Invalid upsert option, should be an array",EMPTY_UPSERT_OPTIONS_ARRAY:"upsert option cannot be an empty array, atleast one object of table and column is required.",INVALID_UPSERT_OPTION_OBJECT_TYPE:"Invalid upsert object at index %s1, an object of table and column is required.",MISSING_TABLE_IN_UPSERT_OPTION:'"table" key is required in upsert options object at index %s1',MISSING_COLUMN_IN_UPSERT_OPTION:'"column" key is required in upsert option at index %s1',INVALID_TABLE_IN_UPSERT_OPTION:"Invalid table in upsert object at index %s1, table of type non empty string is required",INVALID_COLUMN_IN_UPSERT_OPTION:"Invalid column in upsert object at index %s1, column of type non empty string is required",INVALID_RECORD_COLUMN_VALUE:"Invalid Record Column value.",MISSING_RECORD_COLUMN_VALUE:"Column Values is required when Column Name is specified.",MISSING_RECORD_COLUMN_NAME:"Column Name is required when Column Values are specified.",INVALID_RECORD_COLUMN_VALUE_TYPE:"Invalid Type of Records Column Values.",INVALID_COLUMN_VALUES_TYPE:"Invalid column values type, should be an Array.",EMPTY_RECORD_COLUMN_VALUES:"Record column values cannot be empty.",EMPTY_COLUMN_VALUE:"Column Value is empty.",MISSING_IDS_OR_COLUMN_VALUES_IN_GET:'Interface: client get - "ids" key or "columnValues" key is missing.',SKYFLOW_IDS_AND_COLUMN_NAME_BOTH_SPECIFIED:"ids and columnName can not be specified together.",GET_BY_SKYFLOWID_RESOLVED:"%s1 - GetById request is resolved.",RECORDS_KEY_NOT_FOUND_GETBYID:"Interface: client getById - records object is required.",INVALID_RECORDS_IN_GETBYID:"Interface: client getById - Invalid records. records object should be an array.",EMPTY_RECORDS_GETBYID:"Interface: client getById - records array cannot be empty.",MISSING_IDS_IN_GETBYID:'Interface: client getById - "ids" key is required in records array at index %s1',INVALID_IDS_IN_GETBYID:"Interface: client getById - Invalid ids. ids object should be an array.",EMPTY_IDS_IN_GETBYID:"Interface: client getById - ids array cannot be empty at index %s1",INVALID_SKYFLOWID_TYPE_IN_GETBYID:"Interface: client getById - Invalid skyflowId in ids array at index %s1",MISSING_TABLE_IN_GETBYID:'Interface: client getById - "table" key is required in records array at index %s1',INVALID_TABLE_IN_GETBYID:"Interface: client getById - table of type string is required at index %s1 in records array.",MISSING_REDACTION_IN_GETBYID:'Interface: client getById - "redaction" key is required in records array at index %s1',INVALID_REDACTION_TYPE_IN_GETBYID:"Interface: client getById - Invalid redaction type in records array at index %s1",EMPTY_SKYFLOWID_IN_GETBYID:"Interface: client getById - id cannot be empty in records array at index %s1",EMPTY_TABLE_IN_GETBYID:"Interface: client getById - table cannot be empty in records array at index %s1",EMPTY_REDACTION_TYPE_IN_GETBYID:"Interface: client getById - redaction cannot be empty in records array at index %s1",GET_BY_SKYFLOWID_REJECTED:"Interface: client getById - getById request is rejected.",MISSING_COMPOSABLE_LAYOUT_KEY:"Interface: client container - layout is required in composable container options.",EMPTY_COMPOSABLE_LAYOUT_ARRAY:"Interface: client container - layout array cannot be empty in composable container options.",INVALID_COMPOSABLE_LAYOUT_TYPE:"Interface: client container - invalid layout value, layout should be of type array of numbers in composable container options.",NEGATIVE_VALUES_COMPOSABLE_LAYOUT:"Interface: client container - layout array should only have postive numbers in composable container options.",MISMATCH_ELEMENT_COUNT_LAYOUT_SUM:"Interface: composable container mount - created elements count should be equal to sum of layout values.",MISSING_COMPOSABLE_CONTAINER_OPTIONS:"Interface: client composable container - options object is required for composable container.",INVALID_COMPOSABLE_CONTAINER_OPTIONS:"Interface: client composable container - invalid options value, should be an object type.",COMPOSABLE_CONTAINER_NOT_MOUNTED:"Interface: composable collect - container should be mounted before invoking collect.",INVALID_BOOLEAN_OPTIONS:"Interface: container create - Invaild %s1 in options, %s1 of type boolean is required.",INVALID_INPUT_OPTIONS_FORMAT:"Interface: container create - Invalid type, format must be of non-empty string type.",INVALID_INPUT_OPTIONS_TRANSLATION:"Interface: container create - Invalid type, translation must be of non-empty object type.",EMPTY_COLLECT_CUSTOM_FORMAT:"Interface: container create - %s1 cannot be empty object."},l={INVALID_EXPIRATION_DATE_FORMAT:"EXPIRATION_DATE format must be in one of %s1, the format is set to default MM/YY",INVALID_EXPIRATION_YEAR_FORMAT:"EXPIRATION_YEAR format must be in one of %s1, the format is set to default YY",UNABLE_TO_SET_VALUE_IN_PROD_ENV:"%s1 setValue() cannot invoked while in PROD env. It is Not Recommeded",UNABLE_TO_CLEAR_VALUE_IN_PROD_ENV:"%s1 clearValue() cannot invoked while in PROD env. It is Not Recommeded",COLLECT_ALT_TEXT_DEPERECATED:"altText is DEPERECATED, passing altText will not have any effect",GET_BY_ID_DEPRECATED:"getById is deprecated, use new get method",INPUT_FORMATTING_NOT_SUPPROTED:"format or translation are not supported on %s1 element type.",INVALID_INPUT_TRANSLATION:"invalid or unsupported translation provided for %s1 element type."},d="collect_controller",c="element",u="ERROR",p={CHANGE:"CHANGE",READY:"READY",FOCUS:"FOCUS",BLUR:"BLUR",ESCAPE:"ESCAPE",CLICK:"CLICK",ERROR:"ERROR",SUCCESS:"SUCCESS",SUBMIT:"SUBMIT",CREATED:"CREATED",MOUNTED:"MOUNTED",HEIGHT:"HEIGHT"},h="FRAME_READY",_="TOKENIZATION_REQUEST",E="RESET",m="INPUT_EVENT",v="DESTROY_FRAME",y="SET_VALUE",I="SET_ATTRIBUTE",f="GET_BEARER_TOKEN",A="COLLECT_ELEMENT_SET_ERROR",L="COMPOSABLE_UPDATE_OPTIONS",g="VALIDATE_ELEMENT",O="COMPOSABLE_CONTAINER_MOUNTED",T="COLLECT_CONTAINER_MOUNTED";var C,R;!function(e){e.CVV="CVV",e.EXPIRATION_DATE="EXPIRATION_DATE",e.CARD_NUMBER="CARD_NUMBER",e.CARDHOLDER_NAME="CARDHOLDER_NAME",e.INPUT_FIELD="INPUT_FIELD",e.PIN="PIN",e.EXPIRATION_MONTH="EXPIRATION_MONTH",e.EXPIRATION_YEAR="EXPIRATION_YEAR"}(C||(C={})),function(e){e.VISA="VISA",e.MASTERCARD="MASTERCARD",e.AMEX="AMEX",e.DINERS_CLUB="DINERS_CLUB",e.DISCOVER="DISCOVER",e.JCB="JCB",e.MAESTRO="MAESTRO",e.UNIONPAY="UNIONPAY",e.HIPERCARD="HIPERCARD",e.DEFAULT="DEFAULT",e.CVV="CVV",e.EXPIRY="EXPIRY",e.ERROR="ERROR",e.UNKNOWN="UNKNOWN",e.ELO="ELO"}(R||(R={}));const N={[R.AMEX]:["XXXX XXXXXX XXXXX",{X:"[0-9]"}],[R.VISA]:["XXXX XXXX XXXX XXXX",{X:"[0-9]"}],[R.MASTERCARD]:["XXXX XXXX XXXX XXXX",{X:"[0-9]"}],[R.DISCOVER]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[R.DINERS_CLUB]:["XXXX XXXXXX XXXXXX",{X:"[0-9]"}],[R.JCB]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[R.MAESTRO]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[R.UNIONPAY]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[R.HIPERCARD]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[R.DEFAULT]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[R.UNKNOWN]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[R.ELO]:["XXXX XXXX XXXX XXXX",{X:"[0-9]"}]},S={textarea:{name:"textarea",attributes:{type:"textarea"},sensitive:!1},checkbox:{name:"checkbox",attributes:{type:"checkbox"},sensitive:!1},radio:{name:"radio",attributes:{type:"radio"},sensitive:!1},dropdown:{name:"dropdown",attributes:{type:"select"},sensitive:!1},[C.CARDHOLDER_NAME]:{name:"cardHolderName",attributes:{type:"text",autocomplete:"cc-name"},sensitive:!0,regex:/^([a-zA-Z\\ \\,\\.\\-\\']{2,})$/},[C.CARD_NUMBER]:{name:"CARD_NUMBER",attributes:{type:"text",autocomplete:"cc-number",inputmode:"numeric"},sensitive:!0,mask:N[R.DEFAULT],regex:/$|^[\s]*?([0-9]{2,6}[ -]?){3,5}[\s]*/},[C.EXPIRATION_DATE]:{name:"EXPIRATION_DATE",attributes:{type:"text",autocomplete:"cc-exp",inputmode:"numeric"},sensitive:!0},[C.EXPIRATION_MONTH]:{name:"EXPIRATION_MONTH",attributes:{maxLength:2,type:"text",inputmode:"numeric",autocomplete:"cc-exp-month"},sensitive:!0,mask:["XX",{X:"[0-9]"}]},[C.EXPIRATION_YEAR]:{name:"EXPIRATION_YEAR",attributes:{type:"text",inputmode:"numeric",autocomplete:"cc-exp-year"},sensitive:!0},[C.CVV]:{name:"CVV",attributes:{type:"text",inputmode:"numeric",maxLength:3},sensitive:!0,regex:/^$|^[0-9]{3,4}$/},[C.INPUT_FIELD]:{name:"INPUT_FIELD",sensitive:!0,attributes:{type:"text"}},[C.PIN]:{name:"PIN",attributes:{type:"text",inputmode:"numeric",maxLength:12,minLength:4},sensitive:!0,regex:/^$|^[0-9]{4,12}$/}},P="XXXX-XXXX-XXXX-XXXX",b={height:"100%",width:"100%",margin:0,padding:0,border:0,position:"absolute",top:0,left:0,"user-select":"none"},D={position:"absolute",top:0,width:0,height:0,visibility:"hidden",left:"-99999999px","user-select":"none"},M={width:"100%",height:"100%",border:"0",padding:"0",margin:"0",outline:"none"},w={WEBPACKAUTOFILL:"-webkit-autofill",BASE:"base",FOCUS:"focus",COMPLETE:"complete",EMPTY:"empty",INVALID:"invalid",GLOBAL:"global",REQUIRED_ASTERISK:"requiredAsterisk"},k={[R.VISA]:{regex:/^4\d*/,maxCardLength:19,cardLengthRange:[13,16]},[R.MASTERCARD]:{regex:/^(5[1-5]|222[1-9]|22[3-9]|2[3-6]|27[0-1]|2720)\d*/,maxCardLength:16,cardLengthRange:[16]},[R.AMEX]:{regex:/^3[47]\d*/,maxCardLength:15,cardLengthRange:[15]},[R.DINERS_CLUB]:{regex:/^(36|38|30[0-5])\d*/,maxCardLength:16,cardLengthRange:[14,15,16,17,18,19]},[R.DISCOVER]:{regex:/^(6011|65|64[4-9]|622)\d*/,maxCardLength:16,cardLengthRange:[16,17,18,19]},[R.JCB]:{regex:/^35\d*/,maxCardLength:19,cardLengthRange:[16,17,18,19]},[R.HIPERCARD]:{regex:/^606282\d*/,maxCardLength:19,cardLengthRange:[14,15,16,17,18,19]},[R.UNIONPAY]:{regex:/^62\d*/,maxCardLength:19,cardLengthRange:[16,17,18,19]},[R.MAESTRO]:{regex:/^(5018|5020|5038|5043|5[6-9]|6020|6304|6703|6759|676[1-3])\d*/,maxCardLength:19,cardLengthRange:[12,13,14,15,16,17,18,19]},[R.ELO]:{regex:/^(?:40117[89]|431274|438935|451416|457393|45763[12]|504175|506(699|7[0-6]\d|77[0-8])|509\d{3}|627780|636(297|368)|650(0(3[1-3]|3[5-9]|4\d|5[01])|4(0[5-9]|[12]\d|3\d)|(4(8[5-9]|9\d)|5([0-2]\d|3[0-8]))|5(4[1-9]|[5-8]\d|9[0-8])|7(0\d|1[0-8]|2[0-7])|9(0[1-9]|[1-6]\d|7[0-8]))|6516(5[2-9]|[67]\d)|6550([01]\d|2[1-9]|[34]\d|5[0-8]))\d*/,maxCardLength:16,cardLengthRange:[16]}};R.DEFAULT,R.CVV,R.EXPIRY,R.ERROR,R.AMEX,R.DINERS_CLUB,R.DISCOVER,R.HIPERCARD,R.JCB,R.MAESTRO,R.MASTERCARD,R.UNIONPAY,R.VISA,R.ELO;const Y="MM/YY",U=[Y,"YYYY/MM","YY/MM","MM/YYYY"],x=["YY","YYYY"];var F;!function(e){e.APPLICATIONORJSON="application/json",e.TEXTORPLAIN="text/plain",e.TEXTORXML="text/xml",e.FORMURLENCODED="application/x-www-form-urlencoded",e.FORMDATA="multipart/form-data"}(F||(F={})),C.CARD_NUMBER,C.EXPIRATION_DATE,C.EXPIRATION_MONTH,C.EXPIRATION_YEAR,C.CVV,C.EXPIRATION_DATE,C.CARD_NUMBER,C.CARDHOLDER_NAME,C.INPUT_FIELD,a.INVALID_COLLECT_VALUE,C.PIN,C.EXPIRATION_MONTH,C.EXPIRATION_YEAR,C.CVV,C.EXPIRATION_DATE,C.CARD_NUMBER,C.CARDHOLDER_NAME,C.INPUT_FIELD,a.DEFAULT_REQUIRED_COLLECT_VALUE,C.PIN,C.EXPIRATION_MONTH,C.EXPIRATION_YEAR;const j=[C.CARDHOLDER_NAME,C.EXPIRATION_MONTH,C.PIN,C.CVV],B={X:"[0-9]"},V={visa:k.VISA.regex,mastercard:k.MASTERCARD.regex,amex:k.AMEX.regex,diners_club:k.DINERS_CLUB.regex,discover:k.DISCOVER.regex,jcb:k.JCB.regex,hipercard:k.HIPERCARD.regex,unionpay:k.UNIONPAY.regex,maestro:k.MAESTRO.regex,elo:k.ELO.regex};const G=[];for(let e=0;e<256;++e)G.push((e+256).toString(16).slice(1));let X;const z=new Uint8Array(16);var H={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function q(e,t,i){if(H.randomUUID&&!e)return H.randomUUID();const n=(e=e||{}).random??e.rng?.()??function(){if(!X){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");X=crypto.getRandomValues.bind(crypto)}return X(z)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=15&n[6]|64,n[8]=63&n[8]|128,function(e,t=0){return(G[e[t+0]]+G[e[t+1]]+G[e[t+2]]+G[e[t+3]]+"-"+G[e[t+4]]+G[e[t+5]]+"-"+G[e[t+6]]+G[e[t+7]]+"-"+G[e[t+8]]+G[e[t+9]]+"-"+G[e[t+10]]+G[e[t+11]]+G[e[t+12]]+G[e[t+13]]+G[e[t+14]]+G[e[t+15]]).toLowerCase()}(n)}var W;!function(e){e.GET="GET",e.POST="POST",e.DELETE="DELETE",e.PATCH="PATCH"}(W||(W={}));const K=e=>t(void 0,[e],void 0,function*({url:e,method:t=W.GET,token:i="",body:n}){const s={method:t,headers:Object.assign(Object.assign(Object.assign({},te()),ee(i)),ie())};t!==W.POST&&t!==W.PATCH||(s.body=JSON.stringify(n||{}));const o=yield fetch(e,s);if([401,403].includes(o.status))throw new $(e,t);if(429===o.status)throw new J(e,t);if(!o.ok)throw new Z(e,t);const r=yield o.json();return{ok:o.ok,req:Object.assign({url:e},s),res:r}});class $ extends s.PayrailsError{constructor(e,t){super(s.ERROR_CODES.PAYRAILS_API_UNAUTHORIZED,{description:`[${t}] ${e} unauthorized`})}}let Z=class extends s.PayrailsError{constructor(e,t){super(s.ERROR_CODES.PAYRAILS_API_UNSUCCESSFUL,{description:`[${t}] ${e} unsuccessful`})}},J=class extends s.PayrailsError{constructor(e,t){super(s.ERROR_CODES.PAYRAILS_API_TOO_MANY_REQUESTS,{description:`[${t}] ${e} too many requests`})}};class Q extends s.PayrailsError{constructor(e,t){super(s.ERROR_CODES.PAYRAILS_API_TOO_MANY_REQUESTS,{description:`[${t}] ${e} max poll attempts exceeded.`})}}const ee=e=>({authorization:`Bearer ${e}`}),te=()=>({"x-idempotency-key":q()}),ie=()=>{const e={version:"5.47.0",type:"web-sdk"};return{"x-client-version":e.version,"x-client-type":e.type}},ne=({url:e,token:t,body:i})=>K({url:e,token:t,method:W.POST,body:i});function se(...e){function t(e,i){if(void 0===i)return e;if("object"!=typeof e||null===e)return i;if("object"!=typeof i||null===i)return i;if(Array.isArray(i)||Array.isArray(e))return i;const n=Object.assign({},e);for(const s of Object.keys(i))void 0!==i[s]&&(i[s]&&"object"==typeof i[s]&&!Array.isArray(i[s])&&e[s]&&"object"==typeof e[s]&&!Array.isArray(e[s])?n[s]=t(e[s],i[s]):n[s]=i[s]);return n}return e.reduce((e,i)=>t(e,i),{})}var oe,re;exports.PAYMENT_METHOD_CODES=void 0,(oe=exports.PAYMENT_METHOD_CODES||(exports.PAYMENT_METHOD_CODES={})).CARD="card",oe.GOOGLE_PAY="googlePay",oe.PAYPAL="payPal",oe.APPLE_PAY="applePay",oe.GENERIC_REDIRECT="genericRedirect",oe.LEAN="lean",oe.MERCADO_PAGO="mercadoPago",oe.PIX="pix",oe.BANK_ACCOUNT="bankAccount",oe.IDEAL="iDeal",oe.YAPE="yape",oe.UPI="upi",oe.KLARNA="klarna",oe.ONE_VOUCHER="1voucher",oe.ALFA="alfa",oe.APLAZO="aplazo",oe.BANK_TRANSFER="bankTransfer",oe.CAPITEC_PAY="capitecPay",oe.EASYPAISA="easypaisa",oe.EFT_PRO="eftPro",oe.FAWRY_PAY="fawryPay",oe.JAZZ_CASH="jazzCash",oe.KONNECT="konnect",oe.KUESKI="kueski",oe.MONO_DIRECT_DEBIT="monoDirectDebit",oe.O_PAY_WALLET="oPayWallet",oe.PAGA_WALLET="pagaWallet",oe.PAYFLEX="payflex",oe.PAY_JUST_NOW="payjustnow",oe.WAFA_CASH_WALLET="wafaCashWallet",oe.MERCADO_PAGO_WALLET="mercadoPagoWallet",oe.MERCADO_PAGO_CONSUMER_CREDIT="mercadoPagoConsumerCredit",oe.NET_BANKING="netBanking",oe.CASH_FREE_WALLET="cashFreeWallet",oe.PAYTM_WALLET="paytmWallet",oe.NIBSS_PAY="nibssPay",oe.NIBSS_INSTANT_PAY="nibssInstantPay",oe.MEEZA_WALLET="meezaWallet",oe.VODAFONE_CASH="vodafoneCash",oe.SEPA_DIRECT_DEBIT="sepaDirectDebit",oe.MODO="modo",oe.PAYZONE_CASH="payzoneCash",oe.REVOLUT_PAY="revolutPay",Object.fromEntries(Object.entries(exports.PAYMENT_METHOD_CODES).map(([e,t])=>[e,t])),function(e){e.ENABLED="enabled",e.CREATED="created",e.DELETED="deleted",e.DISABLED="disabled",e.INVALID="invalid",e.TRANSIENT="transient"}(re||(re={}));const ae=["customer"];class le{static get response(){if(!le._response){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND);throw o.PayrailsLogger.error(e.message,{error:e}),e}return le._response}static setResponse(e){return le._response=e,le._updatedMetaKeys=new Set,le}static get executionId(){var e;return null===(e=le._response)||void 0===e?void 0:e.id}static get workflowCode(){return le.response.workflow.code}static get lookup(){return le.response.initialResults.find(({body:{name:e}})=>"lookup"===e)}static get holderReference(){return le.response.holderReference}static get savedCreditCards(){return le.getStoredInstrumentForPaymentMethod(exports.PAYMENT_METHOD_CODES.CARD)}static get savedPaypalAccounts(){return le.getStoredInstrumentForPaymentMethod(exports.PAYMENT_METHOD_CODES.PAYPAL).filter(({status:e})=>e===re.ENABLED)}static get savedGooglePayAccounts(){return le.getStoredInstrumentForPaymentMethod(exports.PAYMENT_METHOD_CODES.GOOGLE_PAY).filter(({status:e})=>e===re.ENABLED)}static get savedApplePayAccounts(){return le.getStoredInstrumentForPaymentMethod(exports.PAYMENT_METHOD_CODES.APPLE_PAY)}static get paypalConfig(){const e=le.availablePaymentMethods.find(({paymentMethodCode:e})=>e===exports.PAYMENT_METHOD_CODES.PAYPAL);if(!e){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_CONFIG_MISSING);throw o.PayrailsLogger.error(e.message,{error:e,extra:{availablePaymentMethods:le.availablePaymentMethods}}),e}return e.config||{}}static get googlePayConfig(){var e;const t=le.availablePaymentMethods.find(({paymentMethodCode:e})=>e===exports.PAYMENT_METHOD_CODES.GOOGLE_PAY);if(!t){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_GPAY_CONFIG_MISSING);throw o.PayrailsLogger.error(e.message,{error:e,extra:{availablePaymentMethods:le.availablePaymentMethods}}),e}const i=t;return(null===(e=i.clientConfig)||void 0===e?void 0:e.additionalConfig)&&void 0!==i.clientConfig.additionalConfig.apiVersion?i.clientConfig.additionalConfig:[i.config]}static isPaymentMethodAvailable(e){return le.availablePaymentMethods.some(({paymentMethodCode:t})=>t===e)}static get applePayConfig(){const e=le.availablePaymentMethods.find(({paymentMethodCode:e})=>e===exports.PAYMENT_METHOD_CODES.APPLE_PAY);if(!e){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_APPLEPAY_CONFIG_MISSING);throw o.PayrailsLogger.error(e.message,{error:e,extra:{availablePaymentMethods:le.availablePaymentMethods}}),e}return e.config.parameters}static get url(){return le.response.links.self}static get meta(){return le.response.meta}static get availablePaymentMethods(){var e;return(null===(e=le.lookup)||void 0===e?void 0:e.body.data.paymentCompositionOptions)||[]}static get authorizeLink(){var e,t;return null===(t=null===(e=le.lookup)||void 0===e?void 0:e.body.links.authorize)||void 0===t?void 0:t.href}static get payoutLink(){var e,t;return null===(t=null===(e=le.lookup)||void 0===e?void 0:e.body.links.payout)||void 0===t?void 0:t.href}static get createSessionLink(){var e;return null===(e=le.response.links.startPaymentSession)||void 0===e?void 0:e.href}static get createInstrumentLink(){var e;return null===(e=le.response.links.createInstrument)||void 0===e?void 0:e.href}static get storedPaymentInstruments(){return le.availablePaymentMethods.flatMap(e=>e.paymentInstruments||[]).filter(({paymentMethod:e,status:t})=>{const i=[exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,exports.PAYMENT_METHOD_CODES.PAYPAL];return t===re.ENABLED||!i.includes(e)})}static get storedDropinInstruments(){return le.storedPaymentInstruments.filter(({paymentMethod:e})=>![exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,exports.PAYMENT_METHOD_CODES.APPLE_PAY].includes(e))}static getFullPaymentMethodConfig(e){return le.availablePaymentMethods.find(({paymentMethodCode:t})=>t===e)}static isAddressSelectorEnabled(e){var t,i;return!!le._response&&(null===(i=null===(t=le.getFullPaymentMethodConfig(e))||void 0===t?void 0:t.clientConfig)||void 0===i?void 0:i.supportsBillingInfo)}static isPaymentInstallmentsEnabled(e){var t;if(le._response){const i=this.getFullPaymentMethodConfig(e);return i&&(null===(t=this.getPaymentMethodConfig(i).clientConfig)||void 0===t?void 0:t.supportsInstallments)}return!1}static getPaymentInstallmentOptions(e){var t;const i=this.getFullPaymentMethodConfig(e);return i&&(null===(t=this.getPaymentMethodConfig(i).clientConfig)||void 0===t?void 0:t.installments)||{}}static getStoredInstrumentForPaymentMethod(e){var t;return(null===(t=this.availablePaymentMethods.find(({paymentMethodCode:t})=>t===e))||void 0===t?void 0:t.paymentInstruments)||[]}static getPaymentMethodForStoredInstrument(e){const t=this.availablePaymentMethods.find(({paymentInstruments:t})=>null==t?void 0:t.some(({id:t})=>t===e.id));return t&&this.getPaymentMethodConfig(t)}static getPaymentMethodConfig(t){const{paymentInstruments:i}=t;return e(t,["paymentInstruments"])}static updateInstallmentOptions(e){const t=le.getFullPaymentMethodConfig(exports.PAYMENT_METHOD_CODES.CARD);(null==t?void 0:t.clientConfig)&&(t.clientConfig.installments=e)}static updateMeta(e,t){if(!ae.includes(e))return;const i=le.response.meta||{},n=se(i[e]||{},t);le._response=Object.assign(Object.assign({},le.response),{meta:Object.assign(Object.assign({},i),{[e]:n})}),le._updatedMetaKeys.add(e)}static getAllowedMeta(){const e=le.response.meta||{};return le.pickMetaByKeys(e,ae)}static getUpdatedMeta(){const e=le.response.meta||{};return le.pickMetaByKeys(e,le._updatedMetaKeys)}static pickMetaByKeys(e,t){const i={};for(const n of t){const t=e[n];void 0!==t&&(i[n]=t)}return i}}var de,ce;le._updatedMetaKeys=new Set,function(e){e.REDIRECT="redirect",e.DIRECT="direct",e.EMBEDDED="embedded"}(de||(de={})),exports.INTEGRATION_TYPE=void 0,(ce=exports.INTEGRATION_TYPE||(exports.INTEGRATION_TYPE={})).API="api",ce.HPP="hpp";class ue{constructor(){this._config=void 0}static getInstance(){return ue._instance||(ue._instance=new ue),ue._instance}set config(e){try{ue.getInstance()._config=e}catch(e){o.PayrailsLogger.error("Error parsing SDK Configuration",{error:e})}}get config(){return ue.getInstance()._config||o.PayrailsLogger.error("SDK Configuration not set"),ue.getInstance()._config||{}}}const pe=()=>ue.getInstance().config,he=e=>{try{const t=JSON.parse(function(e){const t=window.atob(e);return decodeURIComponent(Array.prototype.map.call(t,e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}(e.data));ue.getInstance().config=t,t.execution&&le.setResponse(t.execution)}catch(e){o.PayrailsLogger.error("Error parsing SDK Configuration",{error:e})}};exports.ElementType=void 0,function(e){e.CARD_NUMBER="CARD_NUMBER",e.CARDHOLDER_NAME="CARDHOLDER_NAME",e.CVV="CVV",e.EXPIRATION_MONTH="EXPIRATION_MONTH",e.EXPIRATION_YEAR="EXPIRATION_YEAR",e.EXPIRATION_DATE="EXPIRATION_DATE"}(exports.ElementType||(exports.ElementType={}));class _e{constructor(e,i){var n;this.bin="",this.isBinLookupEnabled=!1,this.id="payrails-container-wrapper",this.dataTestId="payrails-container-wrapper",this.className="payrails-container-wrapper",this.containerType="COMPOSABLE",this.manualErrorElements=new Set,this.fetchBinLookup=e=>t(this,void 0,void 0,function*(){var t,i;if(!e)return{bin:""};if(e.length<6)return{bin:e};const n=`${null===(i=null===(t=pe().links)||void 0===t?void 0:t.binLookup)||void 0===i?void 0:i.href}`;if(!n)return{bin:e};const r=pe().token,a={bin:e};try{const e=yield(({url:e,token:t,body:i})=>K({url:e,method:W.POST,token:t,body:i}))({url:n,token:r,body:a});return e.res}catch(t){const i=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_API_BIN_LOOKUP_FAILED,{description:"Error fetching BIN lookup data!",cause:t});return o.PayrailsLogger.error(i.message,{error:i}),{bin:e}}}),this.cardTableName=i.cardTableName||"cards",this.containerType=i.containerType||"COMPOSABLE",this.isBinLookupEnabled=!!(null===(n=pe().links)||void 0===n?void 0:n.binLookup);try{this.__container=e.container(this.containerType,i)}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CREATION_FAILED,{cause:e});o.PayrailsLogger.error(t.message,{error:t})}}static init(e,t){var i;return this.instance&&(null===(i=this.instance.__container)||void 0===i||i.unmount()),this.instance=new _e(e,t),this.instance}createCollectElement(e){var t;const i={required:!!e.required,enableCardIcon:!1!==e.enableCardIcon},n=null===(t=this.__container)||void 0===t?void 0:t.create(Object.assign(Object.assign({table:this.cardTableName,labelStyles:{},errorTextStyles:{},column:this.elementToFieldMap.get(e.type)},e),{type:e.type===exports.ElementType.CARDHOLDER_NAME?"INPUT_FIELD":e.type}),e.format?Object.assign(Object.assign({},i),{format:e.format}):i);if(!n){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING,{description:"Error creating collect element!"});throw o.PayrailsLogger.error(e.message,{error:e}),e}return this.attachCustomEventHandler(n)}mount(e){if("COLLECT"===this.containerType){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT);throw o.PayrailsLogger.error(e.message,{error:e}),e}this.element=document.createElement("span"),this.element.setAttribute("id",`${this.id}`),this.element.setAttribute("data-testid",this.dataTestId),this.element.setAttribute("class",this.className);const t=document.querySelector(e);if(!t){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_PARENT_ELEMENT_MISSING);throw o.PayrailsLogger.error(t.message,{error:t,extra:{elementSelector:e}}),t}t.appendChild(this.element);try{window.setTimeout(()=>{this.__container.mount(`#${this.id}`)},50)}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT);o.PayrailsLogger.error(t.message,{error:t})}}unmount(){this.element&&this.element.remove()}validate(){return t(this,void 0,void 0,function*(){var e;return yield null===(e=this.__container)||void 0===e?void 0:e.validate()})}collect(){return t(this,void 0,void 0,function*(){try{return yield this.collectPayrailsData()}catch(e){const t=new Error(e.message);t.stack=e.stack,t.name=e.name,t.message=e.message;const i=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_OPERATION_FAILED,{description:"Error collecting data from the iframe!",cause:t});throw t.name!==s.ERROR_CODES.PAYRAILS_CARD_FORM_COMPLETE_AND_VALID_INPUTS&&o.PayrailsLogger.error(i.message,{error:i}),i}})}reset(){var e;null===(e=this.__container)||void 0===e||e.reset()}collectPayrailsData(){return t(this,void 0,void 0,function*(){var e;const t=yield null===(e=this.__container)||void 0===e?void 0:e.collect();return Object.assign(Object.assign({},t),{vaultProviderConfigId:pe().vaultConfiguration.providerConfigId})})}tokenize(e){return t(this,void 0,void 0,function*(){const t=yield this.collect(),i=pe().vaultConfiguration.links.saveInstrument.href,n=pe().token;if(!i){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND,{description:"Save instrument URL not available!"});throw o.PayrailsLogger.error(e.message,{error:e}),e}return(yield ne({url:i,token:n,body:this.constructSaveInstrumentBody(t,e)})).res})}constructSaveInstrumentBody(e,t){var i,n;const s={holderReference:pe().holderReference,paymentMethod:"card",storeInstrument:null!==(i=null==t?void 0:t.storeInstrument)&&void 0!==i&&i,futureUsage:null!==(n=null==t?void 0:t.futureUsage)&&void 0!==n?n:"CardOnFile"};return s.data={encryptedData:e.encryptedData,vaultProviderConfigId:e.vaultProviderConfigId},s}attachCustomEventHandler(e){return new Proxy(e,{get:(e,t)=>{const i=e[t];if("on"===t){return((i,n)=>{e[t].call(e,i,t=>{"CHANGE"===i?(this.manualErrorElements.has(e)&&!t.isEmpty&&("resetError"in e&&"function"==typeof e.resetError&&e.resetError(),this.manualErrorElements.delete(e)),t.elementType===exports.ElementType.CARD_NUMBER&&(t.network=function(e){for(const[t,i]of Object.entries(V))if(i.test(e))return t;return""}(t.value),t.bin=this.formatBin(t.value),this.bin=this.formatBin(t.value)),n(t)):n(t)})}).bind(e)}return"setError"===t?(...t)=>(this.manualErrorElements.add(e),i.apply(e,t)):"function"==typeof i?i.bind(e):i}})}formatBin(e){return e.replace(/[-X]/g,"").slice(0,8)}get elementToFieldMap(){return new Map([[exports.ElementType.CARD_NUMBER,"card_number"],[exports.ElementType.CARDHOLDER_NAME,"cardholder_name"],[exports.ElementType.CVV,"security_code"],[exports.ElementType.EXPIRATION_MONTH,"expiry_month"],[exports.ElementType.EXPIRATION_YEAR,"expiry_year"],[exports.ElementType.EXPIRATION_DATE,"expiry_date"]])}}var Ee={};!function(e){var t=Object.defineProperty,i=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,o=(e,i,n)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n;function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var a,l={},d={};var c,u={};var p,h={};var _,E={};var m,v={};var y,I={};var f,A={};var L,g={};var O,T={};var C,R={};var N,S,P,b,D={},M={};function w(){if(N)return M;N=1,Object.defineProperty(M,"__esModule",{value:!0}),M.Framebus=void 0;var e=z(),t="undefined"!=typeof window&&window.Promise,i=function(){function i(e){void 0===e&&(e={}),this.origin=e.origin||"*",this.channel=e.channel||"",this.verifyDomain=e.verifyDomain,this.targetFrames=e.targetFrames||[],this.limitBroadcastToFramesArray=Boolean(e.targetFrames),this.isDestroyed=!1,this.listeners=[],this.hasAdditionalChecksForOnListeners=Boolean(this.verifyDomain||this.limitBroadcastToFramesArray)}return i.setPromise=function(e){i.Promise=e},i.target=function(e){return new i(e)},i.prototype.addTargetFrame=function(e){this.limitBroadcastToFramesArray&&this.targetFrames.push(e)},i.prototype.include=function(t){return null!=t&&(null!=t.Window&&(t.constructor===t.Window&&(e.childWindows.push(t),!0)))},i.prototype.target=function(e){return i.target(e)},i.prototype.emit=function(t,i,n){if(this.isDestroyed)return!1;var s=this.origin;if(t=this.namespaceEvent(t),(0,e.isntString)(t))return!1;if((0,e.isntString)(s))return!1;"function"==typeof i&&(n=i,i=void 0);var o=(0,e.packagePayload)(t,s,i,n);return!!o&&(this.limitBroadcastToFramesArray?this.targetFramesAsWindows().forEach(function(t){(0,e.sendMessage)(t,o,s)}):(0,e.broadcast)(o,{origin:s,frame:window.top||window.self}),!0)},i.prototype.emitAsPromise=function(e,t){var n=this;return new i.Promise(function(i,s){n.emit(e,t,function(e){i(e)})||s(new Error('Listener not added for "'.concat(e,'"')))})},i.prototype.on=function(t,i){if(this.isDestroyed)return!1;var n=this,s=this.origin,o=i;return t=this.namespaceEvent(t),!(0,e.subscriptionArgsInvalid)(t,o,s)&&(this.hasAdditionalChecksForOnListeners&&(o=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];n.passesVerifyDomainCheck(this&&this.origin)&&n.hasMatchingTargetFrame(this&&this.source)&&i.apply(void 0,e)}),this.listeners.push({eventName:t,handler:o,originalHandler:i}),e.subscribers[s]=e.subscribers[s]||{},e.subscribers[s][t]=e.subscribers[s][t]||[],e.subscribers[s][t].push(o),!0)},i.prototype.off=function(t,i){var n=i;if(this.isDestroyed)return!1;if(this.verifyDomain)for(var s=0;s<this.listeners.length;s++){var o=this.listeners[s];o.originalHandler===i&&(n=o.handler)}t=this.namespaceEvent(t);var r=this.origin;if((0,e.subscriptionArgsInvalid)(t,n,r))return!1;var a=e.subscribers[r]&&e.subscribers[r][t];if(!a)return!1;for(s=0;s<a.length;s++)if(a[s]===n)return a.splice(s,1),!0;return!1},i.prototype.teardown=function(){if(!this.isDestroyed){this.isDestroyed=!0;for(var e=0;e<this.listeners.length;e++){var t=this.listeners[e];this.off(t.eventName,t.handler)}this.listeners.length=0}},i.prototype.passesVerifyDomainCheck=function(e){return!this.verifyDomain||this.checkOrigin(e)},i.prototype.targetFramesAsWindows=function(){return this.limitBroadcastToFramesArray?this.targetFrames.map(function(e){return e instanceof HTMLIFrameElement?e.contentWindow:e}).filter(function(e){return e}):[]},i.prototype.hasMatchingTargetFrame=function(e){if(!this.limitBroadcastToFramesArray)return!0;var t=this.targetFramesAsWindows().find(function(t){return t===e});return Boolean(t)},i.prototype.checkOrigin=function(e){var t,i=document.createElement("a");return i.href=location.href,t="https:"===i.protocol?i.host.replace(/:443$/,""):"http:"===i.protocol?i.host.replace(/:80$/,""):i.host,i.protocol+"//"+t===e||(!this.verifyDomain||this.verifyDomain(e))},i.prototype.namespaceEvent=function(e){return this.channel?"".concat(this.channel,":").concat(e):e},i.Promise=t,i}();return M.Framebus=i,M}function k(){if(b)return D;b=1;var e=D&&D.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(D,"__esModule",{value:!0}),D.subscribeReplier=void 0;var t=w(),i=e((P||(P=1,S=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}),S));return D.subscribeReplier=function(e,n){var s=(0,i.default)();return t.Framebus.target({origin:n}).on(s,function i(o,r){e(o,r),t.Framebus.target({origin:n}).off(s,i)}),s},D}var Y,U={};var x,F={};var j,B,V,G,X={};function z(){return B||(B=1,function(e){var t=l&&l.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),i=l&&l.__exportStar||function(e,i){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(i,n)||t(i,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),i(function(){if(a)return d;a=1,Object.defineProperty(d,"__esModule",{value:!0}),d.detach=d.attach=void 0;var e=z(),t=!1;return d.attach=function(){t||"undefined"==typeof window||(t=!0,window.addEventListener("message",e.onMessage,!1))},d.detach=function(){t=!1,window.removeEventListener("message",e.onMessage,!1)},d}(),e),i(function(){if(c)return u;c=1,Object.defineProperty(u,"__esModule",{value:!0}),u.broadcastToChildWindows=void 0;var e=z();return u.broadcastToChildWindows=function(t,i,n){for(var s=e.childWindows.length-1;s>=0;s--){var o=e.childWindows[s];o.closed?e.childWindows.splice(s,1):n!==o&&(0,e.broadcast)(t,{origin:i,frame:o.top})}},u}(),e),i(function(){if(p)return h;p=1,Object.defineProperty(h,"__esModule",{value:!0}),h.broadcast=void 0;var e=z();return h.broadcast=function t(i,n){var s,o=0,r=n.origin,a=n.frame;try{for(a.postMessage(i,r),(0,e.hasOpener)(a)&&a.opener.top!==window.top&&t(i,{origin:r,frame:a.opener.top});s=a.frames[o];)t(i,{origin:r,frame:s}),o++}catch(e){}},h}(),e),i((_||(_=1,Object.defineProperty(E,"__esModule",{value:!0}),E.subscribers=E.childWindows=E.prefix=void 0,E.prefix="/*framebus*/",E.childWindows=[],E.subscribers={}),E),e),i(function(){if(m)return v;m=1,Object.defineProperty(v,"__esModule",{value:!0}),v.dispatch=void 0;var e=z();return v.dispatch=function(t,i,n,s,o){if(e.subscribers[t]&&e.subscribers[t][i]){var r=[];n&&r.push(n),s&&r.push(s);for(var a=0;a<e.subscribers[t][i].length;a++)e.subscribers[t][i][a].apply(o,r)}},v}(),e),i((y||(y=1,Object.defineProperty(I,"__esModule",{value:!0}),I.hasOpener=void 0,I.hasOpener=function(e){return e.top===e&&null!=e.opener&&e.opener!==e&&!0!==e.opener.closed}),I),e),i((f||(f=1,Object.defineProperty(A,"__esModule",{value:!0}),A.isntString=void 0,A.isntString=function(e){return"string"!=typeof e}),A),e),i(function(){if(L)return g;L=1,Object.defineProperty(g,"__esModule",{value:!0}),g.onMessage=void 0;var e=z();return g.onMessage=function(t){if(!(0,e.isntString)(t.data)){var i=(0,e.unpackPayload)(t);if(i){var n=i.eventData,s=i.reply;(0,e.dispatch)("*",i.event,n,s,t),(0,e.dispatch)(t.origin,i.event,n,s,t),(0,e.broadcastToChildWindows)(t.data,i.origin,t.source)}}},g}(),e),i(function(){if(O)return T;O=1,Object.defineProperty(T,"__esModule",{value:!0}),T.packagePayload=void 0;var e=z();return T.packagePayload=function(t,i,n,s){var o,r={event:t,origin:i};"function"==typeof s&&(r.reply=(0,e.subscribeReplier)(s,i)),r.eventData=n;try{o=e.prefix+JSON.stringify(r)}catch(e){throw new Error("Could not stringify event: ".concat(e.message))}return o},T}(),e),i((C||(C=1,Object.defineProperty(R,"__esModule",{value:!0}),R.sendMessage=void 0,R.sendMessage=function(e,t,i){try{e.postMessage(t,i)}catch(e){}}),R),e),i(k(),e),i(function(){if(Y)return U;Y=1,Object.defineProperty(U,"__esModule",{value:!0}),U.subscriptionArgsInvalid=void 0;var e=z();return U.subscriptionArgsInvalid=function(t,i,n){return!!(0,e.isntString)(t)||"function"!=typeof i||(0,e.isntString)(n)},U}(),e),i((x||(x=1,Object.defineProperty(F,"__esModule",{value:!0})),F),e),i(function(){if(j)return X;j=1,Object.defineProperty(X,"__esModule",{value:!0}),X.unpackPayload=void 0;var e=z();return X.unpackPayload=function(t){var i;if(t.data.slice(0,e.prefix.length)!==e.prefix)return!1;try{i=JSON.parse(t.data.slice(e.prefix.length))}catch(e){return!1}if(i.reply){var n=t.origin,s=t.source,o=i.reply;i.reply=function(t){if(s){var i=(0,e.packagePayload)(o,n,t);i&&s.postMessage(i,n)}}}return i},X}(),e)}(l)),l}const H=r(function(){if(G)return V;G=1;var e=z(),t=w();return(0,e.attach)(),V=t.Framebus}());class q{constructor(e){this.origin=null,this.onAndEmit=(e,t,i="*")=>{const n=`${e}-REQ`,s=n=>{return s=this,o=null,r=function*(){const s=yield t(n);this.bus.target({origin:i}).emit(`${e}-RES`,s)},new Promise((e,t)=>{var i=e=>{try{a(r.next(e))}catch(e){t(e)}},n=e=>{try{a(r.throw(e))}catch(e){t(e)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,n);a((r=r.apply(s,o)).next())});var s,o,r};return this.bus.on(n,s),()=>this.bus.off(n,s)},this.emitAndResolve=(e,t,r="*",a)=>new Promise((l,d)=>{if(null==a?void 0:a.aborted)return void d(a.reason);const c=`${e}-RES`,u=e=>{h(),l(e)},p=()=>{h(),d(a.reason)},h=()=>{this.bus.off(c,u),null==a||a.removeEventListener("abort",p)};this.bus.on(c,u),null==a||a.addEventListener("abort",p),this.bus.target({origin:r}).emit(`${e}-REQ`,((e,t)=>{for(var r in t||(t={}))n.call(t,r)&&o(e,r,t[r]);if(i)for(var r of i(t))s.call(t,r)&&o(e,r,t[r]);return e})({},t))}),this.bus=new H(e)}static getInstance(){return q.instance||(q.instance=new q),q.instance}on(e,t){return this.bus.on(e,t)}off(e,t){return this.bus.off(e,t)}emit(e,t,i=void 0){return this.bus.emit(e,t,i)}target(e){return this.bus.target(e)}}var W=(e=>(e.BUTTON_CLICK_VALIDATE="BUTTON_CLICK_VALIDATE",e.COLLECT="COLLECT",e.READY="READY",e.SHOW="SHOW",e.ERROR="ERROR",e.COLLECT_ERROR="COLLECT_ERROR",e.RESIZE="RESIZE",e.IS_AVAILABLE="IS_AVAILABLE",e))(W||{}),K=(e=>(e.Collect="COLLECT",e.Display="DISPLAY",e))(K||{}),$=(e=>(e.GooglePay="GOOGLE_PAY",e))($||{});e.COLLECT_FRAME_EVENT_NAMES=W,e.IframeEventBus=q,e.SecureFrameMode=K,e.SecureFrameType=$,e.getEventBus=()=>q.getInstance()}(Ee);class me{constructor(){this.events={}}on(e,t,i=!1){this.events[e]?this.events[e].push({priority:i,callback:t}):this.events[e]=[{priority:i,callback:t}]}off(e,t){const i=this.events[e];if(!i)return;const n=i.findIndex(e=>e.callback===t);i.splice(n,1)}_emit(e,...t){const i=this.events[e];i&&i.forEach(e=>{e.callback(...t)})}hasListener(e){const t=this.events[e];return!!t&&t.length>0}resetEvents(){const e={};Object.keys(this.events).forEach(t=>{const i=this.events[t];if(i&&i.length>0){const n=[];i.forEach(e=>{e.priority&&n.push(e)}),e[t]=n}}),this.events=e}static createChild(e){e.prototype=Object.create(me.prototype,{constructor:e})}}
1
+ !function(){"use strict";var e=require("dompurify");function t(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}function i(e,t,i,n){return new(i||(i=Promise))(function(s,o){function r(e){try{l(n.next(e))}catch(e){o(e)}}function a(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(r,a)}l((n=n.apply(e,t||[])).next())})}function n(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}function s(e,t,i,n,s){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?s.call(e,i):s?s.value=i:t.set(e,i),i}"function"==typeof SuppressedError&&SuppressedError;var o={};!function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var t=(e=>(e.PAYRAILS_CLIENT_CONFIG_MALFORMED="payrails:client:init.config_malformed",e.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT="payrails:client:collectContainer.unmountable",e.PAYRAILS_CLIENT_UI_ELEMENT_MISSING="payrails:client:mount.ui_element_missing",e.PAYRAILS_CLIENT_PARENT_ELEMENT_MISSING="payrails:client:mount.parent_element_missing",e.PAYRAILS_CLIENT_SUBELEMENTS_RENDER_ERROR="payrails:client:mount.subelements_render_error",e.PAYRAILS_CLIENT_CARD_FORM_MISSING="payrails:client:pay.card_form_missing",e.PAYRAILS_CLIENT_GPAY_LOADING_ERROR="payrails:client:mount.gpay_loading_error",e.PAYRAILS_CLIENT_GPAY_CONFIG_MISSING="payrails:client:init.gpay_config_missing",e.PAYRAILS_CLIENT_APPLEPAY_LOADING_ERROR="payrails:client:mount.applepay_loading_error",e.PAYRAILS_CLIENT_APPLEPAY_CONFIG_MISSING="payrails:client:init.applepay_config_missing",e.PAYRAILS_CLIENT_APPLEPAY_START_PAYMENT_SESSION_ERROR="payrails:client:init.applepay_start_payment_session_error",e.PAYRAILS_CLIENT_APPLEPAY_MERCHANT_VALIDATION_FAILED="payrails:client:init.applepay_merchant_validation_failed",e.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR="payrails:client:init.paypal_loading_error",e.PAYRAILS_CLIENT_PAYPAL_CONFIG_MISSING="payrails:client:init.paypal_config_missing",e.PAYRAILS_CLIENT_PAYPAL_ORDER_CREATION="payrails:client:init.paypal_order_creation",e.PAYRAILS_CLIENT_PAYPAL_BUTTON_MOUNT="payrails:client:mount.paypal_button_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAY_ERROR="payrails:client:payment_executor.pay_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAYOUT_ERROR="payrails:client:payment_executor.payout_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_3DS_ERROR="payrails:client:payment_executor.3ds_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_CONFIRM_ERROR="payrails:client:payment_executor.confirm_error",e.PAYRAILS_API_UNAUTHORIZED="payrails:api:unauthorized",e.PAYRAILS_API_TOO_MANY_REQUESTS="payrails:api:too_many_requests",e.PAYRAILS_API_UNSUCCESSFUL="payrails:api:unsuccessful",e.PAYRAILS_API_AUTHORIZATION_NOT_REQUESTED="payrails:api:authorization_not_requested",e.PAYRAILS_API_AUTHENTICATION_ERROR="payrails:api:request_authentication_error",e.PAYRAILS_API_AUTHORIZATION_ERROR="payrails:api:request_authorization_error",e.PAYRAILS_API_PAYOUT_ERROR="payrails:api:request_payout_error",e.PAYRAILS_CLIENT_API_URL_NOT_FOUND="payrails:client:api_url_not_found",e.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND="payrails:client:workflow_execution_not_found",e.PAYRAILS_CARD_FORM_CREATION_FAILED="payrails:card_form:iframe_creation_failed",e.PAYRAILS_CARD_FORM_IFRAME_URL_MISSING="payrails:card_form:iframe_url_missing",e.PAYRAILS_CLIENT_UNKNOWN_ERROR="payrails:client:unknown",e.PAYRAILS_API_UNKNOWN_ERROR="payrails:api:unknown",e.PAYRAILS_CLIENT_SESSION_REFRESH_FAILED="payrails:client:session_refresh_failed",e.PAYRAILS_CLIENT_CALLBACK_FAILED="payrails:client:callback_failed",e.PAYRAILS_API_BIN_LOOKUP_FAILED="payrails:api:bin_lookup_failed",e.PAYRAILS_CARD_FORM_ELEMENT_NOT_MOUNTED_IN_ELEMENT_MATCH_RULE="payrails.card_form.element_not_mounted_in_element_match_rule",e.PAYRAILS_CARD_FORM_REQUIRED_PARAMS_NOT_PROVIDED="payrails.card_form.required_params_not_provided",e.PAYRAILS_CARD_FORM_CLIENT_CONNECTION="payrails.card_form.client_connection",e.PAYRAILS_CARD_FORM_IFRAME_NOT_FOUND="payrails.card_form.iframe_not_found",e.PAYRAILS_CARD_FORM_IFRAME_LOADING_ERROR="payrails.card_form.iframe_loading_error",e.PAYRAILS_CARD_FORM_CSP_ERROR="payrails.card_form.iframe_csp_error",e.PAYRAILS_CARD_FORM_COMPLETE_AND_VALID_INPUTS="payrails.card_form.complete_and_valid_inputs",e.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED="payrails.card_form.collect_element_not_mounted",e.PAYRAILS_CLIENT_GENERIC_REDIRECT_MISSING_REDIRECT_LINK="payrails:client:generic_redirect.missing.redirect_link",e.PAYRAILS_CLIENT_COLLECT_CREATION_FAILED="payrails:client:collect_container.creation.failed",e.PAYRAILS_CLIENT_COLLECT_EMPTY_CONTAINER_TYPE="payrails:client:collect_container.empty_container_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_CONTAINER_TYPE="payrails:client:collect_container.invalid_container_type",e.PAYRAILS_CLIENT_COLLECT_OPERATION_FAILED="payrails:client:collect_container.collect_operation_failed",e.PAYRAILS_CLIENT_VAULT_CONNECTION_ERROR="payrails:client:vault.connection_error",e.PAYRAILS_CLIENT_VAULT_NETWORK_ERROR="payrails:client:vault.network.error",e.PAYRAILS_CLIENT_COLLECT_UNIQUE_ELEMENT_NAME="payrails:client:collect_container.unique_element_name",e.PAYRAILS_CLIENT_COLLECT_INVALID_TOKENS="payrails:client:collect_container.invalid_tokens",e.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_IN_MOUNT="payrails:client:collect_container.empty_element",e.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER="payrails:client:collect_container.invalid_event_listener",e.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER="payrails:client:collect_container.missing_event_handler",e.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER="payrails:client:collect_container.invalid_event_handler",e.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_TYPE="payrails:client:collect_container.invalid_event_type",e.PAYRAILS_CLIENT_COLLECT_TABLE_NAME_MISSING="payrails:client:collect_container.table_name_missing",e.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE="payrails:client:collect_container.empty_table",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_NAME="payrails:client:collect_container.invalid_table_name",e.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN="payrails:client:collect_container.missing_column",e.PAYRAILS_CLIENT_COLLECT_EMPTY_COLUMN="payrails:client:collect_container.empty_column",e.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN="payrails:client:collect_container.invalid_column",e.PAYRAILS_CLIENT_COLLECT_EMPTY_SKYFLOW_ID="payrails:client:collect_container.empty_skyflow_id",e.PAYRAILS_CLIENT_COLLECT_INVALID_SKYFLOW_ID="payrails:client:collect_container.invalid_skyflow_id",e.PAYRAILS_CLIENT_COLLECT_MISMATCH_ELEMENT_COUNT_LAYOUT_SUM="payrails:client:collect_container.mismatch_element_count_layout_sum",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_SELECTOR="payrails:client:collect_container.invalid_element_selector",e.PAYRAILS_CLIENT_COLLECT_DUPLICATE_ELEMENT="payrails:client:collect_container.duplicate_element",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_TYPE="payrails:client:collect_container.invalid_element_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATIONS_TYPE="payrails:client:collect_container.invalid_validations_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_TYPE="payrails:client:collect_container.missing_validation_rule_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_TYPE="payrails:client:collect_container.invalid_validation_rule_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_PARAMS="payrails:client:collect_container.missing_validation_rule_params",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_PARAMS="payrails:client:collect_container.invalid_validation_rule_params",e.PAYRAILS_CLIENT_COLLECT_MISSING_REGEX_IN_REGEX_MATCH_RULE="payrails:client:collect_container.missing_regex_in_regex_match_rule",e.PAYRAILS_CLIENT_COLLECT_MISSING_MIN_AND_MAX_IN_LENGTH_MATCH_RULE="payrails:client:collect_container.missing_min_and_max_in_length_match_rule",e.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_IN_ELEMENT_MATCH_RULE="payrails:client:collect_container.missing_element_in_element_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_IN_ELEMENT_MATCH_RULE="payrails:client:collect_container.invalid_element_in_element_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_REGEX_IN_REGEX_MATCH_RULE="payrails:client:collect_container.invalid_regex_in_regex_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_BOOLEAN_OPTIONS="payrails:client:collect_container.invalid_boolean_options",e.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_TYPE="payrails:client:collect_container.missing_element_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_TYPE="payrails:client:collect_container.empty_element_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_TYPE="payrails:client:collect_container.invalid_upsert_option_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_UPSERT_OPTIONS_ARRAY="payrails:client:collect_container.empty_upsert_options_array",e.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_OBJECT_TYPE="payrails:client:collect_container.invalid_upsert_option_object_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_UPSERT_OPTION="payrails:client:collect_container.missing_table_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_UPSERT_OPTION="payrails:client:collect_container.invalid_table_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN_IN_UPSERT_OPTION="payrails:client:collect_container.missing_column_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN_IN_UPSERT_OPTION="payrails:client:collect_container.invalid_column_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_CONTAINER_OPTIONS="payrails:client:collect_container.missing_composable_container_options",e.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_CONTAINER_OPTIONS="payrails:client:collect_container.invalid_composable_container_options",e.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_LAYOUT_KEY="payrails:client:collect_container.missing_composable_layout_key",e.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE="payrails:client:collect_container.invalid_composable_layout_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_COMPOSABLE_LAYOUT_ARRAY="payrails:client:collect_container.empty_composable_layout_array",e.PAYRAILS_CLIENT_COLLECT_NEGATIVE_VALUES_COMPOSABLE_LAYOUT="payrails:client:collect_container.negative_values_composable_layout",e.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_FORMAT="payrails:client:collect_container.invalid_input_options_format",e.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_TRANSLATION="payrails:client:collect_container.invalid_input_options_translation",e.PAYRAILS_CLIENT_COLLECT_RECORDS_KEY_MISSING_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.records_key_missing_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_RECORDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_records_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_RECORDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_records_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.empty_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_EMPTY_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.empty_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_GET_BEARER_TOKEN_MISSING="payrails:client:collect_container.get_bearer_token_missing",e.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_MISSING="payrails:client:composable_container_options_missing",e.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_INVALID="payrails:client:composable_container_options_invalid",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_UNSUPPORTED_COMPONENT_TYPE="payrails:client:dynamic_element_form.unsupported_component_type",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_MISSING_CONFIG="payrails:client:dynamic_element_form.missing_config",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_NOT_MOUNTED="payrails:client:dynamic_element_form.not_mounted",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_FORM_INVALID="payrails:client:dynamic_element_form.form_invalid",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_PAYMENT_BUTTON_MISSING_WORKFLOW_CODE="payrails:client:payment_button.no_instrument_selected",e.PAYRAILS_CLIENT_CREATE_STORED_INSTRUMENT_INVALID_ELEMENT_TYPE="payrails:client:create_stored_instrument.invalid_element_type",e.PAYRAILS_CLIENT_API_PAYOUT_NO_INSTRUMENT_SELECTED="payrails:client:api:payout_no_instrument_selected",e))(t||{});const i={"payrails:client:init.config_malformed":{description:"The provided configuration string is invalid. Please ensure it matches the required format and structure as defined in the documentation",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:unknown":{description:"Unknown Client",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:unauthorized":{description:"Unauthorized access to the Payrails API",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:too_many_requests":{description:"Too many requests to the Payrails API",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:unsuccessful":{description:"Unsuccessful request to the Payrails API",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collectContainer.unmountable":{description:"Collect container cannot be mounted",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.ui_element_missing":{description:"Collect container element does not exist",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:pay.card_form_missing":{description:"Trying to collect values from non-existent card form",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.gpay_loading_error":{description:"Google pay can not be initialized",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.paypal_loading_error":{description:"Paypal can not be initialized",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.paypal_order_creation":{description:"Paypal order creation failed",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.paypal_button_error":{description:"PaypalButtonError occurred",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.parent_element_missing":{description:"Parent element not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.subelements_render_error":{description:"Subelements could not be rendered. Please set id for the element first.",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:api_url_not_found":{description:"API URL not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:workflow_execution_not_found":{description:"Workflow execution not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.paypal_config_missing":{description:"Paypal config not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:authorization_not_requested":{description:"Authorization was not requested",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.gpay_config_missing":{description:"Google pay config not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:mount.applepay_loading_error":{description:"Apple pay can not be initialized",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.applepay_config_missing":{description:"Apple pay config not found",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:init.applepay_start_payment_session_error":{description:"Apple pay start payment session call failed",docUrl:"https://docs.payrails.com/"},"payrails:client:init.applepay_merchant_validation_failed":{description:"Apple pay merchant validation failed",docUrl:"https://docs.payrails.com/docs/apple-pay#pre-requisites"},"payrails:card_form:iframe_creation_failed":{description:"Error occured while creating an iframe",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:card_form:iframe_url_missing":{description:"Iframe URL is missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:callback_failed":{description:"Callback passed threw an error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:session_refresh_failed":{description:"Error occured while refreshing the session",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:bin_lookup_failed":{description:"Error occured while looking up the BIN",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:request_authentication_error":{description:"Authentication error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:unknown":{description:"Unknown API error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_executor.pay_error":{description:"Error occured while executing a payment",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_executor.payout_error":{description:"Error occured while executing a payout",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_executor.confirm_error":{description:"Error occured while confirming a payment",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:request_authorization_error":{description:"Authorization error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:api:request_payout_error":{description:"Payout error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_executor.3ds_error":{description:"Authorization failed after 3DS challenge.",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.element_not_mounted_in_element_match_rule":{description:"Interface: collect element - collect element is not mounted in ValidationRule params at index %s1 in validations array",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.required_params_not_provided":{description:"Interface: collect element - Required params are not provided.",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.client_connection":{description:"Interface: collect container - client connection not established. client info has not reached iframes",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.iframe_not_found":{description:"Interface: collect element - frame not found:",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.complete_and_valid_inputs":{description:"Interface: collect container - Provide complete and valid inputs",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.collect_element_not_mounted":{description:"Interface: composable collect - collect element is not mounted",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.iframe_loading_error":{description:"Interface: collect element - Error occured while loading iframe",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails.card_form.iframe_csp_error":{description:"Interface: collect element - Content Security Policy error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:generic_redirect.missing.redirect_link":{description:"[Generic Redirect] Missing redirect link in response"},"payrails:client:collect_container.creation.failed":{description:"Collect container failed to initialize",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_container_type":{description:"client container - Invalid container type. Container object cannot be empty.",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_container_type":{description:"client container - Invalid container type. Invalid container object",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:vault.connection_error":{description:"Vault connection error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:vault.network.error":{description:"Vault network error",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.unique_element_name":{description:"client container - Element name must be unique",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_tokens":{description:"client container - Invalid tokens",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_element":{description:"client container - Element cannot be empty",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_event_listener":{description:"client container - Invalid event listener",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_event_handler":{description:"client container - Missing handler in event listener",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_event_handler":{description:"client container - Invalid handler in event listener",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_event_type":{description:"client container - Invalid event type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.table_name_missing":{description:"client container - Table name missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_table":{description:"client container - Table cannot be empty",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_table_name":{description:"client container - Invalid table name",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_column":{description:"client container - Column missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_column":{description:"client container - Column cannot be empty",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_column":{description:"client container - Invalid column",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_skyflow_id":{description:"client container - Skyflow ID cannot be empty",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_skyflow_id":{description:"client container - Invalid Skyflow ID",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.mismatch_element_count_layout_sum":{description:"client container - Element count does not match layout sum",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_element_selector":{description:"client container - Invalid element selector",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.duplicate_element":{description:"client container - Duplicate element",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_element_type":{description:"client container - Invalid element type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_validations_type":{description:"client container - Invalid validations type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_validation_rule_type":{description:"client container - Missing validation rule type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_validation_rule_type":{description:"client container - Invalid validation rule type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_validation_rule_params":{description:"client container - Missing validation rule params",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_validation_rule_params":{description:"client container - Invalid validation rule params",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_regex_in_regex_match_rule":{description:"client container - Missing regex in regex match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_min_and_max_in_length_match_rule":{description:"client container - Missing min and max in length match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_element_in_element_match_rule":{description:"client container - Missing element in element match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_element_in_element_match_rule":{description:"client container - Invalid element in element match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_regex_in_regex_match_rule":{description:"client container - Invalid regex in regex match rule",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_boolean_options":{description:"client container - Invalid boolean options",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_element_type":{description:"client container - Missing element type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_element_type":{description:"client container - EMPTY element type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_upsert_option_type":{description:"client container - Invalid upsert option type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_upsert_options_array":{description:"client container - Empty upsert options array",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_upsert_option_object_type":{description:"client container - Invalid upsert option object type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_table_in_upsert_option":{description:"client container - Missing table in upsert option",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_table_in_upsert_option":{description:"client container - Invalid table in upsert option",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_column_in_upsert_option":{description:"client container - Missing column in upsert option",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_column_in_upsert_option":{description:"client container - Invalid column in upsert option",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_composable_container_options":{description:"client container - Missing composable container options",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_composable_container_options":{description:"client container - Invalid composable container options",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_composable_layout_key":{description:"client container - Missing composable layout key",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_composable_layout_type":{description:"client container - Invalid composable layout type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_composable_layout_array":{description:"client container - Empty composable layout array",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.negative_values_composable_layout":{description:"client container - Negative values in composable layout",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_input_options_format":{description:"client container - Invalid input options format",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_input_options_translation":{description:"client container - Invalid input options translation",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.records_key_missing_in_additional_fields":{description:"client container - Records key missing in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_records_in_additional_fields":{description:"client container - Invalid records in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_records_in_additional_fields":{description:"client container - Missing records in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_table_in_additional_fields":{description:"client container - Missing table in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_table_in_additional_fields":{description:"client container - Empty table in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_table_in_additional_fields":{description:"client container - Invalid table in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.missing_fields_in_additional_fields":{description:"client container - Missing fields in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.empty_fields_in_additional_fields":{description:"client container - Empty fields in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.invalid_fields_in_additional_fields":{description:"client container - Invalid fields in additional fields",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.get_bearer_token_missing":{description:"client container - Get bearer token missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:composable_container_options_missing":{description:"client container - Composable container options missing",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:composable_container_options_invalid":{description:"client container - Composable container options invalid",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:collect_container.collect_operation_failed":{description:"client container - Collect operation failed",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:dynamic_element_form.unsupported_component_type":{description:"client container - Unsupported component type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:dynamic_element_form.missing_config":{description:"client container - Dynamic element form missing config",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:dynamic_element_form.not_mounted":{description:"client container - Dynamic element form not mounted",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:dynamic_element_form.form_invalid":{description:"client container - Dynamic element form is invalid",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:payment_button.no_instrument_selected":{description:"client container - Dynamic element payment button can only support payout workflows",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:create_stored_instrument.invalid_element_type":{description:"client container - Invalid element type",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"},"payrails:client:api:payout_no_instrument_selected":{description:"client container - No instrument selected for payout",docUrl:"https://docs.payrails.com/docs/sdk#initializing-the-sdk"}};var n=(e=>(e.ERROR="payrails:error",e.INFO="payrails:info",e.DEBUG="payrails:debug",e.WARN="payrails:warn",e))(n||{});class s extends Error{constructor(e,t){var n;const{description:o,docUrl:r,cause:a}=null!=t?t:{},{description:l,docUrl:d}=i[e]||{},c=null!=(n=null!=o?o:l)?n:"An unknown error occurred",u=null!=r?r:d;super(c),this.name=e,this.docUrl=u,this.cause=a,this.message=c,Error.captureStackTrace&&Error.captureStackTrace(this,s)}toJSON(){return{name:this.name,message:this.message,docUrl:this.docUrl,stack:this.stack,cause:this.cause}}}e.ERROR_CODES=t,e.PAYRAILS_OBSERVABILITY_EVENTS=n,e.PayrailsError=s}(o);var r={};!function(e){var t=Object.defineProperty,i=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,o=(e,i,n)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n,r=(e,t)=>{for(var r in t||(t={}))n.call(t,r)&&o(e,r,t[r]);if(i)for(var r of i(t))s.call(t,r)&&o(e,r,t[r]);return e};Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var a=(e=>(e.PAYRAILS_CLIENT_CONFIG_MALFORMED="payrails:client:init.config_malformed",e.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT="payrails:client:collectContainer.unmountable",e.PAYRAILS_CLIENT_UI_ELEMENT_MISSING="payrails:client:mount.ui_element_missing",e.PAYRAILS_CLIENT_PARENT_ELEMENT_MISSING="payrails:client:mount.parent_element_missing",e.PAYRAILS_CLIENT_SUBELEMENTS_RENDER_ERROR="payrails:client:mount.subelements_render_error",e.PAYRAILS_CLIENT_CARD_FORM_MISSING="payrails:client:pay.card_form_missing",e.PAYRAILS_CLIENT_GPAY_LOADING_ERROR="payrails:client:mount.gpay_loading_error",e.PAYRAILS_CLIENT_GPAY_CONFIG_MISSING="payrails:client:init.gpay_config_missing",e.PAYRAILS_CLIENT_APPLEPAY_LOADING_ERROR="payrails:client:mount.applepay_loading_error",e.PAYRAILS_CLIENT_APPLEPAY_CONFIG_MISSING="payrails:client:init.applepay_config_missing",e.PAYRAILS_CLIENT_APPLEPAY_START_PAYMENT_SESSION_ERROR="payrails:client:init.applepay_start_payment_session_error",e.PAYRAILS_CLIENT_APPLEPAY_MERCHANT_VALIDATION_FAILED="payrails:client:init.applepay_merchant_validation_failed",e.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR="payrails:client:init.paypal_loading_error",e.PAYRAILS_CLIENT_PAYPAL_CONFIG_MISSING="payrails:client:init.paypal_config_missing",e.PAYRAILS_CLIENT_PAYPAL_ORDER_CREATION="payrails:client:init.paypal_order_creation",e.PAYRAILS_CLIENT_PAYPAL_BUTTON_MOUNT="payrails:client:mount.paypal_button_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAY_ERROR="payrails:client:payment_executor.pay_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAYOUT_ERROR="payrails:client:payment_executor.payout_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_3DS_ERROR="payrails:client:payment_executor.3ds_error",e.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_CONFIRM_ERROR="payrails:client:payment_executor.confirm_error",e.PAYRAILS_API_UNAUTHORIZED="payrails:api:unauthorized",e.PAYRAILS_API_TOO_MANY_REQUESTS="payrails:api:too_many_requests",e.PAYRAILS_API_UNSUCCESSFUL="payrails:api:unsuccessful",e.PAYRAILS_API_AUTHORIZATION_NOT_REQUESTED="payrails:api:authorization_not_requested",e.PAYRAILS_API_AUTHENTICATION_ERROR="payrails:api:request_authentication_error",e.PAYRAILS_API_AUTHORIZATION_ERROR="payrails:api:request_authorization_error",e.PAYRAILS_API_PAYOUT_ERROR="payrails:api:request_payout_error",e.PAYRAILS_CLIENT_API_URL_NOT_FOUND="payrails:client:api_url_not_found",e.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND="payrails:client:workflow_execution_not_found",e.PAYRAILS_CARD_FORM_CREATION_FAILED="payrails:card_form:iframe_creation_failed",e.PAYRAILS_CARD_FORM_IFRAME_URL_MISSING="payrails:card_form:iframe_url_missing",e.PAYRAILS_CLIENT_UNKNOWN_ERROR="payrails:client:unknown",e.PAYRAILS_API_UNKNOWN_ERROR="payrails:api:unknown",e.PAYRAILS_CLIENT_SESSION_REFRESH_FAILED="payrails:client:session_refresh_failed",e.PAYRAILS_CLIENT_CALLBACK_FAILED="payrails:client:callback_failed",e.PAYRAILS_API_BIN_LOOKUP_FAILED="payrails:api:bin_lookup_failed",e.PAYRAILS_CARD_FORM_ELEMENT_NOT_MOUNTED_IN_ELEMENT_MATCH_RULE="payrails.card_form.element_not_mounted_in_element_match_rule",e.PAYRAILS_CARD_FORM_REQUIRED_PARAMS_NOT_PROVIDED="payrails.card_form.required_params_not_provided",e.PAYRAILS_CARD_FORM_CLIENT_CONNECTION="payrails.card_form.client_connection",e.PAYRAILS_CARD_FORM_IFRAME_NOT_FOUND="payrails.card_form.iframe_not_found",e.PAYRAILS_CARD_FORM_IFRAME_LOADING_ERROR="payrails.card_form.iframe_loading_error",e.PAYRAILS_CARD_FORM_CSP_ERROR="payrails.card_form.iframe_csp_error",e.PAYRAILS_CARD_FORM_COMPLETE_AND_VALID_INPUTS="payrails.card_form.complete_and_valid_inputs",e.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED="payrails.card_form.collect_element_not_mounted",e.PAYRAILS_CLIENT_GENERIC_REDIRECT_MISSING_REDIRECT_LINK="payrails:client:generic_redirect.missing.redirect_link",e.PAYRAILS_CLIENT_COLLECT_CREATION_FAILED="payrails:client:collect_container.creation.failed",e.PAYRAILS_CLIENT_COLLECT_EMPTY_CONTAINER_TYPE="payrails:client:collect_container.empty_container_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_CONTAINER_TYPE="payrails:client:collect_container.invalid_container_type",e.PAYRAILS_CLIENT_COLLECT_OPERATION_FAILED="payrails:client:collect_container.collect_operation_failed",e.PAYRAILS_CLIENT_VAULT_CONNECTION_ERROR="payrails:client:vault.connection_error",e.PAYRAILS_CLIENT_VAULT_NETWORK_ERROR="payrails:client:vault.network.error",e.PAYRAILS_CLIENT_COLLECT_UNIQUE_ELEMENT_NAME="payrails:client:collect_container.unique_element_name",e.PAYRAILS_CLIENT_COLLECT_INVALID_TOKENS="payrails:client:collect_container.invalid_tokens",e.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_IN_MOUNT="payrails:client:collect_container.empty_element",e.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER="payrails:client:collect_container.invalid_event_listener",e.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER="payrails:client:collect_container.missing_event_handler",e.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER="payrails:client:collect_container.invalid_event_handler",e.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_TYPE="payrails:client:collect_container.invalid_event_type",e.PAYRAILS_CLIENT_COLLECT_TABLE_NAME_MISSING="payrails:client:collect_container.table_name_missing",e.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE="payrails:client:collect_container.empty_table",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_NAME="payrails:client:collect_container.invalid_table_name",e.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN="payrails:client:collect_container.missing_column",e.PAYRAILS_CLIENT_COLLECT_EMPTY_COLUMN="payrails:client:collect_container.empty_column",e.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN="payrails:client:collect_container.invalid_column",e.PAYRAILS_CLIENT_COLLECT_EMPTY_SKYFLOW_ID="payrails:client:collect_container.empty_skyflow_id",e.PAYRAILS_CLIENT_COLLECT_INVALID_SKYFLOW_ID="payrails:client:collect_container.invalid_skyflow_id",e.PAYRAILS_CLIENT_COLLECT_MISMATCH_ELEMENT_COUNT_LAYOUT_SUM="payrails:client:collect_container.mismatch_element_count_layout_sum",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_SELECTOR="payrails:client:collect_container.invalid_element_selector",e.PAYRAILS_CLIENT_COLLECT_DUPLICATE_ELEMENT="payrails:client:collect_container.duplicate_element",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_TYPE="payrails:client:collect_container.invalid_element_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATIONS_TYPE="payrails:client:collect_container.invalid_validations_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_TYPE="payrails:client:collect_container.missing_validation_rule_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_TYPE="payrails:client:collect_container.invalid_validation_rule_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_PARAMS="payrails:client:collect_container.missing_validation_rule_params",e.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_PARAMS="payrails:client:collect_container.invalid_validation_rule_params",e.PAYRAILS_CLIENT_COLLECT_MISSING_REGEX_IN_REGEX_MATCH_RULE="payrails:client:collect_container.missing_regex_in_regex_match_rule",e.PAYRAILS_CLIENT_COLLECT_MISSING_MIN_AND_MAX_IN_LENGTH_MATCH_RULE="payrails:client:collect_container.missing_min_and_max_in_length_match_rule",e.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_IN_ELEMENT_MATCH_RULE="payrails:client:collect_container.missing_element_in_element_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_IN_ELEMENT_MATCH_RULE="payrails:client:collect_container.invalid_element_in_element_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_REGEX_IN_REGEX_MATCH_RULE="payrails:client:collect_container.invalid_regex_in_regex_match_rule",e.PAYRAILS_CLIENT_COLLECT_INVALID_BOOLEAN_OPTIONS="payrails:client:collect_container.invalid_boolean_options",e.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_TYPE="payrails:client:collect_container.missing_element_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_TYPE="payrails:client:collect_container.empty_element_type",e.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_TYPE="payrails:client:collect_container.invalid_upsert_option_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_UPSERT_OPTIONS_ARRAY="payrails:client:collect_container.empty_upsert_options_array",e.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_OBJECT_TYPE="payrails:client:collect_container.invalid_upsert_option_object_type",e.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_UPSERT_OPTION="payrails:client:collect_container.missing_table_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_UPSERT_OPTION="payrails:client:collect_container.invalid_table_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN_IN_UPSERT_OPTION="payrails:client:collect_container.missing_column_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN_IN_UPSERT_OPTION="payrails:client:collect_container.invalid_column_in_upsert_option",e.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_CONTAINER_OPTIONS="payrails:client:collect_container.missing_composable_container_options",e.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_CONTAINER_OPTIONS="payrails:client:collect_container.invalid_composable_container_options",e.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_LAYOUT_KEY="payrails:client:collect_container.missing_composable_layout_key",e.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE="payrails:client:collect_container.invalid_composable_layout_type",e.PAYRAILS_CLIENT_COLLECT_EMPTY_COMPOSABLE_LAYOUT_ARRAY="payrails:client:collect_container.empty_composable_layout_array",e.PAYRAILS_CLIENT_COLLECT_NEGATIVE_VALUES_COMPOSABLE_LAYOUT="payrails:client:collect_container.negative_values_composable_layout",e.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_FORMAT="payrails:client:collect_container.invalid_input_options_format",e.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_TRANSLATION="payrails:client:collect_container.invalid_input_options_translation",e.PAYRAILS_CLIENT_COLLECT_RECORDS_KEY_MISSING_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.records_key_missing_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_RECORDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_records_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_RECORDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_records_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.empty_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_table_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_MISSING_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.missing_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_EMPTY_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.empty_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_INVALID_FIELDS_IN_ADDITIONAL_FIELDS="payrails:client:collect_container.invalid_fields_in_additional_fields",e.PAYRAILS_CLIENT_COLLECT_GET_BEARER_TOKEN_MISSING="payrails:client:collect_container.get_bearer_token_missing",e.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_MISSING="payrails:client:composable_container_options_missing",e.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_INVALID="payrails:client:composable_container_options_invalid",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_UNSUPPORTED_COMPONENT_TYPE="payrails:client:dynamic_element_form.unsupported_component_type",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_MISSING_CONFIG="payrails:client:dynamic_element_form.missing_config",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_NOT_MOUNTED="payrails:client:dynamic_element_form.not_mounted",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_FORM_INVALID="payrails:client:dynamic_element_form.form_invalid",e.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_PAYMENT_BUTTON_MISSING_WORKFLOW_CODE="payrails:client:payment_button.no_instrument_selected",e.PAYRAILS_CLIENT_CREATE_STORED_INSTRUMENT_INVALID_ELEMENT_TYPE="payrails:client:create_stored_instrument.invalid_element_type",e.PAYRAILS_CLIENT_API_PAYOUT_NO_INSTRUMENT_SELECTED="payrails:client:api:payout_no_instrument_selected",e))(a||{}),l=(e=>(e.ERROR="payrails:error",e.INFO="payrails:info",e.DEBUG="payrails:debug",e.WARN="payrails:warn",e))(l||{});class d{log(e,t){console.group(`%c[${e}] : ${t.mssg}`,function(e){switch(e){case"error":return"color:red";case"info":return"color:blue";case"warn":return"color:orange";default:return"color:black"}}(e)),console.log(t.error),console.log("metadata",t.withMetada),console.log("extra",t.extra),console.groupEnd()}}function c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var u,h={},p={};var _,E={};var m,v={};var y,I={};var f,A={};var L,O={};var g,C={};var T,R={};var N,S={};var b,P={};var D,M,w,k,Y={},U={};function x(){if(D)return U;D=1,Object.defineProperty(U,"__esModule",{value:!0}),U.Framebus=void 0;var e=W(),t="undefined"!=typeof window&&window.Promise,i=function(){function i(e){void 0===e&&(e={}),this.origin=e.origin||"*",this.channel=e.channel||"",this.verifyDomain=e.verifyDomain,this.targetFrames=e.targetFrames||[],this.limitBroadcastToFramesArray=Boolean(e.targetFrames),this.isDestroyed=!1,this.listeners=[],this.hasAdditionalChecksForOnListeners=Boolean(this.verifyDomain||this.limitBroadcastToFramesArray)}return i.setPromise=function(e){i.Promise=e},i.target=function(e){return new i(e)},i.prototype.addTargetFrame=function(e){this.limitBroadcastToFramesArray&&this.targetFrames.push(e)},i.prototype.include=function(t){return null!=t&&(null!=t.Window&&(t.constructor===t.Window&&(e.childWindows.push(t),!0)))},i.prototype.target=function(e){return i.target(e)},i.prototype.emit=function(t,i,n){if(this.isDestroyed)return!1;var s=this.origin;if(t=this.namespaceEvent(t),(0,e.isntString)(t))return!1;if((0,e.isntString)(s))return!1;"function"==typeof i&&(n=i,i=void 0);var o=(0,e.packagePayload)(t,s,i,n);return!!o&&(this.limitBroadcastToFramesArray?this.targetFramesAsWindows().forEach(function(t){(0,e.sendMessage)(t,o,s)}):(0,e.broadcast)(o,{origin:s,frame:window.top||window.self}),!0)},i.prototype.emitAsPromise=function(e,t){var n=this;return new i.Promise(function(i,s){n.emit(e,t,function(e){i(e)})||s(new Error('Listener not added for "'.concat(e,'"')))})},i.prototype.on=function(t,i){if(this.isDestroyed)return!1;var n=this,s=this.origin,o=i;return t=this.namespaceEvent(t),!(0,e.subscriptionArgsInvalid)(t,o,s)&&(this.hasAdditionalChecksForOnListeners&&(o=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];n.passesVerifyDomainCheck(this&&this.origin)&&n.hasMatchingTargetFrame(this&&this.source)&&i.apply(void 0,e)}),this.listeners.push({eventName:t,handler:o,originalHandler:i}),e.subscribers[s]=e.subscribers[s]||{},e.subscribers[s][t]=e.subscribers[s][t]||[],e.subscribers[s][t].push(o),!0)},i.prototype.off=function(t,i){var n=i;if(this.isDestroyed)return!1;if(this.verifyDomain)for(var s=0;s<this.listeners.length;s++){var o=this.listeners[s];o.originalHandler===i&&(n=o.handler)}t=this.namespaceEvent(t);var r=this.origin;if((0,e.subscriptionArgsInvalid)(t,n,r))return!1;var a=e.subscribers[r]&&e.subscribers[r][t];if(!a)return!1;for(s=0;s<a.length;s++)if(a[s]===n)return a.splice(s,1),!0;return!1},i.prototype.teardown=function(){if(!this.isDestroyed){this.isDestroyed=!0;for(var e=0;e<this.listeners.length;e++){var t=this.listeners[e];this.off(t.eventName,t.handler)}this.listeners.length=0}},i.prototype.passesVerifyDomainCheck=function(e){return!this.verifyDomain||this.checkOrigin(e)},i.prototype.targetFramesAsWindows=function(){return this.limitBroadcastToFramesArray?this.targetFrames.map(function(e){return e instanceof HTMLIFrameElement?e.contentWindow:e}).filter(function(e){return e}):[]},i.prototype.hasMatchingTargetFrame=function(e){if(!this.limitBroadcastToFramesArray)return!0;var t=this.targetFramesAsWindows().find(function(t){return t===e});return Boolean(t)},i.prototype.checkOrigin=function(e){var t,i=document.createElement("a");return i.href=location.href,t="https:"===i.protocol?i.host.replace(/:443$/,""):"http:"===i.protocol?i.host.replace(/:80$/,""):i.host,i.protocol+"//"+t===e||(!this.verifyDomain||this.verifyDomain(e))},i.prototype.namespaceEvent=function(e){return this.channel?"".concat(this.channel,":").concat(e):e},i.Promise=t,i}();return U.Framebus=i,U}function F(){if(k)return Y;k=1;var e=Y&&Y.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Y,"__esModule",{value:!0}),Y.subscribeReplier=void 0;var t=x(),i=e((w||(w=1,M=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}),M));return Y.subscribeReplier=function(e,n){var s=(0,i.default)();return t.Framebus.target({origin:n}).on(s,function i(o,r){e(o,r),t.Framebus.target({origin:n}).off(s,i)}),s},Y}var j,B={};var V,G={};var X,H,z,$,q={};function W(){return H||(H=1,function(e){var t=h&&h.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),i=h&&h.__exportStar||function(e,i){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(i,n)||t(i,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),i(function(){if(u)return p;u=1,Object.defineProperty(p,"__esModule",{value:!0}),p.detach=p.attach=void 0;var e=W(),t=!1;return p.attach=function(){t||"undefined"==typeof window||(t=!0,window.addEventListener("message",e.onMessage,!1))},p.detach=function(){t=!1,window.removeEventListener("message",e.onMessage,!1)},p}(),e),i(function(){if(_)return E;_=1,Object.defineProperty(E,"__esModule",{value:!0}),E.broadcastToChildWindows=void 0;var e=W();return E.broadcastToChildWindows=function(t,i,n){for(var s=e.childWindows.length-1;s>=0;s--){var o=e.childWindows[s];o.closed?e.childWindows.splice(s,1):n!==o&&(0,e.broadcast)(t,{origin:i,frame:o.top})}},E}(),e),i(function(){if(m)return v;m=1,Object.defineProperty(v,"__esModule",{value:!0}),v.broadcast=void 0;var e=W();return v.broadcast=function t(i,n){var s,o=0,r=n.origin,a=n.frame;try{for(a.postMessage(i,r),(0,e.hasOpener)(a)&&a.opener.top!==window.top&&t(i,{origin:r,frame:a.opener.top});s=a.frames[o];)t(i,{origin:r,frame:s}),o++}catch(e){}},v}(),e),i((y||(y=1,Object.defineProperty(I,"__esModule",{value:!0}),I.subscribers=I.childWindows=I.prefix=void 0,I.prefix="/*framebus*/",I.childWindows=[],I.subscribers={}),I),e),i(function(){if(f)return A;f=1,Object.defineProperty(A,"__esModule",{value:!0}),A.dispatch=void 0;var e=W();return A.dispatch=function(t,i,n,s,o){if(e.subscribers[t]&&e.subscribers[t][i]){var r=[];n&&r.push(n),s&&r.push(s);for(var a=0;a<e.subscribers[t][i].length;a++)e.subscribers[t][i][a].apply(o,r)}},A}(),e),i((L||(L=1,Object.defineProperty(O,"__esModule",{value:!0}),O.hasOpener=void 0,O.hasOpener=function(e){return e.top===e&&null!=e.opener&&e.opener!==e&&!0!==e.opener.closed}),O),e),i((g||(g=1,Object.defineProperty(C,"__esModule",{value:!0}),C.isntString=void 0,C.isntString=function(e){return"string"!=typeof e}),C),e),i(function(){if(T)return R;T=1,Object.defineProperty(R,"__esModule",{value:!0}),R.onMessage=void 0;var e=W();return R.onMessage=function(t){if(!(0,e.isntString)(t.data)){var i=(0,e.unpackPayload)(t);if(i){var n=i.eventData,s=i.reply;(0,e.dispatch)("*",i.event,n,s,t),(0,e.dispatch)(t.origin,i.event,n,s,t),(0,e.broadcastToChildWindows)(t.data,i.origin,t.source)}}},R}(),e),i(function(){if(N)return S;N=1,Object.defineProperty(S,"__esModule",{value:!0}),S.packagePayload=void 0;var e=W();return S.packagePayload=function(t,i,n,s){var o,r={event:t,origin:i};"function"==typeof s&&(r.reply=(0,e.subscribeReplier)(s,i)),r.eventData=n;try{o=e.prefix+JSON.stringify(r)}catch(e){throw new Error("Could not stringify event: ".concat(e.message))}return o},S}(),e),i((b||(b=1,Object.defineProperty(P,"__esModule",{value:!0}),P.sendMessage=void 0,P.sendMessage=function(e,t,i){try{e.postMessage(t,i)}catch(e){}}),P),e),i(F(),e),i(function(){if(j)return B;j=1,Object.defineProperty(B,"__esModule",{value:!0}),B.subscriptionArgsInvalid=void 0;var e=W();return B.subscriptionArgsInvalid=function(t,i,n){return!!(0,e.isntString)(t)||"function"!=typeof i||(0,e.isntString)(n)},B}(),e),i((V||(V=1,Object.defineProperty(G,"__esModule",{value:!0})),G),e),i(function(){if(X)return q;X=1,Object.defineProperty(q,"__esModule",{value:!0}),q.unpackPayload=void 0;var e=W();return q.unpackPayload=function(t){var i;if(t.data.slice(0,e.prefix.length)!==e.prefix)return!1;try{i=JSON.parse(t.data.slice(e.prefix.length))}catch(e){return!1}if(i.reply){var n=t.origin,s=t.source,o=i.reply;i.reply=function(t){if(s){var i=(0,e.packagePayload)(o,n,t);i&&s.postMessage(i,n)}}}return i},q}(),e)}(h)),h}const K=c(function(){if($)return z;$=1;var e=W(),t=x();return(0,e.attach)(),z=t.Framebus}());class Z{constructor(e){this.origin=null,this.onAndEmit=(e,t,i="*")=>{const n=`${e}-REQ`,s=n=>{return s=this,o=null,r=function*(){const s=yield t(n);this.bus.target({origin:i}).emit(`${e}-RES`,s)},new Promise((e,t)=>{var i=e=>{try{a(r.next(e))}catch(e){t(e)}},n=e=>{try{a(r.throw(e))}catch(e){t(e)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,n);a((r=r.apply(s,o)).next())});var s,o,r};return this.bus.on(n,s),()=>this.bus.off(n,s)},this.emitAndResolve=(e,t,i="*",n)=>new Promise((s,o)=>{if(null==n?void 0:n.aborted)return void o(n.reason);const a=`${e}-RES`,l=e=>{c(),s(e)},d=()=>{c(),o(n.reason)},c=()=>{this.bus.off(a,l),null==n||n.removeEventListener("abort",d)};this.bus.on(a,l),null==n||n.addEventListener("abort",d),this.bus.target({origin:i}).emit(`${e}-REQ`,r({},t))}),this.bus=new K(e)}static getInstance(){return Z.instance||(Z.instance=new Z),Z.instance}on(e,t){return this.bus.on(e,t)}off(e,t){return this.bus.off(e,t)}emit(e,t,i=void 0){return this.bus.emit(e,t,i)}target(e){return this.bus.target(e)}}class J{constructor(){this.bus=Z.getInstance()}log(e,t){this.bus.emit(l.ERROR,{level:e,event:t})}}var Q,ee;const te=c(function(){if(ee)return Q;ee=1;var e=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var i=Object.prototype.toString.call(e);return"[object RegExp]"===i||"[object Date]"===i||function(e){return e.$$typeof===t}(e)}(e)},t="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((i=e,Array.isArray(i)?[]:{}),e,t):e;var i}function n(e,t,n){return e.concat(t).map(function(e){return i(e,n)})}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function r(e,t,n){var r={};return n.isMergeableObject(e)&&s(e).forEach(function(t){r[t]=i(e[t],n)}),s(t).forEach(function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&n.isMergeableObject(t[s])?r[s]=function(e,t){if(!t.customMerge)return a;var i=t.customMerge(e);return"function"==typeof i?i:a}(s,n)(e[s],t[s],n):r[s]=i(t[s],n))}),r}function a(t,s,o){(o=o||{}).arrayMerge=o.arrayMerge||n,o.isMergeableObject=o.isMergeableObject||e,o.cloneUnlessOtherwiseSpecified=i;var a=Array.isArray(s);return a===Array.isArray(t)?a?o.arrayMerge(t,s,o):r(t,s,o):i(s,o)}return a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,i){return a(e,i,t)},{})},Q=a}());class ie{constructor(){this.state={}}static getInstance(){return ie.instance||(ie.instance=new ie),ie.instance}getState(e){return this.state[e]}setState(e){this.state=te(this.state,e)}}const ne=ie.getInstance(),se=()=>window&&window.navigator,oe=()=>window&&window.screen,re=()=>({resolution:`${oe().width}x${oe().height}`,user_agent:se().userAgent,language:se().language}),ae=[a.PAYRAILS_API_AUTHORIZATION_ERROR,a.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_3DS_ERROR,a.PAYRAILS_API_UNSUCCESSFUL];class le{constructor(e){this.adapter=[new J],this.enabled=e.enabled||!0,this.initGlobalState(e),e.logLevel=e.logLevel||"error","debug"===e.logLevel&&this.addAdapter(new d)}static init(e){le.instance=new le(e)}static getLogger(){return le.instance}initGlobalState(e){ne.setState({payrails:e.payrails,sdk:e.sdk})}static setState(e){ne.setState(e)}log(e,t,i){var n;this.enabled&&-1===ae.indexOf(null==(n=null==i?void 0:i.error)?void 0:n.name)&&this.adapter.forEach(n=>{n.log(e,{mssg:t,error:null==i?void 0:i.error,withMetada:r(r({},this.constructMetadata()),null==i?void 0:i.withMetada),extra:null==i?void 0:i.extra})})}constructMetadata(){return{device:re(),payrails:ne.getState("payrails"),sdk:ne.getState("sdk")}}addAdapter(e){this.adapter.push(e)}static log(e,t){this.getLogger().log("info",e,t)}static debug(e,t){this.getLogger().log("debug",e,t)}static info(e,t){this.getLogger().log("info",e,t)}static warn(e,t){this.getLogger().log("warning",e,t)}static error(e,t){this.getLogger().log("error",e,t)}static exception(e,t){this.error(e,t)}}e.PayrailsLogger=le,e.getDeviceInfo=re}(r);const a={INITIALIZE_CLIENT:"%s1 - Initializing skyflow client.",CLIENT_INITIALIZED:"%s1 - Initialized skyflow client successfully.",CREATE_COLLECT_CONTAINER:"%s1 - Creating Collect container.",COLLECT_CONTAINER_CREATED:"%s1 - Created Collect container successfully.",VALIDATE_RECORDS:"%s1 - Validating insert records.",VALIDATE_DETOKENIZE_INPUT:"%s1 - Validating detokenize input.",VALIDATE_GET_INPUT:"%s1 - Validating get input.",VALIDATE_DELETE_INPUT:"%s1 - Validating delete input.",VALIDATE_COLLECT_RECORDS:"%s1 - Validating collect element input.",CREATED_ELEMENT:"%s1 - Created %s2 element.",ELEMENT_MOUNTED:"%s1 - %s2 Element mounted.",COLLECT_SUBMIT_SUCCESS:"%s1 - Data has been collected successfully.",INSERT_DATA_SUCCESS:"%s1 - Data has been inserted successfully.",DELETE_SUCCESS:"%s1 - Data has been deleted successfully.",BEARER_TOKEN_LISTENER:"%s1 - Get bearer token listener added.",CAPTURED_BEARER_TOKEN_EVENT:"%s1 - Captured bearer token event.",BEARER_TOKEN_RESOLVED:"%s1 - GetBearerToken promise resolved successfully.",REUSE_BEARER_TOKEN:"%s1 - Reusing the bearer token.",PUREJS_CONTROLLER_INITIALIZED:"%s1 - SkyflowController initialized.",PUREJS_LISTENER_READY:"%s1 - Purejs listener ready.",EMIT_PURE_JS_CONTROLLER:"%s1 - Emitted Skyflow controller event.",INSERT_TRIGGERED:"%s1 - Insert method triggered.",DETOKENIZE_TRIGGERED:"%s1 - Detokenize method triggered.",GET_TRIGGERED:"%s1 - Get method triggered.",GET_BY_ID_TRIGGERED:"%s1 - Get method triggered.",DELETE_TRIGGERED:"%s1 - Delete method triggered.",EMIT_PURE_JS_REQUEST:"%s1 - Emitted %s2 request.",CAPTURE_PURE_JS_REQUEST:"%s1 - Captured %s2 event.",LISTEN_PURE_JS_REQUEST:"%s1 - Listening to %s2 event.",CAPTURE_PUREJS_FRAME:"%s1 - Captured SkyflowController frame ready event.",FETCH_RECORDS_RESOLVED:"%s1 - Detokenize request is resolved.",INSERT_RECORDS_RESOLVED:"%s1 - Insert request is resolved.",GET_RESOLVED:"%s1 - Get request is resolved.",GET_BY_SKYFLOWID_RESOLVED:"%s1 - GetById request is resolved.",DELETE_RESOLVED:"%s1 - Delete request is resolved",EMIT_EVENT:"%s1 - %s2 event emitted",CAPTURE_EVENT:"%s1 - Captured event %s2",LISTEN_COLLECT_FRAME_READY:"%s1 - Listening to collect FRAME_READY event",EMIT_COLLECT_ELEMENT_FRAME_READY:"%s1 - Emitting collect element %s2 FRAME_READY event",ENTERED_COLLECT_FRAME_READY_CB:"%s1 - In IFrameForm constructor, Entered FRAME_READY callback",EXECUTE_COLLECT_ELEMENT_FRAME_READY_CB:"%s1 - In IFrameForm, executing collect element, %s2 FRAME_READY callback",CLIENT_METADATA_NOT_SET:"%s1 - Client metadata not set",EXECUTE_COLLECT_ELEMENT_INIT:"%s1 - calling Collect element init",INSIDE__COLLECT_ELEMENT_INIT:"%s1 - Inside Collect element init for %s2",CREATING_COLLECT_ELEMENT_FORM:"%s1 - Start, creating iframe form for %s2",COLLECT_FRAME_READY_CB:"%s1 - In FrameElements, executing collect element FRAME_READY cb for %s2, sending metadata",INSIDE_FRAME_ELEMENTS_CONSTRUCOTR:"%s1 - Inside FrameElements constructor",SETUP_IN_START:"%s1 - Inside FrameElements start(), calling setup",SETUP_IN_CONSTRUCTOR:"%s1 - Inside FrameElements constructor, calling setup",COLLECT_ELEMET_START:"%s1 - %s2, Collect Element start",COLLECT_CONTROLLER_START:"%s1 - %s2, Collect Controller start",EMIT_COLLECT_FRAME_CONTROLLER_EVENT:"%s1 - Emit collect FrameController FRAME_READY event",EXECUTE_COLLECT_CONTROLLER_READY_CB:"%s1 - Executing collect FrameController FRAME_READY callback, set client metadata",IFRAMEFORM_CONSTRUCTOR_FRAME_READY_LISTNER:"%s1 - In IFrameForm constructor, Adding listner for FRAME_READY event",IFRAMEFORM_CONSTRUCTOR_TOKENIZATION_LISTNER:"%s1 - In IFrameForm constructor, Adding listner for TOKENIZATION_REQUEST event",CURRENT_ENV:"%s1 - Client Env is %s2",CURRENT_LOG_LEVEL:"%s1 - Client LogLevel is %s2",VALIDATE_GET_BY_ID_INPUT:"%s1 - Validating getByID input."},l={CLIENT_CONNECTION:"Interface: collect container - client connection not established. client info has not reached iframes",INVALID_BEARER_TOKEN:"Interface: init - Invalid token is generated from getBearerToken callback",BEARER_TOKEN_REJECTED:"Interface: init - GetBearerToken promise got rejected.",VAULTID_IS_REQUIRED:"Interface: init - Invalid client credentials. vaultID is required.",EMPTY_VAULTID_IN_INIT:"Interface: init - Invalid client credentials. vaultID cannot be empty.",VAULTURL_IS_REQUIRED:"Interface: init - Invalid client credentials. vaultURL is required.",EMPTY_VAULTURL_IN_INIT:"Interface: init - Invalid client credentials. vaultURL cannot be empty.",INVALID_VAULTURL_IN_INIT:"Interface: init - Invalid client credentials. Expecting https://XYZ for vaultURL",GET_BEARER_TOKEN_IS_REQUIRED:"Interface: init - Invalid client credentials. getBearerToken is required.",EMPTY_CONTAINER_TYPE:"Interface: client {containerType} container - Invalid container type. Container object cannot be empty.",INVALID_CONTAINER_TYPE:"Interface: client {containerType} container - Invalid container type. Invalid container object.",INVALID_COLLECT_VALUE:"Invalid value",INVALID_COLLECT_VALUE_WITH_LABEL:"Invalid %s1",REQUIRED_COLLECT_VALUE:"%s1 is required",DEFAULT_REQUIRED_COLLECT_VALUE:"Field is required",RECORDS_KEY_NOT_FOUND:"Interface: client insert - records object is required.",INVALID_RECORDS_IN_INSERT:"Interface: client insert - Invalid records. records object should be an array.",EMPTY_RECORDS_IN_INSERT:"Interface: client insert - records array cannot be empty.",MISSING_TABLE_IN_INSERT:'Interface: client insert - "table" key is required in records array at index %s1',EMPTY_TABLE_IN_INSERT:"Interface: client insert - table cannot be empty in records array at index %s1",INVALID_TABLE_IN_INSERT:"Interface: client insert - table of type string is required at index %s1 in records array.",EMPTY_FIELDS_IN_INSERT:"Interface: client insert - fields cannot be empty in records array at index %s1",MISSING_FIELDS_IN_INSERT:'Interface: client insert - "fields" key is required in records array at index %s1',INVALID_FIELDS_IN_INSERT:"Interface: client insert - fields of type object is required at index %s1 in records array.",INVALID_TOKENS_IN_INSERT:"Interface: client insert - Invalid tokens in options. tokens of type boolean is required.",RECORDS_KEY_NOT_FOUND_DELETE:"Interface: client delete - records object is required.",INVALID_RECORDS_IN_DELETE:"Interface: client delete - Invalid records. records object should be an array.",EMPTY_RECORDS_IN_DELETE:"Interface: client delete - records array cannot be empty.",MISSING_TABLE_IN_DELETE:'Interface: client delete - "table" key is required in records array at index %s1',EMPTY_TABLE_IN_DELETE:"Interface: client delete - table cannot be empty in records array at index %s1",INVALID_TABLE_IN_DELETE:"Interface: client delete - table of type string is required at index %s1 in records array.",MISSING_ID_IN_DELETE:'Interface: client delete - "id" key is required in records array at index %s1',EMPTY_ID_IN_DELETE:"Interface: client delete - id cannot be empty in records array at index %s1",INVALID_ID_IN_DELETE:"Interface: client delete - id of type string is required at index %s1 in records array.",DELETE_RECORDS_REJECTED:"Interface: client delete - delete request is rejected.",INVALID_TOKENS_IN_COLLECT:"Interface: collect container - Invalid tokens. tokens of type boolean is required.",RECORDS_KEY_NOT_FOUND_IN_ADDITIONAL_FIELDS:'Interface: collect container - "records" key not found in additionalFields',INVALID_RECORDS_IN_ADDITIONAL_FIELDS:"Interface: collect container - records should be an array inside additionalFields",EMPTY_RECORDS_IN_ADDITIONAL_FIELDS:"Interface: collect container - records object cannot be empty in additionalFields",MISSING_TABLE_IN_ADDITIONAL_FIELDS:'Interface: collect container - "table" key not found in additionalFields records at index %s1',INVALID_TABLE_IN_ADDITIONAL_FIELDS:"Interface: collect container - Provide valid table name in additionalFields records at index %s1",INVALID_SKYFLOW_ID_IN_ADDITIONAL_FIELDS:"Interface: collect container - Provide valid skyflow id in additionalFields records at index %s1",MISSING_FIELDS_IN_ADDITIONAL_FIELDS:'Interface: collect container - "fields" key not found in additionalFields records at index %s1',INVALID_FIELDS_IN_ADDITIONAL_FIELDS:"Interface: collect container - Provide valid fields in additionalFields records at index %s1",RECORDS_KEY_NOT_FOUND_DETOKENIZE:"Interface: client detokenize - records object is required.",EMPTY_RECORDS_DETOKENIZE:"Interface: client detokenize - records array cannot be empty.",INVALID_RECORDS_IN_DETOKENIZE:"Interface: client detokenize - Invalid records. records object should be an array.",MISSING_TOKEN_IN_DETOKENIZE:'Interface: client detokenize - "token" key is required in records array at index %s1 ',INVALID_TOKEN_IN_DETOKENIZE:"Interface: client detokenize - Invalid token. token of type string is required at index %s1 in records array.",RECORDS_KEY_NOT_FOUND_GET:"Interface: client get - records object is required.",INVALID_RECORDS_IN_GET:"Interface: client get - Invalid records. records object should be an array.",EMPTY_RECORDS_GET:"Interface: client get - records array cannot be empty.",MISSING_IDS_IN_GET:'Interface: client get - "ids" key is required in records array at index %s1',INVALID_IDS_IN_GET:"Interface: client get - Invalid ids. ids object should be an array.",INVALID_COLUMN_VALUES_IN_GET:"Interface: client get - Invalid column values. column values object should be an array.",EMPTY_IDS_IN_GET:"Interface: client get - ids array cannot be empty at index %s1",INVALID_SKYFLOWID_TYPE_IN_GET:"Interface: client get - Invalid skyflowId in ids array at index %s1",MISSING_TABLE_IN_GET:'Interface: client get - "table" key is required in records array at index %s1',INVALID_TABLE_IN_GET:"Interface: client get - table of type string is required at index %s1 in records array.",MISSING_REDACTION_IN_GET:'Interface: client get - "redaction" key is required in records array at index %s1',INVALID_REDACTION_TYPE_IN_GET:"Interface: client get - Invalid redaction type in records array at index %s1",INVALID_TOKENS_IN_GET:"Interface: client get - Invalid tokens in options. tokens of type boolean is required.",TOKENS_GET_COLUMN_NOT_SUPPORTED:"Interface: client get - column_name or column_values cannot be used with tokens in options.",REDACTION_WITH_TOKENS_NOT_SUPPORTED:"Interface: client get - redaction cannot be used when tokens are true in options.",INVALID_REDACTION_TYPE_IN_DETOKENIZE:"Interface: client get - Invalid redaction type in records array at index %s1",EMPTY_TABLE_IN_ADDITIONAL_FIELDS:"Interface: collect container - table cannot be empty in additionalFields at index %s1",EMPTY_FIELDS_IN_ADDITIONAL_FIELDS:"Interface: collect container - fields cannot be empty in additionalFields at index %s1",EMPTY_TOKEN_IN_DETOKENIZE:"Interface: client detokenize - token cannot be empty in records array at index %s1",EMPTY_SKYFLOWID_IN_GET:"Interface: client get - id cannot be empty in records array at index %s1",EMPTY_TABLE_IN_GET:"Interface: client get - table cannot be empty in records array at index %s1",EMPTY_REDACTION_TYPE_IN_GET:"Interface: client get - redaction cannot be empty in records array at index %s1",FETCH_RECORDS_REJECTED:"Interface: client detokenize - detokenize request is rejected.",INSERT_RECORDS_REJECTED:"Interface: client insert - insert request is rejected.",GET_REJECTED:"Interface: client get - get request is rejected.",MISSING_TABLE_IN_COLLECT:'Interface: collect element - "table" key is required.',EMPTY_TABLE_IN_COLLECT:"Interface: collect element - table cannot be empty.",EMPTY_SKYFLOW_ID_IN_ADDITIONAL_FIELDS:"Interface: collect element - id cannot be empty.",INVALID_TABLE_IN_COLLECT:"Interface: collect element - Invalid table. table of type string is required",INVALID_SKYFLOWID_IN_COLLECT:"Interface: collect element - Invalid id. id of type string is required",MISSING_COLUMN_IN_COLLECT:'Interface: collect element - "column" key is required.',EMPTY_COLUMN_IN_COLLECT:"Interface: collect element - column cannot be empty.",INVALID_COLUMN_IN_COLLECT:"Interface: collect element - Invalid column. column of type string is required",UNIQUE_ELEMENT_NAME:"The element name has to unique: %s1",ELEMENTS_NOT_MOUNTED:"Interface: collect container - Elements should be mounted before invoking collect",DUPLICATE_ELEMENT:"Interface: collect container - Duplicate column %s1 found in %s2.",DUPLICATE_ELEMENT_ADDITIONAL_FIELDS:"Interface: collect container - Duplicate column %s1 found in %s2 in additional fields",MISSING_ELEMENT_TYPE:'Interface:container element with type {TYPE} - Invalid element type. "type" key is required.',EMPTY_ELEMENT_TYPE:"Interface:container element with type {TYPE} - Invalid element type. type cannot be empty.",INVALID_ELEMENT_TYPE:"Interface:container element with type {TYPE} - invalid element type. type not found",INVALID_ELEMENT_SELECTOR:"Interface: container element with type {TYPE} - Div cannot be found.",CANNOT_CHANGE_ELEMENT:"Element can't be changed.",INVALID_IFRAME:"Error occured while creating an iframe",INVALID_FIELD:"Invalid Field.",FRAME_NOT_FOUND:"Interface: collect element - %s1 frame not found:",COMPLETE_AND_VALID_INPUTS:"Interface: collect container - Provide complete and valid inputs for %s1",REQUIRED_PARAMS_NOT_PROVIDED:"Interface: collect element - Required params are not provided.",INVALID_EVENT_TYPE:"Interface: collect element - Provide a valid event type.",INVALID_EVENT_LISTENER:'Interface: "on" on CollectElement - Provide valid event listener.',MISSING_HANDLER_IN_EVENT_LISTENER:'Interface: "on" on CollectElement - Second argument is missing. handler cannot be empty.',INVALID_HANDLER_IN_EVENT_LISTENER:'Interface: "on" on CollectElement - Invalid handler. handler should be of type function.',UNKNOWN_ERROR:"Unknown Error.",NETWORK_ERROR:"A network error occurred. This could be a CORS issue or a dropped internet connection. It is not possible for us to know. Please reach out to skyflow if you see this error",CONNECTION_ERROR:"Error while initializing the connection.",ERROR_OCCURED:"Error occurred.",INVALID_VALIDATIONS_TYPE:"Interface: collect element - Invalid validations type.",MISSING_VALIDATION_RULE_TYPE:"Interface: collect element - Type is missing in validationRule at index %s1 in validations array",INVALID_VALIDATION_RULE_TYPE:"Interface: collect element - Invalid ValidationRuleType at index %s1 in validations array",MISSING_VALIDATION_RULE_PARAMS:"Interface: collect element - params are missing in validationRule at index %s1 in validations array",INVALID_VALIDATION_RULE_PARAMS:"Interface: collect element - Invalid ValidationRule params at index %s1 in validations array",MISSING_REGEX_IN_REGEX_MATCH_RULE:"Interface: collect element - Missing regex in ValidationRule params at index %s1 in validations array",INVALID_REGEX_IN_REGEX_MATCH_RULE:"Interface: collect element - Invalid regex in ValidationRule params at index %s1 in validations array",MISSING_MIN_AND_MAX_IN_LENGTH_MATCH_RULE:"Interface: collect element - Either min or max is required in ValidationRule params at index %s1 in validations array",MISSING_ELEMENT_IN_ELEMENT_MATCH_RULE:"Interface: collect element - Missing element in ValidationRule params at index %s1 in validations array",INVALID_ELEMENT_IN_ELEMENT_MATCH_RULE:"Interface: collect element - Invalid collect element in ValidationRule params at index %s1 in validations array",ELEMENT_NOT_MOUNTED_IN_ELEMENT_MATCH_RULE:"Interface: collect element - collect element is not mounted in ValidationRule params at index %s1 in validations array",EMPTY_ELEMENT_IN_MOUNT:"Interface: mount element with type %s1 - Mount cannot be empty.",VALIDATION_FAILED:"Validation failed",INVALID_UPSERT_OPTION_TYPE:"Invalid upsert option, should be an array",EMPTY_UPSERT_OPTIONS_ARRAY:"upsert option cannot be an empty array, atleast one object of table and column is required.",INVALID_UPSERT_OPTION_OBJECT_TYPE:"Invalid upsert object at index %s1, an object of table and column is required.",MISSING_TABLE_IN_UPSERT_OPTION:'"table" key is required in upsert options object at index %s1',MISSING_COLUMN_IN_UPSERT_OPTION:'"column" key is required in upsert option at index %s1',INVALID_TABLE_IN_UPSERT_OPTION:"Invalid table in upsert object at index %s1, table of type non empty string is required",INVALID_COLUMN_IN_UPSERT_OPTION:"Invalid column in upsert object at index %s1, column of type non empty string is required",INVALID_RECORD_COLUMN_VALUE:"Invalid Record Column value.",MISSING_RECORD_COLUMN_VALUE:"Column Values is required when Column Name is specified.",MISSING_RECORD_COLUMN_NAME:"Column Name is required when Column Values are specified.",INVALID_RECORD_COLUMN_VALUE_TYPE:"Invalid Type of Records Column Values.",INVALID_COLUMN_VALUES_TYPE:"Invalid column values type, should be an Array.",EMPTY_RECORD_COLUMN_VALUES:"Record column values cannot be empty.",EMPTY_COLUMN_VALUE:"Column Value is empty.",MISSING_IDS_OR_COLUMN_VALUES_IN_GET:'Interface: client get - "ids" key or "columnValues" key is missing.',SKYFLOW_IDS_AND_COLUMN_NAME_BOTH_SPECIFIED:"ids and columnName can not be specified together.",GET_BY_SKYFLOWID_RESOLVED:"%s1 - GetById request is resolved.",RECORDS_KEY_NOT_FOUND_GETBYID:"Interface: client getById - records object is required.",INVALID_RECORDS_IN_GETBYID:"Interface: client getById - Invalid records. records object should be an array.",EMPTY_RECORDS_GETBYID:"Interface: client getById - records array cannot be empty.",MISSING_IDS_IN_GETBYID:'Interface: client getById - "ids" key is required in records array at index %s1',INVALID_IDS_IN_GETBYID:"Interface: client getById - Invalid ids. ids object should be an array.",EMPTY_IDS_IN_GETBYID:"Interface: client getById - ids array cannot be empty at index %s1",INVALID_SKYFLOWID_TYPE_IN_GETBYID:"Interface: client getById - Invalid skyflowId in ids array at index %s1",MISSING_TABLE_IN_GETBYID:'Interface: client getById - "table" key is required in records array at index %s1',INVALID_TABLE_IN_GETBYID:"Interface: client getById - table of type string is required at index %s1 in records array.",MISSING_REDACTION_IN_GETBYID:'Interface: client getById - "redaction" key is required in records array at index %s1',INVALID_REDACTION_TYPE_IN_GETBYID:"Interface: client getById - Invalid redaction type in records array at index %s1",EMPTY_SKYFLOWID_IN_GETBYID:"Interface: client getById - id cannot be empty in records array at index %s1",EMPTY_TABLE_IN_GETBYID:"Interface: client getById - table cannot be empty in records array at index %s1",EMPTY_REDACTION_TYPE_IN_GETBYID:"Interface: client getById - redaction cannot be empty in records array at index %s1",GET_BY_SKYFLOWID_REJECTED:"Interface: client getById - getById request is rejected.",MISSING_COMPOSABLE_LAYOUT_KEY:"Interface: client container - layout is required in composable container options.",EMPTY_COMPOSABLE_LAYOUT_ARRAY:"Interface: client container - layout array cannot be empty in composable container options.",INVALID_COMPOSABLE_LAYOUT_TYPE:"Interface: client container - invalid layout value, layout should be of type array of numbers in composable container options.",NEGATIVE_VALUES_COMPOSABLE_LAYOUT:"Interface: client container - layout array should only have postive numbers in composable container options.",MISMATCH_ELEMENT_COUNT_LAYOUT_SUM:"Interface: composable container mount - created elements count should be equal to sum of layout values.",MISSING_COMPOSABLE_CONTAINER_OPTIONS:"Interface: client composable container - options object is required for composable container.",INVALID_COMPOSABLE_CONTAINER_OPTIONS:"Interface: client composable container - invalid options value, should be an object type.",COMPOSABLE_CONTAINER_NOT_MOUNTED:"Interface: composable collect - container should be mounted before invoking collect.",INVALID_BOOLEAN_OPTIONS:"Interface: container create - Invaild %s1 in options, %s1 of type boolean is required.",INVALID_INPUT_OPTIONS_FORMAT:"Interface: container create - Invalid type, format must be of non-empty string type.",INVALID_INPUT_OPTIONS_TRANSLATION:"Interface: container create - Invalid type, translation must be of non-empty object type.",EMPTY_COLLECT_CUSTOM_FORMAT:"Interface: container create - %s1 cannot be empty object."},d={INVALID_EXPIRATION_DATE_FORMAT:"EXPIRATION_DATE format must be in one of %s1, the format is set to default MM/YY",INVALID_EXPIRATION_YEAR_FORMAT:"EXPIRATION_YEAR format must be in one of %s1, the format is set to default YY",UNABLE_TO_SET_VALUE_IN_PROD_ENV:"%s1 setValue() cannot invoked while in PROD env. It is Not Recommeded",UNABLE_TO_CLEAR_VALUE_IN_PROD_ENV:"%s1 clearValue() cannot invoked while in PROD env. It is Not Recommeded",COLLECT_ALT_TEXT_DEPERECATED:"altText is DEPERECATED, passing altText will not have any effect",GET_BY_ID_DEPRECATED:"getById is deprecated, use new get method",INPUT_FORMATTING_NOT_SUPPROTED:"format or translation are not supported on %s1 element type.",INVALID_INPUT_TRANSLATION:"invalid or unsupported translation provided for %s1 element type."},c="collect_controller",u="element",h="ERROR",p={CHANGE:"CHANGE",READY:"READY",FOCUS:"FOCUS",BLUR:"BLUR",ESCAPE:"ESCAPE",CLICK:"CLICK",ERROR:"ERROR",SUCCESS:"SUCCESS",SUBMIT:"SUBMIT",CREATED:"CREATED",MOUNTED:"MOUNTED",HEIGHT:"HEIGHT"},_="FRAME_READY",E="TOKENIZATION_REQUEST",m="RESET",v="INPUT_EVENT",y="DESTROY_FRAME",I="SET_VALUE",f="SET_ATTRIBUTE",A="GET_BEARER_TOKEN",L="COLLECT_ELEMENT_SET_ERROR",O="COMPOSABLE_UPDATE_OPTIONS",g="VALIDATE_ELEMENT",C="COMPOSABLE_CONTAINER_MOUNTED",T="COLLECT_CONTAINER_MOUNTED";var R,N;!function(e){e.CVV="CVV",e.EXPIRATION_DATE="EXPIRATION_DATE",e.CARD_NUMBER="CARD_NUMBER",e.CARDHOLDER_NAME="CARDHOLDER_NAME",e.INPUT_FIELD="INPUT_FIELD",e.PIN="PIN",e.EXPIRATION_MONTH="EXPIRATION_MONTH",e.EXPIRATION_YEAR="EXPIRATION_YEAR"}(R||(R={})),function(e){e.VISA="VISA",e.MASTERCARD="MASTERCARD",e.AMEX="AMEX",e.DINERS_CLUB="DINERS_CLUB",e.DISCOVER="DISCOVER",e.JCB="JCB",e.MAESTRO="MAESTRO",e.UNIONPAY="UNIONPAY",e.HIPERCARD="HIPERCARD",e.DEFAULT="DEFAULT",e.CVV="CVV",e.EXPIRY="EXPIRY",e.ERROR="ERROR",e.UNKNOWN="UNKNOWN",e.ELO="ELO"}(N||(N={}));const S={[N.AMEX]:["XXXX XXXXXX XXXXX",{X:"[0-9]"}],[N.VISA]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[N.MASTERCARD]:["XXXX XXXX XXXX XXXX",{X:"[0-9]"}],[N.DISCOVER]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[N.DINERS_CLUB]:["XXXX XXXXXX XXXXXXXXX",{X:"[0-9]"}],[N.JCB]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[N.MAESTRO]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[N.UNIONPAY]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[N.HIPERCARD]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[N.DEFAULT]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[N.UNKNOWN]:["XXXX XXXX XXXX XXXX XXX",{X:"[0-9]"}],[N.ELO]:["XXXX XXXX XXXX XXXX",{X:"[0-9]"}]},b={textarea:{name:"textarea",attributes:{type:"textarea"},sensitive:!1},checkbox:{name:"checkbox",attributes:{type:"checkbox"},sensitive:!1},radio:{name:"radio",attributes:{type:"radio"},sensitive:!1},dropdown:{name:"dropdown",attributes:{type:"select"},sensitive:!1},[R.CARDHOLDER_NAME]:{name:"cardHolderName",attributes:{type:"text",autocomplete:"cc-name"},sensitive:!0,regex:/^([a-zA-Z\\ \\,\\.\\-\\']{2,})$/},[R.CARD_NUMBER]:{name:"CARD_NUMBER",attributes:{type:"text",autocomplete:"cc-number",inputmode:"numeric"},sensitive:!0,mask:S[N.DEFAULT],regex:/$|^[\s]*?([0-9]{2,6}[ -]?){3,5}[\s]*/},[R.EXPIRATION_DATE]:{name:"EXPIRATION_DATE",attributes:{type:"text",autocomplete:"cc-exp",inputmode:"numeric"},sensitive:!0},[R.EXPIRATION_MONTH]:{name:"EXPIRATION_MONTH",attributes:{maxLength:2,type:"text",inputmode:"numeric",autocomplete:"cc-exp-month"},sensitive:!0,mask:["XX",{X:"[0-9]"}]},[R.EXPIRATION_YEAR]:{name:"EXPIRATION_YEAR",attributes:{type:"text",inputmode:"numeric",autocomplete:"cc-exp-year"},sensitive:!0},[R.CVV]:{name:"CVV",attributes:{type:"text",inputmode:"numeric",maxLength:3},sensitive:!0,regex:/^$|^[0-9]{3,4}$/},[R.INPUT_FIELD]:{name:"INPUT_FIELD",sensitive:!0,attributes:{type:"text"}},[R.PIN]:{name:"PIN",attributes:{type:"text",inputmode:"numeric",maxLength:12,minLength:4},sensitive:!0,regex:/^$|^[0-9]{4,12}$/}},P="XXXX-XXXX-XXXX-XXXX",D={height:"100%",width:"100%",margin:0,padding:0,border:0,position:"absolute",top:0,left:0,"user-select":"none"},M={position:"absolute",top:0,width:0,height:0,visibility:"hidden",left:"-99999999px","user-select":"none"},w={width:"100%",height:"100%",border:"0",padding:"0",margin:"0",outline:"none"},k={WEBPACKAUTOFILL:"-webkit-autofill",BASE:"base",FOCUS:"focus",COMPLETE:"complete",EMPTY:"empty",INVALID:"invalid",GLOBAL:"global",REQUIRED_ASTERISK:"requiredAsterisk"},Y={[N.VISA]:{regex:/^4\d*/,maxCardLength:19,cardLengthRange:[13,16,18,19]},[N.MASTERCARD]:{regex:/^(5[1-5]|222[1-9]|22[3-9]|2[3-6]|27[0-1]|2720)\d*/,maxCardLength:16,cardLengthRange:[16]},[N.AMEX]:{regex:/^3[47]\d*/,maxCardLength:15,cardLengthRange:[15]},[N.DINERS_CLUB]:{regex:/^(36|38|39|30[0-5])\d*/,maxCardLength:19,cardLengthRange:[14,15,16,17,18,19]},[N.DISCOVER]:{regex:/^(6011|65|64[4-9]|622)\d*/,maxCardLength:16,cardLengthRange:[16,17,18,19]},[N.JCB]:{regex:/^35\d*/,maxCardLength:19,cardLengthRange:[16,17,18,19]},[N.HIPERCARD]:{regex:/^606282\d*/,maxCardLength:19,cardLengthRange:[14,15,16,17,18,19]},[N.UNIONPAY]:{regex:/^(62|81)\d*/,maxCardLength:19,cardLengthRange:[14,15,16,17,18,19]},[N.MAESTRO]:{regex:/^(5018|5020|5038|5043|5[6-9]|6020|6304|6703|6759|676[1-3])\d*/,maxCardLength:19,cardLengthRange:[12,13,14,15,16,17,18,19]},[N.ELO]:{regex:/^(?:40117[89]|431274|438935|451416|457393|45763[12]|504175|506(699|7[0-6]\d|77[0-8])|509\d{3}|627780|636(297|368)|650(0(3[1-3]|3[5-9]|4\d|5[01])|4(0[5-9]|[12]\d|3\d)|(4(8[5-9]|9\d)|5([0-2]\d|3[0-8]))|5(4[1-9]|[5-8]\d|9[0-8])|7(0\d|1[0-8]|2[0-7])|9(0[1-9]|[1-6]\d|7[0-8]))|6516(5[2-9]|[67]\d)|6550([01]\d|2[1-9]|[34]\d|5[0-8]))\d*/,maxCardLength:16,cardLengthRange:[16]}};N.DEFAULT,N.CVV,N.EXPIRY,N.ERROR,N.AMEX,N.DINERS_CLUB,N.DISCOVER,N.HIPERCARD,N.JCB,N.MAESTRO,N.MASTERCARD,N.UNIONPAY,N.VISA,N.ELO;const U="MM/YY",x=[U,"YYYY/MM","YY/MM","MM/YYYY"],F=["YY","YYYY"];var j;!function(e){e.APPLICATIONORJSON="application/json",e.TEXTORPLAIN="text/plain",e.TEXTORXML="text/xml",e.FORMURLENCODED="application/x-www-form-urlencoded",e.FORMDATA="multipart/form-data"}(j||(j={})),R.CARD_NUMBER,R.EXPIRATION_DATE,R.EXPIRATION_MONTH,R.EXPIRATION_YEAR,R.CVV,R.EXPIRATION_DATE,R.CARD_NUMBER,R.CARDHOLDER_NAME,R.INPUT_FIELD,l.INVALID_COLLECT_VALUE,R.PIN,R.EXPIRATION_MONTH,R.EXPIRATION_YEAR,R.CVV,R.EXPIRATION_DATE,R.CARD_NUMBER,R.CARDHOLDER_NAME,R.INPUT_FIELD,l.DEFAULT_REQUIRED_COLLECT_VALUE,R.PIN,R.EXPIRATION_MONTH,R.EXPIRATION_YEAR;const B=[R.CARDHOLDER_NAME,R.EXPIRATION_MONTH,R.PIN,R.CVV],V={X:"[0-9]"},G={visa:Y.VISA.regex,mastercard:Y.MASTERCARD.regex,amex:Y.AMEX.regex,diners_club:Y.DINERS_CLUB.regex,discover:Y.DISCOVER.regex,jcb:Y.JCB.regex,hipercard:Y.HIPERCARD.regex,unionpay:Y.UNIONPAY.regex,maestro:Y.MAESTRO.regex,elo:Y.ELO.regex};function X(...e){function t(e,i){if(void 0===i)return e;if("object"!=typeof e||null===e)return i;if("object"!=typeof i||null===i)return i;if(Array.isArray(i)||Array.isArray(e))return i;const n=Object.assign({},e);for(const s of Object.keys(i))void 0!==i[s]&&(i[s]&&"object"==typeof i[s]&&!Array.isArray(i[s])&&e[s]&&"object"==typeof e[s]&&!Array.isArray(e[s])?n[s]=t(e[s],i[s]):n[s]=i[s]);return n}return e.reduce((e,i)=>t(e,i),{})}var H,z;exports.PAYMENT_METHOD_CODES=void 0,(H=exports.PAYMENT_METHOD_CODES||(exports.PAYMENT_METHOD_CODES={})).CARD="card",H.GOOGLE_PAY="googlePay",H.PAYPAL="payPal",H.APPLE_PAY="applePay",H.GENERIC_REDIRECT="genericRedirect",H.LEAN="lean",H.MERCADO_PAGO="mercadoPago",H.PIX="pix",H.BANK_ACCOUNT="bankAccount",H.IDEAL="iDeal",H.YAPE="yape",H.UPI="upi",H.KLARNA="klarna",H.ONE_VOUCHER="1voucher",H.ALFA="alfa",H.APLAZO="aplazo",H.BANK_TRANSFER="bankTransfer",H.CAPITEC_PAY="capitecPay",H.EASYPAISA="easypaisa",H.EFT_PRO="eftPro",H.FAWRY_PAY="fawryPay",H.JAZZ_CASH="jazzCash",H.KONNECT="konnect",H.KUESKI="kueski",H.MONO_DIRECT_DEBIT="monoDirectDebit",H.O_PAY_WALLET="oPayWallet",H.PAGA_WALLET="pagaWallet",H.PAYFLEX="payflex",H.PAY_JUST_NOW="payjustnow",H.WAFA_CASH_WALLET="wafaCashWallet",H.MERCADO_PAGO_WALLET="mercadoPagoWallet",H.MERCADO_PAGO_CONSUMER_CREDIT="mercadoPagoConsumerCredit",H.NET_BANKING="netBanking",H.CASH_FREE_WALLET="cashFreeWallet",H.PAYTM_WALLET="paytmWallet",H.NIBSS_PAY="nibssPay",H.NIBSS_INSTANT_PAY="nibssInstantPay",H.MEEZA_WALLET="meezaWallet",H.VODAFONE_CASH="vodafoneCash",H.SEPA_DIRECT_DEBIT="sepaDirectDebit",H.MODO="modo",H.PAYZONE_CASH="payzoneCash",H.REVOLUT_PAY="revolutPay",Object.fromEntries(Object.entries(exports.PAYMENT_METHOD_CODES).map(([e,t])=>[e,t])),function(e){e.ENABLED="enabled",e.CREATED="created",e.DELETED="deleted",e.DISABLED="disabled",e.INVALID="invalid",e.TRANSIENT="transient"}(z||(z={}));const $=["customer"];class q{static get response(){if(!q._response){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND);throw r.PayrailsLogger.error(e.message,{error:e}),e}return q._response}static setResponse(e){return q._response=e,q._updatedMetaKeys=new Set,q}static get executionId(){var e;return null===(e=q._response)||void 0===e?void 0:e.id}static get workflowCode(){return q.response.workflow.code}static get lookup(){return q.response.initialResults.find(({body:{name:e}})=>"lookup"===e)}static get holderReference(){return q.response.holderReference}static get savedCreditCards(){return q.getStoredInstrumentForPaymentMethod(exports.PAYMENT_METHOD_CODES.CARD)}static get savedPaypalAccounts(){return q.getStoredInstrumentForPaymentMethod(exports.PAYMENT_METHOD_CODES.PAYPAL).filter(({status:e})=>e===z.ENABLED)}static get savedGooglePayAccounts(){return q.getStoredInstrumentForPaymentMethod(exports.PAYMENT_METHOD_CODES.GOOGLE_PAY).filter(({status:e})=>e===z.ENABLED)}static get savedApplePayAccounts(){return q.getStoredInstrumentForPaymentMethod(exports.PAYMENT_METHOD_CODES.APPLE_PAY)}static get paypalConfig(){const e=q.availablePaymentMethods.find(({paymentMethodCode:e})=>e===exports.PAYMENT_METHOD_CODES.PAYPAL);if(!e){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_CONFIG_MISSING);throw r.PayrailsLogger.error(e.message,{error:e,extra:{availablePaymentMethods:q.availablePaymentMethods}}),e}return e.config||{}}static get googlePayConfig(){var e;const t=q.availablePaymentMethods.find(({paymentMethodCode:e})=>e===exports.PAYMENT_METHOD_CODES.GOOGLE_PAY);if(!t){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_GPAY_CONFIG_MISSING);throw r.PayrailsLogger.error(e.message,{error:e,extra:{availablePaymentMethods:q.availablePaymentMethods}}),e}const i=t;return(null===(e=i.clientConfig)||void 0===e?void 0:e.additionalConfig)&&void 0!==i.clientConfig.additionalConfig.apiVersion?i.clientConfig.additionalConfig:[i.config]}static isPaymentMethodAvailable(e){return q.availablePaymentMethods.some(({paymentMethodCode:t})=>t===e)}static get applePayConfig(){const e=q.availablePaymentMethods.find(({paymentMethodCode:e})=>e===exports.PAYMENT_METHOD_CODES.APPLE_PAY);if(!e){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_APPLEPAY_CONFIG_MISSING);throw r.PayrailsLogger.error(e.message,{error:e,extra:{availablePaymentMethods:q.availablePaymentMethods}}),e}return e.config.parameters}static get url(){return q.response.links.self}static get meta(){return q.response.meta}static get availablePaymentMethods(){var e;return(null===(e=q.lookup)||void 0===e?void 0:e.body.data.paymentCompositionOptions)||[]}static get authorizeLink(){var e,t;return null===(t=null===(e=q.lookup)||void 0===e?void 0:e.body.links.authorize)||void 0===t?void 0:t.href}static get payoutLink(){var e,t;return null===(t=null===(e=q.lookup)||void 0===e?void 0:e.body.links.payout)||void 0===t?void 0:t.href}static get createSessionLink(){var e;return null===(e=q.response.links.startPaymentSession)||void 0===e?void 0:e.href}static get createInstrumentLink(){var e;return null===(e=q.response.links.createInstrument)||void 0===e?void 0:e.href}static get storedPaymentInstruments(){return q.availablePaymentMethods.flatMap(e=>e.paymentInstruments||[]).filter(({paymentMethod:e,status:t})=>{const i=[exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,exports.PAYMENT_METHOD_CODES.PAYPAL];return t===z.ENABLED||!i.includes(e)})}static get storedDropinInstruments(){return q.storedPaymentInstruments.filter(({paymentMethod:e})=>![exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,exports.PAYMENT_METHOD_CODES.APPLE_PAY].includes(e))}static getFullPaymentMethodConfig(e){return q.availablePaymentMethods.find(({paymentMethodCode:t})=>t===e)}static isAddressSelectorEnabled(e){var t,i;return!!q._response&&(null===(i=null===(t=q.getFullPaymentMethodConfig(e))||void 0===t?void 0:t.clientConfig)||void 0===i?void 0:i.supportsBillingInfo)}static isPaymentInstallmentsEnabled(e){var t;if(q._response){const i=this.getFullPaymentMethodConfig(e);return i&&(null===(t=this.getPaymentMethodConfig(i).clientConfig)||void 0===t?void 0:t.supportsInstallments)}return!1}static getPaymentInstallmentOptions(e){var t;const i=this.getFullPaymentMethodConfig(e);return i&&(null===(t=this.getPaymentMethodConfig(i).clientConfig)||void 0===t?void 0:t.installments)||{}}static getStoredInstrumentForPaymentMethod(e){var t;return(null===(t=this.availablePaymentMethods.find(({paymentMethodCode:t})=>t===e))||void 0===t?void 0:t.paymentInstruments)||[]}static getPaymentMethodForStoredInstrument(e){const t=this.availablePaymentMethods.find(({paymentInstruments:t})=>null==t?void 0:t.some(({id:t})=>t===e.id));return t&&this.getPaymentMethodConfig(t)}static getPaymentMethodConfig(e){const{paymentInstruments:i}=e;return t(e,["paymentInstruments"])}static updateInstallmentOptions(e){const t=q.getFullPaymentMethodConfig(exports.PAYMENT_METHOD_CODES.CARD);(null==t?void 0:t.clientConfig)&&(t.clientConfig.installments=e)}static updateMeta(e,t){if(!$.includes(e))return;const i=q.response.meta||{},n=X(i[e]||{},t);q._response=Object.assign(Object.assign({},q.response),{meta:Object.assign(Object.assign({},i),{[e]:n})}),q._updatedMetaKeys.add(e)}static getAllowedMeta(){const e=q.response.meta||{};return q.pickMetaByKeys(e,$)}static getUpdatedMeta(){const e=q.response.meta||{};return q.pickMetaByKeys(e,q._updatedMetaKeys)}static pickMetaByKeys(e,t){const i={};for(const n of t){const t=e[n];void 0!==t&&(i[n]=t)}return i}}var W,K;q._updatedMetaKeys=new Set,function(e){e.REDIRECT="redirect",e.DIRECT="direct",e.EMBEDDED="embedded"}(W||(W={})),exports.INTEGRATION_TYPE=void 0,(K=exports.INTEGRATION_TYPE||(exports.INTEGRATION_TYPE={})).API="api",K.HPP="hpp";class Z{constructor(){this._config=void 0}static getInstance(){return Z._instance||(Z._instance=new Z),Z._instance}set config(e){try{Z.getInstance()._config=e}catch(e){r.PayrailsLogger.error("Error parsing SDK Configuration",{error:e})}}get config(){return Z.getInstance()._config||r.PayrailsLogger.error("SDK Configuration not set"),Z.getInstance()._config||{}}}const J=()=>Z.getInstance().config,Q=e=>{try{const t=JSON.parse(function(e){const t=window.atob(e);return decodeURIComponent(Array.prototype.map.call(t,e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}(e.data));Z.getInstance().response=e,Z.getInstance().config=t,t.execution&&q.setResponse(t.execution)}catch(e){r.PayrailsLogger.error("Error parsing SDK Configuration",{error:e})}},ee=[];for(let e=0;e<256;++e)ee.push((e+256).toString(16).slice(1));let te;const ie=new Uint8Array(16);var ne={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function se(e,t,i){if(ne.randomUUID&&!e)return ne.randomUUID();const n=(e=e||{}).random??e.rng?.()??function(){if(!te){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");te=crypto.getRandomValues.bind(crypto)}return te(ie)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=15&n[6]|64,n[8]=63&n[8]|128,function(e,t=0){return(ee[e[t+0]]+ee[e[t+1]]+ee[e[t+2]]+ee[e[t+3]]+"-"+ee[e[t+4]]+ee[e[t+5]]+"-"+ee[e[t+6]]+ee[e[t+7]]+"-"+ee[e[t+8]]+ee[e[t+9]]+"-"+ee[e[t+10]]+ee[e[t+11]]+ee[e[t+12]]+ee[e[t+13]]+ee[e[t+14]]+ee[e[t+15]]).toLowerCase()}(n)}var oe;!function(e){e.GET="GET",e.POST="POST",e.DELETE="DELETE",e.PATCH="PATCH"}(oe||(oe={}));const re=e=>i(void 0,[e],void 0,function*({url:e,method:t=oe.GET,token:i="",body:n}){const s={method:t,headers:Object.assign(Object.assign(Object.assign({},he()),ue(i)),pe())};t!==oe.POST&&t!==oe.PATCH||(s.body=JSON.stringify(n||{}));const o=yield fetch(e,s);if([401,403].includes(o.status))throw new ae(e,t);if(429===o.status)throw new de(e,t);if(!o.ok)throw new le(e,t);const r=yield o.json();return{ok:o.ok,req:Object.assign({url:e},s),res:r}});class ae extends o.PayrailsError{constructor(e,t){super(o.ERROR_CODES.PAYRAILS_API_UNAUTHORIZED,{description:`[${t}] ${e} unauthorized`})}}let le=class extends o.PayrailsError{constructor(e,t){super(o.ERROR_CODES.PAYRAILS_API_UNSUCCESSFUL,{description:`[${t}] ${e} unsuccessful`})}},de=class extends o.PayrailsError{constructor(e,t){super(o.ERROR_CODES.PAYRAILS_API_TOO_MANY_REQUESTS,{description:`[${t}] ${e} too many requests`})}};class ce extends o.PayrailsError{constructor(e,t){super(o.ERROR_CODES.PAYRAILS_API_TOO_MANY_REQUESTS,{description:`[${t}] ${e} max poll attempts exceeded.`})}}const ue=e=>({authorization:`Bearer ${e}`}),he=()=>({"x-idempotency-key":se()}),pe=()=>{const e={version:"5.48.0-RC-1",type:"web-sdk"};return{"x-client-version":e.version,"x-client-type":e.type}},_e=e=>i(void 0,void 0,void 0,function*(){var t,i;if(!e)return{bin:""};if(e.length<6)return{bin:e};const n=null===(i=null===(t=J().links)||void 0===t?void 0:t.binLookup)||void 0===i?void 0:i.href;if(!n)return{bin:e};try{const t=yield((e,t,i)=>re({url:e,method:oe.POST,token:t,body:{bin:i}}))(n,J().token,e);return t.res}catch(t){const i=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_API_BIN_LOOKUP_FAILED,{description:"Error fetching BIN lookup data!",cause:t});return r.PayrailsLogger.error(i.message,{error:i}),{bin:e}}}),Ee=({url:e,token:t,body:i})=>re({url:e,token:t,method:oe.POST,body:i}),me=(e,t)=>i(void 0,void 0,void 0,function*(){var i,n;const s=yield e(),a=J().vaultConfiguration.links.saveInstrument.href,l=J().token;if(!a){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND,{description:"Save instrument URL not available!"});throw r.PayrailsLogger.error(e.message,{error:e}),e}const d={holderReference:J().holderReference,paymentMethod:"card",storeInstrument:null!==(i=null==t?void 0:t.storeInstrument)&&void 0!==i&&i,futureUsage:null!==(n=null==t?void 0:t.futureUsage)&&void 0!==n?n:"CardOnFile",data:{encryptedData:s.encryptedData,vaultProviderConfigId:s.vaultProviderConfigId}};return(yield Ee({url:a,token:l,body:d})).res});exports.ElementType=void 0,function(e){e.CARD_NUMBER="CARD_NUMBER",e.CARDHOLDER_NAME="CARDHOLDER_NAME",e.CVV="CVV",e.EXPIRATION_MONTH="EXPIRATION_MONTH",e.EXPIRATION_YEAR="EXPIRATION_YEAR",e.EXPIRATION_DATE="EXPIRATION_DATE",e.CARD_FORM="CARD_FORM"}(exports.ElementType||(exports.ElementType={}));class ve{constructor(e,t){var n;this.bin="",this.isBinLookupEnabled=!1,this.id="payrails-container-wrapper",this.dataTestId="payrails-container-wrapper",this.className="payrails-container-wrapper",this.containerType="COMPOSABLE",this.manualErrorElements=new Set,this.fetchBinLookup=e=>i(this,void 0,void 0,function*(){return _e(e)}),this.cardTableName=t.cardTableName||"cards",this.containerType=t.containerType||"COMPOSABLE",this.isBinLookupEnabled=!!(null===(n=J().links)||void 0===n?void 0:n.binLookup);try{this.__container=e.container(this.containerType,t)}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CREATION_FAILED,{cause:e});r.PayrailsLogger.error(t.message,{error:t})}}static init(e,t){var i;return this.instance&&(null===(i=this.instance.__container)||void 0===i||i.unmount()),this.instance=new ve(e,t),this.instance}createCollectElement(e){var t;const i={required:!!e.required,enableCardIcon:!1!==e.enableCardIcon},n=null===(t=this.__container)||void 0===t?void 0:t.create(Object.assign(Object.assign({table:this.cardTableName,labelStyles:{},errorTextStyles:{},column:this.elementToFieldMap.get(e.type)},e),{type:e.type===exports.ElementType.CARDHOLDER_NAME?"INPUT_FIELD":e.type}),e.format?Object.assign(Object.assign({},i),{format:e.format}):i);if(!n){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING,{description:"Error creating collect element!"});throw r.PayrailsLogger.error(e.message,{error:e}),e}return this.attachCustomEventHandler(n)}mount(e){if("COLLECT"===this.containerType){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT);throw r.PayrailsLogger.error(e.message,{error:e}),e}this.element=document.createElement("span"),this.element.setAttribute("id",`${this.id}`),this.element.setAttribute("data-testid",this.dataTestId),this.element.setAttribute("class",this.className);const t=document.querySelector(e);if(!t){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_PARENT_ELEMENT_MISSING);throw r.PayrailsLogger.error(t.message,{error:t,extra:{elementSelector:e}}),t}t.appendChild(this.element);try{window.setTimeout(()=>{this.__container.mount(`#${this.id}`)},50)}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT);r.PayrailsLogger.error(t.message,{error:t})}}unmount(){this.element&&this.element.remove()}validate(){return i(this,void 0,void 0,function*(){var e;return yield null===(e=this.__container)||void 0===e?void 0:e.validate()})}collect(){return i(this,void 0,void 0,function*(){try{return yield this.collectPayrailsData()}catch(e){const t=new Error(e.message);t.stack=e.stack,t.name=e.name,t.message=e.message;const i=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_OPERATION_FAILED,{description:"Error collecting data from the iframe!",cause:t});throw t.name!==o.ERROR_CODES.PAYRAILS_CARD_FORM_COMPLETE_AND_VALID_INPUTS&&r.PayrailsLogger.error(i.message,{error:i}),i}})}reset(){var e;null===(e=this.__container)||void 0===e||e.reset()}collectPayrailsData(){return i(this,void 0,void 0,function*(){var e;const t=yield null===(e=this.__container)||void 0===e?void 0:e.collect();return Object.assign(Object.assign({},t),{vaultProviderConfigId:J().vaultConfiguration.providerConfigId})})}tokenize(e){return i(this,void 0,void 0,function*(){return me(()=>this.collect(),e)})}attachCustomEventHandler(e){return new Proxy(e,{get:(e,t)=>{const i=e[t];if("on"===t){return((i,n)=>{e[t].call(e,i,t=>{"CHANGE"===i?(this.manualErrorElements.has(e)&&!t.isEmpty&&("resetError"in e&&"function"==typeof e.resetError&&e.resetError(),this.manualErrorElements.delete(e)),t.elementType===exports.ElementType.CARD_NUMBER&&(t.network=function(e){for(const[t,i]of Object.entries(G))if(i.test(e))return t;return""}(t.value),t.bin=this.formatBin(t.value),this.bin=this.formatBin(t.value)),n(t)):n(t)})}).bind(e)}return"setError"===t?(...t)=>(this.manualErrorElements.add(e),i.apply(e,t)):"function"==typeof i?i.bind(e):i}})}formatBin(e){return e.replace(/[-X]/g,"").slice(0,8)}get elementToFieldMap(){return new Map([[exports.ElementType.CARD_NUMBER,"card_number"],[exports.ElementType.CARDHOLDER_NAME,"cardholder_name"],[exports.ElementType.CVV,"security_code"],[exports.ElementType.EXPIRATION_MONTH,"expiry_month"],[exports.ElementType.EXPIRATION_YEAR,"expiry_year"],[exports.ElementType.EXPIRATION_DATE,"expiry_date"]])}}var ye={};!function(e){var t=Object.defineProperty,i=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,o=(e,i,n)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n;function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var a,l={},d={};var c,u={};var h,p={};var _,E={};var m,v={};var y,I={};var f,A={};var L,O={};var g,C={};var T,R={};var N,S,b,P,D={},M={};function w(){if(N)return M;N=1,Object.defineProperty(M,"__esModule",{value:!0}),M.Framebus=void 0;var e=H(),t="undefined"!=typeof window&&window.Promise,i=function(){function i(e){void 0===e&&(e={}),this.origin=e.origin||"*",this.channel=e.channel||"",this.verifyDomain=e.verifyDomain,this.targetFrames=e.targetFrames||[],this.limitBroadcastToFramesArray=Boolean(e.targetFrames),this.isDestroyed=!1,this.listeners=[],this.hasAdditionalChecksForOnListeners=Boolean(this.verifyDomain||this.limitBroadcastToFramesArray)}return i.setPromise=function(e){i.Promise=e},i.target=function(e){return new i(e)},i.prototype.addTargetFrame=function(e){this.limitBroadcastToFramesArray&&this.targetFrames.push(e)},i.prototype.include=function(t){return null!=t&&(null!=t.Window&&(t.constructor===t.Window&&(e.childWindows.push(t),!0)))},i.prototype.target=function(e){return i.target(e)},i.prototype.emit=function(t,i,n){if(this.isDestroyed)return!1;var s=this.origin;if(t=this.namespaceEvent(t),(0,e.isntString)(t))return!1;if((0,e.isntString)(s))return!1;"function"==typeof i&&(n=i,i=void 0);var o=(0,e.packagePayload)(t,s,i,n);return!!o&&(this.limitBroadcastToFramesArray?this.targetFramesAsWindows().forEach(function(t){(0,e.sendMessage)(t,o,s)}):(0,e.broadcast)(o,{origin:s,frame:window.top||window.self}),!0)},i.prototype.emitAsPromise=function(e,t){var n=this;return new i.Promise(function(i,s){n.emit(e,t,function(e){i(e)})||s(new Error('Listener not added for "'.concat(e,'"')))})},i.prototype.on=function(t,i){if(this.isDestroyed)return!1;var n=this,s=this.origin,o=i;return t=this.namespaceEvent(t),!(0,e.subscriptionArgsInvalid)(t,o,s)&&(this.hasAdditionalChecksForOnListeners&&(o=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];n.passesVerifyDomainCheck(this&&this.origin)&&n.hasMatchingTargetFrame(this&&this.source)&&i.apply(void 0,e)}),this.listeners.push({eventName:t,handler:o,originalHandler:i}),e.subscribers[s]=e.subscribers[s]||{},e.subscribers[s][t]=e.subscribers[s][t]||[],e.subscribers[s][t].push(o),!0)},i.prototype.off=function(t,i){var n=i;if(this.isDestroyed)return!1;if(this.verifyDomain)for(var s=0;s<this.listeners.length;s++){var o=this.listeners[s];o.originalHandler===i&&(n=o.handler)}t=this.namespaceEvent(t);var r=this.origin;if((0,e.subscriptionArgsInvalid)(t,n,r))return!1;var a=e.subscribers[r]&&e.subscribers[r][t];if(!a)return!1;for(s=0;s<a.length;s++)if(a[s]===n)return a.splice(s,1),!0;return!1},i.prototype.teardown=function(){if(!this.isDestroyed){this.isDestroyed=!0;for(var e=0;e<this.listeners.length;e++){var t=this.listeners[e];this.off(t.eventName,t.handler)}this.listeners.length=0}},i.prototype.passesVerifyDomainCheck=function(e){return!this.verifyDomain||this.checkOrigin(e)},i.prototype.targetFramesAsWindows=function(){return this.limitBroadcastToFramesArray?this.targetFrames.map(function(e){return e instanceof HTMLIFrameElement?e.contentWindow:e}).filter(function(e){return e}):[]},i.prototype.hasMatchingTargetFrame=function(e){if(!this.limitBroadcastToFramesArray)return!0;var t=this.targetFramesAsWindows().find(function(t){return t===e});return Boolean(t)},i.prototype.checkOrigin=function(e){var t,i=document.createElement("a");return i.href=location.href,t="https:"===i.protocol?i.host.replace(/:443$/,""):"http:"===i.protocol?i.host.replace(/:80$/,""):i.host,i.protocol+"//"+t===e||(!this.verifyDomain||this.verifyDomain(e))},i.prototype.namespaceEvent=function(e){return this.channel?"".concat(this.channel,":").concat(e):e},i.Promise=t,i}();return M.Framebus=i,M}function k(){if(P)return D;P=1;var e=D&&D.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(D,"__esModule",{value:!0}),D.subscribeReplier=void 0;var t=w(),i=e((b||(b=1,S=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}),S));return D.subscribeReplier=function(e,n){var s=(0,i.default)();return t.Framebus.target({origin:n}).on(s,function i(o,r){e(o,r),t.Framebus.target({origin:n}).off(s,i)}),s},D}var Y,U={};var x,F={};var j,B,V,G,X={};function H(){return B||(B=1,function(e){var t=l&&l.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),i=l&&l.__exportStar||function(e,i){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(i,n)||t(i,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),i(function(){if(a)return d;a=1,Object.defineProperty(d,"__esModule",{value:!0}),d.detach=d.attach=void 0;var e=H(),t=!1;return d.attach=function(){t||"undefined"==typeof window||(t=!0,window.addEventListener("message",e.onMessage,!1))},d.detach=function(){t=!1,window.removeEventListener("message",e.onMessage,!1)},d}(),e),i(function(){if(c)return u;c=1,Object.defineProperty(u,"__esModule",{value:!0}),u.broadcastToChildWindows=void 0;var e=H();return u.broadcastToChildWindows=function(t,i,n){for(var s=e.childWindows.length-1;s>=0;s--){var o=e.childWindows[s];o.closed?e.childWindows.splice(s,1):n!==o&&(0,e.broadcast)(t,{origin:i,frame:o.top})}},u}(),e),i(function(){if(h)return p;h=1,Object.defineProperty(p,"__esModule",{value:!0}),p.broadcast=void 0;var e=H();return p.broadcast=function t(i,n){var s,o=0,r=n.origin,a=n.frame;try{for(a.postMessage(i,r),(0,e.hasOpener)(a)&&a.opener.top!==window.top&&t(i,{origin:r,frame:a.opener.top});s=a.frames[o];)t(i,{origin:r,frame:s}),o++}catch(e){}},p}(),e),i((_||(_=1,Object.defineProperty(E,"__esModule",{value:!0}),E.subscribers=E.childWindows=E.prefix=void 0,E.prefix="/*framebus*/",E.childWindows=[],E.subscribers={}),E),e),i(function(){if(m)return v;m=1,Object.defineProperty(v,"__esModule",{value:!0}),v.dispatch=void 0;var e=H();return v.dispatch=function(t,i,n,s,o){if(e.subscribers[t]&&e.subscribers[t][i]){var r=[];n&&r.push(n),s&&r.push(s);for(var a=0;a<e.subscribers[t][i].length;a++)e.subscribers[t][i][a].apply(o,r)}},v}(),e),i((y||(y=1,Object.defineProperty(I,"__esModule",{value:!0}),I.hasOpener=void 0,I.hasOpener=function(e){return e.top===e&&null!=e.opener&&e.opener!==e&&!0!==e.opener.closed}),I),e),i((f||(f=1,Object.defineProperty(A,"__esModule",{value:!0}),A.isntString=void 0,A.isntString=function(e){return"string"!=typeof e}),A),e),i(function(){if(L)return O;L=1,Object.defineProperty(O,"__esModule",{value:!0}),O.onMessage=void 0;var e=H();return O.onMessage=function(t){if(!(0,e.isntString)(t.data)){var i=(0,e.unpackPayload)(t);if(i){var n=i.eventData,s=i.reply;(0,e.dispatch)("*",i.event,n,s,t),(0,e.dispatch)(t.origin,i.event,n,s,t),(0,e.broadcastToChildWindows)(t.data,i.origin,t.source)}}},O}(),e),i(function(){if(g)return C;g=1,Object.defineProperty(C,"__esModule",{value:!0}),C.packagePayload=void 0;var e=H();return C.packagePayload=function(t,i,n,s){var o,r={event:t,origin:i};"function"==typeof s&&(r.reply=(0,e.subscribeReplier)(s,i)),r.eventData=n;try{o=e.prefix+JSON.stringify(r)}catch(e){throw new Error("Could not stringify event: ".concat(e.message))}return o},C}(),e),i((T||(T=1,Object.defineProperty(R,"__esModule",{value:!0}),R.sendMessage=void 0,R.sendMessage=function(e,t,i){try{e.postMessage(t,i)}catch(e){}}),R),e),i(k(),e),i(function(){if(Y)return U;Y=1,Object.defineProperty(U,"__esModule",{value:!0}),U.subscriptionArgsInvalid=void 0;var e=H();return U.subscriptionArgsInvalid=function(t,i,n){return!!(0,e.isntString)(t)||"function"!=typeof i||(0,e.isntString)(n)},U}(),e),i((x||(x=1,Object.defineProperty(F,"__esModule",{value:!0})),F),e),i(function(){if(j)return X;j=1,Object.defineProperty(X,"__esModule",{value:!0}),X.unpackPayload=void 0;var e=H();return X.unpackPayload=function(t){var i;if(t.data.slice(0,e.prefix.length)!==e.prefix)return!1;try{i=JSON.parse(t.data.slice(e.prefix.length))}catch(e){return!1}if(i.reply){var n=t.origin,s=t.source,o=i.reply;i.reply=function(t){if(s){var i=(0,e.packagePayload)(o,n,t);i&&s.postMessage(i,n)}}}return i},X}(),e)}(l)),l}const z=r(function(){if(G)return V;G=1;var e=H(),t=w();return(0,e.attach)(),V=t.Framebus}());class ${constructor(e){this.origin=null,this.onAndEmit=(e,t,i="*")=>{const n=`${e}-REQ`,s=n=>{return s=this,o=null,r=function*(){const s=yield t(n);this.bus.target({origin:i}).emit(`${e}-RES`,s)},new Promise((e,t)=>{var i=e=>{try{a(r.next(e))}catch(e){t(e)}},n=e=>{try{a(r.throw(e))}catch(e){t(e)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,n);a((r=r.apply(s,o)).next())});var s,o,r};return this.bus.on(n,s),()=>this.bus.off(n,s)},this.emitAndResolve=(e,t,r="*",a)=>new Promise((l,d)=>{if(null==a?void 0:a.aborted)return void d(a.reason);const c=`${e}-RES`,u=e=>{p(),l(e)},h=()=>{p(),d(a.reason)},p=()=>{this.bus.off(c,u),null==a||a.removeEventListener("abort",h)};this.bus.on(c,u),null==a||a.addEventListener("abort",h),this.bus.target({origin:r}).emit(`${e}-REQ`,((e,t)=>{for(var r in t||(t={}))n.call(t,r)&&o(e,r,t[r]);if(i)for(var r of i(t))s.call(t,r)&&o(e,r,t[r]);return e})({},t))}),this.bus=new z(e)}static getInstance(){return $.instance||($.instance=new $),$.instance}on(e,t){return this.bus.on(e,t)}off(e,t){return this.bus.off(e,t)}emit(e,t,i=void 0){return this.bus.emit(e,t,i)}target(e){return this.bus.target(e)}}var q=(e=>(e.BUTTON_CLICK_VALIDATE="BUTTON_CLICK_VALIDATE",e.COLLECT="COLLECT",e.READY="READY",e.SHOW="SHOW",e.CHANGE="CHANGE",e.FOCUS="FOCUS",e.BLUR="BLUR",e.ERROR="ERROR",e.COLLECT_ERROR="COLLECT_ERROR",e.FOCUS_ELEMENT="FOCUS_ELEMENT",e.SET_ERROR="SET_ERROR",e.UPDATE="UPDATE",e.SET_ATTRIBUTE="SET_ATTRIBUTE",e.VALIDATE="VALIDATE",e.RESET="RESET",e.SUBMIT="SUBMIT",e.RESIZE="RESIZE",e.IS_AVAILABLE="IS_AVAILABLE",e))(q||{}),W=(e=>(e.Collect="COLLECT",e.Display="DISPLAY",e))(W||{}),K=(e=>(e.GooglePay="GOOGLE_PAY",e.CardForm="CARD_FORM",e.CardNumber="CARD_NUMBER",e.ExpiryYear="EXPIRATION_YEAR",e.ExpiryMonth="EXPIRATION_MONTH",e.ExpiryDate="EXPIRATION_DATE",e.SecurityCode="CVV",e.CardHolderName="CARDHOLDER_NAME",e))(K||{});e.COLLECT_FRAME_EVENT_NAMES=q,e.IframeEventBus=$,e.SecureFrameMode=W,e.SecureFrameType=K,e.getEventBus=()=>$.getInstance()}(ye);class Ie{constructor(){this.events={}}on(e,t,i=!1){this.events[e]?this.events[e].push({priority:i,callback:t}):this.events[e]=[{priority:i,callback:t}]}off(e,t){const i=this.events[e];if(!i)return;const n=i.findIndex(e=>e.callback===t);i.splice(n,1)}_emit(e,...t){const i=this.events[e];i&&i.forEach(e=>{e.callback(...t)})}hasListener(e){const t=this.events[e];return!!t&&t.length>0}resetEvents(){const e={};Object.keys(this.events).forEach(t=>{const i=this.events[t];if(i&&i.length>0){const n=[];i.forEach(e=>{e.priority&&n.push(e)}),e[t]=n}}),this.events=e}static createChild(e){e.prototype=Object.create(Ie.prototype,{constructor:e})}}
2
2
  /* @copyright
3
3
  Copyright (c) 2022 Skyflow, Inc.
4
- */const ve={IFRAME_SECURE_SITE:"https://js.skyflow.com/v1/elements/index.html",IFRAME_SECURE_ORGIN:"https://js.skyflow.com"},ye="https://assets.payrails.io/739d580/card/index.html",Ie="https://assets.payrails.io",fe={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no",style:"width: 100%;",allow:"clipboard-read; clipboard-write"},Ae=(e,t)=>{Object.keys(t).forEach(i=>{if(Object.prototype.hasOwnProperty.call(t,i)){const n=t[i];null==n?e.removeAttribute(i):e.setAttribute(i,n)}})};var Le=(e={})=>{const t=document.createElement("iframe"),i=Object.assign(Object.assign({},fe),e);return Object.assign(t.style,b),Ae(t,i),t.getAttribute("id")||(t.id=t.name),t};const ge=()=>ve.IFRAME_SECURE_SITE,Oe=(e,t)=>{Object.keys(t).forEach(i=>{Object.prototype.hasOwnProperty.call(t,i)&&(e.style[i]=t[i])})};function Te(e){return JSON.parse(JSON.stringify(e))}var Ce,Re,Ne,Se,Pe,be,De;!function(e){e.DEFAULT="DEFAULT",e.PLAIN_TEXT="PLAIN_TEXT",e.MASKED="MASKED",e.REDACTED="REDACTED"}(Ce||(Ce={})),function(e){e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.DELETE="DELETE"}(Re||(Re={})),function(e){e.CHANGE="CHANGE",e.READY="READY",e.FOCUS="FOCUS",e.BLUR="BLUR",e.SUBMIT="SUBMIT"}(Ne||(Ne={})),function(e){e.WARN="WARN",e.INFO="INFO",e.DEBUG="DEBUG",e.ERROR="ERROR"}(Se||(Se={})),function(e){e.DEV="DEV",e.PROD="PROD"}(Pe||(Pe={})),function(e){e.LOG="LOG",e.WARN="WARN",e.ERROR="ERROR"}(be||(be={})),function(e){e.REGEX_MATCH_RULE="REGEX_MATCH_RULE",e.LENGTH_MATCH_RULE="LENGTH_MATCH_RULE",e.ELEMENT_VALUE_MATCH_RULE="ELEMENT_VALUE_MATCH_RULE"}(De||(De={}));const Me={DEBUG:{showDebugLogs:!0,showInfoLogs:!0,showWarnLogs:!0,showErrorLogs:!0},INFO:{showDebugLogs:!1,showInfoLogs:!0,showWarnLogs:!0,showErrorLogs:!0},WARN:{showDebugLogs:!1,showInfoLogs:!1,showWarnLogs:!0,showErrorLogs:!0},ERROR:{showDebugLogs:!1,showInfoLogs:!1,showWarnLogs:!1,showErrorLogs:!0}},we={PROD:{doesReturnValue:!1},DEV:{doesReturnValue:!0}},ke="[Skyflow]",Ye=(e,t,i)=>{if(i&&Me[i]){const{showDebugLogs:n,showInfoLogs:s,showWarnLogs:o,showErrorLogs:r}=Me[i];t===be.LOG&&n?console.log(`${Se.DEBUG}: ${ke} ${e}`):t===be.LOG&&s?console.log(`${Se.INFO}: ${ke} ${e}`):t===be.WARN&&o?console.warn(`${Se.WARN}: ${ke} ${e}`):t===be.ERROR&&r&&console.error(`${Se.ERROR}: ${ke} ${e}`)}},Ue=(...e)=>{const t=e[0],i=e.filter((e,t)=>0!==t);return t?t.replace(/%s[0-9]+/g,e=>{const t=e.replace("%s","")-1;return i[t]}):""},xe=(e="")=>{const t=e.split(":");if("group"===t[1])return"composable container";let i=atob(t[2]);return-1!==i.indexOf(":")&&(i=i.substring(0,i.indexOf(":"))),i},Fe=e=>{if(!e||!Object.prototype.hasOwnProperty.call(e,"records"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_RECORDS_KEY_MISSING_IN_ADDITIONAL_FIELDS);const{records:t}=e;if(!t||!Array.isArray(t))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_RECORDS_IN_ADDITIONAL_FIELDS);if(0===t.length)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_RECORDS_IN_ADDITIONAL_FIELDS);t.forEach((e,t)=>{var i,n,o,r;if(!e||!Object.prototype.hasOwnProperty.call(e,"table"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_ADDITIONAL_FIELDS);if(!e.table)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE_IN_ADDITIONAL_FIELDS);if(void 0!==(null===(i=e.fields)||void 0===i?void 0:i.skyflowID)){if(!(null===(n=e.fields)||void 0===n?void 0:n.skyflowID))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_SKYFLOW_ID);if(!("string"==typeof(null===(o=e.fields)||void 0===o?void 0:o.skyflowID)||(null===(r=e.fields)||void 0===r?void 0:r.skyflowID)instanceof String))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_SKYFLOW_ID)}if(!("string"==typeof e.table||e.table instanceof String))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_ADDITIONAL_FIELDS);if(!Object.prototype.hasOwnProperty.call(e,"fields"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_FIELDS_IN_ADDITIONAL_FIELDS);if(!e.fields)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_FIELDS_IN_ADDITIONAL_FIELDS);if("object"!=typeof e.fields||Array.isArray(e.fields))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_FIELDS_IN_ADDITIONAL_FIELDS)})},je=e=>{let t=!0;try{new RegExp(e)}catch(e){t=!1}return t},Be=e=>{if(!Object.prototype.hasOwnProperty.call(e,"getBearerToken"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_GET_BEARER_TOKEN_MISSING)},Ve=(e,t)=>{if(!Object.prototype.hasOwnProperty.call(e,"type"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_TYPE);if(!e.type)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_TYPE);if(Object.prototype.hasOwnProperty.call(e,"altText")&&Ye(l.COLLECT_ALT_TEXT_DEPERECATED,be.WARN,t),Object.prototype.hasOwnProperty.call(e,"skyflowID")&&"string"!=typeof e.skyflowID)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_SKYFLOW_ID)},Ge=e=>{if(!e||!Array.isArray(e))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_TYPE);if(!e.length)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_UPSERT_OPTIONS_ARRAY);e.forEach((e,t)=>{if(!e||"object"!=typeof e)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_OBJECT_TYPE);if(!Object.prototype.hasOwnProperty.call(e,"table"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_UPSERT_OPTION);if(!e.table||"string"!=typeof e.table||!e.table.length)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_UPSERT_OPTION);if(!Object.prototype.hasOwnProperty.call(e,"column"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN_IN_UPSERT_OPTION);if(!e.column||"string"!=typeof e.column||!e.column.length)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN_IN_UPSERT_OPTION)})},Xe=e=>"boolean"==typeof e;function ze(e){const t=e.split(":");return t.length>2?(t.pop(),t.pop(),t.join(":")):""}const He=(e,t,i)=>{if("string"!=typeof e)return e;if(t===C.CARD_NUMBER){if(e=e&&e.replace(/\s/g,""),!i){((e="")=>{const t=e.replace(/[\s-]/g,"");let i=R.DEFAULT;Object.entries(k).forEach(([e,n])=>{n.regex.test(t)&&(i=e)})})(e);const t=e.length<=15?6:8;return e.length>t?e.replace(new RegExp(`.(?=.{0,${(null==e?void 0:e.length)-t-1}}$)`,"g"),"X"):e}return e}return i?e:void 0};function qe(e){var t,i,n,s;if((null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.customElementsURL)&&(e=>{if(!e||"https"!==e.substring(0,5).toLowerCase())return!1;try{if(new URL(e))return!0}catch(e){return!1}return!0})(null===(i=null==e?void 0:e.options)||void 0===i?void 0:i.customElementsURL)){const t=null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.customElementsURL,i=new URL(t),o=i.protocol,r=i.hostname;ve.IFRAME_SECURE_ORGIN=`${o}//${r}`,ve.IFRAME_SECURE_SITE=null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.customElementsURL}ve.IFRAME_SECURE_ORGIN=Ie,ve.IFRAME_SECURE_SITE=ye}class We{constructor(e,t,i,n){this.setAttributess=e=>{Ae(this.iframe,{src:e})},this.mount=e=>{var t;this.unmount();try{if("string"==typeof e){if(this.container=document.querySelector(e)||void 0,!this.container)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_SELECTOR)}else{if(!(e instanceof HTMLElement))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_SELECTOR);this.container=e}}catch(e){console.error(e)}Ae(this.iframe,{src:ge(),title:"Secure Credit Card Form","aria-label":"Secure payment form",role:"application",tabindex:"0"}),null===(t=this.container)||void 0===t||t.appendChild(this.iframe)},this.setIframeHeight=e=>{this.iframe.getAttribute("height")!==`${e}px`&&this.iframe.setAttribute("height",`${e}px`)},this.unmount=()=>{this.iframe.remove()},this.name=`${e}:${i}:${n}`,this.metadata=t,this.iframe=Le({name:this.name})}}class Ke{}var $e,Ze,Je,Qe,et,tt,it,nt,st,ot,rt,at,lt,dt,ct,ut,pt,ht,_t,Et,mt;const vt="Element";class yt extends Ke{constructor(t,o,a,l,d=!1,c,u,_,E){var I;super(),this.type=Pi.COLLECT,$e.set(this,void 0),Ze.set(this,!1),Je.set(this,void 0),Qe.set(this,void 0),et.set(this,{isEmpty:!0,isComplete:!1,isValid:!1,isFocused:!1,value:void 0,isRequired:!1}),tt.set(this,void 0),it.set(this,new me),nt.set(this,void 0),st.set(this,Ee.getEventBus()),ot.set(this,void 0),rt.set(this,[]),at.set(this,!1),lt.set(this,void 0),dt.set(this,void 0),ct.set(this,!1),this.getID=()=>i(this,$e,"f"),this.mount=t=>{var o;if(!t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_IN_MOUNT);const a=(t,s)=>{if(t.name===i(this,ot,"f").name){s(i(this,tt,"f")),i(this,mt,"f").call(this);const t=i(this,Je,"f")[0],{name:o}=t,l=e(t,["name"]);i(this,Qe,"f").length>1?i(this,Qe,"f").forEach((e,t)=>{i(this,nt,"f")&&i(this,nt,"f")._emit(`${p.READY}:${e.elementName}`,Object.assign(Object.assign({},i(this,Je,"f")[t]),{elementType:e.elementType}))}):i(this,it,"f")._emit(p.READY,Object.assign({},l)),i(this,st,"f").off(h+this.containerId,a),Ye(`${Ue(r.ELEMENT_MOUNTED,vt,xe(i(this,ot,"f").name))} `,be.LOG,i(this,lt,"f").logLevel),i(this,rt,"f").forEach(e=>e()),n(this,rt,[],"f")}};if(i(this,Qe,"f").length>1)i(this,ot,"f").mount(t),i(this,st,"f").on(h+this.containerId,a);else{if(i(this,ct,"f"))return i(this,ot,"f").mount(t),void i(this,st,"f").on(h+this.containerId,a);null===(o=i(this,nt,"f"))||void 0===o||o.on(T,e=>{(null==e?void 0:e.containerId)===this.containerId&&(i(this,ot,"f").mount(t),i(this,st,"f").on(h+this.containerId,a))})}},this.unmount=()=>{i(this,st,"f").off(m,i(this,_t,"f")),i(this,ot,"f").unmount()},this.update=e=>{let t=Te(e);const s=()=>{i(this,Ze,"f")&&(t={rows:[{elements:[Object.assign({},t)]}]}),n(this,tt,ft(i(this,tt,"f"),t),"f"),n(this,Qe,At(i(this,tt,"f")),"f"),i(this,Ze,"f")?i(this,st,"f").emit(y,{name:i(this,ot,"f").name,options:i(this,Qe,"f")[0],isSingleElementAPI:!0}):(i(this,Qe,"f").forEach(e=>{i(this,st,"f").emit(y,{name:e.elementName,options:e,isSingleElementAPI:!0})}),i(this,st,"f").emit(y,{name:i(this,ot,"f").name,options:i(this,tt,"f"),isSingleElementAPI:!1})),i(this,mt,"f").call(this)};i(this,at,"f")?s():i(this,rt,"f").push(s)},ut.set(this,e=>{i(this,Ze,"f")||i(this,it,"f").on(y,()=>{e(i(this,Qe,"f"))},!0)}),this.updateElement=e=>{i(this,st,"f").emit(y,{name:e.elementName,options:e,isSingleElementAPI:!0})},pt.set(this,()=>{i(this,Je,"f").forEach((e,t)=>{var n;if(0===t){i(this,et,"f").isEmpty=e.isEmpty,i(this,et,"f").isComplete=e.isComplete,i(this,et,"f").isValid=e.isValid,i(this,et,"f").isFocused=e.isFocused,i(this,et,"f").isRequired=e.isRequired,i(this,et,"f").value={};const n=i(this,Qe,"f")[t].elementName,s=e.value&&He(e.value,e.elementType,i(this,dt,"f"));i(this,Ze,"f")?i(this,et,"f").value=s:i(this,et,"f").value[n]=s}else i(this,et,"f").isEmpty=i(this,et,"f").isEmpty||e.isEmpty,i(this,et,"f").isComplete=i(this,et,"f").isComplete&&e.isComplete,i(this,et,"f").isValid=i(this,et,"f").isValid&&e.isValid,i(this,et,"f").isFocused=i(this,et,"f").isFocused||e.isFocused,i(this,et,"f").isRequired=i(this,et,"f").isRequired||e.isRequired,i(this,et,"f").value||(i(this,et,"f").value={}),!i(this,Qe,"f")[t]&&(null===(n=i(this,Qe,"f")[t])||void 0===n?void 0:n.sensitive)&&(i(this,et,"f").value[i(this,Qe,"f")[t].elementName]=e.value||"")})}),this.getState=()=>({isEmpty:i(this,et,"f").isEmpty,isComplete:i(this,et,"f").isComplete,isValid:i(this,et,"f").isValid,isFocused:i(this,et,"f").isFocused,value:i(this,et,"f").value,required:i(this,et,"f").isRequired}),this.getOptions=()=>{let e=Te(i(this,tt,"f"));return i(this,Ze,"f")?e=e.rows[0].elements[0]:e.rows.forEach(e=>{e.elements.forEach(e=>{delete e.elementName})}),delete e.elementName,e},ht.set(this,e=>{i(this,it,"f").on(v,()=>{const t=i(this,Qe,"f").map(e=>e.elementName);i(this,Ze,"f")||t.push(i(this,ot,"f").name),e(t)},!0)}),_t.set(this,e=>{if(i(this,Ze,"f")&&e.event===p.READY&&e.name===i(this,ot,"f").name)i(this,it,"f")._emit(p.READY);else{const t=i(this,Qe,"f").length>1;i(this,Qe,"f").forEach((n,o)=>{var r;if(e.name===n.elementName){let a="";switch(e.event){case p.FOCUS:a=p.FOCUS;break;case p.BLUR:a=p.BLUR;break;case p.CHANGE:a=p.CHANGE;break;case p.READY:a=p.READY;break;case p.SUBMIT:return void(null===(r=i(this,nt,"f"))||void 0===r||r._emit(p.SUBMIT));default:throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_TYPE)}i(this,Je,"f")[o].isEmpty=e.value.isEmpty,i(this,Je,"f")[o].isValid=e.value.isValid,i(this,Je,"f")[o].isComplete=e.value.isComplete,i(this,Je,"f")[o].isFocused=e.value.isFocused,i(this,Je,"f")[o].isRequired=e.value.isRequired,Object.prototype.hasOwnProperty.call(e.value,"value")?i(this,Je,"f")[o].value=e.value.value:i(this,Je,"f")[o].value=void 0,a=t?`${a}:${e.name}`:a,i(this,st,"f").emit(p.HEIGHT+i(this,ot,"f").name,{},e=>{(null==e?void 0:e.height)>0&&i(this,ot,"f").setIframeHeight(e.height)}),i(this,pt,"f").call(this);const l=Object.assign(Object.assign({},i(this,Je,"f")[o]),{elementType:n.elementType});t&&i(this,nt,"f")?i(this,nt,"f")._emit(a,l):i(this,it,"f")._emit(a,l)}})}}),Et.set(this,()=>{i(this,st,"f").on(m,i(this,_t,"f"))}),mt.set(this,()=>{const{rows:e}=i(this,tt,"f");e.forEach(e=>{e.elements.forEach(e=>{e.elementType!==S.radio.name&&e.elementType!==S.checkbox.name&&(e.value=void 0)})}),n(this,Qe,At(i(this,tt,"f")),"f")}),this.containerId=l.containerId,n(this,$e,t,"f"),n(this,lt,_,"f"),n(this,tt,ft(o),"f"),n(this,Qe,At(o),"f"),n(this,Ze,d,"f"),E&&n(this,nt,E,"f"),n(this,dt,we[i(this,lt,"f").env].doesReturnValue,"f"),this.elementType=i(this,Ze,"f")?i(this,Qe,"f")[0].elementType:"group",n(this,Je,[],"f"),i(this,Qe,"f").forEach(e=>{i(this,Je,"f").push({isEmpty:!0,isComplete:!1,isValid:!1,isFocused:!1,value:i(this,dt,"f")?"":void 0,elementType:e.elementType,name:e.elementName,isRequired:!1})}),n(this,ot,new We(i(this,tt,"f").elementName,a,this.containerId,i(this,lt,"f").logLevel),"f"),i(this,Et,"f").call(this),i(this,ht,"f").call(this,c),i(this,ut,"f").call(this,u),Ye(Ue(r.CREATED_ELEMENT,vt,xe(i(this,ot,"f").name)),be.LOG,i(this,lt,"f").logLevel),n(this,ct,l.isMounted,"f"),null===(I=i(this,nt,"f"))||void 0===I||I.on(T,e=>{(null==e?void 0:e.containerId)===this.containerId&&n(this,ct,!0,"f")});const f=e=>{e.height&&e.height>0&&i(this,ot,"f").setIframeHeight(e.height)};i(this,st,"f").on(p.MOUNTED,e=>{l.type===Pi.COMPOSABLE?i(this,Qe,"f").forEach(t=>{e.name===t.elementName&&(t.isMounted=!0,n(this,at,!0,"f"))}):e.name===i(this,Qe,"f")[0].elementName&&(i(this,Qe,"f")[0].isMounted=!0,n(this,at,!0,"f")),i(this,st,"f").emit(p.HEIGHT+i(this,ot,"f").name,{},f)})}on(e,t){if(!Object.values(p).includes(e))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER);if(!t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER);if("function"!=typeof t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER);i(this,it,"f").on(e,e=>{void 0===e.value&&(e.value=""),delete e.isComplete,delete e.name,t(e)})}iframeName(){return i(this,ot,"f").name}isMounted(){return i(this,at,"f")}isValidElement(){for(let e=0;e<i(this,Qe,"f").length;e+=1){if(!Object.prototype.hasOwnProperty.call(i(this,Qe,"f")[e],"table"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_TABLE_NAME_MISSING);if(!i(this,Qe,"f")[e].table)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE);if(!("string"==typeof i(this,Qe,"f")[e].table||i(this,Qe,"f")[e].table instanceof String))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_NAME);if(!Object.prototype.hasOwnProperty.call(i(this,Qe,"f")[e],"column"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN);if(!i(this,Qe,"f")[e].column)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_COLUMN);if(!("string"==typeof i(this,Qe,"f")[e].column||i(this,Qe,"f")[e].column instanceof String))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN);if(void 0!==i(this,Qe,"f")[e].skyflowID&&!i(this,Qe,"f")[e].skyflowID)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_SKYFLOW_ID)}return!0}setError(e){i(this,st,"f").emit(A,{name:ze(i(this,ot,"f").name),isTriggerError:!0,clientErrorText:e})}resetError(){i(this,st,"f").emit(A,{name:ze(i(this,ot,"f").name),isTriggerError:!1})}setValue(e){i(this,lt,"f").env!==Pe.PROD?i(this,Ze,"f")&&i(this,st,"f").emit(y,{name:i(this,ot,"f").name,options:Object.assign(Object.assign({},i(this,Qe,"f")[0]),{value:e}),isSingleElementAPI:!0}):Ye(Ue(l.UNABLE_TO_SET_VALUE_IN_PROD_ENV,i(this,Qe,"f")[0].elementType),be.WARN,i(this,lt,"f").logLevel)}clearValue(){i(this,lt,"f").env!==Pe.PROD?i(this,Ze,"f")&&i(this,st,"f").emit(y,{name:i(this,ot,"f").name,options:Object.assign(Object.assign({},i(this,Qe,"f")[0]),{value:""}),isSingleElementAPI:!0}):Ye(Ue(l.UNABLE_TO_CLEAR_VALUE_IN_PROD_ENV,i(this,Qe,"f")[0].elementType),be.WARN,i(this,lt,"f").logLevel)}setAttribute(e,t){i(this,st,"f").emit(I,{name:i(this,ot,"f").name,attribute:e,value:t})}focus(){var e;if(!(null===(e=i(this,Qe,"f"))||void 0===e?void 0:e.length))return;const t=this.getState();i(this,st,"f").emit(m,{name:i(this,Qe,"f")[0].elementName,event:p.FOCUS,value:{isEmpty:t.isEmpty,isValid:t.isValid,isComplete:t.isComplete,isFocused:!0,isRequired:t.required,value:t.value}})}}function It(e,t,i={}){if("group"!==e&&!Object.prototype.hasOwnProperty.call(S,e))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_TYPE);if(Object.prototype.hasOwnProperty.call(t,"validations")){if(!Array.isArray(t.validations))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATIONS_TYPE);t.validations.forEach((e,t)=>{if(!Object.prototype.hasOwnProperty.call(e,"type"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_TYPE);if(!Object.values(De).includes(e.type))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_TYPE);if(!Object.prototype.hasOwnProperty.call(e,"params"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_PARAMS);if("object"!=typeof e.params||Array.isArray(e.params)||null===e.params)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_PARAMS);if(e.type===De.REGEX_MATCH_RULE){if(!Object.prototype.hasOwnProperty.call(e.params,"regex"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_REGEX_IN_REGEX_MATCH_RULE)}else if(e.type===De.LENGTH_MATCH_RULE&&!Object.prototype.hasOwnProperty.call(e.params,"min")&&!Object.prototype.hasOwnProperty.call(e.params,"max"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_MIN_AND_MAX_IN_LENGTH_MATCH_RULE)})}if(Object.prototype.hasOwnProperty.call(i,"name")&&i.name!==t.name)throw new Error("Name attribute can't be updated");if((i=Object.assign(Object.assign({},t),i)).mask||i.replacePattern){const{type:t}=S[e].attributes;"text"===t&&"textarea"===t&&"email"===t||(delete i.mask,delete i.replacePattern)}if(void 0===!i.mask&&!Array.isArray(i.mask))throw new Error("mask option has to be array or undefined");if(Array.isArray(i.mask)){const e=i.mask;if("string"!=typeof e[0]||e[1]&&"object"!=typeof e[1])throw new Error("mask array values has to be string")}if(Array.isArray(i.replacePattern)){const e=i.replacePattern;if("string"!=typeof e[0]||e[1]&&"string"!=typeof e[1])throw new Error("replacePatterns array values has to be string")}if((e===S.radio.name||e===S.checkbox.name)&&!i.value)throw new Error("Elements radio and checkbox requires value attribute");if(!(e!==S.dropdown.name||i.options&&Array.isArray(i.options)&&0!==i.options.length))throw new Error("Element dropdown requires options attribute with an array of objects containing value and text attributes")}function ft(e,t={},i=!0){return(t=Object.assign(Object.assign({},e),t)).rows.forEach((n,s)=>{const o=n,r=e.rows[s];t.rows[s]=Object.assign(Object.assign({},r),o),o.elements.forEach((e,t)=>{var n,s;const l=r.elements[t],d=e;if(d.elementType&&l.elementType!==d.elementType&&l.elementName&&l.elementName!==d.elementName)throw new Error(a.CANNOT_CHANGE_ELEMENT);It(l.elementType,l,d),o.elements[t]=Object.assign(Object.assign(Object.assign({},l),d),{elementName:l.elementName});const c=d.classes||{},u=d.styles||{};u.base=Object.assign(Object.assign({},M),u.base),d.classes=c,d.styles=u;const p=(null===(n=null==d?void 0:d.labelStyles)||void 0===n?void 0:n.classes)||{},h=(null===(s=null==d?void 0:d.labelStyles)||void 0===s?void 0:s.styles)||{};i&&function(e,t){Object.values(w).forEach(i=>{if(e[i]||t[i])switch(i){case w.BASE:t[i]=Object.assign({},t[i]);break;case w.FOCUS:t[w.BASE]=Object.assign(Object.assign({},t[w.BASE]),{":focus":Object.assign({},t[w.BASE]&&t[w.BASE][":focus"])});break;case w.WEBPACKAUTOFILL:t[w.BASE]=Object.assign(Object.assign({},t[w.BASE]),{":-webkit-autofill":Object.assign({},t[w.BASE]&&t[w.BASE][":-webkit-autofill"])});break;default:t[i]=Object.assign(Object.assign({},t[w.BASE]),t[i])}}),Object.keys(t).forEach(e=>{const i=t[e][":-webkit-autofill"];"object"==typeof i&&Object.keys(i).forEach(e=>{i[e]&&!i[e].includes("!important")&&(i[e]=`${i[e]} !important`)})})}(p,h),d.labelStyles={labelClasses:p},d.labelStyles.styles=h})}),t}$e=new WeakMap,Ze=new WeakMap,Je=new WeakMap,Qe=new WeakMap,et=new WeakMap,tt=new WeakMap,it=new WeakMap,nt=new WeakMap,st=new WeakMap,ot=new WeakMap,rt=new WeakMap,at=new WeakMap,lt=new WeakMap,dt=new WeakMap,ct=new WeakMap,ut=new WeakMap,pt=new WeakMap,ht=new WeakMap,_t=new WeakMap,Et=new WeakMap,mt=new WeakMap;const At=e=>{const{rows:t}=e,i=[];return t.forEach(e=>{e.elements.forEach(e=>{i.push(e)})}),i},Lt=e=>{const t=e.validations;return t&&Array.isArray(t)&&t.length>0&&t.forEach((e,t)=>{if(e&&e.type===De.ELEMENT_VALUE_MATCH_RULE){if(e.params&&!Object.prototype.hasOwnProperty.call(e.params,"element"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_IN_ELEMENT_MATCH_RULE);if(e.params&&(null==e.params.element||!(e.params.element instanceof yt)))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_IN_ELEMENT_MATCH_RULE);e.params&&e.params.element&&e.params.element instanceof yt&&(e.params.element=e.params.element.iframeName())}else if(e&&e.type===De.REGEX_MATCH_RULE){if(e.params&&e.params.regex&&!je(e.params.regex))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_REGEX_IN_REGEX_MATCH_RULE);e.params&&e.params.regex&&je(e.params.regex)&&(e.params.regex=e.params.regex.toString())}}),t},gt=(e,t,i)=>{let n=Object.assign({required:!1},t);if((Object.prototype.hasOwnProperty.call(n,"format")||Object.prototype.hasOwnProperty.call(n,"translation"))&&(j.includes(e)?(Ye(Ue(l.INPUT_FORMATTING_NOT_SUPPROTED,e),be.WARN,i),null==n||delete n.format,null==n||delete n.translation):e===S.INPUT_FIELD.name&&((e=>{if(e){if(Object.prototype.hasOwnProperty.call(e,"format")&&"string"!=typeof e.format)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_FORMAT);if(Object.prototype.hasOwnProperty.call(e,"translation")&&("object"!=typeof e.translation||"[object Object]"!==Object.prototype.toString.call(e.translation)))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_TRANSLATION)}})(t),n=Object.assign(Object.assign({},n),{mask:[n.format,n.translation?n.translation:B]}),null==n||delete n.format,null==n||delete n.translation)),e===S.CARD_NUMBER.name){Object.prototype.hasOwnProperty.call(n,"enableCardIcon")||(n=Object.assign(Object.assign({},n),{enableCardIcon:!0}));let e=" ";(null==n?void 0:n.format)===P&&(e="-"),n=Object.assign(Object.assign({},n),{cardSeperator:e}),null==n||delete n.format,null==n||delete n.translation}else if(e===S.EXPIRATION_DATE.name){let e=!1;n.format&&(e=!!(o=n.format.toUpperCase())&&U.includes(o),e||Ye(Ue(l.INVALID_EXPIRATION_DATE_FORMAT,U.toString()),be.WARN,i)),n=Object.assign(Object.assign({},n),{format:e?n.format.toUpperCase():Y}),null==n||delete n.translation}else if(e===S.EXPIRATION_YEAR.name){let e=!1;n.format&&(e=(e=>!!e&&x.includes(e))(n.format.toUpperCase()),e||Ye(Ue(l.INVALID_EXPIRATION_YEAR_FORMAT,x.toString()),be.WARN,i)),n=Object.assign(Object.assign({},n),{format:e?n.format.toUpperCase():"YY"}),null==n||delete n.translation}var o;if(Object.prototype.hasOwnProperty.call(n,"enableCardIcon")&&!Xe(n.enableCardIcon))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_BOOLEAN_OPTIONS,{description:"Interface: container create - Invaild enableCardIcon in options, enableCardIcon of type boolean is required."});if(Object.prototype.hasOwnProperty.call(n,"required")&&!Xe(n.required))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_BOOLEAN_OPTIONS,{description:"Interface: container create - Invaild required in options, required of type boolean is required."});return n};function Ot(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=crypto.getRandomValues(new Uint32Array(1))[0]/Math.pow(2,32)*16|0;return("x"===e?t:3&t|8).toString(16)})}class Tt{}var Ct,Rt,Nt,St,Pt,bt,Dt,Mt,wt,kt,Yt,Ut;const xt="CollectContainer";class Ft extends Tt{constructor(e,t,o,a){super(),Ct.set(this,void 0),Rt.set(this,{}),Nt.set(this,void 0),St.set(this,void 0),Pt.set(this,void 0),this.type=Pi.COLLECT,bt.set(this,void 0),Dt.set(this,!1),this.create=(e,t={required:!1})=>{Ve(e,i(this,St,"f").logLevel);const n=Lt(e),s=gt(e.type,t,i(this,St,"f").logLevel),o={rows:[{elements:[Object.assign(Object.assign(Object.assign({elementType:e.type,name:e.column,accept:t.allowedFileType},e),s),{validations:n})]}]};return i(this,Mt,"f").call(this,o,!0)},Mt.set(this,(e,t=!1)=>{const n=[],o=Te(e);if(o.rows.forEach(e=>{e.elements.forEach(e=>{const t=e,{elementType:i}=t;It(i,t),t.sensitive=t.sensitive||S[i].sensitive,t.replacePattern=t.replacePattern||S[i].replacePattern,t.mask=t.mask||S[i].mask,t.isMounted=!1,t.elementType!==S.radio.name&&t.elementType!==S.checkbox.name||(t.elementName=`${t.elementName}:${btoa(t.value)}`),t.elementName=`${c}:${t.elementType}:${btoa(Ot())}`,t.label=e.label,t.skyflowID=e.skyflowID,n.push(t)})}),o.elementName=t?n[0].elementName:`${c}:group:${btoa(o.name)}`,t&&!i(this,Rt,"f")[n[0].elementName]&&i(this,Ut,"f").call(this,n[0].name))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_UNIQUE_ELEMENT_NAME);let r=i(this,Rt,"f")[o.elementName];if(r)t?r.update(n[0]):r.update(o);else{const e=Ot();r=new yt(e,o,i(this,Nt,"f"),{containerId:i(this,Ct,"f"),isMounted:i(this,Dt,"f"),type:this.type},t,i(this,kt,"f"),i(this,Yt,"f"),i(this,St,"f"),i(this,bt,"f")),i(this,Rt,"f")[o.elementName]=r,i(this,Pt,"f")[e]=r}return t||n.forEach(e=>{const t=e.elementName;i(this,Rt,"f")[t]?i(this,Rt,"f")[t].update(e):i(this,Rt,"f")[t]=this.create(e.elementType,r)}),r}),wt.set(this,e=>{Object.keys(i(this,Rt,"f")).forEach(t=>{t===e&&delete i(this,Rt,"f")[t]})}),kt.set(this,e=>{e.forEach(e=>{i(this,wt,"f").call(this,e)})}),Yt.set(this,e=>{e.forEach(e=>{i(this,Rt,"f")[e.elementName]&&i(this,Rt,"f")[e.elementName].update(e)})}),Ut.set(this,e=>{const t=Object.keys(i(this,Rt,"f"));for(let i=0;i<t.length;i+=1)if(atob(t[i].split(":")[2])===e)return!0;return!1}),this.validate=()=>new Promise((e,t)=>{Object.values(i(this,Rt,"f")).forEach(e=>{if(!e.isMounted())throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED);e.isValidElement()}),this.bus.emit(g+i(this,Ct,"f"),{},t=>{e(t)})}),this.collect=(e={tokens:!0})=>new Promise((t,n)=>{try{Be(i(this,Nt,"f").clientJSON.config);const o=Object.values(i(this,Rt,"f"));let a=Y;if(o.forEach(e=>{if(!e.isMounted())throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED);e.isValidElement();const t=e.getOptions();t.elementType===C.EXPIRATION_DATE&&(a=t.format||"MM/YY")}),Object.prototype.hasOwnProperty.call(e,"tokens")&&!Xe(e.tokens))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TOKENS);(null==e?void 0:e.additionalFields)&&Fe(e.additionalFields),(null==e?void 0:e.upsert)&&Ge(null==e?void 0:e.upsert),this.bus.target(ve.IFRAME_SECURE_ORGIN).emit(_+i(this,Ct,"f"),Object.assign(Object.assign({},Object.assign(Object.assign({},e),{expiryDateFormat:a})),{tokens:void 0===(null==e?void 0:e.tokens)||e.tokens}),e=>{!e||(null==e?void 0:e.error)?(Ye(`${JSON.stringify(null==e?void 0:e.error)}`,be.ERROR,i(this,St,"f").logLevel),n(null==e?void 0:e.error)):(Ye(Ue(r.COLLECT_SUBMIT_SUCCESS,xt),be.LOG,i(this,St,"f").logLevel),t(e))}),Ye(Ue(r.EMIT_EVENT,xt,_),be.LOG,i(this,St,"f").logLevel)}catch(e){Ye(`${e.message}`,be.ERROR,i(this,St,"f").logLevel),n(e)}}),this.unmount=()=>{this.iframe.remove()},this.bus=Ee.getEventBus(),n(this,Ct,Ot(),"f"),n(this,Nt,Object.assign(Object.assign({},t),(null==e?void 0:e.fonts)?{fonts:e.fonts}:{}),"f"),n(this,Pt,o,"f"),n(this,St,a,"f"),n(this,bt,new me,"f"),this.iframe=Le({name:`${d}:${i(this,Ct,"f")}:${i(this,St,"f").logLevel}`}),Ae(this.iframe,{src:ge()}),Oe(this.iframe,Object.assign({},D)),Ye(Ue(r.CREATE_COLLECT_CONTAINER,xt),be.LOG,i(this,St,"f").logLevel);const l=(e,t)=>{e.name===d+i(this,Ct,"f")&&(t(Object.assign(Object.assign({},i(this,Nt,"f")),{clientJSON:Object.assign(Object.assign({},i(this,Nt,"f").clientJSON),{config:Object.assign({},i(this,Nt,"f").clientJSON.config)}),context:i(this,St,"f")})),n(this,Dt,!0,"f"),i(this,bt,"f")._emit(T,{containerId:i(this,Ct,"f")}),this.bus.target({origin:ve.IFRAME_SECURE_ORGIN}).off(h+i(this,Ct,"f"),l))};this.bus.target({origin:ve.IFRAME_SECURE_ORGIN}).on(h+i(this,Ct,"f"),l),document.body.append(this.iframe)}reset(){this.bus.emit(E+i(this,Ct,"f"))}}Ct=new WeakMap,Rt=new WeakMap,Nt=new WeakMap,St=new WeakMap,Pt=new WeakMap,bt=new WeakMap,Dt=new WeakMap,Mt=new WeakMap,wt=new WeakMap,kt=new WeakMap,Yt=new WeakMap,Ut=new WeakMap;const jt=(e,t,i)=>{const n=t.split(/[\.\[\]]/g);let s=e;for(const e of n){if(null===s)return i;if(void 0===s)return i;const t=e.replace(/['"]/g,"");""!==t.trim()&&(s=s[t])}return void 0===s?i:s},Bt=(e,t,i)=>{if(!e)return{};if(!t||void 0===i)return e;const n=t.split(/[\.\[\]]/g).filter(e=>!!e.trim()),s=e=>{if(n.length>1){const t=n.shift(),i=null!==((e,t)=>{const i=t;if(null==e)return i;const n=parseInt(e);return isNaN(n)?i:n})(n[0],null);e[t]=void 0===e[t]?i?[]:{}:e[t],s(e[t])}else e[n[0]]=i},o=(e=>{if(null==(t=e)||"object"!=typeof t&&"function"!=typeof t)return e;var t;if("function"==typeof e)return e.bind({});const i=new e.constructor;return Object.getOwnPropertyNames(e).forEach(t=>{i[t]=e[t]}),i})(e);return s(o),o};var Vt,Gt,Xt,zt,Ht,qt,Wt,Kt,$t,Zt,Jt,Qt,ei,ti,ii,ni,si,oi,ri,ai,li,di,ci,ui,pi;class hi{constructor(e,t){Vt.set(this,void 0),Gt.set(this,void 0),Xt.set(this,Ee.getEventBus()),zt.set(this,null),this.type=Pi.COMPOSABLE,Ht.set(this,!1),qt.set(this,!1),this.update=e=>{n(this,qt,!0,"f"),i(this,Ht,"f")?(i(this,Gt,"f")._emit(L,{elementName:i(this,Vt,"f"),elementOptions:e}),n(this,qt,!1,"f")):i(this,qt,"f")&&i(this,Gt,"f").on(`${Ne.READY}:${i(this,Vt,"f")}`,()=>{i(this,Gt,"f")._emit(L,{elementName:i(this,Vt,"f"),elementOptions:e}),n(this,Ht,!0,"f"),n(this,qt,!1,"f")})},n(this,Vt,e,"f"),n(this,Gt,t,"f"),i(this,Gt,"f").on(`${Ne.READY}:${i(this,Vt,"f")}`,()=>{n(this,Ht,!0,"f")})}on(e,t){if(!Object.values(p).includes(e))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER);if(!t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER);if("function"!=typeof t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER);i(this,Gt,"f").on(`${e}:${i(this,Vt,"f")}`,e=>{if(void 0===e.value&&(e.value=""),"CARD_NUMBER"===e.elementType&&e.value){const{value:t}=e;e.value=t.slice(0,8)}n(this,zt,{isEmpty:e.isEmpty,isValid:e.isValid,isComplete:e.isComplete,isFocused:e.isFocused,isRequired:e.isRequired,value:e.value},"f"),delete e.isComplete,delete e.name,t(e)})}focus(){const e=i(this,zt,"f")||{isEmpty:!0,isValid:!1,isComplete:!1,isFocused:!0,isRequired:!1};i(this,Xt,"f").emit(m,{name:i(this,Vt,"f"),event:p.FOCUS,value:Object.assign(Object.assign({},e),{isFocused:!0})})}setAttribute(e,t){i(this,Gt,"f")._emit(I,{elementName:i(this,Vt,"f"),attribute:e,value:t})}}Vt=new WeakMap,Gt=new WeakMap,Xt=new WeakMap,zt=new WeakMap,Ht=new WeakMap,qt=new WeakMap;const _i="CollectContainer";class Ei extends Tt{constructor(e,t,a,l){super(),Wt.set(this,void 0),Kt.set(this,{}),$t.set(this,void 0),Zt.set(this,{rows:[]}),Jt.set(this,[]),Qt.set(this,void 0),ei.set(this,void 0),ti.set(this,void 0),ii.set(this,!1),ni.set(this,void 0),si.set(this,void 0),this.type=Pi.COMPOSABLE,oi.set(this,!1),ri.set(this,{}),this.create=(e,t={required:!1})=>{Ve(e,i(this,Qt,"f").logLevel);const n=Lt(e),s=gt(e.type,t,i(this,Qt,"f").logLevel),o=`${c}:${e.type}:${btoa(Ot())}`;return i(this,Jt,"f").push(Object.assign(Object.assign(Object.assign({elementType:e.type,name:e.column},e),s),{validations:n,elementName:o})),new hi(o,i(this,ti,"f"))},ai.set(this,(e,t=!1)=>{const o=[];if(n(this,Kt,{},"f"),n(this,ri,Te(e),"f"),i(this,ri,"f").rows.forEach(e=>{e.elements.forEach(e=>{const t=e,{elementType:i}=t;It(i,t),t.sensitive=t.sensitive||S[i].sensitive,t.replacePattern=t.replacePattern||S[i].replacePattern,t.mask=t.mask||S[i].mask,t.isMounted=!1,t.label=e.label,t.skyflowID=e.skyflowID,o.push(t)})}),i(this,ri,"f").elementName=t?o[0].elementName:`${c}:group:${btoa(i(this,ri,"f").name)}`,t&&!i(this,Kt,"f")[o[0].elementName]&&i(this,ui,"f").call(this,o[0].name))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_UNIQUE_ELEMENT_NAME);let r=i(this,Kt,"f")[i(this,ri,"f").elementName];if(r)t?r.update(o[0]):r.update(i(this,ri,"f"));else{const e=Ot();r=new yt(e,i(this,ri,"f"),i(this,$t,"f"),{containerId:i(this,Wt,"f"),isMounted:i(this,oi,"f"),type:this.type},!0,i(this,di,"f"),i(this,ci,"f"),i(this,Qt,"f"),i(this,ti,"f")),i(this,Kt,"f")[i(this,ri,"f").elementName]=r,i(this,ei,"f")[e]=r}return r}),li.set(this,e=>{Object.keys(i(this,Kt,"f")).forEach(t=>{t===e&&delete i(this,Kt,"f")[t]})}),di.set(this,e=>{e.forEach(e=>{i(this,li,"f").call(this,e)})}),ci.set(this,e=>{e.forEach(e=>{i(this,Kt,"f")[e.elementName]&&i(this,Kt,"f")[e.elementName].update(e)})}),ui.set(this,e=>{const t=Object.keys(i(this,Kt,"f"));for(let i=0;i<t.length;i+=1)if(atob(t[i].split(":")[2])===e)return!0;return!1}),this.on=(e,t)=>{if(!Object.values(p).includes(e))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER);if(!t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER);if("function"!=typeof t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER);i(this,ti,"f").on(p.SUBMIT,()=>{t()})},this.mount=e=>{if(!e)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_IN_MOUNT);n(this,Zt,{rows:[]},"f");const{layout:t}=i(this,ni,"f");if((t||[]).reduce((e,t)=>e+t,0)!==i(this,Jt,"f").length)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISMATCH_ELEMENT_COUNT_LAYOUT_SUM);let o=0;if(t.forEach((e,t)=>{i(this,Zt,"f").rows=[...i(this,Zt,"f").rows,{elements:[]}];for(let n=0;n<e;n++)i(this,Zt,"f").rows[t].elements.push(i(this,Jt,"f")[o]),o++}),i(this,ni,"f").styles&&(i(this,Zt,"f").styles=Object.assign({},i(this,ni,"f").styles)),i(this,ni,"f").errorTextStyles&&(i(this,Zt,"f").errorTextStyles=Object.assign({},i(this,ni,"f").errorTextStyles)),i(this,oi,"f"))return i(this,si,"f")&&(i(this,si,"f").unmount(),n(this,si,null,"f")),n(this,Kt,{},"f"),n(this,si,i(this,ai,"f").call(this,i(this,Zt,"f"),!1),"f"),this.mountContainerElement(e),void n(this,ii,!0,"f");i(this,ti,"f").on(O+i(this,Wt,"f"),()=>{n(this,Kt,{},"f"),n(this,si,i(this,ai,"f").call(this,i(this,Zt,"f"),!1),"f"),this.mountContainerElement(e),n(this,ii,!0,"f")})},this.mountContainerElement=e=>{i(this,si,"f").mount(e)},this.unmount=()=>{var e;[...i(this,Jt,"f").map(e=>e.elementName)].forEach(e=>{i(this,li,"f").call(this,e)}),n(this,Jt,[],"f"),n(this,Zt,{rows:[]},"f"),n(this,Kt,{},"f"),null===(e=i(this,si,"f"))||void 0===e||e.unmount(),this.iframe.remove(),n(this,ii,!1,"f"),n(this,oi,!1,"f")},this.validate=()=>new Promise((e,t)=>{Object.values(i(this,Kt,"f")).forEach(e=>{if(!e.isMounted())throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED);e.isValidElement()}),this.bus.emit(g+i(this,Wt,"f"),{},t=>{e(t)})}),this.collect=(e={tokens:!0})=>new Promise((t,n)=>{try{if(Be(i(this,$t,"f").clientJSON.config),!i(this,ii,"f")){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED);throw o.PayrailsLogger.error(e.message,{error:e}),e}At(i(this,ri,"f")).forEach(e=>{if(!(null==e?void 0:e.isMounted))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING)});if(Object.values(i(this,Kt,"f")).forEach(e=>{e.isValidElement()}),e&&e.tokens&&"boolean"!=typeof e.tokens)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TOKENS);(null==e?void 0:e.additionalFields)&&Fe(e.additionalFields),(null==e?void 0:e.upsert)&&Ge(null==e?void 0:e.upsert),this.bus.emit(_+i(this,Wt,"f"),Object.assign(Object.assign({},e),{tokens:void 0===(null==e?void 0:e.tokens)||e.tokens}),e=>{!e||(null==e?void 0:e.error)?(Ye(`${JSON.stringify(null==e?void 0:e.error)}`,be.ERROR,i(this,Qt,"f").logLevel),n(null==e?void 0:e.error)):(Ye(Ue(r.COLLECT_SUBMIT_SUCCESS,_i),be.LOG,i(this,Qt,"f").logLevel),t(e))}),Ye(Ue(r.EMIT_EVENT,_i,_),be.LOG,i(this,Qt,"f").logLevel)}catch(e){Ye(`${e.message}`,be.ERROR,i(this,Qt,"f").logLevel),n(e)}}),pi.set(this,()=>{i(this,ti,"f").on(L,e=>{let t;const n=i(this,Jt,"f").map((i,n)=>i.elementName===e.elementName?(t=n,Object.assign({elementName:i.elementName},e.elementOptions)):i);i(this,si,"f")&&i(this,si,"f").updateElement(Object.assign({},n[t]))})}),this.bus=Ee.getEventBus(),n(this,Wt,Ot(),"f"),n(this,$t,Object.assign(Object.assign({},t),(null==e?void 0:e.fonts)?{fonts:e.fonts}:{}),"f"),n(this,ei,a,"f"),n(this,Qt,l,"f"),n(this,ni,e,"f"),n(this,ti,new me,"f"),this.iframe=Le({name:`${d}:${i(this,Wt,"f")}:${i(this,Qt,"f").logLevel}`}),Ae(this.iframe,{src:ge()}),Oe(this.iframe,Object.assign({},D)),Ye(Ue(r.CREATE_COLLECT_CONTAINER,_i),be.LOG,i(this,Qt,"f").logLevel);const u=(e,t)=>{e.name===d+i(this,Wt,"f")&&(t(Object.assign(Object.assign({},i(this,$t,"f")),{clientJSON:Object.assign(Object.assign({},i(this,$t,"f").clientJSON),{config:Object.assign({},i(this,$t,"f").clientJSON.config)}),context:i(this,Qt,"f")})),n(this,oi,!0,"f"),i(this,ti,"f")._emit(O+i(this,Wt,"f"),{containerId:i(this,Wt,"f")}),this.bus.target({origin:ve.IFRAME_SECURE_ORGIN}).off(h+i(this,Wt,"f"),u))};this.bus.target({origin:ve.IFRAME_SECURE_ORGIN}).on(h+i(this,Wt,"f"),u),document.body.append(this.iframe),i(this,pi,"f").call(this)}reset(){this.bus.emit(E+i(this,Wt,"f"),{})}}function mi(e){this.message=e}Wt=new WeakMap,Kt=new WeakMap,$t=new WeakMap,Zt=new WeakMap,Jt=new WeakMap,Qt=new WeakMap,ei=new WeakMap,ti=new WeakMap,ii=new WeakMap,ni=new WeakMap,si=new WeakMap,oi=new WeakMap,ri=new WeakMap,ai=new WeakMap,li=new WeakMap,di=new WeakMap,ci=new WeakMap,ui=new WeakMap,pi=new WeakMap,mi.prototype=new Error,mi.prototype.name="InvalidCharacterError";var vi="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new mi("'atob' failed: The string to be decoded is not correctly encoded.");for(var i,n,s=0,o=0,r="";n=t.charAt(o++);~n&&(i=s%4?64*i+n:n,s++%4)?r+=String.fromCharCode(255&i>>(-2*s&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return r};function yi(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(vi(e).replace(/(.)/g,function(e,t){var i=t.charCodeAt(0).toString(16).toUpperCase();return i.length<2&&(i="0"+i),"%"+i}))}(t)}catch(e){return vi(t)}}function Ii(e){this.message=e}Ii.prototype=new Error,Ii.prototype.name="InvalidTokenError";const fi=e=>{try{if(!e)return!1;if(t=e,"[object String]"!==Object.prototype.toString.call(t))return!1;let i=!1;const n=function(e,t){if("string"!=typeof e)throw new Ii("Invalid token specified");var i=!0===(t=t||{}).header?0:1;try{return JSON.parse(yi(e.split(".")[i]))}catch(e){throw new Ii("Invalid token specified: "+e.message)}}(e),s=(new Date).getTime()/1e3,o=n.exp;return o&&s>o&&(i=!0),!i}catch(e){return!1}var t};var Ai,Li,gi,Oi,Ti,Ci,Ri,Ni,Si,Pi;class bi{constructor(e,t){Ai.set(this,void 0),this.config=e,n(this,Ai,t,"f")}toJSON(){return{config:this.config,metaData:i(this,Ai,"f")}}static fromJSON(e){return new bi(e.config,e.metaData)}}Ai=new WeakMap,function(e){e.COLLECT="COLLECT",e.COMPOSABLE="COMPOSABLE"}(Pi||(Pi={}));const Di="Skyflow";class Mi{constructor(e){var t,l;Li.set(this,void 0),gi.set(this,Ot()),Oi.set(this,{uuid:i(this,gi,"f"),clientDomain:window.location.origin}),Ti.set(this,""),Ci.set(this,void 0),Ri.set(this,void 0),Ni.set(this,void 0),Si.set(this,void 0),this.bus=Ee.getEventBus();const d=localStorage.getItem("sdk_version")||"";i(this,Oi,"f").sdkVersion=d,n(this,Li,new bi(Object.assign({},e),i(this,Oi,"f")),"f"),n(this,Ri,(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.logLevel)||Se.ERROR,"f"),n(this,Ni,(null===(l=null==e?void 0:e.options)||void 0===l?void 0:l.env)||Pe.PROD,"f"),n(this,Si,{},"f");this.bus.on(u,e=>{if(e&&e.errorCode){const t=new s.PayrailsError(e.errorCode,{cause:null==e?void 0:e.originalError});o.PayrailsLogger.error(t.message,{error:t})}}),this.bus.target({origin:ve.IFRAME_SECURE_ORGIN}).on(f+i(this,gi,"f"),(e,t)=>{Ye(Ue(r.CAPTURED_BEARER_TOKEN_EVENT,Di),be.LOG,i(this,Ri,"f")),!i(this,Li,"f").config.getBearerToken||i(this,Ti,"f")&&fi(i(this,Ti,"f"))?(Ye(Ue(r.REUSE_BEARER_TOKEN,Di),be.LOG,i(this,Ri,"f")),t({authToken:i(this,Ti,"f")})):i(this,Li,"f").config.getBearerToken().then(e=>{fi(e)?(Ye(Ue(r.BEARER_TOKEN_RESOLVED,Di),be.LOG,i(this,Ri,"f")),n(this,Ti,e,"f"),t({authToken:i(this,Ti,"f")})):(Ye(a.INVALID_BEARER_TOKEN,be.ERROR,i(this,Ri,"f")),t({error:a.INVALID_BEARER_TOKEN}))}).catch(e=>{Ye(a.BEARER_TOKEN_REJECTED,be.ERROR,i(this,Ri,"f")),t({error:e})})}),Ye(Ue(r.BEARER_TOKEN_LISTENER,Di),be.LOG,i(this,Ri,"f")),Ye(Ue(r.CURRENT_ENV,Di,i(this,Ni,"f")),be.LOG,i(this,Ri,"f")),Ye(Ue(r.CURRENT_LOG_LEVEL,Di,i(this,Ri,"f")),be.LOG,i(this,Ri,"f"))}static init(e){var t;const i=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.logLevel)||Se.ERROR;qe(e),Ye(Ue(r.INITIALIZE_CLIENT,Di),be.LOG,i);const n=e;var s;n.vaultURL="string"!=typeof(s=e.vaultURL)?s:"/"===(null==s?void 0:s.trim().slice(-1))?s.slice(0,-1):s.trim();const o=new Mi(n);return Ye(Ue(r.CLIENT_INITIALIZED,Di),be.LOG,i),o}container(e,t){switch(e){case Pi.COLLECT:{const n=new Ft(t,Object.assign(Object.assign({},i(this,Oi,"f")),{clientJSON:i(this,Li,"f").toJSON(),containerType:e}),i(this,Si,"f"),{logLevel:i(this,Ri,"f"),env:i(this,Ni,"f")});return Ye(Ue(r.COLLECT_CONTAINER_CREATED,Di),be.LOG,i(this,Ri,"f")),n}case Pi.COMPOSABLE:{(e=>{if(!e)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_CONTAINER_OPTIONS);if("object"!=typeof e)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_INVALID);if(!Object.prototype.hasOwnProperty.call(e,"layout"))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_LAYOUT_KEY);if(!e.layout)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE);if(!Array.isArray(e.layout))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE);if(0===e.layout.length)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_COMPOSABLE_LAYOUT_ARRAY);e.layout.forEach(e=>{if("number"!=typeof e)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE);if(e<0)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_NEGATIVE_VALUES_COMPOSABLE_LAYOUT)})})(t);const n=new Ei(t,Object.assign(Object.assign({},i(this,Oi,"f")),{clientJSON:i(this,Li,"f").toJSON(),containerType:e}),i(this,Si,"f"),{logLevel:i(this,Ri,"f"),env:i(this,Ni,"f")});return Ye(Ue(r.COLLECT_CONTAINER_CREATED,Di),be.LOG,i(this,Ri,"f")),n}default:if(!e)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_CONTAINER_TYPE);throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_CONTAINER_TYPE)}}static get ContainerType(){return Pi}static get ElementType(){return C}static get RedactionType(){return Ce}static get RequestMethod(){return Re}static get LogLevel(){return Se}static get EventName(){return Ne}static get Env(){return Pe}static get ValidationRuleType(){return De}}Li=new WeakMap,gi=new WeakMap,Oi=new WeakMap,Ti=new WeakMap,Ci=new WeakMap,Ri=new WeakMap,Ni=new WeakMap,Si=new WeakMap;const wi=(e,i)=>t(void 0,void 0,void 0,function*(){if(null==e?void 0:e.onDeliveryAddressChanged)try{const t=yield e.onDeliveryAddressChanged(i);if(!t){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onDeliveryAddressChanged resolved to false"});return o.PayrailsLogger.error(e.message,{error:e}),!1}return t}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onDeliveryAddressChanged threw an error",cause:e});return o.PayrailsLogger.error(t.message,{error:t}),!1}return!0}),ki=(e,i)=>t(void 0,void 0,void 0,function*(){try{const t=yield lo(e,i);if(!t){const n=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onRequestStart resolved to false"});return ao(e,i,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:n.message}),t}}catch(t){const n=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onRequestStart threw an error",cause:t});return o.PayrailsLogger.error(n.message,{error:n}),ao(e,i,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:n.message}),!1}return!0});let Yi={};class Ui{constructor(e,{id:t="",className:i="",dataTestId:n=""}={}){this.subElements=[],this.eventBus=Ee.getEventBus();const s=document.createElement(e);t&&(this.id=t,s.setAttribute("id",t)),n&&(this.dataTestId=n,s.setAttribute("data-testid",n)),i&&(Array.isArray(i)?s.setAttribute("class",function(...e){return e.filter(Boolean).join(" ")}(...i)):s.setAttribute("class",i)),this.element=s}get parentElement(){return this.element.parentElement}get selector(){if(!this.id)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING);return`#${this.id}`}mount(e){const t=document.querySelector(e);if(!t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_PARENT_ELEMENT_MISSING,{description:`Element with selector "${e}" not found in in the DOM`});this.clean(),t.appendChild(this.element),this.subElements.forEach(e=>{if(!this.id)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_SUBELEMENTS_RENDER_ERROR);e.mount(this.selector)})}clean(){var e;null===(e=document.getElementById(this.element.id))||void 0===e||e.remove()}unmount(){var e;this.subElements.forEach(e=>e.unmount()),null===(e=this.parentElement)||void 0===e||e.removeChild(this.element)}}class xi extends Ui{tokenize(e){return t(this,void 0,void 0,function*(){const t=yield this.collect(),i=pe(),n=i.vaultConfiguration.links.saveInstrument,r=i.token;if(!n.href){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND,{description:"Save instrument URL not available!"});throw o.PayrailsLogger.error(e.message,{error:e}),e}const a=yield this.constructSaveInstrumentBody(t,e);return(yield ne({url:n.href,token:r,body:a})).res})}}class Fi{static minLength(e,t){return!!(t.minLength&&e.length<t.minLength)}static maxLength(e,t){return!!(t.maxLength&&e.length>t.maxLength)}static required(e,t,i){return!(!t||e)}static pattern(e,t){if(!t.pattern)return!1;return!new RegExp(t.pattern).test(e)}static oneOf(e,t){if(!t.oneOf||0===t.oneOf.length)return!1;return!t.oneOf.map(e=>e.const).includes(e)}}class ji extends Ui{get name(){return this.options.name}get isVisible(){return this._isVisible}get isRequired(){return this._isRequired}constructor(e){super("div",{id:e.id,className:"payrails-dynamic-element-form-field"}),this.options=e,this.errors=[],this._isVisible=!0,this._isRequired=!!this.options.required,this.makeField()}setVisible(e){this._isVisible=e,this.element.style.display=e?"block":"none"}setRequired(e){this._isRequired=e}validate(e=!1){e||this.clearError();const t=[];if(this._isVisible&&this._isRequired){Fi.required(this.value,!0,this.options.property)&&t.push(this.options.errors.required)}if(this.value){Fi.minLength(this.value,this.options.property)&&t.push(this.options.errors.minLength);Fi.maxLength(this.value,this.options.property)&&t.push(this.options.errors.maxLength);Fi.pattern(this.value,this.options.property)&&t.push(this.options.errors.pattern);Fi.oneOf(this.value,this.options.property)&&t.push(this.options.errors.oneOf)}if(e){return 0===t.length}return this.setErrors(t),this.isValid?this.updateStyles("base"):this.updateStyles("invalid"),this.isValid}makeField(){this.createLabel(),this.createComponentContainer(),this.createErrorMessageContainer()}createLabel(){this.label=document.createElement("label"),this.label.textContent=this.options.label,this.label.className="payrails-dynamic-element-form-field-label",this.label.htmlFor=this.options.name,this.element.appendChild(this.label)}createComponentContainer(){this.componentContainer=document.createElement("div"),this.componentContainer.className="payrails-dynamic-element-form-field-component",this.element.appendChild(this.componentContainer)}createErrorMessageContainer(){this.errorMessage=document.createElement("div"),this.errorMessage.className="payrails-dynamic-element-form-field-error",this.errorMessage.style.display="none",this.element.appendChild(this.errorMessage)}setErrors(e){var t;if(this.errors=e,this.errorMessage){for(;this.errorMessage.firstChild;)this.errorMessage.removeChild(this.errorMessage.firstChild);if(e.length>0){const t=document.createElement("ul");e.forEach(e=>{var i;const n=document.createElement("li");n.textContent=e,(null===(i=this.options.styles)||void 0===i?void 0:i.errors)&&Object.assign(n.style,this.options.styles.errors),t.appendChild(n)}),this.errorMessage.appendChild(t),this.errorMessage.style.display="block"}else this.errorMessage.style.display="none";(null===(t=this.options.styles)||void 0===t?void 0:t.errors)&&Object.assign(this.errorMessage.style,this.options.styles.errors),this.isValid?this.element.classList.remove("error"):this.element.classList.add("error")}}clearError(){this.errors=[],this.errorMessage&&(this.errorMessage.textContent="",this.errorMessage.style.display="none",this.element.classList.remove("error"))}injectElement(e){this.componentContainer&&(e.id=this.options.name,e.setAttribute("name",this.options.name),this.componentContainer.appendChild(e),this.options.events.onReady(this.value))}get isValid(){return 0===this.errors.length}}class Bi extends ji{constructor(e){super(e),this.makeComponent(),this.attachEvents()}makeComponent(){this.component=document.createElement("input"),this.component.type="text",this.component.className="payrails-dynamic-element-input",this.component.placeholder=this.options.placeholder,void 0!==this.options.value&&(this.component.value=this.options.value),this.options.readOnly&&(this.component.readOnly=!0,this.component.classList.add("payrails-dynamic-element-input--readonly")),this.updateStyles("base"),this.injectElement(this.component)}attachEvents(){this.component&&(this.component.addEventListener("change",e=>{var t,i;e.stopPropagation(),null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onChange)||void 0===i||i.call(t,this.value)}),this.component.addEventListener("input",()=>{var e,t;this.updateValidationState(),null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onChange)||void 0===t||t.call(e,this.value)}),this.component.addEventListener("blur",()=>{var e,t;this.updateStyles("base"),this.updateValidationState(),null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onBlur)||void 0===t||t.call(e)}),this.component.addEventListener("focus",()=>{this.updateStyles("focus")}))}updateValidationState(){this.validate(),this.isValid?(this.updateStyles("complete"),this.updateCustomValidity(!0)):(this.updateStyles("invalid"),this.updateCustomValidity(!1))}updateStyles(e){var t,i;(null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.input)||void 0===i?void 0:i[e])&&this.component&&Object.assign(this.component.style,this.options.styles.input[e])}updateCustomValidity(e){this.component&&this.component.setCustomValidity(e?"":this.errors.join(", "))}get value(){var e;return(null===(e=this.component)||void 0===e?void 0:e.value)||""}set value(e){this.component&&(this.component.value=e,this.updateValidationState())}}class Vi extends ji{get value(){var e;return(null===(e=this.component)||void 0===e?void 0:e.value)||""}set value(e){this.component&&(this.component.value=e)}constructor(e){super(e),this.selectOptions=e.options,this.makeComponent(),this.attachEvents()}attachEvents(){this.component&&(this.component.addEventListener("change",e=>{var t,i;e.stopPropagation(),this.validate(),null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onChange)||void 0===i||i.call(t,this.value)}),this.component.addEventListener("blur",()=>{var e,t;this.updateStyles("base"),this.validate(),null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onBlur)||void 0===t||t.call(e)}),this.component.addEventListener("focus",()=>{this.updateStyles("focus")}))}makeComponent(){this.component=document.createElement("select"),this.component.className="payrails-dynamic-element-select",this.selectOptions.forEach(e=>{const t=document.createElement("option");t.value=e.value,t.textContent=e.label,this.component&&this.component.appendChild(t)}),void 0!==this.options.value&&(this.component.value=this.options.value),this.options.readOnly&&(this.component.disabled=!0,this.component.classList.add("payrails-dynamic-element-select--readonly")),this.updateStyles("base"),this.injectElement(this.component)}updateStyles(e){var t,i;(null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.select)||void 0===i?void 0:i[e])&&this.component&&Object.assign(this.component.style,this.options.styles.select[e])}}class Gi extends ji{get value(){return this.currentValue}set value(e){this.currentValue!==e&&(this.currentValue=e,this.updateTabStates())}constructor(e){var t,i,n,s;super(e),this.tabs=new Map,this.options=e,this.tabOptions=e.options,this.currentValue=(null===(t=this.tabOptions[0])||void 0===t?void 0:t.value)||"",this.component=document.createElement("div"),this.component.className="payrails-dynamic-element-tabs",(null===(s=null===(n=null===(i=this.options.styles)||void 0===i?void 0:i.tabs)||void 0===n?void 0:n.container)||void 0===s?void 0:s.base)&&Object.assign(this.component.style,this.options.styles.tabs.container.base),this.makeTabs(),this.injectElement(this.component)}createTab(e){var t,i,n;const s=document.createElement("button");return s.type="button",s.textContent=e.label,s.className="payrails-dynamic-element-tab",(null===(n=null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.tabs)||void 0===i?void 0:i.tab)||void 0===n?void 0:n.base)&&Object.assign(s.style,this.options.styles.tabs.tab.base),s.addEventListener("click",t=>{var i,n;t.stopPropagation(),t.stopImmediatePropagation(),this.value=e.value,this.options.events.onChange(this.value),null===(n=null===(i=this.options.events)||void 0===i?void 0:i.onBlur)||void 0===n||n.call(i)}),s}makeTabs(){this.component.innerHTML="",this.tabs.clear(),this.tabOptions.forEach(e=>{const t=this.createTab(e);this.component.appendChild(t),this.tabs.set(e.value,t)}),this.updateTabStates()}updateTabStates(){this.tabs.forEach((e,t)=>{var i,n,s,o,r,a;e.classList.toggle("active",t===this.currentValue),e.removeAttribute("style"),t===this.currentValue&&(null===(s=null===(n=null===(i=this.options.styles)||void 0===i?void 0:i.tabs)||void 0===n?void 0:n.tab)||void 0===s?void 0:s.active)?Object.assign(e.style,this.options.styles.tabs.tab.active):(null===(a=null===(r=null===(o=this.options.styles)||void 0===o?void 0:o.tabs)||void 0===r?void 0:r.tab)||void 0===a?void 0:a.base)&&Object.assign(e.style,this.options.styles.tabs.tab.base)})}updateStyles(){}}var Xi;!function(e){e.GET="GET"}(Xi||(Xi={}));const zi=e=>t(void 0,[e],void 0,function*({url:e}){const t={method:Xi.GET},i=yield fetch(e,t),n=yield i.json();if(429===i.status)throw new qi(e,Xi.GET);if(!i.ok)throw new Hi(e,Xi.GET);return{ok:i.ok,req:Object.assign({url:e},t),res:n}});class Hi extends s.PayrailsError{constructor(e,t){super(s.ERROR_CODES.PAYRAILS_API_UNSUCCESSFUL,{description:`[${t}] ${e} unsuccessful`})}}class qi extends s.PayrailsError{constructor(e,t){super(s.ERROR_CODES.PAYRAILS_API_TOO_MANY_REQUESTS,{description:`[${t}] ${e} too many requests`})}}const Wi="ui:position";function Ki(e){return t(this,void 0,void 0,function*(){if(!e||"object"!=typeof e)return e;const i=$i(e);if(0===i.size)return e;const n=yield function(e){return t(this,void 0,void 0,function*(){const i=new Map,n=Array.from(e).map(e=>t(this,void 0,void 0,function*(){try{const t=(yield zi({url:e})).res;i.set(e,t)}catch(t){console.warn(`Failed to fetch schema from ${e}:`,t)}}));return yield Promise.all(n),i})}(i);return Zi(e,n)})}function $i(e,t=new Set){return Array.isArray(e)?e.forEach(e=>$i(e,t)):e&&"object"==typeof e&&(e.$ref&&/^https?:\/\//.test(e.$ref)&&t.add(e.$ref),Object.values(e).forEach(e=>$i(e,t))),t}function Zi(e,t){if(Array.isArray(e))return e.map(e=>Zi(e,t));if(e&&"object"==typeof e){if(e.$ref&&/^https?:\/\//.test(e.$ref)){if(!t.has(e.$ref))return;const i=Zi(t.get(e.$ref),t);return void 0!==e[Wi]?Object.assign(Object.assign({},i),{[Wi]:e[Wi]}):i}const i={};for(const[n,s]of Object.entries(e)){const e=Zi(s,t);void 0!==e&&(i[n]=e)}return i}return e}function Ji(e,t,i){var n,s;const o=null===(n=e.oneOf)||void 0===n?void 0:n.find(e=>{var n,s;return(null===(s=null===(n=e.properties)||void 0===n?void 0:n[t])||void 0===s?void 0:s.const)===i});if(!o)return{};const r=new Set(o.required||[]),a=new Set((null===(s=e.oneOf)||void 0===s?void 0:s.flatMap(e=>e.required||[]))||[]);return Object.fromEntries(Array.from(a).filter(e=>e!==t).map(e=>[e,{isVisible:r.has(e),isRequired:r.has(e)}]))}function Qi(e,t,i,n){var s,o,r,a,l,d,c,u,p,h,_,E;return{id:`payrails-dynamic-element-field:${e}`,name:e,property:t,label:null!==(a=null!==(r=null===(o=null===(s=null==n?void 0:n.fields)||void 0===s?void 0:s[e])||void 0===o?void 0:o.label)&&void 0!==r?r:t.title)&&void 0!==a?a:`${e}:label`,placeholder:null!==(c=null===(d=null===(l=null==n?void 0:n.fields)||void 0===l?void 0:l[e])||void 0===d?void 0:d.placeholder)&&void 0!==c?c:`${e}:placeholder`,errors:se({required:"This field is required",minLength:"This field is too short",maxLength:"This field is too long",pattern:"This field is invalid",oneOf:"This field is invalid"},null!==(u=t.errorMessage)&&void 0!==u?u:{},null!==(p=null==n?void 0:n.errors)&&void 0!==p?p:{},null!==(E=null===(_=null===(h=null==n?void 0:n.fields)||void 0===h?void 0:h[e])||void 0===_?void 0:_.errors)&&void 0!==E?E:{}),required:i}}function en(e){var t,i;return null!==(i=null===(t=e.oneOf)||void 0===t?void 0:t.map(e=>({value:String(e.const),label:e.title})))&&void 0!==i?i:[]}class tn extends xi{constructor(e,t,i){super("div",{id:"payrails-dynamic-element-form",className:"payrails-dynamic-element-form"}),this.options=e,this.formConfig=t,this.returnInfo=i,this.formFields=new Map,this.formData={},this.__schema=null,this._previousFormValidState=null}collect(){return t(this,void 0,void 0,function*(){if(!this.parentElement)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_NOT_MOUNTED,{description:"Dynamic element form is not mounted"});let e={};const t=Object.fromEntries(this.formFields.entries());if(Object.values(t).forEach(t=>{t.validate(),t.isVisible&&(e=Bt(e,t.name,t.value))}),!this.isFormValid())throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_FORM_INVALID,{description:"Dynamic element form is invalid"});return e})}constructSaveInstrumentBody(e,i){return t(this,void 0,void 0,function*(){var t,n;return{data:e,merchantReference:le.response.merchantReference,holderReference:le.response.holderReference,holderId:le.response.holderId,paymentMethod:null===(t=this.options.paymentMethod)||void 0===t?void 0:t.paymentMethodCode,storeInstrument:null!==(n=null==i?void 0:i.storeInstrument)&&void 0!==n&&n}})}isFormValid(){return Object.values(this.formFields).filter(e=>e.isVisible).every(e=>e.isValid)}isFormValidSilent(){return Object.values(this.formFields).filter(e=>e.isVisible).every(e=>e.validate(!0))}checkAndTriggerValidationChange(){var e,t;const i=this.isFormValidSilent();this._previousFormValidState!==i&&(this._previousFormValidState=i,null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onValidationChange)||void 0===t||t.call(e,i))}mount(e){const i=Object.create(null,{mount:{get:()=>super.mount}});return t(this,void 0,void 0,function*(){var t,n;yield this.makeForm(),i.mount.call(this,e),null===(n=null===(t=this.options.events)||void 0===t?void 0:t.onReady)||void 0===n||n.call(t)})}makeForm(){return t(this,void 0,void 0,function*(){var e;if(!(null===(e=this.formConfig)||void 0===e?void 0:e.schema))return;this.__schema=yield Ki(this.formConfig.schema);const t=function(e,t){const i={};if(!function(e){return e&&"object"==typeof e}(e))return i;const n=(e,s)=>{var o;if(e.properties)for(const[r,a]of Object.entries(e.properties)){const l=s?`${s}.${r}`:r,d=a;"object"===d.type&&d.properties?n(d,l):i[l]=Qi(l,d,(null===(o=e.required)||void 0===o?void 0:o.includes(r))||!1,t)}};return n(e,""),i}(this.__schema,this.options.translations),i=Object.values(t).sort((e,t)=>{var i,n;return(null!==(i=e.property[Wi])&&void 0!==i?i:0)-(null!==(n=t.property[Wi])&&void 0!==n?n:0)});for(const e of i)this.createField(e);this.evaluateDependencies()})}createField(e){const t=this.createFieldSync(e);t&&(this.formFields.set(e.name,t),this.subElements.push(t))}createFieldSync(e){return t=e.property,Boolean(t.oneOf&&t.oneOf.length>0)?this.createOneOfField(e):function(e){return"string"===e.type&&!e.oneOf}(e.property)?this.createStringField(e):null;var t}createOneOfField(e){const t="bankAccount.holder.type"===e.name?"tabs":"select";return this.createFieldByType(e,t)}createStringField(e){return this.createFieldByType(e,"input")}createFieldByType(e,t){var i,n;const s=this.extractStyles(e.name,t),o=this.makeFieldEvents(e.name),r=se(e,null!==(n=null===(i=this.options.fieldOverrides)||void 0===i?void 0:i[e.name])&&void 0!==n?n:{});switch(t){case"tabs":return new Gi(Object.assign(Object.assign({},r),{events:o,styles:s,options:en(e.property)}));case"select":return new Vi(Object.assign(Object.assign({},r),{events:o,styles:s,options:en(e.property)}));case"input":return new Bi(Object.assign(Object.assign({},r),{events:o,styles:s}));default:throw new Error(`Unsupported component type: ${t}`)}}extractStyles(e,t){var i,n,s,o,r,a,l,d,c,u,p,h,_,E;const m=se({},null!==(s=null===(n=null===(i=this.options.styles)||void 0===i?void 0:i.all)||void 0===n?void 0:n[t])&&void 0!==s?s:{},null!==(l=null===(a=null===(r=null===(o=this.options.styles)||void 0===o?void 0:o.fields)||void 0===r?void 0:r[e])||void 0===a?void 0:a[t])&&void 0!==l?l:{}),v=se({},null!==(u=null===(c=null===(d=this.options.styles)||void 0===d?void 0:d.all)||void 0===c?void 0:c.errors)&&void 0!==u?u:{},null!==(E=null===(_=null===(h=null===(p=this.options.styles)||void 0===p?void 0:p.fields)||void 0===h?void 0:h[e])||void 0===_?void 0:_.errors)&&void 0!==E?E:{});return{[t]:m,errors:v}}makeFieldEvents(e){return{onChange:(t=>{this.formData=Bt(this.formData,e,t),this.evaluateDependencies()}).bind(this),onReady:(t=>{this.formData=Bt(this.formData,e,t)}).bind(this),onBlur:(()=>{this.checkAndTriggerValidationChange()}).bind(this)}}evaluateDependencies(){if(!this.__schema)return;const e=function(e,t){const i={};if(!e.dependentSchemas)return i;for(const[n,s]of Object.entries(e.dependentSchemas)){const e=jt(t,n);if(s.oneOf){const t=Ji(s,n,e);Object.assign(i,t)}}return i}(this.__schema,this.formData);for(const[t,i]of Object.entries(e)){const e=this.formFields.get(t);e&&(e.setVisible(i.isVisible),e.setRequired(i.isRequired))}}}const nn={fields:{email:{label:"Email",placeholder:"you@example.com"},line1:{label:"Address line 1",placeholder:"Street and number"},line2:{label:"Address line 2",placeholder:"Apartment, suite, etc."},city:{label:"City",placeholder:"City"},state:{label:"State / region",placeholder:"State / region"},postalCode:{label:"Postal code",placeholder:"Postal code"},country:{label:"Country",placeholder:"Select a country"}}};class sn extends Ui{constructor(e){super("div",{className:"payrails-billing-address-form-title"}),this.element.innerText=e}}class on extends Ui{static get current(){return on._current}static reset(){on._current=void 0}constructor(e){var t,i,n;super("div",{id:"payrails-billing-address-form",className:"payrails-billing-address-form"}),this.form=new tn({styles:e.styles,translations:se(nn,null!==(t=e.translations)&&void 0!==t?t:{}),fieldOverrides:on.toFieldOverrides(e.prefill),events:{onReady:null===(i=e.events)||void 0===i?void 0:i.onReady}},{schema:e.schema}),this.subElements.push(new sn(null!==(n=e.title)&&void 0!==n?n:"Billing Address"),this.form)}static toFieldOverrides(t={}){const{street:i}=t,n=e(t,["street"]),s=Object.assign(Object.assign({},n),{line1:i});return Object.fromEntries(Object.entries(s).filter(([,e])=>e).map(([e,t])=>[e,{value:t,readOnly:!0}]))}collect(){return t(this,void 0,void 0,function*(){on._current=void 0;const e=yield this.form.collect();return on._current=e,e})}}const rn=(e=window,t=navigator)=>{const i={userAgent:t.userAgent,language:t.language,screenHeight:e.screen.height,screenWidth:e.screen.width,colorDepth:e.screen.colorDepth,timeZoneOffset:(new Date).getTimezoneOffset(),acceptHeader:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",javaEnabled:!1,javaScriptEnabled:!0},n=an(t.userAgent);return n&&(i.osType=n),i},an=e=>/android/i.test(e)?"android":/iphone|ipad|ipod/i.test(e)?"ios":/windows|linux|mac/i.test(e)?"web":void 0,ln={success:"https://assets.payrails.io/html/payrails-success.html",error:"https://assets.payrails.io/html/payrails-error.html",cancel:"https://assets.payrails.io/html/payrails-cancel.html",pending:"https://assets.payrails.io/html/payrails-pending.html"};class dn{static getInstance(){return this.instance||(this.instance=new dn),this.instance}constructor(e=""){this.lastActionUpdateTime=e,dn.instance=this}}class cn{constructor(e=ln,t=680,i=60,n=2e3,s=5,o=dn.getInstance()){this.returnLinks=e,this.POLL_INTERVAL=t,this.MAX_POLL_ATTEMPTS=i,this.POLL_INITIAL_DELAY=n,this.POLL_ERROR_COUNT_MULTIPLIER=s,this.paymentStatus=o}pay(e){return t(this,void 0,void 0,function*(){try{const t=(yield this.authorize(e)).res.links.execution;return yield this.pollForAuthorizationResult(t)}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAY_ERROR,{cause:e});throw o.PayrailsLogger.error(t.message,{error:t}),e}})}payout(e){return t(this,void 0,void 0,function*(){try{const t=(yield this.executePayout(e)).res.links.execution;return yield this.pollForAuthorizationResult(t)}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAYOUT_ERROR,{cause:e});throw o.PayrailsLogger.error(t.message,{error:t}),e}})}confirm(e){return t(this,arguments,void 0,function*(e,t={}){try{const i=yield K({url:e,method:W.POST,token:pe().token,body:{data:t}}),n=yield this.pollForAuthorizationResult(i.res.links.execution);if(n.finalState)return n;const s=n.response.status.slice().sort((e,t)=>new Date(t.time).getTime()-new Date(e.time).getTime())[0].time,{res:o}=yield this.getExecution(i.res.links.execution,s);return{finalState:o.status.find(({code:e,time:t})=>["authorizeSuccessful","authorizeFailed"].includes(e)&&new Date(t)>new Date(s)),response:o}}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_CONFIRM_ERROR,{cause:e});throw o.PayrailsLogger.error(t.message,{error:t}),e}})}getExecution(e,i){return t(this,arguments,void 0,function*(e,t,i=0,n){if(i>this.MAX_POLL_ATTEMPTS)throw new Q(e,W.GET);0===i&&t?yield this.wait(this.POLL_INITIAL_DELAY,n):yield this.wait(this.POLL_INTERVAL,n);try{const s=yield K({url:e,token:pe().token});if(t){if(!s.res.status.find(({time:e})=>new Date(e)>new Date(t)))return yield this.wait(this.POLL_INTERVAL,n),this.getExecution(e,t,i+1,n)}return s}catch(s){if(s instanceof Z)return yield this.wait(this.POLL_INTERVAL,n),this.getExecution(e,t,i+this.POLL_ERROR_COUNT_MULTIPLIER,n);if(s instanceof J)return yield this.wait(this.POLL_INTERVAL*i,n),this.getExecution(e,t,i+1,n);throw s}})}createApplePaySession(e){return t(this,void 0,void 0,function*(){return K({url:e.requestUrl,method:W.POST,token:pe().token,body:{integrationType:"api",paymentMethodCode:"applePay",amount:pe().amount,meta:{sessionURL:e.sessionUrl,clientContext:{host:e.clientDomain||window.location.host}}}})})}authorize(e){return t(this,void 0,void 0,function*(){if(!le.authorizeLink||!pe().amount){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND,{description:"SDK was not initialized with workflow execution"});throw o.PayrailsLogger.error(e.message,{error:e}),e}const{success:t=ln.success,error:i=ln.error,cancel:n=ln.cancel,pending:r=ln.pending}=this.returnLinks,a=this.attachMetaToPaymentComposition({amount:pe().amount,paymentComposition:e,returnInfo:{success:t,cancel:n,error:i,pending:r}});return K({url:le.authorizeLink,method:W.POST,token:pe().token,body:a})})}executePayout(e){return t(this,void 0,void 0,function*(){if(!le.payoutLink||!pe().amount){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND,{description:"SDK was not initialized with workflow execution"});throw o.PayrailsLogger.error(e.message,{error:e}),e}const t={amount:pe().amount,payoutComposition:e};return K({url:le.payoutLink,method:W.POST,token:pe().token,body:t})})}getFirstNonFraudNetId(e){const t=Object.keys(e||{}).find(e=>"fraudNet"!==e);return t?e[t]:null}attachMetaToPaymentComposition(e){var t,i,n,s,o,r,a;let l;l=e.paymentComposition[0].paymentMethodCode===exports.PAYMENT_METHOD_CODES.PAYPAL&&(null===(i=null===(t=window.PayrailsData)||void 0===t?void 0:t.riskIds)||void 0===i?void 0:i.fraudNet)?null===(s=null===(n=window.PayrailsData)||void 0===n?void 0:n.riskIds)||void 0===s?void 0:s.fraudNet:this.getFirstNonFraudNetId(null===(o=window.PayrailsData)||void 0===o?void 0:o.riskIds)||"";const d=Object.assign(Object.assign({},e),{meta:Object.assign(Object.assign({},le.getUpdatedMeta()),e.meta)});!1!==(null===(r=Yi.telemetry)||void 0===r?void 0:r.collectMetadata)&&(d.meta=Object.assign(Object.assign({},d.meta),{clientContext:Object.assign(Object.assign({},(null===(a=d.meta)||void 0===a?void 0:a.clientContext)||{}),rn())})),l&&(d.meta.risk={sessionId:l});const c=on.current;return c&&(d.paymentComposition=d.paymentComposition.map(e=>{var t,i;return(null===(t=e.paymentInstrumentData)||void 0===t?void 0:t.billingAddress)?e:Object.assign(Object.assign({},e),{paymentInstrumentData:Object.assign(Object.assign({},null!==(i=e.paymentInstrumentData)&&void 0!==i?i:{}),{billingAddress:c})})})),d}wait(e,i){return t(this,void 0,void 0,function*(){var t;if(null==i?void 0:i.aborted)throw null!==(t=i.reason)&&void 0!==t?t:new DOMException("Aborted","AbortError");return new Promise((t,n)=>{const s=setTimeout(()=>{null==i||i.removeEventListener("abort",o),t()},e),o=()=>{var e;clearTimeout(s),null==i||i.removeEventListener("abort",o),n(null!==(e=null==i?void 0:i.reason)&&void 0!==e?e:new DOMException("Aborted","AbortError"))};null==i||i.addEventListener("abort",o,{once:!0})})})}pollForAuthorizationResult(e){return t(this,arguments,void 0,function*(e,t=0,i=["authorizePending","authorizeSuccessful","authorizeFailed","payoutPending","payoutSuccessful","payoutFailed"],n){var r;const a=null==n?void 0:n.signal;if(null==a?void 0:a.aborted)throw null!==(r=a.reason)&&void 0!==r?r:new DOMException("Aborted","AbortError");const l=(yield this.getExecution(e,this.paymentStatus.lastActionUpdateTime,t,a)).res,d=l.status,c=d.find(({code:e})=>"authorizeRequested"===e||"payoutRequested"===e);if(!c&&t<10)return yield this.wait(this.POLL_INTERVAL,a),this.pollForAuthorizationResult(e,t+1,i,{signal:a});if(!c){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_API_AUTHORIZATION_NOT_REQUESTED);throw o.PayrailsLogger.error(e.message,{error:e}),e}const u=d.find(({code:e,time:t})=>"confirmRequested"===e&&new Date(t)>new Date(c.time)),p=u?u.time:c.time,h=d.filter(({code:e,time:t})=>i.includes(e)&&new Date(t)>new Date(p)).sort((e,t)=>new Date(t.time).getTime()-new Date(e.time).getTime())[0];return h?(this.paymentStatus.lastActionUpdateTime=h.time,{finalState:h,response:l}):this.pollForAuthorizationResult(e,t+1,i,{signal:a})})}}
4
+ */const fe={IFRAME_SECURE_SITE:"https://js.skyflow.com/v1/elements/index.html",IFRAME_SECURE_ORGIN:"https://js.skyflow.com"},Ae="https://assets.payrails.io/f3470e3/card/index.html",Le="https://assets.payrails.io",Oe={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no",style:"width: 100%;",allow:"clipboard-read; clipboard-write"},ge=(e,t)=>{Object.keys(t).forEach(i=>{if(Object.prototype.hasOwnProperty.call(t,i)){const n=t[i];null==n?e.removeAttribute(i):e.setAttribute(i,n)}})};var Ce=(e={})=>{const t=document.createElement("iframe"),i=Object.assign(Object.assign({},Oe),e);return Object.assign(t.style,D),ge(t,i),t.getAttribute("id")||(t.id=t.name),t};const Te=()=>fe.IFRAME_SECURE_SITE,Re=(e,t)=>{Object.keys(t).forEach(i=>{Object.prototype.hasOwnProperty.call(t,i)&&(e.style[i]=t[i])})};function Ne(e){return JSON.parse(JSON.stringify(e))}var Se,be,Pe,De,Me,we,ke;!function(e){e.DEFAULT="DEFAULT",e.PLAIN_TEXT="PLAIN_TEXT",e.MASKED="MASKED",e.REDACTED="REDACTED"}(Se||(Se={})),function(e){e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.DELETE="DELETE"}(be||(be={})),function(e){e.CHANGE="CHANGE",e.READY="READY",e.FOCUS="FOCUS",e.BLUR="BLUR",e.SUBMIT="SUBMIT"}(Pe||(Pe={})),function(e){e.WARN="WARN",e.INFO="INFO",e.DEBUG="DEBUG",e.ERROR="ERROR"}(De||(De={})),function(e){e.DEV="DEV",e.PROD="PROD"}(Me||(Me={})),function(e){e.LOG="LOG",e.WARN="WARN",e.ERROR="ERROR"}(we||(we={})),function(e){e.REGEX_MATCH_RULE="REGEX_MATCH_RULE",e.LENGTH_MATCH_RULE="LENGTH_MATCH_RULE",e.ELEMENT_VALUE_MATCH_RULE="ELEMENT_VALUE_MATCH_RULE"}(ke||(ke={}));const Ye={DEBUG:{showDebugLogs:!0,showInfoLogs:!0,showWarnLogs:!0,showErrorLogs:!0},INFO:{showDebugLogs:!1,showInfoLogs:!0,showWarnLogs:!0,showErrorLogs:!0},WARN:{showDebugLogs:!1,showInfoLogs:!1,showWarnLogs:!0,showErrorLogs:!0},ERROR:{showDebugLogs:!1,showInfoLogs:!1,showWarnLogs:!1,showErrorLogs:!0}},Ue={PROD:{doesReturnValue:!1},DEV:{doesReturnValue:!0}},xe="[Skyflow]",Fe=(e,t,i)=>{if(i&&Ye[i]){const{showDebugLogs:n,showInfoLogs:s,showWarnLogs:o,showErrorLogs:r}=Ye[i];t===we.LOG&&n?console.log(`${De.DEBUG}: ${xe} ${e}`):t===we.LOG&&s?console.log(`${De.INFO}: ${xe} ${e}`):t===we.WARN&&o?console.warn(`${De.WARN}: ${xe} ${e}`):t===we.ERROR&&r&&console.error(`${De.ERROR}: ${xe} ${e}`)}},je=(...e)=>{const t=e[0],i=e.filter((e,t)=>0!==t);return t?t.replace(/%s[0-9]+/g,e=>{const t=e.replace("%s","")-1;return i[t]}):""},Be=(e="")=>{const t=e.split(":");if("group"===t[1])return"composable container";let i=atob(t[2]);return-1!==i.indexOf(":")&&(i=i.substring(0,i.indexOf(":"))),i},Ve=e=>{if(!e||!Object.prototype.hasOwnProperty.call(e,"records"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_RECORDS_KEY_MISSING_IN_ADDITIONAL_FIELDS);const{records:t}=e;if(!t||!Array.isArray(t))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_RECORDS_IN_ADDITIONAL_FIELDS);if(0===t.length)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_RECORDS_IN_ADDITIONAL_FIELDS);t.forEach((e,t)=>{var i,n,s,r;if(!e||!Object.prototype.hasOwnProperty.call(e,"table"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_ADDITIONAL_FIELDS);if(!e.table)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE_IN_ADDITIONAL_FIELDS);if(void 0!==(null===(i=e.fields)||void 0===i?void 0:i.skyflowID)){if(!(null===(n=e.fields)||void 0===n?void 0:n.skyflowID))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_SKYFLOW_ID);if(!("string"==typeof(null===(s=e.fields)||void 0===s?void 0:s.skyflowID)||(null===(r=e.fields)||void 0===r?void 0:r.skyflowID)instanceof String))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_SKYFLOW_ID)}if(!("string"==typeof e.table||e.table instanceof String))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_ADDITIONAL_FIELDS);if(!Object.prototype.hasOwnProperty.call(e,"fields"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_FIELDS_IN_ADDITIONAL_FIELDS);if(!e.fields)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_FIELDS_IN_ADDITIONAL_FIELDS);if("object"!=typeof e.fields||Array.isArray(e.fields))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_FIELDS_IN_ADDITIONAL_FIELDS)})},Ge=e=>{let t=!0;try{new RegExp(e)}catch(e){t=!1}return t},Xe=e=>{if(!Object.prototype.hasOwnProperty.call(e,"getBearerToken"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_GET_BEARER_TOKEN_MISSING)},He=(e,t)=>{if(!Object.prototype.hasOwnProperty.call(e,"type"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_TYPE);if(!e.type)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_TYPE);if(Object.prototype.hasOwnProperty.call(e,"altText")&&Fe(d.COLLECT_ALT_TEXT_DEPERECATED,we.WARN,t),Object.prototype.hasOwnProperty.call(e,"skyflowID")&&"string"!=typeof e.skyflowID)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_SKYFLOW_ID)},ze=e=>{if(!e||!Array.isArray(e))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_TYPE);if(!e.length)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_UPSERT_OPTIONS_ARRAY);e.forEach((e,t)=>{if(!e||"object"!=typeof e)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_UPSERT_OPTION_OBJECT_TYPE);if(!Object.prototype.hasOwnProperty.call(e,"table"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_TABLE_IN_UPSERT_OPTION);if(!e.table||"string"!=typeof e.table||!e.table.length)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_IN_UPSERT_OPTION);if(!Object.prototype.hasOwnProperty.call(e,"column"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN_IN_UPSERT_OPTION);if(!e.column||"string"!=typeof e.column||!e.column.length)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN_IN_UPSERT_OPTION)})},$e=e=>"boolean"==typeof e;function qe(e){const t=e.split(":");return t.length>2?(t.pop(),t.pop(),t.join(":")):""}const We=(e,t,i)=>{if("string"!=typeof e)return e;if(t===R.CARD_NUMBER){if(e=e&&e.replace(/\s/g,""),!i){((e="")=>{const t=e.replace(/[\s-]/g,"");let i=N.DEFAULT;Object.entries(Y).forEach(([e,n])=>{n.regex.test(t)&&(i=e)})})(e);const t=e.length<=15?6:8;return e.length>t?e.replace(new RegExp(`.(?=.{0,${(null==e?void 0:e.length)-t-1}}$)`,"g"),"X"):e}return e}return i?e:void 0};function Ke(e){var t,i,n,s;if((null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.customElementsURL)&&(e=>{if(!e||"https"!==e.substring(0,5).toLowerCase())return!1;try{if(new URL(e))return!0}catch(e){return!1}return!0})(null===(i=null==e?void 0:e.options)||void 0===i?void 0:i.customElementsURL)){const t=null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.customElementsURL,i=new URL(t),o=i.protocol,r=i.hostname;fe.IFRAME_SECURE_ORGIN=`${o}//${r}`,fe.IFRAME_SECURE_SITE=null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.customElementsURL}fe.IFRAME_SECURE_ORGIN=Le,fe.IFRAME_SECURE_SITE=Ae}class Ze{constructor(e,t,i,n){this.setAttributess=e=>{ge(this.iframe,{src:e})},this.mount=e=>{var t;this.unmount();try{if("string"==typeof e){if(this.container=document.querySelector(e)||void 0,!this.container)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_SELECTOR)}else{if(!(e instanceof HTMLElement))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_SELECTOR);this.container=e}}catch(e){console.error(e)}ge(this.iframe,{src:Te(),title:"Secure Credit Card Form","aria-label":"Secure payment form",role:"application",tabindex:"0"}),null===(t=this.container)||void 0===t||t.appendChild(this.iframe)},this.setIframeHeight=e=>{this.iframe.getAttribute("height")!==`${e}px`&&this.iframe.setAttribute("height",`${e}px`)},this.unmount=()=>{this.iframe.remove()},this.name=`${e}:${i}:${n}`,this.metadata=t,this.iframe=Ce({name:this.name})}}class Je{}var Qe,et,tt,it,nt,st,ot,rt,at,lt,dt,ct,ut,ht,pt,_t,Et,mt,vt,yt,It;const ft="Element";class At extends Je{constructor(e,i,r,l,d=!1,c,u,h,E){var m;super(),this.type=Mi.COLLECT,Qe.set(this,void 0),et.set(this,!1),tt.set(this,void 0),it.set(this,void 0),nt.set(this,{isEmpty:!0,isComplete:!1,isValid:!1,isFocused:!1,value:void 0,isRequired:!1}),st.set(this,void 0),ot.set(this,new Ie),rt.set(this,void 0),at.set(this,ye.getEventBus()),lt.set(this,void 0),dt.set(this,[]),ct.set(this,!1),ut.set(this,void 0),ht.set(this,void 0),pt.set(this,!1),this.getID=()=>n(this,Qe,"f"),this.mount=e=>{var i;if(!e)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_IN_MOUNT);const r=(e,i)=>{if(e.name===n(this,lt,"f").name){i(n(this,st,"f")),n(this,It,"f").call(this);const e=n(this,tt,"f")[0],{name:o}=e,l=t(e,["name"]);n(this,it,"f").length>1?n(this,it,"f").forEach((e,t)=>{n(this,rt,"f")&&n(this,rt,"f")._emit(`${p.READY}:${e.elementName}`,Object.assign(Object.assign({},n(this,tt,"f")[t]),{elementType:e.elementType}))}):n(this,ot,"f")._emit(p.READY,Object.assign({},l)),n(this,at,"f").off(_+this.containerId,r),Fe(`${je(a.ELEMENT_MOUNTED,ft,Be(n(this,lt,"f").name))} `,we.LOG,n(this,ut,"f").logLevel),n(this,dt,"f").forEach(e=>e()),s(this,dt,[],"f")}};if(n(this,it,"f").length>1)n(this,lt,"f").mount(e),n(this,at,"f").on(_+this.containerId,r);else{if(n(this,pt,"f"))return n(this,lt,"f").mount(e),void n(this,at,"f").on(_+this.containerId,r);null===(i=n(this,rt,"f"))||void 0===i||i.on(T,t=>{(null==t?void 0:t.containerId)===this.containerId&&(n(this,lt,"f").mount(e),n(this,at,"f").on(_+this.containerId,r))})}},this.unmount=()=>{n(this,at,"f").off(v,n(this,vt,"f")),n(this,lt,"f").unmount()},this.update=e=>{let t=Ne(e);const i=()=>{n(this,et,"f")&&(t={rows:[{elements:[Object.assign({},t)]}]}),s(this,st,Ot(n(this,st,"f"),t),"f"),s(this,it,gt(n(this,st,"f")),"f"),n(this,et,"f")?n(this,at,"f").emit(I,{name:n(this,lt,"f").name,options:n(this,it,"f")[0],isSingleElementAPI:!0}):(n(this,it,"f").forEach(e=>{n(this,at,"f").emit(I,{name:e.elementName,options:e,isSingleElementAPI:!0})}),n(this,at,"f").emit(I,{name:n(this,lt,"f").name,options:n(this,st,"f"),isSingleElementAPI:!1})),n(this,It,"f").call(this)};n(this,ct,"f")?i():n(this,dt,"f").push(i)},_t.set(this,e=>{n(this,et,"f")||n(this,ot,"f").on(I,()=>{e(n(this,it,"f"))},!0)}),this.updateElement=e=>{n(this,at,"f").emit(I,{name:e.elementName,options:e,isSingleElementAPI:!0})},Et.set(this,()=>{n(this,tt,"f").forEach((e,t)=>{var i;if(0===t){n(this,nt,"f").isEmpty=e.isEmpty,n(this,nt,"f").isComplete=e.isComplete,n(this,nt,"f").isValid=e.isValid,n(this,nt,"f").isFocused=e.isFocused,n(this,nt,"f").isRequired=e.isRequired,n(this,nt,"f").value={};const i=n(this,it,"f")[t].elementName,s=e.value&&We(e.value,e.elementType,n(this,ht,"f"));n(this,et,"f")?n(this,nt,"f").value=s:n(this,nt,"f").value[i]=s}else n(this,nt,"f").isEmpty=n(this,nt,"f").isEmpty||e.isEmpty,n(this,nt,"f").isComplete=n(this,nt,"f").isComplete&&e.isComplete,n(this,nt,"f").isValid=n(this,nt,"f").isValid&&e.isValid,n(this,nt,"f").isFocused=n(this,nt,"f").isFocused||e.isFocused,n(this,nt,"f").isRequired=n(this,nt,"f").isRequired||e.isRequired,n(this,nt,"f").value||(n(this,nt,"f").value={}),!n(this,it,"f")[t]&&(null===(i=n(this,it,"f")[t])||void 0===i?void 0:i.sensitive)&&(n(this,nt,"f").value[n(this,it,"f")[t].elementName]=e.value||"")})}),this.getState=()=>({isEmpty:n(this,nt,"f").isEmpty,isComplete:n(this,nt,"f").isComplete,isValid:n(this,nt,"f").isValid,isFocused:n(this,nt,"f").isFocused,value:n(this,nt,"f").value,required:n(this,nt,"f").isRequired}),this.getOptions=()=>{let e=Ne(n(this,st,"f"));return n(this,et,"f")?e=e.rows[0].elements[0]:e.rows.forEach(e=>{e.elements.forEach(e=>{delete e.elementName})}),delete e.elementName,e},mt.set(this,e=>{n(this,ot,"f").on(y,()=>{const t=n(this,it,"f").map(e=>e.elementName);n(this,et,"f")||t.push(n(this,lt,"f").name),e(t)},!0)}),vt.set(this,e=>{if(n(this,et,"f")&&e.event===p.READY&&e.name===n(this,lt,"f").name)n(this,ot,"f")._emit(p.READY);else{const t=n(this,it,"f").length>1;n(this,it,"f").forEach((i,s)=>{var r;if(e.name===i.elementName){let a="";switch(e.event){case p.FOCUS:a=p.FOCUS;break;case p.BLUR:a=p.BLUR;break;case p.CHANGE:a=p.CHANGE;break;case p.READY:a=p.READY;break;case p.SUBMIT:return void(null===(r=n(this,rt,"f"))||void 0===r||r._emit(p.SUBMIT));default:throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_TYPE)}n(this,tt,"f")[s].isEmpty=e.value.isEmpty,n(this,tt,"f")[s].isValid=e.value.isValid,n(this,tt,"f")[s].isComplete=e.value.isComplete,n(this,tt,"f")[s].isFocused=e.value.isFocused,n(this,tt,"f")[s].isRequired=e.value.isRequired,Object.prototype.hasOwnProperty.call(e.value,"value")?n(this,tt,"f")[s].value=e.value.value:n(this,tt,"f")[s].value=void 0,a=t?`${a}:${e.name}`:a,n(this,at,"f").emit(p.HEIGHT+n(this,lt,"f").name,{},e=>{(null==e?void 0:e.height)>0&&n(this,lt,"f").setIframeHeight(e.height)}),n(this,Et,"f").call(this);const l=Object.assign(Object.assign({},n(this,tt,"f")[s]),{elementType:i.elementType});t&&n(this,rt,"f")?n(this,rt,"f")._emit(a,l):n(this,ot,"f")._emit(a,l)}})}}),yt.set(this,()=>{n(this,at,"f").on(v,n(this,vt,"f"))}),It.set(this,()=>{const{rows:e}=n(this,st,"f");e.forEach(e=>{e.elements.forEach(e=>{e.elementType!==b.radio.name&&e.elementType!==b.checkbox.name&&(e.value=void 0)})}),s(this,it,gt(n(this,st,"f")),"f")}),this.containerId=l.containerId,s(this,Qe,e,"f"),s(this,ut,h,"f"),s(this,st,Ot(i),"f"),s(this,it,gt(i),"f"),s(this,et,d,"f"),E&&s(this,rt,E,"f"),s(this,ht,Ue[n(this,ut,"f").env].doesReturnValue,"f"),this.elementType=n(this,et,"f")?n(this,it,"f")[0].elementType:"group",s(this,tt,[],"f"),n(this,it,"f").forEach(e=>{n(this,tt,"f").push({isEmpty:!0,isComplete:!1,isValid:!1,isFocused:!1,value:n(this,ht,"f")?"":void 0,elementType:e.elementType,name:e.elementName,isRequired:!1})}),s(this,lt,new Ze(n(this,st,"f").elementName,r,this.containerId,n(this,ut,"f").logLevel),"f"),n(this,yt,"f").call(this),n(this,mt,"f").call(this,c),n(this,_t,"f").call(this,u),Fe(je(a.CREATED_ELEMENT,ft,Be(n(this,lt,"f").name)),we.LOG,n(this,ut,"f").logLevel),s(this,pt,l.isMounted,"f"),null===(m=n(this,rt,"f"))||void 0===m||m.on(T,e=>{(null==e?void 0:e.containerId)===this.containerId&&s(this,pt,!0,"f")});const f=e=>{e.height&&e.height>0&&n(this,lt,"f").setIframeHeight(e.height)};n(this,at,"f").on(p.MOUNTED,e=>{l.type===Mi.COMPOSABLE?n(this,it,"f").forEach(t=>{e.name===t.elementName&&(t.isMounted=!0,s(this,ct,!0,"f"))}):e.name===n(this,it,"f")[0].elementName&&(n(this,it,"f")[0].isMounted=!0,s(this,ct,!0,"f")),n(this,at,"f").emit(p.HEIGHT+n(this,lt,"f").name,{},f)})}on(e,t){if(!Object.values(p).includes(e))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER);if(!t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER);if("function"!=typeof t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER);n(this,ot,"f").on(e,e=>{void 0===e.value&&(e.value=""),delete e.isComplete,delete e.name,t(e)})}iframeName(){return n(this,lt,"f").name}isMounted(){return n(this,ct,"f")}isValidElement(){for(let e=0;e<n(this,it,"f").length;e+=1){if(!Object.prototype.hasOwnProperty.call(n(this,it,"f")[e],"table"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_TABLE_NAME_MISSING);if(!n(this,it,"f")[e].table)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_TABLE);if(!("string"==typeof n(this,it,"f")[e].table||n(this,it,"f")[e].table instanceof String))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TABLE_NAME);if(!Object.prototype.hasOwnProperty.call(n(this,it,"f")[e],"column"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_COLUMN);if(!n(this,it,"f")[e].column)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_COLUMN);if(!("string"==typeof n(this,it,"f")[e].column||n(this,it,"f")[e].column instanceof String))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COLUMN);if(void 0!==n(this,it,"f")[e].skyflowID&&!n(this,it,"f")[e].skyflowID)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_SKYFLOW_ID)}return!0}setError(e){n(this,at,"f").emit(L,{name:qe(n(this,lt,"f").name),isTriggerError:!0,clientErrorText:e})}resetError(){n(this,at,"f").emit(L,{name:qe(n(this,lt,"f").name),isTriggerError:!1})}setValue(e){n(this,ut,"f").env!==Me.PROD?n(this,et,"f")&&n(this,at,"f").emit(I,{name:n(this,lt,"f").name,options:Object.assign(Object.assign({},n(this,it,"f")[0]),{value:e}),isSingleElementAPI:!0}):Fe(je(d.UNABLE_TO_SET_VALUE_IN_PROD_ENV,n(this,it,"f")[0].elementType),we.WARN,n(this,ut,"f").logLevel)}clearValue(){n(this,ut,"f").env!==Me.PROD?n(this,et,"f")&&n(this,at,"f").emit(I,{name:n(this,lt,"f").name,options:Object.assign(Object.assign({},n(this,it,"f")[0]),{value:""}),isSingleElementAPI:!0}):Fe(je(d.UNABLE_TO_CLEAR_VALUE_IN_PROD_ENV,n(this,it,"f")[0].elementType),we.WARN,n(this,ut,"f").logLevel)}setAttribute(e,t){n(this,at,"f").emit(f,{name:n(this,lt,"f").name,attribute:e,value:t})}focus(){var e;if(!(null===(e=n(this,it,"f"))||void 0===e?void 0:e.length))return;const t=this.getState();n(this,at,"f").emit(v,{name:n(this,it,"f")[0].elementName,event:p.FOCUS,value:{isEmpty:t.isEmpty,isValid:t.isValid,isComplete:t.isComplete,isFocused:!0,isRequired:t.required,value:t.value}})}}function Lt(e,t,i={}){if("group"!==e&&!Object.prototype.hasOwnProperty.call(b,e))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_TYPE);if(Object.prototype.hasOwnProperty.call(t,"validations")){if(!Array.isArray(t.validations))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATIONS_TYPE);t.validations.forEach((e,t)=>{if(!Object.prototype.hasOwnProperty.call(e,"type"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_TYPE);if(!Object.values(ke).includes(e.type))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_TYPE);if(!Object.prototype.hasOwnProperty.call(e,"params"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_VALIDATION_RULE_PARAMS);if("object"!=typeof e.params||Array.isArray(e.params)||null===e.params)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_VALIDATION_RULE_PARAMS);if(e.type===ke.REGEX_MATCH_RULE){if(!Object.prototype.hasOwnProperty.call(e.params,"regex"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_REGEX_IN_REGEX_MATCH_RULE)}else if(e.type===ke.LENGTH_MATCH_RULE&&!Object.prototype.hasOwnProperty.call(e.params,"min")&&!Object.prototype.hasOwnProperty.call(e.params,"max"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_MIN_AND_MAX_IN_LENGTH_MATCH_RULE)})}if(Object.prototype.hasOwnProperty.call(i,"name")&&i.name!==t.name)throw new Error("Name attribute can't be updated");if((i=Object.assign(Object.assign({},t),i)).mask||i.replacePattern){const{type:t}=b[e].attributes;"text"===t&&"textarea"===t&&"email"===t||(delete i.mask,delete i.replacePattern)}if(void 0===!i.mask&&!Array.isArray(i.mask))throw new Error("mask option has to be array or undefined");if(Array.isArray(i.mask)){const e=i.mask;if("string"!=typeof e[0]||e[1]&&"object"!=typeof e[1])throw new Error("mask array values has to be string")}if(Array.isArray(i.replacePattern)){const e=i.replacePattern;if("string"!=typeof e[0]||e[1]&&"string"!=typeof e[1])throw new Error("replacePatterns array values has to be string")}if((e===b.radio.name||e===b.checkbox.name)&&!i.value)throw new Error("Elements radio and checkbox requires value attribute");if(!(e!==b.dropdown.name||i.options&&Array.isArray(i.options)&&0!==i.options.length))throw new Error("Element dropdown requires options attribute with an array of objects containing value and text attributes")}function Ot(e,t={},i=!0){return(t=Object.assign(Object.assign({},e),t)).rows.forEach((n,s)=>{const o=n,r=e.rows[s];t.rows[s]=Object.assign(Object.assign({},r),o),o.elements.forEach((e,t)=>{var n,s;const a=r.elements[t],d=e;if(d.elementType&&a.elementType!==d.elementType&&a.elementName&&a.elementName!==d.elementName)throw new Error(l.CANNOT_CHANGE_ELEMENT);Lt(a.elementType,a,d),o.elements[t]=Object.assign(Object.assign(Object.assign({},a),d),{elementName:a.elementName});const c=d.classes||{},u=d.styles||{};u.base=Object.assign(Object.assign({},w),u.base),d.classes=c,d.styles=u;const h=(null===(n=null==d?void 0:d.labelStyles)||void 0===n?void 0:n.classes)||{},p=(null===(s=null==d?void 0:d.labelStyles)||void 0===s?void 0:s.styles)||{};i&&function(e,t){Object.values(k).forEach(i=>{if(e[i]||t[i])switch(i){case k.BASE:t[i]=Object.assign({},t[i]);break;case k.FOCUS:t[k.BASE]=Object.assign(Object.assign({},t[k.BASE]),{":focus":Object.assign({},t[k.BASE]&&t[k.BASE][":focus"])});break;case k.WEBPACKAUTOFILL:t[k.BASE]=Object.assign(Object.assign({},t[k.BASE]),{":-webkit-autofill":Object.assign({},t[k.BASE]&&t[k.BASE][":-webkit-autofill"])});break;default:t[i]=Object.assign(Object.assign({},t[k.BASE]),t[i])}}),Object.keys(t).forEach(e=>{const i=t[e][":-webkit-autofill"];"object"==typeof i&&Object.keys(i).forEach(e=>{i[e]&&!i[e].includes("!important")&&(i[e]=`${i[e]} !important`)})})}(h,p),d.labelStyles={labelClasses:h},d.labelStyles.styles=p})}),t}Qe=new WeakMap,et=new WeakMap,tt=new WeakMap,it=new WeakMap,nt=new WeakMap,st=new WeakMap,ot=new WeakMap,rt=new WeakMap,at=new WeakMap,lt=new WeakMap,dt=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,pt=new WeakMap,_t=new WeakMap,Et=new WeakMap,mt=new WeakMap,vt=new WeakMap,yt=new WeakMap,It=new WeakMap;const gt=e=>{const{rows:t}=e,i=[];return t.forEach(e=>{e.elements.forEach(e=>{i.push(e)})}),i},Ct=e=>{const t=e.validations;return t&&Array.isArray(t)&&t.length>0&&t.forEach((e,t)=>{if(e&&e.type===ke.ELEMENT_VALUE_MATCH_RULE){if(e.params&&!Object.prototype.hasOwnProperty.call(e.params,"element"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_ELEMENT_IN_ELEMENT_MATCH_RULE);if(e.params&&(null==e.params.element||!(e.params.element instanceof At)))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_IN_ELEMENT_MATCH_RULE);e.params&&e.params.element&&e.params.element instanceof At&&(e.params.element=e.params.element.iframeName())}else if(e&&e.type===ke.REGEX_MATCH_RULE){if(e.params&&e.params.regex&&!Ge(e.params.regex))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_REGEX_IN_REGEX_MATCH_RULE);e.params&&e.params.regex&&Ge(e.params.regex)&&(e.params.regex=e.params.regex.toString())}}),t},Tt=(e,t,i)=>{let n=Object.assign({required:!1},t);if((Object.prototype.hasOwnProperty.call(n,"format")||Object.prototype.hasOwnProperty.call(n,"translation"))&&(B.includes(e)?(Fe(je(d.INPUT_FORMATTING_NOT_SUPPROTED,e),we.WARN,i),null==n||delete n.format,null==n||delete n.translation):e===b.INPUT_FIELD.name&&((e=>{if(e){if(Object.prototype.hasOwnProperty.call(e,"format")&&"string"!=typeof e.format)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_FORMAT);if(Object.prototype.hasOwnProperty.call(e,"translation")&&("object"!=typeof e.translation||"[object Object]"!==Object.prototype.toString.call(e.translation)))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_INPUT_OPTIONS_TRANSLATION)}})(t),n=Object.assign(Object.assign({},n),{mask:[n.format,n.translation?n.translation:V]}),null==n||delete n.format,null==n||delete n.translation)),e===b.CARD_NUMBER.name){Object.prototype.hasOwnProperty.call(n,"enableCardIcon")||(n=Object.assign(Object.assign({},n),{enableCardIcon:!0}));let e=" ";(null==n?void 0:n.format)===P&&(e="-"),n=Object.assign(Object.assign({},n),{cardSeperator:e}),null==n||delete n.format,null==n||delete n.translation}else if(e===b.EXPIRATION_DATE.name){let e=!1;n.format&&(e=!!(s=n.format.toUpperCase())&&x.includes(s),e||Fe(je(d.INVALID_EXPIRATION_DATE_FORMAT,x.toString()),we.WARN,i)),n=Object.assign(Object.assign({},n),{format:e?n.format.toUpperCase():U}),null==n||delete n.translation}else if(e===b.EXPIRATION_YEAR.name){let e=!1;n.format&&(e=(e=>!!e&&F.includes(e))(n.format.toUpperCase()),e||Fe(je(d.INVALID_EXPIRATION_YEAR_FORMAT,F.toString()),we.WARN,i)),n=Object.assign(Object.assign({},n),{format:e?n.format.toUpperCase():"YY"}),null==n||delete n.translation}var s;if(Object.prototype.hasOwnProperty.call(n,"enableCardIcon")&&!$e(n.enableCardIcon))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_BOOLEAN_OPTIONS,{description:"Interface: container create - Invaild enableCardIcon in options, enableCardIcon of type boolean is required."});if(Object.prototype.hasOwnProperty.call(n,"required")&&!$e(n.required))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_BOOLEAN_OPTIONS,{description:"Interface: container create - Invaild required in options, required of type boolean is required."});return n};function Rt(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=crypto.getRandomValues(new Uint32Array(1))[0]/Math.pow(2,32)*16|0;return("x"===e?t:3&t|8).toString(16)})}class Nt{}var St,bt,Pt,Dt,Mt,wt,kt,Yt,Ut,xt,Ft,jt;const Bt="CollectContainer";class Vt extends Nt{constructor(e,t,i,r){super(),St.set(this,void 0),bt.set(this,{}),Pt.set(this,void 0),Dt.set(this,void 0),Mt.set(this,void 0),this.type=Mi.COLLECT,wt.set(this,void 0),kt.set(this,!1),this.create=(e,t={required:!1})=>{He(e,n(this,Dt,"f").logLevel);const i=Ct(e),s=Tt(e.type,t,n(this,Dt,"f").logLevel),o={rows:[{elements:[Object.assign(Object.assign(Object.assign({elementType:e.type,name:e.column,accept:t.allowedFileType},e),s),{validations:i})]}]};return n(this,Yt,"f").call(this,o,!0)},Yt.set(this,(e,t=!1)=>{const i=[],s=Ne(e);if(s.rows.forEach(e=>{e.elements.forEach(e=>{const t=e,{elementType:n}=t;Lt(n,t),t.sensitive=t.sensitive||b[n].sensitive,t.replacePattern=t.replacePattern||b[n].replacePattern,t.mask=t.mask||b[n].mask,t.isMounted=!1,t.elementType!==b.radio.name&&t.elementType!==b.checkbox.name||(t.elementName=`${t.elementName}:${btoa(t.value)}`),t.elementName=`${u}:${t.elementType}:${btoa(Rt())}`,t.label=e.label,t.skyflowID=e.skyflowID,i.push(t)})}),s.elementName=t?i[0].elementName:`${u}:group:${btoa(s.name)}`,t&&!n(this,bt,"f")[i[0].elementName]&&n(this,jt,"f").call(this,i[0].name))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_UNIQUE_ELEMENT_NAME);let r=n(this,bt,"f")[s.elementName];if(r)t?r.update(i[0]):r.update(s);else{const e=Rt();r=new At(e,s,n(this,Pt,"f"),{containerId:n(this,St,"f"),isMounted:n(this,kt,"f"),type:this.type},t,n(this,xt,"f"),n(this,Ft,"f"),n(this,Dt,"f"),n(this,wt,"f")),n(this,bt,"f")[s.elementName]=r,n(this,Mt,"f")[e]=r}return t||i.forEach(e=>{const t=e.elementName;n(this,bt,"f")[t]?n(this,bt,"f")[t].update(e):n(this,bt,"f")[t]=this.create(e.elementType,r)}),r}),Ut.set(this,e=>{Object.keys(n(this,bt,"f")).forEach(t=>{t===e&&delete n(this,bt,"f")[t]})}),xt.set(this,e=>{e.forEach(e=>{n(this,Ut,"f").call(this,e)})}),Ft.set(this,e=>{e.forEach(e=>{n(this,bt,"f")[e.elementName]&&n(this,bt,"f")[e.elementName].update(e)})}),jt.set(this,e=>{const t=Object.keys(n(this,bt,"f"));for(let i=0;i<t.length;i+=1)if(atob(t[i].split(":")[2])===e)return!0;return!1}),this.validate=()=>new Promise((e,t)=>{Object.values(n(this,bt,"f")).forEach(e=>{if(!e.isMounted())throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED);e.isValidElement()}),this.bus.emit(g+n(this,St,"f"),{},t=>{e(t)})}),this.collect=(e={tokens:!0})=>new Promise((t,i)=>{try{Xe(n(this,Pt,"f").clientJSON.config);const s=Object.values(n(this,bt,"f"));let r=U;if(s.forEach(e=>{if(!e.isMounted())throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED);e.isValidElement();const t=e.getOptions();t.elementType===R.EXPIRATION_DATE&&(r=t.format||"MM/YY")}),Object.prototype.hasOwnProperty.call(e,"tokens")&&!$e(e.tokens))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TOKENS);(null==e?void 0:e.additionalFields)&&Ve(e.additionalFields),(null==e?void 0:e.upsert)&&ze(null==e?void 0:e.upsert),this.bus.target(fe.IFRAME_SECURE_ORGIN).emit(E+n(this,St,"f"),Object.assign(Object.assign({},Object.assign(Object.assign({},e),{expiryDateFormat:r})),{tokens:void 0===(null==e?void 0:e.tokens)||e.tokens}),e=>{!e||(null==e?void 0:e.error)?(Fe(`${JSON.stringify(null==e?void 0:e.error)}`,we.ERROR,n(this,Dt,"f").logLevel),i(null==e?void 0:e.error)):(Fe(je(a.COLLECT_SUBMIT_SUCCESS,Bt),we.LOG,n(this,Dt,"f").logLevel),t(e))}),Fe(je(a.EMIT_EVENT,Bt,E),we.LOG,n(this,Dt,"f").logLevel)}catch(e){Fe(`${e.message}`,we.ERROR,n(this,Dt,"f").logLevel),i(e)}}),this.unmount=()=>{this.iframe.remove()},this.bus=ye.getEventBus(),s(this,St,Rt(),"f"),s(this,Pt,Object.assign(Object.assign({},t),(null==e?void 0:e.fonts)?{fonts:e.fonts}:{}),"f"),s(this,Mt,i,"f"),s(this,Dt,r,"f"),s(this,wt,new Ie,"f"),this.iframe=Ce({name:`${c}:${n(this,St,"f")}:${n(this,Dt,"f").logLevel}`}),ge(this.iframe,{src:Te()}),Re(this.iframe,Object.assign({},M)),Fe(je(a.CREATE_COLLECT_CONTAINER,Bt),we.LOG,n(this,Dt,"f").logLevel);const l=(e,t)=>{e.name===c+n(this,St,"f")&&(t(Object.assign(Object.assign({},n(this,Pt,"f")),{clientJSON:Object.assign(Object.assign({},n(this,Pt,"f").clientJSON),{config:Object.assign({},n(this,Pt,"f").clientJSON.config)}),context:n(this,Dt,"f")})),s(this,kt,!0,"f"),n(this,wt,"f")._emit(T,{containerId:n(this,St,"f")}),this.bus.target({origin:fe.IFRAME_SECURE_ORGIN}).off(_+n(this,St,"f"),l))};this.bus.target({origin:fe.IFRAME_SECURE_ORGIN}).on(_+n(this,St,"f"),l),document.body.append(this.iframe)}reset(){this.bus.emit(m+n(this,St,"f"))}}St=new WeakMap,bt=new WeakMap,Pt=new WeakMap,Dt=new WeakMap,Mt=new WeakMap,wt=new WeakMap,kt=new WeakMap,Yt=new WeakMap,Ut=new WeakMap,xt=new WeakMap,Ft=new WeakMap,jt=new WeakMap;const Gt=(e,t,i)=>{const n=t.split(/[\.\[\]]/g);let s=e;for(const e of n){if(null===s)return i;if(void 0===s)return i;const t=e.replace(/['"]/g,"");""!==t.trim()&&(s=s[t])}return void 0===s?i:s},Xt=(e,t,i)=>{if(!e)return{};if(!t||void 0===i)return e;const n=t.split(/[\.\[\]]/g).filter(e=>!!e.trim()),s=e=>{if(n.length>1){const t=n.shift(),i=null!==((e,t)=>{const i=t;if(null==e)return i;const n=parseInt(e);return isNaN(n)?i:n})(n[0],null);e[t]=void 0===e[t]?i?[]:{}:e[t],s(e[t])}else e[n[0]]=i},o=(e=>{if(null==(t=e)||"object"!=typeof t&&"function"!=typeof t)return e;var t;if("function"==typeof e)return e.bind({});const i=new e.constructor;return Object.getOwnPropertyNames(e).forEach(t=>{i[t]=e[t]}),i})(e);return s(o),o};var Ht,zt,$t,qt,Wt,Kt,Zt,Jt,Qt,ei,ti,ii,ni,si,oi,ri,ai,li,di,ci,ui,hi,pi,_i,Ei;class mi{constructor(e,t){Ht.set(this,void 0),zt.set(this,void 0),$t.set(this,ye.getEventBus()),qt.set(this,null),this.type=Mi.COMPOSABLE,Wt.set(this,!1),Kt.set(this,!1),this.update=e=>{s(this,Kt,!0,"f"),n(this,Wt,"f")?(n(this,zt,"f")._emit(O,{elementName:n(this,Ht,"f"),elementOptions:e}),s(this,Kt,!1,"f")):n(this,Kt,"f")&&n(this,zt,"f").on(`${Pe.READY}:${n(this,Ht,"f")}`,()=>{n(this,zt,"f")._emit(O,{elementName:n(this,Ht,"f"),elementOptions:e}),s(this,Wt,!0,"f"),s(this,Kt,!1,"f")})},s(this,Ht,e,"f"),s(this,zt,t,"f"),n(this,zt,"f").on(`${Pe.READY}:${n(this,Ht,"f")}`,()=>{s(this,Wt,!0,"f")})}on(e,t){if(!Object.values(p).includes(e))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER);if(!t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER);if("function"!=typeof t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER);n(this,zt,"f").on(`${e}:${n(this,Ht,"f")}`,e=>{if(void 0===e.value&&(e.value=""),"CARD_NUMBER"===e.elementType&&e.value){const{value:t}=e;e.value=t.slice(0,8)}s(this,qt,{isEmpty:e.isEmpty,isValid:e.isValid,isComplete:e.isComplete,isFocused:e.isFocused,isRequired:e.isRequired,value:e.value},"f"),delete e.isComplete,delete e.name,t(e)})}focus(){const e=n(this,qt,"f")||{isEmpty:!0,isValid:!1,isComplete:!1,isFocused:!0,isRequired:!1};n(this,$t,"f").emit(v,{name:n(this,Ht,"f"),event:p.FOCUS,value:Object.assign(Object.assign({},e),{isFocused:!0})})}setAttribute(e,t){n(this,zt,"f")._emit(f,{elementName:n(this,Ht,"f"),attribute:e,value:t})}}Ht=new WeakMap,zt=new WeakMap,$t=new WeakMap,qt=new WeakMap,Wt=new WeakMap,Kt=new WeakMap;const vi="CollectContainer";class yi extends Nt{constructor(e,t,i,l){super(),Zt.set(this,void 0),Jt.set(this,{}),Qt.set(this,void 0),ei.set(this,{rows:[]}),ti.set(this,[]),ii.set(this,void 0),ni.set(this,void 0),si.set(this,void 0),oi.set(this,!1),ri.set(this,void 0),ai.set(this,void 0),this.type=Mi.COMPOSABLE,li.set(this,!1),di.set(this,{}),this.create=(e,t={required:!1})=>{He(e,n(this,ii,"f").logLevel);const i=Ct(e),s=Tt(e.type,t,n(this,ii,"f").logLevel),o=`${u}:${e.type}:${btoa(Rt())}`;return n(this,ti,"f").push(Object.assign(Object.assign(Object.assign({elementType:e.type,name:e.column},e),s),{validations:i,elementName:o})),new mi(o,n(this,si,"f"))},ci.set(this,(e,t=!1)=>{const i=[];if(s(this,Jt,{},"f"),s(this,di,Ne(e),"f"),n(this,di,"f").rows.forEach(e=>{e.elements.forEach(e=>{const t=e,{elementType:n}=t;Lt(n,t),t.sensitive=t.sensitive||b[n].sensitive,t.replacePattern=t.replacePattern||b[n].replacePattern,t.mask=t.mask||b[n].mask,t.isMounted=!1,t.label=e.label,t.skyflowID=e.skyflowID,i.push(t)})}),n(this,di,"f").elementName=t?i[0].elementName:`${u}:group:${btoa(n(this,di,"f").name)}`,t&&!n(this,Jt,"f")[i[0].elementName]&&n(this,_i,"f").call(this,i[0].name))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_UNIQUE_ELEMENT_NAME);let r=n(this,Jt,"f")[n(this,di,"f").elementName];if(r)t?r.update(i[0]):r.update(n(this,di,"f"));else{const e=Rt();r=new At(e,n(this,di,"f"),n(this,Qt,"f"),{containerId:n(this,Zt,"f"),isMounted:n(this,li,"f"),type:this.type},!0,n(this,hi,"f"),n(this,pi,"f"),n(this,ii,"f"),n(this,si,"f")),n(this,Jt,"f")[n(this,di,"f").elementName]=r,n(this,ni,"f")[e]=r}return r}),ui.set(this,e=>{Object.keys(n(this,Jt,"f")).forEach(t=>{t===e&&delete n(this,Jt,"f")[t]})}),hi.set(this,e=>{e.forEach(e=>{n(this,ui,"f").call(this,e)})}),pi.set(this,e=>{e.forEach(e=>{n(this,Jt,"f")[e.elementName]&&n(this,Jt,"f")[e.elementName].update(e)})}),_i.set(this,e=>{const t=Object.keys(n(this,Jt,"f"));for(let i=0;i<t.length;i+=1)if(atob(t[i].split(":")[2])===e)return!0;return!1}),this.on=(e,t)=>{if(!Object.values(p).includes(e))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_EVENT_LISTENER);if(!t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_HANDLER_IN_EVENT_LISTENER);if("function"!=typeof t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_HANDLER_IN_EVENT_LISTENER);n(this,si,"f").on(p.SUBMIT,()=>{t()})},this.mount=e=>{if(!e)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_ELEMENT_IN_MOUNT);s(this,ei,{rows:[]},"f");const{layout:t}=n(this,ri,"f");if((t||[]).reduce((e,t)=>e+t,0)!==n(this,ti,"f").length)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISMATCH_ELEMENT_COUNT_LAYOUT_SUM);let i=0;if(t.forEach((e,t)=>{n(this,ei,"f").rows=[...n(this,ei,"f").rows,{elements:[]}];for(let s=0;s<e;s++)n(this,ei,"f").rows[t].elements.push(n(this,ti,"f")[i]),i++}),n(this,ri,"f").styles&&(n(this,ei,"f").styles=Object.assign({},n(this,ri,"f").styles)),n(this,ri,"f").errorTextStyles&&(n(this,ei,"f").errorTextStyles=Object.assign({},n(this,ri,"f").errorTextStyles)),n(this,li,"f"))return n(this,ai,"f")&&(n(this,ai,"f").unmount(),s(this,ai,null,"f")),s(this,Jt,{},"f"),s(this,ai,n(this,ci,"f").call(this,n(this,ei,"f"),!1),"f"),this.mountContainerElement(e),void s(this,oi,!0,"f");n(this,si,"f").on(C+n(this,Zt,"f"),()=>{s(this,Jt,{},"f"),s(this,ai,n(this,ci,"f").call(this,n(this,ei,"f"),!1),"f"),this.mountContainerElement(e),s(this,oi,!0,"f")})},this.mountContainerElement=e=>{n(this,ai,"f").mount(e)},this.unmount=()=>{var e;[...n(this,ti,"f").map(e=>e.elementName)].forEach(e=>{n(this,ui,"f").call(this,e)}),s(this,ti,[],"f"),s(this,ei,{rows:[]},"f"),s(this,Jt,{},"f"),null===(e=n(this,ai,"f"))||void 0===e||e.unmount(),this.iframe.remove(),s(this,oi,!1,"f"),s(this,li,!1,"f")},this.validate=()=>new Promise((e,t)=>{Object.values(n(this,Jt,"f")).forEach(e=>{if(!e.isMounted())throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED);e.isValidElement()}),this.bus.emit(g+n(this,Zt,"f"),{},t=>{e(t)})}),this.collect=(e={tokens:!0})=>new Promise((t,i)=>{try{if(Xe(n(this,Qt,"f").clientJSON.config),!n(this,oi,"f")){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CARD_FORM_COLLECT_ELEMENT_NOT_MOUNTED);throw r.PayrailsLogger.error(e.message,{error:e}),e}gt(n(this,di,"f")).forEach(e=>{if(!(null==e?void 0:e.isMounted))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING)});if(Object.values(n(this,Jt,"f")).forEach(e=>{e.isValidElement()}),e&&e.tokens&&"boolean"!=typeof e.tokens)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_TOKENS);(null==e?void 0:e.additionalFields)&&Ve(e.additionalFields),(null==e?void 0:e.upsert)&&ze(null==e?void 0:e.upsert),this.bus.emit(E+n(this,Zt,"f"),Object.assign(Object.assign({},e),{tokens:void 0===(null==e?void 0:e.tokens)||e.tokens}),e=>{!e||(null==e?void 0:e.error)?(Fe(`${JSON.stringify(null==e?void 0:e.error)}`,we.ERROR,n(this,ii,"f").logLevel),i(null==e?void 0:e.error)):(Fe(je(a.COLLECT_SUBMIT_SUCCESS,vi),we.LOG,n(this,ii,"f").logLevel),t(e))}),Fe(je(a.EMIT_EVENT,vi,E),we.LOG,n(this,ii,"f").logLevel)}catch(e){Fe(`${e.message}`,we.ERROR,n(this,ii,"f").logLevel),i(e)}}),Ei.set(this,()=>{n(this,si,"f").on(O,e=>{let t;const i=n(this,ti,"f").map((i,n)=>i.elementName===e.elementName?(t=n,Object.assign({elementName:i.elementName},e.elementOptions)):i);n(this,ai,"f")&&n(this,ai,"f").updateElement(Object.assign({},i[t]))})}),this.bus=ye.getEventBus(),s(this,Zt,Rt(),"f"),s(this,Qt,Object.assign(Object.assign({},t),(null==e?void 0:e.fonts)?{fonts:e.fonts}:{}),"f"),s(this,ni,i,"f"),s(this,ii,l,"f"),s(this,ri,e,"f"),s(this,si,new Ie,"f"),this.iframe=Ce({name:`${c}:${n(this,Zt,"f")}:${n(this,ii,"f").logLevel}`}),ge(this.iframe,{src:Te()}),Re(this.iframe,Object.assign({},M)),Fe(je(a.CREATE_COLLECT_CONTAINER,vi),we.LOG,n(this,ii,"f").logLevel);const d=(e,t)=>{e.name===c+n(this,Zt,"f")&&(t(Object.assign(Object.assign({},n(this,Qt,"f")),{clientJSON:Object.assign(Object.assign({},n(this,Qt,"f").clientJSON),{config:Object.assign({},n(this,Qt,"f").clientJSON.config)}),context:n(this,ii,"f")})),s(this,li,!0,"f"),n(this,si,"f")._emit(C+n(this,Zt,"f"),{containerId:n(this,Zt,"f")}),this.bus.target({origin:fe.IFRAME_SECURE_ORGIN}).off(_+n(this,Zt,"f"),d))};this.bus.target({origin:fe.IFRAME_SECURE_ORGIN}).on(_+n(this,Zt,"f"),d),document.body.append(this.iframe),n(this,Ei,"f").call(this)}reset(){this.bus.emit(m+n(this,Zt,"f"),{})}}function Ii(e){this.message=e}Zt=new WeakMap,Jt=new WeakMap,Qt=new WeakMap,ei=new WeakMap,ti=new WeakMap,ii=new WeakMap,ni=new WeakMap,si=new WeakMap,oi=new WeakMap,ri=new WeakMap,ai=new WeakMap,li=new WeakMap,di=new WeakMap,ci=new WeakMap,ui=new WeakMap,hi=new WeakMap,pi=new WeakMap,_i=new WeakMap,Ei=new WeakMap,Ii.prototype=new Error,Ii.prototype.name="InvalidCharacterError";var fi="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new Ii("'atob' failed: The string to be decoded is not correctly encoded.");for(var i,n,s=0,o=0,r="";n=t.charAt(o++);~n&&(i=s%4?64*i+n:n,s++%4)?r+=String.fromCharCode(255&i>>(-2*s&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return r};function Ai(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(fi(e).replace(/(.)/g,function(e,t){var i=t.charCodeAt(0).toString(16).toUpperCase();return i.length<2&&(i="0"+i),"%"+i}))}(t)}catch(e){return fi(t)}}function Li(e){this.message=e}Li.prototype=new Error,Li.prototype.name="InvalidTokenError";const Oi=e=>{try{if(!e)return!1;if(t=e,"[object String]"!==Object.prototype.toString.call(t))return!1;let i=!1;const n=function(e,t){if("string"!=typeof e)throw new Li("Invalid token specified");var i=!0===(t=t||{}).header?0:1;try{return JSON.parse(Ai(e.split(".")[i]))}catch(e){throw new Li("Invalid token specified: "+e.message)}}(e),s=(new Date).getTime()/1e3,o=n.exp;return o&&s>o&&(i=!0),!i}catch(e){return!1}var t};var gi,Ci,Ti,Ri,Ni,Si,bi,Pi,Di,Mi;class wi{constructor(e,t){gi.set(this,void 0),this.config=e,s(this,gi,t,"f")}toJSON(){return{config:this.config,metaData:n(this,gi,"f")}}static fromJSON(e){return new wi(e.config,e.metaData)}}gi=new WeakMap,function(e){e.COLLECT="COLLECT",e.COMPOSABLE="COMPOSABLE"}(Mi||(Mi={}));const ki="Skyflow";class Yi{constructor(e){var t,i;Ci.set(this,void 0),Ti.set(this,Rt()),Ri.set(this,{uuid:n(this,Ti,"f"),clientDomain:window.location.origin}),Ni.set(this,""),Si.set(this,void 0),bi.set(this,void 0),Pi.set(this,void 0),Di.set(this,void 0),this.bus=ye.getEventBus();const d=localStorage.getItem("sdk_version")||"";n(this,Ri,"f").sdkVersion=d,s(this,Ci,new wi(Object.assign({},e),n(this,Ri,"f")),"f"),s(this,bi,(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.logLevel)||De.ERROR,"f"),s(this,Pi,(null===(i=null==e?void 0:e.options)||void 0===i?void 0:i.env)||Me.PROD,"f"),s(this,Di,{},"f");this.bus.on(h,e=>{if(e&&e.errorCode){const t=new o.PayrailsError(e.errorCode,{cause:null==e?void 0:e.originalError});r.PayrailsLogger.error(t.message,{error:t})}}),this.bus.target({origin:fe.IFRAME_SECURE_ORGIN}).on(A+n(this,Ti,"f"),(e,t)=>{Fe(je(a.CAPTURED_BEARER_TOKEN_EVENT,ki),we.LOG,n(this,bi,"f")),!n(this,Ci,"f").config.getBearerToken||n(this,Ni,"f")&&Oi(n(this,Ni,"f"))?(Fe(je(a.REUSE_BEARER_TOKEN,ki),we.LOG,n(this,bi,"f")),t({authToken:n(this,Ni,"f")})):n(this,Ci,"f").config.getBearerToken().then(e=>{Oi(e)?(Fe(je(a.BEARER_TOKEN_RESOLVED,ki),we.LOG,n(this,bi,"f")),s(this,Ni,e,"f"),t({authToken:n(this,Ni,"f")})):(Fe(l.INVALID_BEARER_TOKEN,we.ERROR,n(this,bi,"f")),t({error:l.INVALID_BEARER_TOKEN}))}).catch(e=>{Fe(l.BEARER_TOKEN_REJECTED,we.ERROR,n(this,bi,"f")),t({error:e})})}),Fe(je(a.BEARER_TOKEN_LISTENER,ki),we.LOG,n(this,bi,"f")),Fe(je(a.CURRENT_ENV,ki,n(this,Pi,"f")),we.LOG,n(this,bi,"f")),Fe(je(a.CURRENT_LOG_LEVEL,ki,n(this,bi,"f")),we.LOG,n(this,bi,"f"))}static init(e){var t;const i=(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.logLevel)||De.ERROR;Ke(e),Fe(je(a.INITIALIZE_CLIENT,ki),we.LOG,i);const n=e;var s;n.vaultURL="string"!=typeof(s=e.vaultURL)?s:"/"===(null==s?void 0:s.trim().slice(-1))?s.slice(0,-1):s.trim();const o=new Yi(n);return Fe(je(a.CLIENT_INITIALIZED,ki),we.LOG,i),o}container(e,t){switch(e){case Mi.COLLECT:{const i=new Vt(t,Object.assign(Object.assign({},n(this,Ri,"f")),{clientJSON:n(this,Ci,"f").toJSON(),containerType:e}),n(this,Di,"f"),{logLevel:n(this,bi,"f"),env:n(this,Pi,"f")});return Fe(je(a.COLLECT_CONTAINER_CREATED,ki),we.LOG,n(this,bi,"f")),i}case Mi.COMPOSABLE:{(e=>{if(!e)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_CONTAINER_OPTIONS);if("object"!=typeof e)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COMPOSABLE_CONTAINER_OPTIONS_INVALID);if(!Object.prototype.hasOwnProperty.call(e,"layout"))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_MISSING_COMPOSABLE_LAYOUT_KEY);if(!e.layout)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE);if(!Array.isArray(e.layout))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE);if(0===e.layout.length)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_COMPOSABLE_LAYOUT_ARRAY);e.layout.forEach(e=>{if("number"!=typeof e)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_COMPOSABLE_LAYOUT_TYPE);if(e<0)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_NEGATIVE_VALUES_COMPOSABLE_LAYOUT)})})(t);const i=new yi(t,Object.assign(Object.assign({},n(this,Ri,"f")),{clientJSON:n(this,Ci,"f").toJSON(),containerType:e}),n(this,Di,"f"),{logLevel:n(this,bi,"f"),env:n(this,Pi,"f")});return Fe(je(a.COLLECT_CONTAINER_CREATED,ki),we.LOG,n(this,bi,"f")),i}default:if(!e)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_EMPTY_CONTAINER_TYPE);throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_CONTAINER_TYPE)}}static get ContainerType(){return Mi}static get ElementType(){return R}static get RedactionType(){return Se}static get RequestMethod(){return be}static get LogLevel(){return De}static get EventName(){return Pe}static get Env(){return Me}static get ValidationRuleType(){return ke}}Ci=new WeakMap,Ti=new WeakMap,Ri=new WeakMap,Ni=new WeakMap,Si=new WeakMap,bi=new WeakMap,Pi=new WeakMap,Di=new WeakMap;const Ui=(e,t)=>i(void 0,void 0,void 0,function*(){if(null==e?void 0:e.onDeliveryAddressChanged)try{const i=yield e.onDeliveryAddressChanged(t);if(!i){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onDeliveryAddressChanged resolved to false"});return r.PayrailsLogger.error(e.message,{error:e}),!1}return i}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onDeliveryAddressChanged threw an error",cause:e});return r.PayrailsLogger.error(t.message,{error:t}),!1}return!0}),xi=(e,t)=>i(void 0,void 0,void 0,function*(){try{const i=yield To(e,t);if(!i){const n=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onRequestStart resolved to false"});return Co(e,t,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:n.message}),i}}catch(i){const n=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onRequestStart threw an error",cause:i});return r.PayrailsLogger.error(n.message,{error:n}),Co(e,t,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:n.message}),!1}return!0});let Fi={};class ji{constructor(e,{id:t="",className:i="",dataTestId:n=""}={}){this.subElements=[],this.eventBus=ye.getEventBus();const s=document.createElement(e);t&&(this.id=t,s.setAttribute("id",t)),n&&(this.dataTestId=n,s.setAttribute("data-testid",n)),i&&(Array.isArray(i)?s.setAttribute("class",function(...e){return e.filter(Boolean).join(" ")}(...i)):s.setAttribute("class",i)),this.element=s}get parentElement(){return this.element.parentElement}get selector(){if(!this.id)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING);return`#${this.id}`}mount(e){const t=document.querySelector(e);if(!t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_PARENT_ELEMENT_MISSING,{description:`Element with selector "${e}" not found in in the DOM`});this.clean(),t.appendChild(this.element),this.subElements.forEach(e=>{if(!this.id)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_SUBELEMENTS_RENDER_ERROR);e.mount(this.selector)})}clean(){var e;null===(e=document.getElementById(this.element.id))||void 0===e||e.remove()}unmount(){var e;this.subElements.forEach(e=>e.unmount()),null===(e=this.parentElement)||void 0===e||e.removeChild(this.element)}}class Bi extends ji{tokenize(e){return i(this,void 0,void 0,function*(){const t=yield this.collect(),i=J(),n=i.vaultConfiguration.links.saveInstrument,s=i.token;if(!n.href){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND,{description:"Save instrument URL not available!"});throw r.PayrailsLogger.error(e.message,{error:e}),e}const a=yield this.constructSaveInstrumentBody(t,e);return(yield Ee({url:n.href,token:s,body:a})).res})}}class Vi{static minLength(e,t){return!!(t.minLength&&e.length<t.minLength)}static maxLength(e,t){return!!(t.maxLength&&e.length>t.maxLength)}static required(e,t,i){return!(!t||e)}static pattern(e,t){if(!t.pattern)return!1;return!new RegExp(t.pattern).test(e)}static oneOf(e,t){if(!t.oneOf||0===t.oneOf.length)return!1;return!t.oneOf.map(e=>e.const).includes(e)}}class Gi extends ji{get name(){return this.options.name}get isVisible(){return this._isVisible}get isRequired(){return this._isRequired}constructor(e){super("div",{id:e.id,className:"payrails-dynamic-element-form-field"}),this.options=e,this.errors=[],this._isVisible=!0,this._isRequired=!!this.options.required,this.makeField()}setVisible(e){this._isVisible=e,this.element.style.display=e?"block":"none"}setRequired(e){this._isRequired=e}validate(e=!1){e||this.clearError();const t=[];if(this._isVisible&&this._isRequired){Vi.required(this.value,!0,this.options.property)&&t.push(this.options.errors.required)}if(this.value){Vi.minLength(this.value,this.options.property)&&t.push(this.options.errors.minLength);Vi.maxLength(this.value,this.options.property)&&t.push(this.options.errors.maxLength);Vi.pattern(this.value,this.options.property)&&t.push(this.options.errors.pattern);Vi.oneOf(this.value,this.options.property)&&t.push(this.options.errors.oneOf)}if(e){return 0===t.length}return this.setErrors(t),this.isValid?this.updateStyles("base"):this.updateStyles("invalid"),this.isValid}makeField(){this.createLabel(),this.createComponentContainer(),this.createErrorMessageContainer()}createLabel(){this.label=document.createElement("label"),this.label.textContent=this.options.label,this.label.className="payrails-dynamic-element-form-field-label",this.label.htmlFor=this.options.name,this.element.appendChild(this.label)}createComponentContainer(){this.componentContainer=document.createElement("div"),this.componentContainer.className="payrails-dynamic-element-form-field-component",this.element.appendChild(this.componentContainer)}createErrorMessageContainer(){this.errorMessage=document.createElement("div"),this.errorMessage.className="payrails-dynamic-element-form-field-error",this.errorMessage.style.display="none",this.element.appendChild(this.errorMessage)}setErrors(e){var t;if(this.errors=e,this.errorMessage){for(;this.errorMessage.firstChild;)this.errorMessage.removeChild(this.errorMessage.firstChild);if(e.length>0){const t=document.createElement("ul");e.forEach(e=>{var i;const n=document.createElement("li");n.textContent=e,(null===(i=this.options.styles)||void 0===i?void 0:i.errors)&&Object.assign(n.style,this.options.styles.errors),t.appendChild(n)}),this.errorMessage.appendChild(t),this.errorMessage.style.display="block"}else this.errorMessage.style.display="none";(null===(t=this.options.styles)||void 0===t?void 0:t.errors)&&Object.assign(this.errorMessage.style,this.options.styles.errors),this.isValid?this.element.classList.remove("error"):this.element.classList.add("error")}}clearError(){this.errors=[],this.errorMessage&&(this.errorMessage.textContent="",this.errorMessage.style.display="none",this.element.classList.remove("error"))}injectElement(e){this.componentContainer&&(e.id=this.options.name,e.setAttribute("name",this.options.name),this.componentContainer.appendChild(e),this.options.events.onReady(this.value))}get isValid(){return 0===this.errors.length}}class Xi extends Gi{constructor(e){super(e),this.makeComponent(),this.attachEvents()}makeComponent(){this.component=document.createElement("input"),this.component.type="text",this.component.className="payrails-dynamic-element-input",this.component.placeholder=this.options.placeholder,void 0!==this.options.value&&(this.component.value=this.options.value),this.options.readOnly&&(this.component.readOnly=!0,this.component.classList.add("payrails-dynamic-element-input--readonly")),this.updateStyles("base"),this.injectElement(this.component)}attachEvents(){this.component&&(this.component.addEventListener("change",e=>{var t,i;e.stopPropagation(),null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onChange)||void 0===i||i.call(t,this.value)}),this.component.addEventListener("input",()=>{var e,t;this.updateValidationState(),null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onChange)||void 0===t||t.call(e,this.value)}),this.component.addEventListener("blur",()=>{var e,t;this.updateStyles("base"),this.updateValidationState(),null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onBlur)||void 0===t||t.call(e)}),this.component.addEventListener("focus",()=>{this.updateStyles("focus")}))}updateValidationState(){this.validate(),this.isValid?(this.updateStyles("complete"),this.updateCustomValidity(!0)):(this.updateStyles("invalid"),this.updateCustomValidity(!1))}updateStyles(e){var t,i;(null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.input)||void 0===i?void 0:i[e])&&this.component&&Object.assign(this.component.style,this.options.styles.input[e])}updateCustomValidity(e){this.component&&this.component.setCustomValidity(e?"":this.errors.join(", "))}get value(){var e;return(null===(e=this.component)||void 0===e?void 0:e.value)||""}set value(e){this.component&&(this.component.value=e,this.updateValidationState())}}class Hi extends Gi{get value(){var e;return(null===(e=this.component)||void 0===e?void 0:e.value)||""}set value(e){this.component&&(this.component.value=e)}constructor(e){super(e),this.selectOptions=e.options,this.makeComponent(),this.attachEvents()}attachEvents(){this.component&&(this.component.addEventListener("change",e=>{var t,i;e.stopPropagation(),this.validate(),null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onChange)||void 0===i||i.call(t,this.value)}),this.component.addEventListener("blur",()=>{var e,t;this.updateStyles("base"),this.validate(),null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onBlur)||void 0===t||t.call(e)}),this.component.addEventListener("focus",()=>{this.updateStyles("focus")}))}makeComponent(){this.component=document.createElement("select"),this.component.className="payrails-dynamic-element-select",this.selectOptions.forEach(e=>{const t=document.createElement("option");t.value=e.value,t.textContent=e.label,this.component&&this.component.appendChild(t)}),void 0!==this.options.value&&(this.component.value=this.options.value),this.options.readOnly&&(this.component.disabled=!0,this.component.classList.add("payrails-dynamic-element-select--readonly")),this.updateStyles("base"),this.injectElement(this.component)}updateStyles(e){var t,i;(null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.select)||void 0===i?void 0:i[e])&&this.component&&Object.assign(this.component.style,this.options.styles.select[e])}}class zi extends Gi{get value(){return this.currentValue}set value(e){this.currentValue!==e&&(this.currentValue=e,this.updateTabStates())}constructor(e){var t,i,n,s;super(e),this.tabs=new Map,this.options=e,this.tabOptions=e.options,this.currentValue=(null===(t=this.tabOptions[0])||void 0===t?void 0:t.value)||"",this.component=document.createElement("div"),this.component.className="payrails-dynamic-element-tabs",(null===(s=null===(n=null===(i=this.options.styles)||void 0===i?void 0:i.tabs)||void 0===n?void 0:n.container)||void 0===s?void 0:s.base)&&Object.assign(this.component.style,this.options.styles.tabs.container.base),this.makeTabs(),this.injectElement(this.component)}createTab(e){var t,i,n;const s=document.createElement("button");return s.type="button",s.textContent=e.label,s.className="payrails-dynamic-element-tab",(null===(n=null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.tabs)||void 0===i?void 0:i.tab)||void 0===n?void 0:n.base)&&Object.assign(s.style,this.options.styles.tabs.tab.base),s.addEventListener("click",t=>{var i,n;t.stopPropagation(),t.stopImmediatePropagation(),this.value=e.value,this.options.events.onChange(this.value),null===(n=null===(i=this.options.events)||void 0===i?void 0:i.onBlur)||void 0===n||n.call(i)}),s}makeTabs(){this.component.innerHTML="",this.tabs.clear(),this.tabOptions.forEach(e=>{const t=this.createTab(e);this.component.appendChild(t),this.tabs.set(e.value,t)}),this.updateTabStates()}updateTabStates(){this.tabs.forEach((e,t)=>{var i,n,s,o,r,a;e.classList.toggle("active",t===this.currentValue),e.removeAttribute("style"),t===this.currentValue&&(null===(s=null===(n=null===(i=this.options.styles)||void 0===i?void 0:i.tabs)||void 0===n?void 0:n.tab)||void 0===s?void 0:s.active)?Object.assign(e.style,this.options.styles.tabs.tab.active):(null===(a=null===(r=null===(o=this.options.styles)||void 0===o?void 0:o.tabs)||void 0===r?void 0:r.tab)||void 0===a?void 0:a.base)&&Object.assign(e.style,this.options.styles.tabs.tab.base)})}updateStyles(){}}var $i;!function(e){e.GET="GET"}($i||($i={}));const qi=e=>i(void 0,[e],void 0,function*({url:e}){const t={method:$i.GET},i=yield fetch(e,t),n=yield i.json();if(429===i.status)throw new Ki(e,$i.GET);if(!i.ok)throw new Wi(e,$i.GET);return{ok:i.ok,req:Object.assign({url:e},t),res:n}});class Wi extends o.PayrailsError{constructor(e,t){super(o.ERROR_CODES.PAYRAILS_API_UNSUCCESSFUL,{description:`[${t}] ${e} unsuccessful`})}}class Ki extends o.PayrailsError{constructor(e,t){super(o.ERROR_CODES.PAYRAILS_API_TOO_MANY_REQUESTS,{description:`[${t}] ${e} too many requests`})}}const Zi="ui:position";function Ji(e){return i(this,void 0,void 0,function*(){if(!e||"object"!=typeof e)return e;const t=Qi(e);if(0===t.size)return e;const n=yield function(e){return i(this,void 0,void 0,function*(){const t=new Map,n=Array.from(e).map(e=>i(this,void 0,void 0,function*(){try{const i=(yield qi({url:e})).res;t.set(e,i)}catch(t){console.warn(`Failed to fetch schema from ${e}:`,t)}}));return yield Promise.all(n),t})}(t);return en(e,n)})}function Qi(e,t=new Set){return Array.isArray(e)?e.forEach(e=>Qi(e,t)):e&&"object"==typeof e&&(e.$ref&&/^https?:\/\//.test(e.$ref)&&t.add(e.$ref),Object.values(e).forEach(e=>Qi(e,t))),t}function en(e,t){if(Array.isArray(e))return e.map(e=>en(e,t));if(e&&"object"==typeof e){if(e.$ref&&/^https?:\/\//.test(e.$ref)){if(!t.has(e.$ref))return;const i=en(t.get(e.$ref),t);return void 0!==e[Zi]?Object.assign(Object.assign({},i),{[Zi]:e[Zi]}):i}const i={};for(const[n,s]of Object.entries(e)){const e=en(s,t);void 0!==e&&(i[n]=e)}return i}return e}function tn(e,t,i){var n,s;const o=null===(n=e.oneOf)||void 0===n?void 0:n.find(e=>{var n,s;return(null===(s=null===(n=e.properties)||void 0===n?void 0:n[t])||void 0===s?void 0:s.const)===i});if(!o)return{};const r=new Set(o.required||[]),a=new Set((null===(s=e.oneOf)||void 0===s?void 0:s.flatMap(e=>e.required||[]))||[]);return Object.fromEntries(Array.from(a).filter(e=>e!==t).map(e=>[e,{isVisible:r.has(e),isRequired:r.has(e)}]))}function nn(e,t,i,n){var s,o,r,a,l,d,c,u,h,p,_,E;const m=null!==(a=null!==(r=null===(o=null===(s=null==n?void 0:n.fields)||void 0===s?void 0:s[e])||void 0===o?void 0:o.label)&&void 0!==r?r:t.title)&&void 0!==a?a:`${e}:label`,v=null!==(c=null===(d=null===(l=null==n?void 0:n.fields)||void 0===l?void 0:l[e])||void 0===d?void 0:d.placeholder)&&void 0!==c?c:`${e}:placeholder`,y=X({required:"This field is required",minLength:"This field is too short",maxLength:"This field is too long",pattern:"This field is invalid",oneOf:"This field is invalid"},null!==(u=t.errorMessage)&&void 0!==u?u:{},null!==(h=null==n?void 0:n.errors)&&void 0!==h?h:{},null!==(E=null===(_=null===(p=null==n?void 0:n.fields)||void 0===p?void 0:p[e])||void 0===_?void 0:_.errors)&&void 0!==E?E:{}),I=void 0!==t.defaultValue&&null!==t.defaultValue&&""!==t.defaultValue;return Object.assign(Object.assign({id:`payrails-dynamic-element-field:${e}`,name:e,property:t,label:m,placeholder:v},I?{value:String(t.defaultValue)}:{}),{errors:y,required:i})}function sn(e){var t,i;return null!==(i=null===(t=e.oneOf)||void 0===t?void 0:t.map(e=>({value:String(e.const),label:e.title})))&&void 0!==i?i:[]}class on extends Bi{constructor(e,t,i){super("div",{id:"payrails-dynamic-element-form",className:"payrails-dynamic-element-form"}),this.options=e,this.formConfig=t,this.returnInfo=i,this.formFields=new Map,this.formData={},this.__schema=null,this._previousFormValidState=null}collect(){return i(this,void 0,void 0,function*(){if(!this.parentElement)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_NOT_MOUNTED,{description:"Dynamic element form is not mounted"});let e={};const t=Object.fromEntries(this.formFields.entries());if(Object.values(t).forEach(t=>{t.validate(),t.isVisible&&(e=Xt(e,t.name,t.value))}),!this.isFormValid())throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_FORM_INVALID,{description:"Dynamic element form is invalid"});return e})}constructSaveInstrumentBody(e,t){return i(this,void 0,void 0,function*(){var i,n;return{data:e,merchantReference:q.response.merchantReference,holderReference:q.response.holderReference,holderId:q.response.holderId,paymentMethod:null===(i=this.options.paymentMethod)||void 0===i?void 0:i.paymentMethodCode,storeInstrument:null!==(n=null==t?void 0:t.storeInstrument)&&void 0!==n&&n}})}isFormValid(){return Object.values(this.formFields).filter(e=>e.isVisible).every(e=>e.isValid)}isFormValidSilent(){return Object.values(this.formFields).filter(e=>e.isVisible).every(e=>e.validate(!0))}checkAndTriggerValidationChange(){var e,t;const i=this.isFormValidSilent();this._previousFormValidState!==i&&(this._previousFormValidState=i,null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onValidationChange)||void 0===t||t.call(e,i))}mount(e){const t=Object.create(null,{mount:{get:()=>super.mount}});return i(this,void 0,void 0,function*(){var i,n;yield this.makeForm(),t.mount.call(this,e),null===(n=null===(i=this.options.events)||void 0===i?void 0:i.onReady)||void 0===n||n.call(i)})}makeForm(){return i(this,void 0,void 0,function*(){var e;if(!(null===(e=this.formConfig)||void 0===e?void 0:e.schema))return;this.__schema=yield Ji(this.formConfig.schema);const t=function(e,t){const i={};if(!function(e){return e&&"object"==typeof e}(e))return i;const n=(e,s)=>{var o;if(e.properties)for(const[r,a]of Object.entries(e.properties)){const l=s?`${s}.${r}`:r,d=a;"object"===d.type&&d.properties?n(d,l):i[l]=nn(l,d,(null===(o=e.required)||void 0===o?void 0:o.includes(r))||!1,t)}};return n(e,""),i}(this.__schema,this.options.translations),i=Object.values(t).sort((e,t)=>{var i,n;return(null!==(i=e.property[Zi])&&void 0!==i?i:0)-(null!==(n=t.property[Zi])&&void 0!==n?n:0)});for(const e of i)this.createField(e);this.evaluateDependencies()})}createField(e){const t=this.createFieldSync(e);t&&(this.formFields.set(e.name,t),this.subElements.push(t))}createFieldSync(e){return t=e.property,Boolean(t.oneOf&&t.oneOf.length>0)?this.createOneOfField(e):function(e){return"string"===e.type&&!e.oneOf}(e.property)?this.createStringField(e):null;var t}createOneOfField(e){const t="bankAccount.holder.type"===e.name?"tabs":"select";return this.createFieldByType(e,t)}createStringField(e){return this.createFieldByType(e,"input")}createFieldByType(e,t){var i,n;const s=this.extractStyles(e.name,t),o=this.makeFieldEvents(e.name),r=X(e,null!==(n=null===(i=this.options.fieldOverrides)||void 0===i?void 0:i[e.name])&&void 0!==n?n:{});switch(t){case"tabs":return new zi(Object.assign(Object.assign({},r),{events:o,styles:s,options:sn(e.property)}));case"select":return new Hi(Object.assign(Object.assign({},r),{events:o,styles:s,options:sn(e.property)}));case"input":return new Xi(Object.assign(Object.assign({},r),{events:o,styles:s}));default:throw new Error(`Unsupported component type: ${t}`)}}extractStyles(e,t){var i,n,s,o,r,a,l,d,c,u,h,p,_,E;const m=X({},null!==(s=null===(n=null===(i=this.options.styles)||void 0===i?void 0:i.all)||void 0===n?void 0:n[t])&&void 0!==s?s:{},null!==(l=null===(a=null===(r=null===(o=this.options.styles)||void 0===o?void 0:o.fields)||void 0===r?void 0:r[e])||void 0===a?void 0:a[t])&&void 0!==l?l:{}),v=X({},null!==(u=null===(c=null===(d=this.options.styles)||void 0===d?void 0:d.all)||void 0===c?void 0:c.errors)&&void 0!==u?u:{},null!==(E=null===(_=null===(p=null===(h=this.options.styles)||void 0===h?void 0:h.fields)||void 0===p?void 0:p[e])||void 0===_?void 0:_.errors)&&void 0!==E?E:{});return{[t]:m,errors:v}}makeFieldEvents(e){return{onChange:(t=>{this.formData=Xt(this.formData,e,t),this.evaluateDependencies()}).bind(this),onReady:(t=>{this.formData=Xt(this.formData,e,t)}).bind(this),onBlur:(()=>{this.checkAndTriggerValidationChange()}).bind(this)}}evaluateDependencies(){if(!this.__schema)return;const e=function(e,t){const i={};if(!e.dependentSchemas)return i;for(const[n,s]of Object.entries(e.dependentSchemas)){const e=Gt(t,n);if(s.oneOf){const t=tn(s,n,e);Object.assign(i,t)}}return i}(this.__schema,this.formData);for(const[t,i]of Object.entries(e)){const e=this.formFields.get(t);e&&(e.setVisible(i.isVisible),e.setRequired(i.isRequired))}}}const rn={fields:{email:{label:"Email",placeholder:"you@example.com"},line1:{label:"Address line 1",placeholder:"Street and number"},line2:{label:"Address line 2",placeholder:"Apartment, suite, etc."},city:{label:"City",placeholder:"City"},state:{label:"State / region",placeholder:"State / region"},postalCode:{label:"Postal code",placeholder:"Postal code"},country:{label:"Country",placeholder:"Select a country"}}};class an extends ji{constructor(e){super("div",{className:"payrails-billing-address-form-title"}),this.element.innerText=e}}class ln extends ji{static get current(){return ln._current}static reset(){ln._current=void 0}constructor(e){var t,i,n;super("div",{id:"payrails-billing-address-form",className:"payrails-billing-address-form"}),this.form=new on({styles:e.styles,translations:X(rn,null!==(t=e.translations)&&void 0!==t?t:{}),fieldOverrides:ln.toFieldOverrides(e.schema),events:{onReady:null===(i=e.events)||void 0===i?void 0:i.onReady}},{schema:e.schema}),this.subElements.push(new an(null!==(n=e.title)&&void 0!==n?n:"Billing Address"),this.form)}static toFieldOverrides(e){const t=Object.fromEntries(Object.entries((null==e?void 0:e.properties)||{}).map(([e,t])=>[e,null==t?void 0:t.defaultValue]));return Object.fromEntries(Object.entries(t).filter(([,e])=>e).map(([e,t])=>[e,{value:t,readOnly:!0}]))}collect(){return i(this,void 0,void 0,function*(){ln._current=void 0;const e=yield this.form.collect();return ln._current=e,e})}}const dn=(e=window,t=navigator)=>{const i={userAgent:t.userAgent,language:t.language,screenHeight:e.screen.height,screenWidth:e.screen.width,colorDepth:e.screen.colorDepth,timeZoneOffset:(new Date).getTimezoneOffset(),acceptHeader:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",javaEnabled:!1,javaScriptEnabled:!0},n=cn(t.userAgent);return n&&(i.osType=n),i},cn=e=>/android/i.test(e)?"android":/iphone|ipad|ipod/i.test(e)?"ios":/windows|linux|mac/i.test(e)?"web":void 0,un={success:"https://assets.payrails.io/html/payrails-success.html",error:"https://assets.payrails.io/html/payrails-error.html",cancel:"https://assets.payrails.io/html/payrails-cancel.html",pending:"https://assets.payrails.io/html/payrails-pending.html"};class hn{static getInstance(){return this.instance||(this.instance=new hn),this.instance}constructor(e=""){this.lastActionUpdateTime=e,hn.instance=this}}class pn{constructor(e=un,t=680,i=60,n=2e3,s=5,o=hn.getInstance()){this.returnLinks=e,this.POLL_INTERVAL=t,this.MAX_POLL_ATTEMPTS=i,this.POLL_INITIAL_DELAY=n,this.POLL_ERROR_COUNT_MULTIPLIER=s,this.paymentStatus=o}pay(e){return i(this,void 0,void 0,function*(){try{const t=(yield this.authorize(e)).res.links.execution;return yield this.pollForAuthorizationResult(t)}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAY_ERROR,{cause:e});throw r.PayrailsLogger.error(t.message,{error:t}),e}})}payout(e){return i(this,void 0,void 0,function*(){try{const t=(yield this.executePayout(e)).res.links.execution;return yield this.pollForAuthorizationResult(t)}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_PAYOUT_ERROR,{cause:e});throw r.PayrailsLogger.error(t.message,{error:t}),e}})}confirm(e){return i(this,arguments,void 0,function*(e,t={}){try{const i=yield re({url:e,method:oe.POST,token:J().token,body:{data:t}}),n=yield this.pollForAuthorizationResult(i.res.links.execution);if(n.finalState)return n;const s=n.response.status.slice().sort((e,t)=>new Date(t.time).getTime()-new Date(e.time).getTime())[0].time,{res:o}=yield this.getExecution(i.res.links.execution,s);return{finalState:o.status.find(({code:e,time:t})=>["authorizeSuccessful","authorizeFailed"].includes(e)&&new Date(t)>new Date(s)),response:o}}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_PAYMENT_EXECUTOR_CONFIRM_ERROR,{cause:e});throw r.PayrailsLogger.error(t.message,{error:t}),e}})}getExecution(e,t){return i(this,arguments,void 0,function*(e,t,i=0,n){if(i>this.MAX_POLL_ATTEMPTS)throw new ce(e,oe.GET);0===i&&t?yield this.wait(this.POLL_INITIAL_DELAY,n):yield this.wait(this.POLL_INTERVAL,n);try{const s=yield re({url:e,token:J().token});if(t){if(!s.res.status.find(({time:e})=>new Date(e)>new Date(t)))return yield this.wait(this.POLL_INTERVAL,n),this.getExecution(e,t,i+1,n)}return s}catch(s){if(s instanceof le)return yield this.wait(this.POLL_INTERVAL,n),this.getExecution(e,t,i+this.POLL_ERROR_COUNT_MULTIPLIER,n);if(s instanceof de)return yield this.wait(this.POLL_INTERVAL*i,n),this.getExecution(e,t,i+1,n);throw s}})}createApplePaySession(e){return i(this,void 0,void 0,function*(){return re({url:e.requestUrl,method:oe.POST,token:J().token,body:{integrationType:"api",paymentMethodCode:"applePay",amount:J().amount,meta:{sessionURL:e.sessionUrl,clientContext:{host:e.clientDomain||window.location.host}}}})})}authorize(e){return i(this,void 0,void 0,function*(){if(!q.authorizeLink||!J().amount){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND,{description:"SDK was not initialized with workflow execution"});throw r.PayrailsLogger.error(e.message,{error:e}),e}const{success:t=un.success,error:i=un.error,cancel:n=un.cancel,pending:s=un.pending}=this.returnLinks,a=this.attachMetaToPaymentComposition({amount:J().amount,paymentComposition:e,returnInfo:{success:t,cancel:n,error:i,pending:s}});return re({url:q.authorizeLink,method:oe.POST,token:J().token,body:a})})}executePayout(e){return i(this,void 0,void 0,function*(){if(!q.payoutLink||!J().amount){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_WORKFLOW_EXECUTION_NOT_FOUND,{description:"SDK was not initialized with workflow execution"});throw r.PayrailsLogger.error(e.message,{error:e}),e}const t={amount:J().amount,payoutComposition:e};return re({url:q.payoutLink,method:oe.POST,token:J().token,body:t})})}getFirstNonFraudNetId(e){const t=Object.keys(e||{}).find(e=>"fraudNet"!==e);return t?e[t]:null}attachMetaToPaymentComposition(e){var t,i,n,s,o,r,a;let l;l=e.paymentComposition[0].paymentMethodCode===exports.PAYMENT_METHOD_CODES.PAYPAL&&(null===(i=null===(t=window.PayrailsData)||void 0===t?void 0:t.riskIds)||void 0===i?void 0:i.fraudNet)?null===(s=null===(n=window.PayrailsData)||void 0===n?void 0:n.riskIds)||void 0===s?void 0:s.fraudNet:this.getFirstNonFraudNetId(null===(o=window.PayrailsData)||void 0===o?void 0:o.riskIds)||"";const d=Object.assign(Object.assign({},e),{meta:Object.assign(Object.assign({},q.getUpdatedMeta()),e.meta)});!1!==(null===(r=Fi.telemetry)||void 0===r?void 0:r.collectMetadata)&&(d.meta=Object.assign(Object.assign({},d.meta),{clientContext:Object.assign(Object.assign({},(null===(a=d.meta)||void 0===a?void 0:a.clientContext)||{}),dn())})),l&&(d.meta.risk={sessionId:l});const c=ln.current;return c&&(d.paymentComposition=d.paymentComposition.map(e=>{var t,i;return(null===(t=e.paymentInstrumentData)||void 0===t?void 0:t.billingAddress)?e:Object.assign(Object.assign({},e),{paymentInstrumentData:Object.assign(Object.assign({},null!==(i=e.paymentInstrumentData)&&void 0!==i?i:{}),{billingAddress:c})})})),d}wait(e,t){return i(this,void 0,void 0,function*(){var i;if(null==t?void 0:t.aborted)throw null!==(i=t.reason)&&void 0!==i?i:new DOMException("Aborted","AbortError");return new Promise((i,n)=>{const s=setTimeout(()=>{null==t||t.removeEventListener("abort",o),i()},e),o=()=>{var e;clearTimeout(s),null==t||t.removeEventListener("abort",o),n(null!==(e=null==t?void 0:t.reason)&&void 0!==e?e:new DOMException("Aborted","AbortError"))};null==t||t.addEventListener("abort",o,{once:!0})})})}pollForAuthorizationResult(e){return i(this,arguments,void 0,function*(e,t=0,i=["authorizePending","authorizeSuccessful","authorizeFailed","payoutPending","payoutSuccessful","payoutFailed"],n){var s;const a=null==n?void 0:n.signal;if(null==a?void 0:a.aborted)throw null!==(s=a.reason)&&void 0!==s?s:new DOMException("Aborted","AbortError");const l=(yield this.getExecution(e,this.paymentStatus.lastActionUpdateTime,t,a)).res,d=l.status,c=d.find(({code:e})=>"authorizeRequested"===e||"payoutRequested"===e);if(!c&&t<10)return yield this.wait(this.POLL_INTERVAL,a),this.pollForAuthorizationResult(e,t+1,i,{signal:a});if(!c){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_API_AUTHORIZATION_NOT_REQUESTED);throw r.PayrailsLogger.error(e.message,{error:e}),e}const u=d.find(({code:e,time:t})=>"confirmRequested"===e&&new Date(t)>new Date(c.time)),h=u?u.time:c.time,p=d.filter(({code:e,time:t})=>i.includes(e)&&new Date(t)>new Date(h)).sort((e,t)=>new Date(t.time).getTime()-new Date(e.time).getTime())[0];return p?(this.paymentStatus.lastActionUpdateTime=p.time,{finalState:p,response:l}):this.pollForAuthorizationResult(e,t+1,i,{signal:a})})}}
5
5
  /*!
6
6
  * paypal-js v5.1.4 (2022-11-29T23:08:21.847Z)
7
7
  * Copyright 2020-present, PayPal, Inc. All rights reserved.
@@ -17,8 +17,8 @@ Copyright (c) 2022 Skyflow, Inc.
17
17
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
18
  * See the License for the specific language governing permissions and
19
19
  * limitations under the License.
20
- */function un(e){var t="https://www.paypal.com/sdk/js";e.sdkBaseURL&&(t=e.sdkBaseURL,delete e.sdkBaseURL),function(e){var t=e["merchant-id"],i=e["data-merchant-id"],n="",s="";Array.isArray(t)?t.length>1?(n="*",s=t.toString()):n=t.toString():"string"==typeof t&&t.length>0?n=t:"string"==typeof i&&i.length>0&&(n="*",s=i);e["merchant-id"]=n,e["data-merchant-id"]=s}(e);var i=Object.keys(e).filter(function(t){return void 0!==e[t]&&null!==e[t]&&""!==e[t]}).reduce(function(t,i){var n=e[i].toString();return"data-"===i.substring(0,5)?t.dataAttributes[i]=n:t.queryParams[i]=n,t},{queryParams:{},dataAttributes:{}}),n=i.queryParams,s=i.dataAttributes;return{url:"".concat(t,"?").concat(pn(n)),dataAttributes:s}}function pn(e){var t="";return Object.keys(e).forEach(function(i){0!==t.length&&(t+="&"),t+=i+"="+e[i]}),t}function hn(e,t){void 0===t&&(t={});var i=document.createElement("script");return i.src=e,Object.keys(t).forEach(function(e){i.setAttribute(e,t[e]),"data-csp-nonce"===e&&i.setAttribute("nonce",t["data-csp-nonce"])}),i}function _n(e,t){if(void 0===t&&(t=En()),vn(e,t),"undefined"==typeof window)return t.resolve(null);var i=un(e),n=i.url,s=i.dataAttributes,o=s["data-namespace"]||"paypal",r=mn(o);return function(e,t){var i=document.querySelector('script[src="'.concat(e,'"]'));if(null===i)return null;var n=hn(e,t),s=i.cloneNode();if(delete s.dataset.uidAuto,Object.keys(s.dataset).length!==Object.keys(n.dataset).length)return null;var o=!0;return Object.keys(s.dataset).forEach(function(e){s.dataset[e]!==n.dataset[e]&&(o=!1)}),o?i:null}(n,s)&&r?t.resolve(r):function(e,t){void 0===t&&(t=En());vn(e,t);var i=e.url,n=e.attributes;if("string"!=typeof i||0===i.length)throw new Error("Invalid url.");if(void 0!==n&&"object"!=typeof n)throw new Error("Expected attributes to be an object.");return new t(function(e,t){if("undefined"==typeof window)return e();!function(e){var t=e.url,i=e.attributes,n=e.onSuccess,s=e.onError,o=hn(t,i);o.onerror=s,o.onload=n,document.head.insertBefore(o,document.head.firstElementChild)}({url:i,attributes:n,onSuccess:function(){return e()},onError:function(){var e=new Error('The script "'.concat(i,'" failed to load.'));return window.fetch?fetch(i).then(function(i){return 200===i.status&&t(e),i.text()}).then(function(e){var i=function(e){var t=e.split("/* Original Error:")[1];return t?t.replace(/\n/g,"").replace("*/","").trim():e}(e);t(new Error(i))}).catch(function(e){t(e)}):t(e)}})})}({url:n,attributes:s},t).then(function(){var e=mn(o);if(e)return e;throw new Error("The window.".concat(o," global variable is not available."))})}function En(){if("undefined"==typeof Promise)throw new Error("Promise is undefined. To resolve the issue, use a Promise polyfill.");return Promise}function mn(e){return window[e]}function vn(e,t){if("object"!=typeof e||null===e)throw new Error("Expected an options object.");if(void 0!==t&&"function"!=typeof t)throw new Error("Expected PromisePonyfill to be a function.")}var yn;!function(e){e.ApplePay="https://applepay.cdn-apple.com/jsapi/v1.3.2/apple-pay-sdk.js",e.GooglePay="https://pay.google.com/gp/p/js/pay.js",e.PayPal="paypal-sdk",e.Lean="https://cdn.leantech.me/link/loader/prod/ae/latest/lean-link-loader.min.js"}(yn||(yn={}));class In{static load(e,i){const n=e.toString(),s=In.scriptMap.get(n);if(s)return s;const o=(()=>t(this,void 0,void 0,function*(){try{if(e===yn.PayPal){if(!i)throw new Error("PayPal config is required");return yield In.loadPayPalScript(i)}return yield In.loadScript(e)}finally{In.scriptMap.delete(n)}}))();return In.scriptMap.set(n,o),o}static reset(){In.scriptMap.clear()}static invalidate(e){var t;In.scriptMap.delete(e.toString());const i=In.getScriptKey(e);In.scriptMap.delete(i),null===(t=document.getElementById(i))||void 0===t||t.remove()}static preloadCardForm(){const e="https://assets.payrails.io/739d580/card";[[`${e}/index.js`,"payrails-iframe-js-v2"],[`${e}/index.html`,"payrails-iframe-html-v2"]].forEach(([e,t])=>{if(!document.getElementById(t)){const i=document.createElement("link");i.id=t,i.rel="preload",i.as="script",i.href=e,document.head.appendChild(i)}})}static loadScript(e){const t=In.getScriptKey(e);if(In.scriptMap.has(t))return In.scriptMap.get(t);const i=document.createElement("script");i.src=e,i.id=t;const n=In.sdkScriptAttributes[e];n&&Object.entries(n).forEach(([e,t])=>{i.setAttribute(e,t)});const s=new Promise((t,n)=>{i.onload=()=>t(),i.onerror=t=>n(In.logLoadError(e,new Error(t.toString())))}).catch(e=>{throw In.scriptMap.delete(t),i.remove(),e});return In.scriptMap.set(t,s),document.body.appendChild(i),s}static getScriptKey(e){return`payrails-script-${JSON.stringify(e)}`}static loadPayPalScript(e){return t(this,arguments,void 0,function*({clientId:e,currency:t,vault:i,intent:n,locale:r}){let a;for(let l=0;l<=In.PAYPAL_MAX_RETRIES;l++){l>0&&(In.removePayPalScriptElements(),yield In.delay(In.PAYPAL_BASE_DELAY_MS*Math.pow(2,l-1)));try{const s=yield _n(Object.assign({"client-id":e,components:"buttons,funding-eligibility",intent:n,currency:t,vault:i,"data-namespace":"payrailsPaypal"},r&&{locale:r}));if(s)return s;a=new Error("The window.payrailsPaypal global variable is not available.")}catch(e){a=e}const d=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR,{cause:a});o.PayrailsLogger.error(`PayPal SDK load attempt ${l+1}/${In.PAYPAL_MAX_RETRIES+1} failed`,{error:d})}throw In.logLoadError(yn.PayPal,a)})}static removePayPalScriptElements(){document.querySelectorAll('script[src*="paypal.com/sdk/js"]').forEach(e=>e.remove())}static delay(e){return new Promise(t=>setTimeout(t,e))}constructor(){}static logLoadError(e,t){const i=new Map([[yn.ApplePay,s.ERROR_CODES.PAYRAILS_CLIENT_APPLEPAY_LOADING_ERROR],[yn.GooglePay,s.ERROR_CODES.PAYRAILS_CLIENT_GPAY_LOADING_ERROR],[yn.PayPal,s.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR]]),n=new s.PayrailsError(i.get(e)||s.ERROR_CODES.PAYRAILS_CLIENT_UNKNOWN_ERROR,{cause:t,description:null==t?void 0:t.message});return o.PayrailsLogger.error(n.message,{error:n}),n}}In.scriptMap=new Map,In.sdkScriptAttributes={[yn.ApplePay]:{crossorigin:"anonymous",integrity:"sha384-DZRWMZLyVXr+7shJfal8pIG2v4KisLoSWFjZQMUv0+GWaCwoa82qeHsWrbBIUDPU"}},In.PAYPAL_MAX_RETRIES=2,In.PAYPAL_BASE_DELAY_MS=1e3;const fn=/^[a-zA-Z]+([_-][a-zA-Z0-9]+)*$/,An=e=>e.replace("_","-"),Ln=e=>{if(e&&fn.test(e))return e},gn=e=>{var t,i;const n=Ln(e)||Ln(null===(i=null===(t=le.meta)||void 0===t?void 0:t.customer)||void 0===i?void 0:i.language)||"en-GB";return An(n)};class On extends Ui{constructor(e){super("span",{id:e.id,className:"payrails-store-instrument",dataTestId:e.dataTestId}),this.options=e,this.createHTML(),this.applyStyles(),this.addListeners()}get isChecked(){var e;return!!(null===(e=this.element.querySelector("input"))||void 0===e?void 0:e.checked)}createHTML(){var e,t,i,n,s,o,r,a,l,d;const c=(null===(i=null===(t=null===(e=this.options)||void 0===e?void 0:e.translations)||void 0===t?void 0:t.labels)||void 0===i?void 0:i.saveInstrument)||(null===(o=null===(s=null===(n=this.options)||void 0===n?void 0:n.translations)||void 0===s?void 0:s.labels)||void 0===o?void 0:o.storeInstrument)||"Save instrument for future payments",u=`${this.id}-checkbox`,p=`${this.dataTestId}-checkbox`;(null===(l=null===(a=null===(r=this.options)||void 0===r?void 0:r.translations)||void 0===a?void 0:a.labels)||void 0===l?void 0:l.saveInstrument)&&console.warn("The saveInstrument label is deprecated, please use storeInstrument instead");const h="checked"==(null===(d=this.options)||void 0===d?void 0:d.defaultStoreInstrumentState);this.element.innerHTML=`<label for="${u}"><input type="checkbox" id="${u}" name="${u}" data-testid="${p}" class="payrails-store-instrument-checkbox">${c}</label>`,h&&(this.element.querySelector("input").checked=!0)}applyStyles(){var e,t;Object.keys((null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.storeInstrumentCheckbox)||{}).forEach(e=>{var t,i,n;this.element.style[e]=null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.styles)||void 0===i?void 0:i.storeInstrumentCheckbox)||void 0===n?void 0:n[e]})}addListeners(){this.element.addEventListener("change",e=>{var t,i,n,s;(null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onSaveInstrumentCheckboxChanged)&&(null===(s=null===(n=this.options)||void 0===n?void 0:n.events)||void 0===s||s.onSaveInstrumentCheckboxChanged({checked:this.isChecked})),e.stopPropagation(),e.stopImmediatePropagation()}),this.element.addEventListener("click",e=>{e.stopPropagation(),e.stopImmediatePropagation()})}}class Tn extends Ui{constructor(e,i){var n,s,o,r,a;super(e,i),this.options=i,this.storeInstrumentCheckbox=null,(null===(n=this.options)||void 0===n?void 0:n.showStoreInstrumentCheckbox)&&(this.storeInstrumentCheckbox=new On(Object.assign(Object.assign({},i),{id:`${null===(s=this.options)||void 0===s?void 0:s.id}-store-instrument-checkbox`,dataTestId:(null===(o=this.options)||void 0===o?void 0:o.dataTestId)?`${null===(r=this.options)||void 0===r?void 0:r.dataTestId}-store-instrument-checkbox`:`${null===(a=this.options)||void 0===a?void 0:a.id}-store-instrument-checkbox`,events:{onSaveInstrumentCheckboxChanged:e=>t(this,void 0,void 0,function*(){var t,n;null===(n=null===(t=null==i?void 0:i.events)||void 0===t?void 0:t.onSaveInstrumentCheckboxChanged)||void 0===n||n.call(t,e)})}})),this.subElements.push(this.storeInstrumentCheckbox))}get shouldStoreInstrument(){var e,t;return(null===(e=this.storeInstrumentCheckbox)||void 0===e?void 0:e.isChecked)||(null===(t=this.options)||void 0===t?void 0:t.alwaysStoreInstrument)||!1}}class Cn extends Tn{static isApplePayAvailable(){return t(this,void 0,void 0,function*(){try{return yield In.load(yn.ApplePay),ApplePaySession.canMakePayments()}catch(e){return!1}})}constructor(e){super("div",Object.assign(Object.assign({},e),{id:`payrails-apple-pay-button-${q()}`,dataTestId:"payrails-apple-pay-button"})),this.options=e,this.appleButton=null,this.isProcessing=!1,this.completedSessions=new WeakSet,this.abortedSessionReasons=new WeakMap,this.paymentExecutor=new cn,Cn.isApplePayAvailable().then(e=>{var t,i,n;e&&(null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onApplePayAvailable)||void 0===n||n.call(i))}),this.action="tokenization"===pe().type?so.TOKENIZE:so.AUTHORIZE}mount(e){this.unmount(),super.mount(e),(()=>{t(this,void 0,void 0,function*(){try{(yield Cn.isApplePayAvailable())&&(yield this.mountApplePayButton())}catch(e){}})})()}unmount(){var e,t;null===(t=null===(e=this.appleButton)||void 0===e?void 0:e.parentElement)||void 0===t||t.removeChild(this.appleButton),super.unmount()}mountApplePayButton(){return t(this,void 0,void 0,function*(){var e,i,n,s;try{const o=(null===(e=this.options.styles)||void 0===e?void 0:e.type)||"buy",r=(null===(i=this.options.styles)||void 0===i?void 0:i.style)||"black",a=gn(null===(n=this.options.styles)||void 0===n?void 0:n.locale);this.element.innerHTML=`<apple-pay-button buttonstyle="${r}" type="${o}" locale="${a}"></apple-pay-button>`,null===(s=this.storeInstrumentCheckbox)||void 0===s||s.mount(this.selector);const l=this.element.querySelector("apple-pay-button");null==l||l.setAttribute("style","width: 100%;"),null==l||l.addEventListener("click",()=>t(this,void 0,void 0,function*(){this.isProcessing||(this.isProcessing=!0,yield this.createApplePaySession())}))}catch(e){}})}onAuthorizeFailedHandler(e,t){this.isProcessing=!1,this.options.abortAfterAuthorizeFailed?(this.abortedSessionReasons.set(e,t),this.completeApplePaySession(e,"abort")):(this.completeApplePaySession(e,"failure"),ao(so.AUTHORIZE,this.options.events,t))}completeApplePaySession(e,t){if(!this.completedSessions.has(e)){this.completedSessions.add(e);try{if("abort"===t)return void e.abort();e.completePayment("success"===t?ApplePaySession.STATUS_SUCCESS:ApplePaySession.STATUS_FAILURE)}catch(e){o.PayrailsLogger.warn(`ApplePaySession completion failed (${t})`,{error:e instanceof s.PayrailsError?e:void 0})}}}createApplePaySession(){return t(this,void 0,void 0,function*(){var e,i,n,r;const a=le.applePayConfig,{countryCode:l,supportedNetworks:d,merchantCapabilities:c,requiredBillingContactFields:u=[],requiredShippingContactFields:p=[]}=a,{amount:h}=pe();try{const a=new ApplePaySession(3,{countryCode:l,currencyCode:h.currency,merchantCapabilities:c,supportedNetworks:d,total:{label:(null===(i=null===(e=this.options.translations)||void 0===e?void 0:e.labels)||void 0===i?void 0:i.paymentScreenLabel)||"",type:"final",amount:h.value},requiredBillingContactFields:u,requiredShippingContactFields:p});a.onvalidatemerchant=e=>t(this,void 0,void 0,function*(){let t;try{const{res:i}=yield this.paymentExecutor.createApplePaySession({requestUrl:le.createSessionLink,sessionUrl:e.validationURL,clientDomain:this.options.clientDomain});t=i}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_APPLEPAY_START_PAYMENT_SESSION_ERROR);return o.PayrailsLogger.error(t.message,{error:t,extra:{catchError:e}}),this.abortedSessionReasons.set(a,t),void a.abort()}try{const e=t.data.data;a.completeMerchantValidation(e)}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_APPLEPAY_MERCHANT_VALIDATION_FAILED);o.PayrailsLogger.error(t.message,{error:t,extra:{catchError:e}}),this.abortedSessionReasons.set(a,t),a.abort()}}),a.oncancel=e=>{this.isProcessing=!1;const t=this.abortedSessionReasons.get(a);t instanceof s.PayrailsError?(this.abortedSessionReasons.delete(a),ao(this.action,this.options.events,t)):ao(this.action,this.options.events,{code:exports.AuthorizationFailureReasons.USER_CANCELLED})},p.length>0&&(null===(r=null===(n=this.options)||void 0===n?void 0:n.events)||void 0===r?void 0:r.onDeliveryAddressChanged)&&(a.onshippingcontactselected=e=>t(this,void 0,void 0,function*(){yield this.onApplePayShippingContactSelected(e,a,h)})),a.onpaymentauthorized=e=>t(this,void 0,void 0,function*(){yield this.onApplePayAuthorized(e.payment,a)});return(yield uo(this.action,this.options.events))?a.begin():this.isProcessing=!1,a}catch(e){return this.isProcessing=!1,null}})}onApplePayShippingContactSelected(e,i,n){return t(this,void 0,void 0,function*(){var t,r,a,l;const d=e.shippingContact;let c;d&&(c={deliveryAddress:{city:d.locality,postalCode:d.postalCode,state:d.administrativeArea,country:{code:null===(t=d.countryCode)||void 0===t?void 0:t.toUpperCase()}}});const u=yield wi(null===(r=this.options)||void 0===r?void 0:r.events,c),p={label:(null===(l=null===(a=this.options.translations)||void 0===a?void 0:a.labels)||void 0===l?void 0:l.paymentScreenLabel)||"",type:"final",amount:n.value};try{if(!u)return void i.completeShippingContactSelection({newTotal:p,errors:[new ApplePayError("shippingContactInvalid","postalAddress","Delivery to this address is not supported.")]});i.completeShippingContactSelection({newTotal:p})}catch(e){o.PayrailsLogger.warn("ApplePaySession completeShippingContactSelection failed",{error:e instanceof s.PayrailsError?e:void 0})}})}onApplePayAuthorized(e,i){return t(this,void 0,void 0,function*(){return(yield ki(this.action,this.options.events))?this.action===so.TOKENIZE?yield this.doTokenize(e,i):yield this.doAuthorizedPayment(e,i):(this.action===so.AUTHORIZE?this.onAuthorizeFailedHandler(i,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:"Authorization request start validation failed"}):(this.isProcessing=!1,this.completeApplePaySession(i,"failure"),ao(this.action,this.options.events,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:"Request start validation failed"})),null)})}doAuthorizedPayment(e,i){return t(this,void 0,void 0,function*(){var t,n,o,r,a;const l=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.APPLE_PAY,integrationType:"api",paymentInstrumentData:{paymentToken:JSON.stringify(e)},amount:pe().amount,storeInstrument:this.shouldStoreInstrument}];try{const e=yield this.paymentExecutor.pay(l);if("authorizeSuccessful"===(null===(t=e.finalState)||void 0===t?void 0:t.code))this.completeApplePaySession(i,"success"),this.isProcessing=!1,ro(so.AUTHORIZE,this.options.events,e);else this.onAuthorizeFailedHandler(i,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(a=null===(r=null===(o=null===(n=e.finalState)||void 0===n?void 0:n.errors)||void 0===o?void 0:o[0])||void 0===r?void 0:r.reason)||void 0===a?void 0:a.result)||"Authorization Failed"});return e}catch(e){this.onAuthorizeFailedHandler(i,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:e instanceof s.PayrailsError?e.message:"Authorization Failed"})}})}doTokenize(e,i){return t(this,void 0,void 0,function*(){const t=pe(),n=le.createInstrumentLink,s=t.token;if(!n)return this.completeApplePaySession(i,"failure"),this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events);let o;try{o=JSON.stringify(e)}catch(e){return this.completeApplePaySession(i,"failure"),this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events,e)}const r={holderReference:t.holderReference,paymentMethod:exports.PAYMENT_METHOD_CODES.APPLE_PAY,storeInstrument:this.shouldStoreInstrument,data:{paymentToken:o}};try{const e=yield ne({url:n,token:s,body:r});return e.ok?(this.completeApplePaySession(i,"success"),this.isProcessing=!1,ro(so.TOKENIZE,this.options.events,e.res),e.res):(this.completeApplePaySession(i,"failure"),this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events))}catch(e){return this.completeApplePaySession(i,"failure"),this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events,e)}})}}const Rn={wrapper:{display:"flex",flexDirection:"column"}},Nn=()=>t(void 0,void 0,void 0,function*(){const e=yield(({url:e})=>zi({url:e}))({url:"https://assets.payrails.io/json/countries.json"});return new Map(Object.entries(e.res))});class Sn extends Ui{constructor(e,t){super(e,{id:t.id,className:t.className}),this.applyStyles(t.styles)}applyStyles(e){Object.keys(e||{}).forEach(t=>{this.element.style[t]=null==e?void 0:e[t]})}}const Pn="__payrails-selectedCountry";class bn extends Sn{constructor(e){var t,i;super("span",Object.assign(Object.assign({},e),{id:"payrails-country-select",className:"payrails-country-selector-wrapper",styles:null===(t=e.styles)||void 0===t?void 0:t.wrapper})),this.options=e,this._countriesList=null===(i=e.config)||void 0===i?void 0:i.data,this.createHTML(),this.attachEvents()}set countriesList(e){this._countriesList=e,this.populateCountrySelect(),this.setDefaultCountry()}get countriesList(){return this._countriesList}populateCountrySelect(){return t(this,void 0,void 0,function*(){var e,t;const i=document.createElement("option");i.value="",i.textContent=(null===(e=this.options.translations)||void 0===e?void 0:e.placeholder)||"Select Country",null===(t=this.selectElement)||void 0===t||t.appendChild(i),this._countriesList.forEach(e=>{var t;const i=document.createElement("option");i.value=e.code,i.textContent=e.name,null===(t=this.selectElement)||void 0===t||t.appendChild(i)})})}setDefaultCountry(){const e=JSON.parse(sessionStorage.getItem(Pn)||"{}");if(null==e?void 0:e.code)return void(this.value=e.code);const t=Intl.DateTimeFormat().resolvedOptions().timeZone;t&&this.countriesList.forEach(e=>{var i;if(null===(i=e.timezones)||void 0===i?void 0:i.includes(t))return this.value=e.code,void sessionStorage.setItem(Pn,JSON.stringify(this.value))})}createHTML(){this.createLabel(),this.createSelectBox()}createSelectBox(){var e;this.selectElement=document.createElement("select"),this.selectElement.id=this.options.id,this.selectElement.className="payrails-country-select-element",this._countriesList&&this.populateCountrySelect(),this.applyStylesToSubElements(null===(e=this.options.styles)||void 0===e?void 0:e.element,this.selectElement),this.element.appendChild(this.selectElement)}createLabel(){var e,t,i;this.label=document.createElement("label"),this.label.textContent=(null===(e=this.options.translations)||void 0===e?void 0:e.label)||"Country",this.applyStylesToSubElements(null===(t=this.options.styles)||void 0===t?void 0:t.label,this.label),(null===(i=this.options.translations)||void 0===i?void 0:i.label)&&this.element.appendChild(this.label)}applyStylesToSubElements(e,t){Object.keys(e||{}).forEach(i=>{t.style[i]=null==e?void 0:e[i]})}attachEvents(){var e;null===(e=this.selectElement)||void 0===e||e.addEventListener("change",e=>{var t,i;null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onChange)||void 0===i||i.call(t,{country:this.value}),sessionStorage.setItem(Pn,JSON.stringify(this.value)),e.stopPropagation(),e.stopImmediatePropagation()})}get isValid(){var e;return""!==(null===(e=this.selectElement)||void 0===e?void 0:e.value)}get value(){var e,t,i,n,s,o;return{code:null===(e=this.selectElement)||void 0===e?void 0:e.value,fullName:(null===(i=null===(t=this.selectElement)||void 0===t?void 0:t.options[this.selectElement.selectedIndex])||void 0===i?void 0:i.textContent)||"",iso3:(null===(o=null===(n=this._countriesList)||void 0===n?void 0:n.get(null===(s=this.selectElement)||void 0===s?void 0:s.value))||void 0===o?void 0:o.iso3)||""}}set value(e){this.selectElement&&(this.selectElement.value=e)}}class Dn extends Sn{set selectedCountry(e){this._selectedCountry=e}get selectedCountry(){return this._selectedCountry}constructor(e){var t;super("span",Object.assign(Object.assign({},e),{id:"payrails-postal-code-wrapper",className:"payrails-postal-code-wrapper",styles:null===(t=e.styles)||void 0===t?void 0:t.wrapper})),this.options=e,this._selectedCountry="",this._countriesList=void 0,this._countriesList=e.config.data,this.createHTML(),this.attachEvents()}createHTML(){this.createLabel(),this.createInput()}createInput(){var e,t;this.inputElement=document.createElement("input"),this.inputElement.type="text",this.inputElement.placeholder=(null===(e=this.options.translations)||void 0===e?void 0:e.placeholder)||"Postal Code",this.inputElement.id=this.options.id,this.inputElement.className="payrails-postal-code-input",this.applyStylesToSubElements(null===(t=this.options.styles)||void 0===t?void 0:t.element,this.inputElement),this.element.appendChild(this.inputElement)}createLabel(){var e,t,i;this.label=document.createElement("label"),this.label.textContent=(null===(e=this.options.translations)||void 0===e?void 0:e.label)||"Postal Code",this.applyStylesToSubElements(null===(t=this.options.styles)||void 0===t?void 0:t.label,this.label),(null===(i=this.options.translations)||void 0===i?void 0:i.label)&&this.element.appendChild(this.label)}applyStylesToSubElements(e,t){Object.keys(e||{}).forEach(i=>{t.style[i]=null==e?void 0:e[i]})}attachEvents(){var e,t,i;null===(e=this.inputElement)||void 0===e||e.addEventListener("change",e=>{e.stopPropagation(),e.stopImmediatePropagation()}),null===(t=this.inputElement)||void 0===t||t.addEventListener("input",e=>{var t,i,n;null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onChange)||void 0===i||i.call(t,{postalCode:this.value}),null===(n=this.inputElement)||void 0===n||n.classList.remove("error"),e.stopPropagation(),e.stopImmediatePropagation()}),null===(i=this.inputElement)||void 0===i||i.addEventListener("focusout",e=>{var t;this.isValid||null===(t=this.inputElement)||void 0===t||t.classList.add("error"),e.stopPropagation(),e.stopImmediatePropagation()})}set countriesList(e){this._countriesList=e}get value(){var e;return(null===(e=this.inputElement)||void 0===e?void 0:e.value)||""}set value(e){this.inputElement&&(this.inputElement.value=e)}show(){this.element.style.display="flex"}hide(){this.element.style.display="none"}get isValid(){var e,t,i;const n=null===(e=this.inputElement)||void 0===e?void 0:e.value,s=this.selectedCountry,o=(null===(i=null===(t=this._countriesList)||void 0===t?void 0:t.get(s))||void 0===i?void 0:i.postalCodeRegex)||"";let r=!1;if(n)return r=o?new RegExp(o).test(n):n.length>0,r}setValidation(e){this.inputElement&&(this.inputElement.pattern=e,this.inputElement.classList.remove("error"))}}class Mn extends Ui{get fullAddress(){var e,t,i,n;const s={},o=null===(e=this.countrySelector)||void 0===e?void 0:e.value;return o&&(s.country=o,o.code&&(null===(i=null===(t=this.countriesMap)||void 0===t?void 0:t.get(o.code))||void 0===i?void 0:i.showPostalCode)&&(s.postalCode=null===(n=this.postalCodeInput)||void 0===n?void 0:n.value)),Object.assign({},s)}constructor(e){var t,i;super("div",{id:e.id,className:"payrails-address-selector-wrapper",styles:(null===(t=e.styles)||void 0===t?void 0:t.wrapper)||(null===(i=Rn)||void 0===i?void 0:i.wrapper)}),this.options=e,this.countriesMap=void 0,this.createAddressComponents(),this.init(),this.applyStyles(),Nn().then(e=>{this.countriesMap=e,this.countrySelector&&(this.countrySelector.countriesList=e),this.postalCodeInput&&(this.postalCodeInput.countriesList=e)})}applyStyles(){var e,t;Object.keys((null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.wrapper)||{}).forEach(e=>{var t,i,n;this.element.style[e]=null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.styles)||void 0===i?void 0:i.wrapper)||void 0===n?void 0:n[e]})}createAddressComponents(e){var t,i,n,s,o,r,a,l,d,c,u,p;const h={id:"country-selector",styles:(null===(t=this.options.styles)||void 0===t?void 0:t.countrySelector)||(null===(i=Rn)||void 0===i?void 0:i.countrySelector),events:{onChange:e=>{var t,i;const{country:n}=e;this.onCountryChange(n),null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onBillingAddressChanged)||void 0===i||i.call(t,{isValid:this.isValid,billingAddress:this.fullAddress})}},translations:{label:null===(s=null===(n=this.options.translations)||void 0===n?void 0:n.labels)||void 0===s?void 0:s.countrySelector,placeholder:null===(r=null===(o=this.options.translations)||void 0===o?void 0:o.placeholders)||void 0===r?void 0:r.countrySelector}},_={id:"postal-code-input",translations:{label:null===(l=null===(a=this.options.translations)||void 0===a?void 0:a.labels)||void 0===l?void 0:l.postalCodeInput,placeholder:null===(c=null===(d=this.options.translations)||void 0===d?void 0:d.placeholders)||void 0===c?void 0:c.postalCodeInput},styles:(null===(u=this.options.styles)||void 0===u?void 0:u.postalCodeInput)||(null===(p=Rn)||void 0===p?void 0:p.postalCodeInput),events:{onChange:()=>{var e,t;null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onBillingAddressChanged)||void 0===t||t.call(e,{isValid:this.isValid,billingAddress:this.fullAddress})}},config:{data:e}};this.countrySelector=new bn(h),this.postalCodeInput=new Dn(_)}init(){var e,t;this.countrySelector&&this.subElements.push(this.countrySelector),this.postalCodeInput&&this.subElements.push(this.postalCodeInput),null===(e=this.postalCodeInput)||void 0===e||e.hide(),(null===(t=this.options.styles)||void 0===t?void 0:t.wrapper)&&Object.assign(this.element.style,this.options.styles.wrapper)}get isValid(){var e,t,i,n;let s=this.countrySelector&&this.countrySelector.isValid;const o=null===(t=null===(e=this.countrySelector)||void 0===e?void 0:e.value)||void 0===t?void 0:t.code;return o&&(null===(n=null===(i=this.countriesMap)||void 0===i?void 0:i.get(o))||void 0===n?void 0:n.showPostalCode)&&(s=s&&this.postalCodeInput&&this.postalCodeInput.isValid),!!s}onCountryChange(e){var t;const i=null==e?void 0:e.code;if(!i)return;const n=null===(t=this.countriesMap)||void 0===t?void 0:t.get(i);if(this.postalCodeInput)if(n&&(null==n?void 0:n.showPostalCode)){const e=new RegExp(n.postalCodeRegex||"[0-9]*");this.postalCodeInput.setValidation(e.source),this.postalCodeInput.selectedCountry=i,this.postalCodeInput.show()}else this.postalCodeInput.hide(),this.postalCodeInput.setValidation(""),this.postalCodeInput.value=""}get selectedCountry(){var e;return null===(e=this.countrySelector)||void 0===e?void 0:e.value}get postalCode(){var e;return null===(e=this.postalCodeInput)||void 0===e?void 0:e.value}show(){this.element.style.display="flex"}hide(){this.element.style.display="none"}}class wn extends Ui{constructor(e){var t;super("div",{id:e.id,className:e.className}),this.options=e,this.INSTALLMENT_STORAGE_KEY="__payrails-selectedInstallmentCount",this.installmentOptions=[],this.installmentOptions=(null===(t=e.installmentConfig)||void 0===t?void 0:t.installmentOptions)||[],this.createHTML(),this.applyStyles(),this.addListeners()}getDefaultInstallment(){var e,t;return parseInt(null!==(e=sessionStorage.getItem(this.INSTALLMENT_STORAGE_KEY))&&void 0!==e?e:"",10)||(null===(t=this.options.installmentConfig)||void 0===t?void 0:t.defaultInstallment)}generateOptionsHTML(e){var t,i,n;const s=(null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.translations)||void 0===i?void 0:i.labels)||void 0===n?void 0:n.paymentInstallments)||"Split payment into monthly installments",o=this.getDefaultInstallment();return[`<option value="">${s}</option>`,...(null==e?void 0:e.map(e=>{const t=e.count===o?" selected":"";return`<option value="${e.count}" ${t}>${e.count} x ${e.amount}</option>`}))||[]].join("")}renderOptions(e){const t=this.element.querySelector("select");if(t){t.innerHTML=this.generateOptionsHTML(e);const i=this.getDefaultInstallment();i&&(t.value=String(i)),e.length>0?this.setDisabled(!1):this.setDisabled(!0)}}updateOptions(e){this.updateConfig(Object.assign(Object.assign({},this.options.installmentConfig),{installmentOptions:e}))}updateConfig(e){var t,i,n,s,o,r,a;if(!this.options)return;const l=null!==(t=this.options.installmentConfig)&&void 0!==t?t:{},d=null!=e?e:{};this.options.installmentConfig={installmentCurrency:null!==(i=d.installmentCurrency)&&void 0!==i?i:l.installmentCurrency,installmentOptions:null!==(s=null!==(n=d.installmentOptions)&&void 0!==n?n:l.installmentOptions)&&void 0!==s?s:[],defaultInstallment:null!==(o=d.defaultInstallment)&&void 0!==o?o:l.defaultInstallment},this.installmentOptions=null!==(r=this.options.installmentConfig.installmentOptions)&&void 0!==r?r:[],null===(a=this.renderOptions)||void 0===a||a.call(this,this.installmentOptions)}createHTML(){const e=`${this.id}-dropdown`;this.element.innerHTML=`<select name="${this.options.className}" id="${e}"></select>`,this.renderOptions(this.installmentOptions||[])}applyStyles(){var e,t;Object.keys((null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.paymentInstallmentsDropdown)||{}).forEach(e=>{var t,i,n;this.element.style[e]=null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.styles)||void 0===i?void 0:i.paymentInstallmentsDropdown)||void 0===n?void 0:n[e]})}addListeners(){this.element.addEventListener("change",e=>{var t;e.stopPropagation(),e.stopImmediatePropagation();const i=null===(t=this.element.querySelector("select"))||void 0===t?void 0:t.value;i?sessionStorage.setItem(this.INSTALLMENT_STORAGE_KEY,i):sessionStorage.removeItem(this.INSTALLMENT_STORAGE_KEY)}),this.element.addEventListener("click",e=>{e.stopPropagation(),e.stopImmediatePropagation()})}get selectedInstallmentValue(){var e;return null===(e=this.element.querySelector("select"))||void 0===e?void 0:e.value}setDisabled(e){const t=this.element.querySelector("select");t&&0!==this.installmentOptions.length?t&&(t.disabled=e,this.setVisible(!e)):this.setVisible(!1)}setVisible(e){const t=this.element.querySelector("select");t&&t.parentElement&&(t.parentElement.style.display=e?"block":"none")}}class kn extends Ui{constructor(e,t){var i,n;super(e,t),this.options=t,this.paymentInstallmentsDropdown=null,this.paymentInstallmentsDropdown=new wn(Object.assign(Object.assign({},t),{id:`${null===(i=this.options)||void 0===i?void 0:i.id}-dropdown`,className:"payrails-payment-installments-dropdown",installmentConfig:null===(n=this.options)||void 0===n?void 0:n.installmentConfig})),this.subElements.push(this.paymentInstallmentsDropdown)}get selectedInstallmentValue(){var e;return parseInt((null===(e=this.paymentInstallmentsDropdown)||void 0===e?void 0:e.selectedInstallmentValue)||"0")}updateInstallmentOptions(e){var t;this.options&&(null===(t=this.paymentInstallmentsDropdown)||void 0===t||t.updateOptions(e))}updateInstallmentConfig(e){var t;this.options&&(this.options.installmentConfig=Object.assign(Object.assign({},this.options.installmentConfig),e),null===(t=this.paymentInstallmentsDropdown)||void 0===t||t.updateConfig(this.options.installmentConfig))}setDisabled(e){var t;null===(t=this.paymentInstallmentsDropdown)||void 0===t||t.setDisabled(e)}}const{CARD_NUMBER:Yn,CVV:Un,CARDHOLDER_NAME:xn,EXPIRATION_DATE:Fn,EXPIRATION_MONTH:jn,EXPIRATION_YEAR:Bn}=exports.ElementType,Vn={base:{border:"none",padding:"10px 16px",color:"#1d1d1d",backgroundColor:"#fff"},invalid:{backgroundColor:"#f9e1e1",borderColor:"#f25226",border:"1px solid"}},Gn=[{type:xn,placeholder:"Card holder",styles:Object.assign(Object.assign({},Vn),{base:Object.assign(Object.assign({},Vn.base),{border:"1px solid #eae8ee",padding:"10px 16px",borderTopLeftRadius:"4px",borderTopRightRadius:"4px"})})},{type:Yn,placeholder:"1234 1234 1234 1234",styles:Object.assign(Object.assign({},Vn),{base:Object.assign(Object.assign({},Vn.base),{border:"1px solid #eae8ee",padding:"10px 16px",borderTopLeftRadius:"4px",borderTopRightRadius:"4px",textIndent:"0"}),cardIcon:{position:"absolute",right:"8px",height:"24px",bottom:"calc(50% - 12px)"}})},{type:jn,placeholder:"MM",styles:Object.assign(Object.assign({},Vn),{base:Object.assign(Object.assign({},Vn.base),{borderBottom:"1px solid #eae8ee",borderLeft:"1px solid #eae8ee",borderRight:"1px solid #eae8ee",borderBottomLeftRadius:"4px"})})},{type:Bn,placeholder:"YY",format:"YY",styles:Object.assign(Object.assign({},Vn),{base:Object.assign(Object.assign({},Vn.base),{borderBottom:"1px solid #eae8ee",borderRight:"1px solid #eae8ee"})})},{type:Fn,placeholder:"MM/YY",format:"MM/YY",styles:Object.assign(Object.assign({},Vn),{base:Object.assign(Object.assign({},Vn.base),{borderBottom:"1px solid #eae8ee",borderLeft:"1px solid #eae8ee",borderRight:"1px solid #eae8ee",borderBottomLeftRadius:"4px"}),cardIcon:{position:"absolute",right:"8px",height:"24px",bottom:"calc(50% - 12px)"}})},{type:Un,placeholder:"CVC",styles:Object.assign(Object.assign({},Vn),{base:Object.assign(Object.assign({},Vn.base),{borderBottom:"1px solid #eae8ee",borderRight:"1px solid #eae8ee",borderBottomRightRadius:"4px"}),cardIcon:{position:"absolute",right:"8px",height:"24px",bottom:"calc(50% - 12px)"}})}];class Xn extends Tn{get bin(){return this.collectContainer.bin}get isBinLookupEnabled(){return this.collectContainer.isBinLookupEnabled}constructor(e,t){var i,n,s,o,r,a,l,d,c;super("div",Object.assign(Object.assign({},t),{translations:Object.assign(Object.assign({},null==t?void 0:t.translations),{labels:Object.assign(Object.assign({},null===(i=null==t?void 0:t.translations)||void 0===i?void 0:i.labels),{saveInstrument:null===(s=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.labels)||void 0===s?void 0:s.saveCreditCard})}),styles:Object.assign({storeInstrumentCheckbox:null===(o=null==t?void 0:t.styles)||void 0===o?void 0:o.storeCardCheckbox},null==t?void 0:t.styles),id:"payrails-card-form"})),this.collectContainer=e,this.options=t,this.formFields=[],this.paymentInstallmentsDropdown=null,this.addressComponent=null,this.lastBin=null,this.lastBinLookup=null,this.defaultStyles={},this.defaultTranslations={},this.defaultStyles=(null===(r=this.options)||void 0===r?void 0:r.styles)||{},this.defaultTranslations=(null===(a=this.options)||void 0===a?void 0:a.translations)||{},this.eventsRef=null===(l=this.options)||void 0===l?void 0:l.events,this.throttledFetchBinLookup=function(e,t){let i,n;return function(...s){return new Promise((o,r)=>{n?(clearTimeout(i),i=setTimeout(()=>{Date.now()-n>=t&&(e(...s).then(o).catch(r),n=Date.now())},t-(Date.now()-n))):(e(...s).then(o).catch(r),n=Date.now())})}}(this.fetchBinLookup.bind(this),500),(null===(d=null==t?void 0:t.styles)||void 0===d?void 0:d.storeCardCheckbox)&&console.warn("The `storeCardCheckbox` option for styles is deprecated. Please use `storeInstrumentCheckbox` instead."),this.initializeFormFields(),this.subElements.push(this.collectContainer),le.isPaymentInstallmentsEnabled(exports.PAYMENT_METHOD_CODES.CARD)&&(this.paymentInstallmentsDropdown=new kn("span",Object.assign(Object.assign({},t),{installmentConfig:{installmentCurrency:"",installmentOptions:this.getinstallmentOptions(),defaultInstallment:null===(c=null==t?void 0:t.installmentConfig)||void 0===c?void 0:c.defaultInstallment},id:"payrails-card-form-payment-installments",className:"payrails-card-form-payment-installments-container"})),this.paymentInstallmentsDropdown&&this.subElements.push(this.paymentInstallmentsDropdown)),le.isAddressSelectorEnabled(exports.PAYMENT_METHOD_CODES.CARD)&&(this.addressComponent=this.createAddressSelector(),this.subElements.push(this.addressComponent)),this.storeInstrumentCheckbox&&this.subElements.push(this.storeInstrumentCheckbox)}initializeFormFields(){var e;(null===(e=this.options)||void 0===e?void 0:e.layout)&&this.options.layout.length>0?this.initializeCustomLayout():this.initializeDefaultLayout()}getErrorTextStyles(e){return(null==e?void 0:e.base)?e:{base:{}}}updateStyles(e){return this.formFields.forEach(t=>{var i,n,s,o;const r=se((null===(i=null==e?void 0:e.inputFields)||void 0===i?void 0:i.all)||{},(null===(n=null==e?void 0:e.inputFields)||void 0===n?void 0:n[t.type])||{}),a=this.prepareInputStyles(r,t.type),l=se((null===(s=null==e?void 0:e.labels)||void 0===s?void 0:s.all)||{},(null===(o=null==e?void 0:e.labels)||void 0===o?void 0:o[t.type])||{}),d=this.prepareLabelStyles(t.type,l),c=this.prepareErrorStyles(null==e?void 0:e.errorTextStyles);t.update({styles:{inputStyles:a,labelStyles:d,errorTextStyles:c}})}),se(this.defaultStyles,e||{})}updateTranslations(e){const t=se(this.defaultTranslations||{},e||{});return this.formFields.forEach(e=>{var i,n,s,o;const r=null===(i=t.labels)||void 0===i?void 0:i[e.type],a=null===(n=t.placeholders)||void 0===n?void 0:n[e.type],l=null===(o=null===(s=t.error)||void 0===s?void 0:s.default)||void 0===o?void 0:o[e.type];e.update({translations:Object.assign(Object.assign(Object.assign({},void 0!==r&&{label:r}),void 0!==a&&{placeholder:a}),void 0!==l&&{translations:{error:{default:l}}})})}),t}updateEvents(e){this.eventsRef=Object.assign(Object.assign({},this.eventsRef),e),this.formFields.forEach(e=>{e.update({events:{onFocus:()=>{var e,t;return null===(t=null===(e=this.eventsRef)||void 0===e?void 0:e.onFocus)||void 0===t?void 0:t.call(e)},onChange:this.onChange.bind(this),onReady:this.triggerOnReady.bind(this)}})})}update(e){(null==e?void 0:e.styles)&&(this.defaultStyles=this.updateStyles(e.styles)),(null==e?void 0:e.translations)&&(this.defaultTranslations=this.updateTranslations(e.translations)),(null==e?void 0:e.events)&&this.updateEvents(e.events)}updateInstallmentConfig(e){var t,i,n,s,o;if(!this.paymentInstallmentsDropdown)return;const r=le.getPaymentInstallmentOptions(exports.PAYMENT_METHOD_CODES.CARD),a={installmentCurrency:(null===(t=pe().amount)||void 0===t?void 0:t.currency)||""};this.options&&e&&Object.prototype.hasOwnProperty.call(e,"defaultInstallment")&&(this.options.installmentConfig={defaultInstallment:null!==(i=e.defaultInstallment)&&void 0!==i?i:null},a.defaultInstallment=null!==(n=e.defaultInstallment)&&void 0!==n?n:null);const l=null===(o=null===(s=this.lastBinLookup)||void 0===s?void 0:s.issuerCountry)||void 0===o?void 0:o.code,d=l&&r?r[l]:void 0;a.installmentOptions=d||[],this.paymentInstallmentsDropdown.updateInstallmentConfig(a)}createFormField(e,t,i,n,s,o=!1){var r,a,l,d,c,u,p;const h=this.prepareErrorStyles(i);return new zn(this.collectContainer,{type:e,required:o,label:null===(a=null===(r=this.defaultTranslations)||void 0===r?void 0:r.labels)||void 0===a?void 0:a[e],errorTextStyles:h,placeholder:(null===(d=null===(l=this.defaultTranslations)||void 0===l?void 0:l.placeholders)||void 0===d?void 0:d[e])||s,labelStyles:this.prepareLabelStyles(e),inputStyles:this.prepareInputStyles(t,e),translations:{error:{default:(null===(p=null===(u=null===(c=this.defaultTranslations)||void 0===c?void 0:c.error)||void 0===u?void 0:u.default)||void 0===p?void 0:p[e])||""}},format:n,events:{onFocus:()=>{var e,t;return null===(t=null===(e=this.eventsRef)||void 0===e?void 0:e.onFocus)||void 0===t?void 0:t.call(e)},onChange:this.onChange.bind(this),onReady:this.triggerOnReady.bind(this)}})}isFieldRequired(){var e,t;return!!(null===(t=null===(e=this.defaultStyles)||void 0===e?void 0:e.errorTextStyles)||void 0===t?void 0:t.base)}initializeCustomLayout(){var e;if(!(null===(e=this.options)||void 0===e?void 0:e.layout))return;const t=e=>{e.forEach(e=>{var t;const i=Gn.find(t=>t.type===e);if(!i)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_TYPE);if(this.hasFieldBeenUsed(i.type))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_DUPLICATE_ELEMENT);const{type:n,styles:o,format:r,placeholder:a}=i,l=this.isFieldRequired();this.formFields.push(this.createFormField(n,o,null===(t=this.defaultStyles)||void 0===t?void 0:t.errorTextStyles,r,a,l))})};this.options.layout.forEach(e=>t(e))}hasFieldBeenUsed(e){return this.formFields.some(t=>t.type===e)}initializeDefaultLayout(){const e=e=>{var t,i,n;return!(null===(t=this.options)||void 0===t?void 0:t.showCardHolderName)&&e===exports.ElementType.CARDHOLDER_NAME||(!(null===(i=this.options)||void 0===i?void 0:i.showSingleExpiryDateField)&&e===exports.ElementType.EXPIRATION_DATE||!(!(null===(n=this.options)||void 0===n?void 0:n.showSingleExpiryDateField)||e!==exports.ElementType.EXPIRATION_MONTH&&e!==exports.ElementType.EXPIRATION_YEAR))};Gn.filter(({type:t})=>!e(t)).forEach(({type:e,styles:t,format:i,placeholder:n})=>{var s;const o=this.isFieldRequired();this.formFields.push(this.createFormField(e,t,null===(s=this.defaultStyles)||void 0===s?void 0:s.errorTextStyles,i,n,o))})}throttledFetchBinLookupIfChanged(){return t(this,void 0,void 0,function*(){return this.bin!==this.lastBin&&(this.lastBin=this.bin,this.lastBinLookup=yield this.throttledFetchBinLookup()),this.lastBinLookup})}tokenize(e){return this.collectContainer.tokenize(e)}createAddressSelector(){var e,t;return new Mn({id:"payrails-address-selector",events:Object.assign(Object.assign({},this.eventsRef),{onBillingAddressChanged:e=>{var t,i;this.onChange(),null===(i=null===(t=this.eventsRef)||void 0===t?void 0:t.onBillingAddressChanged)||void 0===i||i.call(t,e)}}),styles:null===(e=this.defaultStyles)||void 0===e?void 0:e.addressSelector,translations:null===(t=this.defaultTranslations)||void 0===t?void 0:t.addressSelector})}show(){var e;const t=document.getElementById(this.collectContainer.id);if(!t){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT);throw o.PayrailsLogger.error(e.message,{error:e}),e}Object.assign(t.style,null===(e=this.defaultStyles)||void 0===e?void 0:e.wrapper),this.element.style.display="flex"}hide(e={}){this.element.style.display="none",e.reset&&this.reset()}triggerOnReady(){var e,t;this.formFields.reduce((e,t)=>e&&t.isReady,!0)&&(this.updateTranslations(this.defaultTranslations||{}),this.updateStyles(this.defaultStyles||{}),null===(t=null===(e=this.eventsRef)||void 0===e?void 0:e.onReady)||void 0===t||t.call(e))}prepareErrorStyles(e){var t,i;const n={base:{}};return n.base=Object.assign(Object.assign({},(null===(i=null===(t=this.defaultStyles)||void 0===t?void 0:t.errorTextStyles)||void 0===i?void 0:i.base)||{}),(null==e?void 0:e.base)||{}),n}prepareLabelStyles(e,t){var i,n,s,o,r;const a={};return a.base=Object.assign(Object.assign(Object.assign(Object.assign({},(null===(i=this.defaultStyles)||void 0===i?void 0:i.base)||{}),(null===(s=null===(n=this.defaultStyles)||void 0===n?void 0:n.labels)||void 0===s?void 0:s.all)||{}),(null===(r=null===(o=this.defaultStyles)||void 0===o?void 0:o.labels)||void 0===r?void 0:r[e])||{}),t||{}),a}prepareInputStyles(e,t){var i;const n={};return["base","complete","empty","focus","invalid","cardIcon","copyIcon"].forEach(i=>{var s,o,r,a,l,d;n[i]=Object.assign(Object.assign(Object.assign({},(null===(r=null===(o=null===(s=this.defaultStyles)||void 0===s?void 0:s.inputFields)||void 0===o?void 0:o.all)||void 0===r?void 0:r[i])||{}),(null===(d=null===(l=null===(a=this.defaultStyles)||void 0===a?void 0:a.inputFields)||void 0===l?void 0:l[t])||void 0===d?void 0:d[i])||{}),(null==e?void 0:e[i])||{})}),(null===(i=this.options)||void 0===i?void 0:i.showCardHolderName)&&t===exports.ElementType.CARD_NUMBER&&(this.element.setAttribute("class","with-card-holder"),n.base=Object.assign(Object.assign(Object.assign({},Vn.base),{border:"1px solid #eae8ee",borderTop:"none",padding:"10px 16px",textIndent:"0"}),n.base)),n}validate(){return this.collectContainer.validate()}focus(){const e=this.formFields.find(e=>!e.isValid)||this.formFields[0];if(!e)return;const t=document.getElementById(this.collectContainer.id)||this.element;t&&"function"==typeof t.scrollIntoView&&t.scrollIntoView({behavior:"smooth",block:"center"}),window.requestAnimationFrame(()=>{e.focus()})}get isValid(){var e;const t=this.formFields.reduce((e,t)=>e&&t.isValid,!0);return this.addressComponent?t&&!!(null===(e=this.addressComponent)||void 0===e?void 0:e.isValid):t}get cardNetwork(){var e,t;return null!==(t=null===(e=this.formFields.find(e=>Boolean(e.cardNetwork)))||void 0===e?void 0:e.cardNetwork)&&void 0!==t?t:""}onChange(){var e;(null===(e=this.eventsRef)||void 0===e?void 0:e.onChange)&&(this.eventsRef.onChange({isValid:this.isValid,cardNetwork:this.cardNetwork,bin:this.bin,billingAddress:this.billingAddress}),le.isPaymentInstallmentsEnabled(exports.PAYMENT_METHOD_CODES.CARD)&&this.bin.length>=6&&this.throttledFetchBinLookupIfChanged().then(e=>{this.updateInstallments(e)}))}updateInstallments(e){var t;if(this.paymentInstallmentsDropdown&&this.isBinLookupEnabled){const i=this.getinstallmentOptions(null===(t=null==e?void 0:e.issuerCountry)||void 0===t?void 0:t.code);i?this.paymentInstallmentsDropdown.updateInstallmentOptions(i):this.paymentInstallmentsDropdown.updateInstallmentOptions([])}}reset(){this.collectContainer.reset()}collectValues(){return t(this,void 0,void 0,function*(){return{cardData:yield this.collectContainer.collect(),storeInstrument:this.shouldStoreInstrument,selectedInstallment:this.selectedInstallment,enrollInstrumentToNetworkOffers:Boolean(this.enforceEnrollInstrumentToNetworkOffersForMasterCard()),billingInfo:this.billingAddress}})}get selectedInstallment(){var e;return null===(e=this.paymentInstallmentsDropdown)||void 0===e?void 0:e.selectedInstallmentValue}get billingAddress(){var e;return null===(e=this.addressComponent)||void 0===e?void 0:e.fullAddress}enforceEnrollInstrumentToNetworkOffersForMasterCard(){var e;return"mastercard"!==this.cardNetwork&&(null===(e=this.options)||void 0===e?void 0:e.enrollInstrumentToNetworkOffers)}fetchBinLookup(){return t(this,void 0,void 0,function*(){return this.isBinLookupEnabled?yield this.collectContainer.fetchBinLookup(this.bin):this.bin})}getinstallmentOptions(e){if(e){const t=le.getPaymentInstallmentOptions(exports.PAYMENT_METHOD_CODES.CARD);return t?t[e]:null}return null}unmount(){this.hide({reset:!0}),super.unmount()}mount(e){super.mount(e),this.show()}}class zn{constructor(e,t){this.isValid=!1,this.isReady=!1,this.cardNetwork="";const{events:i}=t;this.vaultElement=e.createCollectElement(t),this.type=t.type,(null==i?void 0:i.onFocus)&&this.vaultElement.on("FOCUS",i.onFocus),this.vaultElement.on("READY",()=>{var e,i;this.isReady=!0,null===(i=null===(e=t.events)||void 0===e?void 0:e.onReady)||void 0===i||i.call(e)}),this.vaultElement.on("CHANGE",e=>{const{isEmpty:t,isValid:n,network:s}=e;this.isValid=!t&&n,this.cardNetwork=null!=s?s:"",(null==i?void 0:i.onChange)&&i.onChange(this)})}updateStyles(e){var t,i;null===(i=(t=this.vaultElement).update)||void 0===i||i.call(t,{type:this.type,errorTextStyles:(null==e?void 0:e.errorTextStyles)||{base:{}},inputStyles:(null==e?void 0:e.inputStyles)||{},labelStyles:(null==e?void 0:e.labelStyles)||{}})}updateTranslations(e){var t,i,n,s;const o=null===(i=null===(t=null==e?void 0:e.translations)||void 0===t?void 0:t.error)||void 0===i?void 0:i.default;null===(s=(n=this.vaultElement).update)||void 0===s||s.call(n,Object.assign(Object.assign(Object.assign({type:this.type},void 0!==(null==e?void 0:e.label)&&{label:e.label}),void 0!==o&&{translations:{error:{default:o}}}),void 0!==(null==e?void 0:e.placeholder)&&{placeholder:e.placeholder}))}update(e){e.styles&&this.updateStyles(e.styles),e.translations&&this.updateTranslations(e.translations)}focus(){var e,t;null===(t=(e=this.vaultElement).focus)||void 0===t||t.call(e)}}class Hn extends Ui{constructor(e,t,i,n,s){super("div",{id:e,className:"payrails-dropin-item"}),this.events=n,this.styles=s,this.isActive=!1,this.mountContainerClass="payrails-dropin-item-container",this.element.setAttribute("data-testid",`dropin-item-${e}`),this.applyBaseStyles();const o=`payrails-dropin-item-${e}`,r=document.createElement("label");r.setAttribute("for",o),r.setAttribute("data-testid",`dropin-item-label-${e}`);const a=document.createElement("input");if(a.setAttribute("type","radio"),a.setAttribute("name","payment-option"),a.setAttribute("id",o),a.setAttribute("value",o),a.setAttribute("data-testid",`dropin-item-radio-${e}`),this.input=a,r.appendChild(a),this.label=r,i){const e=document.createElement("img");e.src=null!=i?i:"",e.className="payrails-store-instrument-icon",r.appendChild(e)}const l=document.createElement("span");r.appendChild(l),l.innerText=t,this.element.addEventListener("click",()=>{var e,t;null===(t=(e=this.label).onchange)||void 0===t||t.call(e,new Event("change"))}),this.element.appendChild(r);const d=document.createElement("div");d.setAttribute("class",this.mountContainerClass),d.setAttribute("data-testid","dropin-item-container"),this.element.appendChild(d)}get identifier(){return`payrails-dropin-item-${this.id}`}deactivate(){var e,t;this.isActive&&(this.isActive=!1,this.input.checked=!1,this.applyBaseStyles(),null===(e=this.component)||void 0===e||e.unmount(),(null===(t=this.events)||void 0===t?void 0:t.onDeactivate)&&this.events.onDeactivate())}applyBaseStyles(){var e,t;this.element.classList.remove("active"),Object.keys((null===(e=this.styles)||void 0===e?void 0:e.active)||{}).forEach(e=>{this.element.style.removeProperty(e)}),Object.assign(this.element.style,null===(t=this.styles)||void 0===t?void 0:t.base)}applyActiveStyles(){var e,t;this.element.classList.add("active"),Object.assign(this.element.style,null===(e=this.styles)||void 0===e?void 0:e.base,null===(t=this.styles)||void 0===t?void 0:t.active)}activate(){var e,t,i;this.isActive||(null===(e=this.component)||void 0===e||e.mount(`${this.selector} .${this.mountContainerClass}`),this.applyActiveStyles(),this.input.checked=!0,this.isActive=!0,(null===(t=this.events)||void 0===t?void 0:t.onActivate)&&this.events.onActivate(),(null===(i=this.events)||void 0===i?void 0:i.onPaymentOptionVisibilityChange)&&this.events.onPaymentOptionVisibilityChange())}mount(e){var t,i;super.mount(e),null===(i=null===(t=this.events)||void 0===t?void 0:t.onAvailable)||void 0===i||i.call(t)}}var qn;!function(e){e.AMEX="amex",e.DINERS="diners",e.DISCOVER="discover",e.HIPERCARD="hipercard",e.JCB="jcb",e.MAESTRO="maestro",e.MASTERCARD="mastercard",e.UNIONPAY="unionpay",e.VISA="visa"}(qn||(qn={}));const Wn={[exports.PAYMENT_METHOD_CODES.CARD]:"https://assets.payrails.io/img/logos/card/",[exports.PAYMENT_METHOD_CODES.PAYPAL]:"https://assets.payrails.io/img/logos/paypal/",[exports.PAYMENT_METHOD_CODES.APPLE_PAY]:"https://assets.payrails.io/img/logos/applepay/",[exports.PAYMENT_METHOD_CODES.GOOGLE_PAY]:"https://assets.payrails.io/img/logos/googlepay/"};class Kn extends Hn{constructor(e,t,i,n,s){const o=e.displayName&&""!==e.displayName?e.displayName:"Unavailable";super(`payrails-payment-instrument-${e.id}`,o,Kn.getInstrumentIcon(e),{onActivate:()=>{i(e),this.component.setDisabled(!1),this.installmentDropdown&&this.component.setPaymentInstallmentsDropdown(this.installmentDropdown)}},n),this.installmentDropdown=null,s&&(this.installmentDropdown=s),this.instrumentData=e,this.component=new $n(t,s)}static getInstrumentIcon(e){var t;if(e.paymentMethod===exports.PAYMENT_METHOD_CODES.CARD){const i=Wn[exports.PAYMENT_METHOD_CODES.CARD];switch(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.network){case qn.AMEX:return i+"amex.svg";case qn.DINERS:return i+"diners-club.svg";case qn.DISCOVER:return i+"discover.svg";case qn.HIPERCARD:return i+"hipercard.svg";case qn.JCB:return i+"jcb.svg";case qn.MAESTRO:return i+"maestro.svg";case qn.MASTERCARD:return i+"mastercard.svg";case qn.UNIONPAY:return i+"unionpay.svg";case qn.VISA:return i+"visa.svg"}return i+"default.svg"}return e.paymentMethod===exports.PAYMENT_METHOD_CODES.PAYPAL?Wn[exports.PAYMENT_METHOD_CODES.PAYPAL]+"logo.svg":e.paymentMethod===exports.PAYMENT_METHOD_CODES.APPLE_PAY?Wn[exports.PAYMENT_METHOD_CODES.APPLE_PAY]+"logo.svg":e.paymentMethod===exports.PAYMENT_METHOD_CODES.GOOGLE_PAY?Wn[exports.PAYMENT_METHOD_CODES.GOOGLE_PAY]+"logo.svg":""}updateInstallmentConfig(e){var t,i,n,s,o;if(!this.installmentDropdown||this.instrumentData.paymentMethod!==exports.PAYMENT_METHOD_CODES.CARD)return;const r=le.getPaymentInstallmentOptions(exports.PAYMENT_METHOD_CODES.CARD),a=null===(n=null===(i=null===(t=this.instrumentData.data)||void 0===t?void 0:t.binLookup)||void 0===i?void 0:i.issuerCountry)||void 0===n?void 0:n.code,l={installmentCurrency:(null===(s=pe().amount)||void 0===s?void 0:s.currency)||""};e&&Object.prototype.hasOwnProperty.call(e,"defaultInstallment")&&(l.defaultInstallment=null!==(o=e.defaultInstallment)&&void 0!==o?o:null);const d=a&&r?r[a]:void 0;l.installmentOptions=d||[],this.installmentDropdown.updateInstallmentConfig(l)}}class $n extends Ui{constructor(e,t){super("div",{id:"stored-instrument-container",className:"payrails-stored-instrument-container"}),this.paymentButton=e,this.paymentInstallmentDropdown=t,this.paymentInstallmentDropdown&&this.subElements.push(this.paymentInstallmentDropdown),this.subElements.push(this.paymentButton)}setDisabled(e){this.paymentButton.setDisabled(e),this.paymentInstallmentDropdown&&this.paymentInstallmentDropdown.setDisabled(e)}setPaymentInstallmentsDropdown(e){this.paymentInstallmentDropdown=e,this.paymentButton.setPaymentInstallmentsDropdown(e)}}class Zn extends Ui{constructor(e){super("div",{id:"payrails-card-list"}),this.listItems=[],le.savedCreditCards.forEach(t=>{const i=new Jn(()=>{(null==e?void 0:e.onCardChange)&&e.onCardChange(t)},t);this.listItems.push(i),this.subElements.push(i)})}reset(){this.element.querySelectorAll("input").forEach(e=>e.checked=!1)}}class Jn extends Ui{constructor(e,t){super("div",{className:"payrails-card-list-item",id:`payrails-card-list-item-${t.id}`});const{id:i}=t,n=t.displayName&&""!==t.displayName?t.displayName:"Unavailable",s=document.createElement("label");s.setAttribute("for",i),s.addEventListener("click",e);const o=document.createElement("input");o.setAttribute("type","radio"),o.setAttribute("name","payment-option"),o.setAttribute("id",i),o.setAttribute("value",i),s.appendChild(o);const r=document.createElement("span");r.className="payment-option-text",s.appendChild(r);const a=document.createElement("img");a.src=Kn.getInstrumentIcon(t),a.className="payment-option-icon",r.appendChild(a),r.appendChild(document.createTextNode(n)),this.element.appendChild(s)}}class Qn extends Ui{constructor(e){var t;super("div",{id:"authorization-failed-message"}),this.options=e;const i=(null===(t=null==e?void 0:e.translations)||void 0===t?void 0:t.label)||"Authorization failed, please try again.";this.element.innerText=i,this.setStyles((null==e?void 0:e.styles)||{}),this.element.innerHTML=`\n <div>\n <svg class="checkmark-cross" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">\n <circle class="checkmark-cross_circle" cx="26" cy="26" r="25" fill="none"/>\n <path class="checkmark-cross_check" fill="none" d="M14.1 14.1l23.8 23.8 m0,-23.8 l-23.8,23.8"/>\n </svg>\n </div>\n <div class="payrails-auth-failed-label">${i}</div>`,this.element.addEventListener("click",e=>{e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),this.unmount()})}mount(e){super.mount(e),this.scheduleAutoHide()}setStyles(e){Object.keys(e).forEach(t=>{this.element.style[t]=e[t]})}scheduleAutoHide(){var e,t;const i=null===(t=null===(e=this.options)||void 0===e?void 0:e.configuration)||void 0===t?void 0:t.autoHideTTL;i&&setTimeout(()=>{this.unmount()},i)}}class es extends Ui{constructor(e){var t;super("div",{id:"payrails-authorization-success-msg"}),this.setStyles((null==e?void 0:e.styles)||{}),this.element.innerHTML=`\n <div class="checkmark-wrapper">\n <svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">\n <circle class="checkmark__circle" cx="26" cy="26" r="25" fill="none"/>\n <path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>\n </svg>\n </div>\n <div id="payrails-authorization-success">${(null===(t=null==e?void 0:e.translations)||void 0===t?void 0:t.label)||"Payment successful"}</div`}setStyles(e){Object.keys(e).forEach(t=>{this.element.style[t]=e[t]})}}class ts extends Ui{constructor(e){super("div",{id:"payrails-dropin-loader",className:"payrails-dropin-loader-wrapper"}),this.options=e,this.selectors={[is.overlay]:".loading-overlay",[is.loader]:".lds-ring .loading-ring"},this.element.innerHTML="\n <div class='loading-overlay'>\n <div class='lds-ring'>\n <div></div>\n <div></div>\n <div></div>\n <div class='loading-ring'></div>\n </div>\n </div>\n "}mount(e){var t;(null===(t=this.options)||void 0===t?void 0:t.styles)&&this.setStyles(this.options.styles),super.mount(e)}setStyles(e){Object.keys(e).forEach(t=>{const i=t;e[i]&&this.applyStyles(i,e[i])})}applyStyles(e,t){const i=this.element.querySelector(this.selectors[e]);i&&Object.keys(t).forEach(e=>{i.style[e]=t[e]})}}var is;!function(e){e.overlay="overlay",e.loader="loader"}(is||(is={}));const ns="https://assets.payrails.io/img/logos";function ss(e=""){switch(e=e.trim().split(/\s+/).join("").toLowerCase()){case"adyen-old":e="adyen";break;case"checkout.com":e="checkout";break;case"visaoffersplatform":e="visa";break;case"bankAccount":e="banktransfer"}return"card"!==e?`${ns}/${e}/logo.svg`:`${ns}/card/credit-card-regular.svg`}class os extends Hn{constructor(){super(...arguments),this.buttonShown=!1}activate(){var e,t;if(!this.buttonShown)return super.activate(),void(this.buttonShown=!0);this.applyActiveStyles(),this.isActive=!0;const i=this.element.querySelector(this.component.selector);i&&(i.style.display="block"),null===(t=null===(e=this.events)||void 0===e?void 0:e.onPaymentOptionVisibilityChange)||void 0===t||t.call(e)}deactivate(){if(!this.isActive)return;this.isActive=!1,this.applyBaseStyles();const e=this.element.querySelector(this.component.selector);e&&(e.style.display="none")}mountAfterAvailable(){var e,t;super.mount(`#${this.loadElementId}`),null===(t=null===(e=this.events)||void 0===e?void 0:e.onAvailable)||void 0===t||t.call(e)}mount(e){const t=document.querySelector(e);if(!t){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING);throw o.PayrailsLogger.error(e.message,{error:e}),e}const i=document.createElement("div");i.setAttribute("id",this.loadElementId),i.setAttribute("style","width: 100%;"),t.appendChild(i)}unmount(){var e;super.unmount(),null===(e=document.querySelector(`#${this.loadElementId}`))||void 0===e||e.remove()}}class rs extends os{constructor(e){var t,i;super("apple-pay-dropin",(null===(i=null===(t=e.translations)||void 0===t?void 0:t.labels)||void 0===i?void 0:i.label)||"Apple Pay",e.showPaymentMethodLogo?ss("applepay"):void 0,void 0,e.styles),this.loadElementId="apple-pay-dropin-load-element",this.component=new Cn(Object.assign(Object.assign({},e),{events:Object.assign(Object.assign({},e.events),{onApplePayAvailable:()=>{this.mountAfterAvailable()}})}))}}class as extends Hn{constructor(e,t,i){var n,s;super("payrails-credit-card-wrapper",(null===(s=null===(n=i.translations)||void 0===n?void 0:n.labels)||void 0===s?void 0:s.label)||"Card",i.showPaymentMethodLogo?ss("card"):void 0,Object.assign({},i.events),Object.assign({},i.styles)),this.cardForm=e,this.paymentButton=t,this.cardFormShown=!1,this.component=new ls(e,t)}activate(){var e,t,i;this.applyActiveStyles(),this.cardFormShown||(this.cardFormShown=!0,null===(e=this.component)||void 0===e||e.mount(this.selector)),this.isActive||(this.paymentButton.selectedInstrument=null,this.paymentButton.mount(this.selector),this.paymentButton.setDisabled(!this.cardForm.isValid),this.paymentButton.mount("#payrails-card-form"),this.input.checked=!0,this.cardForm.show(),this.isActive=!0,(null===(t=this.events)||void 0===t?void 0:t.onActivate)&&this.events.onActivate(),(null===(i=this.events)||void 0===i?void 0:i.onPaymentOptionVisibilityChange)&&this.events.onPaymentOptionVisibilityChange())}deactivate(){var e;this.isActive&&(this.applyBaseStyles(),this.paymentButton.unmount(),this.cardForm.hide(),this.isActive=!1,(null===(e=this.events)||void 0===e?void 0:e.onDeactivate)&&this.events.onDeactivate())}}class ls extends Ui{constructor(e,t){super("div",{id:"payrails-form-container"}),this.subElements.push(e,t)}}var ds;exports.ACTION_REQUIRED_KIND=void 0,(ds=exports.ACTION_REQUIRED_KIND||(exports.ACTION_REQUIRED_KIND={})).GENERIC_REDIRECT="genericRedirect",ds.THREE_DS="3ds";const cs=new class{constructor(){this.handlers=new Map}on(e,t){let i=this.handlers.get(e);return i||(i=new Set,this.handlers.set(e,i)),i.add(t),()=>this.off(e,t)}off(e,t){var i;null===(i=this.handlers.get(e))||void 0===i||i.delete(t)}hasListeners(e){const t=this.handlers.get(e);return!!t&&t.size>0}emit(e,i){return t(this,void 0,void 0,function*(){const t=this.handlers.get(e);if(t&&0!==t.size)for(const n of Array.from(t))try{yield n(i)}catch(t){const i=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_UNKNOWN_ERROR,{description:`Handler for "${e}" threw`,cause:t});o.PayrailsLogger.error(i.message,{error:i})}})}reset(){this.handlers.clear()}};function us(){return cs}const ps="actionRequired";function hs(e){return t(this,arguments,void 0,function*({url:e,kind:t,paymentMethodCode:i,executionId:n}){var s;let o=!1;const r={url:e,kind:t,paymentMethodCode:i,executionId:null!==(s=null!=n?n:le.executionId)&&void 0!==s?s:"",preventDefault:()=>{o=!0}};return yield us().emit(ps,r),o})}function _s(){return us().hasListeners(ps)}class Es{constructor(e,t,i,n=ms.THREE_DS){this.link=e,this.paymentExecutor=t,this.options=i,this.type=n,this.THREE_DS_SIZES=[[250,400],[390,400],[500,600],[600,450]],this.internalPopupBackground=null,this.SCREEN_WIDTH=window.innerWidth,this.SCREEN_HEIGHT=window.innerHeight}get iframeSize(){return this.type===ms.THREE_DS?this.THREE_DS_SIZES.reduce((e,t)=>this.SCREEN_WIDTH>t[0]?t:e,[250,400]):[this.SCREEN_WIDTH-50,this.SCREEN_HEIGHT-50]}get popupBackground(){if(this.internalPopupBackground)return this.internalPopupBackground;{const e=document.createElement("div");e.setAttribute("id","payrails-popup-background"),e.appendChild(this.popup),this.internalPopupBackground=e}return this.internalPopupBackground}get popupCancelButton(){const e=document.createElement("button");return e.setAttribute("id","payrails-popup-cancel-button"),e.setAttribute("type","button"),e.setAttribute("aria-label","Close"),e.addEventListener("click",()=>{Ee.getEventBus().emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),ao(so.AUTHORIZE,this.options.events,{code:exports.AuthorizationFailureReasons.USER_CANCELLED,message:"User cancelled the authorization."}),this.unmount()}),e}get popup(){const e=document.createElement("div");return e.setAttribute("id","payrails-popup"),e.setAttribute("width",this.iframeSize[0].toString()),e.setAttribute("height",this.iframeSize[1].toString()),!0===this.options.showCancelButton&&e.appendChild(this.popupCancelButton),e.appendChild(this.iframe),e.style.width=`${this.iframeSize[0]+4}px`,e.style.height=`${this.iframeSize[1]+4}px`,e}get iframe(){const e=document.createElement("iframe");return e.setAttribute("id","payrails-frame"),e.setAttribute("src",this.link),e.setAttribute("width",this.iframeSize[0].toString()),e.setAttribute("height",this.iframeSize[1].toString()),e.setAttribute("allow","clipboard-write; clipboard-read"),e}handleMessages(){const e=i=>t(this,void 0,void 0,function*(){var t,n,s,o,r;if(i.data&&'{"type":"3DS-challenge-completed"}'===i.data){window.removeEventListener("message",e);const i=yield this.paymentExecutor.pollForAuthorizationResult(le.url);switch(null===(t=i.finalState)||void 0===t?void 0:t.code){case"authorizeSuccessful":ro(so.AUTHORIZE,this.options.events);break;case"authorizePending":co(so.AUTHORIZE,this.options.events);break;default:ao(so.AUTHORIZE,this.options.events,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(r=null===(o=null===(s=null===(n=i.finalState)||void 0===n?void 0:n.errors)||void 0===s?void 0:s[0])||void 0===o?void 0:o.reason)||void 0===r?void 0:r.result)||"Authorization failed after 3DS challenge."})}this.unmount()}});window.addEventListener("message",e)}mount(){var e;this.popup.remove(),null===(e=document.querySelector("body"))||void 0===e||e.appendChild(this.popupBackground),this.handleMessages()}unmount(){this.popupBackground.remove(),this.internalPopupBackground=null}}var ms;!function(e){e[e.THREE_DS=0]="THREE_DS",e[e.GENERIC_REDIRECT=1]="GENERIC_REDIRECT"}(ms||(ms={}));const vs="https://assets.payrails.io/img/logos/revolutpay/button",ys={backgroundRepeat:"no-repeat",backgroundPosition:"center",backgroundSize:"contain",backgroundColor:"transparent",fontSize:"0",color:"transparent",padding:"0",display:"block",maxWidth:"100%",margin:"0 auto",aspectRatio:"250 / 44",border:"none",cursor:"pointer",transition:"opacity 0.2s ease"},Is="lightOutline",fs="Pay with Revolut Pay",As={dark:{base:{backgroundImage:`url(${`${vs}/dark/Medium.svg`})`},hover:{opacity:"0.85"},loading:{backgroundImage:"none",backgroundColor:"#191C1F",color:"#FFFFFF"}},light:{base:{backgroundImage:`url(${`${vs}/white/Medium.svg`})`},hover:{opacity:"0.85"},loading:{backgroundImage:"none",backgroundColor:"#FFFFFF",color:"#191C1F"}},lightOutline:{base:{backgroundImage:`url(${`${vs}/outline/Medium.svg`})`},hover:{opacity:"0.85"},loading:{backgroundImage:"none",backgroundColor:"#FFFFFF",color:"#191C1F"}}};function Ls(e){var t;const i=null==e?void 0:e.theme,n=As[i&&i in As?i:Is],s={width:null!==(t=null==e?void 0:e.width)&&void 0!==t?t:"250px"};return(null==e?void 0:e.borderRadius)&&(s.borderRadius=e.borderRadius),{base:Object.assign(Object.assign(Object.assign({},ys),null==n?void 0:n.base),s),hover:Object.assign({},null==n?void 0:n.hover),loading:Object.assign(Object.assign({},null==n?void 0:n.loading),s)}}const gs="__PAYRAILS__TAB_MANUAL_CLOSE_ERROR__",Os={label:"Generic redirect"},Ts={pix:75e4,modo:6e5},Cs={showCancelButton:!0};class Rs extends Ui{constructor(e,t){var i,n,s;super("button",{id:`payrails-generic-redirect-${e.paymentMethod.paymentMethodCode}`,className:"payrails-generic-button"}),this.returnInfo=t,this.popup=null,this.isDisabled=!1,this.isLoading=!1,this.isRevolutPay=e.paymentMethod.paymentMethodCode===exports.PAYMENT_METHOD_CODES.REVOLUT_PAY,this.options=Object.assign(Object.assign({},e),{styles:this.isRevolutPay?Ls(e.styles):e.styles,translations:this.isRevolutPay?{label:fs}:e.translations}),this.element.innerText=null!==(n=null===(i=this.options.translations)||void 0===i?void 0:i.label)&&void 0!==n?n:Os.label,(null===(s=this.options.styles)||void 0===s?void 0:s.base)&&this.setStyles(this.options.styles.base),this.element.addEventListener("click",this.onClick.bind(this)),this.element.addEventListener("mouseenter",()=>{var e;!this.isDisabled&&(null===(e=this.options.styles)||void 0===e?void 0:e.hover)&&this.setStyles(this.options.styles.hover)}),this.element.addEventListener("mouseleave",()=>{var e;!this.isDisabled&&(null===(e=this.options.styles)||void 0===e?void 0:e.hover)&&this.removeStyles(this.options.styles.hover)}),this.paymentExecutor=new cn(this.returnInfo),this.eventBus.on("PAYRAILS_CLIENT_SESSION_EXPIRED",()=>{this.triggerLoading(!1)})}setStyles(e){var t;const i=Object.assign(Object.assign({},null===(t=this.options.styles)||void 0===t?void 0:t.base),e);Object.keys(i).forEach(e=>{this.element.style[e]=i[e]})}removeStyles(e){var t;const i=Object.keys((null===(t=this.options.styles)||void 0===t?void 0:t.base)||{});Object.keys(e).forEach(e=>{var t,n;i.includes(e)?this.element.style[e]=null===(n=null===(t=this.options.styles)||void 0===t?void 0:t.base)||void 0===n?void 0:n[e]:this.element.style[e]=""})}triggerLoading(e){var t,i,n,s;this.isDisabled=e,this.isLoading=e,e?(this.element.innerHTML='\n <div class="dot-flashing-container">\n <div class="dot-flashing"></div>\n <span class="dot-flashing-text" aria-hidden="true">Loading</span>\n </div>\n ',(null===(t=this.options.styles)||void 0===t?void 0:t.loading)&&this.setStyles(this.options.styles.loading)):(this.element.innerText=null!==(n=null===(i=this.options.translations)||void 0===i?void 0:i.label)&&void 0!==n?n:Os.label,this.removeStyles((null===(s=this.options.styles)||void 0===s?void 0:s.loading)||{}))}isSafari(){const e=navigator.userAgent.toLowerCase();return e.includes("safari")&&!e.includes("chrome")&&!e.includes("chromium")}onClick(){return t(this,void 0,void 0,function*(){var e,t;if(this.isDisabled)return;let i=null;this.options.openInNewTab&&this.isSafari()&&(i=window.open("","_blank"));try{this.triggerLoading(!0);if(!(yield uo(so.AUTHORIZE,null!==(e=this.options.events)&&void 0!==e?e:{})))return this.triggerLoading(!1),void(i&&!i.closed&&i.close());const n=null===(t=le.availablePaymentMethods.find(({paymentMethodCode:e})=>e===this.options.paymentMethod.paymentMethodCode))||void 0===t?void 0:t.integrationType;if(!n)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CONFIG_MALFORMED);const o=yield this.paymentExecutor.pay([{paymentMethodCode:this.options.paymentMethod.paymentMethodCode,integrationType:n,amount:pe().amount}]),{action:r,link:a}=this.handleAuthorizationResult(o);if("redirect"!==r)return void(i&&!i.closed&&i.close());if(!a)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_GENERIC_REDIRECT_MISSING_REDIRECT_LINK);if(_s()){if(yield hs({url:a,kind:exports.ACTION_REQUIRED_KIND.GENERIC_REDIRECT,paymentMethodCode:this.options.paymentMethod.paymentMethodCode}))return i&&!i.closed&&i.close(),void this.triggerLoading(!1)}if(Object.keys(Ts).includes(this.options.paymentMethod.paymentMethodCode)){i&&!i.closed&&i.close();const e=Ts[this.options.paymentMethod.paymentMethodCode],t=2e4,n=2e3,s=Math.ceil((e-t)/n);return new cn(this.returnInfo,n,s,t).pollForAuthorizationResult(le.url,0,["authorizeSuccessful","authorizeFailed"]).then(e=>{var t;this.handleAuthorizationResult(e),null===(t=this.popup)||void 0===t||t.unmount()}),this.createPopupWithTimeout(a,e)}return this.redirectToPaymentLink(a,i)}catch(e){i&&!i.closed&&i.close(),e instanceof s.PayrailsError&&o.PayrailsLogger.error(e.message,{error:e}),ao(so.AUTHORIZE,this.options.events),this.triggerLoading(!1)}finally{this.isLoading||this.triggerLoading(!1)}})}handleAuthorizationResult(e){var t,i;if("authorizePending"===(null===(t=null==e?void 0:e.finalState)||void 0===t?void 0:t.code)){const t=e.response.links.redirect;if(!t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_GENERIC_REDIRECT_MISSING_REDIRECT_LINK);return{code:"authorizePending",link:t,action:"redirect"}}return"authorizeSuccessful"===(null===(i=null==e?void 0:e.finalState)||void 0===i?void 0:i.code)?(ro(so.AUTHORIZE,this.options.events),{code:"authorizeSuccessful",action:"success"}):(ao(so.AUTHORIZE,this.options.events,e),this.triggerLoading(!1),{code:"authorizeFailed",action:"fail"})}createPopupWithTimeout(e,t){return new Promise(()=>{const i=new Es(e,this.paymentExecutor,Object.assign(Object.assign({},this.options),Cs));this.popup=i,this.popup.mount(),setTimeout(()=>{null==i||i.unmount(),ao(so.AUTHORIZE,this.options.events),this.triggerLoading(!1)},t)})}redirectToPaymentLink(e,t=null){return new Promise(i=>{if(this.options.openInNewTab){const n=t||window.open(e,"_blank");if(!n||n.closed||void 0===n.closed){o.PayrailsLogger.warn("Popup blocked. Falling back to same tab redirect."),window.location.href=e;const t=setTimeout(()=>{var e;ao(so.AUTHORIZE,this.options.events),(null===(e=this.returnInfo)||void 0===e?void 0:e.error)?window.location.href=this.returnInfo.error:(this.triggerLoading(!1),this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}))},6e4);return window.addEventListener("pagehide",()=>{clearTimeout(t)}),void i()}t&&(n.location.href=e),this.monitorRedirectInNewTab(n).finally(()=>{i()})}else{window.location.href=e;const t=setTimeout(()=>{var e;ao(so.AUTHORIZE,this.options.events),(null===(e=this.returnInfo)||void 0===e?void 0:e.error)?window.location.href=this.returnInfo.error:(this.triggerLoading(!1),this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}))},6e4);window.addEventListener("pagehide",()=>{clearTimeout(t)}),i()}})}monitorRedirectInNewTab(e){return t(this,void 0,void 0,function*(){var t,i,n,s,r,a;let l;try{l=le.url}catch(n){return o.PayrailsLogger.error("Unable to resolve workflow execution URL.",{error:n}),this.triggerLoading(!1),e.closed||e.close(),void(null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onAuthorizeFailed)||void 0===i||i.call(t,{code:exports.AuthorizationFailureReasons.UNKNOWN_ERROR,message:"Unable to resolve workflow execution URL.",rawError:n}))}const d=new cn(this.returnInfo),c=new AbortController,{promise:u,cleanup:p}=this.watchTabClosure(e,()=>{c.signal.aborted||c.abort(gs),this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{})});try{const e=yield Promise.race([d.pollForAuthorizationResult(l,0,["authorizeSuccessful","authorizeFailed"],{signal:c.signal}),u]);c.signal.aborted||c.abort("authorization-completed"),this.handleAuthorizationResult(e)}catch(e){if(c.signal.aborted||c.abort(e),e===gs){try{const e=new cn(this.returnInfo,1e3,3,0),t=yield e.pollForAuthorizationResult(l,0,["authorizeSuccessful","authorizeFailed"]);return void this.handleAuthorizationResult(t)}catch(e){}null===(s=null===(n=this.options.events)||void 0===n?void 0:n.onAuthorizeFailed)||void 0===s||s.call(n,{code:exports.AuthorizationFailureReasons.USER_CANCELLED,message:"User closed the payment window before completion."})}else o.PayrailsLogger.error("Failed to retrieve authorization result after redirect.",{error:e}),null===(a=null===(r=this.options.events)||void 0===r?void 0:r.onAuthorizeFailed)||void 0===a||a.call(r,{code:exports.AuthorizationFailureReasons.UNKNOWN_ERROR,message:"Failed to retrieve authorization result after redirect.",rawError:e})}finally{c.signal.aborted||c.abort("cleanup"),p(),e.closed||e.close(),this.triggerLoading(!1)}})}watchTabClosure(e,t){let i,n=!0;const s=()=>{void 0!==i&&(window.clearInterval(i),i=void 0),n=!1};return{promise:new Promise((o,r)=>{i=window.setInterval(()=>{if(!n)return;let i=!1;try{i=e.closed}catch(e){i=!0}i&&(s(),null==t||t(),r(gs))},500)}),cleanup:s}}updateStyles(e){var t,i;this.isRevolutPay?this.options.styles=Ls(e):this.options.styles=Object.assign(Object.assign({},this.options.styles||{}),e),this.isLoading?this.setStyles((null===(t=this.options.styles)||void 0===t?void 0:t.loading)||{}):this.setStyles((null===(i=this.options.styles)||void 0===i?void 0:i.base)||{})}updateTranslations(e){var t,i;this.isRevolutPay||(this.options.translations=Object.assign(Object.assign({},this.options.translations||{}),e),this.element.innerText=null!==(i=null===(t=this.options.translations)||void 0===t?void 0:t.label)&&void 0!==i?i:Os.label)}updateEvents(e){this.options.events=Object.assign(Object.assign({},this.options.events||{}),e)}update(e){e.styles&&this.updateStyles(e.styles),e.translations&&this.updateTranslations(e.translations),e.events&&this.updateEvents(e.events)}}const Ns=e=>e===exports.PAYMENT_METHOD_CODES.GENERIC_REDIRECT?{translations:{label:"Mercado Pago",button:{label:"Pay with Mercado Pago"}}}:{translations:{label:e,button:{label:`Pay with ${e}`}}};class Ss extends Hn{constructor(e,t){var i,n,s,o,r,a;super(`payrails-${e.paymentMethod.paymentMethodCode}-dropin-element`,(null===(i=null==e?void 0:e.translations)||void 0===i?void 0:i.label)||Ns(e.paymentMethod.paymentMethodCode).translations.label,(null===(n=e.config)||void 0===n?void 0:n.showPaymentMethodLogo)?ss(e.paymentMethod.paymentMethodCode):void 0,null==e?void 0:e.events,null===(s=null==e?void 0:e.styles)||void 0===s?void 0:s.element),this.returnInfo=t,this.component=new Rs({styles:null===(o=null==e?void 0:e.styles)||void 0===o?void 0:o.button,translations:(null===(r=null==e?void 0:e.translations)||void 0===r?void 0:r.button)||Ns(e.paymentMethod.paymentMethodCode).translations.button,events:null==e?void 0:e.events,paymentMethod:e.paymentMethod,openInNewTab:null===(a=e.config)||void 0===a?void 0:a.openInNewTab},this.returnInfo)}}class Ps{constructor(e,t){this.options=e,this.paymentExecutor=t}handle3ds(e){return t(this,void 0,void 0,function*(){var t,i,n,s;try{null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onThreeDSecureChallenge)||void 0===i||i.call(t)}catch(e){}const o=null===(n=null==e?void 0:e.response)||void 0===n?void 0:n.links["3ds"];if(o){if(_s()){if(yield hs({url:o,kind:exports.ACTION_REQUIRED_KIND.THREE_DS,paymentMethodCode:null!==(s=this.options.paymentMethodCode)&&void 0!==s?s:""}))return}if(this.options.redirectFor3DS)window.location.assign(o);else{new Es(o,this.paymentExecutor,this.options).mount()}}})}}const bs={apiVersion:2,apiVersionMinor:0},Ds=new Set(["BHD","IQD","JOD","KWD","LYD","OMR","TND"]);let Ms=class e extends Tn{static getGooglePayConfigAsArray(e){return Array.isArray(e)?e:e.allowedPaymentMethods?e.allowedPaymentMethods:[]}static getSDKClient(){return t(this,arguments,void 0,function*(t=exports.PayrailsEnvironment.TEST,i){return yield In.load(yn.GooglePay),e.googleSDKClient||(e.googleSDKClient=new google.payments.api.PaymentsClient({environment:t,merchantInfo:i})),e.googleSDKClient})}static isGooglePayAvailable(i){return t(this,arguments,void 0,function*(t,i=exports.PayrailsEnvironment.TEST,n){var s,o,r,a;try{const l=Array.isArray(t)||null===(s=t.merchantInfo)||void 0===s?void 0:s.merchantName,d={merchantId:null!==(o=null==n?void 0:n.merchantId)&&void 0!==o?o:"",merchantName:null!==(a=null!==(r=null==n?void 0:n.merchantName)&&void 0!==r?r:l)&&void 0!==a?a:""},c=yield e.getSDKClient(i,d),u=e.getGooglePayConfigAsArray(t),p=Object.assign(Object.assign(Object.assign({},bs),{allowedPaymentMethods:u}),!Array.isArray(t)&&void 0!==t.existingPaymentMethodRequired&&{existingPaymentMethodRequired:t.existingPaymentMethodRequired}),{result:h}=yield c.isReadyToPay(p);return h}catch(e){return!1}})}constructor(t){var i;super("div",Object.assign(Object.assign({},t),{id:`payrails-google-pay-button-${q()}`,dataTestId:"payrails-google-pay-button"})),this.options=t,this.sdkLoadedCalled=!1,this.isProcessing=!1,this.buttonElement=null,this.paymentExecutor=new cn(null===(i=this.options)||void 0===i?void 0:i.returnInfo),e.isGooglePayAvailable(le.googlePayConfig,this.options.environment,this.options.merchantInfo).then(e=>{var t,i,n;e&&(null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onGooglePayAvailable)||void 0===n||n.call(i))}),this.action="tokenization"===pe().type?so.TOKENIZE:so.AUTHORIZE}sdkLoaded(i){return t(this,void 0,void 0,function*(){var n,s,o,r,a,l,d,c,u,p,h,_;if(this.sdkLoadedCalled)return this.buttonElement;this.sdkLoadedCalled=!0;const E=(null===(s=null===(n=this.options)||void 0===n?void 0:n.styles)||void 0===s?void 0:s.buttonColor)||"black",m=(null===(r=null===(o=this.options)||void 0===o?void 0:o.styles)||void 0===r?void 0:r.buttonType)||"long",v=(null===(l=null===(a=this.options)||void 0===a?void 0:a.styles)||void 0===l?void 0:l.buttonSizeMode)||"fill";(null===(c=null===(d=this.options)||void 0===d?void 0:d.styles)||void 0===c?void 0:c.buttonLocale)&&console.warn("Payrails: styles.buttonLocale is deprecated and will be removed in a future release. Use styles.locale instead.");const y=(null===(p=null===(u=this.options)||void 0===u?void 0:u.styles)||void 0===p?void 0:p.locale)||(null===(_=null===(h=this.options)||void 0===h?void 0:h.styles)||void 0===_?void 0:_.buttonLocale),I=y?(f=gn(y),An(f).split("-")[0]):void 0;var f;const A=e.getGooglePayConfigAsArray(le.googlePayConfig);return this.buttonElement=i.createButton({buttonColor:E,buttonType:m,buttonSizeMode:v,buttonLocale:I,onClick:()=>t(this,void 0,void 0,function*(){if(this.isProcessing)return;this.isProcessing=!0;(yield uo(this.action,this.options.events))?yield this.authorize(i):this.isProcessing=!1}),allowedPaymentMethods:A}),this.element.appendChild(this.buttonElement),this.buttonElement})}authorize(i){return t(this,void 0,void 0,function*(){var t,n,s,r,a,l,d;const c=le.googlePayConfig,u=!Array.isArray(c),p=pe().amount,h=null===(r=null===(s=null===(n=null===(t=le.meta)||void 0===t?void 0:t.order)||void 0===n?void 0:n.billingAddress)||void 0===s?void 0:s.country)||void 0===r?void 0:r.code,_=!!(null==p?void 0:p.currency)&&Ds.has(p.currency);_&&o.PayrailsLogger.debug(`Payrails: 3-decimal currency ${null==p?void 0:p.currency}, omitting totalPrice`);const E=Object.assign(Object.assign({},u&&void 0!==c.apiVersion?{apiVersion:c.apiVersion,apiVersionMinor:c.apiVersionMinor}:bs),{allowedPaymentMethods:e.getGooglePayConfigAsArray(c),transactionInfo:_?{totalPriceStatus:"NOT_CURRENTLY_KNOWN",currencyCode:null==p?void 0:p.currency,countryCode:h}:{totalPriceStatus:"FINAL",totalPrice:null==p?void 0:p.value,currencyCode:null==p?void 0:p.currency,countryCode:h},merchantInfo:{merchantId:(null===(a=this.options.merchantInfo)||void 0===a?void 0:a.merchantId)||"",merchantName:(null===(l=this.options.merchantInfo)||void 0===l?void 0:l.merchantName)||(null===(d=c.merchantInfo)||void 0===d?void 0:d.merchantName)||""}});u&&(void 0!==c.emailRequired&&(E.emailRequired=c.emailRequired),void 0!==c.shippingAddressRequired&&(E.shippingAddressRequired=c.shippingAddressRequired),c.shippingAddressParameters&&(E.shippingAddressParameters=c.shippingAddressParameters));try{const e=yield i.loadPaymentData(E);yield this.onLoadPaymentData(e)}catch(e){this.isProcessing=!1,ao(this.action,this.options.events,e)}})}onLoadPaymentData(e){return t(this,void 0,void 0,function*(){(yield ki(this.action,this.options.events))?(this.action===so.TOKENIZE?yield this.doTokenize(e):yield this.doAuthorizePayment(e),this.isProcessing=!1):this.isProcessing=!1})}doTokenize(e){return t(this,void 0,void 0,function*(){const t=pe(),i=le.createInstrumentLink,n=t.token;if(!i)return this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events);let s;try{s=JSON.stringify(e)}catch(e){return this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events,e)}const o={holderReference:t.holderReference,paymentMethod:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,storeInstrument:this.shouldStoreInstrument,data:{paymentToken:s}};try{const e=yield ne({url:i,token:n,body:o});return e.ok?(this.isProcessing=!1,ro(so.TOKENIZE,this.options.events,e.res),e.res):(this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events))}catch(e){return this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events,e)}})}doAuthorizePayment(e){return t(this,void 0,void 0,function*(){var t,i,n,s,o,r;const a={paymentToken:JSON.stringify(e)},l=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,integrationType:"api",paymentInstrumentData:a,amount:pe().amount,storeInstrument:this.shouldStoreInstrument}],d=yield this.paymentExecutor.pay(l);if("authorizePending"===(null===(t=null==d?void 0:d.finalState)||void 0===t?void 0:t.code)){const e=new Ps(Object.assign(Object.assign({},this.options),{paymentMethodCode:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY}),this.paymentExecutor);yield e.handle3ds(d)}else"authorizeSuccessful"===(null===(i=null==d?void 0:d.finalState)||void 0===i?void 0:i.code)?ro(so.AUTHORIZE,this.options.events):ao(so.AUTHORIZE,this.options.events,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(r=null===(o=null===(s=null===(n=d.finalState)||void 0===n?void 0:n.errors)||void 0===s?void 0:s[0])||void 0===o?void 0:o.reason)||void 0===r?void 0:r.result)||"Authorization Failed"})})}mount(i){super.mount(i),(()=>{t(this,void 0,void 0,function*(){var t;try{if(yield e.isGooglePayAvailable(le.googlePayConfig,this.options.environment,this.options.merchantInfo)){const i=yield e.getSDKClient(this.options.environment,this.options.merchantInfo),n=yield this.sdkLoaded(i);this.element.appendChild(n),null===(t=this.storeInstrumentCheckbox)||void 0===t||t.mount(this.selector)}}catch(e){}})})()}unmount(){var e;null===(e=this.storeInstrumentCheckbox)||void 0===e||e.unmount(),this.buttonElement=null,super.unmount()}};Ms.googleSDKClient=null;class ws{constructor(e=exports.PayrailsEnvironment.TEST){this.environment=e,this.iframe=null,this.bus=Ee.getEventBus(),this.destroyed=!1,this.controller=new AbortController,this.busTeardowns=[],this.frameId=q(),this.readyPromise=this.armReadyPromise()}createIframe(){const e=document.createElement("iframe");var t;return e.src=(t=this.frameId,`https://assets.payrails.io/apps/secure-frame/v1/index.html?mode=${Ee.SecureFrameMode.Collect}&type=${Ee.SecureFrameType.GooglePay}&id=${t}`),e.setAttribute("data-payrails-gpay-frame",this.frameId),e.allow="payment",e.setAttribute("sandbox","allow-scripts allow-popups allow-same-origin allow-forms"),e.setAttribute("id",this.frameId),e.style.border="none",e}attachIframe(e,t){this.iframe=this.createIframe(),t.hidden&&(this.iframe.width="0",this.iframe.height="0",this.iframe.style.display="none"),e.appendChild(this.iframe)}armReadyPromise(){const e=`${this.frameId}-${Ee.COLLECT_FRAME_EVENT_NAMES.READY}`,t=`${this.frameId}-${Ee.COLLECT_FRAME_EVENT_NAMES.ERROR}`;return new Promise((i,n)=>{const s=()=>{this.bus.off(e,s),this.bus.off(t,r),i()},r=i=>{var a;this.bus.off(e,s),this.bus.off(t,r);const l=i;o.PayrailsLogger.error(null!==(a=null==l?void 0:l.message)&&void 0!==a?a:"Google Pay secure-frame error",{extra:l}),n(i)};this.bus.on(e,s),this.bus.on(t,r)})}isGooglePayAvailable(e){return t(this,void 0,void 0,function*(){var t;if(this.destroyed)return!1;try{if(this.attachIframe(document.body,{hidden:!0}),yield this.readyPromise,this.destroyed)return!1;const t=yield this.bus.emitAndResolve(`${this.frameId}-${Ee.COLLECT_FRAME_EVENT_NAMES.IS_AVAILABLE}`,{googlePayConfig:e,environment:this.environment},"*",this.controller.signal);return Boolean(null==t?void 0:t.result)}catch(e){return!1}finally{null===(t=this.iframe)||void 0===t||t.remove(),this.iframe=null}})}mountButton(e){return t(this,void 0,void 0,function*(){this.destroyed||(this.readyPromise=this.armReadyPromise(),this.attachIframe(e.target,{hidden:!1}),this.applyMountSizing(e.buttonStyle),this.registerCollectListeners(e),yield this.requestShow(e))})}applyMountSizing(e){this.iframe&&(this.iframe.style.width="static"===e.buttonSizeMode?"0px":"100%",this.iframe.style.height="0px")}registerCollectListeners(e){const i=`${this.frameId}-${Ee.COLLECT_FRAME_EVENT_NAMES.RESIZE}`,n=e=>{var t;const{width:i,height:n}=null!==(t=e)&&void 0!==t?t:{};this.iframe&&(i&&(this.iframe.style.width=i),n&&(this.iframe.style.height=n))};this.bus.on(i,n),this.busTeardowns.push(()=>this.bus.off(i,n));const s=this.bus.onAndEmit(`${this.frameId}-${Ee.COLLECT_FRAME_EVENT_NAMES.BUTTON_CLICK_VALIDATE}`,()=>t(this,void 0,void 0,function*(){return{isValid:yield e.onButtonClicked()}}));this.busTeardowns.push(s);const o=`${this.frameId}-${Ee.COLLECT_FRAME_EVENT_NAMES.COLLECT}`,r=t=>{var i;const{paymentData:n}=null!==(i=t)&&void 0!==i?i:{};n&&e.onCollect(n)};this.bus.on(o,r),this.busTeardowns.push(()=>this.bus.off(o,r));const a=`${this.frameId}-${Ee.COLLECT_FRAME_EVENT_NAMES.COLLECT_ERROR}`,l=t=>{var i,n;null===(i=e.onCollectError)||void 0===i||i.call(e,null!==(n=t)&&void 0!==n?n:{code:"OTHER"})};this.bus.on(a,l),this.busTeardowns.push(()=>this.bus.off(a,l))}requestShow(e){return t(this,void 0,void 0,function*(){if(yield this.readyPromise,this.destroyed)return;const t={type:"GOOGLE_PAY_BUTTON",environment:e.environment,googlePayConfig:e.googlePayConfig,amount:e.amount,countryCode:e.countryCode,buttonStyle:e.buttonStyle},i=yield this.bus.emitAndResolve(`${this.frameId}-${Ee.COLLECT_FRAME_EVENT_NAMES.SHOW}`,t,"*",this.controller.signal);if(!this.destroyed&&!(null==i?void 0:i.success))throw new Error(`Failed to render Google Pay button: ${i&&"error"in i?i.error:"unknown"}`)})}unmount(){var e;this.destroyed=!0,this.controller.abort();for(const e of this.busTeardowns)e();this.busTeardowns=[],null===(e=this.iframe)||void 0===e||e.remove(),this.iframe=null}destroy(){var e;this.destroyed=!0,this.controller.abort(),null===(e=this.iframe)||void 0===e||e.remove(),this.iframe=null}}function ks(e,t={}){var i,n,s,o,r;const a=t.merchantInfo;if(Array.isArray(e))return{allowedPaymentMethods:e,merchantInfo:{merchantId:"",merchantName:null!==(i=null==a?void 0:a.merchantName)&&void 0!==i?i:""}};const l=null!=e?e:{},d=l.merchantInfo;return{apiVersion:l.apiVersion,apiVersionMinor:l.apiVersionMinor,allowedPaymentMethods:null!==(n=l.allowedPaymentMethods)&&void 0!==n?n:[],merchantInfo:{merchantId:null!==(s=null==d?void 0:d.merchantId)&&void 0!==s?s:"",merchantName:null!==(r=null!==(o=null==a?void 0:a.merchantName)&&void 0!==o?o:null==d?void 0:d.merchantName)&&void 0!==r?r:""},emailRequired:l.emailRequired,shippingAddressRequired:l.shippingAddressRequired,shippingAddressParameters:l.shippingAddressParameters,existingPaymentMethodRequired:l.existingPaymentMethodRequired}}let Ys=class e extends Tn{static isGooglePayAvailable(e){return t(this,arguments,void 0,function*(e,t=exports.PayrailsEnvironment.TEST,i){const n=new ws(t);try{return yield n.isGooglePayAvailable(ks(e,{merchantInfo:i}))}finally{n.destroy()}})}constructor(t){var i;super("div",Object.assign(Object.assign({},t),{id:`payrails-google-pay-button-${q()}`,dataTestId:"payrails-google-pay-button"})),this.options=t,this.isProcessing=!1,this.frame=null,this.paymentExecutor=new cn(null===(i=this.options)||void 0===i?void 0:i.returnInfo),e.isGooglePayAvailable(le.googlePayConfig,this.options.environment,this.options.merchantInfo).then(e=>{var t,i,n;e&&(null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onGooglePayAvailable)||void 0===n||n.call(i))}),this.action="tokenization"===pe().type?so.TOKENIZE:so.AUTHORIZE}onLoadPaymentData(e){return t(this,void 0,void 0,function*(){(yield ki(this.action,this.options.events))?(this.action===so.TOKENIZE?yield this.doTokenize(e):yield this.doAuthorizePayment(e),this.isProcessing=!1):this.isProcessing=!1})}doTokenize(e){return t(this,void 0,void 0,function*(){const t=pe(),i=le.createInstrumentLink,n=t.token;if(!i)return this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events);let s;try{s=JSON.stringify(e)}catch(e){return this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events,e)}const o={holderReference:t.holderReference,paymentMethod:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,storeInstrument:this.shouldStoreInstrument,data:{paymentToken:s}};try{const e=yield ne({url:i,token:n,body:o});return e.ok?(this.isProcessing=!1,ro(so.TOKENIZE,this.options.events,e.res),e.res):(this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events))}catch(e){return this.isProcessing=!1,void ao(so.TOKENIZE,this.options.events,e)}})}doAuthorizePayment(e){return t(this,void 0,void 0,function*(){var t,i,n,s,o,r;const a={paymentToken:JSON.stringify(e)},l=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,integrationType:"api",paymentInstrumentData:a,amount:pe().amount,storeInstrument:this.shouldStoreInstrument}],d=yield this.paymentExecutor.pay(l);if("authorizePending"===(null===(t=null==d?void 0:d.finalState)||void 0===t?void 0:t.code)){const e=new Ps(Object.assign(Object.assign({},this.options),{paymentMethodCode:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY}),this.paymentExecutor);yield e.handle3ds(d)}else"authorizeSuccessful"===(null===(i=null==d?void 0:d.finalState)||void 0===i?void 0:i.code)?ro(so.AUTHORIZE,this.options.events):ao(so.AUTHORIZE,this.options.events,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(r=null===(o=null===(s=null===(n=d.finalState)||void 0===n?void 0:n.errors)||void 0===s?void 0:s[0])||void 0===o?void 0:o.reason)||void 0===r?void 0:r.result)||"Authorization Failed"})})}mount(e){this.frame&&this.unmount(),super.mount(e),(()=>{t(this,void 0,void 0,function*(){var e,i,n,s,o,r,a;try{const l=ks(le.googlePayConfig,{merchantInfo:this.options.merchantInfo}),d=new ws(this.options.environment);this.frame=d;if(!(yield d.isGooglePayAvailable(l)))return d.destroy(),void(this.frame=null);yield d.mountButton({target:this.element,environment:null!==(e=this.options.environment)&&void 0!==e?e:"TEST",googlePayConfig:l,amount:pe().amount,countryCode:null===(o=null===(s=null===(n=null===(i=le.meta)||void 0===i?void 0:i.order)||void 0===n?void 0:n.billingAddress)||void 0===s?void 0:s.country)||void 0===o?void 0:o.code,buttonStyle:null!==(r=this.options.styles)&&void 0!==r?r:{},onButtonClicked:()=>t(this,void 0,void 0,function*(){return Boolean(yield uo(this.action,this.options.events))}),onCollect:e=>{if(!this.isProcessing)return this.isProcessing=!0,this.onLoadPaymentData(e)},onCollectError:e=>{this.isProcessing=!1,ao(this.action,this.options.events,e)}}),null===(a=this.storeInstrumentCheckbox)||void 0===a||a.mount(this.selector)}catch(e){}})})()}unmount(){var e,t;null===(e=this.storeInstrumentCheckbox)||void 0===e||e.unmount(),null===(t=this.frame)||void 0===t||t.unmount(),this.frame=null,super.unmount()}},Us=null;function xs(){var e,t;if(null!==Us)return Us;const i=null!==(t=null===(e=pe().featureConfig)||void 0===e?void 0:e.gpayIframeRollout)&&void 0!==t?t:0;return Us=100*Math.random()<i,Us}class Fs extends Tn{static isGooglePayAvailable(...e){return t(this,void 0,void 0,function*(){return xs()?Ys.isGooglePayAvailable(...e):Ms.isGooglePayAvailable(...e)})}constructor(e){return super("div",e),xs()?new Ys(e):new Ms(e)}}class js extends os{constructor(e){var t,i;super("google-pay-dropin",(null===(i=null===(t=e.translations)||void 0===t?void 0:t.labels)||void 0===i?void 0:i.label)||"Google Pay",e.showPaymentMethodLogo?ss("googlepay"):void 0,e.events,e.styles),this.loadElementId="google-pay-dropin-load-element",this.component=new Fs(Object.assign(Object.assign({},e),{events:Object.assign(Object.assign({},e.events),{onGooglePayAvailable:()=>{this.mountAfterAvailable()}}),returnInfo:e.returnInfo}))}}const Bs="Pay by bank with Al Tareq";var Vs;!function(e){e.SUCCESS="success",e.ERROR="error",e.CANCELLED="cancelled"}(Vs||(Vs={}));class Gs extends Ui{constructor(e){var t,i,n,s,o,r,a;super("button",{id:e.id||"payrails-lean-button",className:"payrails-lean-button",styles:null!==(n=null===(i=null===(t=e.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.base)&&void 0!==n?n:{}}),this.isLoading=!1,this.handleClick=()=>{this.onClick()},this.handleMouseEnter=()=>{var e,t;(null===(t=null===(e=this.options.styles)||void 0===e?void 0:e.button)||void 0===t?void 0:t.hover)&&this.setStyles(this.options.styles.button.hover)},this.handleMouseLeave=()=>{var e,t;(null===(t=null===(e=this.options.styles)||void 0===e?void 0:e.button)||void 0===t?void 0:t.hover)&&this.removeStyles(this.options.styles.button.hover)},this.handleSessionExpired=()=>{this.triggerLoading(!1)},this.options=e,this.paymentExecutor=new cn(null===(s=this.options)||void 0===s?void 0:s.returnInfo),this.element.innerText=(null===(o=e.translations)||void 0===o?void 0:o.label)||Bs,this.setStyles((null===(a=null===(r=this.options.styles)||void 0===r?void 0:r.button)||void 0===a?void 0:a.base)||{})}mount(e){this.unmount(),super.mount(e),this.bindEvents(),Gs.preloadLeanSDK()}unmount(){this.unbindEvents(),super.unmount()}static initializeLeanSDK(){return window.Lean||Gs.leanSdkClient||(Gs.leanSdkClient=In.load(yn.Lean)),Gs.leanSdkClient}static preloadLeanSDK(){const e=Gs.initializeLeanSDK();null==e||e.catch(()=>{Gs.leanSdkClient===e&&(Gs.leanSdkClient=null)})}static getLeanSDK(){return t(this,void 0,void 0,function*(){Gs.initializeLeanSDK();try{yield Gs.leanSdkClient}catch(e){throw Gs.leanSdkClient=null,e}const e=window.Lean;if(!e)throw Gs.leanSdkClient=null,In.invalidate(yn.Lean),new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_UNKNOWN_ERROR,{description:"Lean SDK is not available"});return e})}static resetLeanSDK(){Gs.leanSdkClient=null}bindEvents(){this.element.addEventListener("click",this.handleClick),this.element.addEventListener("mouseenter",this.handleMouseEnter),this.element.addEventListener("mouseleave",this.handleMouseLeave),this.eventBus.on("PAYRAILS_CLIENT_SESSION_EXPIRED",this.handleSessionExpired)}unbindEvents(){var e,t;this.element.removeEventListener("click",this.handleClick),this.element.removeEventListener("mouseenter",this.handleMouseEnter),this.element.removeEventListener("mouseleave",this.handleMouseLeave),null===(t=(e=this.eventBus).off)||void 0===t||t.call(e,"PAYRAILS_CLIENT_SESSION_EXPIRED",this.handleSessionExpired)}setStyles(e){var t,i;const n=Object.assign(Object.assign({},null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.base),e);Object.keys(n).forEach(e=>{this.element.style[e]=n[e]})}removeStyles(e){var t,i;const n=Object.keys((null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.base)||{});Object.keys(e).forEach(e=>{var t,i,s;n.includes(e)?this.element.style[e]=null===(s=null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.base)||void 0===s?void 0:s[e]:this.element.style[e]=""})}triggerLoading(e){var t,i,n,s,o;this.isLoading=e,e?(this.element.innerHTML=this.renderLoadingMarkup(),(null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.loading)&&this.setStyles(this.options.styles.button.loading)):(this.element.innerText=(null===(n=this.options.translations)||void 0===n?void 0:n.label)||Bs,this.removeStyles((null===(o=null===(s=this.options.styles)||void 0===s?void 0:s.button)||void 0===o?void 0:o.loading)||{}))}renderLoadingMarkup(){return['<div class="dot-flashing-container">',' <div class="dot-flashing"></div>',' <span class="dot-flashing-text" aria-hidden="true">Loading</span>',"</div>"].join("")}getConfirmActionParameters(e){var t,i,n;const o=null===(n=null===(i=null===(t=e.response)||void 0===t?void 0:t.links)||void 0===i?void 0:i.confirm)||void 0===n?void 0:n.action;if(!((null==o?void 0:o.paymentId)&&(null==o?void 0:o.appToken)&&(null==o?void 0:o.sdkToken)&&(null==o?void 0:o.successUrl)&&(null==o?void 0:o.failureUrl)))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_UNKNOWN_ERROR,{description:"Lean payment parameters are missing from authorize polling response."});return{appToken:o.appToken,paymentId:o.paymentId,sdkToken:o.sdkToken,successUrl:o.successUrl,failureUrl:o.failureUrl,sandbox:o.sandbox}}startLeanCheckout(e,i){return t(this,void 0,void 0,function*(){return new Promise(t=>{var n;const s=this.toLeanCustomizationPayload(null===(n=this.options.styles)||void 0===n?void 0:n.dialog);e.checkout(Object.assign(Object.assign({app_token:i.appToken,access_token:i.sdkToken,payment_intent_id:i.paymentId,success_redirect_url:i.successUrl,fail_redirect_url:i.failureUrl},void 0!==i.sandbox?{sandbox:i.sandbox}:{}),{customization:s,callback:e=>{try{this.handleLeanCheckoutResponse(e)}finally{this.triggerLoading(!1),t()}}}))})})}handleLeanCheckoutResponse(e){var t;switch(null===(t=null==e?void 0:e.status)||void 0===t?void 0:t.toLowerCase()){case Vs.SUCCESS:return void ro(so.AUTHORIZE,this.options.events,e);case Vs.ERROR:case Vs.CANCELLED:return this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),void ao(so.AUTHORIZE,this.options.events,e)}}toLeanCustomizationPayload(e){if(!e)return;const{themeColor:t,buttonTextColor:i,buttonBorderRadius:n,linkColor:s,overlayColor:o}=e;return{theme_color:t,button_text_color:i,button_border_radius:n,link_color:s,overlay_color:o}}onClick(){return t(this,void 0,void 0,function*(){var e;if(!this.isLoading)try{this.triggerLoading(!0);if(!(yield uo(so.AUTHORIZE,null!==(e=this.options.events)&&void 0!==e?e:{})))return void this.triggerLoading(!1);const t=yield Gs.getLeanSDK(),i=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.LEAN,integrationType:"api",amount:pe().amount,paymentInstrumentData:{},storeInstrument:!1}],n=yield this.paymentExecutor.pay(i),s=this.getConfirmActionParameters(n);yield this.startLeanCheckout(t,s),this.triggerLoading(!1)}catch(e){this.triggerLoading(!1),this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),ao(so.AUTHORIZE,this.options.events,e)}})}}Gs.leanSdkClient=null;class Xs extends Hn{constructor(e,t){var i;super("lean-dropin",(null===(i=e.translations)||void 0===i?void 0:i.label)||"Pay by bank with Al Tareq",void 0,e.events,e.elementStyles),this.returnInfo=t,this.component=new Gs(Object.assign(Object.assign({},e),{id:e.id||"payrails-lean-button-dropin",styles:e.styles,events:Object.assign({},e.events),returnInfo:this.returnInfo}))}}class zs extends Tn{constructor(e){var i;zs.instance&&(zs.instance=void 0);const n="express"===(null===(i=null==le?void 0:le.paypalConfig)||void 0===i?void 0:i.integrationMode),s=!n&&(null==e?void 0:e.showStoreInstrumentCheckbox),o=n?"unchecked":null==e?void 0:e.defaultStoreInstrumentState,r=Object.assign(Object.assign({},e),{showStoreInstrumentCheckbox:s,defaultStoreInstrumentState:o,id:"payrails-paypal-button",events:Object.assign(Object.assign({},null==e?void 0:e.events),{onSaveInstrumentCheckboxChanged:i=>t(this,void 0,void 0,function*(){var t,n,s;null===(n=null===(t=null==e?void 0:e.events)||void 0===t?void 0:t.onSaveInstrumentCheckboxChanged)||void 0===n||n.call(t,i),null===(s=this.button)||void 0===s||s.close(),this.debouncedRender()})})});super("div",r),this.options=e,this.renderDebounceTimeout=null,this.currentAbortController=null,this.isRendering=!1,this.buttonWrapperId="payrails-paypal-button-wrapper",this.checkboxWrapperId="payrails-paypal-checkbox-wrapper",this.createOneTimeOrder=()=>t(this,void 0,void 0,function*(){var e,t,i,n,s;const o=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.PAYPAL,integrationType:"api",amount:pe().amount,paymentInstrumentData:{providerData:{riskSessionCorrelationId:this.fraudNetGuid}},storeInstrument:!1}],r=yield this.paymentExecutor.pay(o),a=null===(i=null===(t=null===(e=r.response.links.confirm)||void 0===e?void 0:e.action)||void 0===t?void 0:t.parameters)||void 0===i?void 0:i.orderId;if(!a)throw ao(so.AUTHORIZE,null===(n=this.options)||void 0===n?void 0:n.events),new Hs("No order id returned");return this.confirmLink=null===(s=r.response.links.confirm)||void 0===s?void 0:s.href,a}),this.loadPaypal().catch(()=>{}),this.element.innerHTML=`<div id="${this.buttonWrapperId}"></div><div id="${this.checkboxWrapperId}"></div>`,this.paymentExecutor=new cn}loadPaypal(){return t(this,void 0,void 0,function*(){const e=yield In.load(yn.PayPal,this.paypalScriptConfig);return yield this.createPaypalButton(e)})}debouncedRender(){return this.renderDebounceTimeout&&clearTimeout(this.renderDebounceTimeout),this.currentAbortController&&this.currentAbortController.abort(),new Promise(e=>{this.renderDebounceTimeout=setTimeout(()=>t(this,void 0,void 0,function*(){try{yield this.renderButton(),e()}catch(t){console.error("Failed to render PayPal button:",t),e()}}),300)})}get paypalScriptConfig(){var e,t;const i=this.shouldStoreInstrument?"tokenize":"Instant"===le.paypalConfig.captureMode?"capture":"authorize";return Object.assign({clientId:le.paypalConfig.clientId,intent:i,currency:pe().amount.currency,vault:this.shouldStoreInstrument},(null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.locale)&&{locale:(n=gn(this.options.styles.locale),An(n).replace("-","_"))});var n}createPaypalButton(e){return t(this,void 0,void 0,function*(){var t,i,n;if(!e.Buttons)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR);const o=e.Buttons(this.createPayPalButtonConfig());return null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onPaypalAvailable)||void 0===n||n.call(i),o})}createPayPalButtonConfig(){return this.shouldStoreInstrument?this.createBillingAgreementConfig():this.createOneTimeOrderConfig()}createBillingAgreementConfig(){return Object.assign(Object.assign({},this.createBaseConfig()),{onApprove:this.approvePayment.bind(this),createBillingAgreement:()=>t(this,void 0,void 0,function*(){var e,t,i,n;const s=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.PAYPAL,integrationType:"api",amount:pe().amount,paymentInstrumentData:{providerData:{riskSessionCorrelationId:this.fraudNetGuid}},storeInstrument:!0}],o=yield this.paymentExecutor.pay(s);return this.confirmLink=null===(e=o.response.links.confirm)||void 0===e?void 0:e.href,(null===(n=null===(i=null===(t=o.response.links.confirm)||void 0===t?void 0:t.action)||void 0===i?void 0:i.parameters)||void 0===n?void 0:n.tokenId)||""})})}onCancel(){var e;this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),ao(so.AUTHORIZE,null===(e=this.options)||void 0===e?void 0:e.events)}createOneTimeOrderConfig(){return Object.assign(Object.assign({},this.createBaseConfig()),{createOrder:this.createOneTimeOrder.bind(this),onApprove:this.approvePayment.bind(this)})}createBaseConfig(){var e,i,n,s,o,r,a,l,d,c;return{fundingSource:"paypal",style:{color:(null===(i=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===i?void 0:i.color)||"gold",height:(null===(s=null===(n=this.options)||void 0===n?void 0:n.styles)||void 0===s?void 0:s.height)||40,label:(null===(r=null===(o=this.options)||void 0===o?void 0:o.styles)||void 0===r?void 0:r.label)||"paypal",shape:(null===(l=null===(a=this.options)||void 0===a?void 0:a.styles)||void 0===l?void 0:l.shape)||"rect",tagline:(null===(c=null===(d=this.options)||void 0===d?void 0:d.styles)||void 0===c?void 0:c.tagline)||!1,disableMaxWidth:!0},onError:e=>{var t;this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),ao(so.AUTHORIZE,null===(t=this.options)||void 0===t?void 0:t.events,e)},onClick:(e,i)=>t(this,void 0,void 0,function*(){var e;return(yield uo(so.AUTHORIZE,null===(e=this.options)||void 0===e?void 0:e.events))?i.resolve():i.reject()}),onCancel:this.onCancel.bind(this),onShippingAddressChange:(e,i)=>t(this,void 0,void 0,function*(){var t;let n;e.shippingAddress&&(n={deliveryAddress:{city:e.shippingAddress.city,postalCode:e.shippingAddress.postalCode,state:e.shippingAddress.state,country:{code:e.shippingAddress.countryCode}}});if(!(yield wi(null===(t=this.options)||void 0===t?void 0:t.events,n)))return i.reject()})}}approvePayment(e){return t(this,void 0,void 0,function*(){var t,i,n,s,o,r,a,l,d;if(!this.confirmLink)throw ao(so.AUTHORIZE,null===(t=this.options)||void 0===t?void 0:t.events),new Hs("No confirm link");const c={};this.shouldStoreInstrument&&e.billingToken&&(c.tokenId=e.billingToken),this.fraudNetGuid&&(c.riskSessionCorrelationId=this.fraudNetGuid);if(!(yield ki(so.AUTHORIZE,null===(i=this.options)||void 0===i?void 0:i.events)))throw new Hs("Authorization request start validation failed");const u=yield this.paymentExecutor.confirm(this.confirmLink,c);"authorizeSuccessful"===(null===(n=u.finalState)||void 0===n?void 0:n.code)?ro(so.AUTHORIZE,null===(s=this.options)||void 0===s?void 0:s.events):ao(so.AUTHORIZE,null===(o=this.options)||void 0===o?void 0:o.events,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(d=null===(l=null===(a=null===(r=u.finalState)||void 0===r?void 0:r.errors)||void 0===a?void 0:a[0])||void 0===l?void 0:l.reason)||void 0===d?void 0:d.result)||"Authorization Failed"})})}get fraudNetGuid(){var e,t;return null===(t=null===(e=window.PayrailsData)||void 0===e?void 0:e.riskIds)||void 0===t?void 0:t.fraudNet}mount(e){zs.instance||(super.mount(e),zs.instance=this,(()=>{t(this,void 0,void 0,function*(){yield this.debouncedRender()})})())}renderButton(){return t(this,void 0,void 0,function*(){var e;this.isRendering&&this.currentAbortController&&this.currentAbortController.abort(),this.currentAbortController=new AbortController;const t=this.currentAbortController.signal;try{this.isRendering=!0,this.button&&(this.button.close(),this.button=void 0);const i=yield Promise.race([this.loadPaypal(),new Promise((e,i)=>{t.addEventListener("abort",()=>i(new qs("PayPal button loading aborted")))})]);if(t.aborted)return;i&&(this.button=i,yield null===(e=this.button)||void 0===e?void 0:e.render(`#${this.buttonWrapperId}`))}catch(e){if(!t.aborted)throw e}finally{t.aborted||(this.isRendering=!1,this.currentAbortController=null)}})}unmount(){var e;this.renderDebounceTimeout&&clearTimeout(this.renderDebounceTimeout),this.currentAbortController&&this.currentAbortController.abort(),null===(e=this.button)||void 0===e||e.close(),this.isRendering=!1,zs.instance=void 0,super.unmount()}}class Hs extends s.PayrailsError{constructor(e,t){super(s.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_ORDER_CREATION,{description:`PaypalOrderError: ${e}`,cause:t})}}class qs extends s.PayrailsError{constructor(e,t){super(s.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_BUTTON_MOUNT,{description:`PaypalButtonError: ${e}`,cause:t})}}class Ws extends os{constructor(e){var t,i;super("payrails-paypal-button-dropin",(null===(i=null===(t=null==e?void 0:e.translations)||void 0===t?void 0:t.labels)||void 0===i?void 0:i.label)||"PayPal",(null==e?void 0:e.showPaymentMethodLogo)?ss("paypal"):void 0,{onActivate:()=>{var t;super.activate(),(null===(t=null==e?void 0:e.events)||void 0===t?void 0:t.onPaymentOptionVisibilityChange)&&e.events.onPaymentOptionVisibilityChange()}},null==e?void 0:e.styles),this.loadElementId="paypal-dropin-load-element",this.component=new zs(Object.assign(Object.assign({},e),{events:Object.assign(Object.assign({},null==e?void 0:e.events),{onPaypalAvailable:()=>{this.mountAfterAvailable()}})}))}}class Ks extends Ui{constructor(e,t,i){var n,s,o,r,a,l;super("fieldset",{id:"payrails-dropin-component"}),this.collectContainer=e,this.clientConfig=t,this.dropinConfig=i,this.billingValidationBlocked=!1,this.applyStyles(),on.reset();const d=null===(n=pe().morData)||void 0===n?void 0:n.billingLines;(null==d?void 0:d.form)&&(this.billingAddressForm=new on({schema:d.form,prefill:d,styles:null===(s=this.dropinConfig.styles)||void 0===s?void 0:s.billingAddressForm,translations:null===(o=this.dropinConfig.translations)||void 0===o?void 0:o.billingAddressForm}));void 0!==(null===(a=null===(r=this.dropinConfig.paymentMethodsConfiguration)||void 0===r?void 0:r.cards)||void 0===a?void 0:a.showExistingCards)&&console.warn("The `showExistingCards` option is deprecated and will be removed in a future version. Please use `showStoredInstruments` instead.");const c=new Map;le.storedDropinInstruments.forEach(e=>{if(this.isStoredInstrumentEnabled(e.paymentMethod)){this.cardPaymentButton=this.createCardPaymentButton();const t=this.createStoredInstrumentElement(e);t&&c.set(t.identifier,t)}});const u={[exports.PAYMENT_METHOD_CODES.CARD]:this.createCreditCardButton.bind(this),[exports.PAYMENT_METHOD_CODES.PAYPAL]:this.createPayPalButton.bind(this),[exports.PAYMENT_METHOD_CODES.GOOGLE_PAY]:this.createGooglePayButton.bind(this),[exports.PAYMENT_METHOD_CODES.APPLE_PAY]:this.createApplePayButton.bind(this),[exports.PAYMENT_METHOD_CODES.LEAN]:this.createLeanButton.bind(this)};le.availablePaymentMethods.forEach(e=>{const t=e.paymentMethodCode;if(t&&u[t]){const i=(0,u[t])(le.getPaymentMethodConfig(e));c.set(i.identifier,i)}else if(this.isHppIntegration(e)&&t){const t=this.createHppIntegrationElement(e);c.set(t.identifier,t)}}),this.element.addEventListener("change",e=>{var t,i;const n=(null===(t=null==e?void 0:e.target)||void 0===t?void 0:t.value)||"";c.forEach(e=>{e.deactivate()}),null===(i=c.get(n))||void 0===i||i.activate()}),1===this.totalPaymentOptions&&this.element.classList.add("payrails-dropin-component--single"),this.billingAddressForm&&this.subElements.push(this.billingAddressForm),this.subElements.push(...Array.from(c.values())),this.loadingScreen=new ts({styles:null===(l=this.dropinConfig.styles)||void 0===l?void 0:l.loadingScreen})}get returnInfo(){return this.dropinConfig.returnInfo||this.clientConfig.returnInfo}isHppIntegration(e){var t;return e.paymentMethodCode===exports.PAYMENT_METHOD_CODES.GENERIC_REDIRECT||(null===(t=e.clientConfig)||void 0===t?void 0:t.flow)===de.REDIRECT}createStoredInstrumentElement(e){var t;let i;if(this.cardPaymentButton=this.createCardPaymentButton(),e.paymentMethod!==exports.PAYMENT_METHOD_CODES.BANK_ACCOUNT)return e.paymentMethod===exports.PAYMENT_METHOD_CODES.CARD&&le.isPaymentInstallmentsEnabled(e.paymentMethod)&&(i=this.createInstallmentsDropdown(e)),new Kn(e,this.cardPaymentButton,e=>{var t,i;if(this.cardPaymentButton){this.cardPaymentButton.selectedInstrument=e;const n=le.getPaymentMethodForStoredInstrument(e);null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:n,instrument:e})}},null===(t=this.dropinConfig.styles)||void 0===t?void 0:t.element,i)}createInstallmentsDropdown(e){var t,i,n;const s=this.getInstallmentOptionsForInstrument(e);return new kn("span",{installmentConfig:{installmentCurrency:pe().amount.currency,installmentOptions:s,defaultInstallment:null===(n=null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.installmentConfig)||void 0===n?void 0:n.defaultInstallment},id:`payrails-card-form-payment-installments-${e.id}`,className:"payrails-card-form-payment-installments-container"})}getInstallmentOptionsForInstrument(e){var t,i,n;const s=e.paymentMethod,o=le.getPaymentInstallmentOptions(s),r=null===(n=null===(i=null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.binLookup)||void 0===i?void 0:i.issuerCountry)||void 0===n?void 0:n.code;return r?o[r]:null}updateInstallmentConfig(e){var t,i,n;const s=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards;s&&e&&Object.prototype.hasOwnProperty.call(e,"defaultInstallment")&&(s.installmentConfig={defaultInstallment:null!==(i=e.defaultInstallment)&&void 0!==i?i:null}),null===(n=this.cardForm)||void 0===n||n.updateInstallmentConfig(e),this.subElements.forEach(t=>{t instanceof Kn&&t.updateInstallmentConfig(e)})}createHppIntegrationElement(e){var t,i,n,r,a,l,d,c,u,p,h,_;const E=e.paymentMethodCode;if(!E){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CONFIG_MALFORMED,{description:`Payment method code is missing for payment method - ${JSON.stringify(e)}`});throw o.PayrailsLogger.error(t.message,{error:t}),t}return new Ss({paymentMethod:e,config:Object.assign(Object.assign({},null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t[E]),{showPaymentMethodLogo:null!==(l=null!==(r=null===(n=null===(i=this.dropinConfig.paymentMethodsConfiguration)||void 0===i?void 0:i[E])||void 0===n?void 0:n.showPaymentMethodLogo)&&void 0!==r?r:null===(a=this.dropinConfig.paymentMethodsConfiguration)||void 0===a?void 0:a.showPaymentMethodLogo)&&void 0!==l&&l}),styles:{element:null===(c=null===(d=this.dropinConfig)||void 0===d?void 0:d.styles)||void 0===c?void 0:c.element,button:null===(h=null===(p=null===(u=this.dropinConfig)||void 0===u?void 0:u.styles)||void 0===p?void 0:p[E])||void 0===h?void 0:h.button},translations:null===(_=this.dropinConfig.translations)||void 0===_?void 0:_[E],events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}})},this.returnInfo)}get totalPaymentOptions(){return le.availablePaymentMethods.length+le.storedDropinInstruments.length}createCreditCardButton(e){var t,i,n,s,o,r,a;return this.creditCard=new as(this.createCardForm(),this.createCardPaymentButton(),{events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}}),styles:null===(t=this.dropinConfig.styles)||void 0===t?void 0:t.element,showPaymentMethodLogo:null!==(r=null!==(s=null===(n=null===(i=this.dropinConfig.paymentMethodsConfiguration)||void 0===i?void 0:i.cards)||void 0===n?void 0:n.showPaymentMethodLogo)&&void 0!==s?s:null===(o=this.dropinConfig.paymentMethodsConfiguration)||void 0===o?void 0:o.showPaymentMethodLogo)&&void 0!==r&&r,translations:null===(a=this.dropinConfig.translations)||void 0===a?void 0:a.cardForm}),this.creditCard}createGooglePayButton(e){var t,i,n,s,o,r,a,l;return this.googlePay=new js(Object.assign({environment:this.clientConfig.environment||exports.PayrailsEnvironment.TEST,events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}}),redirectFor3DS:this.clientConfig.redirectFor3DS,showPaymentMethodLogo:null!==(o=null!==(n=null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.googlePay)||void 0===i?void 0:i.showPaymentMethodLogo)&&void 0!==n?n:null===(s=this.dropinConfig.paymentMethodsConfiguration)||void 0===s?void 0:s.showPaymentMethodLogo)&&void 0!==o&&o,styles:Object.assign(Object.assign({},null===(r=this.dropinConfig.styles)||void 0===r?void 0:r.googlePayButton),null===(a=this.dropinConfig.styles)||void 0===a?void 0:a.element),returnInfo:this.returnInfo},null===(l=this.dropinConfig.paymentMethodsConfiguration)||void 0===l?void 0:l.googlePay)),this.googlePay}createPayPalButton(e){var t,i,n,s,o,r,a,l;return this.paypal=new Ws(Object.assign(Object.assign({showPaymentMethodLogo:null!==(o=null!==(n=null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.payPal)||void 0===i?void 0:i.showPaymentMethodLogo)&&void 0!==n?n:null===(s=this.dropinConfig.paymentMethodsConfiguration)||void 0===s?void 0:s.showPaymentMethodLogo)&&void 0!==o&&o},null===(r=this.dropinConfig.paymentMethodsConfiguration)||void 0===r?void 0:r.payPal),{styles:Object.assign(Object.assign({},null===(a=this.dropinConfig.styles)||void 0===a?void 0:a.paypalButton),null===(l=this.dropinConfig.styles)||void 0===l?void 0:l.element),events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}})})),this.paypal}createLeanButton(e){var t,i,n,s;return this.lean=new Xs(Object.assign(Object.assign({paymentMethod:e},null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.lean),{styles:null===(i=this.dropinConfig.styles)||void 0===i?void 0:i.leanButton,elementStyles:null===(n=this.dropinConfig.styles)||void 0===n?void 0:n.element,translations:null===(s=this.dropinConfig.translations)||void 0===s?void 0:s.leanButton,events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}})}),this.returnInfo),this.lean}createCardForm(){var e,t,i,n,s,o,r,a;if(!this.cardForm){const l=null===(e=this.dropinConfig.paymentMethodsConfiguration)||void 0===e?void 0:e.cards,d=Boolean(null==l?void 0:l.showStoreInstrumentCheckbox),c=Boolean(null==l?void 0:l.showCardHolderName),u=Boolean(null==l?void 0:l.alwaysStoreInstrument),p=Boolean(null==l?void 0:l.showSingleExpiryDateField),h=(null==l?void 0:l.layout)||[];this.cardForm=new Xn(this.collectContainer,{showStoreInstrumentCheckbox:d,showCardHolderName:c,showSingleExpiryDateField:p,alwaysStoreInstrument:u,installmentConfig:null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.installmentConfig,layout:h,translations:Object.assign(Object.assign({},null===(n=this.dropinConfig.translations)||void 0===n?void 0:n.cardForm),{addressSelector:null===(s=this.dropinConfig.translations)||void 0===s?void 0:s.addressSelector}),styles:Object.assign(Object.assign(Object.assign({},null===(o=this.dropinConfig.styles)||void 0===o?void 0:o.cardForm),null===(r=this.dropinConfig.styles)||void 0===r?void 0:r.element),{addressSelector:null===(a=this.dropinConfig.styles)||void 0===a?void 0:a.addressSelector}),events:Object.assign(Object.assign({},this.getElementEvents()),{onFocus:()=>{var e;null===(e=this.creditCard)||void 0===e||e.activate()},onChange:({isValid:e})=>{var t,i,n,s,o,r,a;const l="boolean"!=typeof(null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.disablePaymentButton)||(null===(s=null===(n=this.dropinConfig.paymentMethodsConfiguration)||void 0===n?void 0:n.cards)||void 0===s?void 0:s.disablePaymentButton)?!e:null===(r=null===(o=this.dropinConfig.paymentMethodsConfiguration)||void 0===o?void 0:o.cards)||void 0===r?void 0:r.disablePaymentButton;null===(a=this.cardPaymentButton)||void 0===a||a.setDisabled(l)},onSaveInstrumentCheckboxChanged:e=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onSaveInstrumentCheckboxChanged)||void 0===i||i.call(t,e)}})})}return this.cardPaymentButton&&this.cardPaymentButton.setCardForm(this.cardForm),this.cardForm}createApplePayButton(e){var i,n,s,o,r,a,l,d,c;return this.applePay=new rs(Object.assign(Object.assign({events:Object.assign(Object.assign({},this.getElementEvents()),{onAuthorizeSuccess:e=>{var t;if(e)if("authorizeSuccessful"===(null===(t=null==e?void 0:e.finalState)||void 0===t?void 0:t.code))this.onAuthorizeSuccess();else this.onAuthorizeFailed()},onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})},onPaymentButtonClicked:e=>t(this,void 0,void 0,function*(){var t,i,n;return!!(yield this.validateBillingAddress())&&(!(null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentButtonClicked)||Boolean(yield null===(n=null===(i=this.dropinConfig.events)||void 0===i?void 0:i.onPaymentButtonClicked)||void 0===n?void 0:n.call(i,e)))})})},null===(i=this.dropinConfig.paymentMethodsConfiguration)||void 0===i?void 0:i.applePay),{styles:Object.assign(Object.assign({},null===(n=this.dropinConfig.styles)||void 0===n?void 0:n.applePayButton),null===(s=this.dropinConfig.styles)||void 0===s?void 0:s.element),translations:null===(o=this.dropinConfig.translations)||void 0===o?void 0:o.applePayButton,showPaymentMethodLogo:null!==(c=null!==(l=null===(a=null===(r=this.dropinConfig.paymentMethodsConfiguration)||void 0===r?void 0:r.applePay)||void 0===a?void 0:a.showPaymentMethodLogo)&&void 0!==l?l:null===(d=this.dropinConfig.paymentMethodsConfiguration)||void 0===d?void 0:d.showPaymentMethodLogo)&&void 0!==c&&c})),this.applePay}createCardPaymentButton(){var e,t,i,n;return this.cardPaymentButton||(this.cardPaymentButton=new po({styles:null===(e=this.dropinConfig.styles)||void 0===e?void 0:e.cardPaymentButton,translations:null===(t=this.dropinConfig.translations)||void 0===t?void 0:t.cardPaymentButton,redirectFor3DS:this.clientConfig.redirectFor3DS,disabledByDefault:null===(n=null===(i=this.dropinConfig.paymentMethodsConfiguration)||void 0===i?void 0:i.cards)||void 0===n?void 0:n.disablePaymentButton,events:this.getElementEvents()},this.returnInfo)),this.cardForm&&this.cardPaymentButton.setCardForm(this.cardForm),this.cardPaymentButton}onAuthorizeSuccess(){var e,t,i,n,s,o,r;on.reset(),null===(e=this.loadingScreen)||void 0===e||e.unmount(),this.subElements.forEach(e=>e.unmount()),new es({translations:{label:null===(n=null===(i=null===(t=this.dropinConfig)||void 0===t?void 0:t.translations)||void 0===i?void 0:i.paymentResult)||void 0===n?void 0:n.success},styles:null===(o=null===(s=this.dropinConfig)||void 0===s?void 0:s.styles)||void 0===o?void 0:o.authSuccess}).mount(this.selector),(null===(r=this.dropinConfig.events)||void 0===r?void 0:r.onAuthorizeSuccess)&&this.dropinConfig.events.onAuthorizeSuccess()}validateBillingAddress(){return t(this,void 0,void 0,function*(){if(!this.billingAddressForm)return!0;try{return yield this.billingAddressForm.collect(),!0}catch(e){return this.billingValidationBlocked=!0,!1}})}getElementEvents(){return Object.assign(Object.assign({},this.dropinConfig.events),{onAuthorizeSuccess:this.onAuthorizeSuccess.bind(this),onAuthorizeFailed:this.onAuthorizeFailed.bind(this),onAuthorizePending:this.onAuthorizePending.bind(this),onAvailable:()=>{var e;(1===this.totalPaymentOptions||(null===(e=this.dropinConfig.paymentMethodsConfiguration)||void 0===e?void 0:e.preselectFirstPaymentOption))&&setTimeout(()=>{try{const e=this.subElements.find(e=>e instanceof Hn);null==e||e.activate()}catch(e){o.PayrailsLogger.error("Error while auto-activating the first payment option",{error:new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING,{cause:e})})}},0)},onPaymentButtonClicked:e=>t(this,void 0,void 0,function*(){var t,i,n,s;if(!(yield this.validateBillingAddress()))return!1;null===(t=this.loadingScreen)||void 0===t||t.mount(this.selector);let o=!0;return(null===(i=this.dropinConfig.events)||void 0===i?void 0:i.onPaymentButtonClicked)&&(o=!!(yield null===(s=null===(n=this.dropinConfig.events)||void 0===n?void 0:n.onPaymentButtonClicked)||void 0===s?void 0:s.call(n,e))),o})})}onAuthorizePending(){var e,t,i,n,s,o,r,a;on.reset(),null===(e=this.loadingScreen)||void 0===e||e.unmount(),this.subElements.forEach(e=>e.unmount()),new es({translations:{label:(null===(n=null===(i=null===(t=this.dropinConfig)||void 0===t?void 0:t.translations)||void 0===i?void 0:i.paymentResult)||void 0===n?void 0:n.pending)||"Payment pending"},styles:null===(o=null===(s=this.dropinConfig)||void 0===s?void 0:s.styles)||void 0===o?void 0:o.authSuccess}).mount(this.selector),null===(a=null===(r=this.dropinConfig.events)||void 0===r?void 0:r.onAuthorizePending)||void 0===a||a.call(r)}getErrorMessage(e){var t,i,n,s,o,r;let a=null===(i=null===(t=this.dropinConfig.translations)||void 0===t?void 0:t.paymentResult)||void 0===i?void 0:i.fail;return(null==e?void 0:e.message)&&(null===(s=null===(n=this.dropinConfig.translations)||void 0===n?void 0:n.errorMessages)||void 0===s?void 0:s[null==e?void 0:e.message])&&(a=null===(r=null===(o=this.dropinConfig.translations)||void 0===o?void 0:o.errorMessages)||void 0===r?void 0:r[null==e?void 0:e.message]),a}onAuthorizeFailed(e){return t(this,void 0,void 0,function*(){var t,i,n,s,o;if(null===(t=this.loadingScreen)||void 0===t||t.unmount(),this.billingValidationBlocked)this.billingValidationBlocked=!1;else{if((null==e?void 0:e.code)!==exports.AuthorizationFailureReasons.USER_CANCELLED){new Qn({translations:{label:this.getErrorMessage(e)},styles:null===(i=this.dropinConfig.styles)||void 0===i?void 0:i.authFailed,configuration:null===(n=this.dropinConfig.configuration)||void 0===n?void 0:n.authFailMsg}).mount(this.selector)}null===(o=null===(s=this.dropinConfig.events)||void 0===s?void 0:s.onAuthorizeFailed)||void 0===o||o.call(s,e)}})}isStoredInstrumentEnabled(e){var t,i,n,s,o,r;switch(e){case exports.PAYMENT_METHOD_CODES.CARD:return!1!==(null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.showStoredInstruments)&&!1!==(null===(s=null===(n=this.dropinConfig.paymentMethodsConfiguration)||void 0===n?void 0:n.cards)||void 0===s?void 0:s.showExistingCards);case exports.PAYMENT_METHOD_CODES.PAYPAL:case exports.PAYMENT_METHOD_CODES.GOOGLE_PAY:case exports.PAYMENT_METHOD_CODES.APPLE_PAY:return!1!==(null===(r=null===(o=this.dropinConfig.paymentMethodsConfiguration)||void 0===o?void 0:o[e])||void 0===r?void 0:r.showStoredInstruments);default:return!1}}applyStyles(){var e;(null===(e=this.dropinConfig.styles)||void 0===e?void 0:e.container)&&Object.assign(this.element.style,this.dropinConfig.styles.container.styles)}fetchBinLookup(){return t(this,void 0,void 0,function*(){var e;return null===(e=this.cardForm)||void 0===e?void 0:e.fetchBinLookup()})}}const $s=e=>t(void 0,void 0,void 0,function*(){if(null==e?void 0:e.onSessionExpired)try{const t=yield e.onSessionExpired();if(t)he(t),(null==e?void 0:e.onClientInitialized)&&e.onClientInitialized(le);else{const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_SESSION_REFRESH_FAILED,{description:"Session refresh failed with no result returned"});o.PayrailsLogger.error(e.message,{error:e})}}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_SESSION_REFRESH_FAILED,{description:"Callback passed to onSessionExpired threw an error",cause:e});o.PayrailsLogger.error(t.message,{error:t})}}),Zs=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;class Js{static setSelectedInstrument(e){if(!e||!e.id.match(Zs))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Instrument is not valid"});this._selectedInstrument=e}static getSelectedInstrument(){return this._selectedInstrument}static clearSelectedInstrument(){this._selectedInstrument=null}}Js._selectedInstrument=null;const Qs={deleteInstrument:{linkKey:"instrumentDelete",method:W.DELETE,createRequest:e=>{var t,i;if(!e.resourceId)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_API_UNKNOWN_ERROR);const n=null===(i=null===(t=pe().links)||void 0===t?void 0:t.instrumentDelete)||void 0===i?void 0:i.href;if(!n)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND);return{url:e.resourceId?null==n?void 0:n.replace(":instrumentId",e.resourceId):n}},requestType:void 0,responseType:{}},updateInstrument:{linkKey:"instrumentUpdate",method:W.PATCH,createRequest:e=>{var t,i;const n=null===(i=null===(t=pe().links)||void 0===t?void 0:t.instrumentUpdate)||void 0===i?void 0:i.href;if(!n)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND);return{url:e.resourceId?null==n?void 0:n.replace(":instrumentId",e.resourceId):n,body:e.body}},requestType:{},responseType:{}},payout:{linkKey:"payout",method:W.POST,createRequest:()=>{const e=le.payoutLink;if(!e)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND);const t=Js.getSelectedInstrument();if(!t)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_API_PAYOUT_NO_INSTRUMENT_SELECTED,{cause:new Error("No selected instrument for payout, set an instrument first using setState")});const i=[{integrationType:"api",amount:pe().amount,paymentMethodCode:t.paymentMethod,paymentInstrumentId:t.id}];return{url:e,body:{amount:pe().amount,payoutComposition:i}}},onSuccess:e=>t(void 0,void 0,void 0,function*(){const t=new cn;return yield t.pollForAuthorizationResult(e.links.execution)}),requestType:{},responseType:{}}},eo={holderReference:{path:["holderReference"],returnType:""},amount:{path:["amount"],returnType:{}},binLookup:{path:["links","binLookup"],returnType:{}},instrumentUpdate:{path:["links","instrumentUpdate"],returnType:{}},instrumentDelete:{path:["links","instrumentDelete"],returnType:{}},executionId:{path:["execution","id"],returnType:void 0},paymentMethodConfig:{path:[],returnType:{}},paymentMethodInstruments:{path:[],returnType:{}}};const to=(e,t)=>{try{const i=pe(),n=eo[e];if(!n)return o.PayrailsLogger.warn(`No query definition found for key: ${e}`),null;if("paymentMethodConfig"===e){const e=null==t?void 0:t.paymentMethodCode;return e?function(e){var t;try{if(!e)return o.PayrailsLogger.error("Payment method code is required"),null;const i=le.availablePaymentMethods;return"all"===e?i:"redirect"===e?i.filter(e=>{var t;return(null===(t=e.clientConfig)||void 0===t?void 0:t.flow)===de.REDIRECT}):null!==(t=i.find(({paymentMethodCode:t})=>t===e))&&void 0!==t?t:null}catch(t){return o.PayrailsLogger.error(`Error getting config for payment method: ${e}`,{error:t}),null}}(e):(o.PayrailsLogger.warn("Payment method code is required for paymentMethodConfig query"),null)}if("paymentMethodInstruments"===e){const e=null==t?void 0:t.paymentMethodCode;return e?function(e){return le.getStoredInstrumentForPaymentMethod(e)}(e):(o.PayrailsLogger.warn("Payment method code is required for paymentMethodInstruments query"),null)}const{path:s}=n;return function(e,t){if(!e||!t||!t.length)return;let i=e;for(const e of t){if(null==i)return;i=i[e]}return i}(i,s)||null}catch(e){return o.PayrailsLogger.error("Error querying SDK Configuration",{error:e}),null}},io=(e={})=>{const t=document.getElementById("sdk-observer");return t||(e=>{const t=document.createElement("iframe");t.id="sdk-observer";const i=new URLSearchParams(e).toString();return t.src=`https://assets.payrails.io/739d580/observability/index.html?${i}`,t.width="1px",t.height="1px",document.body.appendChild(t),t})(e)};
20
+ */function _n(e){var t="https://www.paypal.com/sdk/js";e.sdkBaseURL&&(t=e.sdkBaseURL,delete e.sdkBaseURL),function(e){var t=e["merchant-id"],i=e["data-merchant-id"],n="",s="";Array.isArray(t)?t.length>1?(n="*",s=t.toString()):n=t.toString():"string"==typeof t&&t.length>0?n=t:"string"==typeof i&&i.length>0&&(n="*",s=i);e["merchant-id"]=n,e["data-merchant-id"]=s}(e);var i=Object.keys(e).filter(function(t){return void 0!==e[t]&&null!==e[t]&&""!==e[t]}).reduce(function(t,i){var n=e[i].toString();return"data-"===i.substring(0,5)?t.dataAttributes[i]=n:t.queryParams[i]=n,t},{queryParams:{},dataAttributes:{}}),n=i.queryParams,s=i.dataAttributes;return{url:"".concat(t,"?").concat(En(n)),dataAttributes:s}}function En(e){var t="";return Object.keys(e).forEach(function(i){0!==t.length&&(t+="&"),t+=i+"="+e[i]}),t}function mn(e,t){void 0===t&&(t={});var i=document.createElement("script");return i.src=e,Object.keys(t).forEach(function(e){i.setAttribute(e,t[e]),"data-csp-nonce"===e&&i.setAttribute("nonce",t["data-csp-nonce"])}),i}function vn(e,t){if(void 0===t&&(t=yn()),fn(e,t),"undefined"==typeof window)return t.resolve(null);var i=_n(e),n=i.url,s=i.dataAttributes,o=s["data-namespace"]||"paypal",r=In(o);return function(e,t){var i=document.querySelector('script[src="'.concat(e,'"]'));if(null===i)return null;var n=mn(e,t),s=i.cloneNode();if(delete s.dataset.uidAuto,Object.keys(s.dataset).length!==Object.keys(n.dataset).length)return null;var o=!0;return Object.keys(s.dataset).forEach(function(e){s.dataset[e]!==n.dataset[e]&&(o=!1)}),o?i:null}(n,s)&&r?t.resolve(r):function(e,t){void 0===t&&(t=yn());fn(e,t);var i=e.url,n=e.attributes;if("string"!=typeof i||0===i.length)throw new Error("Invalid url.");if(void 0!==n&&"object"!=typeof n)throw new Error("Expected attributes to be an object.");return new t(function(e,t){if("undefined"==typeof window)return e();!function(e){var t=e.url,i=e.attributes,n=e.onSuccess,s=e.onError,o=mn(t,i);o.onerror=s,o.onload=n,document.head.insertBefore(o,document.head.firstElementChild)}({url:i,attributes:n,onSuccess:function(){return e()},onError:function(){var e=new Error('The script "'.concat(i,'" failed to load.'));return window.fetch?fetch(i).then(function(i){return 200===i.status&&t(e),i.text()}).then(function(e){var i=function(e){var t=e.split("/* Original Error:")[1];return t?t.replace(/\n/g,"").replace("*/","").trim():e}(e);t(new Error(i))}).catch(function(e){t(e)}):t(e)}})})}({url:n,attributes:s},t).then(function(){var e=In(o);if(e)return e;throw new Error("The window.".concat(o," global variable is not available."))})}function yn(){if("undefined"==typeof Promise)throw new Error("Promise is undefined. To resolve the issue, use a Promise polyfill.");return Promise}function In(e){return window[e]}function fn(e,t){if("object"!=typeof e||null===e)throw new Error("Expected an options object.");if(void 0!==t&&"function"!=typeof t)throw new Error("Expected PromisePonyfill to be a function.")}var An;!function(e){e.ApplePay="https://applepay.cdn-apple.com/jsapi/v1.3.2/apple-pay-sdk.js",e.GooglePay="https://pay.google.com/gp/p/js/pay.js",e.PayPal="paypal-sdk",e.Lean="https://cdn.leantech.me/link/loader/prod/ae/latest/lean-link-loader.min.js"}(An||(An={}));class Ln{static load(e,t){const n=e.toString(),s=Ln.scriptMap.get(n);if(s)return s;const o=(()=>i(this,void 0,void 0,function*(){try{if(e===An.PayPal){if(!t)throw new Error("PayPal config is required");return yield Ln.loadPayPalScript(t)}return yield Ln.loadScript(e)}finally{Ln.scriptMap.delete(n)}}))();return Ln.scriptMap.set(n,o),o}static reset(){Ln.scriptMap.clear()}static invalidate(e){var t;Ln.scriptMap.delete(e.toString());const i=Ln.getScriptKey(e);Ln.scriptMap.delete(i),null===(t=document.getElementById(i))||void 0===t||t.remove()}static preloadCardForm(){const e="https://assets.payrails.io/f3470e3/card";[[`${e}/index.js`,"payrails-iframe-js-v2"],[`${e}/index.html`,"payrails-iframe-html-v2"]].forEach(([e,t])=>{if(!document.getElementById(t)){const i=document.createElement("link");i.id=t,i.rel="preload",i.as="script",i.href=e,document.head.appendChild(i)}})}static loadScript(e){const t=Ln.getScriptKey(e);if(Ln.scriptMap.has(t))return Ln.scriptMap.get(t);const i=document.createElement("script");i.src=e,i.id=t;const n=Ln.sdkScriptAttributes[e];n&&Object.entries(n).forEach(([e,t])=>{i.setAttribute(e,t)});const s=new Promise((t,n)=>{i.onload=()=>t(),i.onerror=t=>n(Ln.logLoadError(e,new Error(t.toString())))}).catch(e=>{throw Ln.scriptMap.delete(t),i.remove(),e});return Ln.scriptMap.set(t,s),document.body.appendChild(i),s}static getScriptKey(e){return`payrails-script-${JSON.stringify(e)}`}static loadPayPalScript(e){return i(this,arguments,void 0,function*({clientId:e,currency:t,vault:i,intent:n,locale:s}){let a;for(let l=0;l<=Ln.PAYPAL_MAX_RETRIES;l++){l>0&&(Ln.removePayPalScriptElements(),yield Ln.delay(Ln.PAYPAL_BASE_DELAY_MS*Math.pow(2,l-1)));try{const o=yield vn(Object.assign({"client-id":e,components:"buttons,funding-eligibility",intent:n,currency:t,vault:i,"data-namespace":"payrailsPaypal"},s&&{locale:s}));if(o)return o;a=new Error("The window.payrailsPaypal global variable is not available.")}catch(e){a=e}const d=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR,{cause:a});r.PayrailsLogger.error(`PayPal SDK load attempt ${l+1}/${Ln.PAYPAL_MAX_RETRIES+1} failed`,{error:d})}throw Ln.logLoadError(An.PayPal,a)})}static removePayPalScriptElements(){document.querySelectorAll('script[src*="paypal.com/sdk/js"]').forEach(e=>e.remove())}static delay(e){return new Promise(t=>setTimeout(t,e))}constructor(){}static logLoadError(e,t){const i=new Map([[An.ApplePay,o.ERROR_CODES.PAYRAILS_CLIENT_APPLEPAY_LOADING_ERROR],[An.GooglePay,o.ERROR_CODES.PAYRAILS_CLIENT_GPAY_LOADING_ERROR],[An.PayPal,o.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR]]),n=new o.PayrailsError(i.get(e)||o.ERROR_CODES.PAYRAILS_CLIENT_UNKNOWN_ERROR,{cause:t,description:null==t?void 0:t.message});return r.PayrailsLogger.error(n.message,{error:n}),n}}Ln.scriptMap=new Map,Ln.sdkScriptAttributes={[An.ApplePay]:{crossorigin:"anonymous",integrity:"sha384-DZRWMZLyVXr+7shJfal8pIG2v4KisLoSWFjZQMUv0+GWaCwoa82qeHsWrbBIUDPU"}},Ln.PAYPAL_MAX_RETRIES=2,Ln.PAYPAL_BASE_DELAY_MS=1e3;const On=/^[a-zA-Z]+([_-][a-zA-Z0-9]+)*$/,gn=e=>e.replace("_","-"),Cn=e=>{if(e&&On.test(e))return e},Tn=e=>{var t,i;const n=Cn(e)||Cn(null===(i=null===(t=q.meta)||void 0===t?void 0:t.customer)||void 0===i?void 0:i.language)||"en-GB";return gn(n)};class Rn extends ji{constructor(e){super("span",{id:e.id,className:"payrails-store-instrument",dataTestId:e.dataTestId}),this.options=e,this.createHTML(),this.applyStyles(),this.addListeners()}get isChecked(){var e;return!!(null===(e=this.element.querySelector("input"))||void 0===e?void 0:e.checked)}createHTML(){var e,t,i,n,s,o,r,a,l,d;const c=(null===(i=null===(t=null===(e=this.options)||void 0===e?void 0:e.translations)||void 0===t?void 0:t.labels)||void 0===i?void 0:i.saveInstrument)||(null===(o=null===(s=null===(n=this.options)||void 0===n?void 0:n.translations)||void 0===s?void 0:s.labels)||void 0===o?void 0:o.storeInstrument)||"Save instrument for future payments",u=`${this.id}-checkbox`,h=`${this.dataTestId}-checkbox`;(null===(l=null===(a=null===(r=this.options)||void 0===r?void 0:r.translations)||void 0===a?void 0:a.labels)||void 0===l?void 0:l.saveInstrument)&&console.warn("The saveInstrument label is deprecated, please use storeInstrument instead");const p="checked"==(null===(d=this.options)||void 0===d?void 0:d.defaultStoreInstrumentState);this.element.innerHTML=`<label for="${u}"><input type="checkbox" id="${u}" name="${u}" data-testid="${h}" class="payrails-store-instrument-checkbox">${c}</label>`,p&&(this.element.querySelector("input").checked=!0)}applyStyles(){var e,t;Object.keys((null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.storeInstrumentCheckbox)||{}).forEach(e=>{var t,i,n;this.element.style[e]=null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.styles)||void 0===i?void 0:i.storeInstrumentCheckbox)||void 0===n?void 0:n[e]})}addListeners(){this.element.addEventListener("change",e=>{var t,i,n,s;(null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onSaveInstrumentCheckboxChanged)&&(null===(s=null===(n=this.options)||void 0===n?void 0:n.events)||void 0===s||s.onSaveInstrumentCheckboxChanged({checked:this.isChecked})),e.stopPropagation(),e.stopImmediatePropagation()}),this.element.addEventListener("click",e=>{e.stopPropagation(),e.stopImmediatePropagation()})}}class Nn extends ji{constructor(e,t){var n,s,o,r,a,l;super(e,t),this.options=t,this.storeInstrumentCheckbox=null,(null===(n=this.options)||void 0===n?void 0:n.checkboxAboveButton)&&this.element.classList.add("payrails-checkbox-above-button"),(null===(s=this.options)||void 0===s?void 0:s.showStoreInstrumentCheckbox)&&(this.storeInstrumentCheckbox=new Rn(Object.assign(Object.assign({},t),{id:`${null===(o=this.options)||void 0===o?void 0:o.id}-store-instrument-checkbox`,dataTestId:(null===(r=this.options)||void 0===r?void 0:r.dataTestId)?`${null===(a=this.options)||void 0===a?void 0:a.dataTestId}-store-instrument-checkbox`:`${null===(l=this.options)||void 0===l?void 0:l.id}-store-instrument-checkbox`,events:{onSaveInstrumentCheckboxChanged:e=>i(this,void 0,void 0,function*(){var i,n;null===(n=null===(i=null==t?void 0:t.events)||void 0===i?void 0:i.onSaveInstrumentCheckboxChanged)||void 0===n||n.call(i,e)})}})),this.subElements.push(this.storeInstrumentCheckbox))}get shouldStoreInstrument(){var e,t;return(null===(e=this.storeInstrumentCheckbox)||void 0===e?void 0:e.isChecked)||(null===(t=this.options)||void 0===t?void 0:t.alwaysStoreInstrument)||!1}}class Sn extends Nn{static isApplePayAvailable(){return i(this,void 0,void 0,function*(){try{return yield Ln.load(An.ApplePay),ApplePaySession.canMakePayments()}catch(e){return!1}})}constructor(e){super("div",Object.assign(Object.assign({},e),{id:`payrails-apple-pay-button-${se()}`,dataTestId:"payrails-apple-pay-button"})),this.options=e,this.appleButton=null,this.isProcessing=!1,this.completedSessions=new WeakSet,this.abortedSessionReasons=new WeakMap,this.paymentExecutor=new pn,Sn.isApplePayAvailable().then(e=>{var t,i,n;e&&(null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onApplePayAvailable)||void 0===n||n.call(i))}),this.action="tokenization"===J().type?Lo.TOKENIZE:Lo.AUTHORIZE}mount(e){this.unmount(),super.mount(e),(()=>{i(this,void 0,void 0,function*(){try{(yield Sn.isApplePayAvailable())&&(yield this.mountApplePayButton())}catch(e){}})})()}unmount(){var e,t;null===(t=null===(e=this.appleButton)||void 0===e?void 0:e.parentElement)||void 0===t||t.removeChild(this.appleButton),super.unmount()}mountApplePayButton(){return i(this,void 0,void 0,function*(){var e,t,n,s;try{const o=(null===(e=this.options.styles)||void 0===e?void 0:e.type)||"buy",r=(null===(t=this.options.styles)||void 0===t?void 0:t.style)||"black",a=Tn(null===(n=this.options.styles)||void 0===n?void 0:n.locale);this.element.innerHTML=`<apple-pay-button buttonstyle="${r}" type="${o}" locale="${a}"></apple-pay-button>`,null===(s=this.storeInstrumentCheckbox)||void 0===s||s.mount(this.selector);const l=this.element.querySelector("apple-pay-button");this.element.classList.toggle("payrails-checkbox-above-button",Boolean(J().morData)),null==l||l.setAttribute("style","width: 100%;"),null==l||l.addEventListener("click",()=>i(this,void 0,void 0,function*(){this.isProcessing||(this.isProcessing=!0,yield this.createApplePaySession())}))}catch(e){}})}onAuthorizeFailedHandler(e,t){this.isProcessing=!1,this.options.abortAfterAuthorizeFailed?(this.abortedSessionReasons.set(e,t),this.completeApplePaySession(e,"abort")):(this.completeApplePaySession(e,"failure"),Co(Lo.AUTHORIZE,this.options.events,t))}completeApplePaySession(e,t){if(!this.completedSessions.has(e)){this.completedSessions.add(e);try{if("abort"===t)return void e.abort();e.completePayment("success"===t?ApplePaySession.STATUS_SUCCESS:ApplePaySession.STATUS_FAILURE)}catch(e){r.PayrailsLogger.warn(`ApplePaySession completion failed (${t})`,{error:e instanceof o.PayrailsError?e:void 0})}}}createApplePaySession(){return i(this,void 0,void 0,function*(){var e,t,n,s;const a=q.applePayConfig,{countryCode:l,supportedNetworks:d,merchantCapabilities:c,requiredBillingContactFields:u=[],requiredShippingContactFields:h=[]}=a,{amount:p}=J();try{const a=new ApplePaySession(3,{countryCode:l,currencyCode:p.currency,merchantCapabilities:c,supportedNetworks:d,total:{label:(null===(t=null===(e=this.options.translations)||void 0===e?void 0:e.labels)||void 0===t?void 0:t.paymentScreenLabel)||"",type:"final",amount:p.value},requiredBillingContactFields:u,requiredShippingContactFields:h});a.onvalidatemerchant=e=>i(this,void 0,void 0,function*(){let t;try{const{res:i}=yield this.paymentExecutor.createApplePaySession({requestUrl:q.createSessionLink,sessionUrl:e.validationURL,clientDomain:this.options.clientDomain});t=i}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_APPLEPAY_START_PAYMENT_SESSION_ERROR);return r.PayrailsLogger.error(t.message,{error:t,extra:{catchError:e}}),this.abortedSessionReasons.set(a,t),void a.abort()}try{const e=t.data.data;a.completeMerchantValidation(e)}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_APPLEPAY_MERCHANT_VALIDATION_FAILED);r.PayrailsLogger.error(t.message,{error:t,extra:{catchError:e}}),this.abortedSessionReasons.set(a,t),a.abort()}}),a.oncancel=e=>{this.isProcessing=!1;const t=this.abortedSessionReasons.get(a);t instanceof o.PayrailsError?(this.abortedSessionReasons.delete(a),Co(this.action,this.options.events,t)):Co(this.action,this.options.events,{code:exports.AuthorizationFailureReasons.USER_CANCELLED})},h.length>0&&(null===(s=null===(n=this.options)||void 0===n?void 0:n.events)||void 0===s?void 0:s.onDeliveryAddressChanged)&&(a.onshippingcontactselected=e=>i(this,void 0,void 0,function*(){yield this.onApplePayShippingContactSelected(e,a,p)})),a.onpaymentauthorized=e=>i(this,void 0,void 0,function*(){yield this.onApplePayAuthorized(e.payment,a)});return(yield No(this.action,this.options.events))?a.begin():this.isProcessing=!1,a}catch(e){return this.isProcessing=!1,null}})}onApplePayShippingContactSelected(e,t,n){return i(this,void 0,void 0,function*(){var i,s,a,l;const d=e.shippingContact;let c;d&&(c={deliveryAddress:{city:d.locality,postalCode:d.postalCode,state:d.administrativeArea,country:{code:null===(i=d.countryCode)||void 0===i?void 0:i.toUpperCase()}}});const u=yield Ui(null===(s=this.options)||void 0===s?void 0:s.events,c),h={label:(null===(l=null===(a=this.options.translations)||void 0===a?void 0:a.labels)||void 0===l?void 0:l.paymentScreenLabel)||"",type:"final",amount:n.value};try{if(!u)return void t.completeShippingContactSelection({newTotal:h,errors:[new ApplePayError("shippingContactInvalid","postalAddress","Delivery to this address is not supported.")]});t.completeShippingContactSelection({newTotal:h})}catch(e){r.PayrailsLogger.warn("ApplePaySession completeShippingContactSelection failed",{error:e instanceof o.PayrailsError?e:void 0})}})}onApplePayAuthorized(e,t){return i(this,void 0,void 0,function*(){return(yield xi(this.action,this.options.events))?this.action===Lo.TOKENIZE?yield this.doTokenize(e,t):yield this.doAuthorizedPayment(e,t):(this.action===Lo.AUTHORIZE?this.onAuthorizeFailedHandler(t,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:"Authorization request start validation failed"}):(this.isProcessing=!1,this.completeApplePaySession(t,"failure"),Co(this.action,this.options.events,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:"Request start validation failed"})),null)})}doAuthorizedPayment(e,t){return i(this,void 0,void 0,function*(){var i,n,s,r,a;const l=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.APPLE_PAY,integrationType:"api",paymentInstrumentData:{paymentToken:JSON.stringify(e)},amount:J().amount,storeInstrument:this.shouldStoreInstrument}];try{const e=yield this.paymentExecutor.pay(l);if("authorizeSuccessful"===(null===(i=e.finalState)||void 0===i?void 0:i.code))this.completeApplePaySession(t,"success"),this.isProcessing=!1,go(Lo.AUTHORIZE,this.options.events,e);else this.onAuthorizeFailedHandler(t,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(a=null===(r=null===(s=null===(n=e.finalState)||void 0===n?void 0:n.errors)||void 0===s?void 0:s[0])||void 0===r?void 0:r.reason)||void 0===a?void 0:a.result)||"Authorization Failed"});return e}catch(e){this.onAuthorizeFailedHandler(t,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:e instanceof o.PayrailsError?e.message:"Authorization Failed"})}})}doTokenize(e,t){return i(this,void 0,void 0,function*(){const i=J(),n=q.createInstrumentLink,s=i.token;if(!n)return this.completeApplePaySession(t,"failure"),this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events);let o;try{o=JSON.stringify(e)}catch(e){return this.completeApplePaySession(t,"failure"),this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events,e)}const r={holderReference:i.holderReference,paymentMethod:exports.PAYMENT_METHOD_CODES.APPLE_PAY,storeInstrument:this.shouldStoreInstrument,data:{paymentToken:o}};try{const e=yield Ee({url:n,token:s,body:r});return e.ok?(this.completeApplePaySession(t,"success"),this.isProcessing=!1,go(Lo.TOKENIZE,this.options.events,e.res),e.res):(this.completeApplePaySession(t,"failure"),this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events))}catch(e){return this.completeApplePaySession(t,"failure"),this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events,e)}})}}class bn extends ji{getIframeLabel(){var e;if(null===(e=this.opts)||void 0===e?void 0:e.label)return this.opts.label;switch(this.opts.type){case"CARD_NUMBER":return"Card number";case"EXPIRATION_MONTH":return"Expiry month";case"EXPIRATION_YEAR":return"Expiry year";case"EXPIRATION_DATE":return"Expiry date";case"CVV":return"Security code";case"CARDHOLDER_NAME":return"Cardholder name";case"CARD_FORM":return"Payrails Card Form";default:return"Payrails Secure Field"}}constructor(e,t){super("div",{id:`${e.type}-${se()}`,className:"payrails-secure-field"}),this.opts=e,this.containerOpts=t,this.isReady=!1,this.bus=ye.getEventBus(),this.state={isEmpty:!0,isValid:!1,isFocused:!1}}on(e,t){const i=`${this.element.id}-${e}`;this.bus.on(i,t)}off(e,t){const i=`${this.element.id}-${e}`;this.bus.off(i,t)}mount(e){super.mount(e);const t=this.createIframe();this.attachReadyListener(),this.handleResize(t),this.element.appendChild(t)}getState(){return{isEmpty:this.state.isEmpty,isComplete:!this.state.isEmpty&&this.state.isValid,isValid:this.state.isValid,isFocused:this.state.isFocused,value:void 0,required:Boolean(this.opts.required)}}focus(){this.bus.emit(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.FOCUS_ELEMENT}`,{})}setError(e){this.bus.emit(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.SET_ERROR}`,{errorText:e})}resetError(){this.bus.emit(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.SET_ERROR}`,{errorText:""})}update(e){this.bus.emit(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.UPDATE}`,{data:e})}setAttribute(e,t){this.bus.emit(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.SET_ATTRIBUTE}`,{attribute:e,value:t})}handleResize(e){const t=`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.RESIZE}`;this.bus.on(t,t=>{var i,n;const s=null===(n=null===(i=this.containerOpts)||void 0===i?void 0:i.styles)||void 0===n?void 0:n.base;e.width=(null==s?void 0:s.width)||t.width,e.height=(null==s?void 0:s.height)||t.height})}attachReadyListener(){const e=`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.READY}`,t=()=>{const i=`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.SHOW}`;this.bus.emit(i,{data:Object.assign(Object.assign({},this.opts),{containerId:this.containerOpts.containerId,sdkConfig:J(),initResponse:Z.getInstance().response,containerOpts:this.containerOpts})}),this.isReady=!0,this.bus.off(e,t)};this.bus.on(e,t),this.trackState()}trackState(){const e=e=>{const t=e;this.state.isEmpty=t.isEmpty,this.state.isValid=t.isValid,this.state.isFocused=t.isFocused};this.bus.on(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.CHANGE}`,e),this.bus.on(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.FOCUS}`,e),this.bus.on(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.BLUR}`,e),this.bus.on(`${this.element.id}-${ye.COLLECT_FRAME_EVENT_NAMES.ERROR}`,e=>{const t=e.code||o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_OPERATION_FAILED,i=new o.PayrailsError(t,{description:e.message});r.PayrailsLogger.error(i.message,{error:i})})}createIframe(){const e=document.createElement("iframe"),t=this.getIframeLabel();var i,n;return e.setAttribute("title",t),e.setAttribute("aria-label",t),e.setAttribute("data-frame-id",this.element.id),e.style.borderStyle="none",e.width="CARD_FORM"===this.opts.type?"100%":"0",e.height="0",e.setAttribute("src",(i=this.element.id,n=this.opts.type,`https://assets.payrails.io/apps/secure-frame/v1/index.html?mode=${ye.SecureFrameMode.Collect}&type=${n}&id=${i}`)),e}}class Pn{constructor(e){this.opts=e,this.className="payrails-collect-frames-container",this.dataTestId="payrails-collect-frames-container",this.bus=ye.getEventBus(),this.secureFields=[],this.fetchBinLookup=e=>i(this,void 0,void 0,function*(){return _e(e)}),this.bin="",this.id=`payrails-collect-frames-container-${se()}`,this.opts.containerId=this.id}static init(e){return new Pn(Object.assign({},e))}mount(e){if("COMPOSABLE"!==this.opts.containerType)throw new Error("CollectFramesContainer.mount() is only supported for COMPOSABLE containers.");const t=document.querySelector(e);if(!t)throw new Error(`Element "${e}" not found`);const i=document.createElement("div");i.id=this.id,i.className=this.className,i.setAttribute("data-testid",this.dataTestId),t.appendChild(i),this.secureFields.forEach(e=>e.mount(`#${this.id}`))}unmount(){const e=document.getElementById(this.id);e&&e.remove(),this.secureFields.forEach(e=>e.unmount())}createCollectElement(e){const t=new bn(e,this.opts);return this.secureFields.push(t),t}validate(){return i(this,void 0,void 0,function*(){return this.handleGlobalEvent(ye.COLLECT_FRAME_EVENT_NAMES.VALIDATE)})}collect(){return i(this,void 0,void 0,function*(){var e;const{isValid:t}=yield this.validate();if(!t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CARD_FORM_COMPLETE_AND_VALID_INPUTS,{description:"Card form has incomplete or invalid inputs."});const{encrypted:i}=yield this.handleGlobalEvent(ye.COLLECT_FRAME_EVENT_NAMES.COLLECT);return{encryptedData:i,vaultProviderConfigId:null===(e=J().vaultConfiguration)||void 0===e?void 0:e.providerConfigId}})}tokenize(e){return me(()=>this.collect(),e)}reset(){this.secureFields.filter(e=>e.isReady).forEach(e=>this.bus.emit(`${e.id}-${ye.COLLECT_FRAME_EVENT_NAMES.RESET}`,{}))}get isBinLookupEnabled(){var e;return!!(null===(e=J().links)||void 0===e?void 0:e.binLookup)}get firstReadyField(){return this.secureFields.find(e=>e.isReady)}handleGlobalEvent(e){return i(this,arguments,void 0,function*(e,t={}){const i=this.firstReadyField;if(!i)throw new Error("No ready secure fields to collect data from.");return this.bus.emitAndResolve(`${i.id}-${e}`,Object.assign({frameIds:this.secureFields.filter(e=>e.isReady).map(e=>e.id)},t))})}}const Dn={wrapper:{display:"flex",flexDirection:"column"}},Mn=()=>i(void 0,void 0,void 0,function*(){const e=yield(({url:e})=>qi({url:e}))({url:"https://assets.payrails.io/json/countries.json"});return new Map(Object.entries(e.res))});class wn extends ji{constructor(e,t){super(e,{id:t.id,className:t.className}),this.applyStyles(t.styles)}applyStyles(e){Object.keys(e||{}).forEach(t=>{this.element.style[t]=null==e?void 0:e[t]})}}const kn="__payrails-selectedCountry";class Yn extends wn{constructor(e){var t,i;super("span",Object.assign(Object.assign({},e),{id:"payrails-country-select",className:"payrails-country-selector-wrapper",styles:null===(t=e.styles)||void 0===t?void 0:t.wrapper})),this.options=e,this._countriesList=null===(i=e.config)||void 0===i?void 0:i.data,this.createHTML(),this.attachEvents()}set countriesList(e){this._countriesList=e,this.populateCountrySelect(),this.setDefaultCountry()}get countriesList(){return this._countriesList}populateCountrySelect(){return i(this,void 0,void 0,function*(){var e,t;const i=document.createElement("option");i.value="",i.textContent=(null===(e=this.options.translations)||void 0===e?void 0:e.placeholder)||"Select Country",null===(t=this.selectElement)||void 0===t||t.appendChild(i),this._countriesList.forEach(e=>{var t;const i=document.createElement("option");i.value=e.code,i.textContent=e.name,null===(t=this.selectElement)||void 0===t||t.appendChild(i)})})}setDefaultCountry(){const e=JSON.parse(sessionStorage.getItem(kn)||"{}");if(null==e?void 0:e.code)return void(this.value=e.code);const t=Intl.DateTimeFormat().resolvedOptions().timeZone;t&&this.countriesList.forEach(e=>{var i;if(null===(i=e.timezones)||void 0===i?void 0:i.includes(t))return this.value=e.code,void sessionStorage.setItem(kn,JSON.stringify(this.value))})}createHTML(){this.createLabel(),this.createSelectBox()}createSelectBox(){var e;this.selectElement=document.createElement("select"),this.selectElement.id=this.options.id,this.selectElement.className="payrails-country-select-element",this._countriesList&&this.populateCountrySelect(),this.applyStylesToSubElements(null===(e=this.options.styles)||void 0===e?void 0:e.element,this.selectElement),this.element.appendChild(this.selectElement)}createLabel(){var e,t,i;this.label=document.createElement("label"),this.label.textContent=(null===(e=this.options.translations)||void 0===e?void 0:e.label)||"Country",this.applyStylesToSubElements(null===(t=this.options.styles)||void 0===t?void 0:t.label,this.label),(null===(i=this.options.translations)||void 0===i?void 0:i.label)&&this.element.appendChild(this.label)}applyStylesToSubElements(e,t){Object.keys(e||{}).forEach(i=>{t.style[i]=null==e?void 0:e[i]})}attachEvents(){var e;null===(e=this.selectElement)||void 0===e||e.addEventListener("change",e=>{var t,i;null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onChange)||void 0===i||i.call(t,{country:this.value}),sessionStorage.setItem(kn,JSON.stringify(this.value)),e.stopPropagation(),e.stopImmediatePropagation()})}get isValid(){var e;return""!==(null===(e=this.selectElement)||void 0===e?void 0:e.value)}get value(){var e,t,i,n,s,o;return{code:null===(e=this.selectElement)||void 0===e?void 0:e.value,fullName:(null===(i=null===(t=this.selectElement)||void 0===t?void 0:t.options[this.selectElement.selectedIndex])||void 0===i?void 0:i.textContent)||"",iso3:(null===(o=null===(n=this._countriesList)||void 0===n?void 0:n.get(null===(s=this.selectElement)||void 0===s?void 0:s.value))||void 0===o?void 0:o.iso3)||""}}set value(e){this.selectElement&&(this.selectElement.value=e)}}class Un extends wn{set selectedCountry(e){this._selectedCountry=e}get selectedCountry(){return this._selectedCountry}constructor(e){var t;super("span",Object.assign(Object.assign({},e),{id:"payrails-postal-code-wrapper",className:"payrails-postal-code-wrapper",styles:null===(t=e.styles)||void 0===t?void 0:t.wrapper})),this.options=e,this._selectedCountry="",this._countriesList=void 0,this._countriesList=e.config.data,this.createHTML(),this.attachEvents()}createHTML(){this.createLabel(),this.createInput()}createInput(){var e,t;this.inputElement=document.createElement("input"),this.inputElement.type="text",this.inputElement.placeholder=(null===(e=this.options.translations)||void 0===e?void 0:e.placeholder)||"Postal Code",this.inputElement.id=this.options.id,this.inputElement.className="payrails-postal-code-input",this.applyStylesToSubElements(null===(t=this.options.styles)||void 0===t?void 0:t.element,this.inputElement),this.element.appendChild(this.inputElement)}createLabel(){var e,t,i;this.label=document.createElement("label"),this.label.textContent=(null===(e=this.options.translations)||void 0===e?void 0:e.label)||"Postal Code",this.applyStylesToSubElements(null===(t=this.options.styles)||void 0===t?void 0:t.label,this.label),(null===(i=this.options.translations)||void 0===i?void 0:i.label)&&this.element.appendChild(this.label)}applyStylesToSubElements(e,t){Object.keys(e||{}).forEach(i=>{t.style[i]=null==e?void 0:e[i]})}attachEvents(){var e,t,i;null===(e=this.inputElement)||void 0===e||e.addEventListener("change",e=>{e.stopPropagation(),e.stopImmediatePropagation()}),null===(t=this.inputElement)||void 0===t||t.addEventListener("input",e=>{var t,i,n;null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onChange)||void 0===i||i.call(t,{postalCode:this.value}),null===(n=this.inputElement)||void 0===n||n.classList.remove("error"),e.stopPropagation(),e.stopImmediatePropagation()}),null===(i=this.inputElement)||void 0===i||i.addEventListener("focusout",e=>{var t;this.isValid||null===(t=this.inputElement)||void 0===t||t.classList.add("error"),e.stopPropagation(),e.stopImmediatePropagation()})}set countriesList(e){this._countriesList=e}get value(){var e;return(null===(e=this.inputElement)||void 0===e?void 0:e.value)||""}set value(e){this.inputElement&&(this.inputElement.value=e)}show(){this.element.style.display="flex"}hide(){this.element.style.display="none"}get isValid(){var e,t,i;const n=null===(e=this.inputElement)||void 0===e?void 0:e.value,s=this.selectedCountry,o=(null===(i=null===(t=this._countriesList)||void 0===t?void 0:t.get(s))||void 0===i?void 0:i.postalCodeRegex)||"";let r=!1;if(n)return r=o?new RegExp(o).test(n):n.length>0,r}setValidation(e){this.inputElement&&(this.inputElement.pattern=e,this.inputElement.classList.remove("error"))}}class xn extends ji{get fullAddress(){var e,t,i,n;const s={},o=null===(e=this.countrySelector)||void 0===e?void 0:e.value;return o&&(s.country=o,o.code&&(null===(i=null===(t=this.countriesMap)||void 0===t?void 0:t.get(o.code))||void 0===i?void 0:i.showPostalCode)&&(s.postalCode=null===(n=this.postalCodeInput)||void 0===n?void 0:n.value)),Object.assign({},s)}constructor(e){var t,i;super("div",{id:e.id,className:"payrails-address-selector-wrapper",styles:(null===(t=e.styles)||void 0===t?void 0:t.wrapper)||(null===(i=Dn)||void 0===i?void 0:i.wrapper)}),this.options=e,this.countriesMap=void 0,this.createAddressComponents(),this.init(),this.applyStyles(),Mn().then(e=>{this.countriesMap=e,this.countrySelector&&(this.countrySelector.countriesList=e),this.postalCodeInput&&(this.postalCodeInput.countriesList=e)})}applyStyles(){var e,t;Object.keys((null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.wrapper)||{}).forEach(e=>{var t,i,n;this.element.style[e]=null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.styles)||void 0===i?void 0:i.wrapper)||void 0===n?void 0:n[e]})}createAddressComponents(e){var t,i,n,s,o,r,a,l,d,c,u,h;const p={id:"country-selector",styles:(null===(t=this.options.styles)||void 0===t?void 0:t.countrySelector)||(null===(i=Dn)||void 0===i?void 0:i.countrySelector),events:{onChange:e=>{var t,i;const{country:n}=e;this.onCountryChange(n),null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onBillingAddressChanged)||void 0===i||i.call(t,{isValid:this.isValid,billingAddress:this.fullAddress})}},translations:{label:null===(s=null===(n=this.options.translations)||void 0===n?void 0:n.labels)||void 0===s?void 0:s.countrySelector,placeholder:null===(r=null===(o=this.options.translations)||void 0===o?void 0:o.placeholders)||void 0===r?void 0:r.countrySelector}},_={id:"postal-code-input",translations:{label:null===(l=null===(a=this.options.translations)||void 0===a?void 0:a.labels)||void 0===l?void 0:l.postalCodeInput,placeholder:null===(c=null===(d=this.options.translations)||void 0===d?void 0:d.placeholders)||void 0===c?void 0:c.postalCodeInput},styles:(null===(u=this.options.styles)||void 0===u?void 0:u.postalCodeInput)||(null===(h=Dn)||void 0===h?void 0:h.postalCodeInput),events:{onChange:()=>{var e,t;null===(t=null===(e=this.options.events)||void 0===e?void 0:e.onBillingAddressChanged)||void 0===t||t.call(e,{isValid:this.isValid,billingAddress:this.fullAddress})}},config:{data:e}};this.countrySelector=new Yn(p),this.postalCodeInput=new Un(_)}init(){var e,t;this.countrySelector&&this.subElements.push(this.countrySelector),this.postalCodeInput&&this.subElements.push(this.postalCodeInput),null===(e=this.postalCodeInput)||void 0===e||e.hide(),(null===(t=this.options.styles)||void 0===t?void 0:t.wrapper)&&Object.assign(this.element.style,this.options.styles.wrapper)}get isValid(){var e,t,i,n;let s=this.countrySelector&&this.countrySelector.isValid;const o=null===(t=null===(e=this.countrySelector)||void 0===e?void 0:e.value)||void 0===t?void 0:t.code;return o&&(null===(n=null===(i=this.countriesMap)||void 0===i?void 0:i.get(o))||void 0===n?void 0:n.showPostalCode)&&(s=s&&this.postalCodeInput&&this.postalCodeInput.isValid),!!s}onCountryChange(e){var t;const i=null==e?void 0:e.code;if(!i)return;const n=null===(t=this.countriesMap)||void 0===t?void 0:t.get(i);if(this.postalCodeInput)if(n&&(null==n?void 0:n.showPostalCode)){const e=new RegExp(n.postalCodeRegex||"[0-9]*");this.postalCodeInput.setValidation(e.source),this.postalCodeInput.selectedCountry=i,this.postalCodeInput.show()}else this.postalCodeInput.hide(),this.postalCodeInput.setValidation(""),this.postalCodeInput.value=""}get selectedCountry(){var e;return null===(e=this.countrySelector)||void 0===e?void 0:e.value}get postalCode(){var e;return null===(e=this.postalCodeInput)||void 0===e?void 0:e.value}show(){this.element.style.display="flex"}hide(){this.element.style.display="none"}}class Fn extends ji{constructor(e){var t;super("div",{id:e.id,className:e.className}),this.options=e,this.INSTALLMENT_STORAGE_KEY="__payrails-selectedInstallmentCount",this.installmentOptions=[],this.installmentOptions=(null===(t=e.installmentConfig)||void 0===t?void 0:t.installmentOptions)||[],this.createHTML(),this.applyStyles(),this.addListeners()}getDefaultInstallment(){var e,t;return parseInt(null!==(e=sessionStorage.getItem(this.INSTALLMENT_STORAGE_KEY))&&void 0!==e?e:"",10)||(null===(t=this.options.installmentConfig)||void 0===t?void 0:t.defaultInstallment)}generateOptionsHTML(e){var t,i,n;const s=(null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.translations)||void 0===i?void 0:i.labels)||void 0===n?void 0:n.paymentInstallments)||"Split payment into monthly installments",o=this.getDefaultInstallment();return[`<option value="">${s}</option>`,...(null==e?void 0:e.map(e=>{const t=e.count===o?" selected":"";return`<option value="${e.count}" ${t}>${e.count} x ${e.amount}</option>`}))||[]].join("")}renderOptions(e){const t=this.element.querySelector("select");if(t){t.innerHTML=this.generateOptionsHTML(e);const i=this.getDefaultInstallment();i&&(t.value=String(i)),e.length>0?this.setDisabled(!1):this.setDisabled(!0)}}updateOptions(e){this.updateConfig(Object.assign(Object.assign({},this.options.installmentConfig),{installmentOptions:e}))}updateConfig(e){var t,i,n,s,o,r,a;if(!this.options)return;const l=null!==(t=this.options.installmentConfig)&&void 0!==t?t:{},d=null!=e?e:{};this.options.installmentConfig={installmentCurrency:null!==(i=d.installmentCurrency)&&void 0!==i?i:l.installmentCurrency,installmentOptions:null!==(s=null!==(n=d.installmentOptions)&&void 0!==n?n:l.installmentOptions)&&void 0!==s?s:[],defaultInstallment:null!==(o=d.defaultInstallment)&&void 0!==o?o:l.defaultInstallment},this.installmentOptions=null!==(r=this.options.installmentConfig.installmentOptions)&&void 0!==r?r:[],null===(a=this.renderOptions)||void 0===a||a.call(this,this.installmentOptions)}createHTML(){const e=`${this.id}-dropdown`;this.element.innerHTML=`<select name="${this.options.className}" id="${e}"></select>`,this.renderOptions(this.installmentOptions||[])}applyStyles(){var e,t;Object.keys((null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.paymentInstallmentsDropdown)||{}).forEach(e=>{var t,i,n;this.element.style[e]=null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.styles)||void 0===i?void 0:i.paymentInstallmentsDropdown)||void 0===n?void 0:n[e]})}addListeners(){this.element.addEventListener("change",e=>{var t;e.stopPropagation(),e.stopImmediatePropagation();const i=null===(t=this.element.querySelector("select"))||void 0===t?void 0:t.value;i?sessionStorage.setItem(this.INSTALLMENT_STORAGE_KEY,i):sessionStorage.removeItem(this.INSTALLMENT_STORAGE_KEY)}),this.element.addEventListener("click",e=>{e.stopPropagation(),e.stopImmediatePropagation()})}get selectedInstallmentValue(){var e;return null===(e=this.element.querySelector("select"))||void 0===e?void 0:e.value}setDisabled(e){const t=this.element.querySelector("select");t&&0!==this.installmentOptions.length?t&&(t.disabled=e,this.setVisible(!e)):this.setVisible(!1)}setVisible(e){const t=this.element.querySelector("select");t&&t.parentElement&&(t.parentElement.style.display=e?"block":"none")}}class jn extends ji{constructor(e,t){var i,n;super(e,t),this.options=t,this.paymentInstallmentsDropdown=null,this.paymentInstallmentsDropdown=new Fn(Object.assign(Object.assign({},t),{id:`${null===(i=this.options)||void 0===i?void 0:i.id}-dropdown`,className:"payrails-payment-installments-dropdown",installmentConfig:null===(n=this.options)||void 0===n?void 0:n.installmentConfig})),this.subElements.push(this.paymentInstallmentsDropdown)}get selectedInstallmentValue(){var e;return parseInt((null===(e=this.paymentInstallmentsDropdown)||void 0===e?void 0:e.selectedInstallmentValue)||"0")}updateInstallmentOptions(e){var t;this.options&&(null===(t=this.paymentInstallmentsDropdown)||void 0===t||t.updateOptions(e))}updateInstallmentConfig(e){var t;this.options&&(this.options.installmentConfig=Object.assign(Object.assign({},this.options.installmentConfig),e),null===(t=this.paymentInstallmentsDropdown)||void 0===t||t.updateConfig(this.options.installmentConfig))}setDisabled(e){var t;null===(t=this.paymentInstallmentsDropdown)||void 0===t||t.setDisabled(e)}}const{CARD_NUMBER:Bn,CVV:Vn,CARDHOLDER_NAME:Gn,EXPIRATION_DATE:Xn,EXPIRATION_MONTH:Hn,EXPIRATION_YEAR:zn}=exports.ElementType,$n={base:{border:"none",padding:"10px 16px",color:"#1d1d1d",backgroundColor:"#fff"},invalid:{backgroundColor:"#f9e1e1",borderColor:"#f25226",border:"1px solid"}},qn=[{type:Gn,placeholder:"Card holder",styles:Object.assign(Object.assign({},$n),{base:Object.assign(Object.assign({},$n.base),{border:"1px solid #eae8ee",padding:"10px 16px",borderTopLeftRadius:"4px",borderTopRightRadius:"4px"})})},{type:Bn,placeholder:"1234 1234 1234 1234",styles:Object.assign(Object.assign({},$n),{base:Object.assign(Object.assign({},$n.base),{border:"1px solid #eae8ee",padding:"10px 16px",borderTopLeftRadius:"4px",borderTopRightRadius:"4px",textIndent:"0"}),cardIcon:{position:"absolute",right:"8px",height:"24px",bottom:"calc(50% - 12px)"}})},{type:Hn,placeholder:"MM",styles:Object.assign(Object.assign({},$n),{base:Object.assign(Object.assign({},$n.base),{borderBottom:"1px solid #eae8ee",borderLeft:"1px solid #eae8ee",borderRight:"1px solid #eae8ee",borderBottomLeftRadius:"4px"})})},{type:zn,placeholder:"YY",format:"YY",styles:Object.assign(Object.assign({},$n),{base:Object.assign(Object.assign({},$n.base),{borderBottom:"1px solid #eae8ee",borderRight:"1px solid #eae8ee"})})},{type:Xn,placeholder:"MM/YY",format:"MM/YY",styles:Object.assign(Object.assign({},$n),{base:Object.assign(Object.assign({},$n.base),{borderBottom:"1px solid #eae8ee",borderLeft:"1px solid #eae8ee",borderRight:"1px solid #eae8ee",borderBottomLeftRadius:"4px"}),cardIcon:{position:"absolute",right:"8px",height:"24px",bottom:"calc(50% - 12px)"}})},{type:Vn,placeholder:"CVC",styles:Object.assign(Object.assign({},$n),{base:Object.assign(Object.assign({},$n.base),{borderBottom:"1px solid #eae8ee",borderRight:"1px solid #eae8ee",borderBottomRightRadius:"4px"}),cardIcon:{position:"absolute",right:"8px",height:"24px",bottom:"calc(50% - 12px)"}})}];class Wn extends Nn{get bin(){return this.collectContainer.bin}get isBinLookupEnabled(){return this.collectContainer.isBinLookupEnabled}constructor(e,t){var i,n,s,o,r,a,l,d,c;super("div",Object.assign(Object.assign({},t),{translations:Object.assign(Object.assign({},null==t?void 0:t.translations),{labels:Object.assign(Object.assign({},null===(i=null==t?void 0:t.translations)||void 0===i?void 0:i.labels),{saveInstrument:null===(s=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.labels)||void 0===s?void 0:s.saveCreditCard})}),styles:Object.assign({storeInstrumentCheckbox:null===(o=null==t?void 0:t.styles)||void 0===o?void 0:o.storeCardCheckbox},null==t?void 0:t.styles),id:"payrails-card-form"})),this.collectContainer=e,this.options=t,this.formFields=[],this.paymentInstallmentsDropdown=null,this.addressComponent=null,this.lastBin=null,this.lastBinLookup=null,this.defaultStyles={},this.defaultTranslations={},this.defaultStyles=(null===(r=this.options)||void 0===r?void 0:r.styles)||{},this.defaultTranslations=(null===(a=this.options)||void 0===a?void 0:a.translations)||{},this.eventsRef=null===(l=this.options)||void 0===l?void 0:l.events,this.throttledFetchBinLookup=function(e,t){let i,n;return function(...s){return new Promise((o,r)=>{n?(clearTimeout(i),i=setTimeout(()=>{Date.now()-n>=t&&(e(...s).then(o).catch(r),n=Date.now())},t-(Date.now()-n))):(e(...s).then(o).catch(r),n=Date.now())})}}(this.fetchBinLookup.bind(this),500),(null===(d=null==t?void 0:t.styles)||void 0===d?void 0:d.storeCardCheckbox)&&console.warn("The `storeCardCheckbox` option for styles is deprecated. Please use `storeInstrumentCheckbox` instead."),this.initializeFormFields(),this.subElements.push(this.collectContainer),q.isPaymentInstallmentsEnabled(exports.PAYMENT_METHOD_CODES.CARD)&&(this.paymentInstallmentsDropdown=new jn("span",Object.assign(Object.assign({},t),{installmentConfig:{installmentCurrency:"",installmentOptions:this.getinstallmentOptions(),defaultInstallment:null===(c=null==t?void 0:t.installmentConfig)||void 0===c?void 0:c.defaultInstallment},id:"payrails-card-form-payment-installments",className:"payrails-card-form-payment-installments-container"})),this.paymentInstallmentsDropdown&&this.subElements.push(this.paymentInstallmentsDropdown)),q.isAddressSelectorEnabled(exports.PAYMENT_METHOD_CODES.CARD)&&(this.addressComponent=this.createAddressSelector(),this.subElements.push(this.addressComponent)),Array.isArray(null==t?void 0:t.injectedComponents)&&t.injectedComponents.forEach(e=>{this.subElements.push(e)}),this.storeInstrumentCheckbox&&this.subElements.push(this.storeInstrumentCheckbox)}initializeFormFields(){var e;if(this.collectContainer instanceof Pn){const e=this.options||{},{events:i}=e,n=t(e,["events"]);return void this.formFields.push(new Kn(this.collectContainer,Object.assign(Object.assign({type:exports.ElementType.CARD_FORM},n),{events:{onFocus:()=>{var e,t;return null===(t=null===(e=this.eventsRef)||void 0===e?void 0:e.onFocus)||void 0===t?void 0:t.call(e)},onChange:this.onChange.bind(this),onReady:this.triggerOnReady.bind(this)}})))}(null===(e=this.options)||void 0===e?void 0:e.layout)&&this.options.layout.length>0?this.initializeCustomLayout():this.initializeDefaultLayout()}getErrorTextStyles(e){return(null==e?void 0:e.base)?e:{base:{}}}updateStyles(e){return this.formFields.forEach(t=>{var i,n,s,o;const r=X((null===(i=null==e?void 0:e.inputFields)||void 0===i?void 0:i.all)||{},(null===(n=null==e?void 0:e.inputFields)||void 0===n?void 0:n[t.type])||{}),a=this.prepareInputStyles(r,t.type),l=X((null===(s=null==e?void 0:e.labels)||void 0===s?void 0:s.all)||{},(null===(o=null==e?void 0:e.labels)||void 0===o?void 0:o[t.type])||{}),d=this.prepareLabelStyles(t.type,l),c=this.prepareErrorStyles(null==e?void 0:e.errorTextStyles);t.update({styles:{inputStyles:a,labelStyles:d,errorTextStyles:c}})}),X(this.defaultStyles,e||{})}updateTranslations(e){const t=X(this.defaultTranslations||{},e||{});return this.formFields.forEach(e=>{var i,n,s,o;const r=null===(i=t.labels)||void 0===i?void 0:i[e.type],a=null===(n=t.placeholders)||void 0===n?void 0:n[e.type],l=null===(o=null===(s=t.error)||void 0===s?void 0:s.default)||void 0===o?void 0:o[e.type];e.update({translations:Object.assign(Object.assign(Object.assign({},void 0!==r&&{label:r}),void 0!==a&&{placeholder:a}),void 0!==l&&{translations:{error:{default:l}}})})}),t}updateEvents(e){this.eventsRef=Object.assign(Object.assign({},this.eventsRef),e),this.formFields.forEach(e=>{e.update({events:{onFocus:()=>{var e,t;return null===(t=null===(e=this.eventsRef)||void 0===e?void 0:e.onFocus)||void 0===t?void 0:t.call(e)},onChange:this.onChange.bind(this),onReady:this.triggerOnReady.bind(this)}})})}update(e){this.collectContainer instanceof Pn?this.updateSecureFields(e):this.updateSkyflow(e)}updateSkyflow(e){(null==e?void 0:e.styles)&&(this.defaultStyles=this.updateStyles(e.styles)),(null==e?void 0:e.translations)&&(this.defaultTranslations=this.updateTranslations(e.translations)),(null==e?void 0:e.events)&&this.updateEvents(e.events)}updateSecureFields(e){var t;((null==e?void 0:e.styles)||(null==e?void 0:e.translations))&&(null===(t=this.formFields[0])||void 0===t||t.updateForm({styles:e.styles,translations:e.translations})),(null==e?void 0:e.styles)&&(this.defaultStyles=X(this.defaultStyles||{},e.styles)),(null==e?void 0:e.translations)&&(this.defaultTranslations=X(this.defaultTranslations||{},e.translations)),(null==e?void 0:e.events)&&this.updateEvents(e.events)}updateInstallmentConfig(e){var t,i,n,s,o;if(!this.paymentInstallmentsDropdown)return;const r=q.getPaymentInstallmentOptions(exports.PAYMENT_METHOD_CODES.CARD),a={installmentCurrency:(null===(t=J().amount)||void 0===t?void 0:t.currency)||""};this.options&&e&&Object.prototype.hasOwnProperty.call(e,"defaultInstallment")&&(this.options.installmentConfig={defaultInstallment:null!==(i=e.defaultInstallment)&&void 0!==i?i:null},a.defaultInstallment=null!==(n=e.defaultInstallment)&&void 0!==n?n:null);const l=null===(o=null===(s=this.lastBinLookup)||void 0===s?void 0:s.issuerCountry)||void 0===o?void 0:o.code,d=l&&r?r[l]:void 0;a.installmentOptions=d||[],this.paymentInstallmentsDropdown.updateInstallmentConfig(a)}createFormField(e,t,i,n,s,o=!1){var r,a,l,d,c,u,h;const p=this.prepareErrorStyles(i);return new Kn(this.collectContainer,{type:e,required:o,label:null===(a=null===(r=this.defaultTranslations)||void 0===r?void 0:r.labels)||void 0===a?void 0:a[e],errorTextStyles:p,placeholder:(null===(d=null===(l=this.defaultTranslations)||void 0===l?void 0:l.placeholders)||void 0===d?void 0:d[e])||s,labelStyles:this.prepareLabelStyles(e),inputStyles:this.prepareInputStyles(t,e),translations:{error:{default:(null===(h=null===(u=null===(c=this.defaultTranslations)||void 0===c?void 0:c.error)||void 0===u?void 0:u.default)||void 0===h?void 0:h[e])||""}},format:n,events:{onFocus:()=>{var e,t;return null===(t=null===(e=this.eventsRef)||void 0===e?void 0:e.onFocus)||void 0===t?void 0:t.call(e)},onChange:this.onChange.bind(this),onReady:this.triggerOnReady.bind(this)}})}isFieldRequired(){var e,t;return!!(null===(t=null===(e=this.defaultStyles)||void 0===e?void 0:e.errorTextStyles)||void 0===t?void 0:t.base)}initializeCustomLayout(){var e;if(!(null===(e=this.options)||void 0===e?void 0:e.layout))return;const t=e=>{e.forEach(e=>{var t;const i=qn.find(t=>t.type===e);if(!i)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_INVALID_ELEMENT_TYPE);if(this.hasFieldBeenUsed(i.type))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_DUPLICATE_ELEMENT);const{type:n,styles:s,format:r,placeholder:a}=i,l=this.isFieldRequired();this.formFields.push(this.createFormField(n,s,null===(t=this.defaultStyles)||void 0===t?void 0:t.errorTextStyles,r,a,l))})};this.options.layout.forEach(e=>t(e))}hasFieldBeenUsed(e){return this.formFields.some(t=>t.type===e)}initializeDefaultLayout(){const e=e=>{var t,i,n;return!(null===(t=this.options)||void 0===t?void 0:t.showCardHolderName)&&e===exports.ElementType.CARDHOLDER_NAME||(!(null===(i=this.options)||void 0===i?void 0:i.showSingleExpiryDateField)&&e===exports.ElementType.EXPIRATION_DATE||!(!(null===(n=this.options)||void 0===n?void 0:n.showSingleExpiryDateField)||e!==exports.ElementType.EXPIRATION_MONTH&&e!==exports.ElementType.EXPIRATION_YEAR))};qn.filter(({type:t})=>!e(t)).forEach(({type:e,styles:t,format:i,placeholder:n})=>{var s;const o=this.isFieldRequired();this.formFields.push(this.createFormField(e,t,null===(s=this.defaultStyles)||void 0===s?void 0:s.errorTextStyles,i,n,o))})}throttledFetchBinLookupIfChanged(){return i(this,void 0,void 0,function*(){return this.bin!==this.lastBin&&(this.lastBin=this.bin,this.lastBinLookup=yield this.throttledFetchBinLookup()),this.lastBinLookup})}tokenize(e){return this.collectContainer.tokenize(e)}createAddressSelector(){var e,t;return new xn({id:"payrails-address-selector",events:Object.assign(Object.assign({},this.eventsRef),{onBillingAddressChanged:e=>{var t,i;this.onChange(),null===(i=null===(t=this.eventsRef)||void 0===t?void 0:t.onBillingAddressChanged)||void 0===i||i.call(t,e)}}),styles:null===(e=this.defaultStyles)||void 0===e?void 0:e.addressSelector,translations:null===(t=this.defaultTranslations)||void 0===t?void 0:t.addressSelector})}show(){var e;const t=document.getElementById(this.collectContainer.id);if(!t){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT);throw r.PayrailsLogger.error(e.message,{error:e}),e}Object.assign(t.style,null===(e=this.defaultStyles)||void 0===e?void 0:e.wrapper),this.element.style.display="flex"}hide(e={}){this.element.style.display="none",e.reset&&this.reset()}triggerOnReady(){var e,t;this.formFields.reduce((e,t)=>e&&t.isReady,!0)&&(this.updateTranslations(this.defaultTranslations||{}),this.updateStyles(this.defaultStyles||{}),null===(t=null===(e=this.eventsRef)||void 0===e?void 0:e.onReady)||void 0===t||t.call(e))}prepareErrorStyles(e){var t,i;const n={base:{}};return n.base=Object.assign(Object.assign({},(null===(i=null===(t=this.defaultStyles)||void 0===t?void 0:t.errorTextStyles)||void 0===i?void 0:i.base)||{}),(null==e?void 0:e.base)||{}),n}prepareLabelStyles(e,t){var i,n,s,o,r;const a={};return a.base=Object.assign(Object.assign(Object.assign(Object.assign({},(null===(i=this.defaultStyles)||void 0===i?void 0:i.base)||{}),(null===(s=null===(n=this.defaultStyles)||void 0===n?void 0:n.labels)||void 0===s?void 0:s.all)||{}),(null===(r=null===(o=this.defaultStyles)||void 0===o?void 0:o.labels)||void 0===r?void 0:r[e])||{}),t||{}),a}prepareInputStyles(e,t){var i;const n={};return["base","complete","empty","focus","invalid","cardIcon","copyIcon"].forEach(i=>{var s,o,r,a,l,d;n[i]=Object.assign(Object.assign(Object.assign({},(null===(r=null===(o=null===(s=this.defaultStyles)||void 0===s?void 0:s.inputFields)||void 0===o?void 0:o.all)||void 0===r?void 0:r[i])||{}),(null===(d=null===(l=null===(a=this.defaultStyles)||void 0===a?void 0:a.inputFields)||void 0===l?void 0:l[t])||void 0===d?void 0:d[i])||{}),(null==e?void 0:e[i])||{})}),(null===(i=this.options)||void 0===i?void 0:i.showCardHolderName)&&t===exports.ElementType.CARD_NUMBER&&(this.element.setAttribute("class","with-card-holder"),n.base=Object.assign(Object.assign(Object.assign({},$n.base),{border:"1px solid #eae8ee",borderTop:"none",padding:"10px 16px",textIndent:"0"}),n.base)),n}validate(){return this.collectContainer.validate()}focus(){const e=this.formFields.find(e=>!e.isValid)||this.formFields[0];if(!e)return;const t=document.getElementById(this.collectContainer.id)||this.element;t&&"function"==typeof t.scrollIntoView&&t.scrollIntoView({behavior:"smooth",block:"center"}),window.requestAnimationFrame(()=>{e.focus()})}get isValid(){var e;const t=this.formFields.reduce((e,t)=>e&&t.isValid,!0);return this.addressComponent?t&&!!(null===(e=this.addressComponent)||void 0===e?void 0:e.isValid):t}get cardNetwork(){var e,t;return null!==(t=null===(e=this.formFields.find(e=>Boolean(e.cardNetwork)))||void 0===e?void 0:e.cardNetwork)&&void 0!==t?t:""}onChange(){var e;const t=this.formFields.find(e=>e.bin);t&&(this.collectContainer.bin=t.bin),(null===(e=this.eventsRef)||void 0===e?void 0:e.onChange)&&(this.eventsRef.onChange({isValid:this.isValid,cardNetwork:this.cardNetwork,bin:this.bin,billingAddress:this.billingAddress}),q.isPaymentInstallmentsEnabled(exports.PAYMENT_METHOD_CODES.CARD)&&this.bin.length>=6&&this.throttledFetchBinLookupIfChanged().then(e=>{this.updateInstallments(e)}))}updateInstallments(e){var t;if(this.paymentInstallmentsDropdown&&this.isBinLookupEnabled){const i=this.getinstallmentOptions(null===(t=null==e?void 0:e.issuerCountry)||void 0===t?void 0:t.code);i?this.paymentInstallmentsDropdown.updateInstallmentOptions(i):this.paymentInstallmentsDropdown.updateInstallmentOptions([])}}reset(){this.collectContainer.reset()}collectValues(){return i(this,void 0,void 0,function*(){return{cardData:yield this.collectContainer.collect(),storeInstrument:this.shouldStoreInstrument,selectedInstallment:this.selectedInstallment,enrollInstrumentToNetworkOffers:Boolean(this.enforceEnrollInstrumentToNetworkOffersForMasterCard()),billingInfo:this.billingAddress}})}get selectedInstallment(){var e;return null===(e=this.paymentInstallmentsDropdown)||void 0===e?void 0:e.selectedInstallmentValue}get billingAddress(){var e;return null===(e=this.addressComponent)||void 0===e?void 0:e.fullAddress}enforceEnrollInstrumentToNetworkOffersForMasterCard(){var e;return"mastercard"!==this.cardNetwork&&(null===(e=this.options)||void 0===e?void 0:e.enrollInstrumentToNetworkOffers)}fetchBinLookup(){return i(this,void 0,void 0,function*(){return this.isBinLookupEnabled?yield this.collectContainer.fetchBinLookup(this.bin):this.bin})}getinstallmentOptions(e){if(e){const t=q.getPaymentInstallmentOptions(exports.PAYMENT_METHOD_CODES.CARD);return t?t[e]:null}return null}unmount(){this.hide({reset:!0}),super.unmount()}mount(e){super.mount(e),this.show()}}class Kn{constructor(e,t){this.isValid=!1,this.isReady=!1,this.cardNetwork="",this.bin="";const{events:i}=t;this.vaultElement=e.createCollectElement(t),this.type=t.type,(null==i?void 0:i.onFocus)&&this.vaultElement.on("FOCUS",i.onFocus),this.vaultElement.on("READY",()=>{var e,i;this.isReady=!0,null===(i=null===(e=t.events)||void 0===e?void 0:e.onReady)||void 0===i||i.call(e)}),this.vaultElement.on("CHANGE",e=>{const{isEmpty:t,isValid:n,network:s,bin:o}=e;this.isValid=!t&&n,void 0!==o&&(this.bin=o),this.cardNetwork=null!=s?s:"",(null==i?void 0:i.onChange)&&i.onChange(this)})}updateStyles(e){var t,i;null===(i=(t=this.vaultElement).update)||void 0===i||i.call(t,{type:this.type,errorTextStyles:(null==e?void 0:e.errorTextStyles)||{base:{}},inputStyles:(null==e?void 0:e.inputStyles)||{},labelStyles:(null==e?void 0:e.labelStyles)||{}})}updateTranslations(e){var t,i,n,s;const o=null===(i=null===(t=null==e?void 0:e.translations)||void 0===t?void 0:t.error)||void 0===i?void 0:i.default;null===(s=(n=this.vaultElement).update)||void 0===s||s.call(n,Object.assign(Object.assign(Object.assign({type:this.type},void 0!==(null==e?void 0:e.label)&&{label:e.label}),void 0!==o&&{translations:{error:{default:o}}}),void 0!==(null==e?void 0:e.placeholder)&&{placeholder:e.placeholder}))}update(e){e.styles&&this.updateStyles(e.styles),e.translations&&this.updateTranslations(e.translations)}updateForm(e){var t,i;if(!e.styles&&!e.translations)return;const n=Object.assign(Object.assign({type:this.type},void 0!==e.styles&&{styles:e.styles}),void 0!==e.translations&&{translations:e.translations});null===(i=(t=this.vaultElement).update)||void 0===i||i.call(t,n)}focus(){var e,t;null===(t=(e=this.vaultElement).focus)||void 0===t||t.call(e)}}class Zn extends ji{constructor(e,t,i,n,s){super("div",{id:e,className:"payrails-dropin-item"}),this.events=n,this.styles=s,this.isActive=!1,this.mountContainerClass="payrails-dropin-item-container",this.element.setAttribute("data-testid",`dropin-item-${e}`),this.applyBaseStyles();const o=`payrails-dropin-item-${e}`,r=document.createElement("label");r.setAttribute("for",o),r.setAttribute("data-testid",`dropin-item-label-${e}`);const a=document.createElement("input");if(a.setAttribute("type","radio"),a.setAttribute("name","payment-option"),a.setAttribute("id",o),a.setAttribute("value",o),a.setAttribute("data-testid",`dropin-item-radio-${e}`),this.input=a,r.appendChild(a),this.label=r,i){const e=document.createElement("img");e.src=null!=i?i:"",e.className="payrails-store-instrument-icon",r.appendChild(e)}const l=document.createElement("span");r.appendChild(l),l.innerText=t,this.element.addEventListener("click",()=>{var e,t;null===(t=(e=this.label).onchange)||void 0===t||t.call(e,new Event("change"))}),this.element.appendChild(r);const d=document.createElement("div");d.setAttribute("class",this.mountContainerClass),d.setAttribute("data-testid","dropin-item-container"),this.element.appendChild(d)}get identifier(){return`payrails-dropin-item-${this.id}`}deactivate(){var e,t;this.isActive&&(this.isActive=!1,this.input.checked=!1,this.applyBaseStyles(),null===(e=this.component)||void 0===e||e.unmount(),(null===(t=this.events)||void 0===t?void 0:t.onDeactivate)&&this.events.onDeactivate())}applyBaseStyles(){var e,t;this.element.classList.remove("active"),Object.keys((null===(e=this.styles)||void 0===e?void 0:e.active)||{}).forEach(e=>{this.element.style.removeProperty(e)}),Object.assign(this.element.style,null===(t=this.styles)||void 0===t?void 0:t.base)}applyActiveStyles(){var e,t;this.element.classList.add("active"),Object.assign(this.element.style,null===(e=this.styles)||void 0===e?void 0:e.base,null===(t=this.styles)||void 0===t?void 0:t.active)}activate(){var e,t,i;this.isActive||(null===(e=this.component)||void 0===e||e.mount(`${this.selector} .${this.mountContainerClass}`),this.applyActiveStyles(),this.input.checked=!0,this.isActive=!0,(null===(t=this.events)||void 0===t?void 0:t.onActivate)&&this.events.onActivate(),(null===(i=this.events)||void 0===i?void 0:i.onPaymentOptionVisibilityChange)&&this.events.onPaymentOptionVisibilityChange())}wrapComponent(e){this.component=e(this.component)}mount(e){var t,i;super.mount(e),null===(i=null===(t=this.events)||void 0===t?void 0:t.onAvailable)||void 0===i||i.call(t)}}var Jn;!function(e){e.AMEX="amex",e.DINERS="diners",e.DISCOVER="discover",e.HIPERCARD="hipercard",e.JCB="jcb",e.MAESTRO="maestro",e.MASTERCARD="mastercard",e.UNIONPAY="unionpay",e.VISA="visa"}(Jn||(Jn={}));const Qn={[exports.PAYMENT_METHOD_CODES.CARD]:"https://assets.payrails.io/img/logos/card/",[exports.PAYMENT_METHOD_CODES.PAYPAL]:"https://assets.payrails.io/img/logos/paypal/",[exports.PAYMENT_METHOD_CODES.APPLE_PAY]:"https://assets.payrails.io/img/logos/applepay/",[exports.PAYMENT_METHOD_CODES.GOOGLE_PAY]:"https://assets.payrails.io/img/logos/googlepay/"};class es extends Zn{constructor(e,t,i,n,s){const o=e.displayName&&""!==e.displayName?e.displayName:"Unavailable";super(`payrails-payment-instrument-${e.id}`,o,es.getInstrumentIcon(e),{onActivate:()=>{i(e),this.component.setDisabled(!1),this.installmentDropdown&&this.component.setPaymentInstallmentsDropdown(this.installmentDropdown)}},n),this.installmentDropdown=null,s&&(this.installmentDropdown=s),this.instrumentData=e,this.component=new ts(t,s)}static getInstrumentIcon(e){var t;if(e.paymentMethod===exports.PAYMENT_METHOD_CODES.CARD){const i=Qn[exports.PAYMENT_METHOD_CODES.CARD];switch(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.network){case Jn.AMEX:return i+"amex.svg";case Jn.DINERS:return i+"diners-club.svg";case Jn.DISCOVER:return i+"discover.svg";case Jn.HIPERCARD:return i+"hipercard.svg";case Jn.JCB:return i+"jcb.svg";case Jn.MAESTRO:return i+"maestro.svg";case Jn.MASTERCARD:return i+"mastercard.svg";case Jn.UNIONPAY:return i+"unionpay.svg";case Jn.VISA:return i+"visa.svg"}return i+"default.svg"}return e.paymentMethod===exports.PAYMENT_METHOD_CODES.PAYPAL?Qn[exports.PAYMENT_METHOD_CODES.PAYPAL]+"logo.svg":e.paymentMethod===exports.PAYMENT_METHOD_CODES.APPLE_PAY?Qn[exports.PAYMENT_METHOD_CODES.APPLE_PAY]+"logo.svg":e.paymentMethod===exports.PAYMENT_METHOD_CODES.GOOGLE_PAY?Qn[exports.PAYMENT_METHOD_CODES.GOOGLE_PAY]+"logo.svg":""}updateInstallmentConfig(e){var t,i,n,s,o;if(!this.installmentDropdown||this.instrumentData.paymentMethod!==exports.PAYMENT_METHOD_CODES.CARD)return;const r=q.getPaymentInstallmentOptions(exports.PAYMENT_METHOD_CODES.CARD),a=null===(n=null===(i=null===(t=this.instrumentData.data)||void 0===t?void 0:t.binLookup)||void 0===i?void 0:i.issuerCountry)||void 0===n?void 0:n.code,l={installmentCurrency:(null===(s=J().amount)||void 0===s?void 0:s.currency)||""};e&&Object.prototype.hasOwnProperty.call(e,"defaultInstallment")&&(l.defaultInstallment=null!==(o=e.defaultInstallment)&&void 0!==o?o:null);const d=a&&r?r[a]:void 0;l.installmentOptions=d||[],this.installmentDropdown.updateInstallmentConfig(l)}}class ts extends ji{constructor(e,t){super("div",{id:"stored-instrument-container",className:"payrails-stored-instrument-container"}),this.paymentButton=e,this.paymentInstallmentDropdown=t,this.paymentInstallmentDropdown&&this.subElements.push(this.paymentInstallmentDropdown),this.subElements.push(this.paymentButton)}setDisabled(e){this.paymentButton.setDisabled(e),this.paymentInstallmentDropdown&&this.paymentInstallmentDropdown.setDisabled(e)}setPaymentInstallmentsDropdown(e){this.paymentInstallmentDropdown=e,this.paymentButton.setPaymentInstallmentsDropdown(e)}}class is extends ji{constructor(e){super("div",{id:"payrails-card-list"}),this.listItems=[],q.savedCreditCards.forEach(t=>{const i=new ns(()=>{(null==e?void 0:e.onCardChange)&&e.onCardChange(t)},t);this.listItems.push(i),this.subElements.push(i)})}reset(){this.element.querySelectorAll("input").forEach(e=>e.checked=!1)}}class ns extends ji{constructor(e,t){super("div",{className:"payrails-card-list-item",id:`payrails-card-list-item-${t.id}`});const{id:i}=t,n=t.displayName&&""!==t.displayName?t.displayName:"Unavailable",s=document.createElement("label");s.setAttribute("for",i),s.addEventListener("click",e);const o=document.createElement("input");o.setAttribute("type","radio"),o.setAttribute("name","payment-option"),o.setAttribute("id",i),o.setAttribute("value",i),s.appendChild(o);const r=document.createElement("span");r.className="payment-option-text",s.appendChild(r);const a=document.createElement("img");a.src=es.getInstrumentIcon(t),a.className="payment-option-icon",r.appendChild(a),r.appendChild(document.createTextNode(n)),this.element.appendChild(s)}}class ss extends ji{constructor(e){var t;super("div",{id:"authorization-failed-message"}),this.options=e;const i=(null===(t=null==e?void 0:e.translations)||void 0===t?void 0:t.label)||"Authorization failed, please try again.";this.element.innerText=i,this.setStyles((null==e?void 0:e.styles)||{}),this.element.innerHTML=`\n <div>\n <svg class="checkmark-cross" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">\n <circle class="checkmark-cross_circle" cx="26" cy="26" r="25" fill="none"/>\n <path class="checkmark-cross_check" fill="none" d="M14.1 14.1l23.8 23.8 m0,-23.8 l-23.8,23.8"/>\n </svg>\n </div>\n <div class="payrails-auth-failed-label">${i}</div>`,this.element.addEventListener("click",e=>{e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),this.unmount()})}mount(e){super.mount(e),this.scheduleAutoHide()}setStyles(e){Object.keys(e).forEach(t=>{this.element.style[t]=e[t]})}scheduleAutoHide(){var e,t;const i=null===(t=null===(e=this.options)||void 0===e?void 0:e.configuration)||void 0===t?void 0:t.autoHideTTL;i&&setTimeout(()=>{this.unmount()},i)}}class os extends ji{constructor(e){var t;super("div",{id:"payrails-authorization-success-msg"}),this.setStyles((null==e?void 0:e.styles)||{}),this.element.innerHTML=`\n <div class="checkmark-wrapper">\n <svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">\n <circle class="checkmark__circle" cx="26" cy="26" r="25" fill="none"/>\n <path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>\n </svg>\n </div>\n <div id="payrails-authorization-success">${(null===(t=null==e?void 0:e.translations)||void 0===t?void 0:t.label)||"Payment successful"}</div`}setStyles(e){Object.keys(e).forEach(t=>{this.element.style[t]=e[t]})}}class rs extends ji{constructor(e){super("div",{id:"payrails-dropin-loader",className:"payrails-dropin-loader-wrapper"}),this.options=e,this.selectors={[as.overlay]:".loading-overlay",[as.loader]:".lds-ring .loading-ring"},this.element.innerHTML="\n <div class='loading-overlay'>\n <div class='lds-ring'>\n <div></div>\n <div></div>\n <div></div>\n <div class='loading-ring'></div>\n </div>\n </div>\n "}mount(e){var t;(null===(t=this.options)||void 0===t?void 0:t.styles)&&this.setStyles(this.options.styles),super.mount(e)}setStyles(e){Object.keys(e).forEach(t=>{const i=t;e[i]&&this.applyStyles(i,e[i])})}applyStyles(e,t){const i=this.element.querySelector(this.selectors[e]);i&&Object.keys(t).forEach(e=>{i.style[e]=t[e]})}}var as;function ls(e,t){const i=function(e){var t;try{const i=new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol"}).formatToParts(0).find(e=>"currency"===e.type);return null!==(t=null==i?void 0:i.value)&&void 0!==t?t:e}catch(t){return e}}(t);return i!==t?`${i}${e}`:`${e} ${t}`}!function(e){e.overlay="overlay",e.loader="loader"}(as||(as={}));const ds={id:"payrails-order-summary",translations:{labels:{header:"Order Summary",subtotal:"Subtotal",total:"Total due"}},styles:{wrapper:{base:{}},header:{base:{}},subTotalRow:{base:{}},taxRows:{base:{}},totalRow:{base:{}}}};function cs(e,t={},i={}){const n=Object.assign(Object.assign({},i),t);Object.keys(n).forEach(t=>{e.style[t]=n[t]})}function us(e,t){const i=(null==t?void 0:t.base)||{},n=(null==t?void 0:t.hover)||{};cs(e,i,i),Object.keys(n).length&&(e.addEventListener("mouseenter",()=>{cs(e,n,i)}),e.addEventListener("mouseleave",()=>{!function(e,t={},i={}){const n=Object.keys(i);Object.keys(t).forEach(t=>{n.includes(t)?e.style[t]=i[t]:e.style[t]=""})}(e,n,i)}))}class hs extends ji{constructor(e,t,i){super("p",{id:e,className:"payrails-order-summary-header"}),this.element.innerText=t,us(this.element,i)}}class ps extends ji{constructor(e,t,i){super("span",{id:t,className:i}),this.element.innerText=e}}class _s extends ji{constructor(e){super("div",{id:e.id,className:e.rowClass}),us(this.element,e.rowStyles);const t=new ps(e.label,`${e.id}--label`,e.labelClass),i=new ps(e.amount,`${e.id}--amount`,e.amountClass);this.subElements.push(t,i)}}class Es extends ji{get childIdPrefix(){return this.id||ds.id||"payrails-order-summary"}childId(e){return`${this.childIdPrefix}-${e}`}static transformOrderSummary(e){var t,i,n,s;const o=(e.taxLines||[]).filter(e=>"total"!==(e.type||"").trim().toLowerCase()).map(e=>{const t=(e.type||"Taxes").trim(),i=(e.percentage||"").trim(),n=i?i.endsWith("%")?i:`${i}%`:"";return{label:n?`${t} (${n})`:t,amount:e.amount,currency:e.currency}}),r=null!==(i=null===(t=e.amount)||void 0===t?void 0:t.subTotal)&&void 0!==i?i:"",a=null!==(s=null===(n=e.amount)||void 0===n?void 0:n.currency)&&void 0!==s?s:"";return{taxItems:o,subtotalItem:r&&a?{label:e.subtotalLabel||"Subtotal",amount:r,currency:a}:void 0}}constructor(e={}){var t;const i=function(e){var t,i;return Object.assign(Object.assign(Object.assign({},ds),e),{translations:Object.assign(Object.assign(Object.assign({},ds.translations),e.translations),{labels:Object.assign(Object.assign({},null===(t=ds.translations)||void 0===t?void 0:t.labels),null===(i=e.translations)||void 0===i?void 0:i.labels)}),styles:Object.assign(Object.assign({},ds.styles),e.styles)})}(e);super("div",{id:i.id||ds.id,className:"payrails-order-summary-wrapper"}),this.config=i,us(this.element,null===(t=this.config.styles)||void 0===t?void 0:t.wrapper),this.setup()}get headerLabel(){var e,t,i;return null!==(i=null===(t=null===(e=this.config.translations)||void 0===e?void 0:e.labels)||void 0===t?void 0:t.header)&&void 0!==i?i:"Order Summary"}get subtotalLabel(){var e,t,i;return null!==(i=null===(t=null===(e=this.config.translations)||void 0===e?void 0:e.labels)||void 0===t?void 0:t.subtotal)&&void 0!==i?i:"Subtotal"}get totalLabel(){var e,t,i;return null!==(i=null===(t=null===(e=this.config.translations)||void 0===e?void 0:e.labels)||void 0===t?void 0:t.total)&&void 0!==i?i:"Total due"}getResolvedAmounts(){var e,t;const i=J(),n=null==i?void 0:i.amount;return{orderTotalCurrency:null!==(e=null==n?void 0:n.currency)&&void 0!==e?e:"",orderTotalValue:null!==(t=null==n?void 0:n.value)&&void 0!==t?t:""}}buildTaxRows(e){return e.map((e,t)=>{var i;return new _s({id:this.childId(`tax-row-${t}`),label:e.label,amount:ls(e.amount,e.currency),rowClass:"payrails-order-summary-row",labelClass:"payrails-order-summary-label",amountClass:"payrails-order-summary-amount",rowStyles:null===(i=this.config.styles)||void 0===i?void 0:i.taxRows})})}buildSubtotalRow(e){var t;return new _s({id:this.childId("subtotal"),label:e.label,amount:ls(e.amount,e.currency),rowClass:"payrails-order-summary-row",labelClass:"payrails-order-summary-label",amountClass:"payrails-order-summary-amount",rowStyles:null===(t=this.config.styles)||void 0===t?void 0:t.subTotalRow})}buildTotalRow(e,t){var i;return new _s({id:this.childId("total"),label:this.totalLabel,amount:ls(e,t),rowClass:"payrails-order-summary-total-row",labelClass:"payrails-order-summary-total-label",amountClass:"payrails-order-summary-total-amount",rowStyles:null===(i=this.config.styles)||void 0===i?void 0:i.totalRow})}setup(){var e,t;const i=J(),n=null==i?void 0:i.amount,s=null===(e=null==i?void 0:i.morData)||void 0===e?void 0:e.taxLines,{orderTotalCurrency:o,orderTotalValue:r}=this.getResolvedAmounts(),{taxItems:a,subtotalItem:l}=this.config.lineItems?{taxItems:this.config.lineItems,subtotalItem:void 0}:Es.transformOrderSummary({amount:n,taxLines:s,subtotalLabel:this.subtotalLabel}),d=this.buildTaxRows(a),c=l?this.buildSubtotalRow(l):null,u=this.buildTotalRow(r,o);this.subElements.push(new hs(this.childId("header"),this.headerLabel,null===(t=this.config.styles)||void 0===t?void 0:t.header),...d,...c?[c]:[],u)}}const ms=e(window);class vs extends ji{constructor(e){var t;super("p",{id:e.id||"payrails-terms-and-conditions",className:"payrails-terms-and-conditions"});const i=null===(t=e.html)||void 0===t?void 0:t.trim();this.element.innerHTML=`<span class="payrails-terms-text">${function(e){const t=ms.sanitize(function(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(e,t)=>String.fromCharCode(parseInt(t,16))).replace(/\\\//g,"/").replace(/\\+(?=")/g,"")}(e),{ALLOWED_TAGS:["a","strong","em","b","i","br","span"],ALLOWED_ATTR:["href"]}),i=document.createElement("template");return i.innerHTML=t,Array.from(i.content.querySelectorAll("a")).forEach(e=>{const t=(e.getAttribute("href")||"").trim();/^https:\/\//i.test(t)?(e.setAttribute("href",t),e.setAttribute("target","_blank"),e.setAttribute("rel","noreferrer noopener")):e.replaceWith(document.createTextNode(e.textContent||""))}),i.innerHTML}(i)}</span>`,e.styles&&Object.assign(this.element.style,e.styles)}show(){this.element.style.display="block"}hide(){this.element.style.display="none"}}const ys="https://assets.payrails.io/img/logos";function Is(e=""){switch(e=e.trim().split(/\s+/).join("").toLowerCase()){case"adyen-old":e="adyen";break;case"checkout.com":e="checkout";break;case"visaoffersplatform":e="visa";break;case"bankAccount":e="banktransfer"}return"card"!==e?`${ys}/${e}/logo.svg`:`${ys}/card/credit-card-regular.svg`}class fs extends Zn{constructor(){super(...arguments),this.buttonShown=!1}activate(){var e,t;if(!this.buttonShown)return super.activate(),void(this.buttonShown=!0);this.applyActiveStyles(),this.isActive=!0;const i=this.element.querySelector(this.component.selector);i&&(i.style.display="block"),null===(t=null===(e=this.events)||void 0===e?void 0:e.onPaymentOptionVisibilityChange)||void 0===t||t.call(e)}deactivate(){if(!this.isActive)return;this.isActive=!1,this.applyBaseStyles();const e=this.element.querySelector(this.component.selector);e&&(e.style.display="none")}mountAfterAvailable(){var e,t;super.mount(`#${this.loadElementId}`),null===(t=null===(e=this.events)||void 0===e?void 0:e.onAvailable)||void 0===t||t.call(e)}mount(e){const t=document.querySelector(e);if(!t){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING);throw r.PayrailsLogger.error(e.message,{error:e}),e}const i=document.createElement("div");i.setAttribute("id",this.loadElementId),i.setAttribute("style","width: 100%;"),t.appendChild(i)}unmount(){var e;super.unmount(),null===(e=document.querySelector(`#${this.loadElementId}`))||void 0===e||e.remove()}}class As extends fs{constructor(e){var t,i;super("apple-pay-dropin",(null===(i=null===(t=e.translations)||void 0===t?void 0:t.labels)||void 0===i?void 0:i.label)||"Apple Pay",e.showPaymentMethodLogo?Is("applepay"):void 0,void 0,e.styles),this.loadElementId="apple-pay-dropin-load-element",this.component=new Sn(Object.assign(Object.assign({},e),{events:Object.assign(Object.assign({},e.events),{onApplePayAvailable:()=>{this.mountAfterAvailable()}})}))}}class Ls extends Zn{constructor(e,t,i,n){var s,o;super("payrails-credit-card-wrapper",(null===(o=null===(s=n.translations)||void 0===s?void 0:s.labels)||void 0===o?void 0:o.label)||"Card",n.showPaymentMethodLogo?Is("card"):void 0,Object.assign({},n.events),Object.assign({},n.styles)),this.cardForm=e,this.paymentButton=t,this.termsAndConditions=i,this.cardFormShown=!1,this.component=new Os(e,t,i)}activate(){var e,t,i,n;this.applyActiveStyles(),this.cardFormShown?null===(t=this.termsAndConditions)||void 0===t||t.show():(this.cardFormShown=!0,null===(e=this.component)||void 0===e||e.mount(this.selector)),this.isActive||(this.paymentButton.selectedInstrument=null,this.paymentButton.mount(this.selector),this.paymentButton.setDisabled(!this.cardForm.isValid),this.paymentButton.mount("#payrails-card-form"),this.input.checked=!0,this.cardForm.show(),this.isActive=!0,(null===(i=this.events)||void 0===i?void 0:i.onActivate)&&this.events.onActivate(),(null===(n=this.events)||void 0===n?void 0:n.onPaymentOptionVisibilityChange)&&this.events.onPaymentOptionVisibilityChange())}deactivate(){var e,t;this.isActive&&(this.applyBaseStyles(),this.paymentButton.unmount(),this.cardForm.hide(),null===(e=this.termsAndConditions)||void 0===e||e.hide(),this.isActive=!1,(null===(t=this.events)||void 0===t?void 0:t.onDeactivate)&&this.events.onDeactivate())}}class Os extends ji{constructor(e,t,i){super("div",{id:"payrails-form-container"}),this.subElements.push(e,t),i&&this.subElements.push(i)}}var gs;exports.ACTION_REQUIRED_KIND=void 0,(gs=exports.ACTION_REQUIRED_KIND||(exports.ACTION_REQUIRED_KIND={})).GENERIC_REDIRECT="genericRedirect",gs.THREE_DS="3ds";const Cs=new class{constructor(){this.handlers=new Map}on(e,t){let i=this.handlers.get(e);return i||(i=new Set,this.handlers.set(e,i)),i.add(t),()=>this.off(e,t)}off(e,t){var i;null===(i=this.handlers.get(e))||void 0===i||i.delete(t)}hasListeners(e){const t=this.handlers.get(e);return!!t&&t.size>0}emit(e,t){return i(this,void 0,void 0,function*(){const i=this.handlers.get(e);if(i&&0!==i.size)for(const n of Array.from(i))try{yield n(t)}catch(t){const i=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_UNKNOWN_ERROR,{description:`Handler for "${e}" threw`,cause:t});r.PayrailsLogger.error(i.message,{error:i})}})}reset(){this.handlers.clear()}};function Ts(){return Cs}const Rs="actionRequired";function Ns(e){return i(this,arguments,void 0,function*({url:e,kind:t,paymentMethodCode:i,executionId:n}){var s;let o=!1;const r={url:e,kind:t,paymentMethodCode:i,executionId:null!==(s=null!=n?n:q.executionId)&&void 0!==s?s:"",preventDefault:()=>{o=!0}};return yield Ts().emit(Rs,r),o})}function Ss(){return Ts().hasListeners(Rs)}class bs{constructor(e,t,i,n=Ps.THREE_DS){this.link=e,this.paymentExecutor=t,this.options=i,this.type=n,this.THREE_DS_SIZES=[[250,400],[390,400],[500,600],[600,450]],this.internalPopupBackground=null,this.SCREEN_WIDTH=window.innerWidth,this.SCREEN_HEIGHT=window.innerHeight}get iframeSize(){return this.type===Ps.THREE_DS?this.THREE_DS_SIZES.reduce((e,t)=>this.SCREEN_WIDTH>t[0]?t:e,[250,400]):[this.SCREEN_WIDTH-50,this.SCREEN_HEIGHT-50]}get popupBackground(){if(this.internalPopupBackground)return this.internalPopupBackground;{const e=document.createElement("div");e.setAttribute("id","payrails-popup-background"),e.appendChild(this.popup),this.internalPopupBackground=e}return this.internalPopupBackground}get popupCancelButton(){const e=document.createElement("button");return e.setAttribute("id","payrails-popup-cancel-button"),e.setAttribute("type","button"),e.setAttribute("aria-label","Close"),e.addEventListener("click",()=>{ye.getEventBus().emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),Co(Lo.AUTHORIZE,this.options.events,{code:exports.AuthorizationFailureReasons.USER_CANCELLED,message:"User cancelled the authorization."}),this.unmount()}),e}get popup(){const e=document.createElement("div");return e.setAttribute("id","payrails-popup"),e.setAttribute("width",this.iframeSize[0].toString()),e.setAttribute("height",this.iframeSize[1].toString()),!0===this.options.showCancelButton&&e.appendChild(this.popupCancelButton),e.appendChild(this.iframe),e.style.width=`${this.iframeSize[0]+4}px`,e.style.height=`${this.iframeSize[1]+4}px`,e}get iframe(){const e=document.createElement("iframe");return e.setAttribute("id","payrails-frame"),e.setAttribute("src",this.link),e.setAttribute("width",this.iframeSize[0].toString()),e.setAttribute("height",this.iframeSize[1].toString()),e.setAttribute("allow","clipboard-write; clipboard-read"),e}handleMessages(){const e=t=>i(this,void 0,void 0,function*(){var i,n,s,o,r;if(t.data&&'{"type":"3DS-challenge-completed"}'===t.data){window.removeEventListener("message",e);const t=yield this.paymentExecutor.pollForAuthorizationResult(q.url);switch(null===(i=t.finalState)||void 0===i?void 0:i.code){case"authorizeSuccessful":go(Lo.AUTHORIZE,this.options.events);break;case"authorizePending":Ro(Lo.AUTHORIZE,this.options.events);break;default:Co(Lo.AUTHORIZE,this.options.events,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(r=null===(o=null===(s=null===(n=t.finalState)||void 0===n?void 0:n.errors)||void 0===s?void 0:s[0])||void 0===o?void 0:o.reason)||void 0===r?void 0:r.result)||"Authorization failed after 3DS challenge."})}this.unmount()}});window.addEventListener("message",e)}mount(){var e;this.popup.remove(),null===(e=document.querySelector("body"))||void 0===e||e.appendChild(this.popupBackground),this.handleMessages()}unmount(){this.popupBackground.remove(),this.internalPopupBackground=null}}var Ps;!function(e){e[e.THREE_DS=0]="THREE_DS",e[e.GENERIC_REDIRECT=1]="GENERIC_REDIRECT"}(Ps||(Ps={}));const Ds="https://assets.payrails.io/img/logos/revolutpay/button",Ms={backgroundRepeat:"no-repeat",backgroundPosition:"center",backgroundSize:"contain",backgroundColor:"transparent",fontSize:"0",color:"transparent",padding:"0",display:"block",maxWidth:"100%",margin:"0 auto",aspectRatio:"250 / 44",border:"none",cursor:"pointer",transition:"opacity 0.2s ease"},ws="lightOutline",ks="Pay with Revolut Pay",Ys={dark:{base:{backgroundImage:`url(${`${Ds}/dark/Medium.svg`})`},hover:{opacity:"0.85"},loading:{backgroundImage:"none",backgroundColor:"#191C1F",color:"#FFFFFF"}},light:{base:{backgroundImage:`url(${`${Ds}/white/Medium.svg`})`},hover:{opacity:"0.85"},loading:{backgroundImage:"none",backgroundColor:"#FFFFFF",color:"#191C1F"}},lightOutline:{base:{backgroundImage:`url(${`${Ds}/outline/Medium.svg`})`},hover:{opacity:"0.85"},loading:{backgroundImage:"none",backgroundColor:"#FFFFFF",color:"#191C1F"}}};function Us(e){var t;const i=null==e?void 0:e.theme,n=Ys[i&&i in Ys?i:ws],s={width:null!==(t=null==e?void 0:e.width)&&void 0!==t?t:"250px"};return(null==e?void 0:e.borderRadius)&&(s.borderRadius=e.borderRadius),{base:Object.assign(Object.assign(Object.assign({},Ms),null==n?void 0:n.base),s),hover:Object.assign({},null==n?void 0:n.hover),loading:Object.assign(Object.assign({},null==n?void 0:n.loading),s)}}const xs="__PAYRAILS__TAB_MANUAL_CLOSE_ERROR__",Fs={label:"Generic redirect"},js={pix:75e4,modo:6e5},Bs={showCancelButton:!0};class Vs extends ji{constructor(e,t){var i,n,s;super("button",{id:`payrails-generic-redirect-${e.paymentMethod.paymentMethodCode}`,className:"payrails-generic-button"}),this.returnInfo=t,this.popup=null,this.isDisabled=!1,this.isLoading=!1,this.isRevolutPay=e.paymentMethod.paymentMethodCode===exports.PAYMENT_METHOD_CODES.REVOLUT_PAY,this.options=Object.assign(Object.assign({},e),{styles:this.isRevolutPay?Us(e.styles):e.styles,translations:this.isRevolutPay?{label:ks}:e.translations}),this.element.innerText=null!==(n=null===(i=this.options.translations)||void 0===i?void 0:i.label)&&void 0!==n?n:Fs.label,(null===(s=this.options.styles)||void 0===s?void 0:s.base)&&this.setStyles(this.options.styles.base),this.element.addEventListener("click",this.onClick.bind(this)),this.element.addEventListener("mouseenter",()=>{var e;!this.isDisabled&&(null===(e=this.options.styles)||void 0===e?void 0:e.hover)&&this.setStyles(this.options.styles.hover)}),this.element.addEventListener("mouseleave",()=>{var e;!this.isDisabled&&(null===(e=this.options.styles)||void 0===e?void 0:e.hover)&&this.removeStyles(this.options.styles.hover)}),this.paymentExecutor=new pn(this.returnInfo),this.eventBus.on("PAYRAILS_CLIENT_SESSION_EXPIRED",()=>{this.triggerLoading(!1)})}setStyles(e){var t;const i=Object.assign(Object.assign({},null===(t=this.options.styles)||void 0===t?void 0:t.base),e);Object.keys(i).forEach(e=>{this.element.style[e]=i[e]})}removeStyles(e){var t;const i=Object.keys((null===(t=this.options.styles)||void 0===t?void 0:t.base)||{});Object.keys(e).forEach(e=>{var t,n;i.includes(e)?this.element.style[e]=null===(n=null===(t=this.options.styles)||void 0===t?void 0:t.base)||void 0===n?void 0:n[e]:this.element.style[e]=""})}triggerLoading(e){var t,i,n,s;this.isDisabled=e,this.isLoading=e,e?(this.element.innerHTML='\n <div class="dot-flashing-container">\n <div class="dot-flashing"></div>\n <span class="dot-flashing-text" aria-hidden="true">Loading</span>\n </div>\n ',(null===(t=this.options.styles)||void 0===t?void 0:t.loading)&&this.setStyles(this.options.styles.loading)):(this.element.innerText=null!==(n=null===(i=this.options.translations)||void 0===i?void 0:i.label)&&void 0!==n?n:Fs.label,this.removeStyles((null===(s=this.options.styles)||void 0===s?void 0:s.loading)||{}))}isSafari(){const e=navigator.userAgent.toLowerCase();return e.includes("safari")&&!e.includes("chrome")&&!e.includes("chromium")}onClick(){return i(this,void 0,void 0,function*(){var e,t;if(this.isDisabled)return;let i=null;this.options.openInNewTab&&this.isSafari()&&(i=window.open("","_blank"));try{this.triggerLoading(!0);if(!(yield No(Lo.AUTHORIZE,null!==(e=this.options.events)&&void 0!==e?e:{})))return this.triggerLoading(!1),void(i&&!i.closed&&i.close());const n=null===(t=q.availablePaymentMethods.find(({paymentMethodCode:e})=>e===this.options.paymentMethod.paymentMethodCode))||void 0===t?void 0:t.integrationType;if(!n)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CONFIG_MALFORMED);const s=yield this.paymentExecutor.pay([{paymentMethodCode:this.options.paymentMethod.paymentMethodCode,integrationType:n,amount:J().amount}]),{action:r,link:a}=this.handleAuthorizationResult(s);if("redirect"!==r)return void(i&&!i.closed&&i.close());if(!a)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_GENERIC_REDIRECT_MISSING_REDIRECT_LINK);if(Ss()){if(yield Ns({url:a,kind:exports.ACTION_REQUIRED_KIND.GENERIC_REDIRECT,paymentMethodCode:this.options.paymentMethod.paymentMethodCode}))return i&&!i.closed&&i.close(),void this.triggerLoading(!1)}if(Object.keys(js).includes(this.options.paymentMethod.paymentMethodCode)){i&&!i.closed&&i.close();const e=js[this.options.paymentMethod.paymentMethodCode],t=2e4,n=2e3,s=Math.ceil((e-t)/n);return new pn(this.returnInfo,n,s,t).pollForAuthorizationResult(q.url,0,["authorizeSuccessful","authorizeFailed"]).then(e=>{var t;this.handleAuthorizationResult(e),null===(t=this.popup)||void 0===t||t.unmount()}),this.createPopupWithTimeout(a,e)}return this.redirectToPaymentLink(a,i)}catch(e){i&&!i.closed&&i.close(),e instanceof o.PayrailsError&&r.PayrailsLogger.error(e.message,{error:e}),Co(Lo.AUTHORIZE,this.options.events),this.triggerLoading(!1)}finally{this.isLoading||this.triggerLoading(!1)}})}handleAuthorizationResult(e){var t,i;if("authorizePending"===(null===(t=null==e?void 0:e.finalState)||void 0===t?void 0:t.code)){const t=e.response.links.redirect;if(!t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_GENERIC_REDIRECT_MISSING_REDIRECT_LINK);return{code:"authorizePending",link:t,action:"redirect"}}return"authorizeSuccessful"===(null===(i=null==e?void 0:e.finalState)||void 0===i?void 0:i.code)?(go(Lo.AUTHORIZE,this.options.events),{code:"authorizeSuccessful",action:"success"}):(Co(Lo.AUTHORIZE,this.options.events,e),this.triggerLoading(!1),{code:"authorizeFailed",action:"fail"})}createPopupWithTimeout(e,t){return new Promise(()=>{const i=new bs(e,this.paymentExecutor,Object.assign(Object.assign({},this.options),Bs));this.popup=i,this.popup.mount(),setTimeout(()=>{null==i||i.unmount(),Co(Lo.AUTHORIZE,this.options.events),this.triggerLoading(!1)},t)})}redirectToPaymentLink(e,t=null){return new Promise(i=>{if(this.options.openInNewTab){const n=t||window.open(e,"_blank");if(!n||n.closed||void 0===n.closed){r.PayrailsLogger.warn("Popup blocked. Falling back to same tab redirect."),window.location.href=e;const t=setTimeout(()=>{var e;Co(Lo.AUTHORIZE,this.options.events),(null===(e=this.returnInfo)||void 0===e?void 0:e.error)?window.location.href=this.returnInfo.error:(this.triggerLoading(!1),this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}))},6e4);return window.addEventListener("pagehide",()=>{clearTimeout(t)}),void i()}t&&(n.location.href=e),this.monitorRedirectInNewTab(n).finally(()=>{i()})}else{window.location.href=e;const t=setTimeout(()=>{var e;Co(Lo.AUTHORIZE,this.options.events),(null===(e=this.returnInfo)||void 0===e?void 0:e.error)?window.location.href=this.returnInfo.error:(this.triggerLoading(!1),this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}))},6e4);window.addEventListener("pagehide",()=>{clearTimeout(t)}),i()}})}monitorRedirectInNewTab(e){return i(this,void 0,void 0,function*(){var t,i,n,s,o,a;let l;try{l=q.url}catch(n){return r.PayrailsLogger.error("Unable to resolve workflow execution URL.",{error:n}),this.triggerLoading(!1),e.closed||e.close(),void(null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onAuthorizeFailed)||void 0===i||i.call(t,{code:exports.AuthorizationFailureReasons.UNKNOWN_ERROR,message:"Unable to resolve workflow execution URL.",rawError:n}))}const d=new pn(this.returnInfo),c=new AbortController,{promise:u,cleanup:h}=this.watchTabClosure(e,()=>{c.signal.aborted||c.abort(xs),this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{})});try{const e=yield Promise.race([d.pollForAuthorizationResult(l,0,["authorizeSuccessful","authorizeFailed"],{signal:c.signal}),u]);c.signal.aborted||c.abort("authorization-completed"),this.handleAuthorizationResult(e)}catch(e){if(c.signal.aborted||c.abort(e),e===xs){try{const e=new pn(this.returnInfo,1e3,3,0),t=yield e.pollForAuthorizationResult(l,0,["authorizeSuccessful","authorizeFailed"]);return void this.handleAuthorizationResult(t)}catch(e){}null===(s=null===(n=this.options.events)||void 0===n?void 0:n.onAuthorizeFailed)||void 0===s||s.call(n,{code:exports.AuthorizationFailureReasons.USER_CANCELLED,message:"User closed the payment window before completion."})}else r.PayrailsLogger.error("Failed to retrieve authorization result after redirect.",{error:e}),null===(a=null===(o=this.options.events)||void 0===o?void 0:o.onAuthorizeFailed)||void 0===a||a.call(o,{code:exports.AuthorizationFailureReasons.UNKNOWN_ERROR,message:"Failed to retrieve authorization result after redirect.",rawError:e})}finally{c.signal.aborted||c.abort("cleanup"),h(),e.closed||e.close(),this.triggerLoading(!1)}})}watchTabClosure(e,t){let i,n=!0;const s=()=>{void 0!==i&&(window.clearInterval(i),i=void 0),n=!1};return{promise:new Promise((o,r)=>{i=window.setInterval(()=>{if(!n)return;let i=!1;try{i=e.closed}catch(e){i=!0}i&&(s(),null==t||t(),r(xs))},500)}),cleanup:s}}updateStyles(e){var t,i;this.isRevolutPay?this.options.styles=Us(e):this.options.styles=Object.assign(Object.assign({},this.options.styles||{}),e),this.isLoading?this.setStyles((null===(t=this.options.styles)||void 0===t?void 0:t.loading)||{}):this.setStyles((null===(i=this.options.styles)||void 0===i?void 0:i.base)||{})}updateTranslations(e){var t,i;this.isRevolutPay||(this.options.translations=Object.assign(Object.assign({},this.options.translations||{}),e),this.element.innerText=null!==(i=null===(t=this.options.translations)||void 0===t?void 0:t.label)&&void 0!==i?i:Fs.label)}updateEvents(e){this.options.events=Object.assign(Object.assign({},this.options.events||{}),e)}update(e){e.styles&&this.updateStyles(e.styles),e.translations&&this.updateTranslations(e.translations),e.events&&this.updateEvents(e.events)}}const Gs=e=>e===exports.PAYMENT_METHOD_CODES.GENERIC_REDIRECT?{translations:{label:"Mercado Pago",button:{label:"Pay with Mercado Pago"}}}:e===exports.PAYMENT_METHOD_CODES.IDEAL?{translations:{label:"iDEAL | Wero",button:{label:"Pay with iDEAL | Wero"}}}:{translations:{label:e,button:{label:`Pay with ${e}`}}};class Xs extends Zn{constructor(e,t){var i,n,s,o,r,a;super(`payrails-${e.paymentMethod.paymentMethodCode}-dropin-element`,(null===(i=null==e?void 0:e.translations)||void 0===i?void 0:i.label)||Gs(e.paymentMethod.paymentMethodCode).translations.label,(null===(n=e.config)||void 0===n?void 0:n.showPaymentMethodLogo)?Is(e.paymentMethod.paymentMethodCode):void 0,null==e?void 0:e.events,null===(s=null==e?void 0:e.styles)||void 0===s?void 0:s.element),this.returnInfo=t,this.component=new Vs({styles:null===(o=null==e?void 0:e.styles)||void 0===o?void 0:o.button,translations:(null===(r=null==e?void 0:e.translations)||void 0===r?void 0:r.button)||Gs(e.paymentMethod.paymentMethodCode).translations.button,events:null==e?void 0:e.events,paymentMethod:e.paymentMethod,openInNewTab:null===(a=e.config)||void 0===a?void 0:a.openInNewTab},this.returnInfo)}}function Hs(e){let t=null;return()=>{var i,n;if(null!==t)return t;const s=null!==(n=null===(i=J().featureConfig)||void 0===i?void 0:i[e])&&void 0!==n?n:0;return t=100*Math.random()<s,t}}class zs{constructor(e,t){this.options=e,this.paymentExecutor=t}handle3ds(e){return i(this,void 0,void 0,function*(){var t,i,n,s;try{null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onThreeDSecureChallenge)||void 0===i||i.call(t)}catch(e){}const o=null===(n=null==e?void 0:e.response)||void 0===n?void 0:n.links["3ds"];if(o){if(Ss()){if(yield Ns({url:o,kind:exports.ACTION_REQUIRED_KIND.THREE_DS,paymentMethodCode:null!==(s=this.options.paymentMethodCode)&&void 0!==s?s:""}))return}if(this.options.redirectFor3DS)window.location.assign(o);else{new bs(o,this.paymentExecutor,this.options).mount()}}})}}const $s={apiVersion:2,apiVersionMinor:0},qs=new Set(["BHD","IQD","JOD","KWD","LYD","OMR","TND"]);let Ws=class e extends Nn{static getGooglePayConfigAsArray(e){return Array.isArray(e)?e:e.allowedPaymentMethods?e.allowedPaymentMethods:[]}static getSDKClient(){return i(this,arguments,void 0,function*(t=exports.PayrailsEnvironment.TEST,i){return yield Ln.load(An.GooglePay),e.googleSDKClient||(e.googleSDKClient=new google.payments.api.PaymentsClient({environment:t,merchantInfo:i})),e.googleSDKClient})}static isGooglePayAvailable(t){return i(this,arguments,void 0,function*(t,i=exports.PayrailsEnvironment.TEST,n){var s,o,r,a;try{const l=Array.isArray(t)||null===(s=t.merchantInfo)||void 0===s?void 0:s.merchantName,d={merchantId:null!==(o=null==n?void 0:n.merchantId)&&void 0!==o?o:"",merchantName:null!==(a=null!==(r=null==n?void 0:n.merchantName)&&void 0!==r?r:l)&&void 0!==a?a:""},c=yield e.getSDKClient(i,d),u=e.getGooglePayConfigAsArray(t),h=Object.assign(Object.assign(Object.assign({},$s),{allowedPaymentMethods:u}),!Array.isArray(t)&&void 0!==t.existingPaymentMethodRequired&&{existingPaymentMethodRequired:t.existingPaymentMethodRequired}),{result:p}=yield c.isReadyToPay(h);return p}catch(e){return!1}})}constructor(t){var i;super("div",Object.assign(Object.assign({},t),{id:`payrails-google-pay-button-${se()}`,dataTestId:"payrails-google-pay-button"})),this.options=t,this.sdkLoadedCalled=!1,this.isProcessing=!1,this.buttonElement=null,this.paymentExecutor=new pn(null===(i=this.options)||void 0===i?void 0:i.returnInfo),e.isGooglePayAvailable(q.googlePayConfig,this.options.environment,this.options.merchantInfo).then(e=>{var t,i,n;e&&(null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onGooglePayAvailable)||void 0===n||n.call(i))}),this.action="tokenization"===J().type?Lo.TOKENIZE:Lo.AUTHORIZE}sdkLoaded(t){return i(this,void 0,void 0,function*(){var n,s,o,r,a,l,d,c,u,h,p,_;if(this.sdkLoadedCalled)return this.buttonElement;this.sdkLoadedCalled=!0;const E=(null===(s=null===(n=this.options)||void 0===n?void 0:n.styles)||void 0===s?void 0:s.buttonColor)||"black",m=(null===(r=null===(o=this.options)||void 0===o?void 0:o.styles)||void 0===r?void 0:r.buttonType)||"long",v=(null===(l=null===(a=this.options)||void 0===a?void 0:a.styles)||void 0===l?void 0:l.buttonSizeMode)||"fill";(null===(c=null===(d=this.options)||void 0===d?void 0:d.styles)||void 0===c?void 0:c.buttonLocale)&&console.warn("Payrails: styles.buttonLocale is deprecated and will be removed in a future release. Use styles.locale instead.");const y=(null===(h=null===(u=this.options)||void 0===u?void 0:u.styles)||void 0===h?void 0:h.locale)||(null===(_=null===(p=this.options)||void 0===p?void 0:p.styles)||void 0===_?void 0:_.buttonLocale),I=y?(f=Tn(y),gn(f).split("-")[0]):void 0;var f;const A=e.getGooglePayConfigAsArray(q.googlePayConfig);return this.buttonElement=t.createButton({buttonColor:E,buttonType:m,buttonSizeMode:v,buttonLocale:I,onClick:()=>i(this,void 0,void 0,function*(){if(this.isProcessing)return;this.isProcessing=!0;(yield No(this.action,this.options.events))?yield this.authorize(t):this.isProcessing=!1}),allowedPaymentMethods:A}),this.element.appendChild(this.buttonElement),this.buttonElement})}authorize(t){return i(this,void 0,void 0,function*(){var i,n,s,o,a,l,d;const c=q.googlePayConfig,u=!Array.isArray(c),h=J().amount,p=null===(o=null===(s=null===(n=null===(i=q.meta)||void 0===i?void 0:i.order)||void 0===n?void 0:n.billingAddress)||void 0===s?void 0:s.country)||void 0===o?void 0:o.code,_=!!(null==h?void 0:h.currency)&&qs.has(h.currency);_&&r.PayrailsLogger.debug(`Payrails: 3-decimal currency ${null==h?void 0:h.currency}, omitting totalPrice`);const E=Object.assign(Object.assign({},u&&void 0!==c.apiVersion?{apiVersion:c.apiVersion,apiVersionMinor:c.apiVersionMinor}:$s),{allowedPaymentMethods:e.getGooglePayConfigAsArray(c),transactionInfo:_?{totalPriceStatus:"NOT_CURRENTLY_KNOWN",currencyCode:null==h?void 0:h.currency,countryCode:p}:{totalPriceStatus:"FINAL",totalPrice:null==h?void 0:h.value,currencyCode:null==h?void 0:h.currency,countryCode:p},merchantInfo:{merchantId:(null===(a=this.options.merchantInfo)||void 0===a?void 0:a.merchantId)||"",merchantName:(null===(l=this.options.merchantInfo)||void 0===l?void 0:l.merchantName)||(null===(d=c.merchantInfo)||void 0===d?void 0:d.merchantName)||""}});u&&(void 0!==c.emailRequired&&(E.emailRequired=c.emailRequired),void 0!==c.shippingAddressRequired&&(E.shippingAddressRequired=c.shippingAddressRequired),c.shippingAddressParameters&&(E.shippingAddressParameters=c.shippingAddressParameters));try{const e=yield t.loadPaymentData(E);yield this.onLoadPaymentData(e)}catch(e){this.isProcessing=!1,Co(this.action,this.options.events,e)}})}onLoadPaymentData(e){return i(this,void 0,void 0,function*(){(yield xi(this.action,this.options.events))?(this.action===Lo.TOKENIZE?yield this.doTokenize(e):yield this.doAuthorizePayment(e),this.isProcessing=!1):this.isProcessing=!1})}doTokenize(e){return i(this,void 0,void 0,function*(){const t=J(),i=q.createInstrumentLink,n=t.token;if(!i)return this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events);let s;try{s=JSON.stringify(e)}catch(e){return this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events,e)}const o={holderReference:t.holderReference,paymentMethod:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,storeInstrument:this.shouldStoreInstrument,data:{paymentToken:s}};try{const e=yield Ee({url:i,token:n,body:o});return e.ok?(this.isProcessing=!1,go(Lo.TOKENIZE,this.options.events,e.res),e.res):(this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events))}catch(e){return this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events,e)}})}doAuthorizePayment(e){return i(this,void 0,void 0,function*(){var t,i,n,s,o,r;const a={paymentToken:JSON.stringify(e)},l=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,integrationType:"api",paymentInstrumentData:a,amount:J().amount,storeInstrument:this.shouldStoreInstrument}],d=yield this.paymentExecutor.pay(l);if("authorizePending"===(null===(t=null==d?void 0:d.finalState)||void 0===t?void 0:t.code)){const e=new zs(Object.assign(Object.assign({},this.options),{paymentMethodCode:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY}),this.paymentExecutor);yield e.handle3ds(d)}else"authorizeSuccessful"===(null===(i=null==d?void 0:d.finalState)||void 0===i?void 0:i.code)?go(Lo.AUTHORIZE,this.options.events):Co(Lo.AUTHORIZE,this.options.events,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(r=null===(o=null===(s=null===(n=d.finalState)||void 0===n?void 0:n.errors)||void 0===s?void 0:s[0])||void 0===o?void 0:o.reason)||void 0===r?void 0:r.result)||"Authorization Failed"})})}mount(t){super.mount(t),(()=>{i(this,void 0,void 0,function*(){var t;try{if(yield e.isGooglePayAvailable(q.googlePayConfig,this.options.environment,this.options.merchantInfo)){const i=yield e.getSDKClient(this.options.environment,this.options.merchantInfo),n=yield this.sdkLoaded(i);this.element.appendChild(n),null===(t=this.storeInstrumentCheckbox)||void 0===t||t.mount(this.selector),this.element.classList.toggle("payrails-checkbox-above-button",Boolean(J().morData))}}catch(e){}})})()}unmount(){var e;null===(e=this.storeInstrumentCheckbox)||void 0===e||e.unmount(),this.buttonElement=null,super.unmount()}};Ws.googleSDKClient=null;class Ks{constructor(e=exports.PayrailsEnvironment.TEST){this.environment=e,this.iframe=null,this.bus=ye.getEventBus(),this.destroyed=!1,this.controller=new AbortController,this.busTeardowns=[],this.frameId=se(),this.readyPromise=this.armReadyPromise()}createIframe(){const e=document.createElement("iframe");var t;return e.src=(t=this.frameId,`https://assets.payrails.io/apps/secure-frame/v1/index.html?mode=${ye.SecureFrameMode.Collect}&type=${ye.SecureFrameType.GooglePay}&id=${t}`),e.setAttribute("data-payrails-gpay-frame",this.frameId),e.allow="payment",e.setAttribute("sandbox","allow-scripts allow-popups allow-same-origin allow-forms"),e.setAttribute("id",this.frameId),e.style.border="none",e}attachIframe(e,t){this.iframe=this.createIframe(),t.hidden&&(this.iframe.width="0",this.iframe.height="0",this.iframe.style.display="none"),e.appendChild(this.iframe)}armReadyPromise(){const e=`${this.frameId}-${ye.COLLECT_FRAME_EVENT_NAMES.READY}`,t=`${this.frameId}-${ye.COLLECT_FRAME_EVENT_NAMES.ERROR}`;return new Promise((i,n)=>{const s=()=>{this.bus.off(e,s),this.bus.off(t,o),i()},o=i=>{var a;this.bus.off(e,s),this.bus.off(t,o);const l=i;r.PayrailsLogger.error(null!==(a=null==l?void 0:l.message)&&void 0!==a?a:"Google Pay secure-frame error",{extra:l}),n(i)};this.bus.on(e,s),this.bus.on(t,o)})}isGooglePayAvailable(e){return i(this,void 0,void 0,function*(){var t;if(this.destroyed)return!1;try{if(this.attachIframe(document.body,{hidden:!0}),yield this.readyPromise,this.destroyed)return!1;const t=yield this.bus.emitAndResolve(`${this.frameId}-${ye.COLLECT_FRAME_EVENT_NAMES.IS_AVAILABLE}`,{googlePayConfig:e,environment:this.environment},"*",this.controller.signal);return Boolean(null==t?void 0:t.result)}catch(e){return!1}finally{null===(t=this.iframe)||void 0===t||t.remove(),this.iframe=null}})}mountButton(e){return i(this,void 0,void 0,function*(){this.destroyed||(this.readyPromise=this.armReadyPromise(),this.attachIframe(e.target,{hidden:!1}),this.applyMountSizing(e.buttonStyle),this.registerCollectListeners(e),yield this.requestShow(e))})}applyMountSizing(e){this.iframe&&(this.iframe.style.width="static"===e.buttonSizeMode?"0px":"100%",this.iframe.style.height="0px")}registerCollectListeners(e){const t=`${this.frameId}-${ye.COLLECT_FRAME_EVENT_NAMES.RESIZE}`,n=e=>{var t;const{width:i,height:n}=null!==(t=e)&&void 0!==t?t:{};this.iframe&&(i&&(this.iframe.style.width=i),n&&(this.iframe.style.height=n))};this.bus.on(t,n),this.busTeardowns.push(()=>this.bus.off(t,n));const s=this.bus.onAndEmit(`${this.frameId}-${ye.COLLECT_FRAME_EVENT_NAMES.BUTTON_CLICK_VALIDATE}`,()=>i(this,void 0,void 0,function*(){return{isValid:yield e.onButtonClicked()}}));this.busTeardowns.push(s);const o=`${this.frameId}-${ye.COLLECT_FRAME_EVENT_NAMES.COLLECT}`,r=t=>{var i;const{paymentData:n}=null!==(i=t)&&void 0!==i?i:{};n&&e.onCollect(n)};this.bus.on(o,r),this.busTeardowns.push(()=>this.bus.off(o,r));const a=`${this.frameId}-${ye.COLLECT_FRAME_EVENT_NAMES.COLLECT_ERROR}`,l=t=>{var i,n;null===(i=e.onCollectError)||void 0===i||i.call(e,null!==(n=t)&&void 0!==n?n:{code:"OTHER"})};this.bus.on(a,l),this.busTeardowns.push(()=>this.bus.off(a,l))}requestShow(e){return i(this,void 0,void 0,function*(){if(yield this.readyPromise,this.destroyed)return;const t={type:"GOOGLE_PAY_BUTTON",environment:e.environment,googlePayConfig:e.googlePayConfig,amount:e.amount,countryCode:e.countryCode,buttonStyle:e.buttonStyle},i=yield this.bus.emitAndResolve(`${this.frameId}-${ye.COLLECT_FRAME_EVENT_NAMES.SHOW}`,t,"*",this.controller.signal);if(!this.destroyed&&!(null==i?void 0:i.success))throw new Error(`Failed to render Google Pay button: ${i&&"error"in i?i.error:"unknown"}`)})}unmount(){var e;this.destroyed=!0,this.controller.abort();for(const e of this.busTeardowns)e();this.busTeardowns=[],null===(e=this.iframe)||void 0===e||e.remove(),this.iframe=null}destroy(){var e;this.destroyed=!0,this.controller.abort(),null===(e=this.iframe)||void 0===e||e.remove(),this.iframe=null}}function Zs(e,t={}){var i,n,s,o,r;const a=t.merchantInfo;if(Array.isArray(e))return{allowedPaymentMethods:e,merchantInfo:{merchantId:"",merchantName:null!==(i=null==a?void 0:a.merchantName)&&void 0!==i?i:""}};const l=null!=e?e:{},d=l.merchantInfo;return{apiVersion:l.apiVersion,apiVersionMinor:l.apiVersionMinor,allowedPaymentMethods:null!==(n=l.allowedPaymentMethods)&&void 0!==n?n:[],merchantInfo:{merchantId:null!==(s=null==d?void 0:d.merchantId)&&void 0!==s?s:"",merchantName:null!==(r=null!==(o=null==a?void 0:a.merchantName)&&void 0!==o?o:null==d?void 0:d.merchantName)&&void 0!==r?r:""},emailRequired:l.emailRequired,shippingAddressRequired:l.shippingAddressRequired,shippingAddressParameters:l.shippingAddressParameters,existingPaymentMethodRequired:l.existingPaymentMethodRequired}}let Js=class e extends Nn{static isGooglePayAvailable(e){return i(this,arguments,void 0,function*(e,t=exports.PayrailsEnvironment.TEST,i){const n=new Ks(t);try{return yield n.isGooglePayAvailable(Zs(e,{merchantInfo:i}))}finally{n.destroy()}})}constructor(t){var i;super("div",Object.assign(Object.assign({},t),{id:`payrails-google-pay-button-${se()}`,dataTestId:"payrails-google-pay-button"})),this.options=t,this.isProcessing=!1,this.frame=null,this.paymentExecutor=new pn(null===(i=this.options)||void 0===i?void 0:i.returnInfo),e.isGooglePayAvailable(q.googlePayConfig,this.options.environment,this.options.merchantInfo).then(e=>{var t,i,n;e&&(null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onGooglePayAvailable)||void 0===n||n.call(i))}),this.action="tokenization"===J().type?Lo.TOKENIZE:Lo.AUTHORIZE}onLoadPaymentData(e){return i(this,void 0,void 0,function*(){(yield xi(this.action,this.options.events))?(this.action===Lo.TOKENIZE?yield this.doTokenize(e):yield this.doAuthorizePayment(e),this.isProcessing=!1):this.isProcessing=!1})}doTokenize(e){return i(this,void 0,void 0,function*(){const t=J(),i=q.createInstrumentLink,n=t.token;if(!i)return this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events);let s;try{s=JSON.stringify(e)}catch(e){return this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events,e)}const o={holderReference:t.holderReference,paymentMethod:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,storeInstrument:this.shouldStoreInstrument,data:{paymentToken:s}};try{const e=yield Ee({url:i,token:n,body:o});return e.ok?(this.isProcessing=!1,go(Lo.TOKENIZE,this.options.events,e.res),e.res):(this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events))}catch(e){return this.isProcessing=!1,void Co(Lo.TOKENIZE,this.options.events,e)}})}doAuthorizePayment(e){return i(this,void 0,void 0,function*(){var t,i,n,s,o,r;const a={paymentToken:JSON.stringify(e)},l=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY,integrationType:"api",paymentInstrumentData:a,amount:J().amount,storeInstrument:this.shouldStoreInstrument}],d=yield this.paymentExecutor.pay(l);if("authorizePending"===(null===(t=null==d?void 0:d.finalState)||void 0===t?void 0:t.code)){const e=new zs(Object.assign(Object.assign({},this.options),{paymentMethodCode:exports.PAYMENT_METHOD_CODES.GOOGLE_PAY}),this.paymentExecutor);yield e.handle3ds(d)}else"authorizeSuccessful"===(null===(i=null==d?void 0:d.finalState)||void 0===i?void 0:i.code)?go(Lo.AUTHORIZE,this.options.events):Co(Lo.AUTHORIZE,this.options.events,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(r=null===(o=null===(s=null===(n=d.finalState)||void 0===n?void 0:n.errors)||void 0===s?void 0:s[0])||void 0===o?void 0:o.reason)||void 0===r?void 0:r.result)||"Authorization Failed"})})}mount(e){this.frame&&this.unmount(),super.mount(e),(()=>{i(this,void 0,void 0,function*(){var e,t,n,s,o,r,a;try{const l=Zs(q.googlePayConfig,{merchantInfo:this.options.merchantInfo}),d=new Ks(this.options.environment);this.frame=d;if(!(yield d.isGooglePayAvailable(l)))return d.destroy(),void(this.frame=null);yield d.mountButton({target:this.element,environment:null!==(e=this.options.environment)&&void 0!==e?e:"TEST",googlePayConfig:l,amount:J().amount,countryCode:null===(o=null===(s=null===(n=null===(t=q.meta)||void 0===t?void 0:t.order)||void 0===n?void 0:n.billingAddress)||void 0===s?void 0:s.country)||void 0===o?void 0:o.code,buttonStyle:null!==(r=this.options.styles)&&void 0!==r?r:{},onButtonClicked:()=>i(this,void 0,void 0,function*(){return Boolean(yield No(this.action,this.options.events))}),onCollect:e=>{if(!this.isProcessing)return this.isProcessing=!0,this.onLoadPaymentData(e)},onCollectError:e=>{this.isProcessing=!1,Co(this.action,this.options.events,e)}}),null===(a=this.storeInstrumentCheckbox)||void 0===a||a.mount(this.selector),this.element.classList.toggle("payrails-checkbox-above-button",Boolean(J().morData))}catch(e){}})})()}unmount(){var e,t;null===(e=this.storeInstrumentCheckbox)||void 0===e||e.unmount(),null===(t=this.frame)||void 0===t||t.unmount(),this.frame=null,super.unmount()}};const Qs=Hs("gpayIframeRollout");class eo extends Nn{static isGooglePayAvailable(...e){return i(this,void 0,void 0,function*(){return Qs()?Js.isGooglePayAvailable(...e):Ws.isGooglePayAvailable(...e)})}constructor(e){return super("div",e),Qs()?new Js(e):new Ws(e)}}class to extends fs{constructor(e){var t,i;super("google-pay-dropin",(null===(i=null===(t=e.translations)||void 0===t?void 0:t.labels)||void 0===i?void 0:i.label)||"Google Pay",e.showPaymentMethodLogo?Is("googlepay"):void 0,e.events,e.styles),this.loadElementId="google-pay-dropin-load-element",this.component=new eo(Object.assign(Object.assign({},e),{events:Object.assign(Object.assign({},e.events),{onGooglePayAvailable:()=>{this.mountAfterAvailable()}}),returnInfo:e.returnInfo}))}}const io="Pay by bank with Al Tareq";var no;!function(e){e.SUCCESS="success",e.ERROR="error",e.CANCELLED="cancelled"}(no||(no={}));class so extends ji{constructor(e){var t,i,n,s,o,r,a;super("button",{id:e.id||"payrails-lean-button",className:"payrails-lean-button",styles:null!==(n=null===(i=null===(t=e.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.base)&&void 0!==n?n:{}}),this.isLoading=!1,this.handleClick=()=>{this.onClick()},this.handleMouseEnter=()=>{var e,t;(null===(t=null===(e=this.options.styles)||void 0===e?void 0:e.button)||void 0===t?void 0:t.hover)&&this.setStyles(this.options.styles.button.hover)},this.handleMouseLeave=()=>{var e,t;(null===(t=null===(e=this.options.styles)||void 0===e?void 0:e.button)||void 0===t?void 0:t.hover)&&this.removeStyles(this.options.styles.button.hover)},this.handleSessionExpired=()=>{this.triggerLoading(!1)},this.options=e,this.paymentExecutor=new pn(null===(s=this.options)||void 0===s?void 0:s.returnInfo),this.element.innerText=(null===(o=e.translations)||void 0===o?void 0:o.label)||io,this.setStyles((null===(a=null===(r=this.options.styles)||void 0===r?void 0:r.button)||void 0===a?void 0:a.base)||{})}mount(e){this.unmount(),super.mount(e),this.bindEvents(),so.preloadLeanSDK()}unmount(){this.unbindEvents(),super.unmount()}static initializeLeanSDK(){return window.Lean||so.leanSdkClient||(so.leanSdkClient=Ln.load(An.Lean)),so.leanSdkClient}static preloadLeanSDK(){const e=so.initializeLeanSDK();null==e||e.catch(()=>{so.leanSdkClient===e&&(so.leanSdkClient=null)})}static getLeanSDK(){return i(this,void 0,void 0,function*(){so.initializeLeanSDK();try{yield so.leanSdkClient}catch(e){throw so.leanSdkClient=null,e}const e=window.Lean;if(!e)throw so.leanSdkClient=null,Ln.invalidate(An.Lean),new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_UNKNOWN_ERROR,{description:"Lean SDK is not available"});return e})}static resetLeanSDK(){so.leanSdkClient=null}bindEvents(){this.element.addEventListener("click",this.handleClick),this.element.addEventListener("mouseenter",this.handleMouseEnter),this.element.addEventListener("mouseleave",this.handleMouseLeave),this.eventBus.on("PAYRAILS_CLIENT_SESSION_EXPIRED",this.handleSessionExpired)}unbindEvents(){var e,t;this.element.removeEventListener("click",this.handleClick),this.element.removeEventListener("mouseenter",this.handleMouseEnter),this.element.removeEventListener("mouseleave",this.handleMouseLeave),null===(t=(e=this.eventBus).off)||void 0===t||t.call(e,"PAYRAILS_CLIENT_SESSION_EXPIRED",this.handleSessionExpired)}setStyles(e){var t,i;const n=Object.assign(Object.assign({},null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.base),e);Object.keys(n).forEach(e=>{this.element.style[e]=n[e]})}removeStyles(e){var t,i;const n=Object.keys((null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.base)||{});Object.keys(e).forEach(e=>{var t,i,s;n.includes(e)?this.element.style[e]=null===(s=null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.base)||void 0===s?void 0:s[e]:this.element.style[e]=""})}triggerLoading(e){var t,i,n,s,o;this.isLoading=e,e?(this.element.innerHTML=this.renderLoadingMarkup(),(null===(i=null===(t=this.options.styles)||void 0===t?void 0:t.button)||void 0===i?void 0:i.loading)&&this.setStyles(this.options.styles.button.loading)):(this.element.innerText=(null===(n=this.options.translations)||void 0===n?void 0:n.label)||io,this.removeStyles((null===(o=null===(s=this.options.styles)||void 0===s?void 0:s.button)||void 0===o?void 0:o.loading)||{}))}renderLoadingMarkup(){return['<div class="dot-flashing-container">',' <div class="dot-flashing"></div>',' <span class="dot-flashing-text" aria-hidden="true">Loading</span>',"</div>"].join("")}getConfirmActionParameters(e){var t,i,n;const s=null===(n=null===(i=null===(t=e.response)||void 0===t?void 0:t.links)||void 0===i?void 0:i.confirm)||void 0===n?void 0:n.action;if(!((null==s?void 0:s.paymentId)&&(null==s?void 0:s.appToken)&&(null==s?void 0:s.sdkToken)&&(null==s?void 0:s.successUrl)&&(null==s?void 0:s.failureUrl)))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_UNKNOWN_ERROR,{description:"Lean payment parameters are missing from authorize polling response."});return{appToken:s.appToken,paymentId:s.paymentId,sdkToken:s.sdkToken,successUrl:s.successUrl,failureUrl:s.failureUrl,sandbox:s.sandbox}}startLeanCheckout(e,t){return i(this,void 0,void 0,function*(){return new Promise(i=>{var n;const s=this.toLeanCustomizationPayload(null===(n=this.options.styles)||void 0===n?void 0:n.dialog);e.checkout(Object.assign(Object.assign({app_token:t.appToken,access_token:t.sdkToken,payment_intent_id:t.paymentId,success_redirect_url:t.successUrl,fail_redirect_url:t.failureUrl},void 0!==t.sandbox?{sandbox:t.sandbox}:{}),{customization:s,callback:e=>{try{this.handleLeanCheckoutResponse(e)}finally{this.triggerLoading(!1),i()}}}))})})}handleLeanCheckoutResponse(e){var t;switch(null===(t=null==e?void 0:e.status)||void 0===t?void 0:t.toLowerCase()){case no.SUCCESS:return void go(Lo.AUTHORIZE,this.options.events,e);case no.ERROR:case no.CANCELLED:return this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),void Co(Lo.AUTHORIZE,this.options.events,e)}}toLeanCustomizationPayload(e){if(!e)return;const{themeColor:t,buttonTextColor:i,buttonBorderRadius:n,linkColor:s,overlayColor:o}=e;return{theme_color:t,button_text_color:i,button_border_radius:n,link_color:s,overlay_color:o}}onClick(){return i(this,void 0,void 0,function*(){var e;if(!this.isLoading)try{this.triggerLoading(!0);if(!(yield No(Lo.AUTHORIZE,null!==(e=this.options.events)&&void 0!==e?e:{})))return void this.triggerLoading(!1);const t=yield so.getLeanSDK(),i=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.LEAN,integrationType:"api",amount:J().amount,paymentInstrumentData:{},storeInstrument:!1}],n=yield this.paymentExecutor.pay(i),s=this.getConfirmActionParameters(n);yield this.startLeanCheckout(t,s),this.triggerLoading(!1)}catch(e){this.triggerLoading(!1),this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),Co(Lo.AUTHORIZE,this.options.events,e)}})}}so.leanSdkClient=null;class oo extends Zn{constructor(e,t){var i;super("lean-dropin",(null===(i=e.translations)||void 0===i?void 0:i.label)||"Pay by bank with Al Tareq",void 0,e.events,e.elementStyles),this.returnInfo=t,this.component=new so(Object.assign(Object.assign({},e),{id:e.id||"payrails-lean-button-dropin",styles:e.styles,events:Object.assign({},e.events),returnInfo:this.returnInfo}))}}class ro extends ji{constructor(e){super("div",{id:"payrails-payment-method-content-wrapper-"+ro.nextId++,className:"payrails-payment-method-content-wrapper"}),e.orderSummary&&this.subElements.push(e.orderSummary),this.subElements.push(e.paymentComponent),e.termsAndConditions&&this.subElements.push(e.termsAndConditions)}}ro.nextId=0;class ao extends Nn{constructor(e){var t;ao.instance&&(ao.instance=void 0);const n="express"===(null===(t=null==q?void 0:q.paypalConfig)||void 0===t?void 0:t.integrationMode),s=!n&&(null==e?void 0:e.showStoreInstrumentCheckbox),o=n?"unchecked":null==e?void 0:e.defaultStoreInstrumentState,r=Object.assign(Object.assign({},e),{showStoreInstrumentCheckbox:s,defaultStoreInstrumentState:o,id:"payrails-paypal-button",events:Object.assign(Object.assign({},null==e?void 0:e.events),{onSaveInstrumentCheckboxChanged:t=>i(this,void 0,void 0,function*(){var i,n,s;null===(n=null===(i=null==e?void 0:e.events)||void 0===i?void 0:i.onSaveInstrumentCheckboxChanged)||void 0===n||n.call(i,t),null===(s=this.button)||void 0===s||s.close(),this.debouncedRender()})})});super("div",r),this.options=e,this.renderDebounceTimeout=null,this.currentAbortController=null,this.isRendering=!1,this.buttonWrapperId="payrails-paypal-button-wrapper",this.checkboxWrapperId="payrails-paypal-checkbox-wrapper",this.createOneTimeOrder=()=>i(this,void 0,void 0,function*(){var e,t,i,n,s;const o=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.PAYPAL,integrationType:"api",amount:J().amount,paymentInstrumentData:{providerData:{riskSessionCorrelationId:this.fraudNetGuid}},storeInstrument:!1}],r=yield this.paymentExecutor.pay(o),a=null===(i=null===(t=null===(e=r.response.links.confirm)||void 0===e?void 0:e.action)||void 0===t?void 0:t.parameters)||void 0===i?void 0:i.orderId;if(!a)throw Co(Lo.AUTHORIZE,null===(n=this.options)||void 0===n?void 0:n.events),new lo("No order id returned");return this.confirmLink=null===(s=r.response.links.confirm)||void 0===s?void 0:s.href,a}),this.loadPaypal().catch(()=>{}),this.element.innerHTML=`<div id="${this.buttonWrapperId}"></div><div id="${this.checkboxWrapperId}"></div>`,J().morData&&this.element.classList.add("payrails-checkbox-above-button"),this.paymentExecutor=new pn}loadPaypal(){return i(this,void 0,void 0,function*(){const e=yield Ln.load(An.PayPal,this.paypalScriptConfig);return yield this.createPaypalButton(e)})}debouncedRender(){return this.renderDebounceTimeout&&clearTimeout(this.renderDebounceTimeout),this.currentAbortController&&this.currentAbortController.abort(),new Promise(e=>{this.renderDebounceTimeout=setTimeout(()=>i(this,void 0,void 0,function*(){try{yield this.renderButton(),e()}catch(t){console.error("Failed to render PayPal button:",t),e()}}),300)})}get paypalScriptConfig(){var e,t;const i=this.shouldStoreInstrument?"tokenize":"Instant"===q.paypalConfig.captureMode?"capture":"authorize";return Object.assign({clientId:q.paypalConfig.clientId,intent:i,currency:J().amount.currency,vault:this.shouldStoreInstrument},(null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.locale)&&{locale:(n=Tn(this.options.styles.locale),gn(n).replace("-","_"))});var n}createPaypalButton(e){return i(this,void 0,void 0,function*(){var t,i,n;if(!e.Buttons)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_LOADING_ERROR);const s=e.Buttons(this.createPayPalButtonConfig());return null===(n=null===(i=null===(t=this.options)||void 0===t?void 0:t.events)||void 0===i?void 0:i.onPaypalAvailable)||void 0===n||n.call(i),s})}createPayPalButtonConfig(){return this.shouldStoreInstrument?this.createBillingAgreementConfig():this.createOneTimeOrderConfig()}createBillingAgreementConfig(){return Object.assign(Object.assign({},this.createBaseConfig()),{onApprove:this.approvePayment.bind(this),createBillingAgreement:()=>i(this,void 0,void 0,function*(){var e,t,i,n;const s=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.PAYPAL,integrationType:"api",amount:J().amount,paymentInstrumentData:{providerData:{riskSessionCorrelationId:this.fraudNetGuid}},storeInstrument:!0}],o=yield this.paymentExecutor.pay(s);return this.confirmLink=null===(e=o.response.links.confirm)||void 0===e?void 0:e.href,(null===(n=null===(i=null===(t=o.response.links.confirm)||void 0===t?void 0:t.action)||void 0===i?void 0:i.parameters)||void 0===n?void 0:n.tokenId)||""})})}onCancel(){var e;this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),Co(Lo.AUTHORIZE,null===(e=this.options)||void 0===e?void 0:e.events)}createOneTimeOrderConfig(){return Object.assign(Object.assign({},this.createBaseConfig()),{createOrder:this.createOneTimeOrder.bind(this),onApprove:this.approvePayment.bind(this)})}createBaseConfig(){var e,t,n,s,o,r,a,l,d,c;return{fundingSource:"paypal",style:{color:(null===(t=null===(e=this.options)||void 0===e?void 0:e.styles)||void 0===t?void 0:t.color)||"gold",height:(null===(s=null===(n=this.options)||void 0===n?void 0:n.styles)||void 0===s?void 0:s.height)||40,label:(null===(r=null===(o=this.options)||void 0===o?void 0:o.styles)||void 0===r?void 0:r.label)||"paypal",shape:(null===(l=null===(a=this.options)||void 0===a?void 0:a.styles)||void 0===l?void 0:l.shape)||"rect",tagline:(null===(c=null===(d=this.options)||void 0===d?void 0:d.styles)||void 0===c?void 0:c.tagline)||!1,disableMaxWidth:!0},onError:e=>{var t;this.eventBus.emit("PAYRAILS_CLIENT_SESSION_EXPIRED",{}),Co(Lo.AUTHORIZE,null===(t=this.options)||void 0===t?void 0:t.events,e)},onClick:(e,t)=>i(this,void 0,void 0,function*(){var e;return(yield No(Lo.AUTHORIZE,null===(e=this.options)||void 0===e?void 0:e.events))?t.resolve():t.reject()}),onCancel:this.onCancel.bind(this),onShippingAddressChange:(e,t)=>i(this,void 0,void 0,function*(){var i;let n;e.shippingAddress&&(n={deliveryAddress:{city:e.shippingAddress.city,postalCode:e.shippingAddress.postalCode,state:e.shippingAddress.state,country:{code:e.shippingAddress.countryCode}}});if(!(yield Ui(null===(i=this.options)||void 0===i?void 0:i.events,n)))return t.reject()})}}approvePayment(e){return i(this,void 0,void 0,function*(){var t,i,n,s,o,r,a,l,d;if(!this.confirmLink)throw Co(Lo.AUTHORIZE,null===(t=this.options)||void 0===t?void 0:t.events),new lo("No confirm link");const c={};this.shouldStoreInstrument&&e.billingToken&&(c.tokenId=e.billingToken),this.fraudNetGuid&&(c.riskSessionCorrelationId=this.fraudNetGuid);if(!(yield xi(Lo.AUTHORIZE,null===(i=this.options)||void 0===i?void 0:i.events)))throw new lo("Authorization request start validation failed");const u=yield this.paymentExecutor.confirm(this.confirmLink,c);"authorizeSuccessful"===(null===(n=u.finalState)||void 0===n?void 0:n.code)?go(Lo.AUTHORIZE,null===(s=this.options)||void 0===s?void 0:s.events):Co(Lo.AUTHORIZE,null===(o=this.options)||void 0===o?void 0:o.events,{code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(d=null===(l=null===(a=null===(r=u.finalState)||void 0===r?void 0:r.errors)||void 0===a?void 0:a[0])||void 0===l?void 0:l.reason)||void 0===d?void 0:d.result)||"Authorization Failed"})})}get fraudNetGuid(){var e,t;return null===(t=null===(e=window.PayrailsData)||void 0===e?void 0:e.riskIds)||void 0===t?void 0:t.fraudNet}mount(e){ao.instance||(super.mount(e),ao.instance=this,(()=>{i(this,void 0,void 0,function*(){yield this.debouncedRender()})})())}renderButton(){return i(this,void 0,void 0,function*(){var e;this.isRendering&&this.currentAbortController&&this.currentAbortController.abort(),this.currentAbortController=new AbortController;const t=this.currentAbortController.signal;try{this.isRendering=!0,this.button&&(this.button.close(),this.button=void 0);const i=yield Promise.race([this.loadPaypal(),new Promise((e,i)=>{t.addEventListener("abort",()=>i(new co("PayPal button loading aborted")))})]);if(t.aborted)return;i&&(this.button=i,yield null===(e=this.button)||void 0===e?void 0:e.render(`#${this.buttonWrapperId}`))}catch(e){if(!t.aborted)throw e}finally{t.aborted||(this.isRendering=!1,this.currentAbortController=null)}})}unmount(){var e;this.renderDebounceTimeout&&clearTimeout(this.renderDebounceTimeout),this.currentAbortController&&this.currentAbortController.abort(),null===(e=this.button)||void 0===e||e.close(),this.isRendering=!1,ao.instance=void 0,super.unmount()}}class lo extends o.PayrailsError{constructor(e,t){super(o.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_ORDER_CREATION,{description:`PaypalOrderError: ${e}`,cause:t})}}class co extends o.PayrailsError{constructor(e,t){super(o.ERROR_CODES.PAYRAILS_CLIENT_PAYPAL_BUTTON_MOUNT,{description:`PaypalButtonError: ${e}`,cause:t})}}class uo extends fs{constructor(e){var t,i;super("payrails-paypal-button-dropin",(null===(i=null===(t=null==e?void 0:e.translations)||void 0===t?void 0:t.labels)||void 0===i?void 0:i.label)||"PayPal",(null==e?void 0:e.showPaymentMethodLogo)?Is("paypal"):void 0,{onActivate:()=>{var t;super.activate(),(null===(t=null==e?void 0:e.events)||void 0===t?void 0:t.onPaymentOptionVisibilityChange)&&e.events.onPaymentOptionVisibilityChange()}},null==e?void 0:e.styles),this.loadElementId="paypal-dropin-load-element",this.component=new ao(Object.assign(Object.assign({},e),{events:Object.assign(Object.assign({},null==e?void 0:e.events),{onPaypalAvailable:()=>{this.mountAfterAvailable()}})}))}}class ho extends ji{constructor(e,t,i){var n,s,o,r,a,l;super("fieldset",{id:"payrails-dropin-component"}),this.collectContainer=e,this.clientConfig=t,this.dropinConfig=i,this.billingValidationBlocked=!1,this.applyStyles(),ln.reset();const d=null===(n=J().morData)||void 0===n?void 0:n.billingLines;(null==d?void 0:d.form)&&(this.billingAddressForm=new ln({schema:d.form,styles:null===(s=this.dropinConfig.styles)||void 0===s?void 0:s.billingAddressForm,translations:null===(o=this.dropinConfig.translations)||void 0===o?void 0:o.billingAddressForm}));void 0!==(null===(a=null===(r=this.dropinConfig.paymentMethodsConfiguration)||void 0===r?void 0:r.cards)||void 0===a?void 0:a.showExistingCards)&&console.warn("The `showExistingCards` option is deprecated and will be removed in a future version. Please use `showStoredInstruments` instead.");const c=new Map;q.storedDropinInstruments.forEach(e=>{if(this.isStoredInstrumentEnabled(e.paymentMethod)){this.cardPaymentButton=this.createCardPaymentButton();const t=this.createStoredInstrumentElement(e);t&&c.set(t.identifier,t)}});const u={[exports.PAYMENT_METHOD_CODES.CARD]:this.createCreditCardButton.bind(this),[exports.PAYMENT_METHOD_CODES.PAYPAL]:this.createPayPalButton.bind(this),[exports.PAYMENT_METHOD_CODES.GOOGLE_PAY]:this.createGooglePayButton.bind(this),[exports.PAYMENT_METHOD_CODES.APPLE_PAY]:this.createApplePayButton.bind(this),[exports.PAYMENT_METHOD_CODES.LEAN]:this.createLeanButton.bind(this)};q.availablePaymentMethods.forEach(e=>{const t=e.paymentMethodCode;if(t&&u[t]){const i=(0,u[t])(q.getPaymentMethodConfig(e));c.set(i.identifier,i)}else if(this.isHppIntegration(e)&&t){const t=this.createHppIntegrationElement(e);c.set(t.identifier,t)}}),this.element.addEventListener("change",e=>{var t,i;const n=(null===(t=null==e?void 0:e.target)||void 0===t?void 0:t.value)||"";c.forEach(e=>{e.deactivate()}),null===(i=c.get(n))||void 0===i||i.activate()}),1===this.totalPaymentOptions&&this.element.classList.add("payrails-dropin-component--single"),this.billingAddressForm&&this.subElements.push(this.billingAddressForm),this.subElements.push(...Array.from(c.values())),this.loadingScreen=new rs({styles:null===(l=this.dropinConfig.styles)||void 0===l?void 0:l.loadingScreen})}get returnInfo(){return this.dropinConfig.returnInfo||this.clientConfig.returnInfo}isHppIntegration(e){var t;return e.paymentMethodCode===exports.PAYMENT_METHOD_CODES.GENERIC_REDIRECT||(null===(t=e.clientConfig)||void 0===t?void 0:t.flow)===W.REDIRECT}createStoredInstrumentElement(e){var t;let i;if(this.cardPaymentButton=this.createCardPaymentButton(),e.paymentMethod!==exports.PAYMENT_METHOD_CODES.BANK_ACCOUNT)return e.paymentMethod===exports.PAYMENT_METHOD_CODES.CARD&&q.isPaymentInstallmentsEnabled(e.paymentMethod)&&(i=this.createInstallmentsDropdown(e)),new es(e,this.cardPaymentButton,e=>{var t,i;if(this.cardPaymentButton){this.cardPaymentButton.selectedInstrument=e;const n=q.getPaymentMethodForStoredInstrument(e);null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:n,instrument:e})}},null===(t=this.dropinConfig.styles)||void 0===t?void 0:t.element,i)}createInstallmentsDropdown(e){var t,i,n;const s=this.getInstallmentOptionsForInstrument(e);return new jn("span",{installmentConfig:{installmentCurrency:J().amount.currency,installmentOptions:s,defaultInstallment:null===(n=null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.installmentConfig)||void 0===n?void 0:n.defaultInstallment},id:`payrails-card-form-payment-installments-${e.id}`,className:"payrails-card-form-payment-installments-container"})}getInstallmentOptionsForInstrument(e){var t,i,n;const s=e.paymentMethod,o=q.getPaymentInstallmentOptions(s),r=null===(n=null===(i=null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.binLookup)||void 0===i?void 0:i.issuerCountry)||void 0===n?void 0:n.code;return r?o[r]:null}updateInstallmentConfig(e){var t,i,n;const s=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards;s&&e&&Object.prototype.hasOwnProperty.call(e,"defaultInstallment")&&(s.installmentConfig={defaultInstallment:null!==(i=e.defaultInstallment)&&void 0!==i?i:null}),null===(n=this.cardForm)||void 0===n||n.updateInstallmentConfig(e),this.subElements.forEach(t=>{t instanceof es&&t.updateInstallmentConfig(e)})}createHppIntegrationElement(e){var t,i,n,s,a,l,d,c,u,h,p,_;const E=e.paymentMethodCode;if(!E){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CONFIG_MALFORMED,{description:`Payment method code is missing for payment method - ${JSON.stringify(e)}`});throw r.PayrailsLogger.error(t.message,{error:t}),t}return new Xs({paymentMethod:e,config:Object.assign(Object.assign({},null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t[E]),{showPaymentMethodLogo:null!==(l=null!==(s=null===(n=null===(i=this.dropinConfig.paymentMethodsConfiguration)||void 0===i?void 0:i[E])||void 0===n?void 0:n.showPaymentMethodLogo)&&void 0!==s?s:null===(a=this.dropinConfig.paymentMethodsConfiguration)||void 0===a?void 0:a.showPaymentMethodLogo)&&void 0!==l&&l}),styles:{element:null===(c=null===(d=this.dropinConfig)||void 0===d?void 0:d.styles)||void 0===c?void 0:c.element,button:null===(p=null===(h=null===(u=this.dropinConfig)||void 0===u?void 0:u.styles)||void 0===h?void 0:h[E])||void 0===p?void 0:p.button},translations:null===(_=this.dropinConfig.translations)||void 0===_?void 0:_[E],events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}})},this.returnInfo)}get totalPaymentOptions(){return q.availablePaymentMethods.length+q.storedDropinInstruments.length}createCreditCardButton(e){var t,i,n,s,o,r,a;return this.creditCard=new Ls(this.createCardForm(),this.createCardPaymentButton(),this.createTermsAndConditionsElement(exports.PAYMENT_METHOD_CODES.CARD),{events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}}),styles:null===(t=this.dropinConfig.styles)||void 0===t?void 0:t.element,showPaymentMethodLogo:null!==(r=null!==(s=null===(n=null===(i=this.dropinConfig.paymentMethodsConfiguration)||void 0===i?void 0:i.cards)||void 0===n?void 0:n.showPaymentMethodLogo)&&void 0!==s?s:null===(o=this.dropinConfig.paymentMethodsConfiguration)||void 0===o?void 0:o.showPaymentMethodLogo)&&void 0!==r&&r,translations:null===(a=this.dropinConfig.translations)||void 0===a?void 0:a.cardForm}),this.creditCard}createGooglePayButton(e){var t,i,n,s,o,r,a,l;const d=this.createOrderSummaryElement(exports.PAYMENT_METHOD_CODES.GOOGLE_PAY),c=this.createTermsAndConditionsElement(exports.PAYMENT_METHOD_CODES.GOOGLE_PAY);return this.googlePay=new to(Object.assign({environment:this.clientConfig.environment||exports.PayrailsEnvironment.TEST,events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}}),redirectFor3DS:this.clientConfig.redirectFor3DS,showPaymentMethodLogo:null!==(o=null!==(n=null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.googlePay)||void 0===i?void 0:i.showPaymentMethodLogo)&&void 0!==n?n:null===(s=this.dropinConfig.paymentMethodsConfiguration)||void 0===s?void 0:s.showPaymentMethodLogo)&&void 0!==o&&o,styles:Object.assign(Object.assign({},null===(r=this.dropinConfig.styles)||void 0===r?void 0:r.googlePayButton),null===(a=this.dropinConfig.styles)||void 0===a?void 0:a.element),returnInfo:this.returnInfo},null===(l=this.dropinConfig.paymentMethodsConfiguration)||void 0===l?void 0:l.googlePay)),(d||c)&&this.googlePay.wrapComponent(e=>new ro({orderSummary:d,paymentComponent:e,termsAndConditions:c})),this.googlePay}createPayPalButton(e){var t,i,n,s,o,r,a,l;const d=this.createOrderSummaryElement(exports.PAYMENT_METHOD_CODES.PAYPAL),c=this.createTermsAndConditionsElement(exports.PAYMENT_METHOD_CODES.PAYPAL);return this.paypal=new uo(Object.assign(Object.assign({showPaymentMethodLogo:null!==(o=null!==(n=null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.payPal)||void 0===i?void 0:i.showPaymentMethodLogo)&&void 0!==n?n:null===(s=this.dropinConfig.paymentMethodsConfiguration)||void 0===s?void 0:s.showPaymentMethodLogo)&&void 0!==o&&o},null===(r=this.dropinConfig.paymentMethodsConfiguration)||void 0===r?void 0:r.payPal),{styles:Object.assign(Object.assign({},null===(a=this.dropinConfig.styles)||void 0===a?void 0:a.paypalButton),null===(l=this.dropinConfig.styles)||void 0===l?void 0:l.element),events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}})})),(d||c)&&this.paypal.wrapComponent(e=>new ro({orderSummary:d,paymentComponent:e,termsAndConditions:c})),this.paypal}createLeanButton(e){var t,i,n,s;return this.lean=new oo(Object.assign(Object.assign({paymentMethod:e},null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.lean),{styles:null===(i=this.dropinConfig.styles)||void 0===i?void 0:i.leanButton,elementStyles:null===(n=this.dropinConfig.styles)||void 0===n?void 0:n.element,translations:null===(s=this.dropinConfig.translations)||void 0===s?void 0:s.leanButton,events:Object.assign(Object.assign({},this.getElementEvents()),{onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})}})}),this.returnInfo),this.lean}createCardForm(){var e,t,i,n,s,o,r,a;if(!this.cardForm){const l=null===(e=this.dropinConfig.paymentMethodsConfiguration)||void 0===e?void 0:e.cards,d=Boolean(null==l?void 0:l.showStoreInstrumentCheckbox),c=Boolean(null==l?void 0:l.showCardHolderName),u=Boolean(null==l?void 0:l.alwaysStoreInstrument),h=Boolean(null==l?void 0:l.showSingleExpiryDateField),p=(null==l?void 0:l.layout)||[],_=this.createOrderSummaryElement(exports.PAYMENT_METHOD_CODES.CARD);this.cardForm=new Wn(this.collectContainer,{showStoreInstrumentCheckbox:d,showCardHolderName:c,showSingleExpiryDateField:h,alwaysStoreInstrument:u,injectedComponents:_?[_]:[],installmentConfig:null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.installmentConfig,layout:p,translations:Object.assign(Object.assign({},null===(n=this.dropinConfig.translations)||void 0===n?void 0:n.cardForm),{addressSelector:null===(s=this.dropinConfig.translations)||void 0===s?void 0:s.addressSelector}),styles:Object.assign(Object.assign(Object.assign({},null===(o=this.dropinConfig.styles)||void 0===o?void 0:o.cardForm),null===(r=this.dropinConfig.styles)||void 0===r?void 0:r.element),{addressSelector:null===(a=this.dropinConfig.styles)||void 0===a?void 0:a.addressSelector}),events:Object.assign(Object.assign({},this.getElementEvents()),{onFocus:()=>{var e;null===(e=this.creditCard)||void 0===e||e.activate()},onChange:({isValid:e})=>{var t,i,n,s,o,r,a;const l="boolean"!=typeof(null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.disablePaymentButton)||(null===(s=null===(n=this.dropinConfig.paymentMethodsConfiguration)||void 0===n?void 0:n.cards)||void 0===s?void 0:s.disablePaymentButton)?!e:null===(r=null===(o=this.dropinConfig.paymentMethodsConfiguration)||void 0===o?void 0:o.cards)||void 0===r?void 0:r.disablePaymentButton;null===(a=this.cardPaymentButton)||void 0===a||a.setDisabled(l)},onSaveInstrumentCheckboxChanged:e=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onSaveInstrumentCheckboxChanged)||void 0===i||i.call(t,e)}})})}return this.cardPaymentButton&&this.cardPaymentButton.setCardForm(this.cardForm),this.cardForm}createTermsAndConditionsElement(e){var t,i,n,s,o;const r=null===(s=null===(n=null===(i=null===(t=J())||void 0===t?void 0:t.morData)||void 0===i?void 0:i.termsAndConditions)||void 0===n?void 0:n.html)||void 0===s?void 0:s.trim();return r?new vs({id:e?`payrails-terms-and-conditions-${e}`:void 0,html:r,styles:null===(o=this.dropinConfig.styles)||void 0===o?void 0:o.termsAndConditions}):null}createOrderSummaryElement(e){var t,i;const n=J();return(null==n?void 0:n.morData)?new Es({id:e?`payrails-dropin-order-summary-${e}`:"payrails-dropin-order-summary",className:"payrails-dropin-order-summary",translations:null===(t=this.dropinConfig.translations)||void 0===t?void 0:t.orderSummary,styles:null===(i=this.dropinConfig.styles)||void 0===i?void 0:i.orderSummary}):null}createApplePayButton(e){var t,n,s,o,r,a,l,d,c;const u=this.createOrderSummaryElement(exports.PAYMENT_METHOD_CODES.APPLE_PAY),h=this.createTermsAndConditionsElement(exports.PAYMENT_METHOD_CODES.APPLE_PAY);return this.applePay=new As(Object.assign(Object.assign({events:Object.assign(Object.assign({},this.getElementEvents()),{onAuthorizeSuccess:e=>{var t;if(e)if("authorizeSuccessful"===(null===(t=null==e?void 0:e.finalState)||void 0===t?void 0:t.code))this.onAuthorizeSuccess();else this.onAuthorizeFailed()},onPaymentOptionVisibilityChange:()=>{var t,i;null===(i=null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentOptionSelected)||void 0===i||i.call(t,{paymentMethod:e})},onPaymentButtonClicked:e=>i(this,void 0,void 0,function*(){var t,i,n;return!!(yield this.validateBillingAddress())&&(!(null===(t=this.dropinConfig.events)||void 0===t?void 0:t.onPaymentButtonClicked)||Boolean(yield null===(n=null===(i=this.dropinConfig.events)||void 0===i?void 0:i.onPaymentButtonClicked)||void 0===n?void 0:n.call(i,e)))})})},null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.applePay),{styles:Object.assign(Object.assign({},null===(n=this.dropinConfig.styles)||void 0===n?void 0:n.applePayButton),null===(s=this.dropinConfig.styles)||void 0===s?void 0:s.element),translations:null===(o=this.dropinConfig.translations)||void 0===o?void 0:o.applePayButton,showPaymentMethodLogo:null!==(c=null!==(l=null===(a=null===(r=this.dropinConfig.paymentMethodsConfiguration)||void 0===r?void 0:r.applePay)||void 0===a?void 0:a.showPaymentMethodLogo)&&void 0!==l?l:null===(d=this.dropinConfig.paymentMethodsConfiguration)||void 0===d?void 0:d.showPaymentMethodLogo)&&void 0!==c&&c})),(u||h)&&this.applePay.wrapComponent(e=>new ro({orderSummary:u,paymentComponent:e,termsAndConditions:h})),this.applePay}createCardPaymentButton(){var e,t,i,n;return this.cardPaymentButton||(this.cardPaymentButton=new So({styles:null===(e=this.dropinConfig.styles)||void 0===e?void 0:e.cardPaymentButton,translations:null===(t=this.dropinConfig.translations)||void 0===t?void 0:t.cardPaymentButton,redirectFor3DS:this.clientConfig.redirectFor3DS,disabledByDefault:null===(n=null===(i=this.dropinConfig.paymentMethodsConfiguration)||void 0===i?void 0:i.cards)||void 0===n?void 0:n.disablePaymentButton,events:this.getElementEvents()},this.returnInfo)),this.cardForm&&this.cardPaymentButton.setCardForm(this.cardForm),this.cardPaymentButton}onAuthorizeSuccess(){var e,t,i,n,s,o,r;ln.reset(),null===(e=this.loadingScreen)||void 0===e||e.unmount(),this.subElements.forEach(e=>e.unmount()),new os({translations:{label:null===(n=null===(i=null===(t=this.dropinConfig)||void 0===t?void 0:t.translations)||void 0===i?void 0:i.paymentResult)||void 0===n?void 0:n.success},styles:null===(o=null===(s=this.dropinConfig)||void 0===s?void 0:s.styles)||void 0===o?void 0:o.authSuccess}).mount(this.selector),(null===(r=this.dropinConfig.events)||void 0===r?void 0:r.onAuthorizeSuccess)&&this.dropinConfig.events.onAuthorizeSuccess()}validateBillingAddress(){return i(this,void 0,void 0,function*(){if(!this.billingAddressForm)return!0;try{return yield this.billingAddressForm.collect(),!0}catch(e){return this.billingValidationBlocked=!0,!1}})}getElementEvents(){return Object.assign(Object.assign({},this.dropinConfig.events),{onAuthorizeSuccess:this.onAuthorizeSuccess.bind(this),onAuthorizeFailed:this.onAuthorizeFailed.bind(this),onAuthorizePending:this.onAuthorizePending.bind(this),onAvailable:()=>{var e;(1===this.totalPaymentOptions||(null===(e=this.dropinConfig.paymentMethodsConfiguration)||void 0===e?void 0:e.preselectFirstPaymentOption))&&setTimeout(()=>{try{const e=this.subElements.find(e=>e instanceof Zn);null==e||e.activate()}catch(e){r.PayrailsLogger.error("Error while auto-activating the first payment option",{error:new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_UI_ELEMENT_MISSING,{cause:e})})}},0)},onPaymentButtonClicked:e=>i(this,void 0,void 0,function*(){var t,i,n,s;if(!(yield this.validateBillingAddress()))return!1;null===(t=this.loadingScreen)||void 0===t||t.mount(this.selector);let o=!0;return(null===(i=this.dropinConfig.events)||void 0===i?void 0:i.onPaymentButtonClicked)&&(o=!!(yield null===(s=null===(n=this.dropinConfig.events)||void 0===n?void 0:n.onPaymentButtonClicked)||void 0===s?void 0:s.call(n,e))),o})})}onAuthorizePending(){var e,t,i,n,s,o,r,a;ln.reset(),null===(e=this.loadingScreen)||void 0===e||e.unmount(),this.subElements.forEach(e=>e.unmount()),new os({translations:{label:(null===(n=null===(i=null===(t=this.dropinConfig)||void 0===t?void 0:t.translations)||void 0===i?void 0:i.paymentResult)||void 0===n?void 0:n.pending)||"Payment pending"},styles:null===(o=null===(s=this.dropinConfig)||void 0===s?void 0:s.styles)||void 0===o?void 0:o.authSuccess}).mount(this.selector),null===(a=null===(r=this.dropinConfig.events)||void 0===r?void 0:r.onAuthorizePending)||void 0===a||a.call(r)}getErrorMessage(e){var t,i,n,s,o,r;let a=null===(i=null===(t=this.dropinConfig.translations)||void 0===t?void 0:t.paymentResult)||void 0===i?void 0:i.fail;return(null==e?void 0:e.message)&&(null===(s=null===(n=this.dropinConfig.translations)||void 0===n?void 0:n.errorMessages)||void 0===s?void 0:s[null==e?void 0:e.message])&&(a=null===(r=null===(o=this.dropinConfig.translations)||void 0===o?void 0:o.errorMessages)||void 0===r?void 0:r[null==e?void 0:e.message]),a}onAuthorizeFailed(e){return i(this,void 0,void 0,function*(){var t,i,n,s,o;if(null===(t=this.loadingScreen)||void 0===t||t.unmount(),this.billingValidationBlocked)this.billingValidationBlocked=!1;else{if((null==e?void 0:e.code)!==exports.AuthorizationFailureReasons.USER_CANCELLED){new ss({translations:{label:this.getErrorMessage(e)},styles:null===(i=this.dropinConfig.styles)||void 0===i?void 0:i.authFailed,configuration:null===(n=this.dropinConfig.configuration)||void 0===n?void 0:n.authFailMsg}).mount(this.selector)}null===(o=null===(s=this.dropinConfig.events)||void 0===s?void 0:s.onAuthorizeFailed)||void 0===o||o.call(s,e)}})}isStoredInstrumentEnabled(e){var t,i,n,s,o,r;switch(e){case exports.PAYMENT_METHOD_CODES.CARD:return!1!==(null===(i=null===(t=this.dropinConfig.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.showStoredInstruments)&&!1!==(null===(s=null===(n=this.dropinConfig.paymentMethodsConfiguration)||void 0===n?void 0:n.cards)||void 0===s?void 0:s.showExistingCards);case exports.PAYMENT_METHOD_CODES.PAYPAL:case exports.PAYMENT_METHOD_CODES.GOOGLE_PAY:case exports.PAYMENT_METHOD_CODES.APPLE_PAY:return!1!==(null===(r=null===(o=this.dropinConfig.paymentMethodsConfiguration)||void 0===o?void 0:o[e])||void 0===r?void 0:r.showStoredInstruments);default:return!1}}applyStyles(){var e;(null===(e=this.dropinConfig.styles)||void 0===e?void 0:e.container)&&Object.assign(this.element.style,this.dropinConfig.styles.container.styles)}fetchBinLookup(){return i(this,void 0,void 0,function*(){var e;return null===(e=this.cardForm)||void 0===e?void 0:e.fetchBinLookup()})}}const po=e=>i(void 0,void 0,void 0,function*(){if(null==e?void 0:e.onSessionExpired)try{const t=yield e.onSessionExpired();if(t)Q(t),(null==e?void 0:e.onClientInitialized)&&e.onClientInitialized(q);else{const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_SESSION_REFRESH_FAILED,{description:"Session refresh failed with no result returned"});r.PayrailsLogger.error(e.message,{error:e})}}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_SESSION_REFRESH_FAILED,{description:"Callback passed to onSessionExpired threw an error",cause:e});r.PayrailsLogger.error(t.message,{error:t})}}),_o=Hs("secureFieldsRollout"),Eo=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;class mo{static setSelectedInstrument(e){if(!e||!e.id.match(Eo))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Instrument is not valid"});this._selectedInstrument=e}static getSelectedInstrument(){return this._selectedInstrument}static clearSelectedInstrument(){this._selectedInstrument=null}}mo._selectedInstrument=null;const vo={deleteInstrument:{linkKey:"instrumentDelete",method:oe.DELETE,createRequest:e=>{var t,i;if(!e.resourceId)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_API_UNKNOWN_ERROR);const n=null===(i=null===(t=J().links)||void 0===t?void 0:t.instrumentDelete)||void 0===i?void 0:i.href;if(!n)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND);return{url:e.resourceId?null==n?void 0:n.replace(":instrumentId",e.resourceId):n}},requestType:void 0,responseType:{}},updateInstrument:{linkKey:"instrumentUpdate",method:oe.PATCH,createRequest:e=>{var t,i;const n=null===(i=null===(t=J().links)||void 0===t?void 0:t.instrumentUpdate)||void 0===i?void 0:i.href;if(!n)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND);return{url:e.resourceId?null==n?void 0:n.replace(":instrumentId",e.resourceId):n,body:e.body}},requestType:{},responseType:{}},payout:{linkKey:"payout",method:oe.POST,createRequest:()=>{const e=q.payoutLink;if(!e)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_API_URL_NOT_FOUND);const t=mo.getSelectedInstrument();if(!t)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_API_PAYOUT_NO_INSTRUMENT_SELECTED,{cause:new Error("No selected instrument for payout, set an instrument first using setState")});const i=[{integrationType:"api",amount:J().amount,paymentMethodCode:t.paymentMethod,paymentInstrumentId:t.id}];return{url:e,body:{amount:J().amount,payoutComposition:i}}},onSuccess:e=>i(void 0,void 0,void 0,function*(){const t=new pn;return yield t.pollForAuthorizationResult(e.links.execution)}),requestType:{},responseType:{}}},yo={holderReference:{path:["holderReference"],returnType:""},amount:{path:["amount"],returnType:{}},binLookup:{path:["links","binLookup"],returnType:{}},instrumentUpdate:{path:["links","instrumentUpdate"],returnType:{}},instrumentDelete:{path:["links","instrumentDelete"],returnType:{}},executionId:{path:["execution","id"],returnType:void 0},paymentMethodConfig:{path:[],returnType:{}},paymentMethodInstruments:{path:[],returnType:{}}};const Io=(e,t)=>{try{const i=J(),n=yo[e];if(!n)return r.PayrailsLogger.warn(`No query definition found for key: ${e}`),null;if("paymentMethodConfig"===e){const e=null==t?void 0:t.paymentMethodCode;return e?function(e){var t;try{if(!e)return r.PayrailsLogger.error("Payment method code is required"),null;const i=q.availablePaymentMethods;return"all"===e?i:"redirect"===e?i.filter(e=>{var t;return(null===(t=e.clientConfig)||void 0===t?void 0:t.flow)===W.REDIRECT}):null!==(t=i.find(({paymentMethodCode:t})=>t===e))&&void 0!==t?t:null}catch(t){return r.PayrailsLogger.error(`Error getting config for payment method: ${e}`,{error:t}),null}}(e):(r.PayrailsLogger.warn("Payment method code is required for paymentMethodConfig query"),null)}if("paymentMethodInstruments"===e){const e=null==t?void 0:t.paymentMethodCode;return e?function(e){return q.getStoredInstrumentForPaymentMethod(e)}(e):(r.PayrailsLogger.warn("Payment method code is required for paymentMethodInstruments query"),null)}const{path:s}=n;return function(e,t){if(!e||!t||!t.length)return;let i=e;for(const e of t){if(null==i)return;i=i[e]}return i}(i,s)||null}catch(e){return r.PayrailsLogger.error("Error querying SDK Configuration",{error:e}),null}},fo=(e={})=>{const t=document.getElementById("sdk-observer");return t||(e=>{const t=document.createElement("iframe");t.id="sdk-observer";const i=new URLSearchParams(e).toString();return t.src=`https://assets.payrails.io/f3470e3/observability/index.html?${i}`,t.width="1px",t.height="1px",document.body.appendChild(t),t})(e)};
21
21
  /* @copyright
22
22
  Copyright (c) 2023 Payrails (https://www.payrails.com/)
23
23
  */
24
- class no{static init(e,t){var i,n,r,a,l,d,c,u,p,h,_,E;try{const s="5.47.0",m="web-sdk";io({version:s,packageName:m}),us().reset(),o.PayrailsLogger.init({enabled:(null===(i=null==t?void 0:t.telemetry)||void 0===i?void 0:i.enabled)||!0,logLevel:(null===(n=null==t?void 0:t.telemetry)||void 0===n?void 0:n.logLevel)||"error",environment:(null==t?void 0:t.environment)||"TEST",sdk:{name:m,version:s}}),he(e);const v=pe();o.PayrailsLogger.setState({payrails:{execution_id:null===(r=null==v?void 0:v.execution)||void 0===r?void 0:r.id,holder_reference:null==v?void 0:v.holderReference,vault_provider:null===(a=null==v?void 0:v.vaultConfiguration)||void 0===a?void 0:a.vaultType,merchant_reference:null===(l=null==v?void 0:v.execution)||void 0===l?void 0:l.merchantReference,workflow:{code:(null===(c=null===(d=null==v?void 0:v.execution)||void 0===d?void 0:d.workflow)||void 0===c?void 0:c.code)||"",version:(null===(p=null===(u=null==v?void 0:v.execution)||void 0===u?void 0:u.workflow)||void 0===p?void 0:p.version)||0}}});const{vaultConfiguration:{vaultId:y,vaultUrl:I,token:f},execution:A}=v;null===(h=v.vaultConfiguration)||void 0===h||h.vaultId;const L=Mi.init({vaultID:y,vaultURL:I,getBearerToken:()=>f?Promise.resolve(f):Promise.resolve(""),options:{initResponse:e,deserializedData:Object.assign({},v),logLevel:(null===(E=null===(_=null==t?void 0:t.telemetry)||void 0===_?void 0:_.logLevel)||void 0===E?void 0:E.toUpperCase())||"ERROR"}});return A&&(le.setResponse(A),le.isPaymentMethodAvailable(exports.PAYMENT_METHOD_CODES.CARD)&&In.preloadCardForm()),new no(L,t)}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CONFIG_MALFORMED,{cause:e});throw o.PayrailsLogger.error(t.message,{error:t}),t}}update(e){var t,i,n,s;void 0!==e.value&&void 0!==e.currency&&(pe().amount={value:e.value,currency:e.currency}),e.meta&&le.updateMeta(e.meta.key,e.meta.value);const o=e.installmentConfig;if(!o||0===Object.keys(o).length)return;const r=le.getPaymentInstallmentOptions(exports.PAYMENT_METHOD_CODES.CARD)||{},a=null===(t=o.installmentCountry)||void 0===t?void 0:t.toString();if(a&&Object.prototype.hasOwnProperty.call(o,"installmentOptions")){const e=Array.isArray(o.installmentOptions)?o.installmentOptions:[],t=Object.assign(Object.assign({},r),{[a]:e});le.updateInstallmentOptions(t)}const l={};Object.prototype.hasOwnProperty.call(o,"defaultInstallment")&&(l.defaultInstallment=null!==(i=o.defaultInstallment)&&void 0!==i?i:null),null===(n=this.__cardForm)||void 0===n||n.updateInstallmentConfig(l),null===(s=this.__dropin)||void 0===s||s.updateInstallmentConfig(l)}collectContainer(e){var t;if("COMPOSABLE"===e.containerType&&!e.layout){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT);throw o.PayrailsLogger.error(e.message,{error:e}),e}return this.__container=_e.init(this.vaultClient,Object.assign(Object.assign({},e),{cardTableName:null===(t=pe().vaultConfiguration)||void 0===t?void 0:t.cardTableName})),this.__container}googlePayButton(e){var t;return this.logIntegrationMode("elements"),new Fs(Object.assign({environment:null===(t=this.options)||void 0===t?void 0:t.environment},e))}isGooglePayAvailable(e){var t;return Fs.isGooglePayAvailable(le.googlePayConfig,null===(t=this.options)||void 0===t?void 0:t.environment,e)}applePayButton(e){return this.logIntegrationMode("elements"),new Cn(e)}isApplePayAvailable(){return Cn.isApplePayAvailable()}setState({instrument:e}){e&&Js.setSelectedInstrument(e)}cardList(e){return this.logIntegrationMode("elements"),this.__cardList||(this.__cardList=new Zn({onCardChange:t=>{this.__cardPaymentButton&&(this.__cardPaymentButton.selectedInstrument=t,this.__cardPaymentButton.setDisabled(!1)),null==e||e.onCardChange(t)}})),this.__cardList}cardForm(e){var t,i;if(this.logIntegrationMode("elements"),!this.__cardForm){const n=this.getContainerLayout(null==e?void 0:e.showCardHolderName,null==e?void 0:e.showSingleExpiryDateField,null==e?void 0:e.layout);this.__container=this.collectContainer(Object.assign(Object.assign({layout:n,errorTextStyles:{base:{display:"none"}}},null===(t=null==e?void 0:e.styles)||void 0===t?void 0:t.errorTextStyles),{styles:{base:null===(i=null==e?void 0:e.styles)||void 0===i?void 0:i.base},fonts:null==e?void 0:e.fonts})),this.__cardForm=new Xn(this.__container,Object.assign(Object.assign({},e),{events:Object.assign(Object.assign({},null==e?void 0:e.events),{onChange:t=>{var i;if(this.__cardPaymentButton&&(this.__cardPaymentButton.selectedInstrument=null,this.__cardForm)){const e=!!this.__cardPaymentButton.disabledByDefault&&!this.__cardForm.isValid;this.__cardPaymentButton.setDisabled(e)}(null===(i=null==e?void 0:e.events)||void 0===i?void 0:i.onChange)&&e.events.onChange(t)},onFocus:()=>{var t;if(this.__cardList&&this.__cardList.reset(),this.__cardPaymentButton&&(this.__cardPaymentButton.selectedInstrument=null,this.__cardForm)){const e=!!this.__cardPaymentButton.disabledByDefault&&!this.__cardForm.isValid;this.__cardPaymentButton.setDisabled(e)}(null===(t=null==e?void 0:e.events)||void 0===t?void 0:t.onFocus)&&e.events.onFocus()}})}))}return this.__cardPaymentButton&&this.__cardPaymentButton.setCardForm(this.__cardForm),this.__cardForm}dropin(e){var t,i,n,s,o,r;this.logIntegrationMode("dropin");const a=this.getContainerLayout(null===(i=null===(t=e.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.showCardHolderName,null===(s=null===(n=e.paymentMethodsConfiguration)||void 0===n?void 0:n.cards)||void 0===s?void 0:s.showSingleExpiryDateField,null===(r=null===(o=e.paymentMethodsConfiguration)||void 0===o?void 0:o.cards)||void 0===r?void 0:r.layout);return this.__container=this.collectContainer({layout:a,errorTextStyles:{base:{display:"none"}}}),this.__dropin=new Ks(this.__container,Object.assign({},this.options||{}),e),this.__dropin}getSavedCreditCards(){return this.logIntegrationMode("elements"),le.savedCreditCards}getSavedGooglePayAccounts(){return this.logIntegrationMode("elements"),le.savedGooglePayAccounts}getSavedApplePayAccounts(){return this.logIntegrationMode("elements"),le.savedApplePayAccounts}query(e,t){return this.logIntegrationMode("headless"),to(e,t)}api(e){return t(this,void 0,void 0,function*(){return this.logIntegrationMode("headless"),(e=>t(void 0,void 0,void 0,function*(){const{operation:t}=e,i=pe(),n=Qs[t];try{const t=n.createRequest(e),s=yield K(Object.assign({url:t.url,token:i.token,method:n.method},void 0!==t.body&&{body:t.body}));return n.onSuccess?yield n.onSuccess(s.res):s.res}catch(e){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_API_UNSUCCESSFUL,{cause:e});throw o.PayrailsLogger.error(t.message,{error:t}),t}}))(e)})}getStoredInstruments(){return this.logIntegrationMode("elements"),le.storedPaymentInstruments}getStoredInstrumentsByPaymentMethod(e){return this.logIntegrationMode("elements"),le.storedPaymentInstruments.filter(t=>t.paymentMethod===e)}getAvailablePaymentMethods(){return this.logIntegrationMode("elements"),le.availablePaymentMethods.map(({paymentMethodCode:e})=>e).filter(e=>!!e)}paymentButton(e){var t;return this.logIntegrationMode("elements"),this.__cardPaymentButton||(this.__cardPaymentButton=new po(e,(null===(t=this.options)||void 0===t?void 0:t.returnInfo)||{})),this.__cardPaymentButton.setDisabled(!!e.disabledByDefault),this.__cardForm&&this.__cardPaymentButton.setCardForm(this.__cardForm),this.__cardPaymentButton}paypalButton(e){return this.logIntegrationMode("elements"),this.__paypalButton=new zs(Object.assign({},e)),this.__paypalButton}leanButton(e){return this.logIntegrationMode("elements"),this.__leanButton=new Gs(e),this.__leanButton}genericRedirectButton(e){return this.logIntegrationMode("elements"),this.__genericRedirectButton=new Rs(e,e.returnInfo),this.__genericRedirectButton}dynamicElement(e){var t;this.logIntegrationMode("elements");const i=le.getFullPaymentMethodConfig(e.paymentMethod.paymentMethodCode);if(!(null===(t=null==i?void 0:i.clientConfig)||void 0===t?void 0:t.instrumentDataSchema))throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_MISSING_CONFIG,{description:`Form schema not found for payment method ${e.paymentMethod.paymentMethodCode}`});const n={schema:i.clientConfig.instrumentDataSchema};return this.__dynamicElementForm=new tn(e,n),this.__dynamicElementForm}getSavedPaypalAccounts(){return this.logIntegrationMode("elements"),le.savedPaypalAccounts||[]}logIntegrationMode(e){o.PayrailsLogger.setState({sdk:{integration_mode:e}})}constructor(e,i){var n,s,o;this.vaultClient=e,this.options=i,null===(s=null===(n=null==i?void 0:i.events)||void 0===n?void 0:n.onClientInitialized)||void 0===s||s.call(n,le),o=this.options||{},Yi=o,Ee.getEventBus().on("PAYRAILS_CLIENT_SESSION_EXPIRED",()=>t(this,void 0,void 0,function*(){var e;yield null==$s?void 0:$s(null===(e=this.options)||void 0===e?void 0:e.events)}))}getContainerLayout(e,t,i){const n=[];return i?i.forEach(e=>{n.push(e.length)}):(n.push(1),e&&n.push(1),t?n.push(2):n.push(3)),n}on(e,t){return us().on(e,t)}off(e,t){us().off(e,t)}binLookup(){return t(this,void 0,void 0,function*(){var e,t;if(!this.__dropin&&!this.__cardForm&&!this.__container)return void console.warn("No container found");let i;return this.__dropin?i=yield this.__dropin.fetchBinLookup():this.__cardForm?i=yield null===(e=this.__cardForm)||void 0===e?void 0:e.fetchBinLookup():this.__container&&(i=yield null===(t=this.__container)||void 0===t?void 0:t.fetchBinLookup(this.__container.bin)),i})}}var so,oo;no.preloadCardForm=In.preloadCardForm,function(e){e.AUTHORIZE="AUTHORIZE",e.TOKENIZE="TOKENIZE"}(so||(so={})),exports.PayrailsEnvironment=void 0,(oo=exports.PayrailsEnvironment||(exports.PayrailsEnvironment={})).TEST="TEST",oo.PRODUCTION="PRODUCTION";const ro=(e,t,i)=>{var n;(null==t?void 0:t.onAuthorizeSuccess)&&e===so.AUTHORIZE&&(console.warn("onAuthorizeSuccess is marked as deprecated and will be removed in future releases. Use `onSuccess` instead."),t.onAuthorizeSuccess(i)),null===(n=null==t?void 0:t.onSuccess)||void 0===n||n.call(t,e,i)},ao=(e,t,i)=>{var n;(null==t?void 0:t.onAuthorizeFailed)&&e===so.AUTHORIZE&&(console.warn("onAuthorizeFailed is marked as deprecated and will be removed in future releases. Use `onFailed` instead."),t.onAuthorizeFailed(i)),null===(n=null==t?void 0:t.onFailed)||void 0===n||n.call(t,e,i)},lo=(e,i)=>t(void 0,void 0,void 0,function*(){if(!i)return Promise.resolve(!0);i.onAuthorizeRequestStart&&e===so.AUTHORIZE&&console.warn("onAuthorizeRequestStart is marked as deprecated and will be removed in future releases. Use `onRequestStart` instead.");const t="function"==typeof i.onAuthorizeRequestStart&&e===so.AUTHORIZE?i.onAuthorizeRequestStart():Promise.resolve(!0),n="function"==typeof i.onRequestStart?i.onRequestStart(e):Promise.resolve(!0);return Promise.all([t,n]).then(e=>e.every(e=>!0===e))}),co=(e,t,i)=>{var n;(null==t?void 0:t.onAuthorizePending)&&e===so.AUTHORIZE&&(console.warn("onAuthorizePending is marked as deprecated and will be removed in future releases. Use `onPending` instead."),t.onAuthorizePending(i)),null===(n=null==t?void 0:t.onPending)||void 0===n||n.call(t,e,i)},uo=(e,i,n)=>t(void 0,void 0,void 0,function*(){try{const o=yield((e,i,n)=>t(void 0,void 0,void 0,function*(){if(!i)return Promise.resolve(!0);i.onPaymentButtonClicked&&console.warn("onPaymentButtonClicked is marked as deprecated and will be removed in future releases. Use `onButtonClicked` instead.");const t="function"==typeof i.onPaymentButtonClicked&&e===so.AUTHORIZE?i.onPaymentButtonClicked(n):Promise.resolve(!0),s="function"==typeof i.onButtonClicked?i.onButtonClicked(e,n):Promise.resolve(!0);return Promise.all([t,s]).then(e=>e.every(e=>!0===e))}))(e,i,n);if(!o){const t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onButtonClicked resolved to false"});return ao(e,i,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:t.message}),o}}catch(t){const n=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onButtonClicked threw an error",cause:t});return ao(e,i,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:n.message}),!1}return!0});class po extends Ui{get bin(){var e;return this.selectedInstrument?this.selectedInstrument.data.bin?this.selectedInstrument.data.bin:"":(null===(e=this.cardForm)||void 0===e?void 0:e.bin)||""}constructor(e,t){var i;super("button",{id:"payrails-card-payment-button"}),this.options=e,this.returnInfo=t,this.selectedInstrument=null,this.paymentInstallmentElement=null,this.isLoading=!1,this.disabledByDefault=!0,this.element.innerText=(null===(i=null==e?void 0:e.translations)||void 0===i?void 0:i.label)||"Pay",this.disabledByDefault="boolean"!=typeof e.disabledByDefault||e.disabledByDefault,this.setDisabled(this.disabledByDefault),this.element.addEventListener("click",this.onPay.bind(this)),this.element.addEventListener("mouseenter",()=>{var e;this.element.classList.contains("disabled")||(this.element.classList.add("hover"),this.setStyles((null===(e=this.options.styles)||void 0===e?void 0:e.hover)||{}))}),this.element.addEventListener("mouseleave",()=>{var e;this.element.classList.contains("disabled")||(this.element.classList.remove("hover"),this.removeStyles((null===(e=this.options.styles)||void 0===e?void 0:e.hover)||{}))}),this.paymentExecutor=new cn(this.returnInfo)}setDisabled(e){var t,i,n,s,o;this.element.classList.contains("disabled")!==e&&(null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onStateChanged)||void 0===i||i.call(t,e?"disabled":"enabled")),this.element.disabled=e,e?(this.element.classList.add("disabled"),(null===(n=this.options.styles)||void 0===n?void 0:n.disabled)&&this.setStyles(this.options.styles.disabled)):(this.element.classList.remove("disabled"),this.removeStyles((null===(s=this.options.styles)||void 0===s?void 0:s.disabled)||{}),(null===(o=this.options.styles)||void 0===o?void 0:o.base)&&this.setStyles(this.options.styles.base))}setSavedCreditCard(e){console.warn("setSavedCreditCard is deprecated, please use setSavedInstrument"),this.setSavedInstrument(e)}setSavedInstrument(e){this.selectedInstrument=e,this.setDisabled(!1)}setStyles(e){var t;const i=Object.assign(Object.assign({},null===(t=this.options.styles)||void 0===t?void 0:t.base),e);Object.keys(i).forEach(e=>{this.element.style[e]=i[e]})}removeStyles(e){var t;const i=Object.keys((null===(t=this.options.styles)||void 0===t?void 0:t.base)||{});Object.keys(e).forEach(e=>{var t,n;i.includes(e)?this.element.style[e]=null===(n=null===(t=this.options.styles)||void 0===t?void 0:t.base)||void 0===n?void 0:n[e]:this.element.style[e]=""})}setLabel(e){this.element.innerText=e}setCardForm(e){this.cardForm=e}setPaymentInstallmentsDropdown(e){this.paymentInstallmentElement=e}triggerLoading(e){var t,i,n,s;const o=this.element.offsetWidth;this.element.style.minWidth=`${o}px`,this.isLoading=e,e?(this.element.innerHTML='<div class="dot-flashing"></div>',this.element.classList.add("loading"),(null===(t=this.options.styles)||void 0===t?void 0:t.loading)&&this.setStyles(this.options.styles.loading)):(this.element.innerText=(null===(n=null===(i=this.options)||void 0===i?void 0:i.translations)||void 0===n?void 0:n.label)||"Pay",this.element.classList.remove("loading"),this.removeStyles((null===(s=this.options.styles)||void 0===s?void 0:s.loading)||{}))}onAuthorizationFailed(e){this.setDisabled(!1),this.triggerLoading(!1),ao(so.AUTHORIZE,this.options.events,e)}onPay(){return t(this,void 0,void 0,function*(){var e,t,i,n,r,a,l,d,c,u,p,h,_,E;let m;if(this.setDisabled(!0),this.triggerLoading(!0),!(null===(e=this.selectedInstrument)||void 0===e?void 0:e.id)){const e=yield null===(t=this.cardForm)||void 0===t?void 0:t.validate();if(m=!!(null==e?void 0:e.isValid),null===(n=null===(i=this.options.events)||void 0===i?void 0:i.onValidate)||void 0===n||n.call(i,{isValid:!!m,error:null==e?void 0:e.error,fieldErrors:null==e?void 0:e.fieldErrors}),!m)return this.setDisabled(!1),void this.triggerLoading(!1)}if(m=yield uo(so.AUTHORIZE,this.options.events,{bin:this.bin||""}),!m)return this.setDisabled(!1),void this.triggerLoading(!1);try{let e=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.CARD,integrationType:"api",amount:pe().amount,storeInstrument:!1}];if(null===(r=this.selectedInstrument)||void 0===r?void 0:r.id)e[0].paymentInstrumentId=null===(a=this.selectedInstrument)||void 0===a?void 0:a.id,e[0].paymentMethodCode=null===(l=this.selectedInstrument)||void 0===l?void 0:l.paymentMethod,this.paymentInstallmentElement&&(null===(d=this.paymentInstallmentElement)||void 0===d?void 0:d.selectedInstallmentValue)&&(e[0].installments={count:null===(c=this.paymentInstallmentElement)||void 0===c?void 0:c.selectedInstallmentValue});else{if(!this.cardForm){const e=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CARD_FORM_MISSING);throw o.PayrailsLogger.error(e.message,{error:e}),e}e=yield this.constructEncryptedPayment(e)}const t=yield this.paymentExecutor.pay(e);yield this.handleAuthorizationResult(t)}catch(e){let t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_API_AUTHENTICATION_ERROR,{cause:e});e instanceof $||[401,403].includes(null===(u=null==e?void 0:e.error)||void 0===u?void 0:u.code)?(null===(h=null===(p=this.options.events)||void 0===p?void 0:p.onPaymentSessionExpired)||void 0===h||h.call(p),t.message="API token is not valid or expired.",o.PayrailsLogger.error(t.message,{error:t}),this.onAuthorizationFailed({code:exports.AuthorizationFailureReasons.AUTHENTICATION_ERROR,message:t.message})):e.toString().includes("Invalid token")?(null===(E=null===(_=this.options.events)||void 0===_?void 0:_.onPaymentSessionExpired)||void 0===E||E.call(_),t.message="Vault token is not valid or expired.",o.PayrailsLogger.error(t.message,{error:t})):t=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_API_UNKNOWN_ERROR,{cause:e}),this.onAuthorizationFailed({code:exports.AuthorizationFailureReasons.AUTHENTICATION_ERROR,message:t.message})}})}constructEncryptedPayment(e){return t(this,void 0,void 0,function*(){if(!this.cardForm)throw new s.PayrailsError(s.ERROR_CODES.PAYRAILS_CLIENT_CARD_FORM_MISSING);const{cardData:t,storeInstrument:i,enrollInstrumentToNetworkOffers:n,selectedInstallment:o,billingInfo:r}=yield this.cardForm.collectValues();return e[0].paymentInstrumentData=Object.assign(Object.assign({},t),{billingAddress:r}),e[0].storeInstrument=i,e[0].enrollInstrumentToNetworkOffers=n,o&&(e[0].installments={count:o}),e})}updateStyles(e){this.options.styles&&(this.options.styles=Object.assign(Object.assign({},this.options.styles),e)),this.isLoading?this.setStyles((null==e?void 0:e.loading)||{}):this.setStyles((null==e?void 0:e.base)||{})}updateTranslations(e){this.options.translations&&(this.options.translations=Object.assign(Object.assign({},this.options.translations),e)),(null==e?void 0:e.label)&&this.setLabel(e.label)}updateEvents(e){this.options.events&&(this.options.events=Object.assign(Object.assign({},this.options.events),e))}update(e){e.styles&&this.updateStyles(e.styles),e.translations&&this.updateTranslations(e.translations),e.events&&this.updateEvents(e.events)}handleAuthorizationResult(e){return t(this,void 0,void 0,function*(){var t,i,n,o,r,a,l;let d;switch(null===(t=null==e?void 0:e.finalState)||void 0===t?void 0:t.code){case"authorizeSuccessful":this.triggerLoading(!1),ro(so.AUTHORIZE,this.options.events);break;case"authorizePending":if("3ds"===(null===(i=null==e?void 0:e.response)||void 0===i?void 0:i.actionRequired)){const t=new Ps(Object.assign(Object.assign({},this.options),{paymentMethodCode:exports.PAYMENT_METHOD_CODES.CARD,events:Object.assign(Object.assign({},this.options.events),{onAuthorizeFailed:e=>{this.onAuthorizationFailed(e)}})}),this.paymentExecutor);yield t.handle3ds(e)}else(null===(n=null==e?void 0:e.response)||void 0===n?void 0:n.actionRequired)||(this.triggerLoading(!1),co(so.AUTHORIZE,this.options.events));break;default:d=new s.PayrailsError(s.ERROR_CODES.PAYRAILS_API_AUTHORIZATION_ERROR),this.onAuthorizationFailed({code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(l=null===(a=null===(r=null===(o=e.finalState)||void 0===o?void 0:o.errors)||void 0===r?void 0:r[0])||void 0===a?void 0:a.reason)||void 0===l?void 0:l.result)||d.message})}})}}var ho;exports.AuthorizationFailureReasons=void 0,(ho=exports.AuthorizationFailureReasons||(exports.AuthorizationFailureReasons={})).VALIDATION_FAILED="VALIDATION_FAILED",ho.AUTHORIZATION_ERROR="AUTHORIZATION_ERROR",ho.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",ho.UNKNOWN_ERROR="UNKNOWN_ERROR",ho.USER_CANCELLED="USER_CANCELLED",exports.Payrails=no,exports.PayrailsCollectContainer=_e,exports.REVOLUT_PAY_DEFAULT_LABEL=fs,exports.REVOLUT_PAY_DEFAULT_THEME=Is}();
24
+ class Ao{static init(e,t){var i,n,s,a,l,d,c,u,h,p,_,E;try{const o="5.48.0-RC-1",m="web-sdk";fo({version:o,packageName:m}),Ts().reset(),r.PayrailsLogger.init({enabled:(null===(i=null==t?void 0:t.telemetry)||void 0===i?void 0:i.enabled)||!0,logLevel:(null===(n=null==t?void 0:t.telemetry)||void 0===n?void 0:n.logLevel)||"error",environment:(null==t?void 0:t.environment)||"TEST",sdk:{name:m,version:o}}),Q(e);const v=J();r.PayrailsLogger.setState({payrails:{execution_id:null===(s=null==v?void 0:v.execution)||void 0===s?void 0:s.id,holder_reference:null==v?void 0:v.holderReference,vault_provider:null===(a=null==v?void 0:v.vaultConfiguration)||void 0===a?void 0:a.vaultType,merchant_reference:null===(l=null==v?void 0:v.execution)||void 0===l?void 0:l.merchantReference,workflow:{code:(null===(c=null===(d=null==v?void 0:v.execution)||void 0===d?void 0:d.workflow)||void 0===c?void 0:c.code)||"",version:(null===(h=null===(u=null==v?void 0:v.execution)||void 0===u?void 0:u.workflow)||void 0===h?void 0:h.version)||0}}});const{vaultConfiguration:{vaultId:y,vaultUrl:I,token:f},execution:A}=v;null===(p=v.vaultConfiguration)||void 0===p||p.vaultId;const L=Yi.init({vaultID:y,vaultURL:I,getBearerToken:()=>f?Promise.resolve(f):Promise.resolve(""),options:{initResponse:e,deserializedData:Object.assign({},v),logLevel:(null===(E=null===(_=null==t?void 0:t.telemetry)||void 0===_?void 0:_.logLevel)||void 0===E?void 0:E.toUpperCase())||"ERROR"}});return A&&(q.setResponse(A),q.isPaymentMethodAvailable(exports.PAYMENT_METHOD_CODES.CARD)&&Ln.preloadCardForm()),new Ao(L,t)}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CONFIG_MALFORMED,{cause:e});throw r.PayrailsLogger.error(t.message,{error:t}),t}}update(e){var t,i,n,s;void 0!==e.value&&void 0!==e.currency&&(J().amount={value:e.value,currency:e.currency}),e.meta&&q.updateMeta(e.meta.key,e.meta.value);const o=e.installmentConfig;if(!o||0===Object.keys(o).length)return;const r=q.getPaymentInstallmentOptions(exports.PAYMENT_METHOD_CODES.CARD)||{},a=null===(t=o.installmentCountry)||void 0===t?void 0:t.toString();if(a&&Object.prototype.hasOwnProperty.call(o,"installmentOptions")){const e=Array.isArray(o.installmentOptions)?o.installmentOptions:[],t=Object.assign(Object.assign({},r),{[a]:e});q.updateInstallmentOptions(t)}const l={};Object.prototype.hasOwnProperty.call(o,"defaultInstallment")&&(l.defaultInstallment=null!==(i=o.defaultInstallment)&&void 0!==i?i:null),null===(n=this.__cardForm)||void 0===n||n.updateInstallmentConfig(l),null===(s=this.__dropin)||void 0===s||s.updateInstallmentConfig(l)}collectContainer(e){var t;if(_o())return this.__container=Pn.init(e),this.__container;if("COMPOSABLE"===e.containerType&&!e.layout){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_COLLECT_CONTAINER_MOUNT);throw r.PayrailsLogger.error(e.message,{error:e}),e}return this.__container=ve.init(this.vaultClient,Object.assign(Object.assign({},e),{cardTableName:null===(t=J().vaultConfiguration)||void 0===t?void 0:t.cardTableName})),this.__container}googlePayButton(e){var t;return this.logIntegrationMode("elements"),new eo(Object.assign({environment:null===(t=this.options)||void 0===t?void 0:t.environment},e))}isGooglePayAvailable(e){var t;return eo.isGooglePayAvailable(q.googlePayConfig,null===(t=this.options)||void 0===t?void 0:t.environment,e)}applePayButton(e){return this.logIntegrationMode("elements"),new Sn(e)}isApplePayAvailable(){return Sn.isApplePayAvailable()}setState({instrument:e}){e&&mo.setSelectedInstrument(e)}cardList(e){return this.logIntegrationMode("elements"),this.__cardList||(this.__cardList=new is({onCardChange:t=>{this.__cardPaymentButton&&(this.__cardPaymentButton.selectedInstrument=t,this.__cardPaymentButton.setDisabled(!1)),null==e||e.onCardChange(t)}})),this.__cardList}cardForm(e){var t,i;if(this.logIntegrationMode("elements"),!this.__cardForm){const n=this.getContainerLayout(null==e?void 0:e.showCardHolderName,null==e?void 0:e.showSingleExpiryDateField,null==e?void 0:e.layout);this.__container=this.collectContainer(Object.assign(Object.assign({containerType:"COMPOSABLE",layout:n,errorTextStyles:{base:{display:"none"}}},null===(t=null==e?void 0:e.styles)||void 0===t?void 0:t.errorTextStyles),{styles:{base:null===(i=null==e?void 0:e.styles)||void 0===i?void 0:i.base},fonts:null==e?void 0:e.fonts})),this.__cardForm=new Wn(this.__container,Object.assign(Object.assign({},e),{events:Object.assign(Object.assign({},null==e?void 0:e.events),{onChange:t=>{var i;if(this.__cardPaymentButton&&(this.__cardPaymentButton.selectedInstrument=null,this.__cardForm)){const e=!!this.__cardPaymentButton.disabledByDefault&&!this.__cardForm.isValid;this.__cardPaymentButton.setDisabled(e)}(null===(i=null==e?void 0:e.events)||void 0===i?void 0:i.onChange)&&e.events.onChange(t)},onFocus:()=>{var t;if(this.__cardList&&this.__cardList.reset(),this.__cardPaymentButton&&(this.__cardPaymentButton.selectedInstrument=null,this.__cardForm)){const e=!!this.__cardPaymentButton.disabledByDefault&&!this.__cardForm.isValid;this.__cardPaymentButton.setDisabled(e)}(null===(t=null==e?void 0:e.events)||void 0===t?void 0:t.onFocus)&&e.events.onFocus()}})}))}return this.__cardPaymentButton&&this.__cardPaymentButton.setCardForm(this.__cardForm),this.__cardForm}dropin(e){var t,i,n,s,o,r;this.logIntegrationMode("dropin");const a=this.getContainerLayout(null===(i=null===(t=e.paymentMethodsConfiguration)||void 0===t?void 0:t.cards)||void 0===i?void 0:i.showCardHolderName,null===(s=null===(n=e.paymentMethodsConfiguration)||void 0===n?void 0:n.cards)||void 0===s?void 0:s.showSingleExpiryDateField,null===(r=null===(o=e.paymentMethodsConfiguration)||void 0===o?void 0:o.cards)||void 0===r?void 0:r.layout);return this.__container=this.collectContainer({containerType:"COMPOSABLE",layout:a,errorTextStyles:{base:{display:"none"}}}),this.__dropin=new ho(this.__container,Object.assign({},this.options||{}),e),this.__dropin}getSavedCreditCards(){return this.logIntegrationMode("elements"),q.savedCreditCards}getSavedGooglePayAccounts(){return this.logIntegrationMode("elements"),q.savedGooglePayAccounts}getSavedApplePayAccounts(){return this.logIntegrationMode("elements"),q.savedApplePayAccounts}query(e,t){return this.logIntegrationMode("headless"),Io(e,t)}api(e){return i(this,void 0,void 0,function*(){return this.logIntegrationMode("headless"),(e=>i(void 0,void 0,void 0,function*(){const{operation:t}=e,i=J(),n=vo[t];try{const t=n.createRequest(e),s=yield re(Object.assign({url:t.url,token:i.token,method:n.method},void 0!==t.body&&{body:t.body}));return n.onSuccess?yield n.onSuccess(s.res):s.res}catch(e){const t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_API_UNSUCCESSFUL,{cause:e});throw r.PayrailsLogger.error(t.message,{error:t}),t}}))(e)})}getStoredInstruments(){return this.logIntegrationMode("elements"),q.storedPaymentInstruments}getStoredInstrumentsByPaymentMethod(e){return this.logIntegrationMode("elements"),q.storedPaymentInstruments.filter(t=>t.paymentMethod===e)}getAvailablePaymentMethods(){return this.logIntegrationMode("elements"),q.availablePaymentMethods.map(({paymentMethodCode:e})=>e).filter(e=>!!e)}paymentButton(e){var t;return this.logIntegrationMode("elements"),this.__cardPaymentButton||(this.__cardPaymentButton=new So(e,(null===(t=this.options)||void 0===t?void 0:t.returnInfo)||{})),this.__cardPaymentButton.setDisabled(!1!==e.disabledByDefault),this.__cardForm&&this.__cardPaymentButton.setCardForm(this.__cardForm),this.__cardPaymentButton}paypalButton(e){return this.logIntegrationMode("elements"),this.__paypalButton=new ao(Object.assign({},e)),this.__paypalButton}leanButton(e){return this.logIntegrationMode("elements"),this.__leanButton=new so(e),this.__leanButton}genericRedirectButton(e){return this.logIntegrationMode("elements"),this.__genericRedirectButton=new Vs(e,e.returnInfo),this.__genericRedirectButton}dynamicElement(e){var t;this.logIntegrationMode("elements");const i=q.getFullPaymentMethodConfig(e.paymentMethod.paymentMethodCode);if(!(null===(t=null==i?void 0:i.clientConfig)||void 0===t?void 0:t.instrumentDataSchema))throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_DYNAMIC_ELEMENT_MISSING_CONFIG,{description:`Form schema not found for payment method ${e.paymentMethod.paymentMethodCode}`});const n={schema:i.clientConfig.instrumentDataSchema};return this.__dynamicElementForm=new on(e,n),this.__dynamicElementForm}getSavedPaypalAccounts(){return this.logIntegrationMode("elements"),q.savedPaypalAccounts||[]}logIntegrationMode(e){r.PayrailsLogger.setState({sdk:{integration_mode:e}})}constructor(e,t){var n,s,o;this.vaultClient=e,this.options=t,null===(s=null===(n=null==t?void 0:t.events)||void 0===n?void 0:n.onClientInitialized)||void 0===s||s.call(n,q),o=this.options||{},Fi=o,ye.getEventBus().on("PAYRAILS_CLIENT_SESSION_EXPIRED",()=>i(this,void 0,void 0,function*(){var e;yield null==po?void 0:po(null===(e=this.options)||void 0===e?void 0:e.events)}))}getContainerLayout(e,t,i){const n=[];return i?i.forEach(e=>{n.push(e.length)}):(n.push(1),e&&n.push(1),t?n.push(2):n.push(3)),n}on(e,t){return Ts().on(e,t)}off(e,t){Ts().off(e,t)}binLookup(){return i(this,void 0,void 0,function*(){var e,t;if(!this.__dropin&&!this.__cardForm&&!this.__container)return void console.warn("No container found");let i;return this.__dropin?i=yield this.__dropin.fetchBinLookup():this.__cardForm?i=yield null===(e=this.__cardForm)||void 0===e?void 0:e.fetchBinLookup():this.__container&&(i=yield null===(t=this.__container)||void 0===t?void 0:t.fetchBinLookup(this.__container.bin)),i})}}var Lo,Oo;Ao.preloadCardForm=Ln.preloadCardForm,function(e){e.AUTHORIZE="AUTHORIZE",e.TOKENIZE="TOKENIZE"}(Lo||(Lo={})),exports.PayrailsEnvironment=void 0,(Oo=exports.PayrailsEnvironment||(exports.PayrailsEnvironment={})).TEST="TEST",Oo.PRODUCTION="PRODUCTION";const go=(e,t,i)=>{var n;(null==t?void 0:t.onAuthorizeSuccess)&&e===Lo.AUTHORIZE&&(console.warn("onAuthorizeSuccess is marked as deprecated and will be removed in future releases. Use `onSuccess` instead."),t.onAuthorizeSuccess(i)),null===(n=null==t?void 0:t.onSuccess)||void 0===n||n.call(t,e,i)},Co=(e,t,i)=>{var n;(null==t?void 0:t.onAuthorizeFailed)&&e===Lo.AUTHORIZE&&(console.warn("onAuthorizeFailed is marked as deprecated and will be removed in future releases. Use `onFailed` instead."),t.onAuthorizeFailed(i)),null===(n=null==t?void 0:t.onFailed)||void 0===n||n.call(t,e,i)},To=(e,t)=>i(void 0,void 0,void 0,function*(){if(!t)return Promise.resolve(!0);t.onAuthorizeRequestStart&&e===Lo.AUTHORIZE&&console.warn("onAuthorizeRequestStart is marked as deprecated and will be removed in future releases. Use `onRequestStart` instead.");const i="function"==typeof t.onAuthorizeRequestStart&&e===Lo.AUTHORIZE?t.onAuthorizeRequestStart():Promise.resolve(!0),n="function"==typeof t.onRequestStart?t.onRequestStart(e):Promise.resolve(!0);return Promise.all([i,n]).then(e=>e.every(e=>!0===e))}),Ro=(e,t,i)=>{var n;(null==t?void 0:t.onAuthorizePending)&&e===Lo.AUTHORIZE&&(console.warn("onAuthorizePending is marked as deprecated and will be removed in future releases. Use `onPending` instead."),t.onAuthorizePending(i)),null===(n=null==t?void 0:t.onPending)||void 0===n||n.call(t,e,i)},No=(e,t,n)=>i(void 0,void 0,void 0,function*(){try{const s=yield((e,t,n)=>i(void 0,void 0,void 0,function*(){if(!t)return Promise.resolve(!0);t.onPaymentButtonClicked&&console.warn("onPaymentButtonClicked is marked as deprecated and will be removed in future releases. Use `onButtonClicked` instead.");const i="function"==typeof t.onPaymentButtonClicked&&e===Lo.AUTHORIZE?t.onPaymentButtonClicked(n):Promise.resolve(!0),s="function"==typeof t.onButtonClicked?t.onButtonClicked(e,n):Promise.resolve(!0);return Promise.all([i,s]).then(e=>e.every(e=>!0===e))}))(e,t,n);if(!s){const i=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onButtonClicked resolved to false"});return Co(e,t,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:i.message}),s}}catch(i){const n=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CALLBACK_FAILED,{description:"Callback passed to onButtonClicked threw an error",cause:i});return Co(e,t,{code:exports.AuthorizationFailureReasons.VALIDATION_FAILED,message:n.message}),!1}return!0});class So extends ji{get bin(){var e;return this.selectedInstrument?this.selectedInstrument.data.bin?this.selectedInstrument.data.bin:"":(null===(e=this.cardForm)||void 0===e?void 0:e.bin)||""}constructor(e,t){var i;super("button",{id:"payrails-card-payment-button"}),this.options=e,this.returnInfo=t,this.selectedInstrument=null,this.paymentInstallmentElement=null,this.isLoading=!1,this.disabledByDefault=!0,this.element.innerText=(null===(i=null==e?void 0:e.translations)||void 0===i?void 0:i.label)||this.getDefaultLabel(),this.disabledByDefault="boolean"!=typeof e.disabledByDefault||e.disabledByDefault,this.setDisabled(this.disabledByDefault),this.element.addEventListener("click",this.onPay.bind(this)),this.element.addEventListener("mouseenter",()=>{var e;this.element.classList.contains("disabled")||(this.element.classList.add("hover"),this.setStyles((null===(e=this.options.styles)||void 0===e?void 0:e.hover)||{}))}),this.element.addEventListener("mouseleave",()=>{var e;this.element.classList.contains("disabled")||(this.element.classList.remove("hover"),this.removeStyles((null===(e=this.options.styles)||void 0===e?void 0:e.hover)||{}))}),this.paymentExecutor=new pn(this.returnInfo)}setDisabled(e){var t,i,n,s,o;this.element.classList.contains("disabled")!==e&&(null===(i=null===(t=this.options.events)||void 0===t?void 0:t.onStateChanged)||void 0===i||i.call(t,e?"disabled":"enabled")),this.element.disabled=e,e?(this.element.classList.add("disabled"),(null===(n=this.options.styles)||void 0===n?void 0:n.disabled)&&this.setStyles(this.options.styles.disabled)):(this.element.classList.remove("disabled"),this.removeStyles((null===(s=this.options.styles)||void 0===s?void 0:s.disabled)||{}),(null===(o=this.options.styles)||void 0===o?void 0:o.base)&&this.setStyles(this.options.styles.base))}setSavedCreditCard(e){console.warn("setSavedCreditCard is deprecated, please use setSavedInstrument"),this.setSavedInstrument(e)}setSavedInstrument(e){this.selectedInstrument=e,this.setDisabled(!1)}setStyles(e){var t;const i=Object.assign(Object.assign({},null===(t=this.options.styles)||void 0===t?void 0:t.base),e);Object.keys(i).forEach(e=>{this.element.style[e]=i[e]})}removeStyles(e){var t;const i=Object.keys((null===(t=this.options.styles)||void 0===t?void 0:t.base)||{});Object.keys(e).forEach(e=>{var t,n;i.includes(e)?this.element.style[e]=null===(n=null===(t=this.options.styles)||void 0===t?void 0:t.base)||void 0===n?void 0:n[e]:this.element.style[e]=""})}setLabel(e){this.element.innerText=e}get showAmountAndCurrency(){var e,t;const i=null===(t=null===(e=J())||void 0===e?void 0:e.morData)||void 0===t?void 0:t.taxLines;return Array.isArray(i)&&i.length>0}getDefaultLabel(){if(!this.showAmountAndCurrency)return"Pay";const e=J(),t=null==e?void 0:e.amount;return(null==t?void 0:t.value)&&(null==t?void 0:t.currency)?`Pay ${ls(t.value,t.currency)}`:"Pay"}setCardForm(e){this.cardForm=e}setPaymentInstallmentsDropdown(e){this.paymentInstallmentElement=e}triggerLoading(e){var t,i,n,s;const o=this.element.offsetWidth;this.element.style.minWidth=`${o}px`,this.isLoading=e,e?(this.element.innerHTML='<div class="dot-flashing"></div>',this.element.classList.add("loading"),(null===(t=this.options.styles)||void 0===t?void 0:t.loading)&&this.setStyles(this.options.styles.loading)):(this.element.innerText=(null===(n=null===(i=this.options)||void 0===i?void 0:i.translations)||void 0===n?void 0:n.label)||this.getDefaultLabel(),this.element.classList.remove("loading"),this.removeStyles((null===(s=this.options.styles)||void 0===s?void 0:s.loading)||{}))}onAuthorizationFailed(e){this.setDisabled(!1),this.triggerLoading(!1),Co(Lo.AUTHORIZE,this.options.events,e)}onPay(){return i(this,void 0,void 0,function*(){var e,t,i,n,s,a,l,d,c,u,h,p,_,E;let m;if(this.setDisabled(!0),this.triggerLoading(!0),!(null===(e=this.selectedInstrument)||void 0===e?void 0:e.id)){const e=yield null===(t=this.cardForm)||void 0===t?void 0:t.validate();if(m=!!(null==e?void 0:e.isValid),null===(n=null===(i=this.options.events)||void 0===i?void 0:i.onValidate)||void 0===n||n.call(i,{isValid:!!m,error:null==e?void 0:e.error,fieldErrors:null==e?void 0:e.fieldErrors}),!m)return this.setDisabled(!1),void this.triggerLoading(!1)}if(m=yield No(Lo.AUTHORIZE,this.options.events,{bin:this.bin||""}),!m)return this.setDisabled(!1),void this.triggerLoading(!1);try{let e=[{paymentMethodCode:exports.PAYMENT_METHOD_CODES.CARD,integrationType:"api",amount:J().amount,storeInstrument:!1}];if(null===(s=this.selectedInstrument)||void 0===s?void 0:s.id)e[0].paymentInstrumentId=null===(a=this.selectedInstrument)||void 0===a?void 0:a.id,e[0].paymentMethodCode=null===(l=this.selectedInstrument)||void 0===l?void 0:l.paymentMethod,this.paymentInstallmentElement&&(null===(d=this.paymentInstallmentElement)||void 0===d?void 0:d.selectedInstallmentValue)&&(e[0].installments={count:null===(c=this.paymentInstallmentElement)||void 0===c?void 0:c.selectedInstallmentValue});else{if(!this.cardForm){const e=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CARD_FORM_MISSING);throw r.PayrailsLogger.error(e.message,{error:e}),e}e=yield this.constructEncryptedPayment(e)}const t=yield this.paymentExecutor.pay(e);yield this.handleAuthorizationResult(t)}catch(e){let t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_API_AUTHENTICATION_ERROR,{cause:e});e instanceof ae||[401,403].includes(null===(u=null==e?void 0:e.error)||void 0===u?void 0:u.code)?(null===(p=null===(h=this.options.events)||void 0===h?void 0:h.onPaymentSessionExpired)||void 0===p||p.call(h),t.message="API token is not valid or expired.",r.PayrailsLogger.error(t.message,{error:t}),this.onAuthorizationFailed({code:exports.AuthorizationFailureReasons.AUTHENTICATION_ERROR,message:t.message})):e.toString().includes("Invalid token")?(null===(E=null===(_=this.options.events)||void 0===_?void 0:_.onPaymentSessionExpired)||void 0===E||E.call(_),t.message="Vault token is not valid or expired.",r.PayrailsLogger.error(t.message,{error:t})):t=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_API_UNKNOWN_ERROR,{cause:e}),this.onAuthorizationFailed({code:exports.AuthorizationFailureReasons.AUTHENTICATION_ERROR,message:t.message})}})}constructEncryptedPayment(e){return i(this,void 0,void 0,function*(){if(!this.cardForm)throw new o.PayrailsError(o.ERROR_CODES.PAYRAILS_CLIENT_CARD_FORM_MISSING);const{cardData:t,storeInstrument:i,enrollInstrumentToNetworkOffers:n,selectedInstallment:s,billingInfo:r}=yield this.cardForm.collectValues();return e[0].paymentInstrumentData=Object.assign(Object.assign({},t),{billingAddress:r}),e[0].storeInstrument=i,e[0].enrollInstrumentToNetworkOffers=n,s&&(e[0].installments={count:s}),e})}updateStyles(e){this.options.styles&&(this.options.styles=Object.assign(Object.assign({},this.options.styles),e)),this.isLoading?this.setStyles((null==e?void 0:e.loading)||{}):this.setStyles((null==e?void 0:e.base)||{})}updateTranslations(e){this.options.translations&&(this.options.translations=Object.assign(Object.assign({},this.options.translations),e)),(null==e?void 0:e.label)&&this.setLabel(e.label)}updateEvents(e){this.options.events&&(this.options.events=Object.assign(Object.assign({},this.options.events),e))}update(e){e.styles&&this.updateStyles(e.styles),e.translations&&this.updateTranslations(e.translations),e.events&&this.updateEvents(e.events)}handleAuthorizationResult(e){return i(this,void 0,void 0,function*(){var t,i,n,s,r,a,l;let d;switch(null===(t=null==e?void 0:e.finalState)||void 0===t?void 0:t.code){case"authorizeSuccessful":this.triggerLoading(!1),go(Lo.AUTHORIZE,this.options.events);break;case"authorizePending":if("3ds"===(null===(i=null==e?void 0:e.response)||void 0===i?void 0:i.actionRequired)){const t=new zs(Object.assign(Object.assign({},this.options),{paymentMethodCode:exports.PAYMENT_METHOD_CODES.CARD,events:Object.assign(Object.assign({},this.options.events),{onAuthorizeFailed:e=>{this.onAuthorizationFailed(e)}})}),this.paymentExecutor);yield t.handle3ds(e)}else(null===(n=null==e?void 0:e.response)||void 0===n?void 0:n.actionRequired)||(this.triggerLoading(!1),Ro(Lo.AUTHORIZE,this.options.events));break;default:d=new o.PayrailsError(o.ERROR_CODES.PAYRAILS_API_AUTHORIZATION_ERROR),this.onAuthorizationFailed({code:exports.AuthorizationFailureReasons.AUTHORIZATION_ERROR,message:(null===(l=null===(a=null===(r=null===(s=e.finalState)||void 0===s?void 0:s.errors)||void 0===r?void 0:r[0])||void 0===a?void 0:a.reason)||void 0===l?void 0:l.result)||d.message})}})}}var bo;exports.AuthorizationFailureReasons=void 0,(bo=exports.AuthorizationFailureReasons||(exports.AuthorizationFailureReasons={})).VALIDATION_FAILED="VALIDATION_FAILED",bo.AUTHORIZATION_ERROR="AUTHORIZATION_ERROR",bo.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",bo.UNKNOWN_ERROR="UNKNOWN_ERROR",bo.USER_CANCELLED="USER_CANCELLED",exports.Payrails=Ao,exports.PayrailsCollectContainer=ve,exports.REVOLUT_PAY_DEFAULT_LABEL=ks,exports.REVOLUT_PAY_DEFAULT_THEME=ws}();