You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
4.7 KiB

import{$t as e,Et as t,O as n,S as r,T as i,_ as a,in as o,k as s,q as c,w as l,x as u}from"./vue.runtime.esm-bundler-CACvpnko.js";import{i as d}from"./portalLocale-vgPGVHT0.js";import{_ as f,m as p,o as m}from"./api-Dpfxb1ca.js";import{c as h,f as g,i as _}from"./index-D5exsJys.js";import{t as v}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as y}from"./AudienceTicketQr-BOKIIgU4.js";var b=h.create({baseURL:`${f()}/api/v1/audience`,headers:{Accept:`application/json`,"Content-Type":`application/json`}});b.interceptors.request.use(e=>{let t=localStorage.getItem(m);return t&&(e.headers.Authorization=`Bearer ${t}`),typeof window<`u`&&new URLSearchParams(window.location.search).get(`lang`)===`en`&&(e.params={...e.params&&typeof e.params==`object`&&!Array.isArray(e.params)?{...e.params}:{},lang:`en`}),e}),b.interceptors.response.use(e=>e,e=>{if(h.isAxiosError(e)&&e.response?.status===401){p();let e=window.location.pathname.match(/^\/c\/([^/]+)\/audience(?!\/login)/);if(e?.[1]){let t=new URLSearchParams(window.location.search).get(`lang`)===`en`?`?lang=en`:``;window.location.assign(`/c/${encodeURIComponent(e[1])}/audience/login${t}`)}}return Promise.reject(e)});function x(e,t){if(h.isAxiosError(e)){let t=e.response?.data;if(t?.errors&&typeof t.errors==`object`){let e=Object.values(t.errors).flat()[0];if(e)return String(e)}if(typeof t?.message==`string`&&t.message.trim())return t.message.trim()}return e instanceof Error?e.message:t}async function S(e){let{data:t}=await b.get(`/me`,{params:e?{competition_slug:e}:void 0});return t}async function C(e){let{data:t}=await b.get(`/sessions`,{params:{competition_slug:e}});return Array.isArray(t.data)?t.data:[]}async function w(e){let{data:t}=await b.get(`/registrations`,{params:{competition_slug:e}});return Array.isArray(t.data)?t.data:[]}async function T(e,t){try{let{data:n}=await b.post(`/registrations`,{competition_slug:e,...t});return n}catch(e){throw Error(x(e,``))}}var E=[`aria-labelledby`],D={class:`modal-dialog modal-dialog-centered modal-dialog-scrollable`},O={class:`modal-content audience-ticket-card`},k={class:`modal-header border-0`},A=[`id`],j=[`aria-label`],M={class:`modal-body text-center pt-0`},N={class:`alert alert-warning audience-qr-save-alert`,role:`status`},P={class:`audience-ticket-lead`},F={class:`ticket-event-badge`},I={class:`mt-3 mb-1`},L={class:`text-secondary small mb-0`},R={class:`mt-3 mb-1`},z={class:`text-secondary small`},B=[`aria-label`],V={class:`ticket-code`},H={key:3,class:`small text-secondary mt-2 mb-3`},U={key:4,class:`small text-secondary mt-2 mb-0`},W=v(s({__name:`AudienceTicketModal`,props:{open:{type:Boolean},mode:{},slug:{},eventBadge:{},registration:{}},emits:[`close`],setup(s,{emit:f}){let p=f,{t:m}=_(),h=g(),v=u(()=>d(h.query));function b(e){return`${e.name} · ${e.phone}`}function x(e){return v.value===`en`&&e.session_name_en?.trim()?e.session_name_en.trim():e.session_name||m(`ticket.sessionFallback`)}return(u,d)=>s.open&&s.registration?(c(),i(a,{key:0},[r(`div`,{class:`modal-backdrop fade show audience-ticket-backdrop`,onClick:d[0]||=e=>p(`close`)}),r(`div`,{class:`modal fade show audience-ticket-dialog`,style:{display:`block`},tabindex:`-1`,"aria-labelledby":s.mode===`success`?`audienceTicketTitle`:`myTicketModalTitle`,"aria-modal":`true`,role:`dialog`},[r(`div`,D,[r(`div`,O,[r(`div`,k,[r(`h5`,{id:s.mode===`success`?`audienceTicketTitle`:`myTicketModalTitle`,class:`modal-title`},o(s.mode===`success`?t(m)(`ticket.successTitle`):t(m)(`ticket.myTicket`)),9,A),r(`button`,{type:`button`,class:`btn-close`,"aria-label":t(m)(`ticket.close`),onClick:d[1]||=e=>p(`close`)},null,8,j)]),r(`div`,M,[r(`div`,N,o(t(m)(`ticket.saveQr`)),1),s.mode===`success`?(c(),i(a,{key:0},[d[3]||=r(`div`,{class:`audience-ticket-success-mark`},`✓`,-1),r(`p`,P,o(t(m)(`ticket.lead`)),1),r(`span`,F,o(s.eventBadge),1),r(`h6`,I,o(x(s.registration)),1),r(`p`,L,o(b(s.registration)),1)],64)):(c(),i(a,{key:1},[r(`span`,{class:e([`my-ticket-status`,s.registration.checked_in_at?`is-checked`:`is-pending`])},o(s.registration.checked_in_at?t(m)(`ticket.checkedIn`):t(m)(`ticket.pending`)),3),r(`h6`,R,o(x(s.registration)),1),r(`p`,z,o(b(s.registration)),1)],64)),s.slug&&s.registration.ticket_code?(c(),i(`div`,{key:2,class:`ticket-qr ticket-qr-canvas`,"aria-label":t(m)(`ticket.qrAria`)},[n(y,{slug:s.slug,"ticket-code":s.registration.ticket_code,size:150},null,8,[`slug`,`ticket-code`])],8,B)):l(``,!0),r(`code`,V,o(s.registration.ticket_code),1),s.mode===`success`?(c(),i(`p`,H,o(t(m)(`ticket.showCode`)),1)):(c(),i(`p`,U,o(t(m)(`ticket.showAtGate`)),1)),s.mode===`success`?(c(),i(`button`,{key:5,class:`btn btn-primary w-100`,type:`button`,onClick:d[2]||=e=>p(`close`)},o(t(m)(`ticket.done`)),1)):l(``,!0)])])])],8,E)],64)):l(``,!0)}}),[[`__scopeId`,`data-v-908dee93`]]);export{T as a,C as i,S as n,w as r,W as t};