1import{a as Dt}from"./chunk-GOW2X7FP.js";import{a as St,b as Ot,c as Pt}from"./chunk-W7N5R3ZR.js";import{b as Tt}from"./chunk-T5JLGCXW.js";import{b as kt}from"./chunk-XAGTZNQS.js";import{c as wt,d as Mt}from"./chunk-LEQYIHQ2.js";import{b as Et,c as Qe}from"./chunk-NZGJLVRL.js";import{a as de,b as yt,c as Ct,d as be,e as Ee,f as we,g as ht,h as bt}from"./chunk-GCA53SQY.js";import"./chunk-UV7HQCMQ.js";import{a as dt,b as Ae,f as ct,g as pt,h as mt,i as ut,j as ze,k as gt,l as vt,m as _t,n as ft,o as xt,p as ie}from"./chunk-PDY364AF.js";import"./chunk-MM4MGH5U.js";import"./chunk-FK6H3RFT.js";import{a as ot}from"./chunk-QIMHDK5W.js";import{a as tt}from"./chunk-YD2B3FRD.js";import{a as et}from"./chunk-4F6ATKKE.js";import{a as $}from"./chunk-DTSRZLEI.js";import{a as st}from"./chunk-SOOVRZ3M.js";import{a as lt}from"./chunk-GIDIS2LO.js";import"./chunk-A7CRMQYF.js";import"./chunk-ATSDFQHF.js";import"./chunk-ZA7SD2JV.js";import{b as it,d as at,e as rt}from"./chunk-QZKUF6Y4.js";import{b as nt}from"./chunk-4HFYJFD7.js";import"./chunk-NPJP7CO5.js";import"./chunk-U3DXI737.js";import{D as Ge,M as Ye,N as he,O as Ke,R as Xe,Y as B,Z as Je,a as ee,b as te,d as Q,g as ne,h as j,i as Ue,j as je,p as W,q as fe,r as xe,s as Be,v as ye,x as Ce}from"./chunk-UOVZ2QVB.js";import{a as We,d as He,l as _e,m as K,y as Ze}from"./chunk-QN5HZEUI.js";import"./chunk-EQ7GOEDV.js";import{H as Y,ua as Z}from"./chunk-C3ZMX43Q.js";import{A as qe,Db as v,Dc as M,Eb as _,Fb as se,Gb as H,Gc as S,Hb as P,Hc as h,Ib as I,Jb as m,Kb as a,Lb as s,Mb as g,Tb as k,Vb as x,Xb as p,Ya as Ne,_ as Ve,bb as r,da as L,ec as ve,fc as J,gc as z,hc as $e,ic as l,jc as f,kc as T,la as y,lc as U,ma as C,q as me,qb as A,ra as ue,uc as le,vb as ge,wc as Fe,xa as b,za as re}from"./chunk-2WANGKQ3.js";import{a as ae,b as pe,h as R}from"./chunk-MG3ERZGY.js";function It(t){console.log("data: ",t);let n="qrArray"in t&&Array.isArray(t.qrArray)&&t.qrArray.every(u=>sn(u));console.log("hasQrData: ",n);let e="eventId"in t&&typeof t.eventId=="string",i="title"in t&&typeof t.title=="string",o="startTime"in t&&"endTime"in t&&typeof t.startTime=="number"&&typeof t.endTime=="number",d="timeOffset"in t&&typeof t.timeOffset=="number",c="outOfRange"in t&&typeof t.outOfRange=="boolean";return console.log(`isQRDataArray: hasQrData: ${n} hasEventId: ${e} hasTitle: ${i} hasStartAndEnd: ${o} hasTimeOffset: ${d} hasOutOfRange: ${c}`),n&&e&&i&&o&&d&&c}function Rt(t){console.log("data in static QR: ",t);let n="encryptedObject"in t&&typeof t.encryptedObject=="object"&&"iv"in t.encryptedObject&&typeof t.encryptedObject.iv=="string"&&"encryptedData"in t.encryptedObject&&typeof t.encryptedObject.encryptedData=="string",e="start"in t&&"end"in t&&typeof t.start=="object"&&"_seconds"in t.start&&typeof t.start._seconds=="number"&&"_nanoseconds"in t.start&&typeof t.start._nanoseconds=="number"&&typeof t.end=="object"&&"_seconds"in t.end&&typeof t.end._seconds=="number"&&"_nanoseconds"in t.end&&typeof t.end._nanoseconds=="number",i="eventName"in t&&typeof t.eventName=="string",o="outOfRange"in t&&typeof t.outOfRange=="boolean";return console.log("hasEncryptedObject: ",n+" hasStartAndEnd: ",e+" hasEventName: ",i+" hasOutOfRange: ",o),n&&e&&i&&o}function sn(t){console.log("data in live QR: ",t);let n="encryptedObject"in t&&typeof t.encryptedObject=="object"&&"iv"in t.encryptedObject&&typeof t.encryptedObject.iv=="string"&&"encryptedData"in t.encryptedObject&&typeof t.encryptedObject.encryptedData=="string",e="aliveAt"in t&&"deadAt"in t&&typeof t.aliveAt=="number"&&typeof t.deadAt=="number",i="isPaused"in t&&typeof t.isPaused=="boolean",o="isStatic"in t&&typeof t.isStatic=="boolean";return console.log(`isLiveQRData: hasEncryptedObject: ${n} hasAliveAndDead: ${e} hasIsPaused: ${i} hasIsStatic: ${o}`),n&&e&&i&&o}function Lt(t){return R(this,null,function*(){let e={h:yield ln(t)};return JSON.stringify(e)})}function ln(t){return R(this,null,function*(){let n=t.length<=6?t:t.slice(0,6),i=(yield dn(t)).slice(0,6);return`${n}${i}`})}function dn(t){return R(this,null,function*(){let n=new TextEncoder().encode(t),e=yield crypto.subtle.digest("SHA-1",n);return Array.from(new Uint8Array(e)).map(o=>o.toString(16).padStart(2,"0")).join("")})}var Te=class t{functions;constructor(){this.functions=_e()}getQrArrayFromServer(n){return R(this,null,function*(){let e=K(this.functions,"qrFunctions-generateQrArrayForWeb");try{let i=yield e(n);if(console.log(`result: ${JSON.stringify(i)}`),It(i.data))return i.data;throw new Error("Data fetched is not of type QrDataArray")}catch(i){throw console.error(`Error getting qr array: ${i}`),i}})}getStaticQrFromServer(n,e){return R(this,null,function*(){let i=K(this.functions,"qrFunctions-generateEncryptedQrStringForiAttendedWeb"),o={eventId:e,orgId:n};o.static=!0;try{let d=yield i(o);if(console.log(`result: ${JSON.stringify(d)}`),Rt(d.data))return d.data;throw console.error(`Not a QrData object: ${d.data}`),new Error("Data fetched is not of type QrData")}catch(d){throw console.error(`Error getting static qr: ${d}`),d}
1})}generateEncryptedQrStringForiAttendedWeb(n,e,i=!0){return R(this,null,function*(){let o=K(this.functions,"qrFunctions-generateEncryptedQrStringForiAttendedWeb");try{let d=yield o({eventId:e,orgId:n,isStatic:i});if(console.log(`result from server: ${JSON.stringify(d)}`),!d.data)throw console.error("No data returned from the function"),new Error("No data returned from the function");let c=d.data;return{qrData:{encryptedObject:c.encryptedObject,aliveAt:c.start?.seconds*1e3,deadAt:c.end?.seconds*1e3,isPaused:!1,isStatic:!0},startTime:c.start,endTime:c.end,title:c.eventName,isError:!1,outOfRange:c.outOfRange}}catch(d){throw console.error(`Error generating encrypted qr string: ${d}`),new Error("Error generating encrypted qr string")}})}generateQrArrayForWeb(n){return R(this,null,function*(){let o=(yield K(this.functions,"qrFunctions-generateQrArrayForWeb")(n).catch(d=>{throw console.error(`Error generating QR array: ${d}`),d})).data;return{qrData:o.qrArray,eventId:o.eventId,title:o.title,startTime:o.startTime.seconds*1e3,endTime:o.endTime.seconds*1e3,timeOffset:o.timeOffset,outOfRange:o.outOfRange}})}static \u0275fac=function(e){return new(e||t)};static \u0275prov=Ve({token:t,factory:t.\u0275fac,providedIn:"root"})};function At(t,n,e,i=!1){return R(this,null,function*(){let o=cn(e.title,n,i);if(n==="svg"){let d=pn(t,e,i);qt(new Blob([d],{type:"image/svg+xml;charset=utf-8"}),o)}else n==="pdf"?yield un(t,o,e,i):yield mn(t,n,o,e,i)})}function cn(t,n,e){return`${(t||"event").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"event"}-static-qr${e?"-with-details":""}.${n}`}function zt(t,n=1200){let e=st(0,"M");e.addData(t),e.make();let i=2,o=e.getModuleCount(),d=Math.max(1,Math.floor(n/(o+i*2)));return e.createSvgTag({cellSize:d,margin:i,scalable:!0})}function pn(t,n,e){let i=zt(t,1200);if(!e)return i;let d=i.match(/viewBox="([^"]+)"/)?.[1]?.split(/\s+/).map(Number)||[0,0,1200,1200],c=d[2]||1200,u=d[3]||1200,E=140,D=Nt(n.title||"Event QR"),w=Nt(n.date),O=i.replace(/<\?xml[^>]*>/g,"").replace(/<!DOCTYPE[^>]*>/g,"").replace(/<svg[^>]*>/,"").replace(/<\/svg>\s*$/,"");return`<?xml version="1.0" encoding="UTF-8"?> 2<svg xmlns="http://www.w3.org/2000/svg" width="${c}" height="${u+E}" viewBox="0 0 ${c} ${u+E}" role="img" aria-label="Static event QR code"> 3 <rect width="100%" height="100%" fill="#ffffff" /> 4 <text x="${c/2}" y="46" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="34" font-weight="700" fill="#111827">${D}</text> 5 <text x="${c/2}" y="90" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="20" fill="#4b5563">${w}</text> 6 <g transform="translate(0 ${E})"> 7 ${O} 8 </g> 9</svg>`}function mn(t,n,e,i,o){return R(this,null,function*(){let d=yield Qt(t,i,o),u=yield vn(d,n==="png"?"image/png":n==="jpg"?"image/jpeg":"image/webp",n==="png"?void 0:.96);qt(u,e)})}function un(t,n,e,i){return R(this,null,function*(){let d=(yield Qt(t,e,!1)).toDataURL("image/png"),c=new ie({orientation:"portrait",unit:"pt",format:"letter"}),u=c.internal.pageSize.getWidth(),E=c.internal.pageSize.getHeight(),D=60;i&&(c.setFont("helvetica","bold"),c.setFontSize(20),c.text(e.title||"Event QR",u/2,56,{align:"center"}),c.setFont("helvetica","normal"),c.setFontSize(11),c.text(e.date,u/2,76,{align:"center"}),D=110);let w=Math.min(420,u-120,E-(i?220:140)),O=(u-w)/2,N=D;c.addImage(d,"PNG",O,N,w,w),i&&!e.isHeadcount&&(c.setFontSize(10),c.setTextColor(90),c.text("Scan with the iAttended app to register attendance.",u/2,N+w+28,{align:"center"})),c.save(n)})}function Qt(t,n,e){return R(this,null,function*(){let i=zt(t,1400),o=new Blob([i],{type:"image/svg+xml;charset=utf-8"}),d=URL.createObjectURL(o);try{let c=yield gn(d),u=document.createElement("canvas"),E=1400,D=e?180:0;u.width=E,u.height=E+D;let w=u.getContext("2d");if(!w)throw new Error("Canvas context unavailable.");return w.fillStyle="#ffffff",w.fillRect(0,0,E,E+D),e&&(w.fillStyle="#111827",w.font="700 48px Arial",w.textAlign="center",w.fillText(n.title||"Event QR",E/2,64),w.fillStyle="#4b5563",w.font="28px Arial",w.fillText(n.date,E/2,112)),w.drawImage(c,0,D,E,E),u}finally{URL.revokeObjectURL(d)}})}function Nt(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function gn(t){return new Promise((n,e)=>{let i=new Image;i.onload=()=>n(i),i.onerror=()=>
9e(new Error("Unable to load QR image.")),i.src=t})}function vn(t,n,e){return new Promise((i,o)=>{t.toBlob(d=>{if(d){i(d);return}o(new Error("Could not create QR file."))},n,e)})}function qt(t,n){let e=URL.createObjectURL(t),i=document.createElement("a");i.href=e,i.download=n,i.rel="noopener",document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(e)}var _n=()=>["Clean QR only","clean"],fn=()=>["With title and date","titled"],xn=(t,n)=>[t,n],yn=(t,n)=>n[1];function Cn(t,n){if(t&1){let e=k();a(0,"ia-segmented",17),x("valueChange",function(o){y(e);let d=p();return C(d.mode.set(o))}),s()}if(t&2){let e=p();m("value",e.mode())("options",e.modeOptions)}}function hn(t,n){t&1&&(a(0,"div",8),l(1,"Loading\u2026"),s())}function bn(t,n){if(t&1&&(a(0,"div",18),l(1),s()),t&2){let e=p(2);r(),f(e.error())}}function En(t,n){if(t&1&&(a(0,"div",18),l(1),s()),t&2){let e=p(2);r(),f(e.clockDriftCriticalMessage())}}function wn(t,n){t&1&&(a(0,"div",18),l(1," The browser is slowing this tab down, so the live code is hidden until it catches up. Keep this tab in front. "),s())}function Tn(t,n){if(t&1&&(a(0,"div",19),g(1,"app-qr-code",20),s()),t&2){let e=p(2);r(),m("qrdata",e.qrString())("width",200)("margin",1)("ariaLabel","Event check-in QR code")}}function Sn(t,n){t&1&&(a(0,"div",8),l(1,"No code available."),s())}function kn(t,n){if(t&1&&v(0,hn,2,0,"div",8)(1,bn,2,1,"div",18)(2,En,2,1,"div",18)(3,wn,2,0,"div",18)(4,Tn,2,4,"div",19)(5,Sn,2,0,"div",8),t&2){let e=p();_(e.loading()?0:e.error()?1:e.clockDriftCritical()?2:e.displaySlowedLive()?3:e.qrString()?4:5)}}function Dn(t,n){t&1&&(a(0,"div",8),l(1,"Loading\u2026"),s())}function Mn(t,n){if(t&1&&g(0,"span",22),t&2){let e=n.$implicit;z("on",e)}}function On(t,n){if(t&1&&P(0,Mn,1,2,"span",21,se),t&2){let e=n.$implicit;I(e)}}function Pn(t,n){if(t&1&&(a(0,"div",9),P(1,On,2,0,null,null,se),s()),t&2){let e=p();r(),I(e.matrix())}}function In(t,n){t&1&&(a(0,"b"),l(1,"Headcount code."),s(),l(2," One static code that tallies attendance by count \u2014 safe to print or project. "))}function Rn(t,n){t&1&&(a(0,"b"),l(1,"Rotating code."),s(),l(2," Refreshes every few seconds and encodes a one-time, encrypted event URL. Project this \u2014 never screenshot it. "))}function Ln(t,n){t&1&&(a(0,"b"),l(1,"Static code."),s(),l(2," One unchanging code, safe to print or embed in a slide deck. "))}function Nn(t,n){if(t&1&&(a(0,"div",15),g(1,"ia-icon",23),a(2,"span"),l(3),s()()),t&2){let e=p();r(),m("size",15),r(2),f(e.clockDriftWarnMessage())}}function An(t,n){if(t&1&&(a(0,"div",15),g(1,"ia-icon",23),a(2,"span"),l(3),s()()),t&2){let e=p();r(),m("size",15),r(2),f(e.livePauseNotice())}}function zn(t,n){if(t&1){let e=k();a(0,"ia-button",30),x("click",function(){y(e);let o=p(2);return C(o.newCode())}),l(1,"New code"),s()}}function Qn(t,n){if(t&1){let e=k();a(0,"button",34),x("click",function(){let o=y(e).$implicit,d=p().$implicit,c=p(2);return C(c.download(d[1],o))}),l(1),s()}if(t&2){let e=n.$implicit;r(),T(" ",e," ")}}function qn(t,n){if(t&1&&(a(0,"div",29)(1,"div",31),l(2),s(),a(3,"div",32),P(4,Qn,2,1,"button",33,H),s()()),t&2){let e=n.$implicit,i=p(2);r(2),f(e[0]),r(2),I(i.formats)}}function Vn(t,n){if(t&1){let e=k();a(0,"div",16)(1,"button",24,0)(3,"ia-button",25),x("click",function(){y(e);let o=p();return C(o.dlOpen.set(!o.dlOpen()))}),l(4),s()(),v(5,zn,2,0,"ia-button",26),a(6,"ia-popover",27),x("closed",function(){y(e);let o=p();return C(o.dlOpen.set(!1))}),a(7,"div",28),P(8,qn,6,1,"div",29,yn),s()()()}if(t&2){let e=ve(2),i=p();r(3),m("disabled",i.downloading()),r(),T(" ",i.downloading()?"Exporting\u2026":"Download"," "),r(),_(i.isHeadcount()?-1:5),r(),m("origin",e)("open",i.dlOpen())("width",260),r(2),I(Fe(8,xn,le(6,_n),le(7,fn)))}}function $n(t,n){if(t&1){let e=k();a(0,"div",16)(1,"ia-button",35),x("click",function(){y(e);let o=p();return C(o.openBigScreen())}),l(2," Display on a big screen "),s()()}}var Fn="https://uattended.web.app/qr/live",Wn=60,Hn=1e3,Se=class t{toast=L(B);qrService=L(Te);destroyRef=L(ue);status=h("live");target=h(null);eventLoading=h(!1);mode=b("static");dlOpen=b(!1);qrString=b("");loading=b(!1);error=b(null);downloading=b(!1);seed=b(1);clockDriftState=b("ok");clockDriftLabel=b("");clockDriftWarn=M(()=>this.mode()==="live"&&this.clockDriftState()==="warn");clockDriftCritical=M(()=>this.mode()==="live"&&this.clockDriftState()==="critical");clockDriftWarnMessage=M(()=>`This computer's clock is ${this.clockDriftLabel()||"off"} \u2014 codes are auto-corrected, but please enable automatic time.`);clockDriftCriticalMessage=M(()=>`This computer's clock appears to be wrong${this.clockDriftLabel()?` (${this.clockDriftLabel()})`:""}
9. Turn on automatic date & time, then reload \u2014 the live code is hidden until it's fixed.`);displaySlowed=b(!1);pauseNoticeText=b(null);displaySlowedLive=M(()=>this.mode()==="live"&&this.displaySlowed());livePauseNotice=M(()=>this.mode()==="live"?this.pauseNoticeText():null);liveCodes=[];timeOffset=0;liveTimer=null;health=ze();heartbeat=null;stopResumeListener=null;lastRefillCheckAt=0;refillInFlight=!1;modeOptions=[["static","Static"],["live","Live"]];formats=Ct;isHeadcount=M(()=>!!this.target()?.isHeadcount);matrix=M(()=>bt(this.seed()));bigScreenUrl=M(()=>{let n=this.target();if(!n||n.isHeadcount)return null;let e=new URLSearchParams({id:n.eventId,refresh:String(n.refreshRateMs??5e3),title:n.title,pausable:"0"});return`${Fn}?${e.toString()}`});validity=M(()=>{switch(this.status()){case"live":return{tone:"var(--green)",wash:"var(--green-wash)",label:"Valid now",note:"Scanning is open for this event window."};case"checkin":return{tone:"var(--green)",wash:"var(--green-wash)",label:"Valid now",note:"The check-in window is open \u2014 codes scan now."};case"upcoming":return{tone:"var(--amber)",wash:"var(--amber-wash)",label:"Not started",note:"Check-in hasn\u2019t opened yet \u2014 codes are out of range."};default:return{tone:"var(--red)",wash:"var(--red-wash)",label:"Out of range",note:"This event\u2019s check-in window has closed \u2014 codes are out of range."}}});constructor(){re(()=>{this.isHeadcount()&&this.mode()==="live"&&this.mode.set("static")}),re(()=>{let n=this.target(),e=this.mode();if(this.stopLive(),!n){this.startMockRotation(e);return}this.loadReal(n,e)}),this.destroyRef.onDestroy(()=>this.stopLive())}startMockRotation(n){this.qrString.set(""),n==="live"&&(this.liveTimer=setInterval(()=>this.seed.update(e=>e+1),5e3))}loadReal(n,e){this.error.set(null),this.loading.set(!0),this.qrString.set(""),this.clockDriftState.set("ok"),this.clockDriftLabel.set(""),this.displaySlowed.set(!1),this.pauseNoticeText.set(null),e==="live"?this.fetchLive(n):this.fetchStatic(n)}fetchStatic(n){return R(this,null,function*(){try{if(n.isHeadcount){this.qrString.set(yield Lt(n.eventId)),this.loading.set(!1);return}let i=(yield this.qrService.generateEncryptedQrStringForiAttendedWeb(n.orgId,n.eventId,!0))?.qrData?.encryptedObject;if(!i)throw new Error("Missing QR payload.");this.qrString.set(Ae({ct:i.encryptedData,iv:i.iv,live:!1})),this.loading.set(!1)}catch(e){console.error("Error fetching static QR:",e),this.error.set("Could not load the static QR code."),this.loading.set(!1)}})}fetchLive(n){return R(this,null,function*(){try{let e=Date.now()/1e3,i=yield this.qrService.generateQrArrayForWeb({eventId:n.eventId,isStatic:!1,expiration:Math.round(e+7),pausable:!1,deviceTime:e,minutesInArray:5,initialRequest:!0});if(this.target()!==n||this.mode()!=="live")return;this.liveCodes=i.qrData,this.timeOffset=i.timeOffset,this.updateClockDrift(i.timeOffset),this.loading.set(!1),this.selectAndDisplay(n),this.startLiveUpdates(n)}catch(e){console.error("Error fetching live QR codes:",e),this.error.set("Could not load live QR codes."),this.loading.set(!1)}})}startLiveUpdates(n){this.stopLive(),this.health=ze(),this.lastRefillCheckAt=Date.now(),this.heartbeat=ft(()=>this.onLiveTick(n),ut),this.stopResumeListener=xt(()=>{this.lastRefillCheckAt=0,this.onLiveTick(n)})}onLiveTick(n){let e=Date.now();this.health=gt(this.health,e),this.displaySlowed.set(this.health.slowed),this.pauseNoticeText.set(vt(this.health,e)),this.selectAndDisplay(n),e-this.lastRefillCheckAt>=Hn&&(this.lastRefillCheckAt=e,this.refillIfNeeded(n))}refillIfNeeded(n){if(this.refillInFlight)return;let e=(Date.now()-this.timeOffset*1e3)/1e3,i=this.liveCodes.filter(d=>!d.isStatic),o=i[i.length-1];o&&o.deadAt-e>=Wn||this.refillLive(n,o&&o.deadAt>e?o.deadAt:null)}refillLive(n,e){let{report:i,health:o}=_t(this.health,{hidden:document.visibilityState==="hidden",heartbeat:this.heartbeat?.kind??"interval",wakeLock:"unsupported"});this.health=o,this.refillInFlight=!0;let d=Date.now()/1e3;this.qrService.generateQrArrayForWeb({eventId:n.eventId,isStatic:!1,expiration:e??Math.round(d+7),pausable:!1,deviceTime:d,minutesInArray:15,initialRequest:e===null,displayHealth:i}).then(c=>{if(this.target()!==n||this.mode()!=="live")return;this.updateClockDrift(c.timeOffset),this.timeOffset=c.timeOffset;let u=new Set(this.liveCodes.map(w=>w.encryptedObject.iv+w.encryptedObject.encryptedData)),E=c.qrData.filter(w=>!u.has(w.encryptedObject.iv+w.encryptedObject.encryptedData)),D=Date.now()-this.timeOffset*1e3;this.liveCodes=this.liveCodes.concat(E).filter(w=>w.isStatic||w.deadAt*1e3>D)}).catch(c=>console.error("Error refilling live QR codes:",c)).finally(()=>{this.refillInFlight=!1})}updateClockDrift(n){let e=pt(n);this.clockDriftState.set(e),this.clockDriftLabel.set(e==="ok"?"":mt(n))}selectAndDisplay(n){if(!this.liveCodes.length)return;if(this.clockDriftCritical()||this.health.slowed){this.qrString.set("");return}let e=Date.now()-this.timeOffset*1e3,o=this.liveCodes.filter(d=>!d.isStatic&&d.aliveAt*1e3<=e).sort((d,c)=>c.aliveAt-d.aliveAt)[0]??this.liveCodes.find(d=>d.isStatic);o?.encryptedObject&&this.qrString.set(Ae({ct:o.encryptedObject.encryptedData,iv:o.encryptedObject.iv,live:!o.isStatic})),this.liveCodes=this.liveCodes.filter(d=>d.isStatic||d.deadAt*1e3>e)}stopLive(){this.liveTimer&&(clearInterval(this.liveTimer),this.liveTimer=null),this.heartbeat?.stop(),this.heartbeat=null,this.stopResumeListener?.(),this.stopResumeListener=null}openBigScreen(){let n=this.bigScreenUrl();n&&window.open(n,"_blank","noopener")}newCode(){let n=this.target();if(!n){this.seed.update(e=>e+1);return}this.fetchStatic(n)}download(n,e){return R(this,null,function*(){let i=this.target();if(!i){this.toast.show(`Exporting ${e} \xB7 ${n}\u2026 (preview)`),this.dlOpen.set(!1);return}if(!this.qrString()){this.toast.error("The QR code is still loading \u2014 try again in a moment.");return}this.dlOpen.set(!1),this.downloading.set(!0);try{yield At(this.qrString(),e.toLowerCase(),{title:i.title,date:i.dateLabel,isHeadcount:i.isHeadcount},n==="titled"),this.toast.success(`Static QR downloaded as ${e}${n==="titled"?" with title/date":""}.`)}catch(o){console.error("Error downloading static QR:",o),this.toast.error("Unable to download the QR right now.")}finally{this.downloading.set(!1)}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=A({type:t,selectors:[["ed-qr-card"]],inputs:{status:[1,"status"],target:[1,"target"],eventLoading:[1,"eventLoading"]},decls:26,vars:16,consts:[["dlTrig","cdkOverlayOrigin"],["data-help","events-qr-card",1,"card"],[1,"card-head"],[1,"card-title"],["name","qr",3,"size"],[3,"value","o
9ptions"],[1,"body"],[1,"qr-wrap"],[1,"qr","real","state"],[1,"qr"],[1,"info"],[1,"validity"],[1,"vd"],[1,"desc"],[1,"note"],[1,"clock-drift-note"],[1,"actions"],[3,"valueChange","value","options"],[1,"qr","real","state","err"],[1,"qr","real"],[3,"qrdata","width","margin","ariaLabel"],[1,"mod",3,"on"],[1,"mod"],["name","bang",3,"size"],["cdkOverlayOrigin","",1,"dl-trig"],["variant","ghost","icon","download",3,"click","disabled"],["variant","ghost","icon","refresh"],["align","start",3,"closed","origin","open","width"],[1,"dl"],[1,"dl-group"],["variant","ghost","icon","refresh",3,"click"],[1,"dl-label"],[1,"dl-formats"],[1,"fmt","wtap"],[1,"fmt","wtap",3,"click"],["variant","ghost","icon","externalLink",3,"click"]],template:function(e,i){e&1&&(a(0,"div",1)(1,"div",2)(2,"div",3),g(3,"ia-icon",4),a(4,"span"),l(5,"QR codes"),s()(),v(6,Cn,1,2,"ia-segmented",5),s(),a(7,"div",6)(8,"div",7),v(9,kn,6,1)(10,Dn,2,0,"div",8)(11,Pn,3,0,"div",9),s(),a(12,"div",10)(13,"div",11),g(14,"span",12),l(15),s(),a(16,"div",13),v(17,In,3,0)(18,Rn,3,0)(19,Ln,3,0),s(),a(20,"div",14),l(21),s(),v(22,Nn,4,2,"div",15),v(23,An,4,2,"div",15),v(24,Vn,10,11,"div",16),v(25,$n,3,0,"div",16),s()()()),e&2&&(r(3),m("size",20),r(3),_(i.isHeadcount()?-1:6),r(3),_(i.target()?9:i.eventLoading()?10:11),r(4),J("background",i.validity().wash)("color",i.validity().tone),r(),J("background",i.validity().tone),r(),T("",i.validity().label," "),r(2),_(i.isHeadcount()?17:i.mode()==="live"?18:19),r(4),f(i.validity().note),r(),_(i.clockDriftWarn()?22:-1),r(),_(i.livePauseNotice()?23:-1),r(),_(i.mode()==="static"?24:-1),r(),_(i.bigScreenUrl()?25:-1))},dependencies:[fe,dt,j,Q,xe,he],styles:["[_nghost-%COMP%]{display:block;font-family:var(--font)}.card[_ngcontent-%COMP%]{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:20px}.card-head[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}.card-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;color:var(--ink)}.body[_ngcontent-%COMP%]{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.qr-wrap[_ngcontent-%COMP%]{position:relative;flex:0 0 auto}.qr[_ngcontent-%COMP%]{width:224px;height:224px;background:#fff;padding:9px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line);display:grid;grid-template-columns:repeat(25,1fr);grid-template-rows:repeat(25,1fr)}.qr.real[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center}.qr.real.state[_ngcontent-%COMP%]{font-size:13px;color:var(--muted, #6b7280);text-align:center}.qr.real.state.err[_ngcontent-%COMP%]{color:var(--red)}.mod[_ngcontent-%COMP%]{border-radius:1.5px}.mod.on[_ngcontent-%COMP%]{background:var(--ink)}.info[_ngcontent-%COMP%]{flex:1;min-width:220px}.validity[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;
9border-radius:var(--r-chip);padding:5px 11px;font-size:12.5px;font-weight:700;margin-bottom:10px}.vd[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;display:inline-block}.desc[_ngcontent-%COMP%]{font-size:13px;color:var(--ink-2);line-height:1.55;margin-bottom:14px}.desc[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{color:var(--ink)}.note[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-2);margin-bottom:8px}.clock-drift-note[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;margin-bottom:8px;border-radius:8px;background:var(--amber-wash);color:var(--amber);font-size:12px;font-weight:500;line-height:1.4}.actions[_ngcontent-%COMP%]{display:flex;gap:10px;position:relative}.dl-trig[_ngcontent-%COMP%]{display:inline-flex}.preview-row[_ngcontent-%COMP%]{margin-top:16px;display:flex;align-items:center;gap:8px}.preview-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted-text)}.dl[_ngcontent-%COMP%]{padding:12px}.dl-group[_ngcontent-%COMP%] + .dl-group[_ngcontent-%COMP%]{margin-top:10px}.dl-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted-text);padding:4px 6px 7px}.dl-formats[_ngcontent-%COMP%]{display:flex;gap:6px;flex-wrap:wrap}.fmt[_ngcontent-%COMP%]{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--teal-deep);background:var(--teal-wash);border:none;
9border-radius:var(--r-chip);padding:7px 10px;cursor:pointer}"],changeDetection:0})};var Un=(t,n)=>n.id,jn=(t,n)=>n[0],Bn=(t,n)=>n.value;function Gn(t,n){if(t&1&&(a(0,"div",8),l(1),s()),t&2){let e=p().$implicit;r(),T("First use ",e.firstUse)}}function Yn(t,n){t&1&&(a(0,"div",17),l(1,"Consumed"),s())}function Kn(t,n){t&1&&(a(0,"span",19),l(1,"Not generated"),s())}function Xn(t,n){if(t&1&&(a(0,"span",25),l(1),s()),t&2){let e=p().$implicit,i=p();z("struck",i.struck(e)),r(),f(e.value)}}function Jn(t,n){t&1&&(a(0,"span",22),l(1,"\u2014"),s())}function Zn(t,n){t&1&&(a(0,"span",22),l(1,"No expiry"),s())}function ei(t,n){if(t&1&&(a(0,"option",28),l(1),s()),t&2){let e=n.$implicit,i=p().$implicit,o=p(2).$implicit;m("value",e.value)("selected",e.value===o.expiry),r(),T(" ",i[0]==="Manual"?e.label:i[0]+" "+e.label," ")}}function ti(t,n){if(t&1&&(a(0,"optgroup",27),P(1,ei,2,3,"option",28,Bn),s()),t&2){let e=n.$implicit;m("label",e[0]),r(),I(e[1])}}function ni(t,n){if(t&1){let e=k();a(0,"select",26),x("change",function(o){y(e);let d=p().$implicit,c=p();return C(c.setExpiry(d,o.target.value))}),P(1,ti,3,1,"optgroup",27,jn),s()}if(t&2){let e=p().$implicit,i=p();m("value",e.expiry??""),r(),I(i.expiryGroups)}}function ii(t,n){if(t&1){let e=k();a(0,"div",16)(1,"div",6)(2,"div",7),l(3),s(),v(4,Gn,2,1,"div",8),v(5,Yn,2,0,"div",17),s(),a(6,"div",18),v(7,Kn,2,0,"span",19)(8,Xn,2,3,"span",20),s(),a(9,"div",21),v(10,Jn,2,0,"span",22)(11,Zn,2,0,"span",22)(12,ni,3,1,"select",23),s(),a(13,"button",11),x("click",function(){let o=y(e).$implicit,d=p();return C(d.regenerate(o))}),g(14,"ia-icon",24),l(15),s()()}if(t&2){let e=n.$implicit,i=n.$index,o=n.$count,d=p();z("last",i===o-1),r(3),f(e.kind),r(),_(e.firstUse?4:-1),r(),_(e.used?5:-1),r(2),_(e.missing?7:8),r(3),_(e.missing?10:e.noExpiry?11:12),r(3),m("disabled",e.busy),r(),m("size",15),r(),T(" ",e.missing||d.struck(e)?"Generate":"Regenerate"," ")}}function oi(t,n){if(t&1){let e=k();a(0,"div",9),l(1," New single-use code: "),a(2,"span",25),l(3),s(),a(4,"button",29),x("click",function(){y(e);let o=p();return C(o.copySingle())}),g(5,"ia-icon",30),l(6," Copy "),s()()}if(t&2){let e=p();r(3),f(e.singleCode()),r(2),m("size",13)}}var ke=class t{codes=h([]);regenerateCode=S();openOneTimeCodes=S();openTypeCodeSheet=S();generateSingleCode=S();singleCode=h(null);singleCodeLoading=h(!1);setCodeExpiry=S();expiryGroups=yt;struck(n){return!!n.expired||!!n.used}copySingle(){let n=this.singleCode();n&&navigator.clipboard?.writeText(n)}setExpiry(n,e){this.setCodeExpiry.emit({code:n,value:e})}regenerate(n){this.regenerateCode.emit(n)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=A({type:t,selectors:[["ed-text-codes-card"]],inputs:{codes:[1,"codes"],singleCode:[1,"singleCode"],singleCodeLoading:[1,"singleCodeLoading"]},outputs:{regenerateCode:"regenerateCode",openOneTimeCodes:"openOneTimeCodes",openTypeCodeSheet:"openTypeCodeSheet",generateSingleCode:"generateSingleCode",setCodeExpiry:"setCodeExpiry"},decls:26,vars:7,consts:[["data-help","events-text-codes",1,"card"],[1,"card-title"],["name","hash",3,"size"],[1,"card-sub"],[1,"row",3,"last"],[1,"one-time-row"],[1,"kind"],[1,"kind-name"],[1,"kind-sub"],[1,"single-code"],[1,"one-time-actions"],[1,"regen","wtap",3,"click","disabled"],["name","plus",3,"size"],[1,"regen","wtap",3,"click"],["type","button",1,"type-sheet","wtap",3,"click"],["name","codeEntry",3,"size"],[1,"row"],[1,"kind-consumed"],[1,"value"],[1,"code","muted"],[1,"code",3,"struck"],[1,"expiry"],[1,"no-expiry"],[3,"value"],["name","refresh",3,"size"],[1,"code"],[3,"change","value"],[3,"label"],[3,"value","selected"],["type","button",1,"copy","wtap",3,"click"],["name","copy",3,"size"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"div",1),g(2,"ia-icon",2),a(3,"span"),l(4,"Text codes"),s()(),a(5,"div",3),l(6," Alphanumeric codes attendees can type. Regenerate any time; expired codes are struck through. "),s(),P(7,ii,16,10,"div",4,Un),a(9,"div",5)(10,"div",6)(11,"div",7),l(12,"One-time codes"),s(),a(13,"div",8),l(14," Single-use codes for attendees without the app \u2014 no connection needed. Generate one on the spot, or print a batch of 50 to hand out. Expire 24 hours after the event ends. "),s(),v(15,oi,7,2,"div",9),s(),a(16,"div",10)(17,"button",11),x("click",function(){return i.generateSingleCode.emit()}),g(18,"ia-icon",12),l(19),s(),a(20,"button",13),x("click",function(){return i.openOneTimeCodes.emit()}),g(21,"ia-icon",2),l(22," Printable list "),s()()(),a(23,"button",14),x("click",function(){return i.openTypeCodeSheet.emit()}),g(24,"ia-icon",15),l(25," All codes for this event type "),s()()),e&2&&(r(2),m("size",20),r(5),I(i.codes()),r(8),_(i.singleCode()?15:-1),r(2),m("disabled",i.singleCodeLoading()),r(),m("size",15),r(),T(" ",i.singleCodeLoading()?"Generating\u2026":"Single code"," "),r(2),m("size",15),r(3),m("size",15))},dependencies:[Q],styles:["[_nghost-%COMP%]{display:block;font-family:var(--font)}.card[_ngcontent-%COMP%]{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:20px}.card-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;color:var(--ink);margin-bottom:4px}.card-sub[_ngcontent-%COMP%]{font-size:12.5px;color:var(--ink-2);margin-bottom:6px}.row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;padding:15px 0;border-top:1px solid var(--line-soft);flex-wrap:wrap}.kind[_ngcontent-%COMP%]{width:168px;flex:0 0 auto}
9.kind-name[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--ink)}.kind-sub[_ngcontent-%COMP%]{font-size:11.5px;color:var(--ink-muted-text);margin-top:2px}.kind-consumed[_ngcontent-%COMP%]{font-size:11.5px;color:var(--amber);margin-top:2px;font-weight:600}.value[_ngcontent-%COMP%]{flex:0 0 auto}.code[_ngcontent-%COMP%]{font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:.04em;color:var(--ink);background:var(--line-soft);padding:5px 11px;border-radius:var(--r-chip)}.code.struck[_ngcontent-%COMP%]{color:var(--ink-muted-text);text-decoration:line-through;background:transparent;padding:0}.expiry[_ngcontent-%COMP%]{flex:1;min-width:160px}.no-expiry[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-muted-text)}select[_ngcontent-%COMP%]{font-family:var(--font);font-size:12.5px;font-weight:500;color:var(--ink-2);border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--card);cursor:pointer;max-width:220px}.regen[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 13px;cursor:pointer;flex:0 0 auto}.regen[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{color:var(--ink-2)}.regen[_ngcontent-%COMP%]:disabled{opacity:.55;cursor:default}.code.muted[_ngcontent-%COMP%]{color:var(--ink-muted-text);background:transparent;padding:0;font-weight:500;letter-spacing:normal}.one-time-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:16px;padding:15px 0 0;border-top:1px solid var(--line-soft)}.one-time-row[_ngcontent-%COMP%] .kind[_ngcontent-%COMP%]{flex:1;width:auto}.one-time-actions[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:stretch;gap:8px;flex:0 0 auto}.single-code[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:12px;color:var(--ink-2)}.single-code[_ngcontent-%COMP%] .code[_ngcontent-%COMP%]{font-size:14px}.copy[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;font-family:var(--font);font-size:11.5px;font-weight:600;color:var(--ink-2);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:4px 9px;cursor:pointer}.copy[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{color:var(--ink-2)}.type-sheet[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;width:100%;margin-top:14px;padding:11px 4px 0;border:none;border-top:1px solid var(--line);background:none;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--teal);cursor:pointer}.type-sheet[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{color:var(--teal)}.type-sheet[_ngcontent-%COMP%]:hover{color:var(--teal-deep)}"],changeDetection:0})};var ai=(t,n)=>n.id,ri=(t,n)=>n[0],si=(t,n)=>n.star;function li(t,n){if(t&1&&(a(0,"div",16)(1,"span",17),l(2),s(),g(3,"ia-bar",18),a(4,"span",19),l(5),s()()),t&2){let e=n.$implicit,i=p(2).$implicit,o=p();r(2),f(e[0]),r(),m("value",e[1])("total",i.responses)("height",8),r(2),f(o.fmt(e[1],i.responses))}}function di(t,n){if(t&1&&P(0,li,6,5,"div",16,ri),t&2){let e=p().$implicit,i=p();I(i.mcOptions(e))}}function ci(t,n){if(t&1&&(a(0,"div",14)(1,"div",20)(2,"div",21),l(3),s(),a(4,"div",22),l(5,"Mean"),s()(),a(6,"div",20)(7,"div",21),l(8),s(),a(9,"div",22),l(10,"Range"),s()()()),t&2){let e=p().$implicit,i=p();r(3),f(i.num(e,"mean")),r(5),U(" ",i.num(e,"min"),"\u2013",i.num(e,"max")," ")}}function pi(t,n){if(t&1&&(a(0,"div",25)(1,"span",26),l(2),s(),g(3,"ia-bar",27),a(4,"span",28),l(5),s()()),t&2){let e=n.$implicit,i=p(2).$implicit,o=p();r(2),T("",e.star,"\u2605"),r(),m("value",e.n)("total",i.responses)("height",7),r(2),f(o.fmt(e.n,i.responses))}}function mi(t,n){if(t&1&&(a(0,"div",23)(1,"span",21),l(2),s(),a(3,"span",24),l(4,"avg of 5"),s()(),P(5,pi,6,5,"div",25,si)),t&2){let e=p().$implicit,i=p();r(2),f(i.num(e,"mean")),r(3),I(i.starRows(e))}}function ui(t,n){if(t&1&&(a(0,"div",15)(1,"div",29)(2,"div",30),l(3),s(),a(4,"div",31),l(5,"Yes"),s()(),a(6,"div",29)(7,"div",32),l(8),s(),a(9,"div",31),l(10,"No"),s()()()),t&2){let e=p().$implicit,i=p();r(3),T(" ",i.fmt(i.num(e,"up"),e.responses)," "),r(5),T(" ",i.fmt(i.num(e,"down"),e.responses)," ")}}function gi(t,n){t&1&&(a(0,"div",33),g(1,"ia-icon",35),l(2," Responses are hidden for anonymity because this anonymous question has too few respondents. "),s()),t&2&&(r(),m("size",16))}function vi(t,n){if(t&1){let e=k();a(0,"button",36),x("click",function(){y(e);let o=p(2).$implicit,d=p();return C(d.responsesRequested.emit(o))}),g(1,"ia-icon",37),l(2),s()}if(t&2){let e=p(2).$implicit;r(),m("size",15),r(),T(" View ",e.responses," responses ")}}function _i(t,n){if(t&1&&v(0,gi,3,1,"div",33)(1,vi,3,2,"button",34),t&2){let e=p().$implicit,i=p();_(i.isHiddenText(e)?0:1)}}function fi(t,n){if(t&1&&(a(0,"div",10)(1,"div",11)(2,"div",12),l(3),s(),a(4,"span",13),l(5),s()(),v(6,di,2,0)(7,ci,11,3,"div",14)(8,mi,7,1)(9,ui,11,2,"div",15)(10,_i,2,1),s()),t&2){let e,i=n.$implicit,o=n.$index;z("first",o===0),r(3),f(i.text),r(2),T("",i.responses," resp."),r(),_((e=i.type)==="mc"?6:e==="slider"?7:e==="stars"?8:e==="thumbs"?9:e==="text"?10:-1)}}var De=class t{survey=h(be);responsesRequested=S();showPct=b(!0);pctOptions=[["pct","%"],["count","Count"]];mcOptions(n){return n.type==="mc"?n.options:[]}starRows(n){return n.type!=="stars"?[]:[5,4,3,2,1].map(e=>
9({star:e,n:n.stars[e-1]}))}num(n,e){return n[e]??0}isHiddenText(n){return n.type==="text"&&!!n.hidden}isOpenText(n){return n.type==="text"&&!n.hidden}fmt(n,e){return this.showPct()?`${Math.round(n/e*100)}%`:`${n}`}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=A({type:t,selectors:[["ed-survey-results"]],inputs:{survey:[1,"survey"]},outputs:{responsesRequested:"responsesRequested"},decls:16,vars:7,consts:[["data-help","events-survey-results",1,"card"],[1,"card-head"],[1,"card-title"],["name","bars",3,"size"],["size","sm",3,"valueChange","value","options"],[1,"enroll"],["name","info",3,"size","strokeWidth"],["color","var(--ink-2)",3,"size"],[1,"questions"],[1,"q",3,"first"],[1,"q"],[1,"q-head"],[1,"q-text"],[1,"q-resp"],[1,"stat-row"],[1,"thumbs"],[1,"mc-row"],[1,"mc-label"],[3,"value","total","height"],[1,"mc-val"],[1,"stat"],[1,"stat-v"],[1,"stat-l"],[1,"stars-mean"],[1,"stars-of"],[1,"star-row"],[1,"star-label"],["color","var(--amber)",3,"value","total","height"],[1,"star-val"],[1,"thumb"],[1,"thumb-v","up"],[1,"thumb-l"],[1,"thumb-v","down"],[1,"text-hidden"],[1,"view-resp","wtap"],["name","eyeOff",3,"size"],[1,"view-resp","wtap",3,"click"],["name","list",3,"size"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"div",1)(2,"div",2),g(3,"ia-icon",3),a(4,"span"),l(5,"Survey results"),s()(),a(6,"ia-segmented",4),x("valueChange",function(d){return i.showPct.set(d==="pct")}),s()(),a(7,"div",5),g(8,"ia-icon",6),l(9," Enrollment is live ("),a(10,"ia-num",7),l(11),s(),l(12,") and is not a response count. "),s(),a(13,"div",8),P(14,fi,11,5,"div",9,ai),s()()),e&2&&(r(3),m("size",20),r(3),m("value",i.showPct()?"pct":"count")("options",i.pctOptions),r(2),m("size",14)("strokeWidth",2.1),r(2),m("size",12),r(),f(i.survey().enrollment),r(3),I(i.survey().questions))},dependencies:[je,Q,W,he],styles:["[_nghost-%COMP%]{display:block;font-family:var(--font)}.card[_ngcontent-%COMP%]{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:20px}.card-head[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;flex-wrap:wrap;gap:10px}.card-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;color:var(--ink)}.enroll[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-muted-text);margin-bottom:16px}.questions[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:18px}.q[_ngcontent-%COMP%]{padding-top:18px;border-top:1px solid var(--line-soft)}.q.first[_ngcontent-%COMP%]{padding-top:0;border-top:none}.q-head[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:14px;margin-bottom:10px}.q-text[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.4}.q-resp[_ngcontent-%COMP%]{font-size:11.5px;color:var(--ink-muted-text);white-space:nowrap;font-family:var(--mono)}.mc-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:11px;margin-bottom:7px}.mc-label[_ngcontent-%COMP%]{font-size:12.5px;color:var(--ink-2);width:220px;flex:0 0 auto}.mc-row[_ngcontent-%COMP%] ia-bar[_ngcontent-%COMP%]{flex:1}.mc-val[_ngcontent-%COMP%]{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink);min-width:42px;text-align:right}.stat-row[_ngcontent-%COMP%]{display:flex;gap:24px}.stat-v[_ngcontent-%COMP%]{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--ink)}.stat-l[_ngcontent-%COMP%]{font-size:11.5px;color:var(--ink-2)}.stars-mean[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.stars-of[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-2)}.star-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:5px}.star-label[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-2);width:30px}.star-row[_ngcontent-%COMP%] ia-bar[_ngcontent-%COMP%]{flex:1}.star-val[_ngcontent-%COMP%]{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);min-width:40px;text-align:right}.thumbs[_ngcontent-%COMP%]{display:flex;gap:12px}.thumb[_ngcontent-%COMP%]{flex:1;background:var(--bg);border-radius:11px;padding:12px 14px}.thumb-v[_ngcontent-%COMP%]{font-family:var(--mono);font-size:20px;font-weight:700}.thumb-v.up[_ngcontent-%COMP%]{color:var(--green)}.thumb-v.down[_ngcontent-%COMP%]{color:var(--red)}.thumb-l[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-2);margin-top:2px}.text-hidden[_ngcontent-%COMP%]{display:flex;gap:9px;padding:12px 14px;border-radius:11px;background:var(--line-soft);font-size:12.5px;color:var(--ink-2);line-height:1.5}.text-hidden[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{flex:0 0 auto;margin-top:1px}.view-resp[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--teal);background:var(--teal-wash);border:none;border-radius:9px;padding:8px 13px;
9cursor:pointer}"],changeDetection:0})};function Ft(t,n,e){let i=bi(e);t==="csv"?$t(new Blob([xi(n,e.questionText)],{type:"text/csv;charset=utf-8;"}),`${i}.csv`):t==="txt"?$t(new Blob([yi(n,e)],{type:"text/plain;charset=utf-8;"}),`${i}.txt`):Ci(n,e,`${i}.pdf`)}function xi(t,n){let e=["Question","Response","Name","Email","At"],i=t.map(o=>[n,o.text,o.name||"Unknown user",o.email??"",o.at]);return[e,...i].map(o=>o.map(hi).join(",")).join(` 10`)}function yi(t,n){let e=[`Event: ${n.eventTitle||"Unknown event"}`,`Question: ${n.questionText||"Text question"}`,`Total responses: ${t.length}`,""];return t.forEach((i,o)=>{e.push(`Response ${o+1}`),e.push(`Text: ${i.text||"No response text"}`),e.push(`User: ${i.name||"Unknown user"}`),e.push(`Email: ${i.email||"N/A"}`),e.push(`At: ${i.at||"N/A"}`),e.push("")}),e.join(` 11`)}function Ci(t,n,e){let i=new ie({orientation:"portrait",unit:"pt",format:"letter"}),o=i.internal.pageSize.getWidth(),d=i.internal.pageSize.getHeight(),c=48,u=o-c*2,E=c;i.setFont("helvetica","bold"),i.setFontSize(16),i.text("Survey text responses",c,E),E+=22,i.setFont("helvetica","normal"),i.setFontSize(11);for(let D of[`Event: ${n.eventTitle||"Unknown event"}`,`Question: ${n.questionText||"Text question"}`,`Total responses: ${t.length}`])i.text(D,c,E),E+=16;E+=8,t.forEach((D,w)=>{let O=[`Response ${w+1}`,`User: ${D.name||"Unknown user"}`,`Email: ${D.email||"N/A"}`,`At: ${D.at||"N/A"}`],N=i.splitTextToSize(`Text: ${D.text||"No response text"}`,u),V=(O.length+N.length)*14+12;E+V>d-c&&(i.addPage(),E=c),i.setFont("helvetica","bold"),i.text(O[0],c,E),E+=14,i.setFont("helvetica","normal");for(let F of O.slice(1))i.text(F,c,E),E+=14;for(let F of N)i.text(F,c,E),E+=14;E+=12}),i.save(e)}function hi(t){return`"${(t??"").toString().replace(/\r?\n/g," ").replace(/"/g,'""')}"`}function bi(t){let n=Vt(t.questionText||"text-question");return`survey-text-responses-${Vt(t.eventTitle||"event")}-${n}`}function Vt(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)}function $t(t,n){let e=URL.createObjectURL(t),i=document.createElement("a");i.href=e,i.download=n,i.rel="noopener",document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(e)}var Ei=()=>["CSV","TXT","PDF"],wi=(t,n)=>n.id;function Ti(t,n){t&1&&l(0," Loading\u2026 ")}function Si(t,n){if(t&1&&(a(0,"ia-num",9),l(1),s(),l(2," text responses ")),t&2){let e=p();m("size",13),r(),f(e.responses().length)}}function ki(t,n){if(t&1){let e=k();a(0,"button",10),x("click",function(){let o=y(e).$implicit,d=p();return C(d.export(o))}),l(1),s()}if(t&2){let e=n.$implicit;r(),f(e)}}function Di(t,n){if(t&1&&(a(0,"div",15),l(1),s()),t&2){let e=p().$implicit;r(),f(e.email)}}function Mi(t,n){if(t&1&&(a(0,"div",8)(1,"div",11),g(2,"ia-avatar",12),a(3,"div",13)(4,"div",14),l(5),s(),v(6,Di,2,1,"div",15),s(),a(7,"span",16),l(8),s()(),a(9,"div",17),l(10),s()()),t&2){let e=n.$implicit,i=n.$index,o=p();r(2),m("initials",e.email?o.init(e.name):"?")("size",28)("color",e.email?o.color(i):"var(--ink-3)"),r(2),z("muted",!e.email),r(),f(e.name),r(),_(e.email?6:-1),r(2),f(e.at),r(2),f(e.text)}}var Me=class t{toast=L(B);questionText=h("");eventTitle=h("");responses=h(Ee);loading=h(!1);back=S();init=ee;color=te;export(n){if(!this.responses().length){this.toast.error("No responses to export.");return}Ft(n.toLowerCase(),this.responses(),{questionText:this.questionText(),eventTitle:this.eventTitle()}),this.toast.success(`Exported responses as ${n}.`)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=A({type:t,selectors:[["ed-text-responses"]],inputs:{questionText:[1,"questionText"],eventTitle:[1,"eventTitle"],responses:[1,"responses"],loading:[1,"loading"]},outputs:{back:"back"},decls:17,vars:4,consts:[[1,"wrap"],[1,"back","wtap",3,"click"],["name","chevron",1,"rot",3,"size"],[1,"head"],[1,"sub"],[1,"exports"],[1,"fmt","wtap"],[1,"list"],[1,"resp"],["color","var(--ink-2)",3,"size"],[1,"fmt","wtap",3,"click"],[1,"resp-head"],[3,"initials","size","color"],[1,"who"],[1,"name"],[1,"email"],[1,"at"],[1,"text"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"button",1),x("click",function(){return i.back.emit()}),g(2,"ia-icon",2),l(3," Event detail "),s(),a(4,"div",3)(5,"div")(6,"h1"),l(7),s(),a(8,"div",4),v(9,Ti,1,0)(10,Si,3,2),s()(),a(11,"div",5),P(12,ki,2,1,"button",6,H),s()(),a(14,"div",7),P(15,Mi,11,9,"div",8,wi),s()()),e&2&&(r(2),m("size",16),r(5),f(i.questionText()),r(2),_(i.loading()?9:10),r(3),I(le(3,Ei)),r(3),I(i.responses()))},dependencies:[ne,Q,W],styles:["[_nghost-%COMP%]{display:block;font-family:var(--font)}.wrap[_ngcontent-%COMP%]{max-width:760px}.back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;background:none;border:none;cursor:pointer;color:var(--ink-2);font-family:var(--font);font-size:13.5px;font-weight:600;margin-bottom:18px;padding:0}.back[_ngcontent-%COMP%] .rot[_ngcontent-%COMP%]{transform:rotate(180deg)}.head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}h1[_ngcontent-%COMP%]{margin:0;font-size:23px;font-weight:700;letter-spacing:-.5px;color:var(--ink);line-height:1.2}.sub[_ngcontent-%COMP%]{font-size:13px;color:var(--ink-2);margin-top:6px}.exports[_ngcontent-%COMP%]{display:flex;gap:8px}.fmt[_ngcontent-%COMP%]{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--teal-deep);background:var(--teal-wash);border:none;
11border-radius:var(--r-chip);padding:8px 12px;cursor:pointer}.list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px}.resp[_ngcontent-%COMP%]{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:16px}.resp-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:9px}.who[_ngcontent-%COMP%]{flex:1;min-width:0}.name[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--ink)}.name.muted[_ngcontent-%COMP%]{color:var(--ink-muted-text)}.email[_ngcontent-%COMP%]{font-size:11.5px;color:var(--ink-2)}.at[_ngcontent-%COMP%]{font-size:11.5px;color:var(--ink-muted-text);font-family:var(--mono)}.text[_ngcontent-%COMP%]{font-size:13.5px;color:var(--ink);line-height:1.55}"],changeDetection:0})};function Oi(t,n){if(t&1&&(a(0,"div",14),g(1,"ia-avatar",15),a(2,"span",16),l(3),s()()),t&2){let e=n.$implicit,i=n.index,o=p();r(),m("initials",o.init(e.name))("size",30)("color",o.color(i)),r(2),f(e.name)}}function Pi(t,n){if(t&1&&(a(0,"span",17),l(1),s()),t&2){let e=n.$implicit;r(),f(e.email)}}function Ii(t,n){if(t&1&&(a(0,"ia-num",18),l(1),s()),t&2){let e=n.$implicit;m("size",12.5)("weight",500),r(),f(e.reg)}}function Ri(t,n){if(t&1&&(a(0,"ia-num",6),l(1),s()),t&2){let e=p().$implicit;m("size",12.5)("weight",600),r(),f(e.att)}}function Li(t,n){t&1&&(a(0,"span",19),l(1,"Not yet"),s())}function Ni(t,n){if(t&1&&v(0,Ri,2,3,"ia-num",6)(1,Li,2,0,"span",19),t&2){let e=n.$implicit;_(e.att?0:1)}}function Ai(t,n){if(t&1&&(a(0,"span",20),l(1),s()),t&2){let e=n.$implicit,i=p();$e("outcome-"+e.outcome),r(),f(i.outcomeText(e))}}var Oe=class t{entries=h(we);loading=h(!1);title=h(de.title);capacity=h(de.capacity);back=S();openAttendance=S();openProfile=S();init=ee;color=te;sort=b({key:null,dir:"asc"});columns=[{key:"name",label:"Name",width:"1.5fr",priority:"primary"},{key:"email",label:"Email",width:"1.8fr",priority:"detail"},{key:"reg",label:"Registered at",width:"1.1fr",priority:"detail"},{key:"att",label:"Attended at",width:"1.1fr"},{key:"outcome",label:"Outcome",width:"0.9fr"}];outcomeLabel={attended:"Attended",noShow:"No-show",relinquishedInWindow:"Gave up late",reserved:"Reserved"};outcomeText(n){return this.outcomeLabel[n.outcome]??"Reserved"}rows=M(()=>{let n=this.entries(),{key:e,dir:i}=this.sort();if(!e)return n;let o=i==="asc"?1:-1;return[...n].sort((d,c)=>String(d[e]??"").localeCompare(String(c[e]??""))*o)});attended=M(()=>this.entries().filter(n=>n.att).length);getId=n=>n.id;onOpenProfile(n){this.openProfile.emit(n)}attendanceList(){this.openAttendance.emit()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=A({type:t,selectors:[["ed-preregistration"]],inputs:{entries:[1,"entries"],loading:[1,"loading"],title:[1,"title"],capacity:[1,"capacity"]},outputs:{back:"back",openAttendance:"openAttendance",openProfile:"openProfile"},decls:25,vars:15,consts:[[1,"wrap"],[1,"back","wtap",3,"click"],["name","chevron",1,"rot",3,"size"],[1,"head"],[1,"sub"],["color","var(--ink-2)",3,"size"],["color","var(--green)",3,"size","weight"],["variant","ghost","icon","users",3,"click"],["empty","No preregistrations found for this event.",3,"sortChange","rowClick","columns","rows","getId","sort","rowClickable","loading"],["iaColumn","name"],["iaColumn","email"],["iaColumn","reg"],["iaColumn","att"],["iaColumn","outcome"],[1,"name-cell"],[3,"initials","size","color"],[1,"name"],[1,"email"],["color","var(--ink-2)",3,"size","weight"],[1,"not-yet"],[1,"outcome"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"button",1),x("click",function(){return i.back.emit()}),g(2,"ia-icon",2),l(3," Event detail "),s(),a(4,"div",3)(5,"div")(6,"h1"),l(7),s(),a(8,"div",4)(9,"ia-num",5),l(10),s(),l(11," preregistered \xB7 "),a(12,"ia-num",6),l(13),s(),l(14," attended \xB7 capacity "),a(15,"ia-num",5),l(16),s()()(),a(17,"ia-button",7),x("click",function(){return i.attendanceList()}),l(18,"Attendance list"),s()(),a(19,"ia-data-table",8),x("sortChange",function(d){return i.sort.set(d)})("rowClick",function(d){return i.onOpenProfile(d)}),ge(20,Oi,4,4,"ng-template",9)(21,Pi,2,1,"ng-template",10)(22,Ii,2,3,"ng-template",11)(23,Ni,2,1,"ng-template",12)(24,Ai,2,3,"ng-template",13),s()()),e&2&&(r(2),m("size",16),r(5),T("",i.title()," Preregistration"),r(2),m("size",13),r(),f(i.rows().length),r(2),m("size",13)("weight",600),r(),f(i.attended()),r(2),m("size",13),r(),f(i.capacity()),r(3),m("columns",i.columns)("rows",i.rows())("getId",i.getId)("sort",i.sort())("rowClickable",!0)("loading",i.loading()?"Loading preregistrations\u2026":null))},dependencies:[ne,j,ye,Ce,Q,W],styles:["[_nghost-%COMP%]{display:block;font-family:var(--font)}.wrap[_ngcontent-%COMP%]{max-width:920px}.back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;background:none;border:none;cursor:pointer;color:var(--ink-2);font-family:var(--font);font-size:13.5px;font-weight:600;margin-bottom:18px;padding:0}.back[_ngcontent-%COMP%] .rot[_ngcontent-%COMP%]{transform:rotate(180deg)}.head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}h1[_ngcontent-%COMP%]{margin:0;font-size:24px;font-weight:700;letter-spacing:-.5px;color:var(--ink)}.sub[_ngcontent-%COMP%]{font-size:13px;color:var(--ink-2);margin-top:6px}.name-cell[_ngcontent-%COMP%]{display:flex;align-items:center;gap:11px}.name[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--ink)}.email[_ngcontent-%COMP%]{font-size:13px;color:var(--ink-2)}.not-yet[_ngcontent-%COMP%]{font-size:12.5px;color:var(--ink-muted-text)}.outcome[_ngcontent-%COMP%]{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.outcome-attended[_ngcontent-%COMP%]{background:var(--green-wash);color:var(--green)}.outcome-noShow[_ngcontent-%COMP%]{background:var(--red-wash);color:var(--red)}.outcome-relinquishedInWindow[_ngcontent-%COMP%]{background:var(--amber-wash);color:var(--amber-deep)}.outcome-reserved[_ngcontent-%COMP%]{background:var(--line-soft);color:var(--ink-muted-text)}"],changeDetection:0})};function zi(t,n){if(t&1&&(a(0,"span",5),l(1," Embargoed after "),a(2,"ia-num",7),l(3),s(),l(4," misses in a row \xB7 may sign up within "),a(5,"ia-num",7),l(6),s(),l(7," hours of start. "),s()),t&2){let e=p();r(2),m("size",13),r(),f(e.missThreshold()),r(2),m("size",13),r(),f(e.embargoWindowHours())}}function Qi(t,n){t&1&&(a(0,"div",6),l(1," Preregistration embargo is switched off for this event type, so no one can be embargoed. Turn it on in the event type's settings to start counting missed preregistrations. "),s())}
11function qi(t,n){t&1&&(a(0,"div",8),l(1," This list was capped and may be incomplete. Recently active attendees are shown first. "),s())}function Vi(t,n){if(t&1&&(a(0,"span",19),l(1),s()),t&2){let e=p().$implicit;r(),T("Released before \xB7 ",e.forgiven)}}function $i(t,n){if(t&1&&(a(0,"div",15),g(1,"ia-avatar",16),a(2,"div",17)(3,"span",18),l(4),s(),v(5,Vi,2,1,"span",19),s()()),t&2){let e=n.$implicit,i=n.index,o=p(2);r(),m("initials",o.init(e.name))("size",30)("color",o.color(i)),r(3),f(e.name),r(),_(e.forgiven?5:-1)}}function Fi(t,n){if(t&1&&(a(0,"span",20),l(1),s()),t&2){let e=n.$implicit;r(),f(e.email)}}function Wi(t,n){if(t&1&&(a(0,"ia-num",21),l(1),s()),t&2){let e=n.$implicit;m("size",13)("weight",600),r(),f(e.streak)}}function Hi(t,n){if(t&1&&(a(0,"ia-num",22),l(1),s()),t&2){let e=p().$implicit;m("size",12.5)("weight",500),r(),f(e.lastMiss)}}function Ui(t,n){t&1&&(a(0,"span",23),l(1,"\u2014"),s())}function ji(t,n){if(t&1&&v(0,Hi,2,3,"ia-num",22)(1,Ui,2,0,"span",23),t&2){let e=n.$implicit;_(e.lastMiss?0:1)}}function Bi(t,n){if(t&1){let e=k();a(0,"ia-button",24),x("click",function(o){let d=y(e).$implicit,c=p(2);return C(c.onRelease(d,o))}),l(1),s()}if(t&2){let e=n.$implicit,i=p(2);m("disabled",i.isReleasing(e)),r(),f(i.isReleasing(e)?"Releasing\u2026":"Release")}}function Gi(t,n){if(t&1){let e=k();v(0,qi,2,0,"div",8),a(1,"ia-data-table",9),x("sortChange",function(o){y(e);let d=p();return C(d.sort.set(o))})("rowClick",function(o){y(e);let d=p();return C(d.onOpenProfile(o))}),ge(2,$i,6,5,"ng-template",10)(3,Fi,2,1,"ng-template",11)(4,Wi,2,3,"ng-template",12)(5,ji,2,1,"ng-template",13)(6,Bi,2,2,"ng-template",14),s()}if(t&2){let e=p();_(e.truncated()?0:-1),r(),m("columns",e.columns)("rows",e.rows())("getId",e.getId)("sort",e.sort())("rowClickable",!0)("loading",e.loading()?"Checking embargoes\u2026":null)}}var Pe=class t{entries=h([]);loading=h(!1);typeLabel=h("");enabled=h(!0);missThreshold=h(null);embargoWindowHours=h(null);truncated=h(!1);releasing=h([]);back=S();release=S();openProfile=S();init=ee;color=te;sort=b({key:null,dir:"asc"});columns=[{key:"name",label:"Name",width:"1.5fr",priority:"primary"},{key:"email",label:"Email",width:"1.8fr",priority:"detail"},{key:"streak",label:"Misses in a row",width:"1fr"},{key:"lastMiss",label:"Last miss",width:"1.1fr"},{key:"act",label:"",width:"0.8fr"}];rows=M(()=>{let n=this.entries(),{key:e,dir:i}=this.sort();if(!e)return n;let o=i==="asc"?1:-1;return[...n].sort((d,c)=>e==="streak"?(d.streak-c.streak)*o:String(d[e]??"").localeCompare(String(c[e]??""))*o)});getId=n=>n.id;isReleasing(n){return this.releasing().includes(n.id)}onRelease(n,e){e.stopPropagation(),this.release.emit(n)}onOpenProfile(n){this.openProfile.emit(n)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=A({type:t,selectors:[["ed-embargoed"]],inputs:{entries:[1,"entries"],loading:[1,"loading"],typeLabel:[1,"typeLabel"],enabled:[1,"enabled"],missThreshold:[1,"missThreshold"],embargoWindowHours:[1,"embargoWindowHours"],truncated:[1,"truncated"],releasing:[1,"releasing"]},outputs:{back:"back",release:"release",openProfile:"openProfile"},decls:13,vars:4,consts:[[1,"wrap"],[1,"back","wtap",3,"click"],["name","chevron",1,"rot",3,"size"],[1,"head"],[1,"sub"],[1,"rule"],[1,"notice"],["color","var(--ink-2)",3,"size"],[1,"notice","warn"],["empty","No one is embargoed for this event type.",3,"sortChange","rowClick","columns","rows","getId","sort","rowClickable","loading"],["iaColumn","name"],["iaColumn","email"],["iaColumn","streak"],["iaColumn","lastMiss"],["iaColumn","act"],[1,"name-cell"],[3,"initials","size","color"],[1,"name-stack"],[1,"name"],[1,"prior"],[1,"email"],["color","var(--red)",3,"size","weight"],["color","var(--ink-2)",3,"size","weight"],[1,"unknown"],["variant","ghost",3,"click","disabled"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"button",1),x("click",function(){return i.back.emit()}),g(2,"ia-icon",2),l(3," Event detail "),s(),a(4,"div",3)(5,"div")(6,"h1"),l(7),s(),a(8,"div",4),l(9," Applies to every event of this type, not just this one. "),v(10,zi,8,4,"span",5),s()()(),v(11,Qi,2,0,"div",6)(12,Gi,7,7),s()),e&2&&(r(2),m("size",16),r(5),T("Embargoed for ",i.typeLabel()),r(3),_(i.enabled()&&i.missThreshold()&&i.embargoWindowHours()?10:-1),r(),_(i.enabled()?12:11))},dependencies:[ne,j,ye,Ce,Q,W],styles:["[_nghost-%COMP%]{display:block;font-family:var(--font)}.wrap[_ngcontent-%COMP%]{max-width:920px}.back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;background:none;border:none;cursor:pointer;color:var(--ink-2);font-family:var(--font);font-size:13.5px;font-weight:600;margin-bottom:18px;padding:0}.back[_ngcontent-%COMP%] .rot[_ngcontent-%COMP%]{transform:rotate(180deg)}.head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}h1[_ngcontent-%COMP%]{margin:0;font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.sub[_ngcontent-%COMP%]{font-size:13px;color:var(--ink-2);margin-top:6px;max-width:620px;line-height:1.5}.rule[_ngcontent-%COMP%]{display:block;margin-top:3px;color:var(--ink-muted-text)}.notice[_ngcontent-%COMP%]{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:13px 15px;font-size:13px;line-height:1.5;color:var(--ink-2);margin-bottom:16px;max-width:620px}.notice.warn[_ngcontent-%COMP%]{border-color:var(--amber);background:var(--amber-wash);color:var(--amber-deep)}.name-cell[_ngcontent-%COMP%]{display:flex;align-items:center;gap:11px}.name-stack[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1px;min-width:0}.name[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--ink)}.prior[_ngcontent-%COMP%]{font-size:11.5px;color:var(--ink-muted-text)}.email[_ngcontent-%COMP%]{font-size:13px;color:var(--ink-2)}.unknown[_ngcontent-%COMP%]{font-size:12.5px;color:var(--ink-muted-text)}"],changeDetection:0})};function Yi(t){return`${(t||"event").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"event"}-one-time-codes.pdf`}function Wt(t,n){let e=new ie({orientation:"portrait",unit:"pt",format:"letter"}),i=e.internal.pageSize.getWidth();e.setFont("helvetica","bold"),e.setFontSize(18),e.text(n.title||"One-time check-in codes",i/2,52,{align:"center"}),e.setFont("helvetica","normal"),e.setFontSize(11),e.text(n.date,i/2,70,{align:"center"}),e.setFontSize(9.5),e.setTextColor(90),e.text(["Each code checks in one attendee, once. Cross a code off as you hand it out.",`Unused codes expire ${n.expires}.`],i/2,92,{align:"center"}),e.setTextColor(0);let o=5,d=48,c=124,u=(i-d*2)/o,E=56;t.forEach((D,w)=>{let O=w%o,N=Math.floor(w/o),V=d+O*u,F=c+N*E;
11e.setDrawColor(180),e.roundedRect(V+4,F,u-8,E-10,4,4),e.setDrawColor(120),e.rect(V+12,F+(E-10)/2-6,12,12),e.setFont("courier","bold"),e.setFontSize(16),e.text(D,V+32,F+(E-10)/2+5.5)}),e.save(Yi(n.title))}var Ki=(t,n)=>n.label,Xi=(t,n)=>n.id,Ji=(t,n)=>n.weekday;function Zi(t,n){if(t&1){let e=k();a(0,"ed-text-responses",8),x("back",function(){y(e);let o=p();return C(o.go("detail"))}),s()}if(t&2){let e,i=p();m("questionText",((e=i.respQuestion())==null?null:e.text)||"")("eventTitle",i.event().title)("responses",i.textResponses())("loading",i.textResponsesLoading())}}function eo(t,n){if(t&1){let e=k();a(0,"ed-preregistration",9),x("back",function(){y(e);let o=p();return C(o.go("detail"))})("openAttendance",function(){y(e);let o=p();return C(o.openAttendanceEvent.emit())})("openProfile",function(o){y(e);let d=p();return C(d.openPreregProfile.emit(o))}),s()}if(t&2){let e=p();m("entries",e.preregEntries())("loading",e.preregLoading())("title",e.event().title)("capacity",e.event().capacity)}}function to(t,n){if(t&1){let e=k();a(0,"ed-embargoed",10),x("back",function(){y(e);let o=p();return C(o.go("detail"))})("release",function(o){y(e);let d=p();return C(d.releaseEmbargo.emit(o))})("openProfile",function(o){y(e);let d=p();return C(d.openEmbargoedProfile.emit(o))}),s()}if(t&2){let e=p();m("entries",e.embargoedEntries())("loading",e.embargoedLoading())("typeLabel",e.event().type)("enabled",e.embargoEnabled())("missThreshold",e.embargoMissThreshold())("embargoWindowHours",e.embargoWindowHours())("truncated",e.embargoedTruncated())("releasing",e.embargoReleasing())}}function no(t,n){t&1&&(a(0,"div",11),g(1,"ia-icon",72),a(2,"span"),l(3,"The event details, status, change log, QR, text codes, and preregistration are live. The survey and assessment panels still show "),a(4,"b"),l(5,"sample data"),s(),l(6,"."),s()()),t&2&&(r(),m("size",17))}function io(t,n){t&1&&(a(0,"div",12),g(1,"ia-icon",73),a(2,"span"),l(3,"This event has been "),a(4,"b"),l(5,"deleted"),s(),l(6," and is shown for reference only. It can\u2019t be edited, duplicated, or checked in to."),s()()),t&2&&(r(),m("size",17))}function oo(t,n){if(t&1&&g(0,"span",74),t&2){let e=p(2);J("background",e.statusInfo().color)}}function ao(t,n){if(t&1){let e=k();a(0,"ia-button",75),x("click",function(){y(e);let o=p(2);return C(o.openSeating.emit())}),l(1," Seating "),s()}}function ro(t,n){if(t&1){let e=k();a(0,"button",76),x("click",function(){let o=y(e).$implicit,d=p(2);return C(d.runAction(o))}),g(1,"ia-icon",77),a(2,"span"),l(3),s()()}if(t&2){let e=n.$implicit;z("danger",e.danger),r(),m("name",e.icon)("size",17),r(2),f(e.label)}}function so(t,n){t&1&&(a(0,"div",34),g(1,"ia-icon",78),l(2," Unavailable "),s()),t&2&&(r(),m("size",18))}function lo(t,n){if(t&1&&(a(0,"div",79),l(1),s(),a(2,"div",37),l(3),s()),t&2){let e=p(2);r(),f(e.event().attendance),r(2),U(" First ",e.event().firstScan," \xB7 last ",e.event().lastScan," ")}}function co(t,n){if(t&1&&(a(0,"div",35)(1,"div",32),l(2,"Registered"),s(),a(3,"div",36),l(4),s(),a(5,"div",37),l(6),s()()),t&2){let e=p(2);r(4),f(e.event().registered),r(2),T("of ",e.event().capacity," capacity")}}function po(t,n){if(t&1){let e=k();a(0,"ed-survey-results",80),x("responsesRequested",function(o){y(e);let d=p(2);return C(d.openResponses(o))}),s()}if(t&2){let e=p(2);m("survey",e.survey())}}function mo(t,n){if(t&1){let e=k();a(0,"button",81),x("click",function(){y(e);let o=p(2);return o.openPrereg.emit(),C(o.go("prereg"))}),a(1,"div",43),g(2,"ia-icon",82),s(),a(3,"div",45)(4,"div",46),l(5,"Preregistration"),s(),a(6,"div",47),l(7),s()(),a(8,"div",48),l(9,"View roster"),s(),g(10,"ia-icon",49),s(),a(11,"button",83),x("click",function(){y(e);let o=p(2);return o.openEmbargoed.emit(),C(o.go("embargoed"))}),a(12,"div",43),g(13,"ia-icon",84),s(),a(14,"div",45)(15,"div",46),l(16,"Embargoed attendees"),s(),a(17,"div",47),l(18),s()(),a(19,"div",48),l(20,"Review"),s(),g(21,"ia-icon",49),s()}if(t&2){let e=p(2);r(2),m("size",22),r(5),f(e.preregSub()),r(3),m("size",18),r(3),m("size",22),r(5),f(e.embargoSub()),r(3),m("size",18)}}function uo(t,n){if(t&1&&g(0,"app-donut-activity-panel",51),t&2){let e=p(2);m("orgId",e.orgId())("subjectId",e.reportEventId())}}function go(t,n){if(t&1&&(a(0,"div",54),g(1,"ia-icon",85),a(2,"div",56)(3,"div",57),l(4,"Also counts as"),s(),a(5,"div",58),l(6),s()()()),t&2){let e=p(2);r(),m("size",18),r(5),T(" ",e.event().secondaryTypes.join(", ")," ")}}function vo(t,n){if(t&1&&(a(0,"div",54),g(1,"ia-icon",86),a(2,"div",56)(3,"div",57),l(4,"Dual scan"),s(),a(5,"div",58),l(6," Entry + exit required \xB7 minimum attendance "),a(7,"ia-num",63),l(8),s(),l(9," min "),s()()()),t&2){let e=p(2);r(),m("size",18),r(6),m("size",13.5),r(),f(e.event().minAttendanceMin)}}function _o(t,n){if(t&1&&(a(0,"div",54),g(1,"ia-icon",87),a(2,"div",56)(3,"div",57),l(4),s(),a(5,"div",58)(6,"a",88),l(7),s(),a(8,"div",59),l(9),s()()()()),t&2){let e=n;r(),m("name",e.podcast?"podcast":"video")("size",18),r(3),T(" ",e.podcast?"Podcast":"Video"," "),r(2),m("href",e.url,Ne),r(),f(e.url),r(2),T(" ",e.podcast?"Listening earns attendance":"Watching earns attendance"," ")}}function fo(t,n){if(t&1&&(a(0,"ia-num",63),l(1),s(),l(2)),t&2){let e=p();m("size",14),r(),f(e.questions),r(),T(" ",e.questions===1?"question":"questions"," ")}}function xo(t,n){t&1&&l(0," Attached ")}function yo(t,n){if(t&1&&(a(0,"div",54),g(1,"ia-icon",87),a(2,"div",56)(3,"div",57),l(4),s(),a(5,"div",58),v(6,fo,3,3)(7,xo,1,0),s()()()),t&2){let e=n;r(),m("name",e.kind==="quiz"?"quiz":"survey")("size",18),r(3),T(" ",e.kind==="quiz"?"Quiz":"Survey"," "),r(2),_(e.questions?6:7)}}function Co(t,n){t&1&&(a(0,"div",54),g(1,"ia-icon",89),a(2,"div",56)(3,"div",57),l(4,"Credit assessment"),s(),a(5,"div",58),l(6,"Challenge questions gate credit"),s()()()),t&2&&(r(),m("size",18))}function ho(t,n){if(t&1&&(a(0,"div",54),g(1,"ia-icon",90),a(2,"div",56)(3,"div",57),l(4,"Speaker / Host"),s(),a(5,"div",58),l(6),s()()()),t&2){let e=p(2);r(),m("size",18),r(5),f(e.event().speaker)}}function bo(t,n){t&1&&(a(0,"span",65),g(1,"ia-icon",21),l(2,"Map check on"),s()),t&2&&(r(),m("size",12))}function Eo(t,n){if(t&1){let e=k();a(0,"span",91),l(1),a(2,"button",92),x("click",function(){let o=y(e).$implicit,d=p(3);return C(d.removeLink.emit(o))}),g(3,"ia-icon",93),s()()}if(t&2){let e=n.$implicit;r(),T(" ",e.title," "),r(2),m("size",13)}}function wo(t,n){if(t&1&&(a(0,"div",66),g(1,"ia-icon",85),a(2,"div",56)(3,"div",57),l(4,"Linked events"),s(),a(5,"div",58),P(6,Eo,4,2,"span",91,Xi),s()()()),t&2){let e=p(2);
11r(),m("size",18),r(5),I(e.event().linked)}}function To(t,n){if(t&1&&(a(0,"div",54),g(1,"ia-icon",94),a(2,"div",56)(3,"div",57),l(4,"Prerequisites"),s(),a(5,"div",58)(6,"span",95),l(7),s(),l(8),s()()()),t&2){let e=n;r(),m("size",18),r(6),T("Must complete ",e.mode),r(),T(" ",e.events.join(", ")," ")}}function So(t,n){if(t&1&&(a(0,"div",54),g(1,"ia-icon",96),a(2,"div",56)(3,"div",57),l(4,"Preregistration"),s(),a(5,"div",58)(6,"ia-num",63),l(7),s(),l(8," / "),a(9,"ia-num",97),l(10),s(),l(11," registered "),s()()()),t&2){let e=p(2);r(),m("size",18),r(5),m("size",14),r(),f(e.event().registered),r(2),m("size",14),r(),f(e.event().capacity)}}function ko(t,n){if(t&1&&(a(0,"a",88),l(1),s()),t&2){let e=n.$implicit;m("href",e,Ne),r(),f(e)}}function Do(t,n){if(t&1&&(a(0,"div",54),g(1,"ia-icon",98),a(2,"div",56)(3,"div",57),l(4),s(),a(5,"div",99),P(6,ko,2,2,"a",88,H),s()()()),t&2){let e=p(2);r(),m("size",18),r(3),T(" ",e.event().urls.length===1?"Link":"Links"," "),r(2),I(e.event().urls)}}function Mo(t,n){if(t&1&&(a(0,"div",100),g(1,"span",101),a(2,"div",102)(3,"div",103),l(4),s(),a(5,"div",104),l(6),s()()()),t&2){let e=n.$implicit,i=n.$index,o=n.$count;z("first",i===0),r(),z("on",i===o-1),r(3),f(e.what),r(2),U("",e.who," \xB7 ",e.at)}}function Oo(t,n){if(t&1){let e=k();a(0,"div",4),v(1,no,7,1,"div",11),v(2,io,7,1,"div",12),a(3,"div",13)(4,"div",14)(5,"div",15)(6,"h1"),l(7),s(),a(8,"span",16),v(9,oo,1,2,"span",17),l(10),s()(),a(11,"div",18)(12,"span",19),g(13,"ia-icon",20),l(14),s(),a(15,"span",19),g(16,"ia-icon",21),l(17),s()()(),a(18,"div",22),v(19,ao,2,0,"ia-button",23),a(20,"ia-button",24),x("click",function(){y(e);let o=p();return C(o.editEvent.emit())}),l(21," Edit "),s(),a(22,"button",25,0),x("click",function(){y(e);let o=p();return C(o.actionsOpen.set(!o.actionsOpen()))}),g(24,"ia-icon",26),s(),a(25,"ia-popover",27),x("closed",function(){y(e);let o=p();return C(o.actionsOpen.set(!1))}),a(26,"div",28),P(27,ro,4,5,"button",29,Ki),s()()()(),a(29,"div",30)(30,"button",31),x("click",function(){y(e);let o=p();return C(o.openAttendance())}),a(31,"div",32),l(32," Attended "),g(33,"ia-icon",33),s(),v(34,so,3,1,"div",34)(35,lo,4,3),s(),v(36,co,7,2,"div",35),a(37,"div",35)(38,"div",32),l(39,"Credits"),s(),a(40,"div",36),l(41),s(),a(42,"div",37),l(43,"per attendee"),s()()(),a(44,"div",38)(45,"div",39),g(46,"ed-qr-card",40),a(47,"ed-text-codes-card",41),x("regenerateCode",function(o){y(e);let d=p();return C(d.regenerateCode.emit(o))})("setCodeExpiry",function(o){y(e);let d=p();return C(d.setCodeExpiry.emit(o))})("openOneTimeCodes",function(){y(e);let o=p();return C(o.showOneTimeCodes())})("generateSingleCode",function(){y(e);let o=p();return C(o.generateSingleCode.emit())})("openTypeCodeSheet",function(){y(e);let o=p();return C(o.openTypeCodeSheet.emit())}),s(),a(48,"button",42),x("click",function(){y(e);let o=p();return C(o.editAssessment.emit())}),a(49,"div",43),g(50,"ia-icon",44),s(),a(51,"div",45)(52,"div",46),l(53,"Credit Assessment"),s(),a(54,"div",47),l(55),s()(),a(56,"div",48),l(57),s(),g(58,"ia-icon",49),s(),v(59,po,1,1,"ed-survey-results",50),v(60,mo,22,6),v(61,uo,1,2,"app-donut-activity-panel",51),s(),a(62,"div",39)(63,"div",52)(64,"div",53),l(65,"Configuration"),s(),a(66,"div",54),g(67,"ia-icon",55),a(68,"div",56)(69,"div",57),l(70,"Date"),s(),a(71,"div",58),l(72),a(73,"div",59),l(74),s()()()(),a(75,"div",54),g(76,"ia-icon",60),a(77,"div",56)(78,"div",57),l(79,"Event type"),s(),a(80,"div",58),g(81,"ia-event-tag",61),s()()(),v(82,go,7,2,"div",54),a(83,"div",54),g(84,"ia-icon",62),a(85,"div",56)(86,"div",57),l(87,"Credits"),s(),a(88,"div",58)(89,"ia-num",63),l(90),s(),l(91," credits "),s()()(),v(92,vo,10,3,"div",54),v(93,_o,10,6,"div",54),v(94,yo,8,4,"div",54),v(95,Co,7,1,"div",54),v(96,ho,7,2,"div",54),a(97,"div",54),g(98,"ia-icon",64),a(99,"div",56)(100,"div",57),l(101,"Location"),s(),a(102,"div",58),l(103),v(104,bo,3,1,"span",65),s()()(),v(105,wo,8,1,"div",66),v(106,To,9,3,"div",54),v(107,So,12,5,"div",54),a(108,"div",54),g(109,"ia-icon",67),a(110,"div",56)(111,"div",57),l(112,"Description"),s(),a(113,"div",68),l(114),s()()(),v(115,Do,8,2,"div",54),s(),a(116,"div",69)(117,"div",70),g(118,"ia-icon",20),a(119,"span"),l(120,"Event change log"),s()(),P(121,Mo,7,7,"div",71,se),s()()()()}
11if(t&2){let e,i,o,d=ve(23),c=p();r(),_(c.sampleData()?1:-1),r(),_(c.event().deleted?2:-1),r(5),f(c.event().title),r(),J("background",c.statusInfo().wash)("color",c.statusInfo().color),r(),_(c.statusInfo().dot?9:-1),r(),T(" ",c.statusInfo().label," "),r(3),m("size",16),r(),U("",c.event().dateLabel," \xB7 ",c.event().timeLabel," "),r(2),m("size",16),r(),T("",c.event().location[0]," "),r(2),_(c.seatingEnabled()?19:-1),r(5),m("size",20),r(),m("origin",d)("open",c.actionsOpen())("width",210),r(2),I(c.actions()),r(6),m("size",13),r(),_(c.event().attendanceUnavailable?34:35),r(2),_(c.event().capacity>0?36:-1),r(5),f(c.event().credits),r(5),m("status",c.event().status)("target",c.qrTarget())("eventLoading",c.eventLoading()),r(),m("codes",c.textCodes())("singleCode",c.singleCode())("singleCodeLoading",c.singleCodeLoading()),r(3),m("size",22),r(5),T(" ",c.event().assessment?"Configured \u2014 challenge questions gate credit":"Not set up"," "),r(2),T(" ",c.event().assessment?"Edit":"Set up"," "),r(),m("size",18),r(),_(c.event().survey?59:-1),r(),_(c.event().capacity>0?60:-1),r(),_(c.reportEventId()?61:-1),r(6),m("size",18),r(5),T(" ",c.event().dateLabel," "),r(2),f(c.event().timeLabel),r(2),m("size",18),r(5),m("type",c.event().type),r(),_(c.event().secondaryTypes.length?82:-1),r(2),m("size",18),r(5),m("size",14),r(),f(c.event().credits),r(2),_(c.event().dualScan?92:-1),r(),_((e=c.event().video)?93:-1,e),r(),_((i=c.event().quiz)?94:-1,i),r(),_(c.event().assessment?95:-1),r(),_(c.event().speaker?96:-1),r(2),m("size",18),r(5),T(" ",c.event().location.join(", ")," "),r(),_(c.event().mapCheck?104:-1),r(),_(c.event().linked.length?105:-1),r(),_((o=c.event().prereq)?106:-1,o),r(),_(c.event().capacity>0?107:-1),r(2),m("size",18),r(5),f(c.event().description),r(),_(c.event().urls.length?115:-1),r(3),m("size",20),r(3),I(c.changelog())}}function Po(t,n){if(t&1){let e=k();a(0,"ia-field",108)(1,"ia-select",120),x("valueChange",function(o){y(e);let d=p(2);return C(d.dupType.set(o))}),s()()}if(t&2){let e=p(2);r(),m("value",e.dupType())("options",e.eventTypeOptions())}}function Io(t,n){if(t&1){let e=k();a(0,"button",121),x("click",function(){let o=y(e).$implicit,d=p(2);return C(d.dupShift.set(o))}),l(1),s()}if(t&2){let e=n.$implicit,i=p(2);z("on",i.dupShift()===e),r(),T(" ",e," ")}}function Ro(t,n){if(t&1&&(l(0," The copy is created as a "),a(1,"b"),l(2),s(),l(3," event, with its date and start time unchanged from the original. ")),t&2){let e=p(2);r(2),f(e.dupTypeLabel())}}function Lo(t,n){if(t&1&&(l(0," The copy is created as a "),a(1,"b"),l(2),s(),l(3)),t&2){let e=p(2);r(2),f(e.dupTypeLabel()),r(),T(" event, with its start time moved ",e.dupShift()," from the original. ")}}function No(t,n){if(t&1){let e=k();a(0,"ia-modal",105),x("closed",function(){y(e);let o=p();return C(o.modal.set(null))}),a(1,"label",106),l(2,"New title"),s(),a(3,"input",107),x("input",function(o){y(e);let d=p();return C(d.dupTitle.set(o.target.value))}),s(),v(4,Po,2,2,"ia-field",108),a(5,"div",109),l(6,"Shift date by"),s(),a(7,"div",110),P(8,Io,2,3,"button",111,H),s(),a(10,"div",112),v(11,Ro,4,1)(12,Lo,4,2),s(),a(13,"div",113)(14,"div")(15,"div",114),l(16,"Hide this event"),s(),a(17,"div",115),l(18," Keep the duplicate out of attendees' views until you're ready. "),s()(),a(19,"ia-toggle",116),x("checkedChange",function(o){y(e);let d=p();return C(d.dupHide.set(o))}),s()(),a(20,"div",113)(21,"div")(22,"div",114),l(23,"Link new event to this one"),s(),a(24,"div",115),l(25,"Treat the two as a connected series."),s()(),a(26,"ia-toggle",116),x("checkedChange",function(o){y(e);let d=p();return C(d.dupLink.set(o))}),s()(),a(27,"div",112),l(28," Duration is copied; credit windows recalculate from the new start. "),s(),a(29,"div",117)(30,"ia-button",118),x("click",function(){y(e);let o=p();return C(o.modal.set(null))}),l(31,"Cancel"),s(),a(32,"ia-button",119),x("click",function(){y(e);let o=p();return C(o.confirmDuplicate())}),l(33,"Create duplicate"),s()()()}if(t&2){let e=p();m("sub","Copy of "+e.event().title)("width",500),r(3),m("value",e.dupTitle()),r(),_(e.eventTypeOptions().length?4:-1),r(4),I(e.shiftOptions),r(3),_(e.dupShift()==="Same date"?11:12),r(8),m("checked",e.dupHide()),r(7),m("checked",e.dupLink())}}function Ao(t,n){t&1&&(a(0,"div",123),g(1,"ia-icon",126),a(2,"div"),l(3," This event's attendance count couldn't be loaded, so it can't be safely deleted \u2014 it will be hidden instead. It stays in attendees' histories and continues to count toward their progress. "),s()()),t&2&&(r(),m("size",20)("strokeWidth",2.2))}function zo(t,n){if(t&1&&(a(0,"div",123),g(1,"ia-icon",126),a(2,"div"),l(3," This event has "),a(4,"b"),l(5),s(),l(6,", so it can't be deleted \u2014 only hidden. It will stay in attendees' histories and continue to count toward their progress. "),s()()),t&2){let e=p(2);r(),m("size",20)("strokeWidth",2.2),r(4),T("",e.event().attendance," attendance records")}}function Qo(t,n){t&1&&(a(0,"p",124),l(1," This event has no attendance and will be permanently deleted. This can't be und
11one. "),s())}function qo(t,n){if(t&1){let e=k();a(0,"button",121),x("click",function(){let o=y(e).$implicit,d=p(4);return C(d.deleteWeekday.set(o.weekday))}),l(1),s()}if(t&2){let e=n.$implicit,i=p(4);z("on",i.deleteWeekday()===e.weekday),r(),U(" ",e.label," only (",e.count,") ")}}function Vo(t,n){if(t&1){let e=k();a(0,"div",127),l(1,"Which occurrences"),s(),a(2,"div",128)(3,"button",121),x("click",function(){y(e);let o=p(3);return C(o.deleteWeekday.set(null))}),l(4),s(),P(5,qo,2,4,"button",111,Ji),s()}if(t&2){let e=p(3);r(3),z("on",e.deleteWeekday()===null),r(),T(" All ",e.seriesFutureCount()," "),r(),I(e.seriesWeekdays())}}function $o(t,n){t&1&&(a(0,"div",123),g(1,"ia-icon",126),a(2,"div"),l(3," Some of these occurrences may already have attendance. Those are hidden \u2014 kept in attendees' histories and still counting toward their progress \u2014 rather than removed. "),s()()),t&2&&(r(),m("size",20)("strokeWidth",2.2))}function Fo(t,n){if(t&1){let e=k();a(0,"div",113)(1,"div")(2,"div",114),l(3," Also delete the rest of this repeating series "),s(),a(4,"div",115),l(5),s()(),a(6,"ia-toggle",116),x("checkedChange",function(o){y(e);let d=p(2);return C(d.deleteSeries.set(o))}),s()(),v(7,Vo,7,3),v(8,$o,4,2,"div",123)}if(t&2){let e=p(2);r(5),U(" Removes the other ",e.seriesDeleteCount()," future ",e.seriesDeleteCount()===1?"event":"events"," in this series too. "),r(),m("checked",e.deleteSeries()),r(),_(e.deleteSeries()&&e.seriesWeekdays().length?7:-1),r(),_(e.deleteSeries()?8:-1)}}function Wo(t,n){if(t&1){let e=k();a(0,"ia-modal",122),x("closed",function(){y(e);let o=p();return C(o.modal.set(null))}),v(1,Ao,4,2,"div",123)(2,zo,7,3,"div",123)(3,Qo,2,0,"p",124),v(4,Fo,9,5),a(5,"div",117)(6,"ia-button",118),x("click",function(){y(e);let o=p();return C(o.modal.set(null))}),l(7,"Cancel"),s(),a(8,"ia-button",125),x("click",function(){y(e);let o=p();return C(o.confirmDelete())}),l(9),s()()()}if(t&2){let e=p();m("title",e.hasAttendance()?"Hide event":"Delete event")("width",460),r(),_(e.event().attendanceUnavailable?1:e.hasAttendance()?2:3),r(3),_(e.seriesFutureCount()>0?4:-1),r(4),m("danger",!0),r(),T(" ",e.hasAttendance()?"Hide event":"Delete permanently"," ")}}function Ho(t,n){t&1&&(a(0,"p",130),l(1,"Preparing the code list\u2026"),s())}function Uo(t,n){if(t&1&&(a(0,"span",133),l(1),s()),t&2){let e=n.$implicit;r(),f(e)}}function jo(t,n){if(t&1&&(a(0,"p",130),l(1," Each code checks in one attendee, once. Print the list and cross a code off as you hand it out. Unused codes expire "),a(2,"b"),l(3),s(),l(4," \u2014 24 hours after the event ends. This is the event's one and only list; if you need more than 50 codes, generate them one at a time in the uAttended app. "),s(),a(5,"div",132),P(6,Uo,2,1,"span",133,H),s()),t&2){let e=p(2);r(3),f(e.oneTimeCodesExpires()),r(3),I(e.oneTimeCodes())}}function Bo(t,n){t&1&&(a(0,"p",130),l(1," The code list couldn't be loaded. Close this and try again. "),s())}function Go(t,n){if(t&1){let e=k();a(0,"ia-button",134),x("click",function(){y(e);let o=p(2);return C(o.downloadOneTimeCodesPdf())}),l(1," Download PDF "),s()}}function Yo(t,n){if(t&1){let e=k();a(0,"ia-modal",129),x("closed",function(){y(e);let o=p();return C(o.modal.set(null))}),v(1,Ho,2,0,"p",130)(2,jo,8,1)(3,Bo,2,0,"p",130),a(4,"div",117)(5,"ia-button",118),x("click",function(){y(e);let o=p();return C(o.modal.set(null))}),l(6,"Close"),s(),v(7,Go,2,0,"ia-button",131),s()()}if(t&2){let e,i,o=p();m("sub",o.event().title)("width",560),r(),_(o.oneTimeCodesLoading()?1:(e=o.oneTimeCodes())!=null&&e.length?2:3),r(6),_((i=o.oneTimeCodes())!=null&&i.length?7:-1)}}var Ie=class t{toastSvc=L(B);event=h(de);changelog=h(ht);org=h("Northfield University");nav=h(Be);sampleData=h(!1);qrTarget=h(null);eventLoading=h(!1);icsUrl=h(null);textCodes=h([]);preregEntries=h(we);preregLoading=h(!1);openPrereg=S();openPreregProfile=S();initialView=h(null);embargoedEntries=h([]);embargoedLoading=h(!1);embargoEnabled=h(!0);embargoMissThreshold=h(null);embargoWindowHours=h(null);embargoedTruncated=h(!1);embargoReleasing=h([]);openEmbargoed=S();releaseEmbargo=S();openEmbargoedProfile=S();survey=h(be);textResponses=h(Ee);textResponsesLoading=h(!1);orgId=h(null);reportEventId=h(null);loadResponses=S();regenerateCode=S();openOneTimeCodes=S();openTypeCodeSheet=S();oneTimeCodes=h(null);oneTimeCodesLoading=h(!1);oneTimeCodesExpires=h("");generateSingleCode=S();singleCode=h(null);singleCodeLoading=h(!1);setCodeExpiry=S();openAttendanceEvent=S();editEvent=S();editAssessment=S();createNew=S();backToEvents=S();duplicateEvent=S();seriesFutureCount=h(0);seriesWeekdays=h([]);deleteEvent=S();bulkEdit=S();addAttendee=S();uploadCsv=S();removeLink=S();seatingEnabled=h(!1);openSeating=S();eventTypeOptions=h([]);currentTypeId=h("");view=b("detail");applyInitialView=re(()=>{let n=this.initialView();n&&this.go(n)});respQuestion=b(null);modal=b(null);actionsOpen=b(!1);deleteSeries=b(!1);deleteWeekday=b(null);seriesDeleteCount=M(()=>{let n=this.deleteWeekday();return n===null?this.seriesFutureCount():this.seriesWeekdays().find(e=>e.weekday===n)?.count??0});dupTitle=b("");dupHide=b(!0);dupLink=b(!1);dupShift=b("+1 week");dupType=b("");dupTypeLabel=M(()=>this.eventTypeOptions().find(n=>n.value===this.dupType())?.label??this.event().type);shiftOptions=["Same date","+1 day","+2 days","+1 week","+4 weeks","+1 month"];breadcrumb=M(()=>["Events",this.event().title]);hasAttendance=M(()=>this.event().attendance>0||!!this.event().attendanceUnavailable);statusInfo=M(()=>{switch(this.event().status){case"live":return{color:"var(--red)",wash:"var(--red-wash)",label:"Live",dot:!0};case"upcoming":return{color:"var(--amber)",wash:"var(--amber-wash)",label:"Upcoming",dot:!1};case"checkin":return{color:"var(--teal)",wash:"var(--teal-wash)",label:"Check-in open",dot:!0};default:return{color:"var(--green)",wash:"var(--green-wash)",label:"Concluded",dot:!1}}});actions=M(()=>
11{if(this.event().deleted){let i=[],o=this.icsUrl();return o&&i.push({label:"Download .ics",icon:"download",run:()=>window.open(o,"_blank")}),i.push({label:"Create new",icon:"plus",run:()=>this.createNew.emit()}),i}let n=[{label:"Edit",icon:"sliders",run:()=>this.editEvent.emit()},{label:"Bulk Edit",icon:"layers",run:()=>this.bulkEdit.emit()},{label:"Challenge Questions",icon:"check",run:()=>this.editAssessment.emit()},{label:"Add attendee",icon:"userPlus",run:()=>this.addAttendee.emit()},{label:"Upload CSV",icon:"upload",run:()=>this.uploadCsv.emit()},{label:"Duplicate",icon:"plus",run:()=>this.openDuplicate()},{label:"Create new",icon:"plus",run:()=>this.createNew.emit()}],e=this.icsUrl();return e&&n.push({label:"Download .ics",icon:"download",run:()=>window.open(e,"_blank")}),n.push({label:"Delete",icon:"trash",run:()=>{this.deleteSeries.set(!1),this.deleteWeekday.set(null),this.modal.set("del")},danger:!0}),n});preregSub=M(()=>`${this.event().registered} registered of ${this.event().capacity} capacity`);embargoSub=M(()=>{if(!this.embargoEnabled())return"Not switched on for this event type";let n=this.embargoedEntries().length;return n===0?"Early sign-up limits for this event type":`${n} attendee${n===1?"":"s"} with early sign-up paused`});go(n){this.view.set(n),this.actionsOpen.set(!1),document.querySelector("main.main")?.scrollTo({top:0})}runAction(n){this.actionsOpen.set(!1),n.run()}openResponses(n){this.respQuestion.set(n),this.loadResponses.emit(n.id),this.go("responses")}openDuplicate(){this.dupTitle.set(`Copy of ${this.event().title}`),this.dupType.set(this.currentTypeId()),this.modal.set("dup")}confirmDuplicate(){let n=this.dupType()||this.currentTypeId();this.duplicateEvent.emit({title:this.dupTitle().trim()||`Copy of ${this.event().title}`,shift:this.dupShift(),hide:this.dupHide(),link:this.dupLink(),typeId:n,typeLabel:this.dupTypeLabel()}),this.modal.set(null)}confirmDelete(){this.deleteEvent.emit({series:this.deleteSeries(),weekday:this.deleteSeries()?this.deleteWeekday():null}),this.modal.set(null)}openAttendance(){this.openAttendanceEvent.emit()}showOneTimeCodes(){this.openOneTimeCodes.emit(),this.modal.set("codes")}downloadOneTimeCodesPdf(){let n=this.oneTimeCodes();n?.length&&Wt(n,{title:this.event().title,date:`${this.event().dateLabel} \xB7 ${this.event().timeLabel}`,expires:this.oneTimeCodesExpires()})}toast(n){this.toastSvc.show(n)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=A({type:t,selectors:[["app-event-detail"]],inputs:{event:[1,"event"],changelog:[1,"changelog"],org:[1,"org"],nav:[1,"nav"],sampleData:[1,"sampleData"],qrTarget:[1,"qrTarget"],eventLoading:[1,"eventLoading"],icsUrl:[1,"icsUrl"],textCodes:[1,"textCodes"],preregEntries:[1,"preregEntries"],preregLoading:[1,"preregLoading"],initialView:[1,"initialView"],embargoedEntries:[1,"embargoedEntries"],embargoedLoading:[1,"embargoedLoading"],embargoEnabled:[1,"embargoEnabled"],embargoMissThreshold:[1,"embargoMissThreshold"],embargoWindowHours:[1,"embargoWindowHours"],embargoedTruncated:[1,"embargoedTruncated"],embargoReleasing:[1,"embargoReleasing"],survey:[1,"survey"],textResponses:[1,"textResponses"],textResponsesLoading:[1,"textResponsesLoading"],orgId:[1,"orgId"],reportEventId:[1,"reportEventId"],oneTimeCodes:[1,"oneTimeCodes"],oneTimeCodesLoading:[1,"oneTimeCodesLoading"],oneTimeCodesExpires:[1,"oneTimeCodesExpires"],singleCode:[1,"singleCode"],singleCodeLoading:[1,"singleCodeLoading"],seriesFutureCount:[1,"seriesFutureCount"],seriesWeekdays:[1,"seriesWeekdays"],seatingEnabled:[1,"seatingEnabled"],eventTypeOptions:[1,"eventTypeOptions"],currentTypeId:[1,"currentTypeId"]},outputs:{openPrereg:"openPrereg",openPreregProfile:"openPreregProfile",openEmbargoed:"openEmbargoed",releaseEmbargo:"releaseEmbargo",openEmbargoedProfile:"openEmbargoedProfile",loadResponses:"loadResponses",regenerateCode:"regenerateCode",openOneTimeCodes:"openOneTimeCodes",openTypeCodeSheet:"openTypeCodeSheet",generateSingleCode:"generateSingleCode",setCodeExpiry:"setCodeExpiry",openAttendanceEvent:"openAttendanceEvent",editEvent:"editEvent",editAssessment:"editAssessment",createNew:"createNew",backToEvents:"backToEvents",duplicateEvent:"duplicateEvent",deleteEvent:"deleteEvent",bulkEdit:"bulkEdit",addAttendee:"addAttendee",uploadCsv:"uploadCsv",removeLink:"removeLink",openSeating:"openSeating"},decls:8,vars:4,consts:[["actTrig","cdkOverlayOrigin"],[3,"questionText","eventTitle","responses","loading"],[3,"entries","loading","title","capacity"],[3,"entries","loading","typeLabel","enabled","missThreshold","embargoWindowHours","truncated","releasing"],[1,"page"],["title","Duplicate event",3,"sub","width"],[3,"title","width"],["title","One-time check-in codes",3,"sub","width"],[3,"back","questionText","eventTitle","responses","loading"],[3,"back","openAttendance","openProfile","entries","loading","title","capacity"],[3,"back","release","openProfile","entries","loading","typeLabel","enabled","missThreshold","embargoWindowHours","truncated","releasing"],[1,"sample-banner"],[1,"deleted-banner"],[1,"head"],[1,"head-main"],[1,"title-row"],[1,"status"],[1,"status-dot",3,"background"],[1,"meta"],[1,"meta-item"],["name","clock",3,"size"],["name","pin",3,"size"],[1,"head-actions"],["variant","ghost","icon","pin","title","Assign or reassign attendees' seats"],["variant","ghost","icon","sliders",3,"click"],["data-help","events-detail-actions","cdkOverlayOrigin","","aria-label","More actions",1,"actions-btn","wtap",3,"click"],["name","dots",3,"size"],["align","end",3,"closed","origin","open","width"],[1,"actions-menu"],[1,"action-item","wtap",3,"danger"],[1,"stats"],[1,"stat","wtap","clickable",3,"click"],[1,"stat-label"],["name","chevron",3,"size"],["title","Attendance count couldn't be loaded \u2014 you may
11not have permission for this event type, or the read failed. Try reloading.","aria-label","Attendance count unavailable",1,"stat-v","unavailable"],[1,"stat"],[1,"stat-v"],[1,"stat-sub"],[1,"cols"],[1,"col"],[3,"status","target","eventLoading"],[3,"regenerateCode","setCodeExpiry","openOneTimeCodes","generateSingleCode","openTypeCodeSheet","codes","singleCode","singleCodeLoading"],["data-help","events-assessment",1,"entry","wtap",3,"click"],[1,"entry-icon"],["name","check",3,"size"],[1,"entry-body"],[1,"entry-title"],[1,"entry-sub"],[1,"entry-meta"],["name","chevron",1,"entry-chev",3,"size"],[3,"survey"],["mode","event",3,"orgId","subjectId"],[1,"config"],[1,"config-kicker"],[1,"cfg-item"],["name","calendar",1,"ci-icon",3,"size"],[1,"ci-body"],[1,"ci-label"],[1,"ci-value"],[1,"ci-time"],["name","flag",1,"ci-icon",3,"size"],[3,"type"],["name","check",1,"ci-icon",3,"size"],["color","var(--ink)",3,"size"],["name","pin",1,"ci-icon",3,"size"],[1,"map-chip"],["data-help","events-linked-events",1,"cfg-item"],["name","fileText",1,"ci-icon",3,"size"],[1,"ci-value","muted"],[1,"changelog"],[1,"cl-head"],[1,"cl-item",3,"first"],["name","info",3,"size"],["name","trash",3,"size"],[1,"status-dot"],["variant","ghost","icon","pin","title","Assign or reassign attendees' seats",3,"click"],[1,"action-item","wtap",3,"click"],[3,"name","size"],["name","alert",3,"size"],[1,"stat-v","teal"],[3,"responsesRequested","survey"],["data-help","events-prereg-roster",1,"entry","wtap",3,"click"],["name","users",3,"size"],["data-help","events-prereg-embargoed",1,"entry","wtap",3,"click"],["name","ban",3,"size"],["name","layers",1,"ci-icon",3,"size"],["name","qr",1,"ci-icon",3,"size"],[1,"ci-icon",3,"name","size"],["target","_blank","rel","noopener",1,"event-link",3,"href"],["name","shield",1,"ci-icon",3,"size"],["name","users",1,"ci-icon",3,"size"],[1,"link-chip"],["aria-label","Remove link",1,"link-x","wtap",3,"click"],["name","x",3,"size"],["name","list",1,"ci-icon",3,"size"],[1,"prereq-chip"],["name","preregister",1,"ci-icon",3,"size"],["color","var(--ink-2)",3,"size"],["name","link",1,"ci-icon",3,"size"],[1,"event-links"],[1,"cl-item"],[1,"cl-dot"],[1,"cl-body"],[1,"cl-what"],[1,"cl-who"],["title","Duplicate event",3,"closed","sub","width"],["for","ed-dup-title",1,"lbl"],["id","ed-dup-title",1,"inp",3,"input","value"],["label","Event type"],["id","ed-shift-label",1,"lbl"],["role","group","aria-labelledby","ed-shift-label",1,"chips"],[1,"chip","wtap",3,"on"],[1,"modal-note"],[1,"toggle-row"],[1,"tr-label"],[1,"tr-hint"],[3,"checkedChange","checked"],["footer",""],["variant","ghost",3,"click"],["icon","plus",3,"click"],["placeholder","Select a type\u2026",3,"valueChange","value","options"],[1,"chip","wtap",3,"click"],[3,"closed","title","width"],[1,"hide-warn"],[1,"del-text"],["variant","primary",3,"click","danger"],["name","alert",3,"size","strokeWidth"],["id","ed-series-day-label",1,"lbl"],["role","group","aria-labelledby","ed-series-day-label",1,"chips"],["title","One-time check-in codes",3,"closed","sub","width"],[1,"otc-note"],["icon","download"],[1,"otc-grid"],[1,"otc-code"],["icon","download",3,"click"]],template:function(e,i){if(e&1&&(v(0,Zi,1,4,"ed-text-responses",1)(1,eo,1,4,"ed-preregistration",2)(2,to,1,8,"ed-embargoed",3)(3,Oo,123,60,"div",4),v(4,No,34,7,"ia-modal",5),v(5,Wo,10,6,"ia-modal",6),g(6,"ia-toast-outlet"),v(7,Yo,8,4,"ia-modal",7)),e&2){let o;_((o=i.view())==="responses"?0:o==="prereg"?1:o==="embargoed"?2:3),r(4),_(i.modal()==="dup"?4:-1),r(),_(i.modal()==="del"?5:-1),r(2),_(i.modal()==="codes"?7:-1)}},dependencies:[fe,j,Ue,Ke,Q,Ge,W,xe,Xe,Je,Ye,Se,ke,De,Me,Oe,Pe,wt],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:block;height:100%}.page[_ngcontent-%COMP%]{max-width:var(--content-max);margin-inline:auto}.head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.title-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:9px}.title-row[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:27px;font-weight:700;letter-spacing:-.6px;color:var(--ink)}.status[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:7px}.status-dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%;display:inline-block;animation:ia-livedot-pulse 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.status-dot[_ngcontent-%COMP%]{animation:none}}.meta[_ngcontent-%COMP%]{display:flex;gap:16px;color:var(--ink-2);font-size:13.5px;flex-wrap:wrap}.meta-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.meta-item[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{color:var(--ink-muted-text)}.head-actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:center}.actions-btn[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:11px;border:1px solid var(--line);background:var(--card);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink-2)}.actions-menu[_ngcontent-%COMP%]{padding:6px}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border-radius:9px;
11cursor:pointer;background:transparent;border:none;color:var(--ink);font-family:var(--font);font-size:13.5px;font-weight:500}.action-item[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{color:var(--ink-2)}.action-item.danger[_ngcontent-%COMP%]{color:var(--red);border-top:1px solid var(--line-soft);margin-top:4px;padding-top:13px}.action-item.danger[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{color:var(--red)}.stats[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:22px;max-width:620px}.stat[_ngcontent-%COMP%]{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:15px 18px;text-align:left;font-family:var(--font)}.stat.clickable[_ngcontent-%COMP%]{cursor:pointer}.stat-label[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-2);font-weight:600;display:flex;align-items:center;gap:6px}.stat-label[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{color:var(--ink-muted-text)}.stat-v[_ngcontent-%COMP%]{font-size:27px;font-weight:700;letter-spacing:-1px;color:var(--ink);margin-top:4px;font-family:var(--mono);font-variant-numeric:tabular-nums}.stat-v.teal[_ngcontent-%COMP%]{color:var(--teal)}.stat-v.unavailable[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;font-family:var(--font);font-size:16px;letter-spacing:normal;color:var(--amber-deep);cursor:help}.stat-sub[_ngcontent-%COMP%]{font-size:11.5px;color:var(--ink-muted-text);margin-top:2px}.cols[_ngcontent-%COMP%]{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;align-items:start}.col[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:20px;min-width:0}.entry[_ngcontent-%COMP%]{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:18px;cursor:pointer;display:flex;align-items:center;gap:15px;font-family:var(--font);text-align:left}.entry-icon[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:12px;background:var(--teal-wash);display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--teal)}.entry-body[_ngcontent-%COMP%]{flex:1;min-width:0}.entry-title[_ngcontent-%COMP%]{font-size:15px;font-weight:700;color:var(--ink)}.entry-sub[_ngcontent-%COMP%]{font-size:12.5px;color:var(--ink-2);margin-top:2px}.entry-meta[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-2);font-weight:600;margin-right:4px;text-align:right}.entry-chev[_ngcontent-%COMP%]{color:var(--ink-muted-text)}.config[_ngcontent-%COMP%]{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:6px 20px 16px}.config-kicker[_ngcontent-%COMP%]{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);padding:14px 0 2px}.cfg-item[_ngcontent-%COMP%]{display:flex;gap:12px;padding:13px 0;border-top:1px solid var(--line-soft)}.ci-icon[_ngcontent-%COMP%]{flex:0 0 auto;margin-top:1px;color:var(--ink-muted-text)}.ci-body[_ngcontent-%COMP%]{flex:1;min-width:0}.ci-label[_ngcontent-%COMP%]{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted-text);margin-bottom:3px}.ci-value[_ngcontent-%COMP%]{font-size:13.5px;color:var(--ink);line-height:1.5}.event-links[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.event-link[_ngcontent-%COMP%]{font-size:13.5px;color:var(--teal-deep);text-decoration:none;word-break:break-all}.event-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.ci-value.muted[_ngcontent-%COMP%]{color:var(--ink-2)}.ci-time[_ngcontent-%COMP%]{color:var(--ink-2);font-size:12.5px;margin-top:1px}.map-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--teal-deep);background:var(--teal-wash);padding:2px 8px;border-radius:6px;margin-left:8px}.map-chip[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{color:var(--teal)}.link-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;background:var(--line-soft);border-radius:8px;padding:4px 6px 4px 10px;font-size:12.5px;margin-right:6px}.link-x[_ngcontent-%COMP%]{cursor:pointer;display:flex;border:none;background:transparent;padding:0;color:var(--ink-muted-text)}.prereq-chip[_ngcontent-%COMP%]{font-size:11.5px;font-weight:700;color:var(--amber);background:var(--amber-wash);padding:2px 8px;border-radius:6px;margin-right:8px}.changelog[_ngcontent-%COMP%]{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:20px}.cl-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:9px;margin-bottom:14px;font-size:16px;font-weight:700;color:var(--ink)}.cl-item[_ngcontent-%COMP%]{display:flex;gap:13px;padding:11px 0;border-top:1px solid var(--line-soft)}.cl-item.first[_ngcontent-%COMP%]{border-top:none}
11.cl-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;background:var(--line);margin-top:6px;flex:0 0 auto}.cl-dot.on[_ngcontent-%COMP%]{background:var(--teal)}.cl-what[_ngcontent-%COMP%]{font-size:13.5px;color:var(--ink)}.cl-who[_ngcontent-%COMP%]{font-size:11.5px;color:var(--ink-muted-text);margin-top:2px}.lbl[_ngcontent-%COMP%]{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted-text);margin-bottom:6px}#ed-shift-label[_ngcontent-%COMP%]{margin-top:22px}.inp[_ngcontent-%COMP%]{width:100%;border:1px solid var(--line);border-radius:var(--r-input);outline:none;padding:11px 13px;font-family:var(--font);font-size:14px;color:var(--ink);margin-bottom:16px;background:var(--card)}.inp[_ngcontent-%COMP%]:focus-visible{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-wash)}.chips[_ngcontent-%COMP%]{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.chip[_ngcontent-%COMP%]{font-family:var(--font);font-size:12.5px;font-weight:600;border:1.5px solid var(--line);background:var(--card);color:var(--ink-2);border-radius:9px;padding:8px 13px;cursor:pointer}.chip.on[_ngcontent-%COMP%]{border-color:var(--teal);background:var(--teal-soft);color:var(--teal-deep)}.field-row[_ngcontent-%COMP%]{display:flex;gap:12px}.field[_ngcontent-%COMP%]{flex:1}.toggle-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--line-soft)}.tr-label[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--ink)}.tr-hint[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-2);margin-top:1px}.modal-note[_ngcontent-%COMP%]{font-size:12px;color:var(--ink-muted-text);margin-top:12px}.hide-warn[_ngcontent-%COMP%]{display:flex;gap:12px;padding:13px 15px;border-radius:12px;background:var(--amber-wash);font-size:13.5px;color:var(--ink);line-height:1.55}.hide-warn[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{flex:0 0 auto;margin-top:1px;color:var(--amber)}.del-text[_ngcontent-%COMP%]{font-size:13.5px;color:var(--ink-2);line-height:1.6;margin:0}.sample-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:9px;background:var(--amber-wash);border-radius:11px;padding:10px 14px;margin-bottom:16px;font-size:13px;color:var(--amber-deep);line-height:1.45}.sample-banner[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{flex:0 0 auto;color:var(--amber)}.deleted-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:9px;background:var(--red-wash);border-radius:11px;padding:10px 14px;margin-bottom:16px;font-size:13px;color:var(--red);line-height:1.45}.deleted-banner[_ngcontent-%COMP%] ia-icon[_ngcontent-%COMP%]{flex:0 0 auto;color:var(--red)}.otc-note[_ngcontent-%COMP%]{font-size:13px;color:var(--ink-2);line-height:1.55;margin:0 0 14px}.otc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:8px;max-height:320px;overflow-y:auto;padding:2px}.otc-code[_ngcontent-%COMP%]{font-family:var(--mono);font-size:13.5px;font-weight:700;letter-spacing:.04em;color:var(--ink);background:var(--line-soft);
11border-radius:var(--r-chip);padding:6px 0;text-align:center}@media(max-width:899.98px){.cols[_ngcontent-%COMP%]{grid-template-columns:1fr}}'],changeDetection:0})};function Ht(t){let{nowMs:n,startMs:e,endMs:i}=t,o=Math.min(t.checkInOpensMs??e,e),d=Math.max(t.checkInClosesMs??i,i);return t.hardCutoffMs!=null&&t.hardCutoffMs<d&&(d=Math.max(t.hardCutoffMs,i)),n<o?"upcoming":n<e?"checkin":n<=i?"live":n<=d?"checkin":"ended"}function Re(t){return Array.isArray(t)?t:[]}function q(t){let n=Number(t??0);return Number.isFinite(n)?n:0}function Ut(t){return Math.round(t*10)/10}var oe={text:"text",multipleOption:"multipleOption",thumbs:"thumbs",stars:"stars",slider:"slider",eventTypeRegistration:"eventTypeRegistration"};function Bt(t,n,e){let i=new Map;for(let d of Re(t))d?.questionUid&&i.set(d.questionUid,d);let o=Re(n).map(d=>Ko(d,i.get(d.questionUid))).filter(d=>d!=null);return{enrollment:e,questions:o}}function Ko(t,n){let e=t.questionUid,i=t.question??"Question",o=t.questionType,d=Re(n?.answerData);if(o===oe.multipleOption){let c=d.map(u=>[Xo(t,u.answerUid),q(u.totalAnswers)]);return{id:e,type:"mc",text:i,responses:jt(c),options:c}}if(o===oe.eventTypeRegistration){let c=(t.answerArray??[]).map(E=>[E.answer??"Option",q(E.currentRegistrations)]),u=c.length?c:d.map(E=>[E.answer??"Option",q(E.totalAnswers)]);return{id:e,type:"mc",text:i,responses:jt(u),options:u}}if(o===oe.slider){let c=d[0]??{};return{id:e,type:"slider",text:i,responses:q(c.totalAnswers),mean:Ut(q(c.mean)),min:q(c.minimum),max:q(c.maximum)}}if(o===oe.thumbs){let c=d,u=c.filter(D=>q(D.rating)===1).reduce((D,w)=>D+q(w.totalAnswers),0),E=c.filter(D=>q(D.rating)!==1).reduce((D,w)=>D+q(w.totalAnswers),0);return{id:e,type:"thumbs",text:i,responses:u+E,up:u,down:E}}if(o===oe.stars){let c=[0,0,0,0,0];for(let w of d){let O=q(w.rating);O>=1&&O<=5&&(c[O-1]+=q(w.totalAnswers))}let u=c.reduce((w,O)=>w+O,0),E=c.reduce((w,O,N)=>w+O*(N+1),0),D=u?Ut(E/u):0;return{id:e,type:"stars",text:i,responses:u,stars:c,mean:D}}if(o===oe.text){let c=q(d[0]?.totalAnswers),u=n?.hidden===!0;return{id:e,type:"text",text:i,responses:c,anonymous:u,hidden:u}}return null}function Xo(t,n){return n?(t.answerArray??[]).find(i=>i.answerUid===n)?.answer??"Option":"Option"}function jt(t){return t.reduce((n,[,e])=>n+e,0)}function Gt(t){return Re(t).map((n,e)=>{let i=(n?.email??"").toString().trim(),o=(n?.userName??n?.name??"").toString().trim();return{id:n?.answerUid??n?.id??`resp-${e}`,name:o||"Unknown user",email:i||null,at:Jo(n?.submittedAt??n?.answeredAt??n?.attendedAt),text:(n?.answerText??n?.text??n?.answer??"").toString()}})}function Jo(t){let n=Zo(t);if(!n)return"";let e=n.toLocaleDateString(void 0,{month:"short",day:"numeric"}),i=n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"});return`${e} \xB7 ${i}`}function Zo(t){if(t==null)return null;if(t instanceof Date)return t;let n=t;if(typeof n.toDate=="function")return n.toDate();let e=n.seconds??n._seconds;if(typeof e=="number")return new Date(e*1e3);if(typeof t=="number")return new Date(t);if(typeof t=="string"){let i=new Date(t);return Number.isNaN(i.getTime())?null:i}return null}function Yt(t,n){let e=new Date(t);switch(n){case"Same date":break;case"+1 day":e.setDate(e.getDate()+1);break;case"+2 days":e.setDate(e.getDate()+2);break;case"+1 week":e.setDate(e.getDate()+7);break;case"+4 weeks":e.setDate(e.getDate()+28);break;case"+1 month":e.setMonth(e.getMonth()+1);break;default:break}return e}function Kt(t){return t.map(n=>({eventId:n.eventId,orgId:n.orgId,eventTypeId:n.eventTypeId}))}var ea={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6},ta=["Sundays","Mondays","Tuesdays","Wednesdays","Thursdays","Fridays","Saturdays"];function Xt(t,n){try{let e=new Intl.DateTimeFormat("en-US",{weekday:"short",timeZone:n||void 0}).format(t);return ea[e]??t.getDay()}catch(e){return t.getDay()}}function na(t){return ta[t]??""}function Jt(t,n){let e=new Map;for(let i of t){let o=n(i);e.set(o,(e.get(o)??0)+1)}return e.size<2?[]:[...e.entries()].map(([i,o])=>({weekday:i,label:na(i),count:o})).sort((i,o)=>o.count-i.count||i.weekday-o.weekday)}function Zt(t,n,e){return n.series?n.weekday===null?[...t]:t.filter(i=>e(i)===n.weekday):[]}function ia(t,n){if(t&1){let e=k();a(0,"app-add-attendee-modal",3),x("closed",function(){y(e);let o=p();return C(o.activeModal.set(null))}),s()}if(t&2){let e=p();m("eventId",e.evId())("eventTypeId",e.evTypeId())("eventTitle",e.event().title)}}
11function oa(t,n){if(t&1){let e=k();a(0,"app-seat-assignment-modal",4),x("closed",function(){y(e);let o=p();return C(o.activeModal.set(null))}),s()}if(t&2){let e=p();m("orgId",e.evOrgId())("eventTypeId",e.evTypeId())("locationId",e.seatLocationId())("eventTitle",e.event().title)}}function aa(t,n){if(t&1){let e=k();a(0,"app-upload-attendance-modal",3),x("closed",function(){y(e);let o=p();return C(o.activeModal.set(null))}),s()}if(t&2){let e=p();m("eventId",e.evId())("eventTypeId",e.evTypeId())("eventTitle",e.event().title)}}function en(t){return Xt(t.startTime.toDate(),t.timeZone)}var ra={title:"",type:"",secondaryTypes:[],headcount:!1,nonevent:!1,dateLabel:"",timeLabel:"",credits:0,dualScan:!1,minAttendanceMin:0,incremental:!1,speaker:"",location:[],mapCheck:!1,linked:[],prereq:null,capacity:0,registered:0,assessment:!1,survey:!1,video:null,quiz:null,attendance:0,firstScan:"",lastScan:"",description:"",urls:[],status:"upcoming",deleted:!1},sa={enrollment:0,questions:[]},tn=class t{eventsService=L(rt);attendanceService=L(kt);embargoService=L(Mt);fb=L(Ze);textCodesService=L(Dt);eventState=L(ot);eventTypeData=L(lt);functions=_e();toast=L(B);appShell=L(tt);router=L(He);destroyRef=L(ue);nav=et;org=b("");event=b(ra);changelog=b([]);eventLoading=b(!0);activeModal=b(null);seatingEnabled=b(!1);seatLocationId=b(null);evId=b("");evTypeId=b("");evOrgId=b(null);eventTypeOptions=b([]);permittedTypeIds=null;textCodes=b([]);keyCodes=new Map;loadedSlots=new Set;regenerating=new Set;codesDual=!1;oneTimeCodes=b(null);oneTimeCodesLoading=b(!1);oneTimeCodesExpires=b("");singleCode=b(null);singleCodeLoading=b(!1);qrTarget=b(null);icsUrl=M(()=>{let n=this.evId(),e=this.evTypeId(),i=this.qrTarget()?.orgId??this.fb.activeOrgId??"";return!n||!e||!i?null:ct({orgId:i,eventTypeId:e,eventId:n})});preregEntries=b([]);preregLoading=b(!1);preregLoaded=!1;initialView=b(null);embargoedEntries=b([]);embargoedLoading=b(!1);embargoEnabled=b(!0);embargoMissThreshold=b(null);embargoWindowHours=b(null);embargoedTruncated=b(!1);embargoReleasing=b([]);embargoedLoaded=!1;survey=b(sa);textResponses=b([]);textResponsesLoading=b(!1);appEvent=null;requestedEventId=null;seriesFutureSiblings=b([]);seriesWeekdays=M(()=>Jt(this.seriesFutureSiblings(),en));constructor(){me(this.fb.activeOrganization$).then(n=>this.org.set(n?.name??"")).catch(()=>{}),this.router.events.pipe(qe(n=>n instanceof We),Y(this.destroyRef)).subscribe(()=>this.maybeReload()),this.maybeReload()}maybeReload(){let n=history.state?.eventId??this.eventState.getEventToShare()?.eventId??Qe()?.eventId;if(!n){this.router.navigate([$(this.router.url)+"/events"]);return}n!==this.requestedEventId&&(this.requestedEventId=n,this.eventLoading.set(!0),this.load())}load(){return R(this,null,function*(){let n=this.eventState.getEventToShare(),e=n?.eventId??history.state?.eventId,i=n?.eventTypeId??history.state?.eventTypeId;if(!e){let V=Qe();e=V?.eventId,i=V?.eventTypeId}let o=n??null;if(!o&&e&&(o=yield this.eventsService.getEventById(e,i).catch(()=>null)),!o){this.eventLoading.set(!1);return}this.appEvent=o,this.eventState.clearEventToShare(),Et({eventId:o.eventId,eventTypeId:o.eventTypeId??i??""}),this.keyCodes.clear(),this.loadedSlots.clear(),this.textCodes.set([]),this.oneTimeCodes.set(null),this.oneTimeCodesLoading.set(!1),this.oneTimeCodesExpires.set(""),this.singleCode.set(null),this.singleCodeLoading.set(!1),this.preregEntries.set([]),this.preregLoaded=!1,history.state?.view==="prereg"&&(o.capacity??0)>0&&(this.onOpenPrereg(),this.initialView.set("prereg")),this.seriesFutureSiblings.set([]),it(o)&&this.loadSeriesSiblings(o);let d=o.locationIdArray?.[0]??null;this.seatingEnabled.set(o.seatAssignmentsEnabled===!0&&!!d),this.seatLocationId.set(d),this.loadEventTypeOptions(),!o.isNonevent&&!o.isHeadcount&&this.loadTextCodes(o.eventId,(o.minimumAttendanceInMinutes??0)>0);let c=this.fb.activeOrgId,[u,E,D,w]=yield Promise.all([me(this.eventsService.getEventAttendanceSummaries([o])).catch(()=>new Map),c?this.eventsService.eventChangeLogs(c,o.eventId).catch(()=>[]):Promise.resolve([]),this.loadTitles(this.linkedIds(o)),this.loadTitles(o.prerequisiteEventIds??[])]),O=u.get(o.eventId)??{count:0,firstMs:null,lastMs:null},N=ga(o,O,D,w);this.event.set(N),this.evId.set(o.eventId),this.evTypeId.set(o.eventTypeId),this.evOrgId.set(o.orgId??c??null),this.appShell.setBreadcrumb(["Events",o.title]),this.changelog.set(E.map(ua)),o.isNonevent||this.qrTarget.set({eventId:o.eventId,orgId:o.orgId??c??"",isHeadcount:!!o.isHeadcount,title:o.title,dateLabel:`${N.dateLabel} \xB7 ${N.timeLabel}`,refreshRateMs:o.refreshRate??5e3}),this.eventLoading.set(!1),N.survey&&this.eventsService.getSurveyResults(o.eventId).pipe(Y(this.destroyRef)).subscribe(V=>{this.survey.set(Bt(V,o.surveyQuestionArray??[],Math.max(0,O.count)))})})}loadEventTypeOptions(){return R(this,null,function*(){let n=this.fb.activeOrgId;if(n)try{let i=yield K(this.functions,"eventTypesFunctions-getPermittedUnretiredEventTypes")({orgId:n}),o=Array.isArray(i.data)?i.data:[];this.permittedTypeIds=new Set(o.map(d=>d).filter(d=>!!d.mayAdd&&!!d.typeId).map(d=>
11d.typeId))}catch(e){console.error("[EventDetailPage] permitted types load failed:",e)}this.eventTypeData.eventTypes$.pipe(Y(this.destroyRef)).subscribe(e=>this.rebuildTypeOptions(e??[]))})}rebuildTypeOptions(n){let e=this.appEvent,i=this.permittedTypeIds,o=n.filter(d=>!d.isRetired).filter(d=>!i||i.has(d.eventTypeId)||d.eventTypeId===e?.eventTypeId).map(d=>({value:d.eventTypeId,label:d.eventTypeName}));e&&!o.some(d=>d.value===e.eventTypeId)&&o.unshift({value:e.eventTypeId,label:e.eventTypeLabel||e.eventTypeId}),o.sort((d,c)=>d.label.localeCompare(c.label)),this.eventTypeOptions.set(o)}linkedIds(n){return(n.duplicateArray??[]).filter(e=>e!==n.eventId)}onRemoveLink(n){let e=this.appEvent;if(!e)return;let i=e.duplicateArray??[];e.duplicateArray=i.filter(o=>o!==n.id),this.event.update(o=>pe(ae({},o),{linked:o.linked.filter(d=>d.id!==n.id)})),this.eventsService.updateLinkedEventArray(e).catch(()=>{e.duplicateArray=i,this.event.update(o=>pe(ae({},o),{linked:[...o.linked,n]})),this.toast.error("Could not remove the link. Please try again.")})}loadTitles(n){return R(this,null,function*(){return n.length?(yield this.eventsService.getEventsByIds(n).catch(()=>[])).map(i=>({id:i.eventId,title:i.title})):[]})}loadTextCodes(n,e){let i=[{slot:"whole",obs:this.fb.getWholeEventCode(n)},...e?[{slot:"entry",obs:this.fb.getEventEntryCode(n)},{slot:"exit",obs:this.fb.getEventExitCode(n)}]:[],{slot:"uattended",obs:this.fb.getEventuAttendedCode(n)}];this.codesDual=e;for(let{slot:o,obs:d}of i)d.pipe(Y(this.destroyRef)).subscribe(c=>{let u=!this.loadedSlots.has(o);if(this.loadedSlots.add(o),c)this.keyCodes.set(o,c);else if(!this.keyCodes.delete(o)&&!u)return;this.rebuildTextCodes()})}rebuildTextCodes(){let e=this.codesDual?["whole","entry","exit","uattended"]:["whole","uattended"];this.textCodes.set(e.map(i=>{let o=this.keyCodes.get(i);return o?ma(i,o):i==="uattended"||this.loadedSlots.has(i)?nn(i):null}).filter(i=>!!i).map(i=>this.regenerating.has(i.id)?pe(ae({},i),{busy:!0}):i))}setRegenerating(n,e){e?this.regenerating.add(n):this.regenerating.delete(n),this.rebuildTextCodes()}onRegenerate(n){let e=this.appEvent;if(!e||this.regenerating.has(n.id))return;if(n.id==="uattended"){let o=n.missing?"Generating":"Regenerating";this.toast.show(`${o} the uAttended access code\u2026`),this.setRegenerating(n.id,!0),this.textCodesService.generateEventuAttendedCode(e.eventId,e.orgId??"",e.eventTypeId).then(d=>{if(!d||d==="ERROR")throw new Error("uAttended code not generated");this.toast.success("uAttended access code ready.")}).catch(()=>this.toast.error("Could not generate the uAttended code.")).finally(()=>this.setRegenerating(n.id,!1));return}if(n.missing){let o=pa[n.id];if(!o)return;this.toast.show(`Generating the ${n.kind.toLowerCase()} code\u2026`),this.setRegenerating(n.id,!0),this.textCodesService.generateMissingEventTextCode(e.eventId,e.orgId??"",e.eventTypeId,o).then(d=>{if(!d||d==="ERROR")throw new Error("code not generated");this.toast.success(`${n.kind} code ready.`)}).catch(()=>this.toast.error("Could not generate the code.")).finally(()=>this.setRegenerating(n.id,!1));return}let i=this.keyCodes.get(n.id);i&&(this.toast.show(`Regenerating the ${n.kind.toLowerCase()} code\u2026`),this.setRegenerating(n.id,!0),this.textCodesService.generateEventTextCode(i).then(o=>{if(!o||o==="ERROR")throw new Error("code not regenerated");this.toast.success(`${n.kind} code regenerated.`)}).catch(()=>this.toast.error("Could not regenerate the code.")).finally(()=>this.setRegenerating(n.id,!1)))}onGenerateSingleCode(){let n=this.appEvent;!n||this.singleCodeLoading()||(this.singleCodeLoading.set(!0),this.textCodesService.generateOneTimeTextCode(n.eventId,n.orgId??"",n.eventTypeId).then(e=>{if(!e||e==="ERROR"){this.toast.error("Could not generate a one-time code.");return}this.singleCode.set(e),this.toast.success(`One-time code ${e} generated.`)}).catch(()=>this.toast.error("Could not generate a one-time code.")).finally(()=>this.singleCodeLoading.set(!1)))}onSetExpiry({code:n,value:e}){let i=this.keyCodes.get(n.id);i&&Promise.resolve(this.textCodesService.updateCodeExpiration(i.code,e)).then(()=>this.toast.success(`${n.kind} expiry updated.`)).catch(()=>this.toast.error("Could not update expiry."))}onOpenTypeCodeSheet(){this.router.navigate([$(this.router.url)+"/events/codes"],{state:{eventTypeId:this.evTypeId()}})}onOpenOneTimeCodes(){let n=this.appEvent;!n||this.oneTimeCodes()||this.oneTimeCodesLoading()||(this.oneTimeCodesLoading.set(!0),this.textCodesService.getOneTimeCodeBatch(n.eventId).then(e=>{this.oneTimeCodesExpires.set(new Date(e.expiration).toLocaleStr
11ing(void 0,{dateStyle:"medium",timeStyle:"short"})),this.oneTimeCodes.set(e.codes)}).catch(()=>{this.toast.error("Could not load the one-time code list.")}).finally(()=>this.oneTimeCodesLoading.set(!1)))}onOpenPrereg(){let n=this.appEvent;!n||this.preregLoaded||(this.preregLoaded=!0,this.preregLoading.set(!0),this.attendanceService.getEventPreregistrationList(n.eventId,n.eventTypeId).pipe(Y(this.destroyRef)).subscribe({next:e=>{this.preregEntries.set(e.map(da)),this.preregLoading.set(!1)},error:()=>{this.preregLoading.set(!1),this.preregLoaded=!1,this.toast.error("Could not load the preregistration list.")}}))}onOpenEmbargoed(){let n=this.appEvent;!n||this.embargoedLoaded||(this.embargoedLoaded=!0,this.embargoedLoading.set(!0),this.embargoService.listEmbargoedForEventType(n.eventTypeId).then(e=>{this.embargoEnabled.set(e.enabled),this.embargoMissThreshold.set(e.missThreshold),this.embargoWindowHours.set(e.embargoWindowHours),this.embargoedTruncated.set(e.truncated),this.embargoedEntries.set(e.rows.map(ca))}).catch(()=>{this.embargoedLoaded=!1,this.toast.error("Could not check embargoed attendees.")}).finally(()=>this.embargoedLoading.set(!1)))}onReleaseEmbargo(n){let e=this.appEvent;!e||this.embargoReleasing().includes(n.id)||(this.embargoReleasing.update(i=>[...i,n.id]),this.embargoService.forgiveEmbargo(n.id,e.eventTypeId).then(i=>{if(!i){this.toast.error(`Could not release ${n.name}.`);return}this.embargoedEntries.update(o=>o.filter(d=>d.id!==n.id)),this.toast.success(`${n.name} can sign up early again for ${this.event().type}.`)}).catch(()=>this.toast.error(`Could not release ${n.name}.`)).finally(()=>this.embargoReleasing.update(i=>i.filter(o=>o!==n.id))))}
11onEmbargoedProfile(n){if(!n.id){this.toast.error("No profile is linked to this attendee yet.");return}this.router.navigate([$(this.router.url)+"/attendees/profile"],{state:{uid:n.id,userName:n.name,email:n.email}})}onLoadResponses(n){let e=this.appEvent;e&&(this.textResponses.set([]),this.textResponsesLoading.set(!0),this.eventsService.getSurveyTextResponses(e.eventId,n).pipe(Y(this.destroyRef)).subscribe({next:i=>{this.textResponses.set(Gt(i.responses)),this.textResponsesLoading.set(!1)},error:()=>{this.textResponsesLoading.set(!1),this.toast.error("Could not load responses.")}}))}onPreregProfile(n){if(!n.id){this.toast.error("No profile is linked to this registration yet.");return}this.router.navigate([$(this.router.url)+"/attendees/profile"],{state:{uid:n.id,userName:n.name,email:n.email}})}openAttendance(){let n=this.appEvent;if(!n)return;this.eventState.setEventToShare(n);let e=this.event(),i=e.attendanceUnavailable?void 0:e.attendance;this.router.navigate([$(this.router.url)+"/events/attendance"],{state:{eventId:n.eventId,eventTypeId:n.eventTypeId,attendedCount:i}})}editEvent(){this.appEvent&&this.router.navigate([$(this.router.url)+"/events/create"],{state:{editEventId:this.appEvent.eventId,editEventTypeId:this.appEvent.eventTypeId}})}editAssessment(){this.appEvent&&this.router.navigate([$(this.router.url)+"/events/create"],{state:{editEventId:this.appEvent.eventId,editEventTypeId:this.appEvent.eventTypeId,focusSection:"assessment"}})}bulkEdit(){let n=this.appEvent;n&&this.router.navigate([$(this.router.url)+"/events/create"],{state:{bulkEventId:n.eventId,bulkEventTypeId:n.eventTypeId}})}createNew(){this.eventState.clearEventToShare(),this.router.navigate([$(this.router.url)+"/events/create"])}backToEvents(){this.router.navigate([$(this.router.url)+"/events"])}loadSeriesSiblings(n){return R(this,null,function*(){let e=n.creationFingerprint;if(!e)return;let i=yield me(this.eventsService.getFutureEventsForBulkEdit(n)).catch(()=>(this.toast.error("Could not load the other events in this series. Deleting will remove only this event."),[]));this.appEvent?.eventId===n.eventId&&this.seriesFutureSiblings.set(i.filter(o=>o.creationFingerprint===e&&o.eventId!==n.eventId))})}onDeleteEvent(n){let e=this.appEvent;if(!e)return;let i=Zt(this.seriesFutureSiblings(),n,en),o=i.length>0,d=1+i.length,c=this.event().attendance,u=!!this.event().attendanceUnavailable,E=u||c>0;this.toast.show(o?`Deleting ${d} events in the series\u2026`:E?"Hiding the event\u2026":"Deleting the event\u2026");let D=[this.eventsService.deleteOrHideEvent(e,u?1:c)];o&&D.push(this.eventsService.bulkDeleteEvents(Kt(i))),Promise.all(D).then(()=>{this.toast.success(o?`Deleted ${d} events in the series.`:E?"Event hidden.":"Event deleted."),this.seriesFutureSiblings.set([]),this.eventState.clearEventToShare(),this.router.navigate([$(this.router.url)+"/events"])}).catch(()=>this.toast.error(o?"Could not delete the series.":"Could not delete the event."))}onDuplicate(n){let e=this.appEvent;if(e){if(e.isDeleted===!0){this.toast.error("This event has been deleted and can\u2019t be duplicated.");return}this.toast.show("Creating duplicate\u2026"),this.eventsService.writeEvent(la(e,n),"basic").then(()=>{this.toast.success("Duplicate created."),this.router.navigate([$(this.router.url)+"/events"])}).catch(()=>this.toast.error("Could not create the duplicate."))}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=A({type:t,selectors:[["app-event-detail-page"]],decls:4,vars:36,consts:[[3,"regenerateCode","setCodeExpiry","openOneTimeCodes","openTypeCodeSheet","generateSingleCode","openPrereg","openPreregProfile","openEmbargoed","releaseEmbargo","openEmbargoedProfile","loadResponses","openAttendanceEvent","editEvent","editAssessment","duplicateEvent","deleteEvent","bulkEdit","removeLink","createNew","openSeating","addAttendee","uploadCsv","backToEvents","event","changelog","org","nav","qrTarget","eventLoading","icsUrl","textCodes","preregEntries","preregLoading","survey","textResponses","textResponsesLoading","orgId","reportEventId","eventTypeOptions","currentTypeId","oneTimeCodes","oneTimeCodesLoading","oneTimeCodesExpires","singleCode","singleCodeLoading","initialView","embargoedEntries","embargoedLoading","embargoEnabled","embargoMissThreshold","embargoWindowHours","embargoedTruncated","embargoReleasing","seriesFutureCount","seriesWeekdays","seatingEnabled"],[3,"eventId","eventTypeId","eventTitle"],[3,"orgId","eventTypeId","locationId","eventTitle"],[3,"closed","eventId","eventTypeId","eventTitle"],[3,"closed","orgId","eventTypeId","locationId","eventTitle"]],template:function(e,i){e&1&&(a(0,"app-event-detail",0),x("regenerateCode",function(d){return i.onRegenerate(d)})("setCodeExpiry",function(d){return i.onSetExpiry(d)})("openOneTimeCodes",function(){return i.onOpenOneTimeCodes()})("openTypeCodeSheet",function(){return i.onOpenTypeCodeSheet()})("generateSingleCode",function(){return i.onGenerateSingleCode()})("openPrereg",function(){return i.onOpenPrereg()})("openPreregProfile",function(d){return i.onPreregProfile(d)})("openEmbargoed",function(){return i.onOpenEmbargoed()})("releaseEmbargo",function(d){return i.onReleaseEmbargo(d)})("openEmbargoedProfile",function(d){return i.onEmbargoedProfile(d)})("loadResponses",function(d){return i.onLoadResponses(d)})("openAttendanceEvent",function(){return i.openAttendance()})("editEvent",function(){return i.editEvent()})("editAssessment",function(){return i.editAssessment()})("duplicateEvent",function(d){return i.onDuplicate(d)})("deleteEvent",function(d){return i.onDeleteEvent(d)})("bulkEdit",function(){return i.bulkEdit()})("removeLink",function(d){return i.onRemoveLink(d)})("createNew",function(){return i.createNew()})("openSeating",function(){return i.activeModal.set("seating")})("addAttendee",function(){return i.activeModal.set("add")})("uploadCsv",function(){return i.activeModal.set("upload")})("backToEvents",function(){return i.backToEvents()}),s(),v(1,ia,1,3,"app-add-attendee-modal",1),v(2,oa,1,4,"app-seat-assignment-modal",2),v(3,aa,1,3,"app-upload-attendance-modal",1)),e&2&&(m("event",i.event())("changelog",i.changelog())("org",i.org())("nav",i.nav)("qrTarget",i.qrTarget())("eventLoading",i.eventLoading())("icsUrl",i.icsUrl())("textCodes",i.textCodes())("preregEntries",i.preregEntries())("preregLoading",i.preregLoading())("survey",i.survey())("textResponses",i.textResponses())("textResponsesLoading",i.textResponsesLoading())("orgId",i.evOrgId())("reportEventId",i.evId())("eventTypeOptions",i.eventTypeOptions())("currentTypeId",i.evTypeId())("oneTimeCodes",i.oneTimeCodes())("oneTimeCodesLoading",i.oneTimeCodesLoading())("oneTimeCodesExpires",i.oneTimeCodesExpires())("singleCode",i.singleCode())("singleCodeLoading",i.singleCodeLoading())("initialView",i.initialView())("embargoedEntries",i.embargoedEntries())("embargoedLoading",i.embargoedLoading())("embargoEnabled",i.embargoEnabled())("embargoMissThreshold",i.embargoMissThreshold())("embargoWindowHours",i.embargoWindowHours())("embargoedTruncated",i.embargoedTruncated())("embargoReleasing",i.embargoReleasing())("seriesFutureCount",i.seriesFutureSiblings().length)("seriesWeekdays",i.seriesWeekdays())("seatingEnabled",i.seatingEnabled()),r(),_(i.activeModal()==="add"&&i.evId()?1:-1),r(),_(i.activeModal()==="seating"&&i.seatLocationId()&&i.evOrgId()?2:-1),r(),_(i.activeModal()==="upload"&&i.evId()?3:-1))},dependencies:[Ie,Ot,Pt,St],encapsulation:2,changeDetection:0})};function la(t,n){let e=t.startTime.toDate(),o=t.endTime.toDate().getTime()-e.getTime(),d=Yt(e,n.shift),c=new Date(d.getTime()+o),u=ae({},t);
11u.eventId=nt(),u.creationFingerprint=null,u.isDeleted=!1,u.title=n.title,n.typeId&&n.typeId!==t.eventTypeId&&(u.eventTypeId=n.typeId,u.eventTypeLabel=n.typeLabel,u.secondaryEventTypeIds=[],u.secondaryEventTypeNames=[]),u.startTime=Z.fromDate(d),u.endTime=Z.fromDate(c);let E=Tt({start:t.startTime?.toDate?.(),end:t.endTime?.toDate?.(),fringeStart:t.fringeStartTime?.toDate?.(),fringeEnd:t.fringeEndTime?.toDate?.()});return u.fringe=Math.min(E.before,E.after),u.fringeStartTime=Z.fromDate(new Date(d.getTime()-E.before*6e4)),u.fringeEndTime=Z.fromDate(new Date(c.getTime()+E.after*6e4)),u.createdOn=Z.fromDate(new Date),u.isPublic=!n.hide,u.duplicateArray=n.link?[...t.duplicateArray??[],u.eventId]:[u.eventId],u.numberPreregistered=0,u.anonymousHeadcountTotal=0,u.firstScan=null,u.lastScan=null,u}function ce(t){return t?new Date(t).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}):""}function Le(t){if(!t)return"";let n=t.toLocaleDateString(void 0,{month:"short",day:"numeric"}),e=t.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"});return`${n} \xB7 ${e}`}function da(t){return{id:t.attendeeUid,name:t.name,email:t.email,reg:Le(t.registeredAt),att:t.attendedAt?Le(t.attendedAt):null,outcome:t.status}}function ca(t){return{id:t.uid,name:t.name,email:t.email,streak:t.streak,lastMiss:t.lastMissAt?Le(t.lastMissAt):null,forgiven:t.forgivenAt?Le(t.forgivenAt):null}}var on={whole:"Whole event",entry:"Entry",exit:"Exit",uattended:"uAttended access"},pa={whole:1,entry:2,exit:3};function nn(t){return{id:t,kind:on[t]??t,value:"",firstUse:null,noExpiry:!0,dual:t==="entry"||t==="exit",missing:!0}}function ma(t,n){return{id:t,kind:on[t]??t,value:n.code,expired:n.co
11deTimesOutAt?n.codeTimesOutAt.toMillis()<Date.now():!1,firstUse:n.firstUse?ce(n.firstUse.toMillis()):null,noExpiry:t==="uattended",dual:t==="entry"||t==="exit",expiry:n.formSelectionValue??""}}function ua(t){let n=t.updatedBy||t.changedBy||t.userName||t.user||"Someone",e=t.timestamp,i=e?.toDate?e.toDate().toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}):"",o=t.description||t.change||t.message||t.action||"Updated the event";return{who:n,at:i,what:o}}function ga(t,n,e,i){let o=t.startTime?.toDate?.()??new Date,d=t.endTime?.toDate?.()??o,c=Date.now(),u=(t.fringe??0)*6e4,E=Ht({nowMs:c,startMs:o.getTime(),endMs:d.getTime(),checkInOpensMs:t.fringeStartTime?.toDate?.()?.getTime()??o.getTime()-u,checkInClosesMs:t.fringeEndTime?.toDate?.()?.getTime()??d.getTime()+u,hardCutoffMs:t.hardCutoffTime?.toDate?.()?.getTime()??null}),D=t.minimumAttendanceInMinutes??0,w=n.count===at,O=t.ytLink&&t.ytLink.length?t.ytLink:null,N=O?{url:O,podcast:/spotify/i.test(O)}:null,V=t.surveyQuestionArray?.length??0,F=!!t.isSurveyEvent||V>0,an=F?{kind:t.surveyType==="quiz"?"quiz":"survey",questions:V}:null;return{title:t.title,deleted:t.isDeleted===!0,type:t.eventTypeLabel,secondaryTypes:t.secondaryEventTypeNames??[],headcount:!!t.isHeadcount,nonevent:!!t.isNonevent,dateLabel:o.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric",year:"numeric"}),timeLabel:`${ce(o.getTime())} \u2013 ${ce(d.getTime())}`,credits:t.credits??0,dualScan:D>0,minAttendanceMin:D,incremental:!!t.isIncremental,speaker:t.speaker??"",location:t.locationNameArray??[],mapCheck:!!(t.enforceMapCheck||t.enforceMapCheckForQr||t.enforceMapCheckForTextCode),linked:e,prereq:t.requiresPrerequisiteAttendance&&i.length?{mode:t.prerequisiteMode??"all",events:i.map(rn=>rn.title)}:null,capacity:t.capacity??0,registered:t.numberPreregistered??0,assessment:!!t.assessmentDefinition,survey:F,video:N,quiz:an,attendance:w?0:n.count,attendanceUnavailable:w,firstScan:ce(n.firstMs),lastScan:ce(n.lastMs),description:t.description??"",urls:t.urls&&t.urls.length?t.urls:t.url?[t.url]:[],status:E}}export{tn as EventDetailPageComponent};
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.