Build 576754stable
Module 778186
3,471 characters · in 7af349a24887a0e7.jsDependencies
Source Raw
function(e,t,i){i.d(t,{w:()=>h,consentMachine:()=>c});var n=i(209688),r=i(588233),o=i(171251),a=i(64755);async function s(e,t){if(!e)throw Error("Combined consent id is required");let i=await n.t.get(o.t.getCombinedConsent,{signal:t,query:{id:e,language:"en"}});if(!i.ok)throw Error(`GET ${o.t.getCombinedConsent} failed: ${i.status} ${i.statusText}`);return i.data}async function l(e,t){let i=await n.t.post(o.t.signCombinedConsent,e,{signal:t});if(!i.ok)throw Error(`POST ${o.t.signCombinedConsent} failed: ${i.status} ${i.statusText}`)}let c=(0,a.t)({types:{context:{},events:{},input:{}},actors:{fetchConsent:(0,a.a)(async({input:e,signal:t})=>s(e.consentId,t)),submitConsent:(0,a.a)(async({input:e,signal:t})=>{await l({languageConsentId:e.languageConsentId,checkboxes:e.checkboxes.reduce((e,t)=>(e[t.id]=t.checked,e),{})},t)})},actions:{setConsentData:(0,a.r)(({event:e})=>{let t=e.output;return{title:t.title,richText:t.terms,languageConsentId:t.languageConsentId,checkboxes:t.consents.map(e=>({id:e.checkboxId,label:e.consentText,required:!e.optional,checked:!1})),error:void 0}}),toggleCheckbox:(0,a.r)(({context:e,event:t})=>{let i=t.checkboxId;return{checkboxes:e.checkboxes.map(e=>e.id===i?{...e,checked:!e.checked}:e)}}),setError:(0,a.r)(({event:e})=>({error:String(e.error)})),clearError:(0,a.r)({error:()=>void 0}),resetContext:(0,a.r)(({context:e})=>({config:e.config,title:"",richText:"",languageConsentId:"",checkboxes:[],error:void 0}))},guards:{canSubmit:({context:e})=>e.checkboxes.filter(e=>e.required).every(e=>e.checked)}}).createMachine({id:"consent",initial:"idle",context:({input:e})=>({config:e.config,title:"",richText:"",languageConsentId:"",checkboxes:[],error:void 0}),states:{idle:{on:{LOAD:{target:"loading",actions:"clearError"}}},loading:{invoke:{id:"fetchConsent",src:"fetchConsent",input:({context:e})=>({consentId:String(e.config.combinedConsents??e.config.consentId??"")}),onDone:{target:"display",actions:"setConsentData"},onError:{target:"error",actions:"setError"}}},display:{on:{TOGGLE_CHECKBOX:{actions:"toggleCheckbox"},SUBMIT:{target:"submitting",guard:"canSubmit"},RETRY:{target:"loading",actions:"clearError"}}},submitting:{invoke:{id:"submitConsent",src:"submitConsent",input:({context:e})=>({languageConsentId:e.languageConsentId,checkboxes:e.checkboxes}),onDone:{target:"finished"},onError:{target:"display",actions:"setError"}}},error:{on:{RETRY:{target:"loading",actions:"clearError"},RESET:{target:"idle",actions:"resetContext"}}},finished:{type:"final"}}});function d(e){let{context:t}=e,i=t.checkboxes.filter(e=>e.required).every(e=>e.checked);return e.matches("idle")?{status:"idle"}:e.matches("loading")?{status:"loading"}:e.matches("display")?{status:"display",title:t.title,richText:t.richText,checkboxes:t.checkboxes,canSubmit:i,error:t.error}:e.matches("submitting")?{status:"submitting",title:t.title,richText:t.richText,checkboxes:t.checkboxes,canSubmit:!1}:e.matches("finished")?{status:"finished"}:e.matches("error")?{status:"error",error:t.error??"Unknown error"}:{status:"idle"}}function u({actor:e,trackElementClicked:t}){return{load(){e.send({type:"LOAD"})},toggleCheckbox(t){e.send({type:"TOGGLE_CHECKBOX",checkboxId:t})},submit(){t?.("submit"),e.send({type:"SUBMIT"})},retry(){t?.("retry"),e.send({type:"RETRY"})},reset(){e.send({type:"RESET"})}}}function h(e){return(0,a.c)({actor:(0,a.s)(c,{input:{config:e.config}}).start(),mapState:d,createApi:u,instrumentation:(0,r.o)(r.n.combinedConsent)})}}