1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6382],{72854:function(e,t,n){function a(e,t,n){return{...n,...e?.settlementConfig?.[t]}}n.d(t,{u:function(){return a}})},99970:function(e,t,n){n.d(t,{D:function(){return s}});var a=n(5933),r=n(46250);function s(){const{t:e}=(0,r.B)("views.admin.admin_sales");return a.createElement("p",{className:"text-sm text-midnightBlue-60 m-0"},e("settlement.card_settled_message","Card payment submitted."))}},6382:function(e,t,n){n.r(t),n.d(t,{buildTerminalRedeemParams:function(){return v},default:function(){return E}});var a=n(72854),r=n(15714),s=n(5933),l=n(46250),i=n(38085),u=n(13302),c=n(99970),o=n(9542);const m="online",d={terminalUuid:null};var f=function({isEditable:e=!0}){const{t:t}=(0,l.B)("views.admin.admin_sales"),{descriptor:n}=(0,i.NU)(),[{terminalUuid:a},r]=(0,u.X)(m,d);if(!e)return s.createElement(c.D,null);const f=n?.terminals?.available;if(!f?.length)return s.createElement("p",{"data-testid":"terminal-no-devices",className:"text-sm text-midnightBlue-40 m-0"},t("settlement.terminal.no_devices_message","No card terminal is registered for this organizer."));const g=t("settlement.terminal.device_label","Card terminal");return s.createElement("div",{className:"flex flex-col gap-1 font-sans"},s.createElement(o.JU,null,g),s.createElement("select",{"aria-label":g,value:a??n?.terminals?.default?.uuid??"",onChange:e=>r({terminalUuid:e.target.value}),className:"flex w-full items-center gap-2 rounded-main border-2 border-sageGreen-60 bg-white px-3 py-2 text-base text-midnightBlue-100 focus-within:border-sageGreen-80 focus-within:ring-1 focus-within:ring-sageGreen-80 focus:outline-none"},f.map((e=>s.createElement("option",{key:e.uuid,value:e.uuid},e.name)))))},g=n(19648);function p({orderId:e,close:t}){const{t:n}=(0,l.B)("views.admin.admin_sales"),[a,i]=(0,s.useState)(null),u=function({orderId:e,onStatus:t}){const n=(0,s.useRef)(null),a=(0,s.useRef)(t);a.current=t;const r=(0,s.useCallback)((()=>{n.current?.unsubscribe(),n.current=null}),[]);return(0,s.useEffect)((()=>{const t=document.body.getAttribute("data-sockets-token");return n.current=window.App?.cable?.subscriptions?.create({channel:"ManagerChannel",sockets_token:t},{received(t){"terminal_payment_status"===t?.type&&String(t.order_id)===String(e)&&a.current(t)}}),r}),[e,r]),r}({orderId:e,onStatus:function(e){"success"===e.status?c(r.AQ.SUCCESS):"failure"===e.status&&i(e.message??"")}});function c(e){u(),t({outcome:e})}const o=null!==a;return s.createElement("div",{className:"flex flex-col gap-4"},o?s.createElement("p",{role:"alert",className:"m-0 text-sm text-red-70"},n("settlement.terminal.declined_message","The card was declined: {{reason}}",{reason:a})):s.createElement("p",{className:"m-0 text-sm text-midnightBlue-60"},n("settlement.terminal.waiting_message","Waiting for the card terminal\u2026")),s.createElement("div",{className:"flex justify-end gap-2"},s.createElement(g.$n,{variant:"secondary",onPress:()=>c(o?r.AQ.FAILURE:r.AQ.UNKNOWN)},n("actions.close",{ns:"common",defaultValue:"Close"})),o&&s.createElement(g.$n,{variant:"cta",onPress:()=>c(r.AQ.RETRY)},n("retry_action","Retry"))))}const b=e=>(0,a.u)(e.storeState,m,d).terminalUuid??e.order?.terminals?.default?.uuid??null;function v(e){return{terminal_uuid:b(e)}}class x extends r.Vx{get paymentType(){return m}Config=f;buildRedeemParams=v;isSettleEnabled=e=>e.total>0&&!!b(e);onBeforeSettle=async e=>await e.dialogs.confirmSettle(e.total)?{}:null;onAfterSettle=async e=>await e.dialogs.open(p,{orderId:e.order?.id})??{outcome:r.AQ.UNKNOWN}}var E=new x}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.