UNPKG

@adyen/adyen-web

Version:

[![npm](https://img.shields.io/npm/v/@adyen/adyen-web.svg)](https://www.npmjs.com/package/@adyen/adyen-web)

3 lines (2 loc) 4.21 kB
import{createElement as e,Fragment as t}from"../../../external/preact/dist/preact.js";import{useState as s,useCallback as r,useRef as o,useEffect as i}from"../../../external/preact/hooks/dist/hooks.js";import n from"../../../utils/useForm/useForm.js";import a from"../FormFields/Field/Field.js";import l from"./IssuerButtonGroup/IssuerButtonGroup.js";import u from"../ContentSeparator/ContentSeparator.js";import{useCoreContext as c}from"../../../core/Context/CoreProvider.js";import m from"../../../core/Errors/useSRPanelContext.js";import{ERROR_ACTION_FOCUS_FIELD as d}from"../../../core/Errors/constants.js";import{setFocusOnField as g}from"../../../utils/setFocus.js";import h from"../DisclaimerMessage/DisclaimerMessage.js";import f from"../FormFields/Select/Select.js";import{ANALYTICS_SELECTED_STR as p,ANALYTICS_DISPLAYED_STR as y,ANALYTICS_LIST as b,ANALYTICS_SEARCH_DEBOUNCE_TIME as j,ANALYTICS_INPUT_STR as v,ANALYTICS_LIST_SEARCH as x,ANALYTICS_FEATURED_ISSUER as C}from"../../../core/Analytics/constants.js";import{debounce as O}from"../../../utils/debounce.js";function F(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function S(e,t){if(null==e)return{};var s,r,o=function(e,t){if(null==e)return{};var s,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)s=i[r],t.indexOf(s)>=0||(o[s]=e[s]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)s=i[r],t.indexOf(s)>=0||Object.prototype.propertyIsEnumerable.call(e,s)&&(o[s]=e[s])}return o}const w=({issuer:e,items:t},s)=>{var r;const o=null===(r=t.find((t=>t.id===e)))||void 0===r?void 0:r.name;return e&&o?`${s.get("continueTo")} ${o}`:s.get("continue")},_=["issuer"],I={issuer:{validate:e=>!!e&&e.length>0,errorMessage:"issuerList.selectField.contextualText",modes:["blur"]}};function P(P){var{items:k,placeholder:E,issuer:M,highlightedIds:A=[],showContextualElement:T,contextualText:V}=P,B=S(P,["items","placeholder","issuer","highlightedIds","showContextualElement","contextualText"]);const{i18n:D}=c(),{handleChangeFor:N,triggerValidation:R,data:L,valid:G,errors:$,isValid:K}=n({schema:_,defaultData:{issuer:M},rules:I}),[q,z]=s("ready"),[H,J]=s(1),{setSRMessagesFromObjects:Q,shouldMoveFocusSR:U}=m(),W=null==Q?void 0:Q({});this.setStatus=e=>{z(e)};const X=r((e=>t=>{const s=1===e?b:C,r=k.find((e=>e.id===t.target.value));B.onSubmitAnalytics({type:p,target:s,issuer:r.name}),J(e),N("issuer")(t)}),[N]),Y=r((e=>{e&&B.onSubmitAnalytics({type:y,target:b})}),[]),Z=o(O(B.onSubmitAnalytics,j)),ee=r((()=>{Z.current({type:v,target:x})}),[]);i((()=>{B.onChange({data:L,valid:G,errors:$,isValid:K});const e=null==W?void 0:W({errors:$,isValidating:!0});(null==e?void 0:e.action)===d&&U&&g(".adyen-checkout__issuer-list",e.fieldToFocus)}),[L,G,$,K]),this.showValidation=()=>{R()};const{highlightedItems:te}=k.reduce(((e,t)=>(A.includes(t.id)&&e.highlightedItems.push(function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{},r=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(s).filter((function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable})))),r.forEach((function(t){F(e,t,s[t])}))}return e}({},t)),e)),{highlightedItems:[]});return e("div",{className:"adyen-checkout__issuer-list"},!!te.length&&e(t,null,e(l,{selectedIssuerId:0===H?L.issuer:null,items:te,onChange:X(0)}),e(u,null)),e(a,{label:D.get("issuerList.selectField.label"),errorMessage:(se=$.issuer,se&&se.errorMessage?D.get(se.errorMessage):!!se),classNameModifiers:["issuer-list"],name:"issuer",showContextualElement:T,contextualText:V},e(f,{items:k,selectedValue:1===H?L.issuer:null,placeholder:E,name:"issuer",className:"adyen-checkout__issuer-list__dropdown",onChange:X(1),onListToggle:Y,onInput:ee})),B.termsAndConditions&&e("div",{className:"adyen-checkout__issuer-list__termsAndConditions"},e(h,{message:D.get(B.termsAndConditions.translationKey),urls:B.termsAndConditions.urls})),B.showPayButton&&B.payButton({status:q,label:w({issuer:L.issuer,items:[...k,...te]},D)}));var se}P.defaultProps={onChange:()=>{}};export{P as default}; //# sourceMappingURL=IssuerList.js.map