@atlas-kitchen/adyen-web
Version:
3 lines (2 loc) • 4.33 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 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 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 O}from"../../../utils/debounce.js";import{AnalyticsInfoEvent as S}from"../../../core/Analytics/AnalyticsInfoEvent.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 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:B}=E,D=w(E,["items","placeholder","issuer","highlightedIds","showContextualElement","contextualText"]);const{i18n:N}=c(),{handleChangeFor:R,triggerValidation:L,data:G,valid:$,errors:K,isValid:q}=i({schema:_,defaultData:{issuer:M},rules:A}),[z,H]=s("ready"),[J,Q]=s(1),{setSRMessagesFromObjects:U,shouldMoveFocusSR:W}=m(),X=null==U?void 0:U({});this.setStatus=e=>{H(e)};const Y=r((e=>t=>{const s=1===e?p:y,r=P.find((e=>e.id===t.target.value)),o=new S({type:b,target:s,issuer:r.name});D.onSubmitAnalytics(o),Q(e),R("issuer")(t)}),[R]),Z=r((e=>{if(e){const e=new S({type:j,target:p});D.onSubmitAnalytics(e)}}),[]),ee=o(O(D.onSubmitAnalytics,v)),te=r((()=>{ee.current({type:C,target:x})}),[]);n((()=>{D.onChange({data:G,valid:$,errors:K,isValid:q});const e=null==X?void 0:X({errors:K,isValidating:!0});(null==e?void 0:e.action)===d&&W&&g(".adyen-checkout__issuer-list","issuer-list")}),[G,$,K,q]),this.showValidation=()=>{L()};const{highlightedItems:se}=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){F(e,t,s[t])}))}return e}({},t)),e)),{highlightedItems:[]});return e("div",{className:"adyen-checkout__issuer-list"},!!se.length&&e(t,null,e(l,{selectedIssuerId:0===J?G.issuer:null,items:se,onChange:Y(0)}),e(u,null)),e(a,{label:N.get("issuerList.selectField.label"),errorMessage:(re=K.issuer,re&&re.errorMessage?N.get(re.errorMessage):!!re),classNameModifiers:["issuer-list"],name:"issuer",showContextualElement:V,contextualText:B},e(h,{items:P,selectedValue:1===J?G.issuer:null,placeholder:k,name:"issuer",className:"adyen-checkout__issuer-list__dropdown",onChange:Y(1),onListToggle:Z,onInput:te})),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:z,label:I({issuer:G.issuer,items:[...P,...se]},N)}));var re}E.defaultProps={onChange:()=>{}};export{E as default};
//# sourceMappingURL=IssuerList.js.map