@foxy.io/elements 1.42.0-beta.5 → 1.42.0-beta.6

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.
@@ -1 +1 @@
1
- import"./shared-68a5368a.js";import"./shared-a3a18e8d.js";import"./shared-56d91134.js";import"./shared-e653b80e.js";import"./shared-eb086cef.js";import"./shared-0e1ad508.js";import"./shared-076f086a.js";import{I as e}from"./shared-7995cbcf.js";import"./foxy-nucleon-element.js";import"./foxy-spinner.js";import"./shared-70380f94.js";import{_ as t,B as r,l as i}from"./shared-cb58dfcd.js";import{g as o}from"./shared-bab2ea2c.js";import{a}from"./shared-1ce5b073.js";import{i as l}from"./shared-53e42a77.js";import{h as s,s as n}from"./shared-ba5c42c7.js";import{c as d}from"./shared-4e709717.js";import{h as c}from"./shared-ef4ad461.js";import{s as h}from"./shared-0aedd809.js";import"./shared-7b3aac7e.js";import"./shared-a3a4c368.js";import"./shared-500b7eb7.js";import"./shared-4e309d01.js";import"./shared-76cbea00.js";import"./shared-4ded48ee.js";import"./shared-92153a7f.js";import"./shared-d2304d50.js";import"./shared-677953e0.js";import"./shared-5212ef4f.js";import"./shared-5afb584d.js";import"./shared-2aa23b5f.js";import"./shared-f83207fb.js";import"./shared-5592ec6e.js";import"./shared-343d1fd7.js";import"./shared-cd96ff03.js";import"./shared-5e4a03d1.js";import"./shared-7594e563.js";import"./shared-5ef40e86.js";import"./shared-127ec8a7.js";import"./shared-0995ae7c.js";import"./shared-16ae74b2.js";import"./shared-5c057c26.js";import"./shared-20fb2969.js";import"./shared-986d0f7f.js";import"./shared-292dcee0.js";import"./shared-0662adb7.js";import"./shared-651c44fa.js";import"./shared-c365c1ae.js";import"./shared-f28e46bf.js";import"./shared-6b3b8c63.js";import"./shared-d0aed1c1.js";import"./shared-1f6366c0.js";import"./shared-a4ca1c5d.js";import"./foxy-copy-to-clipboard.js";import"./shared-75e7361d.js";let u,p,f,m,_,v,y,g,x,$,b,j,w,V,L,S,k,P,M,I,B,C,q,Z,H,O,D,R,W,T,z=e=>e;const A=a(e,"payments-api-payment-method-form");class E extends A{constructor(){super(...arguments),this.paymentPreset=null,this.getImageSrc=null,this.store=null,this.__availablePaymentMethodsLoaderId="availablePaymentMethodsLoader",this.__paymentPresetLoaderId="paymentPresetLoader",this.__storeLoaderId="storeLoader",this.__threeDSecureResponseGetValue=()=>{var e;return null===(e=this.form.config_3d_secure)||void 0===e?void 0:e.endsWith("require_valid_response")},this.__threeDSecureResponseSetValue=e=>{const t=e?"_require_valid_response":"",r=this.form.config_3d_secure,i=(null==r?void 0:r.startsWith("all_cards"))?"all_cards":"maestro_only";this.edit({config_3d_secure:`${i}${t}`})},this.__threeDSecureToggleGetValue=()=>{const e=this.form.config_3d_secure;return(null==e?void 0:e.startsWith("all_cards"))?"all_cards":(null==e?void 0:e.startsWith("maestro_only"))?"maestro_only":"off"},this.__threeDSecureToggleSetValue=e=>{var t;let r="";"all_cards"!==e&&"maestro_only"!==e||(r=(null===(t=this.form.config_3d_secure)||void 0===t?void 0:t.endsWith("require_valid_response"))?`${e}_require_valid_response`:e),this.edit({config_3d_secure:r})},this.__threeDSecureToggleOptions=[{value:"off",label:"option_off"},{value:"all_cards",label:"option_all_cards"},{value:"maestro_only",label:"option_maestro_only"}],this.__cardVerificationGetValue=()=>this.form.card_verification||"disabled",this.__cardVerificationOptions=[{label:"option_disabled",value:"disabled"},{label:"option_enabled_automatically",value:"enabled_automatically"},{label:"option_enabled_override",value:"enabled_override"}]}static get defaultImageSrc(){return"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E"}static get properties(){return t(t({},super.properties),{},{paymentPreset:{attribute:"payment-preset"},getImageSrc:{attribute:!1},store:{}})}static get v8n(){return[({description:e})=>!e||e.length<=100||"description:v8n_too_long",({type:e})=>!!e||"type:v8n_required",e=>{var t,r,i,o;const a=null!==(i=null===(r=null===(t=e.helper)||void 0===t?void 0:t.additional_fields)||void 0===r?void 0:r.blocks)&&void 0!==i?i:[];let l;try{l=JSON.parse(null!==(o=e.additional_fields)&&void 0!==o?o:"{}")}catch(e){l={}}for(const e of a)for(const t of e.fields)if("optional"in t&&!t.optional&&!c(l,t.id)&&"checkbox"!==t.type)return"additional-fields:v8n_invalid";return!0}]}get hiddenSelector(){return new r(`header:copy-json ${super.hiddenSelector}`.trimEnd())}renderHeader(...e){var t;return s(u||(u=z` <div> ${0} ${0} </div> `),super.renderHeader(...e),(null===(t=this.data)||void 0===t?void 0:t.type)||!this.form.type?s(p||(p=z``)):s(f||(f=z` <vaadin-button data-testid="select-another-button" theme="tertiary-inline" @click="${0}"> <foxy-i18n infer="" key="select_another_button_label"></foxy-i18n> </vaadin-button> `),(()=>this.undo())))}get headerTitleOptions(){var e;return{context:this.form.type?"selected":"new",name:null===(e=this.form.helper)||void 0===e?void 0:e.name}}get headerSubtitleOptions(){if(this.href){const e=o(this.href),t=this.headerCopyIdValue;return e.startsWith("R")?{context:"regular",id:t}:{context:"hosted",id:t}}return{}}get headerCopyIdValue(){if(this.href){const e=o(this.href);return e.startsWith("R")?e.slice(1):e.slice(1).split("C")[0]}return""}renderBody(){var e;const t=null===(e=this.__paymentPresetLoader)||void 0===e?void 0:e.data,r=s(m||(m=z` <foxy-nucleon class="hidden" infer="" href="${0}" id="${0}" @update="${0}"> </foxy-nucleon> <foxy-nucleon class="hidden" infer="" href="${0}" id="${0}" @update="${0}"> </foxy-nucleon> <foxy-nucleon class="hidden" infer="" href="${0}" id="${0}" @update="${0}"> </foxy-nucleon> `),l(null==t?void 0:t._links["fx:available_payment_methods"].href),this.__availablePaymentMethodsLoaderId,(()=>this.requestUpdate()),l(this.store),this.__storeLoaderId,(()=>this.requestUpdate()),l(this.paymentPreset),this.__paymentPresetLoaderId,(()=>this.requestUpdate()));return s(_||(_=z`${0}${0}${0}`),this.renderHeader(),this.form.type?this.__renderPaymentMethodConfig():this.__renderPaymentMethodSelector(),r)}get __groupedAvailablePaymentMethods(){var e;return Object.entries(null!==(e=this.__availablePaymentMethods)&&void 0!==e?e:{}).sort(((e,t)=>e[0].localeCompare(t[0],"en"))).reduce(((e,[t,r])=>{if(r.is_deprecated)return e;const i=t.charAt(0).toUpperCase(),o=!/\w/.test(i)?"#":i,a=e.find((e=>e.name===o));return a?a.items.push({type:t,helper:r}):e.push({name:o,items:[{type:t,helper:r}]}),e}),[])}get __availablePaymentMethodsLoader(){return this.renderRoot.querySelector(`#${this.__availablePaymentMethodsLoaderId}`)}get __availablePaymentMethods(){var e,t;return null===(t=null===(e=this.__availablePaymentMethodsLoader)||void 0===e?void 0:e.data)||void 0===t?void 0:t.values}get __paymentPresetLoader(){return this.renderRoot.querySelector(`#${this.__paymentPresetLoaderId}`)}get __storeLoader(){return this.renderRoot.querySelector(`#${this.__storeLoaderId}`)}get __liveBlocks(){var e,t,r;return null!==(r=null===(t=null===(e=this.form.helper)||void 0===e?void 0:e.additional_fields)||void 0===t?void 0:t.blocks.filter((e=>e.is_live)))&&void 0!==r?r:[]}get __testBlocks(){var e,t,r;return null!==(r=null===(t=null===(e=this.form.helper)||void 0===e?void 0:e.additional_fields)||void 0===t?void 0:t.blocks.filter((e=>!e.is_live)))&&void 0!==r?r:[]}__renderPaymentMethodSelector(){const e=this.__availablePaymentMethodsLoader;return(null==e?void 0:e.data)?s(y||(y=z` <div> <section data-testid="select-method-list" class="-mt-m"> ${0} </section> </div> `),this.__groupedAvailablePaymentMethods.map((({name:e,items:t})=>s(g||(g=z` <p class="font-medium text-tertiary py-m">${0}</p> <ul class="grid grid-cols-2 gap-m"> ${0} </ul> `),e,t.map((e=>s(x||(x=z`<li>${0}</li>`),this.__renderPaymentMethodButton(e)))))))):s(v||(v=z` <foxy-spinner infer="list-spinner" state="${0}"> </foxy-spinner> `),(null==e?void 0:e.in("fail"))?"error":"busy")}__renderPaymentMethodConfig(){var e,t,r;return this.form.type&&["stripe_connect","square_up","quickbook_payments","amazon_mws","paypal_platform"].includes(this.form.type)?s($||($=z` <div class="flex items-start rounded border border-primary" style="gap:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px);padding:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)"> ${0} <p> <foxy-i18n infer="" key="no_oauth_support_message"></foxy-i18n> <br> <a target="_blank" class="mt-xs inline-block rounded font-medium text-primary transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50" href="https://admin.foxycart.com"> admin.foxycart.com </a> </p> </div> `),n(b||(b=z`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="flex-shrink-0 text-primary" style="width: 1.25em"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path></svg>`))):s(j||(j=z` <foxy-internal-summary-control infer="general"> <foxy-internal-text-control layout="summary-item" infer="description"> </foxy-internal-text-control> ${0} ${0} ${0} </foxy-internal-summary-control> ${0} ${0} `),(null===(e=this.form.helper)||void 0===e?void 0:e.supports_auth_only)?s(w||(w=z` <foxy-internal-switch-control infer="use-auth-only" helper-text-as-tooltip> </foxy-internal-switch-control> `)):"",(null===(t=this.form.helper)||void 0===t?void 0:t.supports_3d_secure)?s(V||(V=z` <foxy-internal-select-control layout="summary-item" infer="three-d-secure-toggle" .getValue="${0}" .setValue="${0}" .options="${0}"> </foxy-internal-select-control> ${0} `),this.__threeDSecureToggleGetValue,this.__threeDSecureToggleSetValue,this.__threeDSecureToggleOptions,this.form.config_3d_secure?s(L||(L=z` <foxy-internal-switch-control layout="summary-item" infer="three-d-secure-response" .getValue="${0}" .setValue="${0}"> </foxy-internal-switch-control> `),this.__threeDSecureResponseGetValue,this.__threeDSecureResponseSetValue):""):"",(null===(r=this.form.helper)||void 0===r?void 0:r.supports_card_verification)?s(S||(S=z` <foxy-internal-select-control layout="summary-item" infer="card-verification" .getValue="${0}" .options="${0}"> </foxy-internal-select-control> `),this.__cardVerificationGetValue,this.__cardVerificationOptions):"",["live","test"].map(((e,t)=>{var r,i,o,a,d,c,h,u,p,f,m,_,v,y;const g=0===t?"":`${e}-`,x=0===t?this.__liveBlocks:this.__testBlocks,$=`${e}-group`;if("live"===e&&!(null===(r=this.__storeLoader)||void 0===r?void 0:r.data))return s(k||(k=z``));if("live"===e&&!(null===(o=null===(i=this.__storeLoader)||void 0===i?void 0:i.data)||void 0===o?void 0:o.is_active))return s(P||(P=z` <foxy-internal-summary-control infer="${0}-group"> <div class="flex items-start" style="gap:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)"> ${0} <p><foxy-i18n infer="" key="inactive_message"></foxy-i18n></p> </div> </foxy-internal-summary-control> `),e,n(M||(M=z`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="flex-shrink-0 text-primary" style="width: 1.25em"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path></svg>`)));const b=!0===(null===(d=null===(a=this.__storeLoader)||void 0===a?void 0:a.data)||void 0===d?void 0:d.is_active)&&("test"===e&&!0===(null===(h=null===(c=this.__paymentPresetLoader)||void 0===c?void 0:c.data)||void 0===h?void 0:h.is_live)||"live"===e&&!1===(null===(p=null===(u=this.__paymentPresetLoader)||void 0===u?void 0:u.data)||void 0===p?void 0:p.is_live));return s(I||(I=z` <foxy-internal-summary-control helper-text="${0}" layout="details" label="${0}" infer="${0}" ?open="${0}"> ${0} ${0} ${0} ${0} ${0} </foxy-internal-summary-control> `),l(b?this.t(`${$}.helper_text_inactive`):void 0),l(b?this.t(`${$}.label_inactive`):void 0),$,!b,(null===(f=this.form.helper)||void 0===f?void 0:f.id_description)?s(B||(B=z` <foxy-internal-text-control placeholder="${0}" helper-text="" layout="summary-item" label="${0}" infer="${0}account-id"> </foxy-internal-text-control> `),this.t("default_additional_field_placeholder"),this.form.helper.id_description,g):"",(null===(m=this.form.helper)||void 0===m?void 0:m.third_party_key_description)?s(C||(C=z` <foxy-internal-password-control placeholder="${0}" helper-text="" layout="summary-item" label="${0}" infer="${0}third-party-key"> </foxy-internal-password-control> `),this.t("default_additional_field_placeholder"),this.form.helper.third_party_key_description,g):"",(null===(_=this.form.helper)||void 0===_?void 0:_.key_description)?s(q||(q=z` <foxy-internal-password-control placeholder="${0}" layout="summary-item" helper-text="" label="${0}" infer="${0}account-key"> </foxy-internal-password-control> `),this.t("default_additional_field_placeholder"),this.form.helper.key_description,g):"",x.map((e=>this.__renderBlock(e))),(null===(v=this.form.helper)||void 0===v?void 0:v.supports_card_verification)&&(null===(y=this.form.card_verification)||void 0===y?void 0:y.startsWith("enabled_"))?["visa","mastercard","american-express","discover","default"].map((e=>{var t;return s(Z||(Z=z` <foxy-internal-number-control json-template="${0}" json-path="verification_amounts.${0}" property="${0}card_verification_config" layout="summary-item" suffix="¤" infer="card-verification-config-verification-amounts-${0}" step="0.01" min="0"> </foxy-internal-number-control> `),l(null===(t=this.form.helper)||void 0===t?void 0:t.card_verification_config),e.replace(/-/g,"_"),g.replace(/-/g,"_"),e)})):"")})),super.renderBody())}__renderPaymentMethodButton({type:e,helper:t}){var r,i;const o=E.defaultImageSrc,a=null!==(i=null===(r=this.getImageSrc)||void 0===r?void 0:r.call(this,e))&&void 0!==i?i:o,l=e=>e.currentTarget.src=o;return s(H||(H=z` <button class="${0}" ?disabled="${0}" title="${0}" @click="${0}"> <img class="absolute top-0 left-0 w-1-2 h-full object-cover bg-center filter saturate-200 blur-3xl" style="transform:translate3d(0,0,0)" src="${0}" alt="" ?hidden="${0}" @error="${0}"> <figure class="relative flex flex-col gap-m"> <img class="${0}" src="${0}" alt="" @error="${0}"> <figcaption class="${0}"> <div class="font-medium">${0}&ZeroWidthSpace;</div> <div class="text-xs ${0}">${0}</div> </figcaption> </figure> </button> `),d({"relative w-full block text-left p-s rounded bg-contrast-5 overflow-hidden":!0,"focus-outline-none focus-ring-2 focus-ring-primary-50":!0,"transition-colors hover-bg-contrast-10":!t.conflict,"cursor-default":!!t.conflict}),!!t.conflict,t.conflict?this.t("conflict_message",t.conflict):"",(()=>this.edit({type:e,helper:t})),a,!!t.conflict,l,d({"h-m w-m object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs":!0,"filter grayscale":!!t.conflict}),a,l,d({"min-w-0 flex-1 truncate leading-s":!0,"text-disabled":!!t.conflict}),t.name,t.conflict?"":"text-secondary",e)}__renderBlock(e){return s(O||(O=z`${0}`),e.fields.map((e=>{var t,r,o;if("hidden"===e.type)return;const a=["additional-fields",e.id].join("-").replace(/_/g,"-"),l=()=>{var t,r;try{const o=JSON.parse(null!==(t=this.form.additional_fields)&&void 0!==t?t:"{}");return null!==(r=i(o,e.id))&&void 0!==r?r:o.default_value}catch(t){return e.default_value}},n=t=>{var r;let i={};try{i=JSON.parse(null!==(r=this.form.additional_fields)&&void 0!==r?r:"")}catch(e){}this.edit({additional_fields:JSON.stringify(h(i,e.id,t))})},d=e.options;return s(D||(D=z` ${0} `),"checkbox"===e.type?s(R||(R=z` <foxy-internal-switch-control helper-text="${0}" label="${0}" infer="${0}" helper-text-as-tooltip .getValue="${0}" .setValue="${0}"> </foxy-internal-switch-control> `),null!==(t=e.description)&&void 0!==t?t:"",e.name,a,l,n):"select"===e.type?s(W||(W=z` <foxy-internal-select-control placeholder="${0}" helper-text="${0}" layout="summary-item" label="${0}" infer="${0}" .options="${0}" .getValue="${0}" .setValue="${0}"> </foxy-internal-select-control> `),this.t("default_additional_field_select_placeholder"),null!==(r=e.description)&&void 0!==r?r:"",e.name,a,d.map((({name:e,value:t})=>({label:e,value:t}))),l,n):s(T||(T=z` <foxy-internal-text-control helper-text="${0}" placeholder="${0}" layout="summary-item" label="${0}" infer="${0}" .getValue="${0}" .setValue="${0}"> </foxy-internal-text-control> `),null!==(o=e.description)&&void 0!==o?o:"",e.default_value||this.t("default_additional_field_placeholder"),e.name,a,l,n))})))}}customElements.define("foxy-payments-api-payment-method-form",E);export{E as PaymentsApiPaymentMethodForm};
1
+ import"./shared-68a5368a.js";import"./shared-a3a18e8d.js";import"./shared-56d91134.js";import"./shared-e653b80e.js";import"./shared-eb086cef.js";import"./shared-0e1ad508.js";import"./shared-076f086a.js";import{I as e}from"./shared-7995cbcf.js";import"./foxy-nucleon-element.js";import"./foxy-spinner.js";import"./shared-70380f94.js";import{_ as t,B as r,l as i}from"./shared-cb58dfcd.js";import{g as o}from"./shared-bab2ea2c.js";import{a}from"./shared-1ce5b073.js";import{i as l}from"./shared-53e42a77.js";import{h as s,s as n}from"./shared-ba5c42c7.js";import{c as d}from"./shared-4e709717.js";import{h as c}from"./shared-ef4ad461.js";import{s as h}from"./shared-0aedd809.js";import"./shared-7b3aac7e.js";import"./shared-a3a4c368.js";import"./shared-500b7eb7.js";import"./shared-4e309d01.js";import"./shared-76cbea00.js";import"./shared-4ded48ee.js";import"./shared-92153a7f.js";import"./shared-d2304d50.js";import"./shared-677953e0.js";import"./shared-5212ef4f.js";import"./shared-5afb584d.js";import"./shared-2aa23b5f.js";import"./shared-f83207fb.js";import"./shared-5592ec6e.js";import"./shared-343d1fd7.js";import"./shared-cd96ff03.js";import"./shared-5e4a03d1.js";import"./shared-7594e563.js";import"./shared-5ef40e86.js";import"./shared-127ec8a7.js";import"./shared-0995ae7c.js";import"./shared-16ae74b2.js";import"./shared-5c057c26.js";import"./shared-20fb2969.js";import"./shared-986d0f7f.js";import"./shared-292dcee0.js";import"./shared-0662adb7.js";import"./shared-651c44fa.js";import"./shared-c365c1ae.js";import"./shared-f28e46bf.js";import"./shared-6b3b8c63.js";import"./shared-d0aed1c1.js";import"./shared-1f6366c0.js";import"./shared-a4ca1c5d.js";import"./foxy-copy-to-clipboard.js";import"./shared-75e7361d.js";let u,m,p,f,_,v,y,$,x,g,b,j,w,L,S,k,V,P,M,I,B,C,q,Z,H,O,D,R,W,T,z,A=e=>e;const E=a(e,"payments-api-payment-method-form");class G extends E{constructor(){super(...arguments),this.paymentPreset=null,this.getImageSrc=null,this.store=null,this.__availablePaymentMethodsLoaderId="availablePaymentMethodsLoader",this.__paymentPresetLoaderId="paymentPresetLoader",this.__storeLoaderId="storeLoader",this.__threeDSecureResponseGetValue=()=>{var e;return null===(e=this.form.config_3d_secure)||void 0===e?void 0:e.endsWith("require_valid_response")},this.__threeDSecureResponseSetValue=e=>{const t=e?"_require_valid_response":"",r=this.form.config_3d_secure,i=(null==r?void 0:r.startsWith("all_cards"))?"all_cards":"maestro_only";this.edit({config_3d_secure:`${i}${t}`})},this.__threeDSecureToggleGetValue=()=>{const e=this.form.config_3d_secure;return(null==e?void 0:e.startsWith("all_cards"))?"all_cards":(null==e?void 0:e.startsWith("maestro_only"))?"maestro_only":"off"},this.__threeDSecureToggleSetValue=e=>{var t;let r="";"all_cards"!==e&&"maestro_only"!==e||(r=(null===(t=this.form.config_3d_secure)||void 0===t?void 0:t.endsWith("require_valid_response"))?`${e}_require_valid_response`:e),this.edit({config_3d_secure:r})},this.__threeDSecureToggleOptions=[{value:"off",label:"option_off"},{value:"all_cards",label:"option_all_cards"},{value:"maestro_only",label:"option_maestro_only"}],this.__cardVerificationOptions=[{label:"option_disabled",value:"disabled"},{label:"option_enabled_automatically",value:"enabled_automatically"},{label:"option_enabled_override",value:"enabled_override"}]}static get defaultImageSrc(){return"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E"}static get properties(){return t(t({},super.properties),{},{paymentPreset:{attribute:"payment-preset"},getImageSrc:{attribute:!1},store:{}})}static get v8n(){return[({description:e})=>!e||e.length<=100||"description:v8n_too_long",({type:e})=>!!e||"type:v8n_required",e=>{var t,r,i,o;const a=null!==(i=null===(r=null===(t=e.helper)||void 0===t?void 0:t.additional_fields)||void 0===r?void 0:r.blocks)&&void 0!==i?i:[];let l;try{l=JSON.parse(null!==(o=e.additional_fields)&&void 0!==o?o:"{}")}catch(e){l={}}for(const e of a)for(const t of e.fields)if("optional"in t&&!t.optional&&!c(l,t.id)&&"checkbox"!==t.type)return"additional-fields:v8n_invalid";return!0}]}get hiddenSelector(){return new r(`header:copy-json ${super.hiddenSelector}`.trimEnd())}renderHeader(...e){var t;return s(u||(u=A` <div> ${0} ${0} </div> `),super.renderHeader(...e),(null===(t=this.data)||void 0===t?void 0:t.type)||!this.form.type?s(m||(m=A``)):s(p||(p=A` <vaadin-button data-testid="select-another-button" theme="tertiary-inline" @click="${0}"> <foxy-i18n infer="" key="select_another_button_label"></foxy-i18n> </vaadin-button> `),(()=>this.undo())))}get headerTitleOptions(){var e;return{context:this.form.type?"selected":"new",name:null===(e=this.form.helper)||void 0===e?void 0:e.name}}get headerSubtitleOptions(){if(this.href){const e=o(this.href),t=this.headerCopyIdValue;return e.startsWith("R")?{context:"regular",id:t}:{context:"hosted",id:t}}return{}}get headerCopyIdValue(){if(this.href){const e=o(this.href);return e.startsWith("R")?e.slice(1):e.slice(1).split("C")[0]}return""}renderBody(){var e;const t=null===(e=this.__paymentPresetLoader)||void 0===e?void 0:e.data,r=s(f||(f=A` <foxy-nucleon class="hidden" infer="" href="${0}" id="${0}" @update="${0}"> </foxy-nucleon> <foxy-nucleon class="hidden" infer="" href="${0}" id="${0}" @update="${0}"> </foxy-nucleon> <foxy-nucleon class="hidden" infer="" href="${0}" id="${0}" @update="${0}"> </foxy-nucleon> `),l(null==t?void 0:t._links["fx:available_payment_methods"].href),this.__availablePaymentMethodsLoaderId,(()=>this.requestUpdate()),l(this.store),this.__storeLoaderId,(()=>this.requestUpdate()),l(this.paymentPreset),this.__paymentPresetLoaderId,(()=>this.requestUpdate()));return s(_||(_=A`${0}${0}${0}`),this.renderHeader(),this.form.type?this.__renderPaymentMethodConfig():this.__renderPaymentMethodSelector(),r)}get __groupedAvailablePaymentMethods(){var e;return Object.entries(null!==(e=this.__availablePaymentMethods)&&void 0!==e?e:{}).sort(((e,t)=>e[0].localeCompare(t[0],"en"))).reduce(((e,[t,r])=>{if(r.is_deprecated)return e;const i=t.charAt(0).toUpperCase(),o=!/\w/.test(i)?"#":i,a=e.find((e=>e.name===o));return a?a.items.push({type:t,helper:r}):e.push({name:o,items:[{type:t,helper:r}]}),e}),[])}get __availablePaymentMethodsLoader(){return this.renderRoot.querySelector(`#${this.__availablePaymentMethodsLoaderId}`)}get __availablePaymentMethods(){var e,t;return null===(t=null===(e=this.__availablePaymentMethodsLoader)||void 0===e?void 0:e.data)||void 0===t?void 0:t.values}get __paymentPresetLoader(){return this.renderRoot.querySelector(`#${this.__paymentPresetLoaderId}`)}get __storeLoader(){return this.renderRoot.querySelector(`#${this.__storeLoaderId}`)}get __liveBlocks(){var e,t,r;return null!==(r=null===(t=null===(e=this.form.helper)||void 0===e?void 0:e.additional_fields)||void 0===t?void 0:t.blocks.filter((e=>e.is_live)))&&void 0!==r?r:[]}get __testBlocks(){var e,t,r;return null!==(r=null===(t=null===(e=this.form.helper)||void 0===e?void 0:e.additional_fields)||void 0===t?void 0:t.blocks.filter((e=>!e.is_live)))&&void 0!==r?r:[]}__renderPaymentMethodSelector(){const e=this.__availablePaymentMethodsLoader;return(null==e?void 0:e.data)?s(y||(y=A` <div> <section data-testid="select-method-list" class="-mt-m"> ${0} </section> </div> `),this.__groupedAvailablePaymentMethods.map((({name:e,items:t})=>s($||($=A` <p class="font-medium text-tertiary py-m">${0}</p> <ul class="grid grid-cols-2 gap-m"> ${0} </ul> `),e,t.map((e=>s(x||(x=A`<li>${0}</li>`),this.__renderPaymentMethodButton(e)))))))):s(v||(v=A` <foxy-spinner infer="list-spinner" state="${0}"> </foxy-spinner> `),(null==e?void 0:e.in("fail"))?"error":"busy")}__renderPaymentMethodConfig(){var e,t;return this.form.type&&["stripe_connect","square_up","quickbook_payments","amazon_mws","paypal_platform"].includes(this.form.type)?s(g||(g=A` <div class="flex items-start rounded border border-primary" style="gap:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px);padding:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)"> ${0} <p> <foxy-i18n infer="" key="no_oauth_support_message"></foxy-i18n> <br> <a target="_blank" class="mt-xs inline-block rounded font-medium text-primary transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50" href="https://admin.foxycart.com"> admin.foxycart.com </a> </p> </div> `),n(b||(b=A`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="flex-shrink-0 text-primary" style="width: 1.25em"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path></svg>`))):s(j||(j=A` <foxy-internal-summary-control infer="general"> <foxy-internal-text-control layout="summary-item" infer="description"> </foxy-internal-text-control> ${0} ${0} </foxy-internal-summary-control> ${0} ${0} `),(null===(e=this.form.helper)||void 0===e?void 0:e.supports_auth_only)?s(w||(w=A` <foxy-internal-switch-control infer="use-auth-only" helper-text-as-tooltip> </foxy-internal-switch-control> `)):"",(null===(t=this.form.helper)||void 0===t?void 0:t.supports_3d_secure)?s(L||(L=A` <foxy-internal-select-control layout="summary-item" infer="three-d-secure-toggle" .getValue="${0}" .setValue="${0}" .options="${0}"> </foxy-internal-select-control> ${0} `),this.__threeDSecureToggleGetValue,this.__threeDSecureToggleSetValue,this.__threeDSecureToggleOptions,this.form.config_3d_secure?s(S||(S=A` <foxy-internal-switch-control layout="summary-item" infer="three-d-secure-response" .getValue="${0}" .setValue="${0}"> </foxy-internal-switch-control> `),this.__threeDSecureResponseGetValue,this.__threeDSecureResponseSetValue):""):"",["live","test"].map(((e,t)=>{var r,i,o,a,d,c,h,u,m,p,f,_,v,y,$;const x=0===t?"":`${e}_`,g=0===t?"":`${e}-`,b=0===t?this.__liveBlocks:this.__testBlocks,j=`${e}-group`;if("live"===e&&!(null===(r=this.__storeLoader)||void 0===r?void 0:r.data))return s(k||(k=A``));if("live"===e&&!(null===(o=null===(i=this.__storeLoader)||void 0===i?void 0:i.data)||void 0===o?void 0:o.is_active))return s(V||(V=A` <foxy-internal-summary-control infer="${0}-group"> <div class="flex items-start" style="gap:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)"> ${0} <p><foxy-i18n infer="" key="inactive_message"></foxy-i18n></p> </div> </foxy-internal-summary-control> `),e,n(P||(P=A`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="flex-shrink-0 text-primary" style="width: 1.25em"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path></svg>`)));const w=!0===(null===(d=null===(a=this.__storeLoader)||void 0===a?void 0:a.data)||void 0===d?void 0:d.is_active)&&("test"===e&&!0===(null===(h=null===(c=this.__paymentPresetLoader)||void 0===c?void 0:c.data)||void 0===h?void 0:h.is_live)||"live"===e&&!1===(null===(m=null===(u=this.__paymentPresetLoader)||void 0===u?void 0:u.data)||void 0===m?void 0:m.is_live));return s(M||(M=A` <foxy-internal-summary-control helper-text="${0}" layout="section" label="${0}" infer="${0}"> <foxy-internal-summary-control infer="" label="" helper-text=""> ${0} ${0} ${0} ${0} ${0} </foxy-internal-summary-control> ${0} </foxy-internal-summary-control> `),l(w?this.t(`${j}.helper_text_inactive`):void 0),l(w?this.t(`${j}.label_inactive`):void 0),j,(null===(p=this.form.helper)||void 0===p?void 0:p.id_description)?s(I||(I=A` <foxy-internal-text-control placeholder="${0}" helper-text="" layout="summary-item" label="${0}" infer="${0}account-id"> </foxy-internal-text-control> `),this.t("default_additional_field_placeholder"),this.form.helper.id_description,g):"",(null===(f=this.form.helper)||void 0===f?void 0:f.third_party_key_description)?s(B||(B=A` <foxy-internal-password-control placeholder="${0}" helper-text="" layout="summary-item" label="${0}" infer="${0}third-party-key"> </foxy-internal-password-control> `),this.t("default_additional_field_placeholder"),this.form.helper.third_party_key_description,g):"",(null===(_=this.form.helper)||void 0===_?void 0:_.key_description)?s(C||(C=A` <foxy-internal-password-control placeholder="${0}" layout="summary-item" helper-text="" label="${0}" infer="${0}account-key"> </foxy-internal-password-control> `),this.t("default_additional_field_placeholder"),this.form.helper.key_description,g):"",b.map((e=>this.__renderBlock(e))),(null===(v=this.form.helper)||void 0===v?void 0:v.supports_card_verification)?s(q||(q=A` <foxy-internal-select-control helper-text="${0}" layout="summary-item" infer="${0}card-verification" .options="${0}" .getValue="${0}"> </foxy-internal-select-control> `),this.t(`${j}.${g}card-verification.helper_text_${this.form[`${x}card_verification`]||"disabled"}`),g,this.__cardVerificationOptions,(()=>this.form[`${x}card_verification`]||"disabled")):"",(null===(y=this.form.helper)||void 0===y?void 0:y.supports_card_verification)&&(null===($=this.form[`${x}card_verification`])||void 0===$?void 0:$.startsWith("enabled_"))?s(Z||(Z=A` <foxy-internal-summary-control layout="details" class="mt-s" infer="${0}card-verification-config"> ${0} </foxy-internal-summary-control> `),g,["visa","mastercard","american-express","discover","default"].map((e=>{var t;return s(H||(H=A` <foxy-internal-number-control json-template="${0}" json-path="verification_amounts.${0}" property="${0}card_verification_config" layout="summary-item" suffix="¤" infer="${0}card-verification-config-verification-amounts-${0}" step="0.01" min="0"> </foxy-internal-number-control> `),l(null===(t=this.form.helper)||void 0===t?void 0:t.card_verification_config),e.replace(/-/g,"_"),x,g,e)}))):"")})),super.renderBody())}__renderPaymentMethodButton({type:e,helper:t}){var r,i;const o=G.defaultImageSrc,a=null!==(i=null===(r=this.getImageSrc)||void 0===r?void 0:r.call(this,e))&&void 0!==i?i:o,l=e=>e.currentTarget.src=o;return s(O||(O=A` <button class="${0}" ?disabled="${0}" title="${0}" @click="${0}"> <img class="absolute top-0 left-0 w-1-2 h-full object-cover bg-center filter saturate-200 blur-3xl" style="transform:translate3d(0,0,0)" src="${0}" alt="" ?hidden="${0}" @error="${0}"> <figure class="relative flex flex-col gap-m"> <img class="${0}" src="${0}" alt="" @error="${0}"> <figcaption class="${0}"> <div class="font-medium">${0}&ZeroWidthSpace;</div> <div class="text-xs ${0}">${0}</div> </figcaption> </figure> </button> `),d({"relative w-full block text-left p-s rounded bg-contrast-5 overflow-hidden":!0,"focus-outline-none focus-ring-2 focus-ring-primary-50":!0,"transition-colors hover-bg-contrast-10":!t.conflict,"cursor-default":!!t.conflict}),!!t.conflict,t.conflict?this.t("conflict_message",t.conflict):"",(()=>this.edit({type:e,helper:t})),a,!!t.conflict,l,d({"h-m w-m object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs":!0,"filter grayscale":!!t.conflict}),a,l,d({"min-w-0 flex-1 truncate leading-s":!0,"text-disabled":!!t.conflict}),t.name,t.conflict?"":"text-secondary",e)}__renderBlock(e){return s(D||(D=A`${0}`),e.fields.map((e=>{var t,r,o;if("hidden"===e.type)return;const a=["additional-fields",e.id].join("-").replace(/_/g,"-"),l=()=>{var t,r;try{const o=JSON.parse(null!==(t=this.form.additional_fields)&&void 0!==t?t:"{}");return null!==(r=i(o,e.id))&&void 0!==r?r:o.default_value}catch(t){return e.default_value}},n=t=>{var r;let i={};try{i=JSON.parse(null!==(r=this.form.additional_fields)&&void 0!==r?r:"")}catch(e){}this.edit({additional_fields:JSON.stringify(h(i,e.id,t))})},d=e.options;return s(R||(R=A` ${0} `),"checkbox"===e.type?s(W||(W=A` <foxy-internal-switch-control helper-text="${0}" label="${0}" infer="${0}" helper-text-as-tooltip .getValue="${0}" .setValue="${0}"> </foxy-internal-switch-control> `),null!==(t=e.description)&&void 0!==t?t:"",e.name,a,l,n):"select"===e.type?s(T||(T=A` <foxy-internal-select-control placeholder="${0}" helper-text="${0}" layout="summary-item" label="${0}" infer="${0}" .options="${0}" .getValue="${0}" .setValue="${0}"> </foxy-internal-select-control> `),this.t("default_additional_field_select_placeholder"),null!==(r=e.description)&&void 0!==r?r:"",e.name,a,d.map((({name:e,value:t})=>({label:e,value:t}))),l,n):s(z||(z=A` <foxy-internal-text-control helper-text="${0}" placeholder="${0}" layout="summary-item" label="${0}" infer="${0}" .getValue="${0}" .setValue="${0}"> </foxy-internal-text-control> `),null!==(o=e.description)&&void 0!==o?o:"",e.default_value||this.t("default_additional_field_placeholder"),e.name,a,l,n))})))}}customElements.define("foxy-payments-api-payment-method-form",G);export{G as PaymentsApiPaymentMethodForm};
@@ -26,30 +26,45 @@
26
26
  "label_inactive": "Test setup (inactive)",
