xendit-components-web 0.0.17 → 0.0.18
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/CHANGELOG.md +10 -0
- package/README.md +2 -2
- package/package.json +1 -1
- package/sdk/dist/cjs/index.cjs +1 -1
- package/sdk/dist/cjs/index.cjs.map +1 -1
- package/sdk/dist/cjs/test-data.cjs +1 -1
- package/sdk/dist/cjs/test-data.cjs.map +1 -1
- package/sdk/dist/esm-bundled/index.mjs +2 -2
- package/sdk/dist/esm-bundled/index.mjs.map +1 -1
- package/sdk/dist/esm-bundled/test-data.mjs +1 -1
- package/sdk/dist/esm-bundled/test-data.mjs.map +1 -1
- package/sdk/dist/esm-external/index.mjs +1 -1
- package/sdk/dist/esm-external/index.mjs.map +1 -1
- package/sdk/dist/esm-external/test-data.mjs +1 -1
- package/sdk/dist/esm-external/test-data.mjs.map +1 -1
- package/sdk/dist/index.umd.js +2 -2
- package/sdk/dist/index.umd.js.map +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! Copyright (c) 2026 Xendit Inc. Licensed under the MIT License (MIT). */
|
|
2
|
-
"use strict";var e=require("./index.cjs");require("preact/debug"),require("preact/devtools"),require("preact/jsx-runtime"),require("preact"),require("preact/hooks"),require("classnames"),require("libphonenumber-js"),require("libphonenumber-js/min"),require("libphonenumber-js/mobile/examples"),require("preact/compat"),require("qrcode"),require("qrcode/lib/renderer/svg-tag.js");exports.makeTestBffData=function(){const a=(new Date).toISOString(),n=new Date(Date.now()+2592e6).toISOString();return{session:{payment_session_id:`ps-${e.randomHexString(24)}`,created:a,updated:a,status:"ACTIVE",reference_id:e.randomUUID(),description:"Test session",currency:"IDR",amount:1e4,country:"ID",expires_at:n,session_type:"PAY",mode:"COMPONENTS",locale:"en",business_id:e.randomHexString(24),customer_id:`cust-${e.randomUUID()}`,capture_method:"AUTOMATIC",allow_save_payment_method:"OPTIONAL",items:[{reference_id:e.randomUUID(),type:"DIGITAL_PRODUCT",name:"Item 1",net_unit_amount:5e4,quantity:1,category:""},{reference_id:e.randomUUID(),type:"DIGITAL_SERVICE",name:"Item 2",net_unit_amount:5e4,quantity:1,category:""}]},business:{name:"Components Mock Merchant",country_of_operation:"Indonesia",merchant_profile_picture_url:"https://placehold.co/256x256.png?text=Logo"},customer:{type:"INDIVIDUAL",id:`cust-${e.randomUUID()}`,email:"exa**@example.com",mobile_number:null,phone_number:null,individual_detail:{given_names:"exa********",surname:null},business_detail:null},channels:[{brand_name:"Cards",channel_code:"CARDS",brand_logo_url:"https://assets.xendit.co/payment-session/logos/CARDS.svg",ui_group:"cards",allow_pay_without_save:!0,allow_save:!0,brand_color:"#000000",min_amount:5e3,max_amount:2e8,requires_customer_details:!1,_mock_action_type:"IFRAME",card:{brands:[{name:"VISA",logo_url:"https://assets.xendit.co/payment-session/logos/VISA.svg"},{name:"MASTERCARD",logo_url:"https://assets.xendit.co/payment-session/logos/MASTERCARD.svg"},{name:"JCB",logo_url:"https://assets.xendit.co/payment-session/logos/JCB.svg"}]},form:[{group_label:"Card Details",label:"Card Number",placeholder:"1234 1234 1234 1234",type:{name:"credit_card_number"},channel_property:"card_details.card_number",required:!0,span:2},{label:"Card Expiry Date",placeholder:"MM/YY",type:{name:"credit_card_expiry"},channel_property:["card_details.expiry_month","card_details.expiry_year"],required:!0,span:1,join:!0},{label:"CVN",placeholder:"CVV",type:{name:"credit_card_cvn"},channel_property:"card_details.cvn",required:!0,span:1,join:!0},{group_label:"Cardholder Name",label:"First Name",placeholder:"First Name",type:{name:"text",min_length:1,max_length:50,regex_validators:[{regex:"/^[a-zA-Z\\u00C0-\\u017F\\s]+$/",message:"Invalid input. Please use alphabetic characters only"}]},channel_property:"card_details.cardholder_first_name",required:!0,span:1},{label:"Last Name",placeholder:"Last Name",type:{name:"text",min_length:1,max_length:50,regex_validators:[{regex:"/^[ -~]+$/",message:"Invalid input. Please use alphabetic characters only"}]},channel_property:"card_details.cardholder_last_name",required:!0,span:1},{label:"Email",placeholder:"john.doe@example.com",type:{name:"email"},channel_property:"card_details.cardholder_email",required:!0,span:2},{label:"Mobile Number",placeholder:"8000032341",type:{name:"phone_number"},channel_property:"card_details.cardholder_phone_number",required:!0,span:2},{label:"Installment plan",placeholder:"Select installment plan",type:{name:"installment_plan"},channel_property:["installment_configuration.terms","installment_configuration.interval","installment_configuration.code"],required:!1,span:2},{group_label:"Billing Address",label:"First Name",placeholder:"First Name",type:{name:"text",max_length:255},channel_property:"billing_information.first_name",span:1,required:!0,flags:{require_billing_information:!0}},{label:"Last Name",placeholder:"Last Name",type:{name:"text",max_length:255},channel_property:"billing_information.last_name",span:1,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Email",placeholder:"Email",type:{name:"text",max_length:255},channel_property:"billing_information.email",span:2,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Country",placeholder:"Country",type:{name:"country"},channel_property:"billing_information.country",span:1,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Province",placeholder:"State / Province",type:{name:"province"},channel_property:"billing_information.province_state",span:1,required:!0,flags:{require_billing_information:!0},join:!0},{label:"City",placeholder:"City",type:{name:"text",max_length:255},channel_property:"billing_information.city",span:2,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Address Line 1",placeholder:"Address Line 1",type:{name:"text",max_length:255},channel_property:"billing_information.street_line1",span:2,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Address Line 2",placeholder:"Address Line 2",type:{name:"text",max_length:255},channel_property:"billing_information.street_line2",span:2,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Postal Code",placeholder:"Postal Code",type:{name:"postal_code"},channel_property:"billing_information.postal_code",span:2,required:!0,flags:{require_billing_information:!0},join:!0}],instructions:["Mock Cards channel","This mock channel behaves similarly to the production CARDS channel."]},{brand_name:"Mock E-Wallet Channel (Redirect action)",channel_code:"MOCK_EWALLET",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"REDIRECT",form:[],instructions:["Mock E-Wallet channel","This mock channel has a redirect action."]},{brand_name:"Mock E-Wallet Channel (Redirect and Paylink actions)",channel_code:"MOCK_EWALLET_PAYLINK",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:["REDIRECT","PAYLINK"],form:[],instructions:["Mock E-Wallet channel","This mock channel has a redirect and a paylink action."]},{brand_name:"Mock E-Wallet Channel (Iframe action)",channel_code:"MOCK_EWALLET_IFRAME",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"IFRAME",form:[],instructions:["Mock E-Wallet channel","This mock channel has as iframe action."]},{brand_name:"Mock E-Wallet Channel (Deeplink action)",channel_code:"MOCK_EWALLET_DEEP_LINK",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"DEEP_LINK",form:[],instructions:["Mock E-Wallet channel","This mock channel has a deeplink action."]},{brand_name:"Mock E-Wallet Channel (Push notification action)",channel_code:"MOCK_EWALLET_PUSH_NOTIFICATION",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"PUSH_NOTIFICATION",form:[],instructions:["Mock E-Wallet channel","This mock channel has a deeplink action."]},{brand_name:"Mock E-Wallet Channel (Phone input)",channel_code:"MOCK_EWALLET_WITH_PHONE",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"REDIRECT",form:[{label:"Phone Number",placeholder:"123 123 132",type:{name:"phone_number"},channel_property:"phone_number_field",required:!0,span:2}],instructions:["Mock E-Wallet channel","This mock channel behaves similarly to production E-Wallets channels with a phone number input."]},{brand_name:"Mock QR Channel",channel_code:"MOCK_QR",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"QR",form:[],instructions:["Mock QR channel","This mock channel behaves similarly to production QR channels."],pm_type:"QR_CODE"},{brand_name:"Mock Direct Debit Channel",channel_code:"MOCK_DIRECT_DEBIT",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[],instructions:["Mock Direct Debit channel","This mock channel behaves similarly to production Direct Debit channels."]},{brand_name:"Mock FPX Business Channel",channel_code:"MOCK_FPX_BUSINESS",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"PENDING",form:[],instructions:["Mock FPX channel","This mock channel behaves similarly to production FPX channels. It has a banner and it will enter the pending state after submission."],banner:{image_url:"https://assets.xendit.co/payment-session/banners/fpx-banner.svg",alt_text:"FPX Pay with Online Banking",aspect_ratio:9.7}},{brand_name:"Mock OTC Channel",channel_code:"MOCK_OTC",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"BARCODE",form:[{label:"Payer Name",placeholder:"Payer Name",type:{name:"text",max_length:50},channel_property:"payer_name",required:!0,span:2}],instructions:["Mock OTC channel","This mock channel behaves similarly to production OTC channels."]},{brand_name:"Mock VA Channel",channel_code:"MOCK_VA",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"VA",form:[],instructions:["Mock VA channel","This mock channel behaves similarly to production VA channels."]},{brand_name:"Mock Installments Channel",channel_code:"MOCK_INSTALLMENTS",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"Installment plan",placeholder:"Select installment plan",type:{name:"installment_plan"},channel_property:["installment_configuration.terms","installment_configuration.interval","installment_configuration.code"],required:!1,span:2}],instructions:["Mock Installments channel","This mock channel behaves similarly to production installment channels in Thailand."]},{brand_name:"Input Test",channel_code:"UI_INPUT_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"Card Number (Iframe)",placeholder:"1234 1234 1234 1234",type:{name:"credit_card_number"},channel_property:"card_number",required:!1,span:2},{label:"Card Expiry Date (Iframe)",placeholder:"MM/YY",type:{name:"credit_card_expiry"},channel_property:["expiry_month","expiry_year"],required:!1,span:2},{label:"CVN (Iframe)",placeholder:"CVV",type:{name:"credit_card_cvn"},channel_property:"cvn",required:!1,span:2},{label:"Text",placeholder:"Text",type:{name:"text",max_length:50},channel_property:"text_field",required:!1,span:2},{label:"Phone Number",placeholder:"123 123 123",type:{name:"phone_number"},channel_property:"phone_number_field",required:!1,span:2},{label:"Email",placeholder:"test@example.com",type:{name:"email"},channel_property:"email_field",required:!1,span:2},{label:"Postal Code",placeholder:"123456",type:{name:"postal_code"},channel_property:"postal_code_field",required:!1,span:2},{label:"Country",placeholder:"Select",type:{name:"country"},channel_property:"country_field",required:!1,span:2},{label:"Dropdown",placeholder:"Select",type:{name:"dropdown",options:[{label:"Option 1",value:"option_1"},{label:"Option 2",value:"option_2"},{label:"Option 3",value:"option_3"},{label:"Option 4",value:"option_4",subtitle:"With subtitle"},{label:"Option 5",value:"option_5",subtitle:"With subtitle"}]},channel_property:"dropdown_field",required:!1,span:2},{label:"Dropdown With Icons",placeholder:"Select",type:{name:"dropdown",options:[{label:"Option 1",value:"option_1",icon_url:"https://placehold.co/16"},{label:"Option 2",value:"option_2",icon_url:"https://placehold.co/16"},{label:"Option 3",value:"option_3",icon_url:"https://placehold.co/16"}]},channel_property:"dropdown_field_with_icons",required:!1,span:2}],instructions:["This test demonstrates basic usage of all input types.","All fields here are optional and blank values should pass validation."]},{brand_name:"Field Grouping Test",channel_code:"UI_FIELD_GROUPING_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{group_label:"Vertical Grouping",label:"Top",placeholder:"Top",type:{name:"text",max_length:50},channel_property:"a1",required:!1,span:2},{label:"Middle",placeholder:"Middle",type:{name:"text",max_length:50},channel_property:"a2",required:!1,span:2,join:!0},{label:"Bottom",placeholder:"Bottom",type:{name:"text",max_length:50},channel_property:"a3",required:!1,span:2,join:!0},{group_label:"Horizontal Grouping",label:"Text",placeholder:"Left",type:{name:"text",max_length:50},channel_property:"b1",required:!1,span:1},{label:"Text",placeholder:"Right",type:{name:"text",max_length:50},channel_property:"b1",required:!1,span:1,join:!0},{group_label:"Mixed Grouping",label:"Text",placeholder:"Top Left",type:{name:"text",max_length:50},channel_property:"c1",required:!1,span:1},{label:"Text",placeholder:"Top Right",type:{name:"text",max_length:50},channel_property:"c2",required:!1,span:1,join:!0},{label:"Text",placeholder:"Middle Left",type:{name:"text",max_length:50},channel_property:"c3",required:!1,span:1,join:!0},{label:"Text",placeholder:"Middle Right",type:{name:"text",max_length:50},channel_property:"c4",required:!1,span:1,join:!0},{label:"Text",placeholder:"Bottom Left",type:{name:"text",max_length:50},channel_property:"c5",required:!1,span:1,join:!0},{label:"Text",placeholder:"Bottom Right",type:{name:"text",max_length:50},channel_property:"c6",required:!1,span:1,join:!0}],instructions:["This test demonstrates field grouping.","Fields can be 1 or 2 cells wide and can be grouped in any arrangement."]},{brand_name:"Text Validation Test",channel_code:"UI_TEXT_VALIDATION_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"Required Text Field",placeholder:"Required",type:{name:"text",max_length:50},channel_property:"required",required:!0,span:2},{label:"Validate Minimum Length (5)",placeholder:"Min 5 characters",type:{name:"text",min_length:5,max_length:50},channel_property:"min_5_chars",required:!1,span:2},{label:"Validate Using Regexp (/^[a-zA-Z0-9]+$/)",placeholder:"Alphanumeric only",type:{name:"text",max_length:50,regex_validators:[{regex:"/^[a-zA-Z0-9]+$/",message:"Invalid input. Please use alphanumeric characters only"}]},channel_property:"regexp_validation",required:!1,span:2}],instructions:["This test demonstrates text field validation.","Fields should validate on blur or `submit()` or `revealValidationErrors()`. Blurring a blank field does not trigger validation."]},{brand_name:"State/Province Field Test",channel_code:"UI_STATE_PROVINCE_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{group_label:"Country + State/Province Fields",label:"Country",placeholder:"Country",type:{name:"country"},channel_property:"country_field",required:!0,span:2},{label:"State / Province",placeholder:"State / Province",type:{name:"province"},channel_property:"province_field",required:!0,span:2,join:!0},{group_label:"Country + State/Province Fields (Horizontal Grouping)",label:"Country",placeholder:"Country",type:{name:"country"},channel_property:"country_field_2",required:!0,span:1},{label:"State / Province",placeholder:"State / Province",type:{name:"province"},channel_property:"province_field_2",required:!0,span:1,join:!0}],instructions:["This test demonstrates the country + state/province field combination.","Selecting certain countries (US, CA, GB) should change the state/province field to a dropdown with predefined options."]},{brand_name:"Conditional Field Test",channel_code:"UI_CONDITIONAL_FIELD_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"Toggle Hidden Field",placeholder:"Select",type:{name:"dropdown",options:[{label:"Show",value:"show"},{label:"Hide",value:"hide"}]},channel_property:"toggle",required:!0,span:2},{label:"Conditional Field",placeholder:"This field is conditionally shown",type:{name:"text",max_length:50},channel_property:"conditional_field",required:!0,span:2,join:!0,display_if:[["toggle","equals","show"]]}],instructions:["This test demonstrates conditional field display based on another field's value.","The second field should only appear if 'Show' is selected in the first field."]},{brand_name:"Save Payment Details Test",channel_code:"UI_SAVE_PAYMENT_DETAILS_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!0,allow_save:!0,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[],instructions:["This channel supports both one-time payment and pay-and-save.","A checkbox should be displayed."]},{brand_name:"Paired Channels Test",channel_code:"UI_PAIRED_CHANNELS_TEST_1",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!0,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"This should show if the save checkbox is unchecked",placeholder:"Unchecked",type:{name:"text",max_length:50},channel_property:"nonsave",required:!1,span:2}],instructions:["This channel does not support save, but has a paired channel that does.","Changing the save checkbox switches between the two channels."]},{brand_name:"Paired Channels Test",channel_code:"UI_PAIRED_CHANNELS_TEST_2",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!0,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"This should show if the save checkbox is checked",placeholder:"Checked",type:{name:"text",max_length:50},channel_property:"save",required:!1,span:2}],instructions:["This channel can only be used for pay-and-save, but has a paired channel that supports one time payment.","Changing the save checkbox switches between the two channels."]},{brand_name:"Banner Test",channel_code:"UI_BANNER_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!0,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,banner:{image_url:"https://placehold.co/512x32.svg?text=Banner",alt_text:"",aspect_ratio:16},form:[],instructions:["This channel has a banner image.","It should be displayed above this text."]},{brand_name:"Single Item Test",channel_code:"GROUP_SINGLE_ITEM_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"single_item",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[],instructions:["This channel is in a group by itself.","The channel picker should automatically select it when the group is opened."]},{brand_name:"Disabled Group Test",channel_code:"GROUP_DISABLED_GROUP_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"disabled",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:999999999,max_amount:9999999999,requires_customer_details:!1,form:[],instructions:["This channel is in a disabled group.","Since all channels in this group are disabled, the group should not be selectable. You should never see this text because creating this channel will throw an error."]},{brand_name:"Partial Disabled Group (Enabled)",channel_code:"GROUP_PARTIAL_DISABLED_1",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"partial_disabled",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[],instructions:["This channel is in a partially disabled group.","This channel is enabled, but the other channel in the group is disabled. This channel should be automatically selected by the channel picker because it's the only enabled option."]},{brand_name:"Partial Disabled Group (Disabled)",channel_code:"GROUP_PARTIAL_DISABLED_2",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"partial_disabled",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:999999999,max_amount:9999999999,requires_customer_details:!1,form:[],instructions:["This channel is in a partially disabled group.","This channel is disabled. You should never see this text because creating this channel will throw an error."]}],channel_ui_groups:[{id:"cards",label:"Mock Cards",icon_url:"https://assets.xendit.co/payment-session/logos/CARDS.svg"},{id:"other",label:"Other Mock Channels",icon_url:"https://placehold.co/48x48.png?text=Logo"},{id:"ui_tests",label:"Channel UI Test Cases",icon_url:"https://placehold.co/48x48.png?text=Logo"},{id:"single_item",label:"Mock Single Item Group",icon_url:"https://placehold.co/48x48.png?text=Logo"},{id:"disabled",label:"Mock Disabled Group",icon_url:"https://placehold.co/48x48.png?text=Logo"},{id:"partial_disabled",label:"Mock Partial Disabled Group",icon_url:"https://placehold.co/48x48.png?text=Logo"}],digital_wallets:{google_pay:{merchant_id:"mock-googlepay-merchant-id",allowed_payment_methods:[{channel_code:"CARDS",payment_request_id:`pr-${e.randomHexString(32)}`,payment_method_specification:{type:"CARD",parameters:{billingAddressRequired:!0,allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:["AMEX","MASTERCARD","VISA"]},tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"xendit",gatewayMerchantId:"exampleGatewayMerchantId"}}}}]}}}};
|
|
2
|
+
"use strict";var e=require("./index.cjs");require("preact/debug"),require("preact/devtools"),require("preact"),require("preact/jsx-runtime"),require("preact/hooks"),require("classnames"),require("libphonenumber-js"),require("libphonenumber-js/min"),require("libphonenumber-js/mobile/examples"),require("preact/compat"),require("qrcode"),require("qrcode/lib/renderer/svg-tag.js");exports.makeTestBffData=function(){const a=(new Date).toISOString(),n=new Date(Date.now()+2592e6).toISOString();return{session:{payment_session_id:`ps-${e.randomHexString(24)}`,created:a,updated:a,status:"ACTIVE",reference_id:e.randomUUID(),description:"Test session",currency:"IDR",amount:1e4,country:"ID",expires_at:n,session_type:"PAY",mode:"COMPONENTS",locale:"en",business_id:e.randomHexString(24),customer_id:`cust-${e.randomUUID()}`,capture_method:"AUTOMATIC",allow_save_payment_method:"OPTIONAL",items:[{reference_id:e.randomUUID(),type:"DIGITAL_PRODUCT",name:"Item 1",net_unit_amount:5e4,quantity:1,category:""},{reference_id:e.randomUUID(),type:"DIGITAL_SERVICE",name:"Item 2",net_unit_amount:5e4,quantity:1,category:""}]},business:{name:"Components Mock Merchant",country_of_operation:"Indonesia",merchant_profile_picture_url:"https://placehold.co/256x256.png?text=Logo"},customer:{type:"INDIVIDUAL",id:`cust-${e.randomUUID()}`,email:"exa**@example.com",mobile_number:null,phone_number:null,individual_detail:{given_names:"exa********",surname:null},business_detail:null},channels:[{brand_name:"Cards",channel_code:"CARDS",brand_logo_url:"https://assets.xendit.co/payment-session/logos/CARDS.svg",ui_group:"cards",pm_type:"CARDS",allow_pay_without_save:!0,allow_save:!0,brand_color:"#000000",min_amount:5e3,max_amount:2e8,requires_customer_details:!1,_mock_action_type:"IFRAME",card:{brands:[{name:"VISA",logo_url:"https://assets.xendit.co/payment-session/logos/VISA.svg"},{name:"MASTERCARD",logo_url:"https://assets.xendit.co/payment-session/logos/MASTERCARD.svg"},{name:"JCB",logo_url:"https://assets.xendit.co/payment-session/logos/JCB.svg"}]},form:[{group_label:"Card Details",label:"Card Number",placeholder:"1234 1234 1234 1234",type:{name:"credit_card_number"},channel_property:"card_details.card_number",required:!0,span:2},{label:"Card Expiry Date",placeholder:"MM/YY",type:{name:"credit_card_expiry"},channel_property:["card_details.expiry_month","card_details.expiry_year"],required:!0,span:1,join:!0},{label:"CVN",placeholder:"CVV",type:{name:"credit_card_cvn"},channel_property:"card_details.cvn",required:!0,span:1,join:!0},{group_label:"Cardholder Name",label:"First Name",placeholder:"First Name",type:{name:"text",min_length:1,max_length:50,regex_validators:[{regex:"/^[a-zA-Z\\u00C0-\\u017F\\s]+$/",message:"Invalid input. Please use alphabetic characters only"}]},channel_property:"card_details.cardholder_first_name",required:!0,span:1},{label:"Last Name",placeholder:"Last Name",type:{name:"text",min_length:1,max_length:50,regex_validators:[{regex:"/^[ -~]+$/",message:"Invalid input. Please use alphabetic characters only"}]},channel_property:"card_details.cardholder_last_name",required:!0,span:1},{label:"Email",placeholder:"john.doe@example.com",type:{name:"email"},channel_property:"card_details.cardholder_email",required:!0,span:2},{label:"Mobile Number",placeholder:"8000032341",type:{name:"phone_number"},channel_property:"card_details.cardholder_phone_number",required:!0,span:2},{label:"Installment plan",placeholder:"Select installment plan",type:{name:"installment_plan"},channel_property:["installment_configuration.terms","installment_configuration.interval","installment_configuration.code"],required:!1,span:2},{group_label:"Billing Address",label:"First Name",placeholder:"First Name",type:{name:"text",max_length:255},channel_property:"billing_information.first_name",span:1,required:!0,flags:{require_billing_information:!0}},{label:"Last Name",placeholder:"Last Name",type:{name:"text",max_length:255},channel_property:"billing_information.last_name",span:1,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Email",placeholder:"Email",type:{name:"text",max_length:255},channel_property:"billing_information.email",span:2,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Country",placeholder:"Country",type:{name:"country"},channel_property:"billing_information.country",span:1,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Province",placeholder:"State / Province",type:{name:"province"},channel_property:"billing_information.province_state",span:1,required:!0,flags:{require_billing_information:!0},join:!0},{label:"City",placeholder:"City",type:{name:"text",max_length:255},channel_property:"billing_information.city",span:2,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Address Line 1",placeholder:"Address Line 1",type:{name:"text",max_length:255},channel_property:"billing_information.street_line1",span:2,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Address Line 2",placeholder:"Address Line 2",type:{name:"text",max_length:255},channel_property:"billing_information.street_line2",span:2,required:!0,flags:{require_billing_information:!0},join:!0},{label:"Postal Code",placeholder:"Postal Code",type:{name:"postal_code"},channel_property:"billing_information.postal_code",span:2,required:!0,flags:{require_billing_information:!0},join:!0}],instructions:["Mock Cards channel","This mock channel behaves similarly to the production CARDS channel."]},{brand_name:"Mock E-Wallet Channel (Redirect action)",channel_code:"MOCK_EWALLET",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"EWALLET",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"REDIRECT",form:[],instructions:["Mock E-Wallet channel","This mock channel has a redirect action."]},{brand_name:"Mock E-Wallet Channel (Redirect and Paylink actions)",channel_code:"MOCK_EWALLET_PAYLINK",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"EWALLET",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:["REDIRECT","PAYLINK"],form:[],instructions:["Mock E-Wallet channel","This mock channel has a redirect and a paylink action."]},{brand_name:"Mock E-Wallet Channel (Iframe action)",channel_code:"MOCK_EWALLET_IFRAME",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"EWALLET",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"IFRAME",form:[],instructions:["Mock E-Wallet channel","This mock channel has as iframe action."]},{brand_name:"Mock E-Wallet Channel (Deeplink action)",channel_code:"MOCK_EWALLET_DEEP_LINK",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"EWALLET",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"DEEP_LINK",form:[],instructions:["Mock E-Wallet channel","This mock channel has a deeplink action."]},{brand_name:"Mock E-Wallet Channel (Push notification action)",channel_code:"MOCK_EWALLET_PUSH_NOTIFICATION",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"EWALLET",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"PUSH_NOTIFICATION",form:[],instructions:["Mock E-Wallet channel","This mock channel shows a message prompting the user to tap a push notification."]},{brand_name:"Mock E-Wallet Channel (Phone input)",channel_code:"MOCK_EWALLET_WITH_PHONE",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"EWALLET",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"REDIRECT",form:[{label:"Phone Number",placeholder:"123 123 132",type:{name:"phone_number"},channel_property:"phone_number_field",required:!0,span:2}],instructions:["Mock E-Wallet channel","This mock channel behaves similarly to production E-Wallets channels with a phone number input."]},{brand_name:"Mock QR Channel",channel_code:"MOCK_QR",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"QR_CODE",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"QR",form:[],instructions:["Mock QR channel","This mock channel behaves similarly to production QR channels."]},{brand_name:"Mock QR Channel (Custom Art)",channel_code:"MOCK_QR_CUSTOM_ART",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"QR_CODE",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"QR",form:[{label:"QR Style",placeholder:"Select",type:{name:"dropdown",options:[{label:"QRIS",value:"ID.CO.QRIS.WWW"},{label:"SGQR",value:"SG.SGQR"},{label:"Duitnow QR",value:"A0000006150001"}]},channel_property:"mock_emvco_qr_field_26_00",required:!1,span:2}],instructions:["Mock QR channel","This mock channel has a QR action with branded layouts. You can choose what branded layout to use."]},{brand_name:"Mock Direct Debit Channel",channel_code:"MOCK_DIRECT_DEBIT",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"DIRECT_DEBIT",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[],instructions:["Mock Direct Debit channel","This mock channel behaves similarly to production Direct Debit channels."]},{brand_name:"Mock FPX Business Channel",channel_code:"MOCK_FPX_BUSINESS",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"ONLINE_BANKING",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"PENDING",form:[],instructions:["Mock FPX channel","This mock channel behaves similarly to production FPX channels. It has a banner and it will enter the pending state after submission."],banner:{image_url:"https://assets.xendit.co/payment-session/banners/fpx-banner.svg",alt_text:"FPX Pay with Online Banking",aspect_ratio:9.7}},{brand_name:"Mock OTC Channel",channel_code:"MOCK_OTC",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"OVER_THE_COUNTER",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"BARCODE",form:[{label:"Payer Name",placeholder:"Payer Name",type:{name:"text",max_length:50},channel_property:"payer_name",required:!0,span:2}],instructions:["Mock OTC channel","This mock channel behaves similarly to production OTC channels."]},{brand_name:"Mock VA Channel",channel_code:"MOCK_VA",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"VIRTUAL_ACCOUNT",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,_mock_action_type:"VA",form:[],instructions:["Mock VA channel","This mock channel behaves similarly to production VA channels."]},{brand_name:"Mock Installments Channel",channel_code:"MOCK_INSTALLMENTS",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"other",pm_type:"CARDS_INSTALLMENT",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"Installment plan",placeholder:"Select installment plan",type:{name:"installment_plan"},channel_property:["installment_configuration.terms","installment_configuration.interval","installment_configuration.code"],required:!1,span:2}],instructions:["Mock Installments channel","This mock channel behaves similarly to production installment channels in Thailand."]},{brand_name:"Input Test",channel_code:"UI_INPUT_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"Card Number (Iframe)",placeholder:"1234 1234 1234 1234",type:{name:"credit_card_number"},channel_property:"card_number",required:!1,span:2},{label:"Card Expiry Date (Iframe)",placeholder:"MM/YY",type:{name:"credit_card_expiry"},channel_property:["expiry_month","expiry_year"],required:!1,span:2},{label:"CVN (Iframe)",placeholder:"CVV",type:{name:"credit_card_cvn"},channel_property:"cvn",required:!1,span:2},{label:"Text",placeholder:"Text",type:{name:"text",max_length:50},channel_property:"text_field",required:!1,span:2},{label:"Phone Number",placeholder:"123 123 123",type:{name:"phone_number"},channel_property:"phone_number_field",required:!1,span:2},{label:"Email",placeholder:"test@example.com",type:{name:"email"},channel_property:"email_field",required:!1,span:2},{label:"Postal Code",placeholder:"123456",type:{name:"postal_code"},channel_property:"postal_code_field",required:!1,span:2},{label:"Country",placeholder:"Select",type:{name:"country"},channel_property:"country_field",required:!1,span:2},{label:"Dropdown",placeholder:"Select",type:{name:"dropdown",options:[{label:"Option 1",value:"option_1"},{label:"Option 2",value:"option_2"},{label:"Option 3",value:"option_3"},{label:"Option 4",value:"option_4",subtitle:"With subtitle"},{label:"Option 5",value:"option_5",subtitle:"With subtitle"}]},channel_property:"dropdown_field",required:!1,span:2},{label:"Dropdown With Icons",placeholder:"Select",type:{name:"dropdown",options:[{label:"Option 1",value:"option_1",icon_url:"https://placehold.co/16"},{label:"Option 2",value:"option_2",icon_url:"https://placehold.co/16"},{label:"Option 3",value:"option_3",icon_url:"https://placehold.co/16"}]},channel_property:"dropdown_field_with_icons",required:!1,span:2}],instructions:["This test demonstrates basic usage of all input types.","All fields here are optional and blank values should pass validation."]},{brand_name:"Field Grouping Test",channel_code:"UI_FIELD_GROUPING_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{group_label:"Vertical Grouping",label:"Top",placeholder:"Top",type:{name:"text",max_length:50},channel_property:"a1",required:!1,span:2},{label:"Middle",placeholder:"Middle",type:{name:"text",max_length:50},channel_property:"a2",required:!1,span:2,join:!0},{label:"Bottom",placeholder:"Bottom",type:{name:"text",max_length:50},channel_property:"a3",required:!1,span:2,join:!0},{group_label:"Horizontal Grouping",label:"Text",placeholder:"Left",type:{name:"text",max_length:50},channel_property:"b1",required:!1,span:1},{label:"Text",placeholder:"Right",type:{name:"text",max_length:50},channel_property:"b1",required:!1,span:1,join:!0},{group_label:"Mixed Grouping",label:"Text",placeholder:"Top Left",type:{name:"text",max_length:50},channel_property:"c1",required:!1,span:1},{label:"Text",placeholder:"Top Right",type:{name:"text",max_length:50},channel_property:"c2",required:!1,span:1,join:!0},{label:"Text",placeholder:"Middle Left",type:{name:"text",max_length:50},channel_property:"c3",required:!1,span:1,join:!0},{label:"Text",placeholder:"Middle Right",type:{name:"text",max_length:50},channel_property:"c4",required:!1,span:1,join:!0},{label:"Text",placeholder:"Bottom Left",type:{name:"text",max_length:50},channel_property:"c5",required:!1,span:1,join:!0},{label:"Text",placeholder:"Bottom Right",type:{name:"text",max_length:50},channel_property:"c6",required:!1,span:1,join:!0}],instructions:["This test demonstrates field grouping.","Fields can be 1 or 2 cells wide and can be grouped in any arrangement."]},{brand_name:"Text Validation Test",channel_code:"UI_TEXT_VALIDATION_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"Required Text Field",placeholder:"Required",type:{name:"text",max_length:50},channel_property:"required",required:!0,span:2},{label:"Validate Minimum Length (5)",placeholder:"Min 5 characters",type:{name:"text",min_length:5,max_length:50},channel_property:"min_5_chars",required:!1,span:2},{label:"Validate Using Regexp (/^[a-zA-Z0-9]+$/)",placeholder:"Alphanumeric only",type:{name:"text",max_length:50,regex_validators:[{regex:"/^[a-zA-Z0-9]+$/",message:"Invalid input. Please use alphanumeric characters only"}]},channel_property:"regexp_validation",required:!1,span:2}],instructions:["This test demonstrates text field validation.","Fields should validate on blur or `submit()` or `revealValidationErrors()`. Blurring a blank field does not trigger validation."]},{brand_name:"State/Province Field Test",channel_code:"UI_STATE_PROVINCE_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{group_label:"Country + State/Province Fields",label:"Country",placeholder:"Country",type:{name:"country"},channel_property:"country_field",required:!0,span:2},{label:"State / Province",placeholder:"State / Province",type:{name:"province"},channel_property:"province_field",required:!0,span:2,join:!0},{group_label:"Country + State/Province Fields (Horizontal Grouping)",label:"Country",placeholder:"Country",type:{name:"country"},channel_property:"country_field_2",required:!0,span:1},{label:"State / Province",placeholder:"State / Province",type:{name:"province"},channel_property:"province_field_2",required:!0,span:1,join:!0}],instructions:["This test demonstrates the country + state/province field combination.","Selecting certain countries (US, CA, GB) should change the state/province field to a dropdown with predefined options."]},{brand_name:"Conditional Field Test",channel_code:"UI_CONDITIONAL_FIELD_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"Toggle Hidden Field",placeholder:"Select",type:{name:"dropdown",options:[{label:"Show",value:"show"},{label:"Hide",value:"hide"}]},channel_property:"toggle",required:!0,span:2},{label:"Conditional Field",placeholder:"This field is conditionally shown",type:{name:"text",max_length:50},channel_property:"conditional_field",required:!0,span:2,join:!0,display_if:[["toggle","equals","show"]]}],instructions:["This test demonstrates conditional field display based on another field's value.","The second field should only appear if 'Show' is selected in the first field."]},{brand_name:"Save Payment Details Test",channel_code:"UI_SAVE_PAYMENT_DETAILS_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!0,allow_save:!0,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[],instructions:["This channel supports both one-time payment and pay-and-save.","A checkbox should be displayed."]},{brand_name:"Paired Channels Test",channel_code:"UI_PAIRED_CHANNELS_TEST_1",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!0,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"This should show if the save checkbox is unchecked",placeholder:"Unchecked",type:{name:"text",max_length:50},channel_property:"nonsave",required:!1,span:2}],instructions:["This channel does not support save, but has a paired channel that does.","Changing the save checkbox switches between the two channels."]},{brand_name:"Paired Channels Test",channel_code:"UI_PAIRED_CHANNELS_TEST_2",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!1,allow_save:!0,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[{label:"This should show if the save checkbox is checked",placeholder:"Checked",type:{name:"text",max_length:50},channel_property:"save",required:!1,span:2}],instructions:["This channel can only be used for pay-and-save, but has a paired channel that supports one time payment.","Changing the save checkbox switches between the two channels."]},{brand_name:"Banner Test",channel_code:"UI_BANNER_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"ui_tests",allow_pay_without_save:!0,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,banner:{image_url:"https://placehold.co/512x32.svg?text=Banner",alt_text:"",aspect_ratio:16},form:[],instructions:["This channel has a banner image.","It should be displayed above this text."]},{brand_name:"Single Item Test",channel_code:"GROUP_SINGLE_ITEM_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"single_item",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[],instructions:["This channel is in a group by itself.","The channel picker should automatically select it when the group is opened."]},{brand_name:"Disabled Group Test",channel_code:"GROUP_DISABLED_GROUP_TEST",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"disabled",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:999999999,max_amount:9999999999,requires_customer_details:!1,form:[],instructions:["This channel is in a disabled group.","Since all channels in this group are disabled, the group should not be selectable. You should never see this text because creating this channel will throw an error."]},{brand_name:"Partial Disabled Group (Enabled)",channel_code:"GROUP_PARTIAL_DISABLED_1",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"partial_disabled",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:1e3,max_amount:1e8,requires_customer_details:!1,form:[],instructions:["This channel is in a partially disabled group.","This channel is enabled, but the other channel in the group is disabled. This channel should be automatically selected by the channel picker because it's the only enabled option."]},{brand_name:"Partial Disabled Group (Disabled)",channel_code:"GROUP_PARTIAL_DISABLED_2",brand_logo_url:"https://placehold.co/48x48.png?text=Logo",ui_group:"partial_disabled",allow_pay_without_save:!1,allow_save:!1,brand_color:"#000000",min_amount:999999999,max_amount:9999999999,requires_customer_details:!1,form:[],instructions:["This channel is in a partially disabled group.","This channel is disabled. You should never see this text because creating this channel will throw an error."]}],channel_ui_groups:[{id:"cards",label:"Mock Cards",icon_url:"https://assets.xendit.co/payment-session/logos/CARDS.svg"},{id:"other",label:"Other Mock Channels",icon_url:"https://placehold.co/48x48.png?text=Logo"},{id:"ui_tests",label:"Channel UI Test Cases",icon_url:"https://placehold.co/48x48.png?text=Logo"},{id:"single_item",label:"Mock Single Item Group",icon_url:"https://placehold.co/48x48.png?text=Logo"},{id:"disabled",label:"Mock Disabled Group",icon_url:"https://placehold.co/48x48.png?text=Logo"},{id:"partial_disabled",label:"Mock Partial Disabled Group",icon_url:"https://placehold.co/48x48.png?text=Logo"}],digital_wallets:{google_pay:{merchant_id:"mock-googlepay-merchant-id",allowed_payment_methods:[{channel_code:"CARDS",payment_request_id:`pr-${e.randomHexString(32)}`,payment_method_specification:{type:"CARD",parameters:{billingAddressRequired:!0,allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:["AMEX","MASTERCARD","VISA"]},tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"xendit",gatewayMerchantId:"exampleGatewayMerchantId"}}}}]}}}};
|
|
3
3
|
//# sourceMappingURL=test-data.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-data.cjs","sources":["../../src/data/test-data.ts"],"sourcesContent":["import { BffResponse } from \"../backend-types/common\";\nimport { randomHexString, randomUUID } from \"../utils\";\n\nconst ONE_MONTH_IN_MS = 30 * 24 * 60 * 60 * 1000;\n\nexport function makeTestBffData(): BffResponse {\n const mockNow = new Date().toISOString();\n const mockExpiry = new Date(Date.now() + ONE_MONTH_IN_MS).toISOString();\n return {\n session: {\n payment_session_id: `ps-${randomHexString(24)}`,\n created: mockNow,\n updated: mockNow,\n status: \"ACTIVE\",\n reference_id: randomUUID(),\n description: \"Test session\",\n currency: \"IDR\",\n amount: 10000,\n country: \"ID\",\n expires_at: mockExpiry,\n session_type: \"PAY\",\n mode: \"COMPONENTS\",\n locale: \"en\",\n business_id: randomHexString(24),\n customer_id: `cust-${randomUUID()}`,\n capture_method: \"AUTOMATIC\",\n allow_save_payment_method: \"OPTIONAL\",\n items: [\n {\n reference_id: randomUUID(),\n type: \"DIGITAL_PRODUCT\",\n name: \"Item 1\",\n net_unit_amount: 50000,\n quantity: 1,\n category: \"\",\n },\n {\n reference_id: randomUUID(),\n type: \"DIGITAL_SERVICE\",\n name: \"Item 2\",\n net_unit_amount: 50000,\n quantity: 1,\n category: \"\",\n },\n ],\n },\n business: {\n name: \"Components Mock Merchant\",\n country_of_operation: \"Indonesia\",\n merchant_profile_picture_url:\n \"https://placehold.co/256x256.png?text=Logo\",\n },\n customer: {\n type: \"INDIVIDUAL\",\n id: `cust-${randomUUID()}`,\n email: \"exa**@example.com\",\n mobile_number: null,\n phone_number: null,\n individual_detail: {\n given_names: \"exa********\",\n surname: null,\n },\n business_detail: null,\n },\n channels: [\n {\n brand_name: \"Cards\",\n channel_code: \"CARDS\",\n brand_logo_url:\n \"https://assets.xendit.co/payment-session/logos/CARDS.svg\",\n ui_group: \"cards\",\n allow_pay_without_save: true,\n allow_save: true,\n brand_color: \"#000000\",\n min_amount: 5000,\n max_amount: 200000000,\n requires_customer_details: false,\n _mock_action_type: \"IFRAME\",\n card: {\n brands: [\n {\n name: \"VISA\",\n logo_url:\n \"https://assets.xendit.co/payment-session/logos/VISA.svg\",\n },\n {\n name: \"MASTERCARD\",\n logo_url:\n \"https://assets.xendit.co/payment-session/logos/MASTERCARD.svg\",\n },\n {\n name: \"JCB\",\n logo_url:\n \"https://assets.xendit.co/payment-session/logos/JCB.svg\",\n },\n ],\n },\n form: [\n {\n group_label: \"Card Details\",\n label: \"Card Number\",\n placeholder: \"1234 1234 1234 1234\",\n type: {\n name: \"credit_card_number\",\n },\n channel_property: \"card_details.card_number\",\n required: true,\n span: 2,\n },\n {\n label: \"Card Expiry Date\",\n placeholder: \"MM/YY\",\n type: {\n name: \"credit_card_expiry\",\n },\n channel_property: [\n \"card_details.expiry_month\",\n \"card_details.expiry_year\",\n ],\n required: true,\n span: 1,\n join: true,\n },\n {\n label: \"CVN\",\n placeholder: \"CVV\",\n type: {\n name: \"credit_card_cvn\",\n },\n channel_property: \"card_details.cvn\",\n required: true,\n span: 1,\n join: true,\n },\n {\n group_label: \"Cardholder Name\",\n label: \"First Name\",\n placeholder: \"First Name\",\n type: {\n name: \"text\",\n min_length: 1,\n max_length: 50,\n regex_validators: [\n {\n regex: \"/^[a-zA-Z\\\\u00C0-\\\\u017F\\\\s]+$/\",\n message:\n \"Invalid input. Please use alphabetic characters only\",\n },\n ],\n },\n channel_property: \"card_details.cardholder_first_name\",\n required: true,\n span: 1,\n },\n {\n label: \"Last Name\",\n placeholder: \"Last Name\",\n type: {\n name: \"text\",\n min_length: 1,\n max_length: 50,\n regex_validators: [\n {\n regex: \"/^[ -~]+$/\",\n message:\n \"Invalid input. Please use alphabetic characters only\",\n },\n ],\n },\n channel_property: \"card_details.cardholder_last_name\",\n required: true,\n span: 1,\n },\n {\n label: \"Email\",\n placeholder: \"john.doe@example.com\",\n type: {\n name: \"email\",\n },\n channel_property: \"card_details.cardholder_email\",\n required: true,\n span: 2,\n },\n {\n label: \"Mobile Number\",\n placeholder: \"8000032341\",\n type: {\n name: \"phone_number\",\n },\n channel_property: \"card_details.cardholder_phone_number\",\n required: true,\n span: 2,\n },\n {\n label: \"Installment plan\",\n placeholder: \"Select installment plan\",\n type: {\n name: \"installment_plan\",\n },\n channel_property: [\n \"installment_configuration.terms\",\n \"installment_configuration.interval\",\n \"installment_configuration.code\",\n ],\n required: false,\n span: 2,\n },\n {\n group_label: \"Billing Address\",\n label: \"First Name\",\n placeholder: \"First Name\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.first_name\",\n span: 1,\n required: true,\n flags: {\n require_billing_information: true,\n },\n },\n {\n label: \"Last Name\",\n placeholder: \"Last Name\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.last_name\",\n span: 1,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Email\",\n placeholder: \"Email\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.email\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Country\",\n placeholder: \"Country\",\n type: {\n name: \"country\",\n },\n channel_property: \"billing_information.country\",\n span: 1,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Province\",\n placeholder: \"State / Province\",\n type: {\n name: \"province\",\n },\n channel_property: \"billing_information.province_state\",\n span: 1,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"City\",\n placeholder: \"City\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.city\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Address Line 1\",\n placeholder: \"Address Line 1\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.street_line1\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Address Line 2\",\n placeholder: \"Address Line 2\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.street_line2\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Postal Code\",\n placeholder: \"Postal Code\",\n type: {\n name: \"postal_code\",\n },\n channel_property: \"billing_information.postal_code\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n ],\n instructions: [\n \"Mock Cards channel\",\n \"This mock channel behaves similarly to the production CARDS channel.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Redirect action)\",\n channel_code: \"MOCK_EWALLET\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"REDIRECT\",\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has a redirect action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Redirect and Paylink actions)\",\n channel_code: \"MOCK_EWALLET_PAYLINK\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: [\"REDIRECT\", \"PAYLINK\"],\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has a redirect and a paylink action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Iframe action)\",\n channel_code: \"MOCK_EWALLET_IFRAME\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"IFRAME\",\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has as iframe action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Deeplink action)\",\n channel_code: \"MOCK_EWALLET_DEEP_LINK\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"DEEP_LINK\",\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has a deeplink action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Push notification action)\",\n channel_code: \"MOCK_EWALLET_PUSH_NOTIFICATION\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"PUSH_NOTIFICATION\",\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has a deeplink action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Phone input)\",\n channel_code: \"MOCK_EWALLET_WITH_PHONE\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"REDIRECT\",\n form: [\n {\n label: \"Phone Number\",\n placeholder: \"123 123 132\",\n type: {\n name: \"phone_number\",\n },\n channel_property: \"phone_number_field\",\n required: true,\n span: 2,\n },\n ],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel behaves similarly to production E-Wallets channels with a phone number input.\",\n ],\n },\n {\n brand_name: \"Mock QR Channel\",\n channel_code: \"MOCK_QR\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"QR\",\n form: [],\n instructions: [\n \"Mock QR channel\",\n \"This mock channel behaves similarly to production QR channels.\",\n ],\n pm_type: \"QR_CODE\",\n },\n {\n brand_name: \"Mock Direct Debit Channel\",\n channel_code: \"MOCK_DIRECT_DEBIT\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"Mock Direct Debit channel\",\n \"This mock channel behaves similarly to production Direct Debit channels.\",\n ],\n },\n {\n brand_name: \"Mock FPX Business Channel\",\n channel_code: \"MOCK_FPX_BUSINESS\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"PENDING\",\n form: [],\n instructions: [\n \"Mock FPX channel\",\n \"This mock channel behaves similarly to production FPX channels. It has a banner and it will enter the pending state after submission.\",\n ],\n banner: {\n image_url:\n \"https://assets.xendit.co/payment-session/banners/fpx-banner.svg\",\n alt_text: \"FPX Pay with Online Banking\",\n aspect_ratio: 9.7,\n },\n },\n {\n brand_name: \"Mock OTC Channel\",\n channel_code: \"MOCK_OTC\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"BARCODE\",\n form: [\n {\n label: \"Payer Name\",\n placeholder: \"Payer Name\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"payer_name\",\n required: true,\n span: 2,\n },\n ],\n instructions: [\n \"Mock OTC channel\",\n \"This mock channel behaves similarly to production OTC channels.\",\n ],\n },\n {\n brand_name: \"Mock VA Channel\",\n channel_code: \"MOCK_VA\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"VA\",\n form: [],\n instructions: [\n \"Mock VA channel\",\n \"This mock channel behaves similarly to production VA channels.\",\n ],\n },\n {\n brand_name: \"Mock Installments Channel\",\n channel_code: \"MOCK_INSTALLMENTS\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"Installment plan\",\n placeholder: \"Select installment plan\",\n type: {\n name: \"installment_plan\",\n },\n channel_property: [\n \"installment_configuration.terms\",\n \"installment_configuration.interval\",\n \"installment_configuration.code\",\n ],\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"Mock Installments channel\",\n \"This mock channel behaves similarly to production installment channels in Thailand.\",\n ],\n },\n {\n brand_name: \"Input Test\",\n channel_code: \"UI_INPUT_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"Card Number (Iframe)\",\n placeholder: \"1234 1234 1234 1234\",\n type: {\n name: \"credit_card_number\",\n },\n channel_property: \"card_number\",\n required: false,\n span: 2,\n },\n {\n label: \"Card Expiry Date (Iframe)\",\n placeholder: \"MM/YY\",\n type: {\n name: \"credit_card_expiry\",\n },\n channel_property: [\"expiry_month\", \"expiry_year\"],\n required: false,\n span: 2,\n },\n {\n label: \"CVN (Iframe)\",\n placeholder: \"CVV\",\n type: {\n name: \"credit_card_cvn\",\n },\n channel_property: \"cvn\",\n required: false,\n span: 2,\n },\n {\n label: \"Text\",\n placeholder: \"Text\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"text_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Phone Number\",\n placeholder: \"123 123 123\",\n type: {\n name: \"phone_number\",\n },\n channel_property: \"phone_number_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Email\",\n placeholder: \"test@example.com\",\n type: {\n name: \"email\",\n },\n channel_property: \"email_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Postal Code\",\n placeholder: \"123456\",\n type: {\n name: \"postal_code\",\n },\n channel_property: \"postal_code_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Country\",\n placeholder: \"Select\",\n type: {\n name: \"country\",\n },\n channel_property: \"country_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Dropdown\",\n placeholder: \"Select\",\n type: {\n name: \"dropdown\",\n options: [\n { label: \"Option 1\", value: \"option_1\" },\n { label: \"Option 2\", value: \"option_2\" },\n { label: \"Option 3\", value: \"option_3\" },\n {\n label: \"Option 4\",\n value: \"option_4\",\n subtitle: \"With subtitle\",\n },\n {\n label: \"Option 5\",\n value: \"option_5\",\n subtitle: \"With subtitle\",\n },\n ],\n },\n channel_property: \"dropdown_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Dropdown With Icons\",\n placeholder: \"Select\",\n type: {\n name: \"dropdown\",\n options: [\n {\n label: \"Option 1\",\n value: \"option_1\",\n icon_url: \"https://placehold.co/16\",\n },\n {\n label: \"Option 2\",\n value: \"option_2\",\n icon_url: \"https://placehold.co/16\",\n },\n {\n label: \"Option 3\",\n value: \"option_3\",\n icon_url: \"https://placehold.co/16\",\n },\n ],\n },\n channel_property: \"dropdown_field_with_icons\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"This test demonstrates basic usage of all input types.\",\n \"All fields here are optional and blank values should pass validation.\",\n ],\n },\n {\n brand_name: \"Field Grouping Test\",\n channel_code: \"UI_FIELD_GROUPING_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n group_label: \"Vertical Grouping\",\n label: \"Top\",\n placeholder: \"Top\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"a1\",\n required: false,\n span: 2,\n },\n {\n label: \"Middle\",\n placeholder: \"Middle\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"a2\",\n required: false,\n span: 2,\n join: true,\n },\n {\n label: \"Bottom\",\n placeholder: \"Bottom\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"a3\",\n required: false,\n span: 2,\n join: true,\n },\n {\n group_label: \"Horizontal Grouping\",\n label: \"Text\",\n placeholder: \"Left\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"b1\",\n required: false,\n span: 1,\n },\n {\n label: \"Text\",\n placeholder: \"Right\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"b1\",\n required: false,\n span: 1,\n join: true,\n },\n {\n group_label: \"Mixed Grouping\",\n label: \"Text\",\n placeholder: \"Top Left\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c1\",\n required: false,\n span: 1,\n },\n {\n label: \"Text\",\n placeholder: \"Top Right\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c2\",\n required: false,\n span: 1,\n join: true,\n },\n {\n label: \"Text\",\n placeholder: \"Middle Left\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c3\",\n required: false,\n span: 1,\n join: true,\n },\n {\n label: \"Text\",\n placeholder: \"Middle Right\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c4\",\n required: false,\n span: 1,\n join: true,\n },\n {\n label: \"Text\",\n placeholder: \"Bottom Left\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c5\",\n required: false,\n span: 1,\n join: true,\n },\n {\n label: \"Text\",\n placeholder: \"Bottom Right\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c6\",\n required: false,\n span: 1,\n join: true,\n },\n ],\n instructions: [\n \"This test demonstrates field grouping.\",\n \"Fields can be 1 or 2 cells wide and can be grouped in any arrangement.\",\n ],\n },\n {\n brand_name: \"Text Validation Test\",\n channel_code: \"UI_TEXT_VALIDATION_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"Required Text Field\",\n placeholder: \"Required\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"required\",\n required: true,\n span: 2,\n },\n {\n label: \"Validate Minimum Length (5)\",\n placeholder: \"Min 5 characters\",\n type: {\n name: \"text\",\n min_length: 5,\n max_length: 50,\n },\n channel_property: \"min_5_chars\",\n required: false,\n span: 2,\n },\n {\n label: \"Validate Using Regexp (/^[a-zA-Z0-9]+$/)\",\n placeholder: \"Alphanumeric only\",\n type: {\n name: \"text\",\n max_length: 50,\n regex_validators: [\n {\n regex: \"/^[a-zA-Z0-9]+$/\",\n message:\n \"Invalid input. Please use alphanumeric characters only\",\n },\n ],\n },\n channel_property: \"regexp_validation\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"This test demonstrates text field validation.\",\n \"Fields should validate on blur or `submit()` or `revealValidationErrors()`. Blurring a blank field does not trigger validation.\",\n ],\n },\n {\n brand_name: \"State/Province Field Test\",\n channel_code: \"UI_STATE_PROVINCE_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n group_label: \"Country + State/Province Fields\",\n label: \"Country\",\n placeholder: \"Country\",\n type: {\n name: \"country\",\n },\n channel_property: \"country_field\",\n required: true,\n span: 2,\n },\n {\n label: \"State / Province\",\n placeholder: \"State / Province\",\n type: {\n name: \"province\",\n },\n channel_property: \"province_field\",\n required: true,\n span: 2,\n join: true,\n },\n {\n group_label:\n \"Country + State/Province Fields (Horizontal Grouping)\",\n label: \"Country\",\n placeholder: \"Country\",\n type: {\n name: \"country\",\n },\n channel_property: \"country_field_2\",\n required: true,\n span: 1,\n },\n {\n label: \"State / Province\",\n placeholder: \"State / Province\",\n type: {\n name: \"province\",\n },\n channel_property: \"province_field_2\",\n required: true,\n span: 1,\n join: true,\n },\n ],\n instructions: [\n \"This test demonstrates the country + state/province field combination.\",\n \"Selecting certain countries (US, CA, GB) should change the state/province field to a dropdown with predefined options.\",\n ],\n },\n {\n brand_name: \"Conditional Field Test\",\n channel_code: \"UI_CONDITIONAL_FIELD_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"Toggle Hidden Field\",\n placeholder: \"Select\",\n type: {\n name: \"dropdown\",\n options: [\n { label: \"Show\", value: \"show\" },\n { label: \"Hide\", value: \"hide\" },\n ],\n },\n channel_property: \"toggle\",\n required: true,\n span: 2,\n },\n {\n label: \"Conditional Field\",\n placeholder: \"This field is conditionally shown\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"conditional_field\",\n required: true,\n span: 2,\n join: true,\n display_if: [[\"toggle\", \"equals\", \"show\"]],\n },\n ],\n instructions: [\n \"This test demonstrates conditional field display based on another field's value.\",\n \"The second field should only appear if 'Show' is selected in the first field.\",\n ],\n },\n {\n brand_name: \"Save Payment Details Test\",\n channel_code: \"UI_SAVE_PAYMENT_DETAILS_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: true,\n allow_save: true,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel supports both one-time payment and pay-and-save.\",\n \"A checkbox should be displayed.\",\n ],\n },\n {\n brand_name: \"Paired Channels Test\",\n channel_code: \"UI_PAIRED_CHANNELS_TEST_1\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: true,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"This should show if the save checkbox is unchecked\",\n placeholder: \"Unchecked\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"nonsave\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"This channel does not support save, but has a paired channel that does.\",\n \"Changing the save checkbox switches between the two channels.\",\n ],\n },\n {\n brand_name: \"Paired Channels Test\",\n channel_code: \"UI_PAIRED_CHANNELS_TEST_2\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: true,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"This should show if the save checkbox is checked\",\n placeholder: \"Checked\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"save\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"This channel can only be used for pay-and-save, but has a paired channel that supports one time payment.\",\n \"Changing the save checkbox switches between the two channels.\",\n ],\n },\n {\n brand_name: \"Banner Test\",\n channel_code: \"UI_BANNER_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: true,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n banner: {\n image_url: \"https://placehold.co/512x32.svg?text=Banner\",\n alt_text: \"\",\n aspect_ratio: 16,\n },\n form: [],\n instructions: [\n \"This channel has a banner image.\",\n \"It should be displayed above this text.\",\n ],\n },\n {\n brand_name: \"Single Item Test\",\n channel_code: \"GROUP_SINGLE_ITEM_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"single_item\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel is in a group by itself.\",\n \"The channel picker should automatically select it when the group is opened.\",\n ],\n },\n {\n brand_name: \"Disabled Group Test\",\n channel_code: \"GROUP_DISABLED_GROUP_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"disabled\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 999999999,\n max_amount: 9999999999,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel is in a disabled group.\",\n \"Since all channels in this group are disabled, the group should not be selectable. You should never see this text because creating this channel will throw an error.\",\n ],\n },\n {\n brand_name: \"Partial Disabled Group (Enabled)\",\n channel_code: \"GROUP_PARTIAL_DISABLED_1\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"partial_disabled\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel is in a partially disabled group.\",\n \"This channel is enabled, but the other channel in the group is disabled. This channel should be automatically selected by the channel picker because it's the only enabled option.\",\n ],\n },\n {\n brand_name: \"Partial Disabled Group (Disabled)\",\n channel_code: \"GROUP_PARTIAL_DISABLED_2\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"partial_disabled\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 999999999,\n max_amount: 9999999999,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel is in a partially disabled group.\",\n \"This channel is disabled. You should never see this text because creating this channel will throw an error.\",\n ],\n },\n ],\n channel_ui_groups: [\n {\n id: \"cards\",\n label: \"Mock Cards\",\n icon_url: \"https://assets.xendit.co/payment-session/logos/CARDS.svg\",\n },\n {\n id: \"other\",\n label: \"Other Mock Channels\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n {\n id: \"ui_tests\",\n label: \"Channel UI Test Cases\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n {\n id: \"single_item\",\n label: \"Mock Single Item Group\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n {\n id: \"disabled\",\n label: \"Mock Disabled Group\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n {\n id: \"partial_disabled\",\n label: \"Mock Partial Disabled Group\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n ],\n digital_wallets: {\n google_pay: {\n merchant_id: \"mock-googlepay-merchant-id\",\n allowed_payment_methods: [\n {\n channel_code: \"CARDS\",\n payment_request_id: `pr-${randomHexString(32)}`,\n payment_method_specification: {\n type: \"CARD\",\n parameters: {\n billingAddressRequired: true,\n allowedAuthMethods: [\"PAN_ONLY\", \"CRYPTOGRAM_3DS\"],\n allowedCardNetworks: [\"AMEX\", \"MASTERCARD\", \"VISA\"],\n } satisfies google.payments.api.CardParameters,\n tokenizationSpecification: {\n type: \"PAYMENT_GATEWAY\",\n parameters: {\n gateway: \"xendit\",\n gatewayMerchantId: \"exampleGatewayMerchantId\",\n },\n },\n },\n },\n ],\n },\n },\n };\n}\n"],"names":["mockNow","Date","toISOString","mockExpiry","now","session","payment_session_id","randomHexString","created","updated","status","reference_id","randomUUID","description","currency","amount","country","expires_at","session_type","mode","locale","business_id","customer_id","capture_method","allow_save_payment_method","items","type","name","net_unit_amount","quantity","category","business","country_of_operation","merchant_profile_picture_url","customer","id","email","mobile_number","phone_number","individual_detail","given_names","surname","business_detail","channels","brand_name","channel_code","brand_logo_url","ui_group","allow_pay_without_save","allow_save","brand_color","min_amount","max_amount","requires_customer_details","_mock_action_type","card","brands","logo_url","form","group_label","label","placeholder","channel_property","required","span","join","min_length","max_length","regex_validators","regex","message","flags","require_billing_information","instructions","pm_type","banner","image_url","alt_text","aspect_ratio","options","value","subtitle","icon_url","display_if","channel_ui_groups","digital_wallets","google_pay","merchant_id","allowed_payment_methods","payment_request_id","payment_method_specification","parameters","billingAddressRequired","allowedAuthMethods","allowedCardNetworks","tokenizationSpecification","gateway","gatewayMerchantId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-data.cjs","sources":["../../src/data/test-data.ts"],"sourcesContent":["import { BffResponse } from \"../backend-types/common\";\nimport { randomHexString, randomUUID } from \"../utils\";\n\nconst ONE_MONTH_IN_MS = 30 * 24 * 60 * 60 * 1000;\n\nexport function makeTestBffData(): BffResponse {\n const mockNow = new Date().toISOString();\n const mockExpiry = new Date(Date.now() + ONE_MONTH_IN_MS).toISOString();\n return {\n session: {\n payment_session_id: `ps-${randomHexString(24)}`,\n created: mockNow,\n updated: mockNow,\n status: \"ACTIVE\",\n reference_id: randomUUID(),\n description: \"Test session\",\n currency: \"IDR\",\n amount: 10000,\n country: \"ID\",\n expires_at: mockExpiry,\n session_type: \"PAY\",\n mode: \"COMPONENTS\",\n locale: \"en\",\n business_id: randomHexString(24),\n customer_id: `cust-${randomUUID()}`,\n capture_method: \"AUTOMATIC\",\n allow_save_payment_method: \"OPTIONAL\",\n items: [\n {\n reference_id: randomUUID(),\n type: \"DIGITAL_PRODUCT\",\n name: \"Item 1\",\n net_unit_amount: 50000,\n quantity: 1,\n category: \"\",\n },\n {\n reference_id: randomUUID(),\n type: \"DIGITAL_SERVICE\",\n name: \"Item 2\",\n net_unit_amount: 50000,\n quantity: 1,\n category: \"\",\n },\n ],\n },\n business: {\n name: \"Components Mock Merchant\",\n country_of_operation: \"Indonesia\",\n merchant_profile_picture_url:\n \"https://placehold.co/256x256.png?text=Logo\",\n },\n customer: {\n type: \"INDIVIDUAL\",\n id: `cust-${randomUUID()}`,\n email: \"exa**@example.com\",\n mobile_number: null,\n phone_number: null,\n individual_detail: {\n given_names: \"exa********\",\n surname: null,\n },\n business_detail: null,\n },\n channels: [\n {\n brand_name: \"Cards\",\n channel_code: \"CARDS\",\n brand_logo_url:\n \"https://assets.xendit.co/payment-session/logos/CARDS.svg\",\n ui_group: \"cards\",\n pm_type: \"CARDS\",\n allow_pay_without_save: true,\n allow_save: true,\n brand_color: \"#000000\",\n min_amount: 5000,\n max_amount: 200000000,\n requires_customer_details: false,\n _mock_action_type: \"IFRAME\",\n card: {\n brands: [\n {\n name: \"VISA\",\n logo_url:\n \"https://assets.xendit.co/payment-session/logos/VISA.svg\",\n },\n {\n name: \"MASTERCARD\",\n logo_url:\n \"https://assets.xendit.co/payment-session/logos/MASTERCARD.svg\",\n },\n {\n name: \"JCB\",\n logo_url:\n \"https://assets.xendit.co/payment-session/logos/JCB.svg\",\n },\n ],\n },\n form: [\n {\n group_label: \"Card Details\",\n label: \"Card Number\",\n placeholder: \"1234 1234 1234 1234\",\n type: {\n name: \"credit_card_number\",\n },\n channel_property: \"card_details.card_number\",\n required: true,\n span: 2,\n },\n {\n label: \"Card Expiry Date\",\n placeholder: \"MM/YY\",\n type: {\n name: \"credit_card_expiry\",\n },\n channel_property: [\n \"card_details.expiry_month\",\n \"card_details.expiry_year\",\n ],\n required: true,\n span: 1,\n join: true,\n },\n {\n label: \"CVN\",\n placeholder: \"CVV\",\n type: {\n name: \"credit_card_cvn\",\n },\n channel_property: \"card_details.cvn\",\n required: true,\n span: 1,\n join: true,\n },\n {\n group_label: \"Cardholder Name\",\n label: \"First Name\",\n placeholder: \"First Name\",\n type: {\n name: \"text\",\n min_length: 1,\n max_length: 50,\n regex_validators: [\n {\n regex: \"/^[a-zA-Z\\\\u00C0-\\\\u017F\\\\s]+$/\",\n message:\n \"Invalid input. Please use alphabetic characters only\",\n },\n ],\n },\n channel_property: \"card_details.cardholder_first_name\",\n required: true,\n span: 1,\n },\n {\n label: \"Last Name\",\n placeholder: \"Last Name\",\n type: {\n name: \"text\",\n min_length: 1,\n max_length: 50,\n regex_validators: [\n {\n regex: \"/^[ -~]+$/\",\n message:\n \"Invalid input. Please use alphabetic characters only\",\n },\n ],\n },\n channel_property: \"card_details.cardholder_last_name\",\n required: true,\n span: 1,\n },\n {\n label: \"Email\",\n placeholder: \"john.doe@example.com\",\n type: {\n name: \"email\",\n },\n channel_property: \"card_details.cardholder_email\",\n required: true,\n span: 2,\n },\n {\n label: \"Mobile Number\",\n placeholder: \"8000032341\",\n type: {\n name: \"phone_number\",\n },\n channel_property: \"card_details.cardholder_phone_number\",\n required: true,\n span: 2,\n },\n {\n label: \"Installment plan\",\n placeholder: \"Select installment plan\",\n type: {\n name: \"installment_plan\",\n },\n channel_property: [\n \"installment_configuration.terms\",\n \"installment_configuration.interval\",\n \"installment_configuration.code\",\n ],\n required: false,\n span: 2,\n },\n {\n group_label: \"Billing Address\",\n label: \"First Name\",\n placeholder: \"First Name\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.first_name\",\n span: 1,\n required: true,\n flags: {\n require_billing_information: true,\n },\n },\n {\n label: \"Last Name\",\n placeholder: \"Last Name\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.last_name\",\n span: 1,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Email\",\n placeholder: \"Email\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.email\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Country\",\n placeholder: \"Country\",\n type: {\n name: \"country\",\n },\n channel_property: \"billing_information.country\",\n span: 1,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Province\",\n placeholder: \"State / Province\",\n type: {\n name: \"province\",\n },\n channel_property: \"billing_information.province_state\",\n span: 1,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"City\",\n placeholder: \"City\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.city\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Address Line 1\",\n placeholder: \"Address Line 1\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.street_line1\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Address Line 2\",\n placeholder: \"Address Line 2\",\n type: {\n name: \"text\",\n max_length: 255,\n },\n channel_property: \"billing_information.street_line2\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n {\n label: \"Postal Code\",\n placeholder: \"Postal Code\",\n type: {\n name: \"postal_code\",\n },\n channel_property: \"billing_information.postal_code\",\n span: 2,\n required: true,\n flags: {\n require_billing_information: true,\n },\n join: true,\n },\n ],\n instructions: [\n \"Mock Cards channel\",\n \"This mock channel behaves similarly to the production CARDS channel.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Redirect action)\",\n channel_code: \"MOCK_EWALLET\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"EWALLET\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"REDIRECT\",\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has a redirect action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Redirect and Paylink actions)\",\n channel_code: \"MOCK_EWALLET_PAYLINK\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"EWALLET\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: [\"REDIRECT\", \"PAYLINK\"],\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has a redirect and a paylink action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Iframe action)\",\n channel_code: \"MOCK_EWALLET_IFRAME\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"EWALLET\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"IFRAME\",\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has as iframe action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Deeplink action)\",\n channel_code: \"MOCK_EWALLET_DEEP_LINK\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"EWALLET\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"DEEP_LINK\",\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel has a deeplink action.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Push notification action)\",\n channel_code: \"MOCK_EWALLET_PUSH_NOTIFICATION\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"EWALLET\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"PUSH_NOTIFICATION\",\n form: [],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel shows a message prompting the user to tap a push notification.\",\n ],\n },\n {\n brand_name: \"Mock E-Wallet Channel (Phone input)\",\n channel_code: \"MOCK_EWALLET_WITH_PHONE\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"EWALLET\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"REDIRECT\",\n form: [\n {\n label: \"Phone Number\",\n placeholder: \"123 123 132\",\n type: {\n name: \"phone_number\",\n },\n channel_property: \"phone_number_field\",\n required: true,\n span: 2,\n },\n ],\n instructions: [\n \"Mock E-Wallet channel\",\n \"This mock channel behaves similarly to production E-Wallets channels with a phone number input.\",\n ],\n },\n {\n brand_name: \"Mock QR Channel\",\n channel_code: \"MOCK_QR\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"QR_CODE\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"QR\",\n form: [],\n instructions: [\n \"Mock QR channel\",\n \"This mock channel behaves similarly to production QR channels.\",\n ],\n },\n {\n brand_name: \"Mock QR Channel (Custom Art)\",\n channel_code: \"MOCK_QR_CUSTOM_ART\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"QR_CODE\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"QR\",\n form: [\n {\n label: \"QR Style\",\n placeholder: \"Select\",\n type: {\n name: \"dropdown\",\n options: [\n { label: \"QRIS\", value: \"ID.CO.QRIS.WWW\" },\n { label: \"SGQR\", value: \"SG.SGQR\" },\n {\n label: \"Duitnow QR\",\n value: \"A0000006150001\",\n },\n ],\n },\n channel_property: \"mock_emvco_qr_field_26_00\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"Mock QR channel\",\n \"This mock channel has a QR action with branded layouts. You can choose what branded layout to use.\",\n ],\n },\n {\n brand_name: \"Mock Direct Debit Channel\",\n channel_code: \"MOCK_DIRECT_DEBIT\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"DIRECT_DEBIT\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"Mock Direct Debit channel\",\n \"This mock channel behaves similarly to production Direct Debit channels.\",\n ],\n },\n {\n brand_name: \"Mock FPX Business Channel\",\n channel_code: \"MOCK_FPX_BUSINESS\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"ONLINE_BANKING\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"PENDING\",\n form: [],\n instructions: [\n \"Mock FPX channel\",\n \"This mock channel behaves similarly to production FPX channels. It has a banner and it will enter the pending state after submission.\",\n ],\n banner: {\n image_url:\n \"https://assets.xendit.co/payment-session/banners/fpx-banner.svg\",\n alt_text: \"FPX Pay with Online Banking\",\n aspect_ratio: 9.7,\n },\n },\n {\n brand_name: \"Mock OTC Channel\",\n channel_code: \"MOCK_OTC\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"OVER_THE_COUNTER\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"BARCODE\",\n form: [\n {\n label: \"Payer Name\",\n placeholder: \"Payer Name\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"payer_name\",\n required: true,\n span: 2,\n },\n ],\n instructions: [\n \"Mock OTC channel\",\n \"This mock channel behaves similarly to production OTC channels.\",\n ],\n },\n {\n brand_name: \"Mock VA Channel\",\n channel_code: \"MOCK_VA\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"VIRTUAL_ACCOUNT\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n _mock_action_type: \"VA\",\n form: [],\n instructions: [\n \"Mock VA channel\",\n \"This mock channel behaves similarly to production VA channels.\",\n ],\n },\n {\n brand_name: \"Mock Installments Channel\",\n channel_code: \"MOCK_INSTALLMENTS\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"other\",\n pm_type: \"CARDS_INSTALLMENT\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"Installment plan\",\n placeholder: \"Select installment plan\",\n type: {\n name: \"installment_plan\",\n },\n channel_property: [\n \"installment_configuration.terms\",\n \"installment_configuration.interval\",\n \"installment_configuration.code\",\n ],\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"Mock Installments channel\",\n \"This mock channel behaves similarly to production installment channels in Thailand.\",\n ],\n },\n {\n brand_name: \"Input Test\",\n channel_code: \"UI_INPUT_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"Card Number (Iframe)\",\n placeholder: \"1234 1234 1234 1234\",\n type: {\n name: \"credit_card_number\",\n },\n channel_property: \"card_number\",\n required: false,\n span: 2,\n },\n {\n label: \"Card Expiry Date (Iframe)\",\n placeholder: \"MM/YY\",\n type: {\n name: \"credit_card_expiry\",\n },\n channel_property: [\"expiry_month\", \"expiry_year\"],\n required: false,\n span: 2,\n },\n {\n label: \"CVN (Iframe)\",\n placeholder: \"CVV\",\n type: {\n name: \"credit_card_cvn\",\n },\n channel_property: \"cvn\",\n required: false,\n span: 2,\n },\n {\n label: \"Text\",\n placeholder: \"Text\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"text_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Phone Number\",\n placeholder: \"123 123 123\",\n type: {\n name: \"phone_number\",\n },\n channel_property: \"phone_number_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Email\",\n placeholder: \"test@example.com\",\n type: {\n name: \"email\",\n },\n channel_property: \"email_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Postal Code\",\n placeholder: \"123456\",\n type: {\n name: \"postal_code\",\n },\n channel_property: \"postal_code_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Country\",\n placeholder: \"Select\",\n type: {\n name: \"country\",\n },\n channel_property: \"country_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Dropdown\",\n placeholder: \"Select\",\n type: {\n name: \"dropdown\",\n options: [\n { label: \"Option 1\", value: \"option_1\" },\n { label: \"Option 2\", value: \"option_2\" },\n { label: \"Option 3\", value: \"option_3\" },\n {\n label: \"Option 4\",\n value: \"option_4\",\n subtitle: \"With subtitle\",\n },\n {\n label: \"Option 5\",\n value: \"option_5\",\n subtitle: \"With subtitle\",\n },\n ],\n },\n channel_property: \"dropdown_field\",\n required: false,\n span: 2,\n },\n {\n label: \"Dropdown With Icons\",\n placeholder: \"Select\",\n type: {\n name: \"dropdown\",\n options: [\n {\n label: \"Option 1\",\n value: \"option_1\",\n icon_url: \"https://placehold.co/16\",\n },\n {\n label: \"Option 2\",\n value: \"option_2\",\n icon_url: \"https://placehold.co/16\",\n },\n {\n label: \"Option 3\",\n value: \"option_3\",\n icon_url: \"https://placehold.co/16\",\n },\n ],\n },\n channel_property: \"dropdown_field_with_icons\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"This test demonstrates basic usage of all input types.\",\n \"All fields here are optional and blank values should pass validation.\",\n ],\n },\n {\n brand_name: \"Field Grouping Test\",\n channel_code: \"UI_FIELD_GROUPING_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n group_label: \"Vertical Grouping\",\n label: \"Top\",\n placeholder: \"Top\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"a1\",\n required: false,\n span: 2,\n },\n {\n label: \"Middle\",\n placeholder: \"Middle\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"a2\",\n required: false,\n span: 2,\n join: true,\n },\n {\n label: \"Bottom\",\n placeholder: \"Bottom\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"a3\",\n required: false,\n span: 2,\n join: true,\n },\n {\n group_label: \"Horizontal Grouping\",\n label: \"Text\",\n placeholder: \"Left\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"b1\",\n required: false,\n span: 1,\n },\n {\n label: \"Text\",\n placeholder: \"Right\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"b1\",\n required: false,\n span: 1,\n join: true,\n },\n {\n group_label: \"Mixed Grouping\",\n label: \"Text\",\n placeholder: \"Top Left\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c1\",\n required: false,\n span: 1,\n },\n {\n label: \"Text\",\n placeholder: \"Top Right\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c2\",\n required: false,\n span: 1,\n join: true,\n },\n {\n label: \"Text\",\n placeholder: \"Middle Left\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c3\",\n required: false,\n span: 1,\n join: true,\n },\n {\n label: \"Text\",\n placeholder: \"Middle Right\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c4\",\n required: false,\n span: 1,\n join: true,\n },\n {\n label: \"Text\",\n placeholder: \"Bottom Left\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c5\",\n required: false,\n span: 1,\n join: true,\n },\n {\n label: \"Text\",\n placeholder: \"Bottom Right\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"c6\",\n required: false,\n span: 1,\n join: true,\n },\n ],\n instructions: [\n \"This test demonstrates field grouping.\",\n \"Fields can be 1 or 2 cells wide and can be grouped in any arrangement.\",\n ],\n },\n {\n brand_name: \"Text Validation Test\",\n channel_code: \"UI_TEXT_VALIDATION_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"Required Text Field\",\n placeholder: \"Required\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"required\",\n required: true,\n span: 2,\n },\n {\n label: \"Validate Minimum Length (5)\",\n placeholder: \"Min 5 characters\",\n type: {\n name: \"text\",\n min_length: 5,\n max_length: 50,\n },\n channel_property: \"min_5_chars\",\n required: false,\n span: 2,\n },\n {\n label: \"Validate Using Regexp (/^[a-zA-Z0-9]+$/)\",\n placeholder: \"Alphanumeric only\",\n type: {\n name: \"text\",\n max_length: 50,\n regex_validators: [\n {\n regex: \"/^[a-zA-Z0-9]+$/\",\n message:\n \"Invalid input. Please use alphanumeric characters only\",\n },\n ],\n },\n channel_property: \"regexp_validation\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"This test demonstrates text field validation.\",\n \"Fields should validate on blur or `submit()` or `revealValidationErrors()`. Blurring a blank field does not trigger validation.\",\n ],\n },\n {\n brand_name: \"State/Province Field Test\",\n channel_code: \"UI_STATE_PROVINCE_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n group_label: \"Country + State/Province Fields\",\n label: \"Country\",\n placeholder: \"Country\",\n type: {\n name: \"country\",\n },\n channel_property: \"country_field\",\n required: true,\n span: 2,\n },\n {\n label: \"State / Province\",\n placeholder: \"State / Province\",\n type: {\n name: \"province\",\n },\n channel_property: \"province_field\",\n required: true,\n span: 2,\n join: true,\n },\n {\n group_label:\n \"Country + State/Province Fields (Horizontal Grouping)\",\n label: \"Country\",\n placeholder: \"Country\",\n type: {\n name: \"country\",\n },\n channel_property: \"country_field_2\",\n required: true,\n span: 1,\n },\n {\n label: \"State / Province\",\n placeholder: \"State / Province\",\n type: {\n name: \"province\",\n },\n channel_property: \"province_field_2\",\n required: true,\n span: 1,\n join: true,\n },\n ],\n instructions: [\n \"This test demonstrates the country + state/province field combination.\",\n \"Selecting certain countries (US, CA, GB) should change the state/province field to a dropdown with predefined options.\",\n ],\n },\n {\n brand_name: \"Conditional Field Test\",\n channel_code: \"UI_CONDITIONAL_FIELD_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"Toggle Hidden Field\",\n placeholder: \"Select\",\n type: {\n name: \"dropdown\",\n options: [\n { label: \"Show\", value: \"show\" },\n { label: \"Hide\", value: \"hide\" },\n ],\n },\n channel_property: \"toggle\",\n required: true,\n span: 2,\n },\n {\n label: \"Conditional Field\",\n placeholder: \"This field is conditionally shown\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"conditional_field\",\n required: true,\n span: 2,\n join: true,\n display_if: [[\"toggle\", \"equals\", \"show\"]],\n },\n ],\n instructions: [\n \"This test demonstrates conditional field display based on another field's value.\",\n \"The second field should only appear if 'Show' is selected in the first field.\",\n ],\n },\n {\n brand_name: \"Save Payment Details Test\",\n channel_code: \"UI_SAVE_PAYMENT_DETAILS_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: true,\n allow_save: true,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel supports both one-time payment and pay-and-save.\",\n \"A checkbox should be displayed.\",\n ],\n },\n {\n brand_name: \"Paired Channels Test\",\n channel_code: \"UI_PAIRED_CHANNELS_TEST_1\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: true,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"This should show if the save checkbox is unchecked\",\n placeholder: \"Unchecked\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"nonsave\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"This channel does not support save, but has a paired channel that does.\",\n \"Changing the save checkbox switches between the two channels.\",\n ],\n },\n {\n brand_name: \"Paired Channels Test\",\n channel_code: \"UI_PAIRED_CHANNELS_TEST_2\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: false,\n allow_save: true,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [\n {\n label: \"This should show if the save checkbox is checked\",\n placeholder: \"Checked\",\n type: {\n name: \"text\",\n max_length: 50,\n },\n channel_property: \"save\",\n required: false,\n span: 2,\n },\n ],\n instructions: [\n \"This channel can only be used for pay-and-save, but has a paired channel that supports one time payment.\",\n \"Changing the save checkbox switches between the two channels.\",\n ],\n },\n {\n brand_name: \"Banner Test\",\n channel_code: \"UI_BANNER_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"ui_tests\",\n allow_pay_without_save: true,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n banner: {\n image_url: \"https://placehold.co/512x32.svg?text=Banner\",\n alt_text: \"\",\n aspect_ratio: 16,\n },\n form: [],\n instructions: [\n \"This channel has a banner image.\",\n \"It should be displayed above this text.\",\n ],\n },\n {\n brand_name: \"Single Item Test\",\n channel_code: \"GROUP_SINGLE_ITEM_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"single_item\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel is in a group by itself.\",\n \"The channel picker should automatically select it when the group is opened.\",\n ],\n },\n {\n brand_name: \"Disabled Group Test\",\n channel_code: \"GROUP_DISABLED_GROUP_TEST\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"disabled\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 999999999,\n max_amount: 9999999999,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel is in a disabled group.\",\n \"Since all channels in this group are disabled, the group should not be selectable. You should never see this text because creating this channel will throw an error.\",\n ],\n },\n {\n brand_name: \"Partial Disabled Group (Enabled)\",\n channel_code: \"GROUP_PARTIAL_DISABLED_1\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"partial_disabled\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 1000,\n max_amount: 100000000,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel is in a partially disabled group.\",\n \"This channel is enabled, but the other channel in the group is disabled. This channel should be automatically selected by the channel picker because it's the only enabled option.\",\n ],\n },\n {\n brand_name: \"Partial Disabled Group (Disabled)\",\n channel_code: \"GROUP_PARTIAL_DISABLED_2\",\n brand_logo_url: \"https://placehold.co/48x48.png?text=Logo\",\n ui_group: \"partial_disabled\",\n allow_pay_without_save: false,\n allow_save: false,\n brand_color: \"#000000\",\n min_amount: 999999999,\n max_amount: 9999999999,\n requires_customer_details: false,\n form: [],\n instructions: [\n \"This channel is in a partially disabled group.\",\n \"This channel is disabled. You should never see this text because creating this channel will throw an error.\",\n ],\n },\n ],\n channel_ui_groups: [\n {\n id: \"cards\",\n label: \"Mock Cards\",\n icon_url: \"https://assets.xendit.co/payment-session/logos/CARDS.svg\",\n },\n {\n id: \"other\",\n label: \"Other Mock Channels\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n {\n id: \"ui_tests\",\n label: \"Channel UI Test Cases\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n {\n id: \"single_item\",\n label: \"Mock Single Item Group\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n {\n id: \"disabled\",\n label: \"Mock Disabled Group\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n {\n id: \"partial_disabled\",\n label: \"Mock Partial Disabled Group\",\n icon_url: \"https://placehold.co/48x48.png?text=Logo\",\n },\n ],\n digital_wallets: {\n google_pay: {\n merchant_id: \"mock-googlepay-merchant-id\",\n allowed_payment_methods: [\n {\n channel_code: \"CARDS\",\n payment_request_id: `pr-${randomHexString(32)}`,\n payment_method_specification: {\n type: \"CARD\",\n parameters: {\n billingAddressRequired: true,\n allowedAuthMethods: [\"PAN_ONLY\", \"CRYPTOGRAM_3DS\"],\n allowedCardNetworks: [\"AMEX\", \"MASTERCARD\", \"VISA\"],\n } satisfies google.payments.api.CardParameters,\n tokenizationSpecification: {\n type: \"PAYMENT_GATEWAY\",\n parameters: {\n gateway: \"xendit\",\n gatewayMerchantId: \"exampleGatewayMerchantId\",\n },\n },\n },\n },\n ],\n },\n },\n };\n}\n"],"names":["mockNow","Date","toISOString","mockExpiry","now","session","payment_session_id","randomHexString","created","updated","status","reference_id","randomUUID","description","currency","amount","country","expires_at","session_type","mode","locale","business_id","customer_id","capture_method","allow_save_payment_method","items","type","name","net_unit_amount","quantity","category","business","country_of_operation","merchant_profile_picture_url","customer","id","email","mobile_number","phone_number","individual_detail","given_names","surname","business_detail","channels","brand_name","channel_code","brand_logo_url","ui_group","pm_type","allow_pay_without_save","allow_save","brand_color","min_amount","max_amount","requires_customer_details","_mock_action_type","card","brands","logo_url","form","group_label","label","placeholder","channel_property","required","span","join","min_length","max_length","regex_validators","regex","message","flags","require_billing_information","instructions","options","value","banner","image_url","alt_text","aspect_ratio","subtitle","icon_url","display_if","channel_ui_groups","digital_wallets","google_pay","merchant_id","allowed_payment_methods","payment_request_id","payment_method_specification","parameters","billingAddressRequired","allowedAuthMethods","allowedCardNetworks","tokenizationSpecification","gateway","gatewayMerchantId"],"mappings":"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"}
|