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