27
27
  "helper_text": "",
28
28
  "helper_text_inactive": "To use this setup, turn off the \"Use live credentials\" option in the payment method set.",
29
- "card-verification-config-verification-amounts-visa": {
30
- "label": "Visa verification amount",
31
- "placeholder": "1",
32
- "helper_text": ""
33
- },
34
- "card-verification-config-verification-amounts-mastercard": {
35
- "label": "Mastercard verification amount",
36
- "placeholder": "1",
37
- "helper_text": ""
38
- },
39
- "card-verification-config-verification-amounts-american-express": {
40
- "label": "American Express verification amount",
41
- "placeholder": "1",
42
- "helper_text": ""
43
- },
44
- "card-verification-config-verification-amounts-discover": {
45
- "label": "Discover verification amount",
46
- "placeholder": "1",
47
- "helper_text": ""
29
+ "test-card-verification": {
30
+ "label": "Card verification",
31
+ "placeholder": "Select",
32
+ "helper_text": "",
33
+ "helper_text_disabled": "Will never verify payment methods. Not recommended.",
34
+ "helper_text_enabled_automatically": "Will perform a verification on zero-amount transactions when a payment method is required (such as future subscriptions). Greater than zero-amount transactions will be authorized or auth+captured at the full amount.",
35
+ "helper_text_enabled_override": "For all transactions where a payment method is required (both zero-amount and greater than zero-amount), the payment method will be verified. Payment will not be collected without additional action. Only recommended in specific situations.",
36
+ "option_disabled": "Off",
37
+ "option_enabled_automatically": "Enabled (auto)",
38
+ "option_enabled_override": "Enabled (always)"
48
39
  },
49
- "card-verification-config-verification-amounts-default": {
50
- "label": "Default verification amount",
51
- "placeholder": "1",
52
- "helper_text": ""
40
+ "test-card-verification-config": {
41
+ "label": "Card verification amounts",
42
+ "helper_text": "",
43
+ "test-card-verification-config-verification-amounts-visa": {
44
+ "label": "Visa",
45
+ "placeholder": "1",
46
+ "helper_text": ""
47
+ },
48
+ "test-card-verification-config-verification-amounts-mastercard": {
49
+ "label": "Mastercard",
50
+ "placeholder": "1",
51
+ "helper_text": ""
52
+ },
53
+ "test-card-verification-config-verification-amounts-american-express": {
54
+ "label": "American Express",
55
+ "placeholder": "1",
56
+ "helper_text": ""
57
+ },
58
+ "test-card-verification-config-verification-amounts-discover": {
59
+ "label": "Discover",
60
+ "placeholder": "1",
61
+ "helper_text": ""
62
+ },
63
+ "test-card-verification-config-verification-amounts-default": {
64
+ "label": "Default",
65
+ "placeholder": "1",
66
+ "helper_text": ""
67
+ }
53
68
  }
54
69
  },
55
70
  "live-group": {
@@ -58,35 +73,6 @@
58
73
  "helper_text": "",
59
74
  "helper_text_inactive": "To use this setup, turn on the \"Use live credentials\" option in the payment method set.",
60
75
  "inactive_message": "Only active stores can accept real payments. To activate your store, please upgrade to a paid plan.",
61
- "card-verification-config-verification-amounts-visa": {
62
- "label": "Visa verification amount",
63
- "placeholder": "1",
64
- "helper_text": ""
65
- },
66
- "card-verification-config-verification-amounts-mastercard": {
67
- "label": "Mastercard verification amount",
68
- "placeholder": "1",
69
- "helper_text": ""
70
- },
71
- "card-verification-config-verification-amounts-american-express": {
72
- "label": "American Express verification amount",
73
- "placeholder": "1",
74
- "helper_text": ""
75
- },
76
- "card-verification-config-verification-amounts-discover": {
77
- "label": "Discover verification amount",
78
- "placeholder": "1",
79
- "helper_text": ""
80
- },
81
- "card-verification-config-verification-amounts-default": {
82
- "label": "Default verification amount",
83
- "placeholder": "1",
84
- "helper_text": ""
85
- }
86
- },
87
- "general": {
88
- "label": "",
89
- "helper_text": "",
90
76
  "card-verification": {
91
77
  "label": "Card verification",
92
78
  "placeholder": "Select",
@@ -98,6 +84,39 @@
98
84
  "option_enabled_automatically": "Enabled (auto)",
99
85
  "option_enabled_override": "Enabled (always)"
100
86
  },
87
+ "card-verification-config": {
88
+ "label": "Card verification amounts",
89
+ "helper_text": "",
90
+ "card-verification-config-verification-amounts-visa": {
91
+ "label": "Visa",
92
+ "placeholder": "1",
93
+ "helper_text": ""
94
+ },
95
+ "card-verification-config-verification-amounts-mastercard": {
96
+ "label": "Mastercard",
97
+ "placeholder": "1",
98
+ "helper_text": ""
99
+ },
100
+ "card-verification-config-verification-amounts-american-express": {
101
+ "label": "American Express",
102
+ "placeholder": "1",
103
+ "helper_text": ""
104
+ },
105
+ "card-verification-config-verification-amounts-discover": {
106
+ "label": "Discover",
107
+ "placeholder": "1",
108
+ "helper_text": ""
109
+ },
110
+ "card-verification-config-verification-amounts-default": {
111
+ "label": "Default",
112
+ "placeholder": "1",
113
+ "helper_text": ""
114
+ }
115
+ }
116
+ },
117
+ "general": {
118
+ "label": "",
119
+ "helper_text": "",
101
120
  "three-d-secure-toggle": {
102
121
  "label": "3D Secure",
103
122
  "placeholder": "Select",
@@ -79,30 +79,45 @@
79
79
  "label_inactive": "Test setup (inactive)",
80
80
  "helper_text": "",
81
81
  "helper_text_inactive": "To use this setup, turn off the \"Use live credentials\" option in the payment method set.",
82
- "card-verification-config-verification-amounts-visa": {
83
- "label": "Visa verification amount",
84
- "placeholder": "1",
85
- "helper_text": ""
86
- },
87
- "card-verification-config-verification-amounts-mastercard": {
88
- "label": "Mastercard verification amount",
89
- "placeholder": "1",
90
- "helper_text": ""
91
- },
92
- "card-verification-config-verification-amounts-american-express": {
93
- "label": "American Express verification amount",
94
- "placeholder": "1",
95
- "helper_text": ""
96
- },
97
- "card-verification-config-verification-amounts-discover": {
98
- "label": "Discover verification amount",
99
- "placeholder": "1",
100
- "helper_text": ""
82
+ "test-card-verification": {
83
+ "label": "Card verification",
84
+ "placeholder": "Select",
85
+ "helper_text": "",
86
+ "helper_text_disabled": "Will never verify payment methods. Not recommended.",
87
+ "helper_text_enabled_automatically": "Will perform a verification on zero-amount transactions when a payment method is required (such as future subscriptions). Greater than zero-amount transactions will be authorized or auth+captured at the full amount.",
88
+ "helper_text_enabled_override": "For all transactions where a payment method is required (both zero-amount and greater than zero-amount), the payment method will be verified. Payment will not be collected without additional action. Only recommended in specific situations.",
89
+ "option_disabled": "Off",
90
+ "option_enabled_automatically": "Enabled (auto)",
91
+ "option_enabled_override": "Enabled (always)"
101
92
  },
102
- "card-verification-config-verification-amounts-default": {
103
- "label": "Default verification amount",
104
- "placeholder": "1",
105
- "helper_text": ""
93
+ "test-card-verification-config": {
94
+ "label": "Card verification amounts",
95
+ "helper_text": "",
96
+ "test-card-verification-config-verification-amounts-visa": {
97
+ "label": "Visa",
98
+ "placeholder": "1",
99
+ "helper_text": ""
100
+ },
101
+ "test-card-verification-config-verification-amounts-mastercard": {
102
+ "label": "Mastercard",
103
+ "placeholder": "1",
104
+ "helper_text": ""
105
+ },
106
+ "test-card-verification-config-verification-amounts-american-express": {
107
+ "label": "American Express",
108
+ "placeholder": "1",
109
+ "helper_text": ""
110
+ },
111
+ "test-card-verification-config-verification-amounts-discover": {
112
+ "label": "Discover",
113
+ "placeholder": "1",
114
+ "helper_text": ""
115
+ },
116
+ "test-card-verification-config-verification-amounts-default": {
117
+ "label": "Default",
118
+ "placeholder": "1",
119
+ "helper_text": ""
120
+ }
106
121
  }
107
122
  },
108
123
  "live-group": {
@@ -111,35 +126,6 @@
111
126
  "helper_text": "",
112
127
  "helper_text_inactive": "To use this setup, turn on the \"Use live credentials\" option in the payment method set.",
113
128
  "inactive_message": "Only active stores can accept real payments. To activate your store, please upgrade to a paid plan.",
114
- "card-verification-config-verification-amounts-visa": {
115
- "label": "Visa verification amount",
116
- "placeholder": "1",
117
- "helper_text": ""
118
- },
119
- "card-verification-config-verification-amounts-mastercard": {
120
- "label": "Mastercard verification amount",
121
- "placeholder": "1",
122
- "helper_text": ""
123
- },
124
- "card-verification-config-verification-amounts-american-express": {
125
- "label": "American Express verification amount",
126
- "placeholder": "1",
127
- "helper_text": ""
128
- },
129
- "card-verification-config-verification-amounts-discover": {
130
- "label": "Discover verification amount",
131
- "placeholder": "1",
132
- "helper_text": ""
133
- },
134
- "card-verification-config-verification-amounts-default": {
135
- "label": "Default verification amount",
136
- "placeholder": "1",
137
- "helper_text": ""
138
- }
139
- },
140
- "general": {
141
- "label": "",
142
- "helper_text": "",
143
129
  "card-verification": {
144
130
  "label": "Card verification",
145
131
  "placeholder": "Select",
@@ -151,6 +137,39 @@
151
137
  "option_enabled_automatically": "Enabled (auto)",
152
138
  "option_enabled_override": "Enabled (always)"
153
139
  },
140
+ "card-verification-config": {
141
+ "label": "Card verification amounts",
142
+ "helper_text": "",
143
+ "card-verification-config-verification-amounts-visa": {
144
+ "label": "Visa",
145
+ "placeholder": "1",
146
+ "helper_text": ""
147
+ },
148
+ "card-verification-config-verification-amounts-mastercard": {
149
+ "label": "Mastercard",
150
+ "placeholder": "1",
151
+ "helper_text": ""
152
+ },
153
+ "card-verification-config-verification-amounts-american-express": {
154
+ "label": "American Express",
155
+ "placeholder": "1",
156
+ "helper_text": ""
157
+ },
158
+ "card-verification-config-verification-amounts-discover": {
159
+ "label": "Discover",
160
+ "placeholder": "1",
161
+ "helper_text": ""
162
+ },
163
+ "card-verification-config-verification-amounts-default": {
164
+ "label": "Default",
165
+ "placeholder": "1",
166
+ "helper_text": ""
167
+ }
168
+ }
169
+ },
170
+ "general": {
171
+ "label": "",
172
+ "helper_text": "",
154
173
  "three-d-secure-toggle": {
155
174
  "label": "3D Secure",
156
175
  "placeholder": "Select",
@@ -36,7 +36,6 @@ export declare class PaymentsApiPaymentMethodForm extends Base<Data> {
36
36
  private readonly __threeDSecureToggleGetValue;
37
37
  private readonly __threeDSecureToggleSetValue;
38
38
  private readonly __threeDSecureToggleOptions;
39
- private readonly __cardVerificationGetValue;
40
39
  private readonly __cardVerificationOptions;
41
40
  get hiddenSelector(): BooleanSelector;
42
41
  renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult;
@@ -68,10 +68,6 @@ export class PaymentsApiPaymentMethodForm extends Base {
68
68
  { value: 'all_cards', label: 'option_all_cards' },
69
69
  { value: 'maestro_only', label: 'option_maestro_only' },
70
70
  ];
71
- this.__cardVerificationGetValue = () => {
72
- // @ts-expect-error SDK typings are incomplete
73
- return this.form.card_verification || 'disabled';
74
- };
75
71
  this.__cardVerificationOptions = [
76
72
  { label: 'option_disabled', value: 'disabled' },
77
73
  { label: 'option_enabled_automatically', value: 'enabled_automatically' },
@@ -268,7 +264,7 @@ export class PaymentsApiPaymentMethodForm extends Base {
268
264
  `;
269
265
  }
270
266
  __renderPaymentMethodConfig() {
271
- var _a, _b, _c;
267
+ var _a, _b;
272
268
  const oauthGateways = [
273
269
  'stripe_connect',
274
270
  'square_up',
@@ -330,23 +326,12 @@ export class PaymentsApiPaymentMethodForm extends Base {
330
326
  : ''}
331
327
  `
332
328
  : ''}
333
- ${
334
- // @ts-expect-error SDK typings are incomplete
335
- ((_c = this.form.helper) === null || _c === void 0 ? void 0 : _c.supports_card_verification) ? html `
336
- <foxy-internal-select-control
337
- layout="summary-item"
338
- infer="card-verification"
339
- .getValue=${this.__cardVerificationGetValue}
340
- .options=${this.__cardVerificationOptions}
341
- >
342
- </foxy-internal-select-control>
343
- `
344
- : ''}
345
329
  </foxy-internal-summary-control>
346
330
 
347
331
  ${['live', 'test'].map((type, index) => {
348
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
349
- const prefix = index === 0 ? '' : `${type}-`;
332
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
333
+ const propertyPrefix = index === 0 ? '' : `${type}_`;
334
+ const inferPrefix = index === 0 ? '' : `${type}-`;
350
335
  const blocks = index === 0 ? this.__liveBlocks : this.__testBlocks;
351
336
  const scope = `${type}-group`;
352
337
  if (type === 'live' && !((_a = this.__storeLoader) === null || _a === void 0 ? void 0 : _a.data))
@@ -370,68 +355,96 @@ export class PaymentsApiPaymentMethodForm extends Base {
370
355
  return html `
371
356
  <foxy-internal-summary-control
372
357
  helper-text=${ifDefined(showInactiveSetText ? this.t(`${scope}.helper_text_inactive`) : void 0)}
373
- layout="details"
358
+ layout="section"
374
359
  label=${ifDefined(showInactiveSetText ? this.t(`${scope}.label_inactive`) : void 0)}
375
360
  infer=${scope}
376
- ?open=${!showInactiveSetText}
377
361
  >
378
- ${((_k = this.form.helper) === null || _k === void 0 ? void 0 : _k.id_description) ? html `
379
- <foxy-internal-text-control
380
- placeholder=${this.t('default_additional_field_placeholder')}
381
- helper-text=""
382
- layout="summary-item"
383
- label=${this.form.helper.id_description}
384
- infer="${prefix}account-id"
385
- >
386
- </foxy-internal-text-control>
387
- `
362
+ <foxy-internal-summary-control infer="" label="" helper-text="">
363
+ ${((_k = this.form.helper) === null || _k === void 0 ? void 0 : _k.id_description) ? html `
364
+ <foxy-internal-text-control
365
+ placeholder=${this.t('default_additional_field_placeholder')}
366
+ helper-text=""
367
+ layout="summary-item"
368
+ label=${this.form.helper.id_description}
369
+ infer="${inferPrefix}account-id"
370
+ >
371
+ </foxy-internal-text-control>
372
+ `
373
+ : ''}
374
+ ${((_l = this.form.helper) === null || _l === void 0 ? void 0 : _l.third_party_key_description) ? html `
375
+ <foxy-internal-password-control
376
+ placeholder=${this.t('default_additional_field_placeholder')}
377
+ helper-text=""
378
+ layout="summary-item"
379
+ label=${this.form.helper.third_party_key_description}
380
+ infer="${inferPrefix}third-party-key"
381
+ >
382
+ </foxy-internal-password-control>
383
+ `
388
384
  : ''}
389
- ${((_l = this.form.helper) === null || _l === void 0 ? void 0 : _l.third_party_key_description) ? html `
390
- <foxy-internal-password-control
391
- placeholder=${this.t('default_additional_field_placeholder')}
392
- helper-text=""
393
- layout="summary-item"
394
- label=${this.form.helper.third_party_key_description}
395
- infer="${prefix}third-party-key"
396
- >
397
- </foxy-internal-password-control>
398
- `
385
+ ${((_m = this.form.helper) === null || _m === void 0 ? void 0 : _m.key_description) ? html `
386
+ <foxy-internal-password-control
387
+ placeholder=${this.t('default_additional_field_placeholder')}
388
+ layout="summary-item"
389
+ helper-text=""
390
+ label=${this.form.helper.key_description}
391
+ infer="${inferPrefix}account-key"
392
+ >
393
+ </foxy-internal-password-control>
394
+ `
399
395
  : ''}
400
- ${((_m = this.form.helper) === null || _m === void 0 ? void 0 : _m.key_description) ? html `
401
- <foxy-internal-password-control
402
- placeholder=${this.t('default_additional_field_placeholder')}
403
- layout="summary-item"
404
- helper-text=""
405
- label=${this.form.helper.key_description}
406
- infer="${prefix}account-key"
407
- >
408
- </foxy-internal-password-control>
409
- `
396
+ ${blocks.map(block => this.__renderBlock(block))}
397
+ ${
398
+ // @ts-expect-error SDK typings are incomplete
399
+ ((_o = this.form.helper) === null || _o === void 0 ? void 0 : _o.supports_card_verification) ? html `
400
+ <foxy-internal-select-control
401
+ helper-text=${this.t(`${scope}.${inferPrefix}card-verification.helper_text_${
402
+ // @ts-expect-error SDK typings are incomplete
403
+ this.form[`${propertyPrefix}card_verification`] || 'disabled'}`)}
404
+ layout="summary-item"
405
+ infer="${inferPrefix}card-verification"
406
+ .options=${this.__cardVerificationOptions}
407
+ .getValue=${() => {
408
+ // @ts-expect-error SDK typings are incomplete
409
+ return this.form[`${propertyPrefix}card_verification`] || 'disabled';
410
+ }}
411
+ >
412
+ </foxy-internal-select-control>
413
+ `
410
414
  : ''}
411
- ${blocks.map(block => this.__renderBlock(block))}
415
+ </foxy-internal-summary-control>
416
+
412
417
  ${
413
418
  // @ts-expect-error SDK typings are incomplete
414
- ((_o = this.form.helper) === null || _o === void 0 ? void 0 : _o.supports_card_verification) && ((_p =
419
+ ((_p = this.form.helper) === null || _p === void 0 ? void 0 : _p.supports_card_verification) && ((_q =
415
420
  // @ts-expect-error SDK typings are incomplete
416
- this.form.card_verification) === null || _p === void 0 ? void 0 : _p.startsWith('enabled_'))
417
- ? ['visa', 'mastercard', 'american-express', 'discover', 'default'].map(type => {
421
+ this.form[`${propertyPrefix}card_verification`]) === null || _q === void 0 ? void 0 : _q.startsWith('enabled_'))
422
+ ? html `
423
+ <foxy-internal-summary-control
424
+ layout="details"
425
+ class="mt-s"
426
+ infer="${inferPrefix}card-verification-config"
427
+ >
428
+ ${['visa', 'mastercard', 'american-express', 'discover', 'default'].map(type => {
418
429
  var _a;
419
430
  return html `
420
- <foxy-internal-number-control
421
- json-template=${ifDefined((_a =
431
+ <foxy-internal-number-control
432
+ json-template=${ifDefined((_a =
422
433
  // @ts-expect-error SDK typings are incomplete
423
434
  this.form.helper) === null || _a === void 0 ? void 0 : _a.card_verification_config)}
424
- json-path="verification_amounts.${type.replace(/-/g, '_')}"
425
- property="${prefix.replace(/-/g, '_')}card_verification_config"
426
- layout="summary-item"
427
- suffix="¤"
428
- infer="card-verification-config-verification-amounts-${type}"
429
- step="0.01"
430
- min="0"
431
- >
432
- </foxy-internal-number-control>
433
- `;
434
- })
435
+ json-path="verification_amounts.${type.replace(/-/g, '_')}"
436
+ property="${propertyPrefix}card_verification_config"
437
+ layout="summary-item"
438
+ suffix="¤"
439
+ infer="${inferPrefix}card-verification-config-verification-amounts-${type}"
440
+ step="0.01"
441
+ min="0"
442
+ >
443
+ </foxy-internal-number-control>
444
+ `;
445
+ })}
446
+ </foxy-internal-summary-control>
447
+ `
435
448
  : ''}
436
449
  </foxy-internal-summary-control>
437
450
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsApiPaymentMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AvailablePaymentMethods, PaymentPreset } from '../PaymentsApi/api/types';\nimport type { Block, Data } from './types';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\nimport has from 'lodash-es/has';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\n\ntype PaymentMethod = {\n helper: AvailablePaymentMethods['values'][string];\n type: string;\n};\n\nconst NS = 'payments-api-payment-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for the `fx:payment_method` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-method-form\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentMethodForm extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentPreset: { attribute: 'payment-preset' },\n getImageSrc: { attribute: false },\n store: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ description: v }) => !v || v.length <= 100 || 'description:v8n_too_long',\n ({ type: v }) => !!v || 'type:v8n_required',\n\n form => {\n const blocks = form.helper?.additional_fields?.blocks ?? [];\n let additionalFields: Record<string, unknown>;\n\n try {\n additionalFields = JSON.parse(form.additional_fields ?? '{}');\n } catch {\n additionalFields = {};\n }\n\n for (const block of blocks) {\n for (const field of block.fields) {\n if ('optional' in (field as Record<string, unknown>)) {\n if (!(field as Record<string, unknown>).optional) {\n if (!has(additionalFields, field.id)) {\n if (field.type !== 'checkbox') {\n return 'additional-fields:v8n_invalid';\n }\n }\n }\n }\n }\n }\n\n return true;\n },\n ];\n }\n\n /** URL of the linked `fx:payment_preset` resource from the virtual Payments API. */\n paymentPreset: string | null = null;\n\n /** A function that returns a URL of a payment method icon based on the given type. */\n getImageSrc: ((type: string) => string) | null = null;\n\n /** URL of the linked `fx:store` resource. */\n store: string | null = null;\n\n private readonly __availablePaymentMethodsLoaderId = 'availablePaymentMethodsLoader';\n\n private readonly __paymentPresetLoaderId = 'paymentPresetLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __threeDSecureResponseGetValue = () => {\n return this.form.config_3d_secure?.endsWith('require_valid_response');\n };\n\n private readonly __threeDSecureResponseSetValue = (newValue: boolean) => {\n const postfix = newValue ? '_require_valid_response' : '';\n const config = this.form.config_3d_secure;\n const type = config?.startsWith('all_cards') ? 'all_cards' : 'maestro_only';\n\n this.edit({ config_3d_secure: `${type}${postfix}` as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleGetValue = () => {\n const config = this.form.config_3d_secure;\n\n if (config?.startsWith('all_cards')) return 'all_cards';\n if (config?.startsWith('maestro_only')) return 'maestro_only';\n\n return 'off';\n };\n\n private readonly __threeDSecureToggleSetValue = (\n newValue: 'off' | 'all_cards' | 'maestro_only'\n ) => {\n let newFormValue = '';\n\n if (newValue === 'all_cards' || newValue === 'maestro_only') {\n if (this.form.config_3d_secure?.endsWith('require_valid_response')) {\n newFormValue = `${newValue}_require_valid_response`;\n } else {\n newFormValue = newValue;\n }\n }\n\n this.edit({ config_3d_secure: newFormValue as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleOptions = [\n { value: 'off', label: 'option_off' },\n { value: 'all_cards', label: 'option_all_cards' },\n { value: 'maestro_only', label: 'option_maestro_only' },\n ];\n\n private readonly __cardVerificationGetValue = () => {\n // @ts-expect-error SDK typings are incomplete\n return this.form.card_verification || 'disabled';\n };\n\n private readonly __cardVerificationOptions = [\n { label: 'option_disabled', value: 'disabled' },\n { label: 'option_enabled_automatically', value: 'enabled_automatically' },\n { label: 'option_enabled_override', value: 'enabled_override' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`header:copy-json ${super.hiddenSelector}`.trimEnd());\n }\n\n renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult {\n return html`\n <div>\n ${super.renderHeader(...params)}\n ${this.data?.type || !this.form.type\n ? html``\n : html`\n <vaadin-button\n data-testid=\"select-another-button\"\n theme=\"tertiary-inline\"\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"select_another_button_label\"></foxy-i18n>\n </vaadin-button>\n `}\n </div>\n `;\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return {\n context: this.form.type ? 'selected' : 'new',\n name: this.form.helper?.name,\n };\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n if (this.href) {\n const vId = getResourceId(this.href) as string;\n const id = this.headerCopyIdValue;\n if (vId.startsWith('R')) return { context: 'regular', id };\n return { context: 'hosted', id };\n }\n\n return {};\n }\n\n get headerCopyIdValue(): string | number {\n if (this.href) {\n const id = getResourceId(this.href) as string;\n return id.startsWith('R') ? id.slice(1) : id.slice(1).split('C')[0];\n } else {\n return '';\n }\n }\n\n renderBody(): TemplateResult {\n const paymentPreset = this.__paymentPresetLoader?.data;\n\n const loaders = html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(paymentPreset?._links['fx:available_payment_methods'].href)}\n id=${this.__availablePaymentMethodsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.store)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.paymentPreset)}\n id=${this.__paymentPresetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n\n return html`${this.renderHeader()}${this.form.type\n ? this.__renderPaymentMethodConfig()\n : this.__renderPaymentMethodSelector()}${loaders}`;\n }\n\n private get __groupedAvailablePaymentMethods() {\n return Object.entries(this.__availablePaymentMethods ?? {})\n .sort((a, b) => a[0].localeCompare(b[0], 'en'))\n .reduce((groups, [type, helper]) => {\n if (helper.is_deprecated) return groups;\n\n const firstChar = type.charAt(0).toUpperCase();\n const isSpecialCharacter = !/\\w/.test(firstChar);\n const name = isSpecialCharacter ? '#' : firstChar;\n const group = groups.find(group => group.name === name);\n\n if (group) {\n group.items.push({ type, helper });\n } else {\n groups.push({ name, items: [{ type, helper }] });\n }\n\n return groups;\n }, [] as { name: string; items: PaymentMethod[] }[]);\n }\n\n private get __availablePaymentMethodsLoader() {\n type Loader = NucleonElement<AvailablePaymentMethods>;\n return this.renderRoot.querySelector<Loader>(`#${this.__availablePaymentMethodsLoaderId}`);\n }\n\n private get __availablePaymentMethods() {\n return this.__availablePaymentMethodsLoader?.data?.values;\n }\n\n private get __paymentPresetLoader() {\n type Loader = NucleonElement<PaymentPreset>;\n return this.renderRoot.querySelector<Loader>(`#${this.__paymentPresetLoaderId}`);\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n\n private get __liveBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => block.is_live) ?? [];\n }\n\n private get __testBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => !block.is_live) ?? [];\n }\n\n private __renderPaymentMethodSelector() {\n const loader = this.__availablePaymentMethodsLoader;\n\n if (!loader?.data) {\n return html`\n <foxy-spinner infer=\"list-spinner\" state=${loader?.in('fail') ? 'error' : 'busy'}>\n </foxy-spinner>\n `;\n }\n\n return html`\n <div>\n <section data-testid=\"select-method-list\" class=\"-mt-m\">\n ${this.__groupedAvailablePaymentMethods.map(({ name, items }) => {\n return html`\n <p class=\"font-medium text-tertiary py-m\">${name}</p>\n <ul class=\"grid grid-cols-2 gap-m\">\n ${items.map(item => html`<li>${this.__renderPaymentMethodButton(item)}</li>`)}\n </ul>\n `;\n })}\n </section>\n </div>\n `;\n }\n\n private __renderPaymentMethodConfig() {\n const oauthGateways = [\n 'stripe_connect',\n 'square_up',\n 'quickbook_payments',\n 'amazon_mws',\n 'paypal_platform',\n ];\n\n if (this.form.type && oauthGateways.includes(this.form.type)) {\n return html`\n <div\n class=\"flex items-start rounded border border-primary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"no_oauth_support_message\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"mt-xs inline-block rounded font-medium text-primary transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://admin.foxycart.com\"\n >\n admin.foxycart.com\n </a>\n </p>\n </div>\n `;\n }\n\n return html`\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"description\">\n </foxy-internal-text-control>\n\n ${this.form.helper?.supports_auth_only\n ? html`\n <foxy-internal-switch-control infer=\"use-auth-only\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n `\n : ''}\n ${this.form.helper?.supports_3d_secure\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"three-d-secure-toggle\"\n .getValue=${this.__threeDSecureToggleGetValue}\n .setValue=${this.__threeDSecureToggleSetValue}\n .options=${this.__threeDSecureToggleOptions}\n >\n </foxy-internal-select-control>\n\n ${this.form.config_3d_secure\n ? html`\n <foxy-internal-switch-control\n layout=\"summary-item\"\n infer=\"three-d-secure-response\"\n .getValue=${this.__threeDSecureResponseGetValue}\n .setValue=${this.__threeDSecureResponseSetValue}\n >\n </foxy-internal-switch-control>\n `\n : ''}\n `\n : ''}\n ${\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.supports_card_verification\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"card-verification\"\n .getValue=${this.__cardVerificationGetValue}\n .options=${this.__cardVerificationOptions}\n >\n </foxy-internal-select-control>\n `\n : ''\n }\n </foxy-internal-summary-control>\n\n ${['live', 'test'].map((type, index) => {\n const prefix = index === 0 ? '' : `${type}-`;\n const blocks = index === 0 ? this.__liveBlocks : this.__testBlocks;\n const scope = `${type}-group`;\n\n if (type === 'live' && !this.__storeLoader?.data) return html``;\n if (type === 'live' && !this.__storeLoader?.data?.is_active) {\n return html`\n <foxy-internal-summary-control infer=\"${type}-group\">\n <div\n class=\"flex items-start\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p><foxy-i18n infer=\"\" key=\"inactive_message\"></foxy-i18n></p>\n </div>\n </foxy-internal-summary-control>\n `;\n }\n\n const showInactiveSetText =\n this.__storeLoader?.data?.is_active === true &&\n ((type === 'test' && this.__paymentPresetLoader?.data?.is_live === true) ||\n (type === 'live' && this.__paymentPresetLoader?.data?.is_live === false));\n\n return html`\n <foxy-internal-summary-control\n helper-text=${ifDefined(\n showInactiveSetText ? this.t(`${scope}.helper_text_inactive`) : void 0\n )}\n layout=\"details\"\n label=${ifDefined(showInactiveSetText ? this.t(`${scope}.label_inactive`) : void 0)}\n infer=${scope}\n ?open=${!showInactiveSetText}\n >\n ${this.form.helper?.id_description\n ? html`\n <foxy-internal-text-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.id_description}\n infer=\"${prefix}account-id\"\n >\n </foxy-internal-text-control>\n `\n : ''}\n ${this.form.helper?.third_party_key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.third_party_key_description}\n infer=\"${prefix}third-party-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${this.form.helper?.key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n helper-text=\"\"\n label=${this.form.helper.key_description}\n infer=\"${prefix}account-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${blocks.map(block => this.__renderBlock(block))}\n ${\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.supports_card_verification &&\n // @ts-expect-error SDK typings are incomplete\n this.form.card_verification?.startsWith('enabled_')\n ? ['visa', 'mastercard', 'american-express', 'discover', 'default'].map(type => {\n return html`\n <foxy-internal-number-control\n json-template=${ifDefined(\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.card_verification_config\n )}\n json-path=\"verification_amounts.${type.replace(/-/g, '_')}\"\n property=\"${prefix.replace(/-/g, '_')}card_verification_config\"\n layout=\"summary-item\"\n suffix=\"¤\"\n infer=\"card-verification-config-verification-amounts-${type}\"\n step=\"0.01\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n `;\n })\n : ''\n }\n </foxy-internal-summary-control>\n `;\n })}\n ${super.renderBody()}\n `;\n }\n\n private __renderPaymentMethodButton({ type, helper }: PaymentMethod) {\n const defaultSrc = PaymentsApiPaymentMethodForm.defaultImageSrc;\n const src = this.getImageSrc?.(type) ?? defaultSrc;\n const onError = (evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc);\n\n return html`\n <button\n class=${classMap({\n 'relative w-full block text-left p-s rounded bg-contrast-5 overflow-hidden': true,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n 'transition-colors hover-bg-contrast-10': !helper.conflict,\n 'cursor-default': !!helper.conflict,\n })}\n ?disabled=${!!helper.conflict}\n title=${helper.conflict ? this.t('conflict_message', helper.conflict) : ''}\n @click=${() => this.edit({ type, helper })}\n >\n <img\n class=\"absolute top-0 left-0 w-1-2 h-full object-cover bg-center filter saturate-200 blur-3xl\"\n style=\"transform: translate3d(0, 0, 0)\"\n src=${src}\n alt=\"\"\n ?hidden=${!!helper.conflict}\n @error=${onError}\n />\n\n <figure class=\"relative flex flex-col gap-m\">\n <img\n class=${classMap({\n 'h-m w-m object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs': true,\n 'filter grayscale': !!helper.conflict,\n })}\n src=${src}\n alt=\"\"\n @error=${onError}\n />\n\n <figcaption\n class=${classMap({\n 'min-w-0 flex-1 truncate leading-s': true,\n 'text-disabled': !!helper.conflict,\n })}\n >\n <div class=\"font-medium\">${helper.name}&ZeroWidthSpace;</div>\n <div class=\"text-xs ${helper.conflict ? '' : 'text-secondary'}\">${type}</div>\n </figcaption>\n </figure>\n </button>\n `;\n }\n\n private __renderBlock(block: Block) {\n return html`${block.fields.map(field => {\n if (field.type === 'hidden') return;\n const scope = ['additional-fields', field.id].join('-').replace(/_/g, '-');\n\n const getValue = () => {\n try {\n const config = JSON.parse(this.form.additional_fields ?? '{}');\n return get(config, field.id) ?? config.default_value;\n } catch {\n return field.default_value;\n }\n };\n\n const setValue = (newValue: unknown) => {\n let config: Record<string, unknown> = {};\n\n try {\n config = JSON.parse(this.form.additional_fields ?? '');\n } catch {\n // ignore\n }\n\n this.edit({ additional_fields: JSON.stringify(set(config, field.id, newValue)) });\n };\n\n type Option = { name: string; value: string };\n const options = (field as { options?: Option[] }).options;\n\n return html`\n ${field.type === 'checkbox'\n ? html`\n <foxy-internal-switch-control\n helper-text=${field.description ?? ''}\n label=${field.name}\n infer=${scope}\n helper-text-as-tooltip\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-switch-control>\n `\n : field.type === 'select'\n ? html`\n <foxy-internal-select-control\n placeholder=${this.t('default_additional_field_select_placeholder')}\n helper-text=${field.description ?? ''}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .options=${options!.map(({ name, value }) => ({ label: name, value }))}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control\n helper-text=${field.description ?? ''}\n placeholder=${field.default_value || this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-text-control>\n `}\n `;\n })}`;\n }\n}\n"]}
1
+ {"version":3,"file":"PaymentsApiPaymentMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AvailablePaymentMethods, PaymentPreset } from '../PaymentsApi/api/types';\nimport type { Block, Data } from './types';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\nimport has from 'lodash-es/has';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\n\ntype PaymentMethod = {\n helper: AvailablePaymentMethods['values'][string];\n type: string;\n};\n\nconst NS = 'payments-api-payment-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for the `fx:payment_method` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-method-form\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentMethodForm extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentPreset: { attribute: 'payment-preset' },\n getImageSrc: { attribute: false },\n store: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ description: v }) => !v || v.length <= 100 || 'description:v8n_too_long',\n ({ type: v }) => !!v || 'type:v8n_required',\n\n form => {\n const blocks = form.helper?.additional_fields?.blocks ?? [];\n let additionalFields: Record<string, unknown>;\n\n try {\n additionalFields = JSON.parse(form.additional_fields ?? '{}');\n } catch {\n additionalFields = {};\n }\n\n for (const block of blocks) {\n for (const field of block.fields) {\n if ('optional' in (field as Record<string, unknown>)) {\n if (!(field as Record<string, unknown>).optional) {\n if (!has(additionalFields, field.id)) {\n if (field.type !== 'checkbox') {\n return 'additional-fields:v8n_invalid';\n }\n }\n }\n }\n }\n }\n\n return true;\n },\n ];\n }\n\n /** URL of the linked `fx:payment_preset` resource from the virtual Payments API. */\n paymentPreset: string | null = null;\n\n /** A function that returns a URL of a payment method icon based on the given type. */\n getImageSrc: ((type: string) => string) | null = null;\n\n /** URL of the linked `fx:store` resource. */\n store: string | null = null;\n\n private readonly __availablePaymentMethodsLoaderId = 'availablePaymentMethodsLoader';\n\n private readonly __paymentPresetLoaderId = 'paymentPresetLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __threeDSecureResponseGetValue = () => {\n return this.form.config_3d_secure?.endsWith('require_valid_response');\n };\n\n private readonly __threeDSecureResponseSetValue = (newValue: boolean) => {\n const postfix = newValue ? '_require_valid_response' : '';\n const config = this.form.config_3d_secure;\n const type = config?.startsWith('all_cards') ? 'all_cards' : 'maestro_only';\n\n this.edit({ config_3d_secure: `${type}${postfix}` as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleGetValue = () => {\n const config = this.form.config_3d_secure;\n\n if (config?.startsWith('all_cards')) return 'all_cards';\n if (config?.startsWith('maestro_only')) return 'maestro_only';\n\n return 'off';\n };\n\n private readonly __threeDSecureToggleSetValue = (\n newValue: 'off' | 'all_cards' | 'maestro_only'\n ) => {\n let newFormValue = '';\n\n if (newValue === 'all_cards' || newValue === 'maestro_only') {\n if (this.form.config_3d_secure?.endsWith('require_valid_response')) {\n newFormValue = `${newValue}_require_valid_response`;\n } else {\n newFormValue = newValue;\n }\n }\n\n this.edit({ config_3d_secure: newFormValue as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleOptions = [\n { value: 'off', label: 'option_off' },\n { value: 'all_cards', label: 'option_all_cards' },\n { value: 'maestro_only', label: 'option_maestro_only' },\n ];\n\n private readonly __cardVerificationOptions = [\n { label: 'option_disabled', value: 'disabled' },\n { label: 'option_enabled_automatically', value: 'enabled_automatically' },\n { label: 'option_enabled_override', value: 'enabled_override' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`header:copy-json ${super.hiddenSelector}`.trimEnd());\n }\n\n renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult {\n return html`\n <div>\n ${super.renderHeader(...params)}\n ${this.data?.type || !this.form.type\n ? html``\n : html`\n <vaadin-button\n data-testid=\"select-another-button\"\n theme=\"tertiary-inline\"\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"select_another_button_label\"></foxy-i18n>\n </vaadin-button>\n `}\n </div>\n `;\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return {\n context: this.form.type ? 'selected' : 'new',\n name: this.form.helper?.name,\n };\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n if (this.href) {\n const vId = getResourceId(this.href) as string;\n const id = this.headerCopyIdValue;\n if (vId.startsWith('R')) return { context: 'regular', id };\n return { context: 'hosted', id };\n }\n\n return {};\n }\n\n get headerCopyIdValue(): string | number {\n if (this.href) {\n const id = getResourceId(this.href) as string;\n return id.startsWith('R') ? id.slice(1) : id.slice(1).split('C')[0];\n } else {\n return '';\n }\n }\n\n renderBody(): TemplateResult {\n const paymentPreset = this.__paymentPresetLoader?.data;\n\n const loaders = html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(paymentPreset?._links['fx:available_payment_methods'].href)}\n id=${this.__availablePaymentMethodsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.store)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.paymentPreset)}\n id=${this.__paymentPresetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n\n return html`${this.renderHeader()}${this.form.type\n ? this.__renderPaymentMethodConfig()\n : this.__renderPaymentMethodSelector()}${loaders}`;\n }\n\n private get __groupedAvailablePaymentMethods() {\n return Object.entries(this.__availablePaymentMethods ?? {})\n .sort((a, b) => a[0].localeCompare(b[0], 'en'))\n .reduce((groups, [type, helper]) => {\n if (helper.is_deprecated) return groups;\n\n const firstChar = type.charAt(0).toUpperCase();\n const isSpecialCharacter = !/\\w/.test(firstChar);\n const name = isSpecialCharacter ? '#' : firstChar;\n const group = groups.find(group => group.name === name);\n\n if (group) {\n group.items.push({ type, helper });\n } else {\n groups.push({ name, items: [{ type, helper }] });\n }\n\n return groups;\n }, [] as { name: string; items: PaymentMethod[] }[]);\n }\n\n private get __availablePaymentMethodsLoader() {\n type Loader = NucleonElement<AvailablePaymentMethods>;\n return this.renderRoot.querySelector<Loader>(`#${this.__availablePaymentMethodsLoaderId}`);\n }\n\n private get __availablePaymentMethods() {\n return this.__availablePaymentMethodsLoader?.data?.values;\n }\n\n private get __paymentPresetLoader() {\n type Loader = NucleonElement<PaymentPreset>;\n return this.renderRoot.querySelector<Loader>(`#${this.__paymentPresetLoaderId}`);\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n\n private get __liveBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => block.is_live) ?? [];\n }\n\n private get __testBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => !block.is_live) ?? [];\n }\n\n private __renderPaymentMethodSelector() {\n const loader = this.__availablePaymentMethodsLoader;\n\n if (!loader?.data) {\n return html`\n <foxy-spinner infer=\"list-spinner\" state=${loader?.in('fail') ? 'error' : 'busy'}>\n </foxy-spinner>\n `;\n }\n\n return html`\n <div>\n <section data-testid=\"select-method-list\" class=\"-mt-m\">\n ${this.__groupedAvailablePaymentMethods.map(({ name, items }) => {\n return html`\n <p class=\"font-medium text-tertiary py-m\">${name}</p>\n <ul class=\"grid grid-cols-2 gap-m\">\n ${items.map(item => html`<li>${this.__renderPaymentMethodButton(item)}</li>`)}\n </ul>\n `;\n })}\n </section>\n </div>\n `;\n }\n\n private __renderPaymentMethodConfig() {\n const oauthGateways = [\n 'stripe_connect',\n 'square_up',\n 'quickbook_payments',\n 'amazon_mws',\n 'paypal_platform',\n ];\n\n if (this.form.type && oauthGateways.includes(this.form.type)) {\n return html`\n <div\n class=\"flex items-start rounded border border-primary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"no_oauth_support_message\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"mt-xs inline-block rounded font-medium text-primary transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://admin.foxycart.com\"\n >\n admin.foxycart.com\n </a>\n </p>\n </div>\n `;\n }\n\n return html`\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"description\">\n </foxy-internal-text-control>\n\n ${this.form.helper?.supports_auth_only\n ? html`\n <foxy-internal-switch-control infer=\"use-auth-only\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n `\n : ''}\n ${this.form.helper?.supports_3d_secure\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"three-d-secure-toggle\"\n .getValue=${this.__threeDSecureToggleGetValue}\n .setValue=${this.__threeDSecureToggleSetValue}\n .options=${this.__threeDSecureToggleOptions}\n >\n </foxy-internal-select-control>\n\n ${this.form.config_3d_secure\n ? html`\n <foxy-internal-switch-control\n layout=\"summary-item\"\n infer=\"three-d-secure-response\"\n .getValue=${this.__threeDSecureResponseGetValue}\n .setValue=${this.__threeDSecureResponseSetValue}\n >\n </foxy-internal-switch-control>\n `\n : ''}\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${['live', 'test'].map((type, index) => {\n const propertyPrefix = index === 0 ? '' : `${type}_`;\n const inferPrefix = index === 0 ? '' : `${type}-`;\n const blocks = index === 0 ? this.__liveBlocks : this.__testBlocks;\n const scope = `${type}-group`;\n\n if (type === 'live' && !this.__storeLoader?.data) return html``;\n if (type === 'live' && !this.__storeLoader?.data?.is_active) {\n return html`\n <foxy-internal-summary-control infer=\"${type}-group\">\n <div\n class=\"flex items-start\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p><foxy-i18n infer=\"\" key=\"inactive_message\"></foxy-i18n></p>\n </div>\n </foxy-internal-summary-control>\n `;\n }\n\n const showInactiveSetText =\n this.__storeLoader?.data?.is_active === true &&\n ((type === 'test' && this.__paymentPresetLoader?.data?.is_live === true) ||\n (type === 'live' && this.__paymentPresetLoader?.data?.is_live === false));\n\n return html`\n <foxy-internal-summary-control\n helper-text=${ifDefined(\n showInactiveSetText ? this.t(`${scope}.helper_text_inactive`) : void 0\n )}\n layout=\"section\"\n label=${ifDefined(showInactiveSetText ? this.t(`${scope}.label_inactive`) : void 0)}\n infer=${scope}\n >\n <foxy-internal-summary-control infer=\"\" label=\"\" helper-text=\"\">\n ${this.form.helper?.id_description\n ? html`\n <foxy-internal-text-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.id_description}\n infer=\"${inferPrefix}account-id\"\n >\n </foxy-internal-text-control>\n `\n : ''}\n ${this.form.helper?.third_party_key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.third_party_key_description}\n infer=\"${inferPrefix}third-party-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${this.form.helper?.key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n helper-text=\"\"\n label=${this.form.helper.key_description}\n infer=\"${inferPrefix}account-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${blocks.map(block => this.__renderBlock(block))}\n ${\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.supports_card_verification\n ? html`\n <foxy-internal-select-control\n helper-text=${this.t(\n `${scope}.${inferPrefix}card-verification.helper_text_${\n // @ts-expect-error SDK typings are incomplete\n this.form[`${propertyPrefix}card_verification`] || 'disabled'\n }`\n )}\n layout=\"summary-item\"\n infer=\"${inferPrefix}card-verification\"\n .options=${this.__cardVerificationOptions}\n .getValue=${() => {\n // @ts-expect-error SDK typings are incomplete\n return this.form[`${propertyPrefix}card_verification`] || 'disabled';\n }}\n >\n </foxy-internal-select-control>\n `\n : ''\n }\n </foxy-internal-summary-control>\n\n ${\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.supports_card_verification &&\n // @ts-expect-error SDK typings are incomplete\n this.form[`${propertyPrefix}card_verification`]?.startsWith('enabled_')\n ? html`\n <foxy-internal-summary-control\n layout=\"details\"\n class=\"mt-s\"\n infer=\"${inferPrefix}card-verification-config\"\n >\n ${['visa', 'mastercard', 'american-express', 'discover', 'default'].map(\n type => {\n return html`\n <foxy-internal-number-control\n json-template=${ifDefined(\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.card_verification_config\n )}\n json-path=\"verification_amounts.${type.replace(/-/g, '_')}\"\n property=\"${propertyPrefix}card_verification_config\"\n layout=\"summary-item\"\n suffix=\"¤\"\n infer=\"${inferPrefix}card-verification-config-verification-amounts-${type}\"\n step=\"0.01\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n `;\n }\n )}\n </foxy-internal-summary-control>\n `\n : ''\n }\n </foxy-internal-summary-control>\n `;\n })}\n ${super.renderBody()}\n `;\n }\n\n private __renderPaymentMethodButton({ type, helper }: PaymentMethod) {\n const defaultSrc = PaymentsApiPaymentMethodForm.defaultImageSrc;\n const src = this.getImageSrc?.(type) ?? defaultSrc;\n const onError = (evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc);\n\n return html`\n <button\n class=${classMap({\n 'relative w-full block text-left p-s rounded bg-contrast-5 overflow-hidden': true,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n 'transition-colors hover-bg-contrast-10': !helper.conflict,\n 'cursor-default': !!helper.conflict,\n })}\n ?disabled=${!!helper.conflict}\n title=${helper.conflict ? this.t('conflict_message', helper.conflict) : ''}\n @click=${() => this.edit({ type, helper })}\n >\n <img\n class=\"absolute top-0 left-0 w-1-2 h-full object-cover bg-center filter saturate-200 blur-3xl\"\n style=\"transform: translate3d(0, 0, 0)\"\n src=${src}\n alt=\"\"\n ?hidden=${!!helper.conflict}\n @error=${onError}\n />\n\n <figure class=\"relative flex flex-col gap-m\">\n <img\n class=${classMap({\n 'h-m w-m object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs': true,\n 'filter grayscale': !!helper.conflict,\n })}\n src=${src}\n alt=\"\"\n @error=${onError}\n />\n\n <figcaption\n class=${classMap({\n 'min-w-0 flex-1 truncate leading-s': true,\n 'text-disabled': !!helper.conflict,\n })}\n >\n <div class=\"font-medium\">${helper.name}&ZeroWidthSpace;</div>\n <div class=\"text-xs ${helper.conflict ? '' : 'text-secondary'}\">${type}</div>\n </figcaption>\n </figure>\n </button>\n `;\n }\n\n private __renderBlock(block: Block) {\n return html`${block.fields.map(field => {\n if (field.type === 'hidden') return;\n const scope = ['additional-fields', field.id].join('-').replace(/_/g, '-');\n\n const getValue = () => {\n try {\n const config = JSON.parse(this.form.additional_fields ?? '{}');\n return get(config, field.id) ?? config.default_value;\n } catch {\n return field.default_value;\n }\n };\n\n const setValue = (newValue: unknown) => {\n let config: Record<string, unknown> = {};\n\n try {\n config = JSON.parse(this.form.additional_fields ?? '');\n } catch {\n // ignore\n }\n\n this.edit({ additional_fields: JSON.stringify(set(config, field.id, newValue)) });\n };\n\n type Option = { name: string; value: string };\n const options = (field as { options?: Option[] }).options;\n\n return html`\n ${field.type === 'checkbox'\n ? html`\n <foxy-internal-switch-control\n helper-text=${field.description ?? ''}\n label=${field.name}\n infer=${scope}\n helper-text-as-tooltip\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-switch-control>\n `\n : field.type === 'select'\n ? html`\n <foxy-internal-select-control\n placeholder=${this.t('default_additional_field_select_placeholder')}\n helper-text=${field.description ?? ''}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .options=${options!.map(({ name, value }) => ({ label: name, value }))}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control\n helper-text=${field.description ?? ''}\n placeholder=${field.default_value || this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-text-control>\n `}\n `;\n })}`;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@foxy.io/elements",
3
3
  "type": "module",
4
- "version": "1.42.0-beta.5",
4
+ "version": "1.42.0-beta.6",
5
5
  "description": "E-commerce web components by Foxy.",
6
6
  "repository": {
7
7
  "type": "git",