@seatlayer/core 0.78.0 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/ar-EZLC3TID.js +1 -0
  2. package/dist/be-PNW4HSCT.js +1 -0
  3. package/dist/bg-WWTVMKHN.js +1 -0
  4. package/dist/ca-7CQTBZHV.js +1 -0
  5. package/dist/{categoryInventory-IgpsH6KG.d.cts → categoryInventory-BR7noBOD.d.cts} +1 -1
  6. package/dist/{categoryInventory-C_NIm0jr.d.ts → categoryInventory-CZRNxr1T.d.ts} +1 -1
  7. package/dist/chunk-7LMW7QTP.js +1 -0
  8. package/dist/chunk-C7MR6CFC.js +1 -0
  9. package/dist/{chunk-SGYNM3SG.js → chunk-GQLJAU75.js} +1 -1
  10. package/dist/{chunk-SSBMTFAV.js → chunk-SKMHD76O.js} +1 -1
  11. package/dist/{chunk-FGMGDTMR.js → chunk-YXOSJLK7.js} +1 -1
  12. package/dist/core/chart-ops/index.d.cts +4 -4
  13. package/dist/core/chart-ops/index.d.ts +4 -4
  14. package/dist/core/chart-ops/index.js +1 -1
  15. package/dist/core/inventory/index.cjs +1 -1
  16. package/dist/core/inventory/index.d.cts +5 -34
  17. package/dist/core/inventory/index.d.ts +5 -34
  18. package/dist/core/inventory/index.js +1 -1
  19. package/dist/core/layout/index.d.cts +5 -5
  20. package/dist/core/layout/index.d.ts +5 -5
  21. package/dist/core/quality/index.cjs +1 -1
  22. package/dist/core/quality/index.d.cts +35 -4
  23. package/dist/core/quality/index.d.ts +35 -4
  24. package/dist/core/quality/index.js +1 -1
  25. package/dist/core/render-assets/index.d.cts +1 -1
  26. package/dist/core/render-assets/index.d.ts +1 -1
  27. package/dist/core/seatConfidence.d.cts +1 -1
  28. package/dist/core/seatConfidence.d.ts +1 -1
  29. package/dist/core/sections/index.d.cts +5 -5
  30. package/dist/core/sections/index.d.ts +5 -5
  31. package/dist/cs-CO6IPOND.js +1 -0
  32. package/dist/cy-JSKIEF7V.js +1 -0
  33. package/dist/da-XNN2TLET.js +1 -0
  34. package/dist/de-T7S7DY4P.js +1 -0
  35. package/dist/el-SQNQJ6N5.js +1 -0
  36. package/dist/es-WIEMVIPM.js +1 -0
  37. package/dist/et-AJ666JLF.js +1 -0
  38. package/dist/{eventConfigurations-71rHjKl7.d.ts → eventConfigurations-DhGEe6fT.d.ts} +1 -1
  39. package/dist/{eventConfigurations-vOMFVz7c.d.cts → eventConfigurations-OVlni2ym.d.cts} +1 -1
  40. package/dist/fa-PA22MNZD.js +1 -0
  41. package/dist/fi-OIKV7BZB.js +1 -0
  42. package/dist/fr-K2BPY3ZG.js +1 -0
  43. package/dist/he-NB5S5QOD.js +1 -0
  44. package/dist/hr-HB2ZBWCL.js +1 -0
  45. package/dist/hu-DXONGHET.js +1 -0
  46. package/dist/index.cjs +1 -1
  47. package/dist/index.d.cts +139 -121
  48. package/dist/index.d.ts +139 -121
  49. package/dist/index.js +1 -1
  50. package/dist/it-7YYWICOD.js +1 -0
  51. package/dist/ja-ROSYSJVY.js +1 -0
  52. package/dist/ku-3VHLRVJY.js +1 -0
  53. package/dist/{labeling-BnjyAEbI.d.ts → labeling-Btg_slmM.d.ts} +1 -1
  54. package/dist/{labeling-pdEv7UN1.d.cts → labeling-DzPlkJct.d.cts} +1 -1
  55. package/dist/localeLoaders-42CYOXB5.js +1 -0
  56. package/dist/lt-KOUZG2YJ.js +1 -0
  57. package/dist/lv-JOK7LYAH.js +1 -0
  58. package/dist/nl-H7NAUHTK.js +1 -0
  59. package/dist/no-OJ35WOND.js +1 -0
  60. package/dist/pl-FD5NFT6Y.js +1 -0
  61. package/dist/pt-BOCUN4SZ.js +1 -0
  62. package/dist/{renderedQuality-CXWlCsRS.d.ts → renderedQuality-DObXwisG.d.ts} +1 -1
  63. package/dist/{renderedQuality-rc4xZnIy.d.cts → renderedQuality-Dz-WTrRc.d.cts} +1 -1
  64. package/dist/{renderer-Cqd5w55S.d.ts → renderer-BjuHQ0bx.d.cts} +12 -2
  65. package/dist/{renderer-DW7ejcxk.d.cts → renderer-i_mthe5Z.d.ts} +12 -2
  66. package/dist/ro-Z44LTOXH.js +1 -0
  67. package/dist/ru-J4XWPJR6.js +1 -0
  68. package/dist/{sections-CQ0sd37E.d.cts → sections-DUG5M-hF.d.cts} +1 -1
  69. package/dist/{sections-F6wMlVqx.d.ts → sections-Du9QkrCf.d.ts} +1 -1
  70. package/dist/{segmentedRowModel-DqFhb-7Q.d.cts → segmentedRowModel-BYSxfsqX.d.cts} +1 -1
  71. package/dist/{segmentedRowModel-D-CEgxg7.d.ts → segmentedRowModel-N9Z0rnKY.d.ts} +1 -1
  72. package/dist/sk-4O4XNGR6.js +1 -0
  73. package/dist/sl-AHDPSHB6.js +1 -0
  74. package/dist/sr-B5PADXMB.js +1 -0
  75. package/dist/sv-KZCOVO3R.js +1 -0
  76. package/dist/{tableSizing-uVEPXCUD.d.ts → tableSizing-BpRvVdXK.d.ts} +3 -3
  77. package/dist/{tableSizing-OzEvBirS.d.cts → tableSizing-DnSAiaXL.d.cts} +3 -3
  78. package/dist/ticketRestrictions-BijtF-Lw.d.ts +141 -0
  79. package/dist/ticketRestrictions-CvaHRHti.d.cts +141 -0
  80. package/dist/tr-E5X266RM.js +1 -0
  81. package/dist/{types-Dq-ipTBG.d.ts → types-eVmh2-Yn.d.cts} +1 -1
  82. package/dist/{types-Dq-ipTBG.d.cts → types-eVmh2-Yn.d.ts} +1 -1
  83. package/dist/uk-6RR5RHIY.js +1 -0
  84. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  85. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  86. package/dist/view3d/index.d.cts +3 -3
  87. package/dist/view3d/index.d.ts +3 -3
  88. package/dist/view3d/index.js +1 -1
  89. package/dist/view3d/scene/scene.worker.js +1 -1
  90. package/dist/zh-Hans-GQWICG2Q.js +1 -0
  91. package/dist/zh-Hant-DTRJKLTS.js +1 -0
  92. package/package.json +1 -1
  93. package/dist/ar-U7RQGDKI.js +0 -1
  94. package/dist/be-AF2KLUPU.js +0 -1
  95. package/dist/bg-KQXVZFP5.js +0 -1
  96. package/dist/ca-2Z6OXARI.js +0 -1
  97. package/dist/chunk-O5UH442K.js +0 -1
  98. package/dist/chunk-XD2P4ZS4.js +0 -1
  99. package/dist/cs-OA5PNXZF.js +0 -1
  100. package/dist/cy-SEZB6CFS.js +0 -1
  101. package/dist/da-WNYFNHJW.js +0 -1
  102. package/dist/de-GZ5KABWX.js +0 -1
  103. package/dist/el-ROWVMGFA.js +0 -1
  104. package/dist/es-WDEEXPGZ.js +0 -1
  105. package/dist/et-UZ6PWBEI.js +0 -1
  106. package/dist/fa-6RECOCDS.js +0 -1
  107. package/dist/fi-W2NFGTLE.js +0 -1
  108. package/dist/fr-TGQU57AA.js +0 -1
  109. package/dist/he-GW4WHBMC.js +0 -1
  110. package/dist/hr-XYCPPQ2E.js +0 -1
  111. package/dist/hu-MXARVYEB.js +0 -1
  112. package/dist/it-AEJ2XXPK.js +0 -1
  113. package/dist/ja-GEZL7WIS.js +0 -1
  114. package/dist/ku-X2WS563F.js +0 -1
  115. package/dist/localeLoaders-YAOADFDS.js +0 -1
  116. package/dist/lt-O6WX2MFZ.js +0 -1
  117. package/dist/lv-JQH24NH4.js +0 -1
  118. package/dist/nl-OYNNCIHM.js +0 -1
  119. package/dist/no-TJCQIIDH.js +0 -1
  120. package/dist/pl-WWCEGFPX.js +0 -1
  121. package/dist/pt-FWBIZXLG.js +0 -1
  122. package/dist/ro-RHGJMFQQ.js +0 -1
  123. package/dist/ru-6IAWMJIM.js +0 -1
  124. package/dist/sk-2NHU34X2.js +0 -1
  125. package/dist/sl-O2QSGQWN.js +0 -1
  126. package/dist/sr-XK7AKCDR.js +0 -1
  127. package/dist/sv-IPA5ZBAA.js +0 -1
  128. package/dist/ticketRestrictions-BH430to6.d.ts +0 -72
  129. package/dist/ticketRestrictions-CGD-l3if.d.cts +0 -72
  130. package/dist/tr-TM3T5KYL.js +0 -1
  131. package/dist/uk-37NGTGA6.js +0 -1
  132. package/dist/zh-Hans-QKYGPQQE.js +0 -1
  133. package/dist/zh-Hant-AUEE5P67.js +0 -1
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as Gi,b as Hi,d as _s,e as Ut,g as Fs,h as Bs,k as Os}from"./chunk-O5UH442K.js";import{a as ap,b as lp,c as rs,d as cp,e as dp,f as as,h as ks,k as Xt,m as Ls,n as Se,o as ae,p as Cs,q as xs,r as Yt,s as Ts}from"./chunk-NQZAZFAC.js";import{a as Lp,b as ms,c as Cp}from"./chunk-SSBMTFAV.js";import{b as Ds}from"./chunk-FOYQOIWG.js";import{a as Ni}from"./chunk-QJXSZT3H.js";import{a as hp,b as up,c as pp}from"./chunk-BT2KJXQC.js";import{a as ge,b as ps,c as Be,d as Gt,e as Ht,f as Oe,g as V,m as be,n as Ie,q as Wt,r as Vt,t as fs,u as $e,v as re,w as ue,x as Di}from"./chunk-XD2P4ZS4.js";import{A as As,B as Es,b as vs,c as ws,e as ut,i as Ps,j as Ms,p as Rs}from"./chunk-QLDV5ZGA.js";import{a as fp,b as mp,c as yp,d as gp,e as bp,f as Ot,g as Sp,h as dt,i as vp,j as ls,k as Dt,l as wp,m as kp,n as cs}from"./chunk-Q3U3F4YJ.js";import{a as Tu,b as Iu,c as Zo,d as Pu,e as Mu,f as Et,g as Ru,h as Au,i as Eu,j as _u,k as Fu,l as Bu,n as ys,q as ht,u as Is}from"./chunk-WXGW2SYC.js";import{b as zt,f as gs,h as Kt,i as bs,k as Ss}from"./chunk-UL5OIGIF.js";import{Aa as is,Ca as Yu,Da as Uu,E as jo,Ea as $u,Fa as qu,G as Qo,Ga as Zu,Ha as ju,I as Y,Ia as Qu,Ja as Ju,Ka as ep,La as tp,Ma as ip,Na as ee,Oa as Ft,Pa as op,Qa as sp,Ra as Bt,Sa as np,Ta as os,Ua as rp,Va as ss,Wa as Ue,Xa as ns,d as Ou,e as Du,f as Nu,g as Gu,ga as Jo,h as Hu,ha as Ye,i as Wu,ia as Xu,j as Vu,k as zu,l as Ku,qa as J,ra as es,sa as _t,ya as ts}from"./chunk-24O23MNB.js";import{C as F,c as Bi,h as Oi,m as ds,o as hs,t as O,u as Te,v as ye,w as j,x as Nt,z as us}from"./chunk-JBOTRSMY.js";import"./chunk-CRCGO52K.js";var xp=1,Wi=90;function Vi(t,e){return!Number.isFinite(t)||!Number.isFinite(e)?0:Math.max(0,t*e)}function Ns(t,e,i,o=1){if(!Number.isFinite(t))return i;let s=Math.max(0,o);return i?t>=e-s:t>=e+s}function zi(t,e,i,o=1){if(!Number.isFinite(t)||!(i>0))return t;let s=Math.max(0,o)/i;return e?t*(1+s):t*(1-s)}function Tp(t){let{point:e,camera:i,scale:o,nextScale:s}=t;if(!Number.isFinite(o)||o<=0||!Number.isFinite(s))return{...i};let n=(e.x-i.x)/o,r=(e.y-i.y)/o;return{x:e.x-n*s,y:e.y-r*s}}import{Konva as ki}from"konva/lib/Core";import{Stage as Zh}from"konva/lib/Stage";import{Layer as Do}from"konva/lib/Layer";import{Group as It}from"konva/lib/Group";import{Circle as Cl}from"konva/lib/shapes/Circle";import{Group as Ji}from"konva/lib/Group";import{Circle as Ve}from"konva/lib/shapes/Circle";import{Line as eo}from"konva/lib/shapes/Line";import{Rect as to}from"konva/lib/shapes/Rect";import{Text as Un}from"konva/lib/shapes/Text";var le=9,De=.9,ce=.55*De,se=V/ge,pt=4,Ne=14,Gs=10,Hs=14,ve=.45*De,we=.9*De,ke=(ve+we)/2,Ws=Math.max(De*1.1,we),Pe=8,Vs=700,Q=2,zs=V,$t=.85,Ks=V,ft=64,qe=.55*ve,qt=700,Xs=2500,Zt=-11.5,mt=.58,Ys=320,Us=420,$s=420,qs=1,Ge=1,Zs=2,Ze=16,pe=12,Ki=[.85,.72,.62],cc=10,dc=9;function jt(t){return t<de?dc:cc}var Qt=13,Jt=12,js=0,Qs="700",Js="600",en=8,tn=5,on=10,sn=6,nn=8,rn=.6,an=.6,ln=.7,cn=[0,18,-18,36,-36,54,-54],Me="600",dn="500",de=640,ei="700",He=.02,hn=14,un=.34,ti=.92,yt=7,ii=3,pn=6;function Xi(t){return Math.min(1,Math.max(pe/Ze,t/900))}function Re(t,e){return Math.max(pe,t*Xi(e))}var fn=.1,gt=1.02;var mn=2;function yn(t,e){return!(t>0)||!(e>0)||t>=e?null:e}var hc="#e5e7eb",uc="#c7cbd1",pc="#595f69",fc="#d1d5db",mc="#b8bdc4",yc="#273142",gc="#526078",bc="#f1f5f9",Sc="#374151",vc="#64748b",wc="#111827",oi="#6b7280",si="#374151";var gn="#4b5563",bn=.4,Le=.16,Sn="rgba(244,246,248,0.06)",ni=["#E69F00","#56B4E9","#009E73","#F0E442","#0072B2","#D55E00","#CC79A7"];function vn(t,e,i){let o=new Map;for(let r of t){let l=e(r);!l||i(l)||o.set(l,(o.get(l)??0)+1)}let s=null,n=0;for(let[r,l]of o)(l>n||l===n&&s!=null&&r<s)&&(s=r,n=l);return s}function te(t){return O(t)?{sectionFill:hc,sectionStroke:uc,sectionInk:pc,focalFill:fc,focalStroke:mc}:{sectionFill:yc,sectionStroke:gc,sectionInk:bc,focalFill:Sc,focalStroke:vc}}function Yi(t,e){let i=t.sectionFill,o=us(ye(i,.2),.85);switch(e){case"closed":return ye(i,.12);case"sold-out":return o;case"nearly-gone":return j(i,o,.4);default:return i}}var wn=.28,kn=.32,kc=.55,Lc=.7;function Ln(t,e,i){let o=te(t),s=Yi(o,e);if(!i||e==="sold-out"||e==="closed")return{fill:s,stroke:o.sectionStroke};let n=O(t);return{fill:j(s,i,n?kn:wn),stroke:F(i,n?Lc:kc)}}var Cc=.03;function Cn(t,e){let i=te(t);return!["normal","nearly-gone","sold-out","closed"].map(s=>Yi(i,s).toLowerCase()).includes(e.trim().toLowerCase())&&Ui(t,e)}function Ui(t,e){let i=Bi(e);if(!i)return!1;let o=te(t),s=Math.max(wn,kn)+Cc;return["normal","nearly-gone","sold-out","closed"].some(n=>{let r=Bi(Yi(o,n));return r?Math.max(Math.abs(r[0]-i[0]),Math.abs(r[1]-i[1]),Math.abs(r[2]-i[2]))/255<=s:!1})}var xc="#f8fafc",Tc="#f4f6fb",Ic="#111827",Pc=.72;function xn(t){let e=O(t),i=e?xc:wc,o=e?Ic:Tc,s=j(o,i,1-Pc);return{plate:i,ink:o,subInk:ds(s,i)>=hs?s:o}}function ri(t){return t?.35:.3}function Pn(t){if(t<=0||t>=1)return 1;let e=1.25-1;if(t<.45){let o=t/.45;return 1+e*(1-(1-o)**2)}let i=(t-.45)/(1-.45);return 1+e*Math.cos(i*Math.PI*1.5)*(1-i)**2}function $i(t){let e=t<=0?0:t>=1?1:t,i=1-(1-e)**3;return{radiusScale:1+(2.5-1)*i,opacity:.55*(1-e)}}var Mn=700,Mc=2400,qi=12,Rn=30,Tn=1,Rc=1.16,In=.5,Ac=1;function Zi(t){return t*.61803398875%1}function An(t,e){let o=((t/Mc+e)%1+1)%1,s=(1-Math.cos(o*2*Math.PI))/2;return{scale:Tn+(Rc-Tn)*s,opacity:In+(Ac-In)*s}}var _n;function Fn(t){_n=t}function Ec(t){return typeof t=="number"?t:t instanceof Date?t.getTime():Date.parse(t)}var En=new Map;function _c(t,e){let i=t??_n,o=`${i??""}|${JSON.stringify(e)}`,s=En.get(o);return s||(s=new Intl.DateTimeFormat(i,e),En.set(o,s)),s}var Fc={dateStyle:"medium",timeStyle:"short"};function Bn(t,e={}){let{locale:i,...o}=e,s=Ec(t);if(!Number.isFinite(s))return"";let n=Object.keys(o).length?o:Fc;return _c(i,n).format(s)}var Fp="USD",Bp=["USD","EUR","GBP","CAD","AUD","INR","AED","SGD","JPY","CHF","SEK","NZD","ZAR","MXN","BRL"],Dn;function Nn(t){Dn=t}var On=new Map;function ai(t,e,i,o){let s=o??Dn,n=`${s??""}|${t}|${e??"auto"}|${i??"auto"}`,r=On.get(n);return r||(r=new Intl.NumberFormat(s,{style:"currency",currency:t,minimumFractionDigits:e,maximumFractionDigits:i}),On.set(n,r)),r}function bt(t,e="USD",i,o){if(typeof i=="object"){let n=i;try{return ai(e,n.minimumFractionDigits,n.maximumFractionDigits,n.locale).format(t)}catch(r){if(n.fallback)return n.fallback(t,e);throw r}}let s=i??(Number.isInteger(t)?0:void 0);return ai(e,s,s,o).format(t)}function Bc(t="USD"){try{return ai(t,void 0,void 0).resolvedOptions().maximumFractionDigits??2}catch{return 2}}function Oc(t,e="USD"){return t/10**Bc(e)}function Op(t,e="USD",i){return bt(Oc(t,e),e,void 0,i)}function Dp(t="USD"){return ai(t,0,0).formatToParts(0).find(i=>i.type==="currency")?.value??t}var St={"common.cancel":"Cancel","common.close":"Close","common.done":"Done","common.copied":"\u2713 Copied","picker.holdExpired":"Your hold expired \u2014 the seats were released. Pick again.","picker.poweredBy":"Powered by SeatLayer","picker.testMode":"TEST MODE","picker.testModeExplained":"Bookings here are not real and no card is charged","picker.seatsTogether":"Seats together","picker.findClosestSeatsTogether":"Find the closest seats together","picker.addSeat":"Add seat","picker.removeSeat":"Remove seat","picker.added":"Added","picker.findSeats":"Find seats","picker.displayOptions":"Display options","picker.closeVenueNavigation":"Close venue navigation","picker.orphanHint":"This leaves a single seat stranded \u2014 consider shifting one seat over.","picker.companionRequiresWheelchair":"Requires the adjacent wheelchair place","picker.companionPairRequired":"Select the adjacent wheelchair place with each companion ticket.","map.aria":"Seating map. Use arrow keys to move between seats, Enter to select.","map.beaconAria":"Go to your {seats} in {name}","map.seatsLeft":"{count} LEFT","map.soldOut":"SOLD OUT","map.fromPrice":"FROM {price}","map.statusHeld":"On hold","map.statusTaken":"Taken","picker.floor":"Floor","picker.zoomLevel":"Zoom level","picker.rungTip.zones":"Venue overview \u2014 groups of sections such as North Stand or VIP","picker.rungTip.sections":"Section blocks \u2014 sold-out and nearly-gone sections shade to show availability at a glance","picker.rungTip.seats":"Individual seats \u2014 blocks melt into dots","picker.rungLabel.zones":"ZONES","picker.rungLabel.sections":"SECTIONS","picker.rungLabel.seats":"SEATS","picker.sectionSummaryAria":"{label} section summary","picker.closeSectionSummary":"Close section summary","picker.seatsLeftInSection.one":"{count} seat left","picker.seatsLeftInSection.other":"{count} seats left","picker.seatsLeftShort":"{count} left","picker.overview":"Venue","picker.entrance":"Entrance","picker.turnOffAccessibilityFilter":"Turn off the wheelchair filter to pick this seat","picker.tapSeatHint":"Tap any seat to check its view","picker.ticketTierFor":"Ticket tier for {label}","picker.viewFromSeat":"View from seat {label}","picker.real360":"REAL 360\xB0","picker.preview":"PREVIEW","picker.sightline":"\u2248 {m} m to stage","picker.panorama360":"360\xB0 venue photo","picker.illustrationCaption":"illustration \xB7 \u2248 {m} m from stage","picker.restrictedView":"Restricted view","picker.obstructedView":"Obstructed view","picker.premiumSeat":"Premium seat","picker.hideLimitedView":"Hide limited-view seats","picker.bestSeatsPremium":"Best seats","picker.premiumFallbackNote":"No premium block of {count} \u2014 showing best overall","picker.loading3d":"Building the 3D venue\u2026","picker.unavailable3d":"3D could not start. The seat map is still available.","picker.jumpToSection":"Jump to section","picker.salesClosedPill":"Sales are closed","picker.salesClosedCopy":"Ticket sales for this event have ended.","picker.salesClosedCta":"Sales closed","picker.salesClosedToast":"Sales are closed for this event.","picker.holdReassurance":"Yours for {time} \u2014 you won\u2019t be charged yet.","picker.securingSeats":"Securing your seats\u2026","picker.openingCheckout":"Opening secure checkout\u2026","picker.peekSecured":"\u2713 {count} secured \xB7 {total} \u2014 you won\u2019t be charged yet","picker.priceHint":"Colours on the map are ticket types \u2014 tap one below to show just those seats.","picker.findTogetherInstead":"Find seats together instead","picker.keepMyPicks":"Keep my picks","picker.accessExpiredBody":"Reload the seat map to continue. Seats already in your cart stay held until the timer ends.","picker.accessExpiredTitle":"Your seat session has expired","picker.accessInvalidBody":"You can still book anything shown as available. Contact whoever sent you here for access to the rest.","picker.accessInvalidTitle":"We couldn\u2019t verify your access","picker.accessPausedBody":"The organizer has paused this selection. Try again in a few minutes.","picker.accessPausedTitle":"These seats are on hold right now","picker.accessRetry":"Reload seat map","picker.accessRevokedBody":"Ask whoever sent you here for a new link to keep booking these seats.","picker.accessRevokedTitle":"This access link is no longer active","picker.accessiblePhysicalSeat":"Accessible physical seat","picker.addTime":"Add time","picker.accessibilityOptions":"Accessibility and colour options","picker.addingEllipsis":"Adding\u2026","picker.allLevels":"All levels","picker.allPlacesBookedTogether":"All {count} places are booked together as one exclusive table.","picker.allPrices":"All prices","picker.allSeats":"All seats","picker.allSetTitle":"You\u2019re all set","picker.anyTicketType":"Any ticket type","picker.anyVenueZone":"Any venue zone","picker.areas":"Areas","picker.available":"Available","picker.backToMap":"Back to map","picker.backToVenue":"Back to venue","picker.bestSeatsStar":"\u2726 Best seats","picker.booth":"Booth","picker.capacityGuests":"{count} guests","picker.change":"Change","picker.chartDerivedModel":"Chart-derived model","picker.chartDerivedSeatEye":"Live 3D \xB7 chart-derived seat-eye \xB7 not surveyed","picker.checkConnection":"Check your connection and try again.","picker.checkoutCouldNotBeOpened":"Checkout could not be opened. Your seats are still held \u2014 please try again.","picker.chooseAnotherToCompare":"Choose another seat to compare.","picker.chooseGuestsCopy":"Choose how many guests will sit together. This table is held exclusively for your party.","picker.chooseMinMaxGuests":"Choose {min}\u2013{max} guests","picker.clearSavedSeatComparison":"Clear saved seat comparison","picker.close":"Close","picker.closeSeatStatus":"Close seat status","picker.closestGroupChosenInstantly":"Closest available group, chosen instantly.","picker.collapseTicketPanel":"Collapse ticket panel","picker.colorblindColors":"Colourblind-friendly colours","picker.companionSeatsNote":"Companion places beside them stay selectable","picker.accessFreeCount":"{count} free","picker.accessNoneLeft":"None left","picker.accessSpreadHint":"{count} accessible spaces in {sections} sections \xB7 tap a highlighted section","picker.holdLapsedStillFree.one":"Your hold ended while you were away. That seat is still free.","picker.holdLapsedStillFree.other":"Your hold ended while you were away. Those seats are still free.","picker.holdLapsedSomeTaken.one":"Your hold ended while you were away, and {count} of those seats has been taken. The rest are still free.","picker.holdLapsedSomeTaken.other":"Your hold ended while you were away, and {count} of those seats have been taken. The rest are still free.","picker.holdLapsedAllTaken.one":"Your hold ended while you were away, and that seat has been taken.","picker.holdLapsedAllTaken.other":"Your hold ended while you were away, and those seats have been taken.","picker.holdLapsedSelectAgain.one":"Select it again","picker.holdLapsedSelectAgain.other":"Select them again","picker.compareCount":"Compare {count}","picker.compareWithSaved":"Compare with saved","picker.confirmOrCancelSeat":"Confirm or cancel this seat","picker.confirmSeatLabel":"Confirm seat {label}","picker.confirmYourTable":"Confirm your table","picker.confirmedAndOnWay":"confirmed. A confirmation is on its way.","picker.continue":"Continue","picker.continueToCheckout":"Continue to checkout","picker.couldNotAddMoreTime":"Couldn\u2019t add more time \u2014 please head to checkout now.","picker.couldNotFindSeatsTogether":"We couldn\u2019t find {count} seats together. Try fewer seats or another ticket type.","picker.couldNotReleaseTickets":"Couldn\u2019t release your tickets. Your hold is unchanged.","picker.couldNotRemoveLabel":"Couldn\u2019t remove {label}. Your hold is unchanged.","picker.currentOffer":"Current offer","picker.currentTicketOffer":"Current ticket offer","picker.dragToLookAround":"Drag to look around \xB7 scroll to zoom","picker.dragToLookTouch":"Drag to look \xB7 pinch to zoom \xB7 tap \u2715 to close","picker.dragToLookMouse":"Drag to look \xB7 pinch or scroll to zoom \xB7 Esc to close","picker.emptyWheelchairSpace":"Empty wheelchair space","picker.exitFullScreen":"Exit full screen","picker.fewer":"Fewer","picker.fewerGuests":"Fewer guests","picker.fewerSeats":"Fewer seats","picker.filterAndFocusByPrice":"Filter and focus seats by price","picker.filters":"Filters","picker.findBestSeatsCount.one":"Find {count} best seat","picker.findBestSeatsCount.other":"Find {count} best seats","picker.findBestSeatsTogether":"Find the best seats together","picker.findNewSeats":"Find new seats","picker.findingBestSeats":"Finding the best seats\u2026","picker.findingEllipsis":"Finding\u2026","picker.fitToScreen":"Fit to screen","picker.flat2dMap":"Flat 2D map","picker.flexiblePartyTypeWord":"Flexible party \xB7 {typeWord}","picker.fullScreen":"Full screen","picker.generalAdmission":"General admission","picker.guestCountCouldNotBeSecured":"That guest count could not be secured. Your current table hold is unchanged.","picker.guestCountNoLongerAvailable":"That guest count is no longer available. Your current hold is unchanged.","picker.guests":"Guests","picker.guestsCount":"{count} guests","picker.guestsCountEdit":"{count} guests \xB7 Edit","picker.held":"Held","picker.heldByOther":"Held by another buyer \u2014 may become available","picker.heldForYou":"Held for you","picker.heldSeatExplanation":"Another buyer is holding this seat. It may become available again.","picker.heldTicketsReleased":"Held tickets released. Choose your new seats.","picker.heldTicketsRestored":"Your held tickets have been restored.","picker.hidePanel":"Hide panel","picker.hideTicketPanel":"Hide the ticket panel","picker.holdSeatsAndCheckout":"Hold seats & checkout","picker.howOfferWorks":"How the {name} offer works","picker.interactive3dVenueView":"Interactive 3D venue view","picker.keepMine":"Keep mine","picker.labelNoLongerAvailable":"{label} is no longer available.","picker.labelRemoved":"{label} removed.","picker.labelRemovedFromHold":"{label} removed from your hold.","picker.labelRestored":"{label} restored.","picker.labelsNoLongerAvailable.one":"{labels} is no longer available. Choose another seat.","picker.labelsNoLongerAvailable.other":"{labels} are no longer available. Choose another group.","picker.leftCount.one":"{count} left","picker.leftCount.other":"{count} left","picker.levelNumber":"Level {number}","picker.levels":"Levels","picker.liveAvailability":"Live availability \u2014 seats update in real time","picker.loadingSeatMap":"Loading seat map\u2026","picker.lookAroundLive3d":"Look around in live 3D","picker.manualTicketsRemovedNote":"Your manually selected tickets will be removed only after a new group is secured.","picker.map":"Map","picker.mapDidNotLoad":"The seat map didn\u2019t load","picker.maxTicketsForOrder":"You can select up to {count} tickets for this order.","picker.selectExactMore":"Select {count} more","picker.selectExactCount":"Select exactly {count} tickets","picker.selectMinimumMore":"Select {count} more","picker.adjustSeatSelection":"Adjust seat selection","picker.selectSeatsTogether":"Choose seats together in the same row and ticket category.","picker.minToMaxGuests":"{min} to {max} guests","picker.more":"More","picker.moreCount":"+{count} more","picker.showLess":"Show less","picker.moreGuests":"More guests","picker.moreSeats":"More seats","picker.moreSelectedCount":"{count} more selected","picker.moreTimeAdded":"More time added \u2014 your seats are still held.","picker.noAccessibilityMetadata":"No accessibility metadata supplied","picker.noAuthoredRestriction":"No organizer-authored restriction","picker.noSeatsSelected":"No seats selected","picker.notChargedYet":"You won\u2019t be charged yet.","picker.notForSale":"Not for sale","picker.notForSaleExplanation":"This seat is not included in the current sale.","picker.numberOfGuests":"Number of guests","picker.offerDetailActive":"This price applies automatically to eligible seats. Tickets in active carts temporarily reduce the available quantity; released or expired holds return it. When the offer ends, the next matching offer or normal ticket price takes over.","picker.offerDetailUpcoming":"Tickets are available at their normal price now. This scheduled offer will apply automatically to eligible seats when it starts.","picker.offerRemainingAvailable":"{count} available","picker.offerStarts":"starts {time}","picker.offerUntil":"until {time}","picker.oneSeatSaved":"1 seat saved","picker.oneSeatSavedChooseAnother":"One seat saved; choose another to compare","picker.openAuthored360":"Open venue 360\xB0","picker.openComparison":"Open comparison","picker.openComparisonOfSeats":"Open comparison of {count} seats","picker.openTicketPanel":"Open ticket panel","picker.peekFromPrice":"From {price}","picker.peekTicketsTotal.one":"{count} ticket \xB7 {total}","picker.peekTicketsTotal.other":"{count} tickets \xB7 {total}","picker.perGuestPrice":"{price} per guest","picker.pickYourSeats":"Pick your seats","picker.preferredTicketType":"Preferred ticket type","picker.preferredVenueZone":"Preferred venue zone","picker.priceNotSupplied":"Price not supplied","picker.releaseHeldTickets":"Release held tickets and choose different seats","picker.releasingEllipsis":"Releasing\u2026","picker.removeHeldTicketLabel":"Remove held ticket {label}","picker.removeSeatLabel":"Remove {label}","picker.removeTicketsUntilOrFewer":"Remove tickets until your order has {count} or fewer.","picker.replaceCurrentChoices":"Replace your current choices?","picker.review":"Review","picker.row":"Row","picker.rowLabel":"Row {label}","picker.saveToCompare":"Save to compare","picker.savedForComparison":"Saved for comparison","picker.savedSeatComparison":"Saved seat comparison","picker.scheduledOffer":"Scheduled offer","picker.seat":"Seat","picker.seatCount.one":"{count} seat","picker.seatCount.other":"{count} seats","picker.seatJustTakenByAnother":"Seat {label} was just taken by another buyer.","picker.seatLabel":"Seat {label}","picker.seatNoLongerAvailable":"That seat is no longer available.","picker.seatNoLongerYours":"Some seats are no longer available to you. They have been removed from your order.","picker.seatNumberLower":"seat {label}","picker.seatSalesClosedForEvent":"Seat sales have closed for this event.","picker.seatSelection":"Seat selection","picker.seatStatusLegend":"Seat status legend","picker.seatTaken":"Someone else took a seat you had picked. It has been removed from your order.","picker.seatsHeldForNeedMoreTime":"Your seats are held for <b>{time}</b>. Need more time?","picker.seatsJustTaken":"One or more seats were just taken. Please pick again.","picker.seatsJustTakenInCategory.one":"{count} seat just taken in {label} \xB7 {left} left","picker.seatsJustTakenInCategory.other":"{count} seats just taken in {label} \xB7 {left} left","picker.seatsNoLongerAvailableTryAnother":"Those seats are no longer available. Try another quantity or ticket type.","picker.seatsSecured":"Seats secured","picker.seatsSelectedCount.one":"{count} selected","picker.seatsSelectedCount.other":"{count} selected","picker.section":"Section","picker.secureMore":"Secure more","picker.secureMoreAndCheckout":"Secure {count} more & checkout","picker.securedCount":"{count} secured","picker.seeItIn3d":"See it in 3D","picker.select":"Select","picker.selectSeats":"Select seats","picker.selectTable":"Select table","picker.selectWholeTable":"Select whole table","picker.selected":"Selected","picker.selectingEllipsis":"Selecting\u2026","picker.showAllSeats":"Show all seats","picker.showAllTicketTypes":"Show all {count} ticket types","picker.showFewer":"Show fewer","picker.showLabelSeatsOnMap":"Show {label} seats on the map","picker.showTicketPanel":"Show the ticket panel","picker.sold":"Sold","picker.soldOutCopy":"No reserved seats are currently available for this event.","picker.soldOutEyebrow":"This event","picker.soldOutTitle":"Sold out","picker.soldSeatExplanation":"This seat has already been booked.","picker.statusAvailable":"available","picker.statusOnHold":"on hold","picker.statusTaken2":"taken","picker.table":"Table","picker.tableCapacity":"Table capacity","picker.tableUpdatedForGuests":"{label} updated for {count} guests.","picker.temporarilyHeld":"Temporarily held","picker.ticketPrices":"Ticket prices","picker.ticketTypeSoldOut":"That ticket type is sold out. Try another ticket type.","picker.tickets":"Tickets","picker.ticketsCount.one":"{count} ticket","picker.ticketsCount.other":"{count} tickets","picker.toggleColorblindColors":"Toggle colorblind-friendly colors","picker.total":"Total","picker.trayHintTapOrBest":"Tap a seat on the map, or let us pick the best available for you.","picker.trayHintTapOrStanding":"Tap a seat on the map \u2014 or grab standing tickets below.","picker.undo":"Undo","picker.upcomingTicketOffer":"Upcoming ticket offer","picker.updateTable":"Update table","picker.updatingEllipsis":"Updating\u2026","picker.venueView":"Venue view","picker.recentreOnStage":"Recentre on the stage","picker.stopYourSeat":"Your seat","picker.stopYourRow":"Your row","picker.stopYourSection":"Your section","picker.stopWholeVenue":"Whole venue","picker.viewFromHere":"View from here","picker.viewFromYourSeat":"view from your seat","picker.fromYourSeat":"from your seat","picker.viewFromThisSeat":"View from this seat","picker.wholeTypeWord":"Whole {typeWord}","picker.willChooseClosestGroup":"We\u2019ll choose the closest available group for you.","picker.willFindSeatsTogether":"We\u2019ll find {count} seats together.","picker.yourSeats":"Your seats","picker.zoomIn":"Zoom in","picker.zoomOut":"Zoom out","picker.closeVenueNav":"Close","picker.levelsAndAreas":"Levels & areas","picker.gaChooseTickets":"How many tickets?","picker.gaAdd.one":"Add {count} ticket \xB7 {price}","picker.gaAdd.other":"Add {count} tickets \xB7 {price}","picker.gaUpdate.one":"Update \xB7 {count} ticket","picker.gaUpdate.other":"Update \xB7 {count} tickets","picker.gaRemove":"Remove","picker.gaAreasHeading":"Areas","picker.gaTrayHintTapArea":"Tap an area on the map to choose tickets.","picker.gaAdded.one":"{count} {area} ticket added, {price}","picker.gaAdded.other":"{count} {area} tickets added, {price}","picker.gaRemoved":"{area} tickets removed","picker.gaChooseForArea":"Choose tickets for {area}","picker.holdSeatsForAllPerformances":"Hold seats for all {count} performances","picker.completeAllPerformances":"Complete all performances ({complete}/{total})","picker.groupTrayHint":"Choose seats once \u2014 the same seats will be held for every performance.","picker.groupPerPerformanceTrayHint":"Choose seats for this performance, then complete every date above.","picker.group.sameSeatSummary":"Choose once. The same seats will be held for all {count} performances.","picker.group.perPerformanceSummary":"Choose seats for each performance. All {count} selections are held together.","picker.group.allDates":"All {count} dates included","picker.group.flexibleDatesInView":"All {count} dates in view","picker.group.flexibleDatesSelected":"{selected} of {total} dates selected","picker.group.performances":"Performances","picker.group.heldForEveryPerformance":"Held for every performance","picker.group.notStarted":"Not started","picker.group.inProgress":"In progress","picker.group.complete":"Complete","picker.group.needsAttention":"Needs attention","picker.group.previousPerformance":"Previous performance","picker.group.nextPerformance":"Next performance","picker.group.performanceOpened":"Now choosing seats for {performance}.","picker.group.checkingAvailability":"Checking seats available for every performance\u2026","picker.group.securing":"Securing these seats for every performance. Please wait.","picker.group.commitPending":"We\u2019re still securing these seats for every performance. SeatLayer will keep working; this page is checking the result.","picker.group.outcomeUnknown":"We\u2019re checking whether your seats were secured. Don\u2019t choose other seats yet.","picker.group.longRunning":"This is taking longer than usual. We\u2019re still checking the same request. Don\u2019t submit it again. Reference: {reference}.","picker.group.abortPending":"We couldn\u2019t secure every performance. We\u2019re checking that all seats are released before you try again.","picker.group.secured":"Seats secured for every performance. Continue when you are ready.","picker.group.notSecured":"We couldn\u2019t secure these seats for every performance. Nothing is held. Try again.","picker.group.retry":"Try again","picker.group.salesClosed":"Seats for this performance set are not available now. Return to the event page for other options.","picker.group.revisionChanged":"This performance set changed. Review the included performances before choosing seats again.","picker.group.legendTitle":"Seat availability","picker.group.legendUnavailable":"Unavailable","picker.group.partlyAvailableTitle":"Free on some nights only","picker.group.notAvailableOn":"Not available on {dates}","picker.group.nightFree":"Free","picker.group.nightBlocked":"Not available","picker.group.pickSeatFreeEveryNight":"Pick a seat that is free every night.","picker.group.chooseNightByNight":"Choose seats night by night","picker.group.nightByNightStarted":"Now choosing seats for each performance separately. Your selection was cleared.","picker.group.yourSeatsByNight":"Your seats by night","picker.group.noSeatsChosenYet":"No seats yet","picker.group.chosenOfTotal":"{chosen} of {total}","picker.group.needsMoreSeats":"Needs {count} more","picker.group.closeSeatDetails":"Close seat details","picker.group.seatPartlyAvailable":"{label}: free on {free} of {total} performances. Not available on {dates}.","picker.group.selectAvailableDates":"Select for {count} available dates","picker.group.selectedAvailableDates":"Selected for {count} available dates.","picker.group.clearBeforePartial":"Clear your current seats before choosing a different date set.","picker.group.legendAvailable":"Available","picker.group.legendSelected":"Selected","picker.group.legendNotEveryDate":"Not open on every date","picker.group.progressLabel":"Booking steps","picker.group.stepPerformances":"Performances","picker.group.stepSeats":"Seats","picker.group.stepReview":"Review","picker.group.stepDone":"Done","picker.group.stepCurrent":"Current step","picker.group.includedNote":"All {count} performances are included \xB7 dates cannot be removed here","picker.group.flexibleDatesNote":"Choose a partial seat to include only the dates where it is available.","picker.group.flexibleSelectedNote":"Only these {count} dates will be held for this seat.","picker.group.yourSelection":"Your selection","picker.group.pricesPerPerformance":"Prices shown per performance","picker.group.total":"Total","picker.group.heldTogether":"All {count} performance selections are held together \xB7 {time} remaining","picker.group.completeWithSeats":"Complete \xB7 {seats}","picker.group.stillNeedsSeat":"Still needs a seat","picker.group.sameSeatMapHelp":"One chart shows only seats available for every selected performance.","picker.group.perPerformanceMapHelp":"Switch dates above; the map position and each choice stay saved.","picker.group.bookedAll":"You\u2019re all set \u2014 seats booked for all {count} performances.","picker.group.seatsEveryPerformance.one":"{count} seat \xB7 every performance","picker.group.seatsEveryPerformance.other":"{count} seats \xB7 every performance","picker.group.seatsPerPerformance.one":"{count} seat \xB7 {per} per performance","picker.group.seatsPerPerformance.other":"{count} seats \xB7 {per} per performance","picker.group.performancesChosenOf.one":"{chosen} of {total} performances chosen \xB7 {count} seat","picker.group.performancesChosenOf.other":"{chosen} of {total} performances chosen \xB7 {count} seats","picker.group.ticketsConfirmedAcross.one":"{count} ticket confirmed across {performances} performances","picker.group.ticketsConfirmedAcross.other":"{count} tickets confirmed across {performances} performances"};var Dc=["ar","be","bg","ca","cs","cy","da","de","el","en","es","et","fa","fi","fr","he","hr","hu","it","ja","ku","lt","lv","nl","no","pl","pt","ro","ru","sk","sl","sr","sv","tr","uk","zh-Hans","zh-Hant"],zp={ar:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",be:"\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u043A\u0430\u044F",bg:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438",ca:"Catal\xE0",cs:"\u010Ce\u0161tina",cy:"Cymraeg",da:"Dansk",de:"Deutsch",el:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",en:"English",es:"Espa\xF1ol",et:"Eesti",fa:"\u0641\u0627\u0631\u0633\u06CC",fi:"Suomi",fr:"Fran\xE7ais",he:"\u05E2\u05D1\u05E8\u05D9\u05EA",hr:"Hrvatski",hu:"Magyar",it:"Italiano",ja:"\u65E5\u672C\u8A9E",ku:"Kurd\xEE",lt:"Lietuvi\u0173",lv:"Latvie\u0161u",nl:"Nederlands",no:"Norsk",pl:"Polski",pt:"Portugu\xEAs",ro:"Rom\xE2n\u0103",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",sk:"Sloven\u010Dina",sl:"Sloven\u0161\u010Dina",sr:"\u0421\u0440\u043F\u0441\u043A\u0438",sv:"Svenska",tr:"T\xFCrk\xE7e",uk:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430","zh-Hans":"\u7B80\u4F53\u4E2D\u6587","zh-Hant":"\u7E41\u9AD4\u4E2D\u6587"},Gn=["ar","be","bg","ca","cs","cy","da","de","el","en","es","et","fa","fi","fr","he","hr","hu","it","ja","ku","lt","lv","nl","no","pl","pt","ro","ru","sk","sl","sr","sv","tr","uk","zh-Hans","zh-Hant"],Nc=new Set(["ar","fa","he"]),ji={li:"lt",iw:"he",mo:"ro",sh:"sr",nb:"no",nn:"no",kmr:"ku",zh:"zh-Hans","zh-cn":"zh-Hans","zh-sg":"zh-Hans","zh-my":"zh-Hans","zh-tw":"zh-Hant","zh-hk":"zh-Hant","zh-mo":"zh-Hant"},Qi=new Map(Dc.map(t=>[t.toLowerCase(),t]));function Gc(t){let e=t.trim().toLowerCase().replace(/_/g,"-");if(!e)return;let i=Qi.get(e)??ji[e];if(i)return i;let o=e.split("-");if(o.length>=2){let s=`${o[0]}-${o[1]}`,n=Qi.get(s)??ji[s];if(n)return n}return Qi.get(o[0])??ji[o[0]]}var We={en:St},li={},he="en";function Hn(t,e){let i=typeof navigator<"u"?navigator.languages?.length?navigator.languages:[navigator.language]:[];for(let o of[t,e,...i]){if(!o)continue;let s=Gc(o);if(s)return s}return"en"}function Kp(){return he}function Xp(t=he){return Nc.has(t)?"rtl":"ltr"}function Yp(t){return!!We[t]}function je(t,e){e&&(We[t]={...We[t],...e}),he=We[t]?t:"en",Nn(he),Fn(he),typeof document<"u"&&(document.documentElement.lang=he)}function Up(t){li=t}var Wn=/\{(\w+)\}/g;function N(t,e){let i=li[t]??We[he]?.[t]??St[t]??t;return e?i.replace(Wn,(o,s)=>String(e[s]??`{${s}}`)):i}function Vn(t,e,i){let o=new Intl.PluralRules(he).select(e);return(li[`${t}.${o}`]??We[he]?.[`${t}.${o}`]??St[`${t}.${o}`]??li[`${t}.other`]??We[he]?.[`${t}.other`]??St[`${t}.other`]??t).replace(Wn,(r,l)=>String({count:e,...i}[l]??`{${l}}`))}function $p(t,e){return Bn(t,{...e??{dateStyle:"medium",timeStyle:"short"},locale:he})}function Kn(t,e,i,o=!1){let s=t.displayLabel?.trim()||t.label;return o?{title:s,detail:N("map.statusTaken"),sellable:!1}:e==="booked"?{title:s,detail:N("map.statusTaken"),sellable:!1}:e==="held"?{title:s,detail:N("map.statusHeld"),sellable:!1}:{title:s,detail:i()??"",sellable:!0}}var Qe=32,zn=70;function Xn(t,e){let i=Qe+6,o=t.y-zn;return{x:Math.min(Math.max(t.x,i),Math.max(i,e.width-i)),y:o>=i?o:Math.min(t.y+zn,e.height-i)}}var zc=220,Kc=.08,ci=class{constructor(e){this.pulses=new Map;this.pulseGroup=null;this.loupe=null;this.echoTimers=new Map;this.host=e}syncMarker(e,i,o){let s=o.get(e);if(o.delete(e),!i){this.retire(s);return}s?.destroy();let n=this.host,r=n.seat(e);if(!r)return;let l=n.seatShape(e)?.fill(),a=re(typeof l=="string"?l:"",n.selectionColor(),$e),c=n.selectionFocusId()===e,d=n.boothDims(r.rowId),h=n.seatRadius(),p=n.seatPoint(r),m=new Ji({name:"selection-ring",x:p.x,y:p.y,rotation:d?.rotation??0,listening:!1,perfectDrawEnabled:!1,opacity:n.selectionFocusDims(e)?.2:1});if(n.viewMode()==="perspective"){let u=n.perspectiveSeatScale(e);m.scale({x:u,y:u})}m.setAttrs({seatId:e,ringColor:a});let f={name:"selection-halo",stroke:F(n.categoryColor(r.categoryKey),ri(O(n.canvasBackground()))),listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1};if(d){let u=h*1.2;m.add(new to({...f,width:d.width+u*2,height:d.height+u*2,offsetX:(d.width+u*2)/2,offsetY:(d.height+u*2)/2,cornerRadius:8,strokeWidth:Math.max(2,h*.5)}))}else m.add(new Ve({...f,radius:h*1.6,strokeWidth:Math.max(2,h*.55)}));let g={stroke:a,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1};if(d)if(m.add(new to({...g,width:d.width,height:d.height,offsetX:d.width/2,offsetY:d.height/2,cornerRadius:4,strokeWidth:c?4:3})),c)m.add(new to({...g,width:d.width+10,height:d.height+10,offsetX:(d.width+10)/2,offsetY:(d.height+10)/2,cornerRadius:7,strokeWidth:2,opacity:.55}));else{let u=Math.max(0,d.width/2-14),y=-Math.max(0,d.height/2-14);m.add(new Ve({x:u,y,radius:10,fill:a,listening:!1})),m.add(new eo({x:u,y,points:[-4.5,0,-1,3.5,5.5,-4.5],stroke:O(a)?"#0b1220":"#ffffff",strokeWidth:2.4,lineCap:"round",lineJoin:"round",listening:!1}))}else m.add(new Ve({...g,radius:Math.max(1,h-1.25),strokeWidth:Math.min(2.5,Math.max(1.8,h*.22))})),c?m.add(new Ve({...g,radius:h+2,strokeWidth:2,opacity:.55})):m.add(new eo({points:[-h*.52,0,-h*.12,h*.4,h*.6,-h*.46],stroke:"#ffffff",strokeWidth:Math.max(2.6,h*.34),lineCap:"round",lineJoin:"round",shadowColor:"#0b1220",shadowBlur:1.5,shadowOpacity:.55,listening:!1}));o.set(e,m),this.host.overlayLayer.add(m)}retire(e){let i=this.host;if(!e)return;if(i.reducedMotion()||i.isDestroyed()||typeof document<"u"&&document.hidden){e.destroy();return}let o=performance.now(),s=n=>{if(i.isDestroyed()||!e.getLayer()){e.destroy();return}let r=Math.min(1,(n-o)/160);e.opacity(1-r),i.overlayLayer.batchDraw(),r<1?requestAnimationFrame(s):(e.destroy(),i.overlayLayer.batchDraw())};requestAnimationFrame(s)}play(e){let i=this.host;if(i.reducedMotion()||i.isDestroyed()||typeof document<"u"&&document.hidden||!i.seat(e))return;this.emitPulse(e,!0);let o=this.echoTimers.get(e);o&&clearTimeout(o),this.echoTimers.set(e,setTimeout(()=>{this.echoTimers.delete(e),!(i.isDestroyed()||i.reducedMotion())&&(typeof document<"u"&&document.hidden||this.emitPulse(e,!1))},Mn))}emitPulse(e,i){let o=this.host,s=o.seat(e);if(!s)return;let n=o.seatRadius(),r=o.seatPoint(s);this.pulses.get(e)?.destroy();let l=new Ve({name:"selection-pulse",x:r.x,y:r.y,radius:n,stroke:o.categoryColor(s.categoryKey),strokeWidth:Math.max(1.5,n*.24),opacity:$i(0).opacity,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});this.pulses.set(e,l),this.pulseHome().add(l);let a=i&&!o.isCached()?o.seatShape(e):void 0,c=performance.now(),d=()=>{a?.scale({x:1,y:1}),l.destroy(),this.pulses.get(e)===l&&this.pulses.delete(e),o.overlayLayer.batchDraw(),a&&!o.isCached()&&o.seatLayer.batchDraw()},h=p=>{if(o.isDestroyed()){d();return}l.getLayer()||this.pulseHome().add(l);let m=p-c,f=$i(m/420);if(l.radius(n*f.radiusScale),l.opacity(f.opacity),a){let g=Pn(m/320);a.scale({x:g,y:g})}o.overlayLayer.batchDraw(),a&&!o.isCached()&&o.seatLayer.batchDraw(),m<420?requestAnimationFrame(h):d()};queueMicrotask(()=>{o.isDestroyed()||typeof requestAnimationFrame!="function"||requestAnimationFrame(h)})}nudge(e){let i=this.host;if(i.reducedMotion()||i.isDestroyed()||i.isCached()||typeof document<"u"&&document.hidden)return;let o=i.seatShape(e);if(!o)return;let s=performance.now(),n=()=>{o.scale({x:1,y:1}),i.seatLayer.batchDraw()},r=l=>{if(i.isDestroyed()||i.isCached()||!o.getLayer()){n();return}let a=l-s,c=Math.min(1,a/zc),d=1+Kc*Math.sin(Math.PI*c);o.scale({x:d,y:d}),i.seatLayer.batchDraw(),c<1?requestAnimationFrame(r):n()};requestAnimationFrame(r)}pulseHome(){return(!this.pulseGroup||!this.pulseGroup.getLayer())&&(this.pulseGroup=new Ji({name:"seat-pulses",listening:!1})),this.pulseGroup.getLayer()||this.host.overlayLayer.add(this.pulseGroup),this.host.overlayLayer.isCached()&&this.host.overlayLayer.clearCache(),this.pulseGroup.moveToTop(),this.pulseGroup}showLoupe(e){let i=this.host;if(i.isExportMode()||i.isDestroyed())return;let o=i.nearestSeat(e,Ne),s=o?i.seat(o):void 0;if(!s){this.hideLoupe();return}let n=Kn(s,i.seatStatus(s.id),()=>i.priceLabel(s),i.seatClosed(s.id)),r=Xn(e,{width:i.stage.width(),height:i.stage.height()}),l=1/(i.stage.scaleX()||1),a=this.loupe??this.buildLoupe();a.seatId=s.id,a.group.position(i.screenToWorld(r)),a.group.scale({x:l,y:l}),a.group.opacity(n.sellable?1:.75),a.group.visible(!0),a.disc.fill(i.categoryColor(s.categoryKey)),a.title.text(n.title),a.title.offsetX(a.title.width()/2),a.detail.text(n.detail),a.detail.offsetX(a.detail.width()/2),i.overlayLayer.batchDraw()}buildLoupe(){let e=this.host,i=e.canvasBackground(),o=re(i,te(i).sectionInk),s=new Ji({name:"touch-loupe",listening:!1,visible:!1});s.add(new eo({points:[-7,Qe-4,0,Qe+12,7,Qe-4],closed:!0,fill:i,stroke:F(o,.25),strokeWidth:1,listening:!1})),s.add(new Ve({radius:Qe,fill:i,stroke:F(o,.28),strokeWidth:1.25,shadowColor:"#000000",shadowBlur:16,shadowOpacity:.45,listening:!1}));let n=new Ve({y:-15,radius:6,fill:"#6e7bff",listening:!1}),r=new Un({y:-6,text:"",fontSize:15,fontStyle:"800",fontFamily:e.labelFont(),fill:o,listening:!1,perfectDrawEnabled:!1}),l=new Un({y:12,text:"",fontSize:10.5,fontStyle:"700",fontFamily:e.labelFont(),fill:F(o,.72),listening:!1,perfectDrawEnabled:!1});return s.add(n),s.add(r),s.add(l),e.overlayLayer.add(s),s.moveToTop(),this.loupe={group:s,title:r,detail:l,disc:n,seatId:""},this.loupe}hideLoupe(){this.loupe?.group.visible()&&(this.loupe.group.visible(!1),this.host.overlayLayer.batchDraw())}destroy(){for(let e of this.echoTimers.values())clearTimeout(e);this.echoTimers.clear()}};import{Animation as Xc}from"konva/lib/Animation";var Yc=1e3/Rn;function $n(t){return t.findOne(".selection-halo")??null}var di=class{constructor(e){this.animation=null;this.targets=[];this.startedAt=0;this.lastFrameAt=0;this.visibilityBound=!1;this.onVisibilityChange=()=>{this.refresh()};this.markers=new Map;this.beaconRings=[];this.host=e}sync(e){this.markers=e,this.refresh()}syncBeacons(e){this.beaconRings=e,this.refresh()}refresh(){let e=this.host,i=this.markers.size>0||this.beaconRings.length>0;if(i&&!e.isDestroyed()&&!e.reducedMotion()&&this.bindVisibility(),e.isDestroyed()||e.reducedMotion()||!this.pageVisible()||!i){this.stop(),this.rest(),(!i||e.isDestroyed()||e.reducedMotion())&&this.unbindVisibility();return}let o=[],s=0;for(let[r,l]of this.markers){let a=$n(l);if(a){if(this.paintHalo(r,a),s>=qi){a.scale({x:1,y:1}),a.opacity(1);continue}o.push({node:a,phase:Zi(s)}),s+=1}}let n=0;for(let r of this.beaconRings){if(n>=qi){r.scale({x:1,y:1}),r.opacity(1);continue}o.push({node:r,phase:Zi(n)}),n+=1}if(this.targets=o,!o.length){this.stop();return}this.animation||(this.startedAt=performance.now(),this.lastFrameAt=0,this.animation=new Xc(()=>this.frame(),e.overlayLayer),this.animation.start())}stop(){this.targets=[],this.animation&&(this.animation.stop(),this.animation=null)}destroy(){this.stop(),this.markers=new Map,this.beaconRings=[],this.unbindVisibility()}isRunning(){return!!this.animation?.isRunning()}paintHalo(e,i){let o=this.host,s=ri(O(o.canvasBackground())),n=o.seatCategoryKey(e),r=o.isOwnedHold(e)?j(o.selectionColor(),o.canvasBackground(),.55):n?o.categoryColor(n):o.selectionColor();i.stroke(F(r,s))}rest(){let e=!1;for(let[i,o]of this.markers){let s=$n(o);s&&(this.paintHalo(i,s),s.scale({x:1,y:1}),s.opacity(1),e=!0)}for(let i of this.beaconRings)i.scale({x:1,y:1}),i.opacity(1),e=!0;e&&!this.host.isDestroyed()&&this.host.overlayLayer.batchDraw()}frame(){if(this.host.isDestroyed()||!this.targets.length)return this.stop(),!1;let i=performance.now();if(i-this.lastFrameAt<Yc)return!1;this.lastFrameAt=i;let o=i-this.startedAt;for(let s of this.targets){let{scale:n,opacity:r}=An(o,s.phase);s.node.scale({x:n,y:n}),s.node.opacity(r)}return!0}pageVisible(){return typeof document>"u"?!0:document.visibilityState==="visible"}bindVisibility(){this.visibilityBound||typeof document>"u"||(document.addEventListener("visibilitychange",this.onVisibilityChange),this.visibilityBound=!0)}unbindVisibility(){!this.visibilityBound||typeof document>"u"||(document.removeEventListener("visibilitychange",this.onVisibilityChange),this.visibilityBound=!1)}};import{Group as Uc}from"konva/lib/Group";import{Circle as qn}from"konva/lib/shapes/Circle";import{Text as $c}from"konva/lib/shapes/Text";var hi=28,qc=12,Zc="800",jc=44;function Zn(t){if(t.rung==="seats")return[];let e=new Map,i=new Map(t.zones.map(s=>[s.id,s.name])),o=new Map(t.zones.map(s=>[s.id,s.anchor]));for(let s of t.sections){let n=t.ownedSeatIds(s);if(!n.length)continue;let r=t.rung==="zones"&&s.zone!=null&&i.has(s.zone),l=r?s.zone:s.logicalId,a=e.get(l);if(a){a.count+=n.length;continue}e.set(l,{id:l,kind:r?"zone":"section",name:r?i.get(s.zone):t.sectionName(s),count:n.length,seatId:n[0],anchor:r?o.get(s.zone):t.sectionAnchor(s)})}return[...e.values()]}function Qc(t,e){return N("map.beaconAria",{seats:Vn("picker.seatCount",t),name:e})}var Jc="selection-beacon-ring",ui=class{constructor(e){this.group=null;this.buttons=[];this.centres=[];this.rings=[];this.targets=[];this.signature="";this.host=e}breathingRings(){return this.rings}current(){return this.targets}sync(e){let i=Math.max(this.host.stageScale(),1e-4),o=`${i.toFixed(4)}|${e.map(a=>`${a.id}:${a.count}:${a.seatId}`).join(",")}`;if(o===this.signature&&this.buttons.length===e.length){this.targets=e,this.repositionButtons();return}if(this.clear(),this.signature=o,this.targets=e,!e.length){this.host.overlayLayer.batchDraw();return}let s=hi/2/i,n=this.host.accent(),r=this.host.accentInk(),l=new Uc({listening:!1,name:"selection-beacons"});for(let a of e){let c={x:a.anchor.x,y:a.anchor.y-s*1.6},d=new qn({name:Jc,x:c.x,y:c.y,radius:s*1.25,stroke:F(n,.55),strokeWidth:Math.max(1,s*.22),listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});l.add(d),l.add(new qn({name:"selection-beacon-disc",x:c.x,y:c.y,radius:s,fill:n,stroke:F(r,.28),strokeWidth:1/i,listening:!1,perfectDrawEnabled:!1}));let h=new $c({x:c.x,y:c.y,text:String(a.count),fontSize:qc/i,fontStyle:Zc,fontFamily:this.host.labelFont(),fill:r,listening:!1,perfectDrawEnabled:!1});h.offsetX(h.width()/2),h.offsetY(h.height()/2),l.add(h),this.rings.push(d),this.centres.push(c),this.buttons.push(this.buildButton(a,c))}this.host.overlayLayer.add(l),l.moveToTop(),this.group=l,this.host.overlayLayer.batchDraw()}clear(){this.group?.destroy(),this.group=null,this.rings=[],this.targets=[],this.centres=[],this.signature="";for(let e of this.buttons)e.remove();this.buttons=[]}repositionButtons(){for(let e=0;e<this.buttons.length;e+=1){let i=this.buttons[e],o=this.host.worldToScreen(this.centres[e]),s=i.offsetWidth||parseFloat(i.style.width)||hi;i.style.left=`${o.x-s/2}px`,i.style.top=`${o.y-s/2}px`}}buildButton(e,i){let o=this.host.worldToScreen(i),s=typeof globalThis.matchMedia=="function"&&globalThis.matchMedia("(pointer: coarse)").matches,n=Math.max(hi,s?jc:hi),r=document.createElement("button");return r.type="button",r.className="sl-beacon",r.dataset.beacon=e.id,r.setAttribute("aria-label",Qc(e.count,e.name)),Object.assign(r.style,{position:"absolute",left:`${o.x-n/2}px`,top:`${o.y-n/2}px`,width:`${n}px`,height:`${n}px`,padding:"0",margin:"0",border:"none",borderRadius:"50%",background:"transparent",cursor:"pointer",touchAction:"manipulation",zIndex:"3"}),r.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),this.host.activate(e)}),r.addEventListener("pointerdown",l=>l.stopPropagation()),this.host.container.appendChild(r),r}};function io(t,e){let i=t.width(),o=t.height(),s=1/0,n=1/0,r=-1/0,l=-1/0,a=i*2,c=o*2;for(let d of e){let h=d.getClientRect();if(!(!(h.width>1)||!(h.height>1))){if(h.x<-a||h.y<-c||h.x+h.width>i+a||h.y+h.height>o+c)return null;h.x<s&&(s=h.x),h.y<n&&(n=h.y),h.x+h.width>r&&(r=h.x+h.width),h.y+h.height>l&&(l=h.y+h.height)}}return isFinite(s)?{x:s,y:n,width:r-s,height:l-n}:null}var jn=8,ed=.02,Qn=1,Jn=.5;function er(t,e,i,o){let s=i??{x:0,y:0,width:t.width(),height:t.height()},n=io(t,e);if(!n)return 0;oo(t,n,s);let r=Math.min((s.width-2*jn)/n.width,(s.height-2*jn)/n.height);if(!(r>0))return 1;let l=Math.max(n.width-s.width,n.height-s.height),a=l>Jn?r:Math.min(r,td(t.scaleX(),o));if(!(a>1+ed)&&!(l>Jn)||!(a>0)||a===1)return 1;let c=s.x+s.width/2,d=s.y+s.height/2;t.scale({x:t.scaleX()*a,y:t.scaleY()*a}),t.position({x:c+(t.x()-c)*a,y:d+(t.y()-d)*a});let h=io(t,e);return h&&oo(t,h,s),a}function tr(t,e,i){let o=i??{x:0,y:0,width:t.width(),height:t.height()},s=io(t,e);return s?oo(t,s,o):!1}function td(t,e){let i=Math.max(t,1e-9);return(e!=null&&e>i?Math.min(Qn,e):Qn)/i}function oo(t,e,i){let o=i.x+i.width/2-(e.x+e.width/2),s=i.y+i.height/2-(e.y+e.height/2);return o===0&&s===0?!1:(t.position({x:t.x()+o,y:t.y()+s}),!0)}function so(t){return`${t.x()},${t.y()},${t.scaleX()}`}import{Group as id}from"konva/lib/Group";import{Circle as ir}from"konva/lib/shapes/Circle";import{Line as od}from"konva/lib/shapes/Line";import{Text as sd}from"konva/lib/shapes/Text";var nd=6;function no(t){return O(t)?"#0b1220":"#ffffff"}function or(t){let{points:e}=t;if(!e.length)return null;let i=t.categoryColor??"#6e7bff",o=0,s=0;for(let n of e)o+=n.x,s+=n.y;return{count:e.length,centroid:{x:o/e.length,y:s/e.length},fill:i,ink:no(i)}}var pi=class{constructor(e){this.group=null;this.badges=[];this.host=e}anchorFor(e){for(let i of this.host.sections()){if(i.logicalId!==e&&i.id!==e)continue;let o=or({points:this.host.ownedPoints(i),categoryColor:null});if(o)return o.centroid}return null}badgeAt(e){for(let i of this.badges)if(Math.hypot(e.x-i.centre.x,e.y-i.centre.y)<=i.radius)return i.id;return null}sync(e,i="seats"){if(this.group?.destroy(),this.group=null,this.badges=[],e>=we){this.host.overlayLayer.batchDraw();return}let o=Math.max(this.host.stageScale(),1e-4),s=new id({listening:!1,name:"owned-sections"}),n=new Set;for(let r of this.host.sections()){let l=this.host.ownedPoints(r),a=or({points:l,categoryColor:this.host.sectionColor(r)});if(!a)continue;let c=Math.max(nd/2/o,1);for(let g of l)s.add(new ir({name:"owned-seat-dot",x:g.x,y:g.y,radius:c,fill:a.fill,stroke:F("#ffffff",.55),strokeWidth:Math.max(.5,c*.28),shadowColor:a.fill,shadowBlur:c*2.4,shadowOpacity:.7,listening:!1,perfectDrawEnabled:!1}));if(i!=="seats"||n.has(r.logicalId))continue;n.add(r.logicalId);let d=this.host.sections().filter(g=>g.logicalId===r.logicalId).reduce((g,u)=>g+this.host.ownedPoints(u).length,0),h=this.host.labelAnchor(r),p=11/o,m={x:h.x,y:h.y-p*2.1};s.add(new ir({name:"owned-section-badge",x:m.x,y:m.y,radius:p,fill:a.fill,stroke:F(a.ink,.35),strokeWidth:1/o,listening:!1,perfectDrawEnabled:!1})),s.add(new od({x:m.x-p*.62,y:m.y,points:[-p*.22,0,-p*.02,p*.2,p*.34,-p*.26],stroke:a.ink,strokeWidth:Math.max(.6,p*.16),lineCap:"round",lineJoin:"round",listening:!1}));let f=new sd({x:m.x+p*.12,y:m.y-p*.5,text:String(d),fontSize:p,fontStyle:"800",fontFamily:this.host.labelFont(),fill:a.ink,listening:!1,perfectDrawEnabled:!1});s.add(f),this.badges.push({id:r.logicalId,centre:m,radius:p*1.8})}if(!s.hasChildren()){s.destroy(),this.host.overlayLayer.batchDraw();return}this.host.overlayLayer.add(s),s.moveToTop(),this.group=s,this.host.overlayLayer.batchDraw()}};function z(t){let e=ys(t);return e?{x:e.x,y:e.y,width:Math.max(1,e.width),height:Math.max(1,e.height)}:{x:0,y:0,width:1,height:1}}function Je(t,e,i,o){let s=o*Math.PI/180,n=Math.cos(s),r=Math.sin(s);return[{x:-e/2,y:-i/2},{x:e/2,y:-i/2},{x:e/2,y:i/2},{x:-e/2,y:i/2}].map(l=>({x:t.x+l.x*n-l.y*r,y:t.y+l.x*r+l.y*n}))}function et(t,e,i,o,s,n){let r=o*Math.PI/180,l=Math.cos(r),a=Math.sin(r);for(let c=0;c<=4;c++)for(let d=0;d<=6;d++){let h=e*(d/6-.5),p=i*(c/4-.5),m={x:t.x+h*l-p*a,y:t.y+h*a+p*l};if(!ee(m,s,n))return!1}return!0}function sr(t,e,i){let o=z(t),s=[i];for(let r=1;r<12;r+=1)for(let l=1;l<12;l+=1){let a={x:o.x+o.width*l/12,y:o.y+o.height*r/12};ee(a,t,e)&&s.push(a)}let n=[t,...e];return s.map(r=>({point:r,room:jo(r,n)})).sort((r,l)=>l.room-r.room).map(r=>r.point).filter((r,l,a)=>l===a.findIndex(c=>Math.abs(c.x-r.x)<1e-6&&Math.abs(c.y-r.y)<1e-6))}function nr(t,e){let{stageScale:i,stageX:o,stageY:s}=t;if(t.viewMode==="perspective"&&e.perspectiveAffine)return z(e.outline.map(r=>{let l=t.projectedSectionPoint(e,r);return{x:l.x*i+o,y:l.y*i+s}}));let n=e.liftWorld>0?t.isoLiftLocal(e.liftWorld):{x:0,y:0};return z(e.outline.map(r=>{let l={x:r.x+n.x,y:r.y+n.y},a=t.isoT===0?l:t.isoForward(l);return{x:a.x*i+o,y:a.y*i+s}}))}function rd(t,e){let i=t.width*t.height;if(i<=0)return 0;let o=Math.max(0,Math.min(t.x+t.width,e.width)-Math.max(t.x,0)),s=Math.max(0,Math.min(t.y+t.height,e.height)-Math.max(t.y,0));return o*s/i}function rr(t){let{current:e,viewport:i}=t,o=new Map;for(let l of t.sections){let a=rd(l.bounds,i)*l.members;a<=0||o.set(l.logicalId,(o.get(l.logicalId)??0)+a)}if(!o.size)return e;let s=null,n=0;for(let[l,a]of o)a>n&&(n=a,s=l);if(!s||s===e)return e;let r=e!=null?o.get(e)??0:0;return n>r*1.35?s:e}import{Text as ld}from"konva/lib/shapes/Text";function ad(t,e){return t.x<e.x+e.width&&e.x<t.x+t.width&&t.y<e.y+e.height&&e.y<t.y+t.height}var tt=class{constructor(){this.cells=new Map}insert(e){for(let i of this.keys(e)){let o=this.cells.get(i);o?o.push(e):this.cells.set(i,[e])}}collisionCount(e){let i=new Set,o=0;for(let s of this.keys(e))for(let n of this.cells.get(s)??[])i.has(n)||(i.add(n),ad(e,n)&&o++);return o}keys(e){let i=Math.floor(e.x/ft),o=Math.floor((e.x+Math.max(0,e.width))/ft),s=Math.floor(e.y/ft),n=Math.floor((e.y+Math.max(0,e.height))/ft),r=[];for(let l=s;l<=n;l++)for(let a=i;a<=o;a++)r.push(`${a}:${l}`);return r}};function ar(t,e){let i=t.sections.filter(f=>f.id===e||f.logicalId===e),o=i.map(f=>{if(t.viewMode==="perspective"&&f.perspectiveAffine)return z(f.outline.map(y=>t.projectedSectionPoint(f,y)));let g=f.liftWorld>0?t.isoLiftLocal(f.liftWorld):{x:0,y:0},u=f.outline.map(y=>{let S={x:y.x+g.x,y:y.y+g.y};return t.isoT===0?S:t.isoForward(S)});return z(u)});if(!o.length)return null;let s=Math.min(...o.map(f=>f.x)),n=Math.min(...o.map(f=>f.y)),r=Math.max(...o.map(f=>f.x+f.width)),l=Math.max(...o.map(f=>f.y+f.height)),a=new Set(i.flatMap(f=>f.memberIds));for(let f of a){let g=t.seatById.get(f);if(!g)continue;let u=t.renderedSeatPoint(g);s=Math.min(s,u.x-t.seatR),n=Math.min(n,u.y-t.seatR),r=Math.max(r,u.x+t.seatR),l=Math.max(l,u.y+t.seatR)}let c=f=>{[f.x,f.y,f.width,f.height].every(Number.isFinite)&&(s=Math.min(s,f.x),n=Math.min(n,f.y),r=Math.max(r,f.x+f.width),l=Math.max(l,f.y+f.height))},d=f=>{let g={x:f.x+f.width/2,y:f.y+f.height/2};return i.some(u=>ee(g,u.outline,u.holes))};for(let{node:f,backdrop:g}of t.freeTextById.values()){let u=f.getClientRect({relativeTo:t.bgLayer,skipShadow:!0});d(u)&&(c(u),g&&c(g.getClientRect({relativeTo:t.bgLayer,skipShadow:!0})))}for(let{node:f}of t.iconNodeById.values()){let g=f.getClientRect({relativeTo:t.bgLayer,skipShadow:!0});d(g)&&c(g)}let h=new tt;for(let{node:f}of t.freeTextById.values()){let g=f.getClientRect({relativeTo:t.bgLayer,skipShadow:!0,skipStroke:!0});h.insert({x:g.x-Q,y:g.y-Q,width:g.width+Q*2,height:g.height+Q*2})}for(let f of t.rowLabelPlan){let g=(f.focusKeys??[]).some(b=>b===e||i.some(v=>b===v.id||b===v.logicalId)),u=new ld({text:f.text,fontSize:f.fontSize,fontStyle:"700",fontFamily:t.labelFont(),rotation:f.rotation,listening:!1});u.offsetX(u.width()/2),u.offsetY(u.height()/2);let y=t.resolveAutomaticRowLabelPosition(u,f,h),S=t.rowLabelBox(u,y);g&&c(S),h.insert(S),u.destroy()}let p=Math.max(r-s,l-n),m=Math.max(t.seatR*2,Math.min(24,p*.025));return{x:s-m,y:n-m,width:Math.max(1,r-s+m*2),height:Math.max(1,l-n+m*2)}}import{Rect as cd}from"konva/lib/shapes/Rect";import{Text as lr}from"konva/lib/shapes/Text";var ro="\0";function dd(t){let i=[...N("map.fromPrice",{price:ro}).toLocaleLowerCase()],o=i.findIndex(s=>s!==ro&&s.toLocaleUpperCase()!==s.toLocaleLowerCase());return o>=0&&(i[o]=i[o].toLocaleUpperCase()),i.join("").split(ro).join(t)}function cr(t,e){if(!e.zones?.length||!t.sections.length)return;let i=xn(t.canvasBackground),o=new Map;for(let s of t.sections)s.zone&&(o.get(s.zone)??o.set(s.zone,[]).get(s.zone)).push(s);for(let s of e.zones){let n=o.get(s.id);if(!n||!n.length)continue;let r=n[0];for(let u of n)u.centroid.y<r.centroid.y&&(r=u);let l=r.centroid.x,a=r.centroid.y,c=1/0,d=-1/0;for(let u of n)for(let y of u.outline)y.x<c&&(c=y.x),y.x>d&&(d=y.x);let h=isFinite(c)&&d>c?d-c:0,p=1/0;for(let u of n)for(let y of u.memberIds){let S=t.seatById.get(y),b=S&&t.catPrice.get(S.categoryKey);typeof b=="number"&&b<p&&(p=b)}let m=new cd({x:l,y:a,width:1,height:1,offsetX:.5,offsetY:.5,cornerRadius:1,fill:i.plate,stroke:F(s.color??r.outlineTint,rn),strokeWidth:1,opacity:0,listening:!1,perfectDrawEnabled:!1});t.bgLayer.add(m);let f=new lr({x:l,y:a,text:s.label,fontSize:Qt,fontStyle:Qs,letterSpacing:0,fontFamily:t.labelFont(),fill:i.ink,opacity:0,listening:!1,perfectDrawEnabled:!1});f.offsetX(f.width()/2),f.offsetY(f.height()/2),t.bgLayer.add(f);let g=null;isFinite(p)&&(g=new lr({x:l,y:a,text:dd(bt(p,t.currency)),fontSize:Jt,fontStyle:Js,fontFamily:t.labelFont(),fill:i.subInk,opacity:0,listening:!1,perfectDrawEnabled:!1}),g.offsetX(g.width()/2),t.bgLayer.add(g)),t.zones.push({id:s.id,anchor:{x:l,y:a},back:m,background:i.plate,name:s.label,spanWorld:h,label:f,sub:g})}}import{Circle as gd}from"konva/lib/shapes/Circle";import{Line as bd}from"konva/lib/shapes/Line";import{Rect as Sd}from"konva/lib/shapes/Rect";import{Text as vd}from"konva/lib/shapes/Text";function Ce(t,e){return e.length===0?!!t.accessible:!!t.accessibility?.some(i=>e.includes(i))}function Ae(t,e){return Ce(t,e)?"match":t.accessibility?.includes("companion")?"companion":"other"}var dr=.35,hr=.7,it="#0b1220",vt="#ffffff",ur="#0b1220",pr="#232c40",fr="#8b93a7";function ao(t,e,i="normal"){let o=t?"bold":i;return e?`italic ${o}`.trim():o}var lo="#f7f8fb";import{Shape as ud}from"konva/lib/Shape";import{Circle as pd}from"konva/lib/shapes/Circle";import{Rect as fd}from"konva/lib/shapes/Rect";var hd={M:2,L:2,Q:4,C:6,Z:0},co=new Map;function ho(t){let e=co.get(t);if(e)return e;let i=Kt(t);if(!i)return co.set(t,[]),[];let o=i.match(/[MLQCZ]|-?(?:\d+(?:\.\d+)?|\.\d+)/g)??[],s=[],n=0;for(;n<o.length;){let r=o[n++],l=hd[r];if(l===void 0||n+l>o.length)throw new Error(`Invalid path data for seat glyph "${t}".`);let a=o.slice(n,n+l).map(Number);if(a.some(c=>!Number.isFinite(c)))throw new Error(`Invalid coordinate in seat glyph "${t}".`);n+=l,r==="M"||r==="L"?s.push({command:r,points:a}):r==="Q"?s.push({command:r,points:a}):r==="C"?s.push({command:r,points:a}):s.push({command:"Z",points:[]})}return co.set(t,s),s}function mr(t,e,i,o=0,s=0){let n=ho(e),r=gs(e).bounds;if(!n.length||!r||!(i>0))return!1;let l=bs(r,i);t.save(),t.translate(o,s),t.scale(l.scale,l.scale),t.translate(-l.centreX,-l.centreY);for(let a of n)a.command==="M"?t.moveTo(a.points[0],a.points[1]):a.command==="L"?t.lineTo(a.points[0],a.points[1]):a.command==="Q"?t.quadraticCurveTo(a.points[0],a.points[1],a.points[2],a.points[3]):a.command==="C"?t.bezierCurveTo(a.points[0],a.points[1],a.points[2],a.points[3],a.points[4],a.points[5]):t.closePath();return t.restore(),!0}function yr(t,e){t.beginPath(),t.arc(0,0,e,0,Math.PI*2,!1),t.closePath()}var wt=class extends ud{_sceneFunc(e){let i=this.attrs.seatRadius||1,o=this.attrs.seatGlyph,s=ho(o),n=this.attrs.seatGlyphDetail,r;if(n===void 0){let l=this.getAbsoluteScale(),a=Math.max(Math.abs(l.x),Math.abs(l.y)),c=Number.isFinite(a)&&a>0?a:1;r=i*2*c>=16}else r=n;if(!s.length||!r){yr(e,i),e.fillStrokeShape(this);return}e.beginPath(),mr(e,o,i),e.fillStrokeShape(this)}_hitFunc(e){yr(e,this.attrs.seatRadius||1),e.fillStrokeShape(this)}getSelfRect(){let e=this.attrs.seatRadius||1;return{x:-e,y:-e,width:e*2,height:e*2}}};function md(t,e){return t==="circle"||!Kt(t)?null:new wt({x:e.x,y:e.y,seatRadius:e.radius,seatGlyph:t,...e.detail===void 0?{}:{seatGlyphDetail:e.detail},...e.fill?{fill:e.fill}:{},perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0})}function gr(t){let{x:e,y:i,radius:o}=t;return t.wheelchairBay?new fd({x:e,y:i,width:o*2,height:o*2,offsetX:o,offsetY:o,cornerRadius:2,...t.fill?{fill:t.fill}:{},perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}):md(t.glyph,{x:e,y:i,radius:o,detail:t.detail,fill:t.fill})??new pd({x:e,y:i,radius:o,...t.fill?{fill:t.fill}:{},perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0})}function yd(t,e){return t*2*e>=16}function br(t,e,i,o){let s=yd(e,i);if(s===o||!t.length)return s;for(let n of t)n.setAttr("seatGlyphDetail",s);return s}function Sr(t){let e=[...t.seats].sort((i,o)=>(t.perspectiveSeatDepth.get(o.id)??0)-(t.perspectiveSeatDepth.get(i.id)??0));for(let i of e){if(i.kind==="booth"){wd(t,i);continue}let o=t.seatContainer(i.id),s=gr({x:i.x,y:i.y,radius:t.seatR,detail:t.seatGlyphDetail,glyph:Ss(i.glyph,t.catByKey.get(i.categoryKey)),wheelchairBay:i.wheelchairSpaceType==="no-seat"});if(s instanceof wt&&t.glyphMarkers.push(s),s.setAttr("seatId",i.id),t.circleById.set(i.id,s),t.paintSeat(s,i.id),o.add(s),i.accessible){if(i.wheelchairSpaceType!=="no-seat"){let n=new gd({x:i.x,y:i.y,radius:t.seatR+1.5,stroke:Et(i.accessibility),strokeWidth:2.5,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});t.accessRingById.set(i.id,n),o.add(n)}if(i.accessibility?.includes("wheelchair")&&Wt(i.accessibility)){let n=t.buildAccessGlyph(i,typeof s.fill()=="string"?s.fill():"");t.accessGlyphById.set(i.id,n),o.add(n)}}}}function wd(t,e){let i=t.seatContainer(e.id),o=t.boothDims.get(e.rowId)??{width:40,height:30,rotation:0},s=e.x,n=e.y,r;o.points&&o.points.length>=3?(r=new bd({x:e.x,y:e.y,points:o.points.flatMap(a=>[a.x,a.y]),closed:!0,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}),s=e.x+o.points.reduce((a,c)=>a+c.x,0)/o.points.length,n=e.y+o.points.reduce((a,c)=>a+c.y,0)/o.points.length):r=new Sd({x:e.x,y:e.y,width:o.width,height:o.height,offsetX:o.width/2,offsetY:o.height/2,rotation:o.rotation,cornerRadius:4,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}),r.setAttr("seatId",e.id),t.circleById.set(e.id,r),i.add(r);let l=new vd({x:s,y:n,text:e.displayLabel??e.label,fontSize:Be,fontStyle:"600",fontFamily:t.labelFont(),fill:t.theme.seatLabelColor??it,listening:!1,perfectDrawEnabled:!1});l.offsetX(l.width()/2),l.offsetY(l.height()/2),l.visible(!1),t.setHasBoothText(),t.boothLabelById.set(e.id,l),i.add(l),t.paintSeat(r,e.id)}function vr(t,e,i,o){let s=null,n=1/0,r=t.stage.scaleX()||1;for(let l of t.seats){if(!o?.includeUnavailable&&!t.selection.has(l.id)&&!t.isSelectable(l.id))continue;let a=t.worldToScreen(l),c=t.viewMode==="perspective"?t.perspectiveSeatScale.get(l.id)??1:1,d=t.seatR*r*c+i,h=Math.hypot(a.x-e.x,a.y-e.y);h<=d&&h<n&&(n=h,s=l.id)}return s}function wr(t){if(!t.objectFloor.size)return null;let e=t.stage.getPointerPosition();if(!e)return null;let i=t.screenToWorld(e),o=null,s=1/0;for(let n of t.seats){let r=t.renderedSeatPoint(n),l=r.x-i.x,a=r.y-i.y,c=l*l+a*a;c<s&&(s=c,o=n.rowId)}return o?t.objectFloor.get(o)??null:null}import{Circle as Hd}from"konva/lib/shapes/Circle";import{Group as Vr}from"konva/lib/Group";import{Rect as Wd}from"konva/lib/shapes/Rect";import{Text as Vd}from"konva/lib/shapes/Text";var xe=1.12;function ot(t,e,i,o){if(e.width<=0||e.height<=0)return t.scaleX();let s=o??{x:0,y:0,width:t.width(),height:t.height()},n=Math.min(s.width/(e.width*xe),s.height/(e.height*xe));return Y(n,i.min,i.max)}var kt=.55;function fi(t,e){return e==null?t.max:Math.max(t.min,Math.min(t.max,e))}function uo(t){let{stage:e,box:i,bounds:o,viewport:s,centreScreen:n}=t,r=t.ratio??gt,l=e.scaleX(),a=ot(e,i,o,s)/Math.max(l,1e-4);if(a>=r||a<=1/r)return!1;let c=n.x-(s.x+s.width/2),d=n.y-(s.y+s.height/2);return Math.hypot(c,d)<=Math.min(s.width,s.height)*.02}function kr(t,e,i,o){let s=Y(e,o.min,o.max),n=t.scaleX();if(s===n)return!1;let r=(i.x-t.x())/n,l=(i.y-t.y())/n;return t.scale({x:s,y:s}),t.position({x:i.x-r*s,y:i.y-l*s}),!0}function Lr(t,e,i,o,s,n){let r=s??{x:0,y:0,width:t.width(),height:t.height()},l=Math.min(r.width/(e.width*xe),r.height/(e.height*xe)),a=o??i.min,c=Y(Math.max(l,a),i.min,Math.max(a,fi(i,n)));t.scale({x:c,y:c}),t.position({x:r.x+r.width/2-(e.x+e.width/2)*c,y:r.y+r.height/2-(e.y+e.height/2)*c})}function Cr(t,e){return t===null||e===null?t===e:t.size===e.size&&[...t].every(i=>e.has(i))}function po(t,e){let i=null;for(let o of t){let s=e.get(o)?.logicalId;if(!s||i!=null&&i!==s)return null;i=s}return i}function xr(t,e){if(!e?.size)return!1;for(let i of t)if(e.has(i))return!1;return!0}var kd=11;function Ld(t){let e=Re(kd,t),i=jt(t),o=[];for(let s=Math.round(e);s>=i;s-=1)o.push(s);return o.length?o:[i]}var Cd=4,xd=2;function Td(t){let e=t.trim();if(!e)return null;let i=e.match(/\d+/g);if(i?.length){let o=i[0];for(let s of i)s.length>=o.length&&(o=s);return o}return e.length<=4?e:null}function Tr(t,e,i){let o=t.numberLabel,s=Td(t.label);if(!s)return o.visible(!1),!1;o.text()!==s&&o.text(s),o.visible(!0),o.rotation(0);let n=Cd/e;for(let r of Ld(i)){o.fontSize(r/e),o.offsetX(o.width()/2),o.offsetY(o.height()/2);for(let l of[t.centroid,...t.labelAnchors])if(o.position(l),et(l,o.width()+n,o.height()+n,0,t.outline,t.holes))return!0}return o.position(t.centroid),!1}function Id(t,e,i){let o=i({x:t.x(),y:t.y()}),s=t.width()*e,n=t.height()*e;return{x:o.x-s/2,y:o.y-n/2,w:s,h:n}}function Pd(t,e,i){return t.x<e.x+e.w+i&&e.x<t.x+t.w+i&&t.y<e.y+e.h+i&&e.y<t.y+t.h+i}function Ir(t,e,i,o){let s=[];for(let n of e){if(n.label.opacity()<=.05)continue;let r=n.back.getAbsolutePosition(),l=n.back.width()*i,a=n.back.height()*i;s.push({x:r.x-l/2,y:r.y-a/2,w:l,h:a})}if(s.length)for(let n of t){if(n.numberLabel.opacity()<=.05)continue;let r=Id(n.numberLabel,i,o);for(let l of s)if(Pd(r,l,xd)){n.numberLabel.opacity(0);break}}}function Pr(t){let e=new Map;for(let i of t){if(i.numberLabel.opacity()<=.05)continue;let o=e.get(i.logicalId);o?o.push(i):e.set(i.logicalId,[i])}for(let i of e.values()){if(i.length<2)continue;let o=i[0];for(let s of i)s.labelArea>o.labelArea&&(o=s);for(let s of i)s!==o&&s.numberLabel.opacity(0)}}function Er(t,e){let i=t.sectionHeat.get(e.id)??t.sectionHeat.get(e.logicalId)??(e.zone?t.sectionHeat.get(e.zone):void 0);if(i==null||i<=0){e.outlinePoly.stroke(F(e.outlineTint,.5)),e.outlinePoly.fill(F(e.outlineTint,.08)),e.outlinePoly.strokeWidth(1.75),e.outlinePoly.shadowOpacity(0);return}let o=j("#f4b740","#ef4444",i);e.outlinePoly.stroke(F(o,.72+i*.25)),e.outlinePoly.fill(F(o,.08+i*.13)),e.outlinePoly.strokeWidth(2+i*3.5),e.outlinePoly.shadowColor(o),e.outlinePoly.shadowBlur(4+i*12),e.outlinePoly.shadowOpacity(.25+i*.45)}function mo(t,e){return t.closedSections.has(e.id)||t.closedSections.has(e.logicalId)||e.zone!=null&&t.closedSections.has(e.zone)}function _r(t,e,i,o){if(!e)return 0;let s=0;for(let n of t){if(i(n)!=="free")continue;let r=o(n);r&&Ce(r,e)&&(s+=1)}return s}function Fr(t,e){return mo(t,e)?"closed":e.total<=0?"normal":e.free<=0?"sold-out":e.free<=e.total*fn?"nearly-gone":"normal"}function Br(t,e){let i=Fr(t,e),o=t.accessFilterActive&&t.sectionAccessibleFree(e)<=0,s=Ln(t.canvasBackground,i,o?null:e.shellCategoryColor);e.shellFill=s.fill,e.shellStroke=s.stroke,e.blockPoly.fill(s.fill),e.blockPoly.stroke(s.stroke),e.subLabel.text(i==="sold-out"?N("map.soldOut"):N("map.seatsLeft",{count:e.free})),e.subLabel.offsetX(e.subLabel.width()/2)}function yo(t,e){return j(e,O(t)?"#ffffff":"#000000",un)}function go(t,e,i=0){let o=hn-i;return!e||t.length<=o?t:`${t.slice(0,Math.max(1,o-1)).trimEnd()}\u2026`}function Md(t,e){return Or(t,e)!=null}function Or(t,e){if(!t.accessFilterActive)return null;let i=t.sectionAccessibleFree(e);return i>0?`\u267F ${i}`:null}function Dr(t,e,i){let o=go(t.label,e,i?i.length+1:0);return i?[`${i} ${o}`,i]:[o]}function Rd(t,e,i){let o=Dr(t,e,i),s=(t.nameLabelBadgeOnly?o[1]:o[0])??o[0];t.nameLabel.text()!==s&&t.nameLabel.text(s),t.nameLabel.fontStyle(e?ei:Me),t.nameLabel.letterSpacing(e?t.nameLabel.fontSize()*He:0)}function Ad(t,e,i){let o=t.stageWidth<de,s=e.nameLabel.opacity();if(!o||s<=.05||!e.nameLabel.visible()){e.namePlate.opacity(0),e.subLabel.opacity(0);return}let n=e.nameLabel.rotation(),r=n===0&&Fr(t,e)==="sold-out",l=yt/i,a=ii/i,c=r?2/i:0,d={x:e.nameLabel.x(),y:e.nameLabel.y()},h=e.nameLabel.height(),p=0;r?(Ee(e.subLabel,pe/i,d.y),p=e.subLabel.height(),e.subLabel.rotation(0),e.subLabel.x(d.x),e.subLabel.y(d.y+h/2+c+p/2),e.subLabel.opacity(s)):e.subLabel.opacity(0);let m=r?c+p:0,f=Math.max(e.nameLabel.width(),r?e.subLabel.width():0)+l*2,g=h+m+a*2;e.namePlate.position({x:d.x,y:d.y+m/2}),e.namePlate.rotation(n),e.namePlate.size({width:f,height:g}),e.namePlate.offset({x:f/2,y:g/2}),e.namePlate.cornerRadius(pn/i),e.namePlate.opacity(s*ti)}function Nr(t,e){let i,o;t.reducedMotion?(i=e<=ve?1:0,o=e<=qe?1:0):(i=Y((we-e)/(we-ve),0,1),o=Y((ve-e)/(ve-qe),0,1)),(t.floorOverview||t.focusedSectionId)&&(i=0,o=0);let s=!t.floorOverview&&!t.focusedSectionId&&e<ce;s&&(i=1),t.zones.length||(o=0);let n=t.viewMode==="perspective"&&t.glideInProgress&&t.seatCount>2500;t.seatLayer.opacity(s||n?0:1-i);let r=t.stageScaleX,l=!t.glideInProgress&&(t.lodScale===0||Math.abs(e-t.lodScale)/(t.lodScale||1)>.08);l&&t.setLodScale(e);let a=t.focusedSectionId,c=t.stageWidth<de,d=te(t.canvasBackground),h=Y((i-.2)/.8,0,1),p=new Set;for(let f of t.sections){let g=t.hasFocusDimOverlay?1:a&&f.id!==a&&f.logicalId!==a&&f.zone!==a?Le:1,u=Or(t,f);u&&f.zone&&p.add(f.zone);let y=Math.min(g,xr(f.memberCategoryKeys,t.categoryFilter)?Le:1,t.accessFilterActive&&!u?Le:1);f.outlinePoly.opacity(s?0:(1-i)*y),f.blockPoly.opacity(qs*i*y);let S=t.sectionIsOwned(f);f.blockPoly.stroke(S?t.selectionColor:f.shellStroke||d.sectionStroke),f.blockPoly.strokeWidth((S?Zs:Ge)/Math.max(r,1e-4));let b=f.blockPoly.fill(),v=typeof b=="string"?b:f.baseFill,k=c?yo(t.canvasBackground,v):null;k&&f.namePlate.fill(k);let w=ue(k??v,f.explicitInk,f.preferredInk);f.nameLabel.fill(w),f.subLabel.fill(w),Rd(f,c,u),l&&h>.01&&Fd(t,f,r,Dr(f,c,u));let C=u?1:1-o;f.nameLabel.opacity(f.nameLabelFits?h*C*y:0),f.subLabel.opacity(0),l&&(f.numberLabelFits=o>.01&&Tr(f,r,t.stageWidth)),f.numberLabelFits&&f.numberLabel.fill(ue(v,f.explicitInk,f.preferredInk)),f.numberLabel.opacity(f.numberLabelFits?o*y:0)}let m=o*(1-t.isoT);for(let f of t.zones){let g=t.accessFilterActive&&!p.has(f.id)?Le:1,u=f.label.visible()?m*g:0;f.back.opacity(u),f.label.opacity(u),f.sub&&f.sub.opacity(Mr(t,f)?0:u),l&&Bd(t,f,r)}if(!t.glideInProgress&&(h>.01||m>.01)){_d(t,r),Ed(t.sections);for(let f of t.zones){let g=f.label.opacity();f.back.opacity(g),f.sub&&f.sub.opacity(Mr(t,f)?0:g)}}m>.01&&(Ir(t.sections,t.zones,r,t.worldToScreen),Pr(t.sections));for(let f of t.sections)Ad(t,f,r);t.bgLayer.batchDraw()}function Mr(t,e){return t.stageWidth<de||!e.sub||!e.sub.visible()}function Ed(t){let e=new Map;for(let i of t)(e.get(i.logicalId)??e.set(i.logicalId,[]).get(i.logicalId)).push(i);for(let i of e.values()){if(i.length<2)continue;let o=i.filter(s=>s.nameLabel.opacity()>.05).sort((s,n)=>{let r=z(s.outline),l=z(n.outline);return l.width*l.height-r.width*r.height});for(let s of o.slice(1))s.nameLabel.opacity(0)}}function _d(t,e){let o=[],s=a=>{let c=t.worldToScreen({x:a.x(),y:a.y()}),d=z(Je({x:0,y:0},a.width()*e,a.height()*e,a.rotation()));return{x:c.x-d.width/2,y:c.y-d.height/2,w:d.width,h:d.height}};for(let a of t.zones){if(a.label.opacity()<=.05)continue;let c=a.back.getAbsolutePosition(),d=a.back.width()*e,h=a.back.height()*e;o.push({node:a.label,tier:0,section:!1,zone:a,box:{x:c.x-d/2,y:c.y-h/2,w:d,h}})}for(let a of t.sections)if(a.nameLabel.opacity()>.05){let c=Md(t,a)?-1:1;o.push({node:a.nameLabel,tier:c,section:!0,area:a.labelArea,box:s(a.nameLabel)})}let n=t.landmarks.map(a=>{let c=t.worldToScreen({x:a.x,y:a.y}),d=t.worldToScreen({x:a.x+a.width,y:a.y+a.height});return{x:Math.min(c.x,d.x),y:Math.min(c.y,d.y),w:Math.abs(d.x-c.x),h:Math.abs(d.y-c.y)}});if(o.length<2&&!n.length)return;o.sort((a,c)=>a.tier-c.tier||(c.area??0)-(a.area??0)||a.box.y-c.box.y||a.box.x-c.box.x);let r=[...n],l=a=>r.some(c=>a.x<c.x+c.w+4&&c.x<a.x+a.w+4&&a.y<c.y+c.h+4&&c.y<a.y+a.h+4);for(let a of o){if(!l(a.box)){r.push(a.box);continue}let c=!1;if(a.zone)for(let d of cn){if(d===0)continue;let h={...a.box,y:a.box.y+d};if(!l(h)){fo(a.zone,0,d/e),r.push(h),c=!0;break}}if(a.section){let d=a.node.fontSize(),h=a.node.y(),p=a.node.letterSpacing()>0;for(let m of Ki){let f=d*m;if(f*e<pe)break;Ee(a.node,f,h),p&&(a.node.letterSpacing(a.node.fontSize()*He),a.node.offsetX(a.node.width()/2));let g=s(a.node);if(!l(g)){r.push(g),c=!0;break}}c||(Ee(a.node,d,h),p&&(a.node.letterSpacing(a.node.fontSize()*He),a.node.offsetX(a.node.width()/2)))}c||a.node.opacity(0)}}function Ee(t,e,i){t.fontSize(Math.max(1,e)),t.offsetX(t.width()/2),t.offsetY(t.height()/2),t.y(i)}function Fd(t,e,i,o){e.subLabelFits=!1;let s=t.stageWidth<de,n=s?yt*2:0,r=Re(Ze*e.labelScale,t.stageWidth),l=pe;for(let[a,c]of o.entries()){e.nameLabel.text(c);for(let d=r;d>=l;d-=1)for(let h of[0,-90]){e.nameLabel.rotation(h),Ee(e.nameLabel,d/i,e.nameLabel.y()),s&&(e.nameLabel.letterSpacing(e.nameLabel.fontSize()*He),e.nameLabel.offsetX(e.nameLabel.width()/2));for(let p of e.labelAnchors){e.nameLabel.position(p);let m=(8+n)/i;if(et(p,e.nameLabel.width()+m,e.nameLabel.height()+m,h,e.outline,e.holes)){e.nameLabelFits=!0,e.nameLabelBadgeOnly=a>0;return}}}}e.nameLabel.text(o[0]),e.nameLabelBadgeOnly=!1,e.nameLabel.position(e.centroid),e.nameLabel.rotation(0),e.nameLabelFits=!1}function Rr(t,e,i){let o=s=>(t.text(s),t.width());if(!(o(e)<=i)){for(let s=e.length-1;s>=1;s-=1)if(o(`${e.slice(0,s).trimEnd()}\u2026`)<=i)return;o("\u2026")}}function Bd(t,e,i){let o=Xi(t.stageWidth),s=t.stageWidth<de,n=e.sub!=null&&!s,r=(s?en:on)*o/i,l=(s?tn:sn)*o/i,a=Re(Qt,t.stageWidth);e.label.text(e.name),Ee(e.label,a/i,e.anchor.y),n&&(Ee(e.sub,Re(Jt,t.stageWidth)/i,e.anchor.y),e.sub.letterSpacing(e.sub.fontSize()*js),e.sub.offsetX(e.sub.width()/2));let c=s?t.stageWidth*an/i-r*2:1/0,d=!s&&e.spanWorld>0?e.spanWorld*ln-r*2:1/0,h=Math.min(c,d),p=()=>Math.max(e.label.width(),n?e.sub.width():0);if(n&&p()>h&&(n=!1),p()>h)for(let C of Ki){let I=Math.max(pe,a*C);if(I>=e.label.fontSize()*i-.001||(Ee(e.label,I/i,e.anchor.y),e.label.width()<=h))break}if(e.label.width()>h&&(Rr(e.label,e.name,Math.max(h,1)),Od(e.label.text())<Dd(e.name)&&Rr(e.label,e.name,Math.max(c,1)),Ee(e.label,e.label.fontSize(),e.anchor.y)),e.sub&&e.sub.visible(n),c<=0||e.label.width()>c+.001){Ar(e);return}e.label.visible(!0),e.back.visible(!0);let m=n?3*o/i:0;e.label.x(e.anchor.x),n?e.sub.x(e.anchor.x):e.sub&&e.sub.opacity(0);let f=Math.max(e.label.width(),n?e.sub.width():0)+r*2,g=e.label.height()+(n?m+e.sub.height():0)+l*2;e.label.y(e.anchor.y-(n?(m+e.sub.height())/2:0)),n&&e.sub.y(e.anchor.y+(e.label.height()+m)/2),e.back.position(e.anchor),e.back.size({width:f,height:g}),e.back.offset({x:f/2,y:g/2}),e.back.cornerRadius(nn*o/i),e.back.strokeWidth(1/i);let u=e.back.getAbsolutePosition(),y=6,S=f*i;if(S>t.stageWidth-y*2){Ar(e);return}let b=S/2,k=(Y(u.x,y+b,t.stageWidth-y-b)-u.x)/i;Math.abs(k)>.001&&fo(e,k,0);let w=62+g*i/2;u.y<w&&fo(e,0,(w-u.y)/i)}function Od(t){return t.endsWith("\u2026")?t.slice(0,-1).trimEnd().length:t.length}function Dd(t){return Math.min(t.length,Math.max(6,Math.ceil(t.length/2)))}function Ar(t){t.label.visible(!1),t.label.opacity(0),t.back.visible(!1),t.back.opacity(0),t.sub&&(t.sub.visible(!1),t.sub.opacity(0))}function fo(t,e,i){t.label.x(t.label.x()+e),t.label.y(t.label.y()+i),t.sub&&(t.sub.x(t.sub.x()+e),t.sub.y(t.sub.y()+i)),t.back.x(t.back.x()+e),t.back.y(t.back.y()+i)}function Nd(t,e){if(!t.length)return null;let i=1/0,o=1/0,s=-1/0,n=-1/0;for(let r of t)!Number.isFinite(r.x)||!Number.isFinite(r.y)||(r.x<i&&(i=r.x),r.y<o&&(o=r.y),r.x>s&&(s=r.x),r.y>n&&(n=r.y));return!Number.isFinite(i)||!Number.isFinite(o)?null:{x:i-e,y:o-e,width:s-i+e*2,height:n-o+e*2}}function vo(t,e=0){let i=new Map;for(let s of t){let n=`${s.rowId}|${s.categoryKey}`,r=i.get(n);r||(r={categoryKey:s.categoryKey,points:[]},i.set(n,r)),r.points.push({x:s.x,y:s.y})}let o=[];for(let[s,n]of i){let r=Nd(n.points,e);r&&o.push({id:s,categoryKey:n.categoryKey,seatCount:n.points.length,bounds:r})}return o}function bo(t,e){let i=Math.max(0,Math.max(t.x-(e.x+e.width),e.x-(t.x+t.width))),o=Math.max(0,Math.max(t.y-(e.y+e.height),e.y-(t.y+t.height)));return Math.hypot(i,o)}function So(t,e){let i=Math.min(t.x,e.x),o=Math.min(t.y,e.y);return{x:i,y:o,width:Math.max(t.x+t.width,e.x+e.width)-i,height:Math.max(t.y+t.height,e.y+e.height)-o}}function Gr(t){if(!t.length)return 0;let e=[...t].sort((o,s)=>o-s),i=Math.floor(e.length/2);return e.length%2?e[i]:(e[i-1]+e[i])/2}function Gd(t){if(!t.length)return 0;let e=Gr(t.map(o=>Math.min(o.bounds.width,o.bounds.height)));if(t.length<2)return e;let i=[];for(let o=0;o<t.length;o+=1){let s=1/0;for(let n=0;n<t.length;n+=1)o!==n&&(s=Math.min(s,bo(t[o].bounds,t[n].bounds)));Number.isFinite(s)&&i.push(s)}return Gr(i)+e}function wo(t,e){if(!t.length)return[];let i=Gd(t)*(e?.gapRows??2),o=e?.minRows??2,s=e?.minSeats??12,n=new Map;for(let l of t){let a=n.get(l.categoryKey);a?a.push(l):n.set(l.categoryKey,[l])}let r=[];for(let[l,a]of n){let c=[...a].sort((p,m)=>p.bounds.y-m.bounds.y||p.bounds.x-m.bounds.x||p.id.localeCompare(m.id)),d=[];for(let p of c){let m=d.find(f=>bo(f.bounds,p.bounds)<=i);m?(m.bounds=So(m.bounds,p.bounds),m.rowIds.push(p.id),m.seatCount+=p.seatCount):d.push({categoryKey:l,bounds:{...p.bounds},rowIds:[p.id],seatCount:p.seatCount})}let h=!0;for(;h&&d.length>1;){h=!1;e:for(let p=0;p<d.length;p+=1)for(let m=p+1;m<d.length;m+=1)if(!(bo(d[p].bounds,d[m].bounds)>i)){d[p].bounds=So(d[p].bounds,d[m].bounds),d[p].rowIds.push(...d[m].rowIds),d[p].seatCount+=d[m].seatCount,d.splice(m,1),h=!0;break e}}for(let p of d)p.rowIds.length<o&&p.seatCount<s||(p.rowIds.sort(),r.push(p))}return r.sort((l,a)=>l.bounds.y-a.bounds.y||l.bounds.x-a.bounds.x||l.categoryKey.localeCompare(a.categoryKey)),r}function Hr(t){let e=null;for(let i of t)e=e?So(e,i.bounds):{...i.bounds};return e}function Wr(t,e){let i=null,o=1/0;for(let s of t){let{x:n,y:r,width:l,height:a}=s.bounds;if(e.x<n||e.x>n+l||e.y<r||e.y>r+a)continue;let c=l*a;c<o&&(i=s,o=c)}return i}function Xr(t){return t*.3}function zr(t){return Xr(t)*2+t*.42}var mi=class{constructor(e){this.host=e;this.group=null;this.labels=[];this.revealed=!1;this.visible=!1;this.fadeRaf=0;this.lastFontKey=""}get all(){return this.labels.map(e=>e.cluster)}clear(){this.fadeRaf&&(cancelAnimationFrame(this.fadeRaf),this.fadeRaf=0),this.group?.destroy(),this.group=null,this.labels=[],this.visible=!1,this.revealed=!1,this.lastFontKey=""}destroy(){this.clear()}rebuild(){if(this.clear(),this.syncCursor(!1),this.host.hasSections()||this.host.exportMode)return;let e=wo(vo(this.host.seats(),this.host.seatR()));if(!e.length)return;let i=this.host.canvasBackground(),o=te(i),s=yo(i,i),n=re(s,o.sectionInk),r=new Vr({listening:!1,opacity:0,visible:!1});for(let l of e){let a=this.host.categoryLabel(l.categoryKey);if(!a)continue;let c={x:l.bounds.x+l.bounds.width/2,y:l.bounds.y+l.bounds.height/2},d=new Vr({listening:!1}),h=new Wd({...c,width:0,height:0,fill:s,stroke:o.sectionStroke,strokeWidth:Ge,opacity:ti,listening:!1,perfectDrawEnabled:!1}),p=new Hd({...c,radius:0,fill:this.host.categoryColor(l.categoryKey),listening:!1,perfectDrawEnabled:!1}),m=this.host.categoryPriceLabel(l.categoryKey),f=new Vd({...c,text:a,fontSize:Ze,fontStyle:Me,fontFamily:this.host.labelFont(),fill:n,listening:!1,perfectDrawEnabled:!1});d.add(h),d.add(p),d.add(f),r.add(d),this.labels.push({cluster:l,pill:d,plate:h,swatch:p,text:f,label:a,price:m})}if(!this.labels.length){r.destroy();return}this.group=r,this.host.labelLayer.add(r)}syncForCamera(e){if(!this.group||!this.labels.length)return!1;let i=this.host.seatR()*2,o=this.host.exportMode||this.host.viewMode()!=="flat"||this.host.seatsPickable()&&e<ke;return this.revealed=o||Ns(Vi(i,e),Vi(i,ke),this.revealed),!this.revealed&&this.size(this.host.stage.scaleX(),this.host.stage.width())&&this.host.labelLayer.batchDraw(),this.applyFilterDim(),this.applyVisibility(!this.revealed),!0}focusCluster(e){if(this.host.viewMode()!=="flat"||this.host.hasSections()||this.host.seatsPickable())return!1;let i=this.clusterAt(this.host.screenToWorld(e));if(!i)return!1;let o=this.host.seatR()*2,s={x:i.bounds.x-o,y:i.bounds.y-o,width:i.bounds.width+o*2,height:i.bounds.height+o*2},n=this.host.stage;if(ot(n,s,this.host.zoomBounds(),this.host.framingViewport())<=n.scaleX()*gt)return!1;let l=this.diveTarget(s);return l?(this.host.focusRegion(l,{durationMs:this.host.cameraGlideMs()}),!0):!1}diveTarget(e,i){let o=this.host.stage,s=this.host.framingViewport(),n=this.host.zoomBounds(),r=ot(o,e,n,s),l=Math.min(Math.max(this.host.readableScale(),this.host.pickableScale()),n.max);if(r>=l)return e;let a=s.width/(l*xe),c=s.height/(l*xe);if(!(a>0)||!(c>0))return null;let d=i??{x:e.x+e.width/2,y:e.y+e.height/2};return{x:d.x-a/2,y:d.y-c/2,width:a,height:c}}glideTowardTap(e){if(this.host.viewMode()!=="flat")return!1;let i=this.host.stage.scaleX(),o=yn(i,this.host.pickableScale());if(o==null||o<=i*gt)return!1;let s=this.host.screenToWorld(e),n=this.host.framingViewport(),r=n.width/(o*xe),l=n.height/(o*xe);return!(r>0)||!(l>0)?!1:(this.host.focusRegion({x:s.x-r/2,y:s.y-l/2,width:r,height:l}),!0)}syncCursor(e){if(this.host.exportMode)return;let i=this.host.viewMode()==="flat"&&!this.host.seatsPickable()?"zoom-in":e?"pointer":"default";for(let o of[this.host.stage.container(),this.host.stage.content])o&&o.style.cursor!==i&&(o.style.cursor=i)}clusterAt(e){let i=Wr(this.all,e);if(i)return i;if(!this.visible)return null;for(let o of this.labels){let s=o.plate.width()/2,n=o.plate.height()/2;if(Math.abs(e.x-o.text.x())<=s&&Math.abs(e.y-o.text.y())<=n)return o.cluster}return null}size(e,i){let o=Math.max(e,1e-4),s=i<de,n=`${o.toFixed(4)}|${i}`;if(n===this.lastFontKey)return!1;this.lastFontKey=n;let r=Re(Ze,i),l=yt/o,a=ii/o;for(let c of this.labels){let{text:d,plate:h,swatch:p,cluster:m}=c,f=go(c.label,s);d.text(c.price?`${f} \xB7 ${c.price}`:f),d.fontStyle(s?ei:Me);let g=r,u=0;for(;d.fontSize(Math.max(1,g/o)),d.letterSpacing(d.fontSize()*He),u=zr(d.fontSize())+d.width()+l*2,!(u<=m.bounds.width||g<=pe);)g=Math.max(pe,g-1);let y={x:m.bounds.x+m.bounds.width/2,y:m.bounds.y+m.bounds.height/2},S=d.height()+a*2,b=u-l*2,v=y.x-b/2;p.radius(Xr(d.fontSize())),p.position({x:v+p.radius(),y:y.y}),d.offsetX(0),d.offsetY(d.height()/2),d.position({x:v+zr(d.fontSize()),y:y.y}),h.size({width:u,height:S}),h.offset({x:u/2,y:S/2}),h.cornerRadius(S/2),h.strokeWidth(Ge/o),h.position(y)}return!0}applyFilterDim(){if(!this.labels.length)return;let e=this.host.categoryFilter(),i=!1;for(let o of this.labels){let s=e&&!e.has(o.cluster.categoryKey)?.22:1;o.pill.opacity()!==s&&(o.pill.opacity(s),i=!0)}i&&this.host.labelLayer.batchDraw()}boundsForSeats(e,i){if(!e.length)return null;let o=vo(e,this.host.seatR()),s=wo(o);s.length||(s=o.map(l=>({categoryKey:l.categoryKey,bounds:l.bounds,rowIds:[l.id],seatCount:l.seatCount})));let n=Hr(s);if(!n)return null;let r=s.reduce((l,a)=>a.seatCount>l.seatCount?a:l,s[0]);return{bounds:{x:n.x-i,y:n.y-i,width:n.width+i*2,height:n.height+i*2},anchor:{x:r.bounds.x+r.bounds.width/2,y:r.bounds.y+r.bounds.height/2},singleBlock:s.length===1&&e.every(l=>l.x>=n.x&&l.x<=n.x+n.width&&l.y>=n.y&&l.y<=n.y+n.height)}}applyVisibility(e){let i=this.group;if(!i||e===this.visible)return;if(this.visible=e,this.fadeRaf&&(cancelAnimationFrame(this.fadeRaf),this.fadeRaf=0),i.visible(!0),this.host.reducedMotion()){i.opacity(e?1:0),i.visible(e),this.host.labelLayer.batchDraw();return}let o=i.opacity(),s=e?1:0,n=performance.now(),r=l=>{if(this.host.destroyed()||!this.group){this.fadeRaf=0;return}let a=Math.min(1,(l-n)/90);i.opacity(o+(s-o)*a),a>=1&&i.visible(s>0),this.host.labelLayer.batchDraw(),this.fadeRaf=a<1?requestAnimationFrame(r):0};this.fadeRaf=requestAnimationFrame(r)}};import{Circle as zd}from"konva/lib/shapes/Circle";import{Line as Kd}from"konva/lib/shapes/Line";function Yr(t,e,i,o){let s=t.seatRadius(),n=new zd({x:i.x,y:i.y,radius:s,stroke:o,strokeWidth:3,opacity:.9,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),r=t.viewMode()==="perspective"?t.perspectiveSeatScale(e):1;n.scale({x:r,y:r}),t.overlayLayer.add(n);let l=performance.now(),a=620,c=d=>{if(!n.getLayer())return;let h=Math.min(1,(d-l)/a);n.radius(s*(1+h*1.8)),n.opacity(.9*(1-h)),t.overlayLayer.batchDraw(),h<1?requestAnimationFrame(c):(n.destroy(),t.overlayLayer.batchDraw())};requestAnimationFrame(c)}function Ur(t,e,i){for(let o of e){let s=t.viewMode()==="perspective"&&o.perspectiveAffine?o.outline.map(h=>t.perspectiveLocalPoint(t.projectedSectionPoint(o,h))):o.outline.map(h=>{let p=o.liftWorld>0?t.isoLiftLocal(o.liftWorld):{x:0,y:0};return{x:h.x+p.x,y:h.y+p.y}}),n=s.reduce((h,p)=>({x:h.x+p.x,y:h.y+p.y}),{x:0,y:0});n.x/=s.length,n.y/=s.length;let r=new Kd({x:n.x,y:n.y,points:s.flatMap(h=>[h.x-n.x,h.y-n.y]),closed:!0,stroke:i,strokeWidth:3,strokeScaleEnabled:!1,opacity:.92,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!0,shadowColor:i,shadowBlur:14,shadowOpacity:.7});t.overlayLayer.add(r),t.overlayLayer.batchDraw();let l=()=>{r.getLayer()&&(r.destroy(),t.overlayLayer.batchDraw())};if(t.reducedMotion()||typeof document<"u"&&document.hidden){setTimeout(l,520);continue}let a=performance.now(),c=820,d=h=>{if(t.isDestroyed()||!r.getLayer())return;let p=Math.min(1,(h-a)/c),f=1+(1-Math.pow(1-p,3))*.04;r.scale({x:f,y:f}),r.opacity(.92*(1-p)),t.overlayLayer.batchDraw(),p<1?requestAnimationFrame(d):l()};requestAnimationFrame(d)}}import{Group as $d}from"konva/lib/Group";import{Shape as qd}from"konva/lib/Shape";import{Group as Xd}from"konva/lib/Group";import{Shape as Yd}from"konva/lib/Shape";function Ud(t,e,i){let o=e.length,s={x:(e[o-1].x+e[0].x)/2,y:(e[o-1].y+e[0].y)/2};t.moveTo(s.x,s.y);for(let n=0;n<o;n+=1){let r=e[n],l=e[(n+1)%o],a=e[(n-1+o)%o],c=Math.min(Math.hypot(r.x-a.x,r.y-a.y)/2,Math.hypot(l.x-r.x,l.y-r.y)/2);t.arcTo(r.x,r.y,l.x,l.y,Math.max(0,Math.min(i,c)))}t.closePath()}function ze(t,e,i,o){let s=ht(t)>0,n=i.cornerRadius&&i.cornerRadius>0?i.cornerRadius:0;return new Yd({...i,sceneFunc(r,l){r.beginPath();let a=d=>{if(d.length){if(n>0&&d.length>=3)return Ud(r,d,n);r.moveTo(d[0].x,d[0].y);for(let h=1;h<d.length;h+=1)r.lineTo(d[h].x,d[h].y);r.closePath()}};o?(d=>{r.moveTo(d.start.x,d.start.y);let h=d.start;for(let p of d.segments)p.kind==="line"?r.lineTo(p.end.x,p.end.y):p.kind==="arc"?r.arc(p.center.x,p.center.y,p.radius,Math.atan2(h.y-p.center.y,h.x-p.center.x),Math.atan2(p.end.y-p.center.y,p.end.x-p.center.x),!p.clockwise):r.bezierCurveTo(p.control1.x,p.control1.y,p.control2.x,p.control2.y,p.end.x,p.end.y),h=p.end;r.closePath()})(o):a(t);for(let d of e??[]){let h=ht(d)>0;a(h===s?[...d].reverse():d)}r.fillStrokeShape(l)},perfectDrawEnabled:!1})}var st=class extends Xd{constructor(){super(...arguments);this.viewportCulled=!1}setViewportCulled(i){i!==this.viewportCulled&&(this.viewportCulled=i,i||super._clearSelfAndDescendantCache())}isViewportCulled(){return this.viewportCulled}drawScene(...i){return this.viewportCulled?this:super.drawScene(...i)}drawHit(...i){return this.viewportCulled?this:super.drawHit(...i)}_clearSelfAndDescendantCache(i){if(!this.viewportCulled){super._clearSelfAndDescendantCache(i);return}this._clearCache(i)}};function $r(t,e){if(!e.length)return null;let i=new $d({listening:!1});for(let o of e){let s=t.viewMode==="perspective"&&o.perspectiveAffine,n=s?o.outline.map(l=>t.perspectiveLocalPoint(t.projectedSectionPoint(o,l))):o.outline,r=s?o.holes.map(l=>l.map(a=>t.perspectiveLocalPoint(t.projectedSectionPoint(o,a)))):o.holes;i.add(ze(n,r,{fill:Sn,stroke:F("#ffffff",.1),strokeWidth:1,listening:!1},s?void 0:o.outlinePath))}return t.bgLayer.add(i),i.moveToTop(),i}function qr(t,e){let{bounds:i}=t,s=Math.max(i.width,i.height,1)*4+1e3,n=[{x:i.x-s,y:i.y-s},{x:i.x+i.width+s,y:i.y-s},{x:i.x+i.width+s,y:i.y+i.height+s},{x:i.x-s,y:i.y+i.height+s}],r=new qd({fill:t.canvasBackground,opacity:1-Le,listening:!1,perfectDrawEnabled:!1,sceneFunc:(l,a)=>{let c=d=>{if(d.length){l.moveTo(d[0].x,d[0].y);for(let h=1;h<d.length;h++)l.lineTo(d[h].x,d[h].y);l.closePath()}};l.beginPath(),c(n);for(let d of e){let h=t.viewMode==="perspective"&&d.perspectiveAffine?d.outline.map(p=>t.perspectiveLocalPoint(t.projectedSectionPoint(d,p))):d.outline.map(p=>{let m=d.liftWorld>0?t.isoLiftLocal(d.liftWorld):{x:0,y:0};return{x:p.x+m.x,y:p.y+m.y}});c(ht(h)>0?[...h].reverse():h)}l.fillStrokeShape(a)}});return t.overlayLayer.add(r),r.moveToTop(),r}function Zr(t,e){let i=null,o=1/0;for(let[s,n]of t){if(!n.getLayer())continue;let r=n.getClientRect(),l=r.x+r.width/2,a=r.y+r.height/2,c=Math.max(r.width/2,22),d=Math.max(r.height/2,22),h=Math.abs(e.x-l),p=Math.abs(e.y-a);if(h>c||p>d)continue;let m=h*h+p*p;m<o&&(o=m,i=s)}return i}import{Rect as jh}from"konva/lib/shapes/Rect";import{Path as Qh}from"konva/lib/shapes/Path";import{Text as Zd}from"konva/lib/shapes/Text";function jr(t){let e=Be,i=new Zd({fontSize:ge,fontStyle:"600",fontFamily:t.labelFont(),listening:!1}),o=t.seatR*2-3;for(let s of t.seats){if(s.kind==="booth"){e=Math.min(e,Be);continue}let n=ge*t.seatLabelScale(s);i.fontSize(n),i.text(Vt(s.displayLabel??s.label));let r=i.width()>o?Math.max(pt,n*o/i.width()):n;e=Math.min(e,r)}return i.destroy(),V/Math.max(pt,e)}var ko={top:0,right:0,bottom:0,left:0};function Qr(t){let e=i=>typeof i=="number"&&Number.isFinite(i)&&i>0?i:0;return t?{top:e(t.top),right:e(t.right),bottom:e(t.bottom),left:e(t.left)}:{...ko}}var jd=.7;function Jr(t,e,i){let{top:o,right:s,bottom:n,left:r}=i,l=(p,m,f)=>{let g=p+m,u=f*jd;if(g<=u||g<=0)return[p,m];let y=u/g;return[p*y,m*y]},[a,c]=l(r,s,t),[d,h]=l(o,n,e);return{x:a,y:d,width:Math.max(1,t-a-c),height:Math.max(1,e-d-h)}}function ea(t){return{x:t.x(),y:t.y(),scale:t.scaleX()}}function ta(t,e){return!Number.isFinite(e.x)||!Number.isFinite(e.y)||!(e.scale>0)?!1:(t.scale({x:e.scale,y:e.scale}),t.position({x:e.x,y:e.y}),!0)}function yi(t){return{x:t.x+t.width/2,y:t.y+t.height/2}}function ia(t,e){let i=e({x:t.x,y:t.y}),o=e({x:t.x+t.width,y:t.y+t.height});return{x:Math.min(i.x,o.x),y:Math.min(i.y,o.y),width:Math.abs(o.x-i.x),height:Math.abs(o.y-i.y)}}function sa(){return typeof navigator<"u"&&navigator.maxTouchPoints>0?$s:Us}function na(t){return Math.max(t*1.05,Ws,ce*1.3)}var Qd=56;function ra(t){return Qd/(2*Math.max(t,1e-4))}function nt(t,e){let i=1/0,o=-1/0,s=1/0,n=-1/0;for(let r of t)i=Math.min(i,r.x),o=Math.max(o,r.x),s=Math.min(s,r.y),n=Math.max(n,r.y);return i-=e,o+=e,s-=e,n+=e,{x:i,y:s,width:Math.max(40,o-i),height:Math.max(40,n-s)}}function aa(t){let{stageWidth:e,stageHeight:i,fullBounds:o,visibleBounds:s,seatPoints:n,minScale:r}=t;if(!n.length)return null;let l=1.12;if(Math.min(e/(o.width*l),i/(o.height*l))>=r)return null;let c=t.tapAnchor??{x:s.x+s.width/2,y:s.y+s.height/2},d=n[0],h=1/0;for(let g of n){let u=(g.x-c.x)**2+(g.y-c.y)**2;u<h&&(d=g,h=u)}let p=e/(r*l),m=i/(r*l),f=nt(n,0);return{bounds:{x:oa(d.x,p,f.x,f.width),y:oa(d.y,m,f.y,f.height),width:p,height:m},minScale:r}}function oa(t,e,i,o){return o<=e?i+o/2-e/2:Math.min(Math.max(t-e/2,i),i+o-e)}var ua=.5,K=Math.SQRT1_2,Jd="#f3f4f6",la=4;function eh(t){let e=t.fraction;return typeof e!="number"||!Number.isFinite(e)?ua:Math.min(1,Math.max(0,e))}function th(t){return t==="booked"||t==="not_for_sale"?si:oi}function ca(t,e){return Number.parseInt(t.slice(e,e+2),16)}function da(t){let e=t.trim();if(!/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(e))return null;if(e.length===7)return e.toLowerCase();let[,i,o,s]=e.toLowerCase();return`#${i}${i}${o}${o}${s}${s}`}function ih(t,e,i){let o=da(t),s=da(e);if(!o||!s)return t;let n=Math.min(1,Math.max(0,i)),r="#";for(let l=1;l<7;l+=2){let a=Math.round(ca(o,l)*(1-n)+ca(s,l)*n);r+=a.toString(16).padStart(2,"0")}return r}function ha(t,e,i,o){let s=i*4,n=e*K,r=-e*K,l=o*K*2*s,a=o*-K*2*s,c=n+s*K,d=r+s*K,h=n-s*K,p=r-s*K;t.beginPath(),t.moveTo(c,d),t.lineTo(h,p),t.lineTo(h+l,p+a),t.lineTo(c+l,d+a),t.closePath(),t.clip()}function oh(t,e){let i=e*4,o=Math.max(e*.45,1);t.beginPath();for(let s=-la;s<=la;s++){let n=s*o*2,r=n+o,l=n*K,a=-n*K,c=r*K,d=-r*K;t.moveTo(l+i*K,a+i*K),t.lineTo(l-i*K,a-i*K),t.lineTo(c-i*K,d-i*K),t.lineTo(c+i*K,d+i*K),t.closePath()}t.clip()}function gi(t,e){t._sceneFunc(e)}function pa(t){let e=this,i=e.attrs,o=i.markRadius||1,s=i.fill,n=e.getStage(),r=Math.abs((n?n.scaleX():1)*(e.scaleX()||1))||1;if(o*2*r<16){i.fill=i.markMidtone??s,gi(e,t),i.fill=s;return}let a=(1-2*(i.markFraction??ua))*o;t.save(),ha(t,a,o,1),i.fill=i.markBase??s,gi(e,t),t.restore(),t.save(),ha(t,a,o,-1),i.fill=i.markFill??s,gi(e,t),i.markHatch&&(oh(t,o),i.fill=Jd,gi(e,t)),t.restore(),i.fill=s}function sh(t,e,i,o,s,n){let r=eh(e),l=th(i),a=t.attrs;a.markFraction=r,a.markBase=o,a.markFill=l,a.markMidtone=ih(o,l,1-r),a.markHatch=n,a.markRadius=s>0?s:1,t.fill(a.markMidtone),t.stroke(""),t.strokeWidth(0),t.dash([]),t.opacity(1),t.sceneFunc(pa)}function nh(t){t.setAttr("sceneFunc",void 0)}function Lo(t){return t.attrs.sceneFunc===pa}var bi=class{constructor(){this.marks=new Map}get size(){return this.marks.size}get(e){return this.marks.get(e)??null}has(e){return this.marks.has(e)}clear(){this.marks.clear()}merge(e,i){let o=new Set;for(let[s,n]of Object.entries(e))i.has(s)&&(n&&n.kind==="partial"?(this.marks.set(s,n),o.add(s)):this.marks.delete(s)&&o.add(s));return o}paint(e,i,o,s,n,r,l){let a=l?void 0:this.marks.get(i);if(!a){Lo(e)&&nh(e);return}sh(e,a,o,s,n,r)}};function Si(t){let e=t.getClientRect({skipTransform:!0,skipShadow:!0});!Number.isFinite(e.width)||!Number.isFinite(e.height)||(t.offsetX(e.x+e.width/2),t.offsetY(e.y+e.height/2))}var fa=.85,rh=1,ah=.7,lh=.8,ma="rgba(0,0,0,0)",ch=[2,2],dh=1,Co=.6;function ya(t){return O(t)?"#334155":"#e2e8f0"}function ga(t,e,i){return t==="held"?{fill:oi,stroke:ya(e),strokeWidth:dh,dash:[...ch],opacity:1,scale:1}:t==="booked"||t==="not_for_sale"?i?{fill:ma,stroke:si,strokeWidth:1.5,dash:[],opacity:.9,scale:fa}:{fill:ma,stroke:ya(e),strokeWidth:rh,dash:[],opacity:t==="booked"?ah:lh,scale:fa}:null}var xo=1e6;function hh(){return typeof navigator>"u"?!1:navigator.maxTouchPoints>0&&/AppleWebKit/i.test(navigator.userAgent)}var vi=class{constructor(e,i=hh()){this.pointers=new Map;this.pinch=null;this.panLast=null;this.panStart=null;this.panStarted=!1;this.movedPx=0;this.singleTouch=!1;this.lastTapAt=0;this.rect=null;this.onLayoutChanged=()=>{this.rect=null};this.onPointerDown=e=>{this.useWebKitTouchEvents&&e.pointerType==="touch"||(this.rect=null,this.beginPointer(e.pointerId,this.toLocal(e.clientX,e.clientY),e.pointerType,e.button))};this.onPointerMove=e=>{if(this.useWebKitTouchEvents&&e.pointerType==="touch"||!this.pointers.has(e.pointerId))return;e.preventDefault();let i=this.toLocal(e.clientX,e.clientY);this.updatePointer(e.pointerId,i)&&this.applyPointerMove(i)};this.onPointerEnd=e=>{this.useWebKitTouchEvents&&e.pointerType==="touch"||this.endPointer(e.pointerId)};this.onTouchStart=e=>{e.preventDefault(),this.rect=null;for(let i=0;i<e.changedTouches.length;i+=1){let o=e.changedTouches.item(i);o&&this.beginPointer(xo+o.identifier,this.toLocal(o.clientX,o.clientY),"touch",0)}};this.onTouchMove=e=>{e.preventDefault();let i=null;for(let o=0;o<e.changedTouches.length;o+=1){let s=e.changedTouches.item(o);if(!s)continue;let n=this.toLocal(s.clientX,s.clientY);this.updatePointer(xo+s.identifier,n)&&(i=n)}i&&this.applyPointerMove(i)};this.onTouchEnd=e=>{e.preventDefault();for(let i=0;i<e.changedTouches.length;i+=1){let o=e.changedTouches.item(i);o&&this.endPointer(xo+o.identifier)}};this.host=e,this.useWebKitTouchEvents=i}get moved(){return this.movedPx}attach(){let{container:e}=this.host;this.rect=null,typeof window<"u"&&(window.addEventListener("scroll",this.onLayoutChanged,{capture:!0,passive:!0}),window.addEventListener("resize",this.onLayoutChanged,{passive:!0}),window.visualViewport?.addEventListener("resize",this.onLayoutChanged),window.visualViewport?.addEventListener("scroll",this.onLayoutChanged)),e.addEventListener("pointerdown",this.onPointerDown,{passive:!1}),e.addEventListener("pointermove",this.onPointerMove,{passive:!1}),e.addEventListener("pointerup",this.onPointerEnd,{passive:!1}),e.addEventListener("pointercancel",this.onPointerEnd,{passive:!1}),this.useWebKitTouchEvents&&(e.addEventListener("touchstart",this.onTouchStart,{passive:!1}),e.addEventListener("touchmove",this.onTouchMove,{passive:!1}),e.addEventListener("touchend",this.onTouchEnd,{passive:!1}),e.addEventListener("touchcancel",this.onTouchEnd,{passive:!1}))}detach(){let{container:e}=this.host;typeof window<"u"&&(window.removeEventListener("scroll",this.onLayoutChanged,{capture:!0}),window.removeEventListener("resize",this.onLayoutChanged),window.visualViewport?.removeEventListener("resize",this.onLayoutChanged),window.visualViewport?.removeEventListener("scroll",this.onLayoutChanged)),e.removeEventListener("pointerdown",this.onPointerDown),e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerup",this.onPointerEnd),e.removeEventListener("pointercancel",this.onPointerEnd),this.useWebKitTouchEvents&&(e.removeEventListener("touchstart",this.onTouchStart),e.removeEventListener("touchmove",this.onTouchMove),e.removeEventListener("touchend",this.onTouchEnd),e.removeEventListener("touchcancel",this.onTouchEnd))}resetPan(){this.panLast=null,this.panStart=null,this.panStarted=!1}isGhostClick(e){return e.type==="tap"?(this.lastTapAt=performance.now(),!1):this.lastTapAt>0&&performance.now()-this.lastTapAt<Vs}invalidateRect(){this.rect=null}toLocal(e,i){let o=this.rect;if(!o){let s=this.host.container.getBoundingClientRect();o={left:s.left,top:s.top},this.rect=o}return{x:e-o.left,y:i-o.top}}beginPointer(e,i,o,s){if(this.host.cancelGlide(),this.pointers.set(e,i),this.pointers.size===1)this.movedPx=0,this.singleTouch=o==="touch",this.singleTouch&&this.host.touchProbeStart?.(i),this.pinch=null,this.panStart=i,this.panStarted=!1,this.host.marqueeShouldStart({pointerType:o,button:s})?(this.host.beginMarquee(i),this.panLast=null):this.panLast=i;else if(this.pointers.size===2){this.host.marqueeActive()&&this.host.cancelMarquee(),this.endTouchProbe();let[n,r]=[...this.pointers.values()],l={x:(n.x+r.x)/2,y:(n.y+r.y)/2},a=this.host.stage.scaleX();this.pinch={startDist:Math.hypot(r.x-n.x,r.y-n.y),startScale:a,worldMid:{x:(l.x-this.host.stage.x())/a,y:(l.y-this.host.stage.y())/a}},this.panLast=null,this.panStart=null,this.panStarted=!0,this.movedPx=Pe+1}}updatePointer(e,i){return this.pointers.has(e)?(this.pointers.set(e,i),this.pointers.size===1&&this.panStart?this.movedPx=Math.max(this.movedPx,Math.hypot(i.x-this.panStart.x,i.y-this.panStart.y)):this.pointers.size>=2&&(this.movedPx=Pe+1),!0):!1}applyPointerMove(e){if(this.singleTouch&&this.pointers.size===1&&(this.panStarted||this.movedPx>Pe?this.endTouchProbe():this.host.touchProbeMove?.(e)),this.host.marqueeActive()){this.host.updateMarquee(e);return}if(this.pinch&&this.pointers.size>=2){this.host.releaseSectionFocusDim();let[i,o]=[...this.pointers.values()],s=Math.hypot(o.x-i.x,o.y-i.y);if(this.pinch.startDist<1)return;let n={x:(i.x+o.x)/2,y:(i.y+o.y)/2},{min:r,max:l}=this.host.zoomBounds(),a=Y(this.pinch.startScale*(s/this.pinch.startDist),r,l);this.host.stage.scale({x:a,y:a}),this.host.stage.position({x:n.x-this.pinch.worldMid.x*a,y:n.y-this.pinch.worldMid.y*a}),this.host.updateSeatGroupVisibility(),this.host.stage.batchDraw(),this.host.scheduleViewChange()}else if(this.panLast&&this.pointers.size===1){if(!this.panStarted){if(this.movedPx<=Pe)return;this.panStarted=!0,this.host.releaseSectionFocusDim()}this.host.stage.position({x:this.host.stage.x()+(e.x-this.panLast.x),y:this.host.stage.y()+(e.y-this.panLast.y)}),this.panLast=e,this.host.updateSeatGroupVisibility(),this.host.stage.batchDraw(),this.host.scheduleViewChange()}}endPointer(e){if(this.pointers.has(e)){if(this.host.marqueeActive()){this.endTouchProbe(),this.host.finishMarquee(),this.pointers.delete(e),this.pointers.size===0&&(this.panLast=null);return}this.pointers.delete(e),this.pointers.size<2&&(this.pinch=null),this.pointers.size===1&&(this.panLast=[...this.pointers.values()][0],this.panStart=this.panLast,this.panStarted=!0),this.pointers.size===0&&(this.panLast=null,this.panStart=null,this.panStarted=!1,this.endTouchProbe(),this.host.afterViewChange())}}endTouchProbe(){this.singleTouch&&(this.singleTouch=!1,this.host.touchProbeEnd?.())}};import{Circle as uh}from"konva/lib/shapes/Circle";import{Group as ph}from"konva/lib/Group";import{Text as fh}from"konva/lib/shapes/Text";var ba=13,mh=15,yh=.3,gh=.08;function ka(t,e,i){return!!(t&&i!==t||e&&!e.has(i))}function bh(t,e){return!e||t.available==null?`cap ${t.capacity}`:t.available<=0?N("map.soldOut"):N("map.seatsLeft",{count:t.available})}function Sh(t,e){return e&&t.available!=null&&t.available<=0}function La(t){for(let e of t.gaById.values()){let i=t.filteredOut(e.categoryKey),o=t.overviewHidden(e),s=Sh(e,t.pickerMode),n=t.pickerMode?e.selected??0:0;e.polygon.opacity(o?0:t.dimmed(e.categoryKey)?Oe*gh:s?Oe*yh:Oe),e.polygon.listening(!t.exportMode&&!o&&!i&&!s),e.polygon.stroke(n>0?t.selectionColor:e.strokeColor),e.polygon.strokeWidth(n>0?3:1.5),vh(t,e,s,n,o,t.dimmed(e.categoryKey))}}function vh(t,e,i,o,s,n){if(e.capacityNode){let r=bh(e,t.pickerMode);e.capacityNode.text()!==r&&(e.capacityNode.text(r),e.capacityNode.offsetX(e.capacityNode.width()/2)),e.capacityNode.opacity(i?.75:1)}wh(t,e,s||n),o>0&&!s?Lh(t,e,o):e.chip&&e.chip.visible(!1)}var To=9,Sa=.86;function wh(t,e,i){let{labelNode:o,capacityNode:s}=e;if(!o&&!s)return;let n=Math.max(t.effScale(),1e-4);if(i){o?.visible(!1),s?.visible(!1);return}if(!t.pickerMode){o?.visible(t.labelLegible(o.fontSize())),s?.visible(t.labelLegible(s.fontSize()));return}let r=kh(e,n),l=va(o,Gt,r.width*Sa,n),a=va(s,Ht,r.width*Sa,n),c=l!=null,d=a!=null&&c&&l+a+To<=r.height;wa(o,c?l:null,e.labelPoint.y-To/n,n),wa(s,d?a:null,e.labelPoint.y+To/n,n)}function kh(t,e){let i=1/0,o=-1/0,s=1/0,n=-1/0;for(let r of t.points)r.x<i&&(i=r.x),r.x>o&&(o=r.x),r.y<s&&(s=r.y),r.y>n&&(n=r.y);return Number.isFinite(i)?{width:(o-i)*e,height:(n-s)*e}:{width:0,height:0}}function va(t,e,i,o){if(!t||!t.text())return null;t.fontSize(e/o);let s=t.width()*o;if(s<=i||s<=0)return e;let n=e*(i/s);return n>=V?n:null}function wa(t,e,i,o){if(t){if(e==null){t.visible(!1);return}t.fontSize(e/o),t.offsetX(t.width()/2),t.offsetY(t.height()/2),t.y(i),t.visible(!0)}}function Lh(t,e,i){if(!e.chip){let o=new ph({x:e.labelPoint.x,y:e.labelPoint.y-ba-16,listening:!1}),s=new uh({radius:ba,fill:t.selectionColor,listening:!1,perfectDrawEnabled:!1}),n=new fh({text:String(i),fontSize:mh,fontStyle:"800",fontFamily:t.labelFont(),fill:"#0b0d12",listening:!1,perfectDrawEnabled:!1});o.add(s),o.add(n),t.bgLayer.add(o),e.chip=o,e.chipText=n}e.chipText&&e.chipText.text()!==String(i)&&e.chipText.text(String(i)),e.chipText&&(e.chipText.offsetX(e.chipText.width()/2),e.chipText.offsetY(e.chipText.height()/2)),e.chip.visible(!0),e.chip.moveToTop()}function Ca(t,e){let i=!1;for(let[o,s]of Object.entries(e)){let n=t.get(o);n&&(s.available!==void 0&&n.available!==s.available&&(n.available=s.available,i=!0),s.selected!==void 0&&n.selected!==s.selected&&(n.selected=s.selected,i=!0))}return i}function xa(t){let{focusedId:e}=t;if(!e)return null;let i=new Set([e]),o=t.sectionOf(e);if(o!=null){for(let c of t.seats){let d=t.seatId(c);t.sectionOf(d)===o&&i.add(d)}return i}let s=t.seats.find(c=>t.seatId(c)===e);if(!s)return i;let n=t.seatPoint(s),r=t.seatPitch>0?t.seatPitch:t.seatRadius*2,l=6*(r>0?r:1),a=l*l;for(let c of t.seats){let d=t.seatPoint(c),h=d.x-n.x,p=d.y-n.y;h*h+p*p<=a&&i.add(t.seatId(c))}return i}function Ta(t,e,i){let o=i(t);return o!=null&&o===i(e)}var Ch=.2,xh=.55;function Ia(t,e){return t.startsWith("#")?j(e,t,Ch):t}function Pa(t){return O(t)?"#0b1220":"#ffffff"}function Th(t){return j(t,Pa(t),xh)}function Ma(t){return t>0?Math.min(1,t/le):1}function Ra(t){let{categoryFilter:e,status:i}=t;return!e||t.selected||i!=="free"&&!(i==="held"&&!t.ownHold)?!1:!e.has(t.categoryKey)}function Aa(t,e,i){let o=typeof t=="string"&&t.startsWith("#")?t:e;return i?Th(o):Pa(o)}function Ea(t){let{width:e,height:i}=t;return!(e>0)||!(i>0)?"hidden":e===t.stageWidth&&i===t.stageHeight?"unchanged":{width:e,height:i}}import{Rect as _a}from"konva/lib/shapes/Rect";import{Text as Ih}from"konva/lib/shapes/Text";function Fa(t){let e=t.effScale(),i=t.stage.scaleX(),o={width:t.stage.width(),height:t.stage.height()},s=u=>Math.round(u*100)/100,n=new Map(t.overlayLayer.find(".selection-ring").map(u=>[String(u.getAttr("seatId")??""),String(u.getAttr("ringColor")??t.effSelection)])),r=t.seats.map(u=>{let y=t.circleById.get(u.id),S=t.boothLabelById.get(u.id)??t.seatLabelById.get(u.id),b=t.viewMode==="perspective"?t.perspectiveSeatScale.get(u.id)??1:1,v=(t.viewMode==="perspective"?i:e)*b,k=u.kind==="booth"?Be:ge*t.seatLabelScale(u),w=t.viewMode==="perspective"&&u.kind!=="booth"?e*b:v,C=s((S?.fontSize()??k)*w),I=t.worldToScreen(u),T=S?S.width()*i*b:0,L=S?S.height()*(t.viewMode==="perspective"&&u.kind==="booth"?i:e)*b:0,x=I.x-T/2<0||I.x+T/2>o.width||I.y-L/2<0||I.y+L/2>o.height,P=t.focusedSeatOpacity(u.id,y?.getAbsoluteOpacity()??0),A=t.seatSection.get(u.id),R=!!S?.isVisible()&&P>=.5&&!x,E;R||(P<.5?E="dimmed-or-unavailable":C<V?E="below-minimum-size":x?E="outside-viewport":S?E="renderer-hidden":E=t.seatLabelDrops.get(u.id)??(t.seatLabelRungOpen()?"clutter-or-fit":"below-label-rung"));let M=y instanceof _a?y.width()*i*b:t.seatR*2*v,X=y instanceof _a?y.height()*(t.viewMode==="perspective"?i:e)*b:t.seatR*2*v,G=2*(t.seatR*v+Ne),$=y?.fill(),oe=S?.fill(),B=t.accessGlyphById.get(u.id),H=B?.getAbsoluteScale();return{seatId:u.id,label:u.label,kind:u.kind==="booth"?"booth":"seat",markerShape:u.kind==="booth"?"booth":u.wheelchairSpaceType==="no-seat"?"square":"circle",...u.wheelchairSpaceType?{wheelchairSpaceType:u.wheelchairSpaceType}:{},categoryKey:u.categoryKey,...A?{sectionId:A.id}:{},...A?.zone?{zoneId:A.zone}:{},status:t.statusById.get(u.id)??"free",selected:t.selection.has(u.id),visible:R,renderedFontPx:C,fill:typeof $=="string"?$:"",ink:typeof oe=="string"?oe:y?t.seatLabelInk(u,y):t.seatPreferredLabelInk(u),...n.has(u.id)?{selectionRingColor:n.get(u.id)}:{},opacity:s(P),...B?{accessibilityMarker:{glyphVisible:B.isVisible(),glyphWidthPx:s(Ie*Math.abs(H?.x??0)),emphasizedByFilter:t.accessGlyphFilterEmphasized(u.id)}}:{},pointerTarget:{active:!t.cached&&!t.seatViewportCulled(u.id)&&!!y?.isVisible()&&!!y?.isListening()&&t.isSelectable(u.id),directWidthPx:s(M),directHeightPx:s(X),effectiveMinimumPx:s(Math.max(Math.min(M,X),G))},screenCenter:{x:s(I.x),y:s(I.y)},...R?{screenBox:{x:s(I.x-T/2),y:s(I.y-L/2),width:s(T),height:s(L)}}:{},...E?{hiddenReason:E}:{}}}),l=r.filter(u=>u.visible).length,a=(u,y,S,b,v,k,w)=>{let C=Je({x:b.x(),y:b.y()},b.width(),b.height(),b.rotation()),I=k&&k.liftWorld>0?t.isoLiftLocal(k.liftWorld):{x:0,y:0},T=z(C.map(E=>t.worldToScreen({x:E.x+I.x,y:E.y+I.y}))),L=s(b.opacity()),x=b.fill(),P=T.x+T.width<0||T.x>o.width||T.y+T.height<0||T.y>o.height,A=b.isVisible()&&L>.05&&!P,R=k?et({x:b.x(),y:b.y()},b.width(),b.height(),b.rotation(),k.outline,k.holes):void 0;return{id:u,kind:y,role:S,label:b.text(),visible:A,renderedFontPx:s(b.fontSize()*i),...w==null?{}:{sizeFloorPx:w},opacity:L,fill:v,ink:typeof x=="string"?x:"",...R==null?{}:{fitsContainer:R},...A?{screenBox:{x:s(T.x),y:s(T.y),width:s(T.width),height:s(T.height)}}:{}}},c=u=>{let y=u.namePlate.fill();if(u.namePlate.opacity()>.05&&typeof y=="string"&&y)return y;let S=u.blockPoly.fill();return typeof S=="string"?S:u.baseFill},d=u=>{let y=u.blockPoly.fill();return typeof y=="string"?y:u.baseFill},h=[...t.sections.map(u=>a(u.id,"section","name",u.nameLabel,c(u),u)),...t.sections.map(u=>a(`${u.id}:availability`,"section","availability",u.subLabel,c(u),u)),...t.sections.map(u=>a(`${u.id}:number`,"section","number",u.numberLabel,d(u),u,jt(o.width))),...t.zones.flatMap(u=>[a(u.id,"zone","name",u.label,u.background),...u.sub?[a(`${u.id}:price`,"zone","price",u.sub,u.background)]:[]])],p=[...t.gaById].map(([u,y])=>{let S=y.points.map(x=>t.worldToScreen(x)),b=Math.min(...S.map(x=>x.x)),v=Math.min(...S.map(x=>x.y)),k=Math.max(...S.map(x=>x.x)),w=Math.max(...S.map(x=>x.y)),C=k<0||b>o.width||w<0||v>o.height,I=s(y.polygon.opacity()),T=I>=.1&&!C,L=y.polygon.fill();return{areaId:u,label:y.label,capacity:y.capacity,categoryKey:y.categoryKey,...y.sectionId?{sectionId:y.sectionId}:{},visible:T,interactive:y.polygon.listening(),opacity:I,fill:typeof L=="string"?L:"",effectiveBackground:y.effectiveBackground,...T?{screenBox:{x:s(b),y:s(v),width:s(k-b),height:s(w-v)}}:{}}}),m=[...t.freeTextById].map(([u,y])=>{let{node:S,background:b,kind:v}=y,k=t.worldToScreen({x:S.x(),y:S.y()}),w=S.width()*i,C=S.height()*e,I=k.x-S.offsetX()*i,T=k.y-S.offsetY()*e,L=s(S.fontSize()*e),x=I+w<0||I>o.width||T+C<0||T>o.height,P=S.isVisible()&&!x,A=S.fill(),R=s(S.getAbsoluteOpacity()),E;return P||(L<V?E="below-minimum-size":x?E="outside-viewport":E="renderer-hidden"),{objectId:y.objectId??u,kind:v,text:S.text(),visible:P,renderedFontPx:L,ink:typeof A=="string"?A:"",background:b,opacity:R,...P?{screenBox:{x:s(I),y:s(T),width:s(w),height:s(C)}}:{},...E?{hiddenReason:E}:{}}}),f=t.labelGroup.find(u=>u.getAttr("rowLabel")===!0).filter(u=>u instanceof Ih).map(u=>{let y=u.getClientRect({skipShadow:!0,skipStroke:!0}),S=y.x+y.width<0||y.x>o.width||y.y+y.height<0||y.y>o.height,b=u.fill();return{text:u.text(),visible:u.isVisible()&&!S,renderedFontPx:s(u.fontSize()*e),ink:typeof b=="string"?b:"",...S?{}:{screenBox:{x:s(y.x),y:s(y.y),width:s(y.width),height:s(y.height)}}}}),g=t.sections.filter(u=>u.blockPoly.opacity()>.05);return{viewport:o,projection:t.viewMode,...t.viewMode==="perspective"?{perspective:{model:"pinhole-exact-seat-anchors",sectionSurfaceModel:"tangent-plane",exactSeatAnchorCount:t.perspectiveSeatProjected.size,depthSorted:!0}}:{},canvasBackground:t.canvasBackground,effectiveScale:s(e),rung:t.getRung(),minimumVisibleLabelPx:V,totalLabelledBookableUnits:r.length,visibleLabels:l,hiddenLabels:r.length-l,totalBookableUnits:r.length+p.reduce((u,y)=>u+y.capacity,0),selectionRingSeatIds:t.overlayLayer.find(".selection-ring").map(u=>String(u.getAttr("seatId")??"")).filter(Boolean),selectionRingColor:t.effSelection,focusedSectionId:t.focusedSectionId,focusBackdropVisible:!!t.focusBackdrop?.isVisible(),categoryFilterKeys:t.categoryFilter?[...t.categoryFilter].sort():null,overviewStyle:{visibleSectionShells:g.length,categoryPaintedSectionShells:g.filter(u=>{let y=u.blockPoly.fill();return typeof y!="string"||!Ui(t.canvasBackground,y)}).length,tintedSectionShells:g.filter(u=>{let y=u.blockPoly.fill();return typeof y=="string"&&Cn(t.canvasBackground,y)}).length,visibleCategoryDetailOutlines:t.sections.filter(u=>u.outlinePoly.opacity()>.05).length,visibleSectionRowHints:0,visibleSectionAvailabilityLabels:t.sections.filter(u=>u.subLabel.opacity()>.05).length,visibleSectionGADetails:[...t.gaById.values()].filter(u=>u.sectionId!=null&&u.polygon.opacity()>.05).length},labels:r,gaAreas:p,hierarchyLabels:h,freeTextLabels:m,rowLabels:f}}import{Circle as Ph}from"konva/lib/shapes/Circle";import{Ellipse as Mh}from"konva/lib/shapes/Ellipse";import{Line as Ba}from"konva/lib/shapes/Line";import{Arrow as Rh}from"konva/lib/shapes/Arrow";import{Path as Ah}from"konva/lib/shapes/Path";import{Rect as Lt}from"konva/lib/shapes/Rect";import{Text as Po}from"konva/lib/shapes/Text";import{Image as Oa}from"konva/lib/shapes/Image";function Da(t,e){if(!e.url||e.visible===!1)return;let i=new window.Image;t.trackAssetImage(i,e.url,"Buyer background image",()=>{let o=i.naturalWidth||4,s=i.naturalHeight||3,n=e.crop??{x:0,y:0,width:1,height:1},r=Math.max(0,Math.min(.99,n.x)),l=Math.max(0,Math.min(.99,n.y)),a={x:r,y:l,width:Math.max(.01,Math.min(1-r,n.width)),height:Math.max(.01,Math.min(1-l,n.height))},c=e.width,d=c*(s*a.height/(o*a.width)),h=new Oa({image:i,x:e.center.x,y:e.center.y,offsetX:c/2,offsetY:d/2,width:c,height:d,rotation:e.rotation??0,crop:{x:a.x*o,y:a.y*s,width:a.width*o,height:a.height*s},opacity:e.opacity,listening:!1});t.bgLayer.add(h),h.moveToBottom(),t.bgLayer.batchDraw()})}function Na(t,e){let i=new window.Image,o=new Oa({image:i,x:e.x+e.width/2,y:e.y+e.height/2,offsetX:e.width/2,offsetY:e.height/2,width:e.width,height:e.height,rotation:e.rotation??0,opacity:Y(e.opacity??1,0,1),listening:!1,perfectDrawEnabled:!1});e.layer==="foreground"?t.fgDecorGroup.add(o):t.bgLayer.add(o),e.role&&t.landmarkBoxes.push(z(Je({x:e.x+e.width/2,y:e.y+e.height/2},e.width,e.height,e.rotation??0))),t.trackAssetImage(i,e.href,`Decor image \u201C${e.label||e.id}\u201D`,()=>{let s=o.getLayer();s&&s.batchDraw()})}function Ga(t,e){if(e.shape==="round")t.bgLayer.add(new Ph({x:e.center.x,y:e.center.y,radius:e.radius??40,fill:"#232c40",stroke:"#2a3348",strokeWidth:1.5,listening:!1}));else{let o=e.width??80,s=e.height??50;t.bgLayer.add(new Lt({x:e.center.x,y:e.center.y,width:o,height:s,offsetX:o/2,offsetY:s/2,rotation:e.rotation,fill:"#232c40",stroke:"#2a3348",strokeWidth:1.5,cornerRadius:4,listening:!1}))}let i=Ct(t,t.bgLayer,e.displayLabel??e.label,e.center.x,e.center.y,"#cbd5e1",12,!0);t.freeTextById.set(e.id,{node:i,background:"#232c40",kind:"table"})}var Eh=8,_h=6;function Ha(t,e){let i=e.background?.color??t.canvasBackground,o=e.color??re(i,t.theme.textColor??fr),s=e.semanticKind==="icon"?Rs(e.iconKey):void 0;if(s){let d=e.fontSize/24,h=new Ah({x:e.position.x,y:e.position.y,data:s,rotation:e.rotation,scaleX:d,scaleY:d,stroke:o,strokeWidth:2,lineCap:"round",lineJoin:"round",fillEnabled:!1,listening:!1,perfectDrawEnabled:!1});t.iconNodeById.set(e.id,{node:h,fontSize:e.fontSize}),t.bgLayer.add(h);return}let n=e.background?.padding??0,r=e.opacity??1,l=ws(e),a=new Po({x:e.position.x,y:e.position.y,text:e.text,fontSize:e.fontSize,rotation:e.rotation,fontStyle:ao(e.bold,e.italic,"600"),fill:o,fontFamily:e.fontFamily??t.labelFont(),...e.width!=null?{width:e.width}:{},align:e.align??"left",lineHeight:e.lineHeight??1.2,letterSpacing:e.letterSpacing??0,textDecoration:e.underline?"underline":"",padding:n,opacity:r,wrap:"word",listening:!1,perfectDrawEnabled:!1,name:"buyer-free-text"}),c;if(e.background){let d=a.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:!0}),h=Math.max(Eh,e.fontSize*.35),p=Math.max(_h,e.fontSize*.28);c=new Lt({x:e.position.x,y:e.position.y,offsetX:-(d.x-h),offsetY:-(d.y-p),width:d.width+h*2,height:d.height+p*2,rotation:e.rotation,fill:e.background.color,opacity:r*(e.background.opacity??.9),cornerRadius:e.background.cornerRadius??4,listening:!1,perfectDrawEnabled:!1,name:"buyer-text-background"}),t.bgLayer.add(c)}t.freeTextById.set(e.id,{node:a,backdrop:c,background:i,kind:l?"direct-landmark":"free-text"}),t.bgLayer.add(a)}function Wa(t,e){let i=e.fill??t.theme.decorFill??pr,o=e.role==="stage",s=e.role==="reference-focal",n=!!e.role&&!o,r=vs(e),l=te(t.canvasBackground),a=s?l.focalFill:i,c=e.kind==="line"||e.kind==="polyline",d=e.stroke?.color??(o?Te(a,.28):s?l.focalStroke:c?"#9aa3b5":void 0),h=e.stroke?.width??(o?1:s||c?2:0),p=e.opacity!=null?Y(e.opacity,.1,1):1,m=0,f=0,g=null;if(c&&e.points&&e.points.length>=2){m=e.points.reduce((b,v)=>b+v.x,0)/e.points.length,f=e.points.reduce((b,v)=>b+v.y,0)/e.points.length;let u=As(e),y=Es(h),S=new Rh({points:e.points.flatMap(b=>[b.x,b.y]),closed:!1,x:m,y:f,offsetX:m,offsetY:f,rotation:e.rotation??0,stroke:d,fill:d,strokeWidth:h,opacity:p,lineCap:u.lineCap,lineJoin:u.lineJoin,pointerAtBeginning:u.startEnding==="arrow",pointerAtEnding:u.endEnding==="arrow",...y,listening:!1,name:"buyer-shape-open-path"});S.setAttr("shapeObjectId",e.id),t.bgLayer.add(S)}else if(e.kind==="rect"&&e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null){let u=o?{fillLinearGradientStartPoint:{x:0,y:0},fillLinearGradientEndPoint:{x:0,y:e.height},fillLinearGradientColorStops:[0,ye(a,.3),1,Te(a,.12)]}:{fill:a};m=e.x+e.width/2,f=e.y+e.height/2,g={x:e.x,y:e.y,width:e.width,height:e.height},t.bgLayer.add(new Lt({x:m,y:f,offsetX:e.width/2,offsetY:e.height/2,rotation:e.rotation??0,width:e.width,height:e.height,...u,stroke:d,strokeWidth:h,cornerRadius:Y(e.cornerRadius??4,0,Math.min(e.width,e.height)/2),opacity:p,listening:!1}))}else if(e.kind==="ellipse"&&e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null){m=e.x+e.width/2,f=e.y+e.height/2,g={x:e.x,y:e.y,width:e.width,height:e.height};let u=o?{fillLinearGradientStartPoint:{x:0,y:-e.height/2},fillLinearGradientEndPoint:{x:0,y:e.height/2},fillLinearGradientColorStops:[0,ye(a,.3),1,Te(a,.12)]}:{fill:a};t.bgLayer.add(new Mh({x:m,y:f,rotation:e.rotation??0,radiusX:e.width/2,radiusY:e.height/2,...u,stroke:d,strokeWidth:h,opacity:p,listening:!1}))}else if(e.kind==="polygon"&&e.points&&e.points.length){let u=e.points.flatMap(b=>[b.x,b.y]),y=z(e.points);m=e.points.reduce((b,v)=>b+v.x,0)/e.points.length,f=e.points.reduce((b,v)=>b+v.y,0)/e.points.length,g=y;let S=o?{fillLinearGradientStartPoint:{x:0,y:y.y},fillLinearGradientEndPoint:{x:0,y:y.y+y.height},fillLinearGradientColorStops:[0,ye(a,.3),1,Te(a,.12)]}:{fill:a};t.bgLayer.add(new Ba({points:u,closed:!0,x:m,y:f,offsetX:m,offsetY:f,rotation:e.rotation??0,...S,stroke:d,strokeWidth:h,opacity:p,listening:!1}))}g&&e.role&&t.landmarkBoxes.push(g);for(let u of is(e))t.bgLayer.add(new Ba({points:u.points.flatMap(y=>[y.x,y.y]),closed:u.closed,x:m,y:f,offsetX:m,offsetY:f,rotation:e.rotation??0,stroke:u.ink??ts,fill:u.fill,strokeWidth:2,opacity:p*.85,listening:!1,perfectDrawEnabled:!1,name:"buyer-stage-marking"}));if(e.label)if(o){let{node:u,spec:y}=Bh(t,m,f,e.label,a,g,e.labelStyle);t.primaryFocalLabels.set(u,y),t.freeTextById.set(e.id,{node:u,background:a,kind:"stage"})}else if(n){let u=s||r,y=Ct(t,t.bgLayer,e.label,m,f,u?re(a,"#e6e9f0"):"#9aa3b5",u?18:12,!1);u&&t.primaryFocalLabels.set(y,{targetPx:18,trackingRatio:0,ink:String(y.fill()??""),plateInk:String(y.fill()??""),plate:new Lt({width:0,height:0,opacity:0,listening:!1})}),t.freeTextById.set(e.id,{node:y,background:a,kind:"decor"})}else{let u=Ct(t,t.bgLayer,e.label,m,f,"#cbd5e1",16,!0);t.freeTextById.set(e.id,{node:u,background:a,kind:"decor"})}}var Io=22,Fh=V,wi=6;function Bh(t,e,i,o,s,n,r){let l=r?.size??Io,a=r?.color??t.theme.textColor??"#e6e9f0",c=r?.color??re(s,a),d=n?n.x+n.width/2:e,h=n?n.y+n.height/2:i,p=Oh(t.canvasBackground,s),m=new Lt({x:d,y:h,width:0,height:0,cornerRadius:4,fill:p,opacity:0,listening:!1,perfectDrawEnabled:!1});t.bgLayer.add(m);let f=new Po({x:d,y:h,text:o,fontSize:l,fontStyle:ao(r?.bold??!0,r?.italic,"normal"),letterSpacing:l*(4/Io),fontFamily:r?.fontFamily??t.labelFont(),fill:c,textDecoration:r?.underline?"underline":"",listening:!1,perfectDrawEnabled:!1});return f.offsetX(f.width()/2),f.offsetY(f.height()/2),t.bgLayer.add(f),{node:f,spec:{targetPx:l,...n?{bounds:n}:{},trackingRatio:4/Io,ink:c,plateInk:r?.color??re(p,a),plate:m}}}function Oh(t,e){return j(e,O(t)?"#ffffff":"#000000",.34)}function Va(t,e,i,o){let s=Math.max(i,1e-4),n=e.targetPx/s,r=m=>{t.letterSpacing(m*e.trackingRatio),o(t,m)};r(n);let l=e.bounds;if(!l){e.plate.opacity(0),t.fill(e.ink);return}let a={width:l.width-wi*2,height:l.height-wi*2},c=Math.min(1,a.width/Math.max(t.width(),1e-6),a.height/Math.max(t.height(),1e-6));if(c<1&&(n=Math.max(Fh/s,n*c),r(n)),t.width()<=a.width&&t.height()<=a.height){e.plate.opacity(0),t.fill(e.ink);return}let h=t.width()+wi*2,p=t.height()+wi;e.plate.size({width:h,height:p}),e.plate.offset({x:h/2,y:p/2}),e.plate.opacity(1),t.fill(e.plateInk)}function za(t,e){let i=t.catColor.get(e.categoryKey)??"#6e7bff",o=t.canvasBackground,s=fs(i,o,Oe),n=t.theme.textColor??"#e6e9f0",r=re(s,n),l=ze(e.points,e.holes,{fill:i,opacity:Oe,stroke:i,strokeWidth:1.5,cornerRadius:e.cornerRadius});l.setAttr("gaId",e.id),l.on("click tap",p=>{t.isGhostClick(p)||t.opts.onGAClick?.(e.id)}),l.on("mouseenter",()=>{t.container.style.cursor="pointer"}),l.on("mouseleave",()=>{t.container.style.cursor="default"}),t.bgLayer.add(l);let a=Ft(e.points,e.holes),c=t.sections.find(p=>ee(a,p.outline,p.holes)),d=Ct(t,t.bgLayer,e.displayLabel??e.label,a.x,a.y-8,r,Gt,!1),h=Ct(t,t.bgLayer,`cap ${e.capacity}`,a.x,a.y+10,r,Ht,!1);t.freeTextById.set(`${e.id}:label`,{objectId:e.id,node:d,background:s,kind:"ga-label",categoryKey:e.categoryKey}),t.freeTextById.set(`${e.id}:capacity`,{objectId:e.id,node:h,background:s,kind:"ga-capacity",categoryKey:e.categoryKey}),t.gaById.set(e.id,{label:e.displayLabel??e.label,capacity:e.capacity,categoryKey:e.categoryKey,points:e.points,polygon:l,effectiveBackground:s,strokeColor:i,labelPoint:a,labelNode:d,capacityNode:h,...c?{sectionId:c.logicalId}:{}})}function Ct(t,e,i,o,s,n,r,l){let a=new Po({x:o,y:s,text:i,fontSize:r,fontStyle:l?"700":"500",fontFamily:t.labelFont(),fill:n,listening:!1,perfectDrawEnabled:!1});return a.offsetX(a.width()/2),a.offsetY(a.height()/2),e.add(a),a}import{Text as Dh}from"konva/lib/shapes/Text";var Nh=4;function Ka(t){return O(t)?{plate:"#ffffff",stroke:"rgba(15,23,42,0.18)"}:{plate:"#0f1622",stroke:"rgba(226,232,240,0.22)"}}function Gh(t,e,i,o){let s=Math.max(0,Math.min(o,e/2,i/2));t.beginPath(),t.moveTo(s,0),t.arcTo(e,0,e,i,s),t.arcTo(e,i,0,i,s),t.arcTo(0,i,0,0,s),t.arcTo(0,0,e,0,s),t.closePath()}function Xa(t,e){t.padding(Nh),t.shadowBlur(0),t.shadowOpacity(0),t.sceneFunc(function(o){let s=this.width(),n=this.height();o.save(),Gh(o,s,n,Math.min(n/2,8)),o.setAttr("fillStyle",e.plate),o.fill(),o.setAttr("strokeStyle",e.stroke),o.setAttr("lineWidth",1),o.stroke(),o.restore(),Dh.prototype._sceneFunc.call(this,o)})}function Ya(t,e){let i=[],o=e.canvasBackground,s=new Map,n=(c,d)=>{let h=s.get(c)??[];h.push(d),s.set(c,h)};for(let c of e.seats){if(c.kind==="booth")continue;let d=c.logicalRowId??c.rowId;n(d,c),d!==c.rowId&&n(c.rowId,c)}let r=c=>c.logicalSeatIndex??Number(c.id.split(":").pop()??0);for(let c of t.objects){if(c.type!=="row")continue;let d=c.segmentedRow?.repeatLabelOnComponents===!0;if(c.segmentedRow&&!d&&c.segmentedRow.componentIndex!==0)continue;let h=d?c.labelPresentation:c.segmentedRow?.labelPresentation??c.labelPresentation;if(h?.visible===!1||h?.positionPreset==="none")continue;let p=c.segmentedRow&&!d?c.segmentedRow.groupId:c.id,m=(s.get(p)??[]).slice().sort((R,E)=>r(R)-r(E));if(!m.length)continue;let f=m[0],g=m[m.length-1],u=h?.labelStyle,y=h?.style==="pill"?Ka(o):null,S=y?y.plate:o,b=ue(S,u?.color,e.theme.rowLabelColor??e.theme.textColor??"#e6e9f0",$e),v=u?.size??ps,k=h?.rotation??0,w=e.objectFilteredOut(c)?.15:1,C=m.reduce((R,E)=>R??e.seatSection.get(E.id),void 0),T=c.segmentedRow?.displayLabel??c.displayLabel??Ni(c.label,C?.label);if(!T)continue;let L=C?[...new Set([C.id,C.logicalId,C.zone].filter(R=>!!R))]:void 0,x=(R,E,M)=>i.push({text:T,x:R,y:E,rotation:k,fontSize:v,ink:b,opacity:w,...y?{pill:y}:{},...L?.length?{focusKeys:L}:{},...M?{automaticAway:M}:{}});if(h?.position){x(h.position.x,h.position.y);continue}let P=e.seatR+12,A=h?.positionPreset??"start";if(A==="start"||A==="both"){let R=c.rotation*Math.PI/180,E={x:-Math.cos(R),y:-Math.sin(R)};x(f.x+E.x*P,f.y+E.y*P,E)}if(A==="end"||A==="both"){let R=(c.rotation+c.curve)*Math.PI/180,E={x:Math.cos(R),y:Math.sin(R)};x(g.x+E.x*P,g.y+E.y*P,E)}}let l=(e.seatR+12)*2.2,a=[];for(let c of i){let d=a.find(h=>h.text===c.text&&Math.hypot(h.x-c.x,h.y-c.y)<=l);if(d){d.x=(d.x+c.x)/2,d.y=(d.y+c.y)/2;continue}a.push(c)}return a}function Mo(t,e,i=Q){let o=t.rotation()*Math.PI/180,s=Math.abs(Math.cos(o)),n=Math.abs(Math.sin(o)),r=(t.width()*s+t.height()*n)/2+i,l=(t.width()*n+t.height()*s)/2+i;return{x:e.x-r,y:e.y-l,width:r*2,height:l*2}}function Ua(t,e,i,o){let s={x:e.x,y:e.y},n=e.automaticAway;if(!n)return s;let r={x:-n.y,y:n.x},l=Math.max(7,Math.min(16,e.fontSize*.75)),a=[{x:0,y:0}];for(let p=1;p<=4;p++){let m=l*p;a.push({x:r.x*m,y:r.y*m},{x:-r.x*m,y:-r.y*m},{x:n.x*m,y:n.y*m},{x:(n.x+r.x)*m,y:(n.y+r.y)*m},{x:(n.x-r.x)*m,y:(n.y-r.y)*m})}let c=s,d=1/0,h=1/0;for(let p of a){let m={x:s.x+p.x,y:s.y+p.y},f=Mo(t,m),u=(o?Xt(o,f,{mode:"overlap"}).length:0)+i.collisionCount(f),y=Math.hypot(p.x,p.y);if((u<d||u===d&&y<h)&&(c=m,d=u,h=y),u===0)break}return c}function $a(t,e){let i=e,o=i._cache.get("canvas");if(!o)return;let s=[o.scene,o.filter,o.hit].map(n=>n?._canvas).filter(n=>!!n);s.length&&t.Util.releaseCanvas(...s),i._cache.delete("canvas")}function qa(t,e){let i=0,o=0,s=n=>{i||(i=n),o+=1;let r=n-i;r>=1e3&&(t(Math.round(o*1e3/r)),o=0,i=n),e(requestAnimationFrame(s))};e(requestAnimationFrame(s))}import{Group as Hh}from"konva/lib/Group";import{Line as Za}from"konva/lib/shapes/Line";import{Rect as Wh}from"konva/lib/shapes/Rect";import{Text as ja}from"konva/lib/shapes/Text";var Qa=.6;function Vh(t,e){return t>=se||e&&t>=$t}function zh(t){return t.effectiveScale<$t?!1:t.focusActive||t.stageWidth<de}function Kh(t,e,i){return i&&e>=$t?Math.max(t,Ks/Math.max(e,1e-4)):t}function Xh(t){let{authoredFontSize:e,measuredWidth:i,maxWidth:o,effectiveScale:s}=t;if(!(i>o)||!(i>0))return e;let n=V/Math.max(s,1e-4),r=e*o/i;return Math.max(Math.min(pt,n),r)}function Ao(t,e){let i=(e?1:3)*Math.min(1,t/le);return Math.max(1,t*2-i)}function Ja(t){let e=new Map;for(let s of t){let n=e.get(s.rowId);n?n.push(s):e.set(s.rowId,[s])}let i=[];for(let s of e.values())if(!(s.length<2))for(let n=1;n<s.length;n+=1){let r=Math.hypot(s[n].x-s[n-1].x,s[n].y-s[n-1].y);r>0&&Number.isFinite(r)&&i.push(r)}if(!i.length)return 0;i.sort((s,n)=>s-n);let o=Math.floor(i.length/2);return i.length%2?i[o]:(i[o-1]+i[o])/2}function el(t,e){return e>0?Math.min(t,e/2):t}function Eo(t){let e=Math.max(t*2,1e-4);return Math.max(ke,ms/e)}function xt(t){let e=Ao(t,!1),i=Ao(le,!1),o=e>0?i/e:1;return se*Math.max(1,o)/zi(1,!1,V)}function tl(t){return xt(t)*mn}function Ro(t,e,i){let o=t.seatLabelContainer(e);i.getParent()!==o&&o.add(i)}function il(t){let e=t.exportMode?Math.max(t.effScale(),se):t.effScale(),i=zh({effectiveScale:e,focusActive:t.focusedSectionId!=null,stageWidth:t.stage.width()}),o=t.exportMode?e:zi(e,t.labelsWereVisible(),V),s=Vh(o,i);t.onLabelVisibilityChange(s),t.setSeatLabelRungOpen(s);let n=d=>{let h=d.getClientRect({skipShadow:!0,skipStroke:!0});return h.x>=0&&h.y>=0&&h.x+h.width<=t.stage.width()&&h.y+h.height<=t.stage.height()};for(let[d,h]of t.boothLabelById){let p=t.circleById.get(d);h.visible(be(h.fontSize(),o)&&!!p?.isVisible()&&t.focusedSeatOpacity(d,p?.getAbsoluteOpacity()??1)>=.5&&n(h))}t.rowLabelGroup.destroyChildren(),t.seatLabelById.clear(),t.seatLabelDrops.clear();let r=new Set,l=new Set,a=0;if(s)for(let d of t.visibleSeatCandidates()){if(d.kind==="booth")continue;let h=t.worldToScreen(d);if(h.x<-20||h.x>t.stage.width()+20||h.y<-20||h.y>t.stage.height()+20||t.accessGlyphById.has(d.id)&&t.accessGlyphShouldShow(d.id))continue;let p=t.circleById.get(d.id);if(!p?.isVisible()){t.seatLabelDrops.set(d.id,"dimmed-or-unavailable");continue}let m=t.statusById.get(d.id)??"free",f=!t.hasSeatMark(d.id)&&(m==="booked"||m==="not_for_sale"||m==="held"&&!t.ownedHold.has(d.id)&&!t.opts.manageMode),g=t.focusedSeatOpacity(d.id,p.getAbsoluteOpacity()),u=f&&!t.focusDims(d.id);if(g<.5&&!u){t.seatLabelDrops.set(d.id,"dimmed-or-unavailable");continue}let y=t.renderedSeatPoint(d),S=t.viewMode==="perspective"?t.perspectiveSeatScale.get(d.id)??1:1;if(f){let I=S*t.statusCueScale(),T=t.statusCueInk(d.id),L=t.statusCuePool.get(d.id);if(L&&L.status===m){let P=L.node;P.position(y),P.scale({x:I,y:I}),P.opacity(g<1?Qa:m==="held"?1:Co);for(let A of P.getChildren())A.stroke(T);if(Ro(t,d.id,P),l.add(d.id),++a>=qt)break;continue}L?.node.destroy();let x=new Hh({x:y.x,y:y.y,listening:!1});if(x.scale({x:I,y:I}),g<1&&x.opacity(Qa),m==="held"?(x.add(new Wh({x:-4.2,y:-.7,width:8.4,height:6.5,cornerRadius:1.3,stroke:T,strokeWidth:1.25,listening:!1})),x.add(new Za({points:[-2.4,-.8,-2.4,-2.7,-1.2,-4,0,-4.35,1.2,-4,2.4,-2.7,2.4,-.8],stroke:T,strokeWidth:1.2,lineCap:"round",lineJoin:"round",listening:!1}))):(x.opacity(Co),x.add(new Za({points:[-4.2,4.2,4.2,-4.2],stroke:T,strokeWidth:1.8,lineCap:"round",listening:!1}))),Si(x),t.statusCuePool.set(d.id,{node:x,status:m}),Ro(t,d.id,x),l.add(d.id),++a>=qt)break;continue}let b=Kh(ge*t.seatLabelScale(d),e,i),v=Vt(d.displayLabel??d.label),k=p?t.seatLabelInk(d,p):t.seatPreferredLabelInk(d),w=t.seatLabelPool.get(d.id);w?(w.position(y),w.text(v),w.fontSize(b),w.fontFamily(t.labelFont()),w.fill(k),w.offset({x:0,y:0}),w.scale({x:1,y:1})):(w=new ja({x:y.x,y:y.y,text:v,fontSize:b,fontStyle:"600",fontFamily:t.labelFont(),fill:k,listening:!1,perfectDrawEnabled:!1}),t.seatLabelPool.set(d.id,w));let C=Ao(t.seatR,i);if(w.fontSize(Xh({authoredFontSize:b,measuredWidth:w.width(),maxWidth:C,effectiveScale:e})),w.width()>C+.01){t.seatLabelDrops.set(d.id,"label-overflows-marker");continue}if(!be(w.fontSize(),e)){t.seatLabelDrops.set(d.id,"below-minimum-size");continue}if(w.offsetX(w.width()/2),w.offsetY(w.height()/2),w.scale({x:S,y:S}),Ro(t,d.id,w),!n(w)){t.seatLabelDrops.set(d.id,"outside-viewport");continue}if(r.add(d.id),t.seatLabelById.set(d.id,w),++a>=qt)break}for(let[d,h]of t.seatLabelPool)r.has(d)||(h.destroy(),t.seatLabelPool.delete(d));for(let[d,h]of t.statusCuePool)l.has(d)||(h.node.destroy(),t.statusCuePool.delete(d));let c=new tt;for(let{node:d}of t.freeTextById.values()){if(!d.isVisible())continue;let h=d.getClientRect({relativeTo:t.bgLayer,skipShadow:!0,skipStroke:!0});c.insert({x:h.x-Q,y:h.y-Q,width:h.width+Q*2,height:h.height+Q*2})}for(let d of t.rowLabelPlan){let h=t.focusedSectionId!=null&&d.focusKeys?.includes(t.focusedSectionId),p=h?Math.max(d.fontSize,zs/Math.max(e,1e-4)):d.fontSize;if(!h&&!be(p,o))continue;let m=t.worldToScreen({x:d.x,y:d.y});if(m.x<-40||m.x>t.stage.width()+40||m.y<-40||m.y>t.stage.height()+40)continue;let f=new ja({x:d.x,y:d.y,text:d.text,fontSize:p,fontStyle:"700",fontFamily:t.labelFont(),fill:d.ink,rotation:d.rotation,opacity:d.opacity,shadowColor:"#05070c",shadowBlur:d.ink.toLowerCase()==="#ffffff"?5:0,shadowOpacity:d.ink.toLowerCase()==="#ffffff"?.8:0,shadowForStrokeEnabled:!1,listening:!1,perfectDrawEnabled:!1});d.pill&&Xa(f,d.pill),f.offsetX(f.width()/2),f.offsetY(f.height()/2);let g=t.resolveAutomaticRowLabelPosition(f,d,c);f.position(g),f.setAttr("rowLabel",!0),t.rowLabelGroup.add(f);let u=f.getClientRect({skipShadow:!0,skipStroke:!0}),y=6,S=u.x<y?y-u.x:u.x+u.width>t.stage.width()-y?t.stage.width()-y-u.x-u.width:0,b=u.y<y?y-u.y:u.y+u.height>t.stage.height()-y?t.stage.height()-y-u.y-u.height:0,v=g;if(S||b){let w=t.labelGroup.getAbsoluteTransform(),C=w.point(g);v=w.copy().invert().point({x:C.x+S,y:C.y+b}),f.position(v)}let k=t.rowLabelBox(f,v);if(d.automaticAway&&c.collisionCount(k)>0){f.destroy();continue}c.insert(k)}t.isoT>0&&t.viewMode!=="perspective"&&t.applyUprightLabels(),t.overlayLayer.batchDraw()}function Yh(t){return t<0?0:t>1?1:t}function ol(t){let e=t.now??(()=>typeof performance<"u"?performance.now():Date.now()),i=t.budgetMs??8,o=t.reducedMotion===!0,s=t.chunks.length>1?Math.min(30,Math.max(0,840/(t.chunks.length-1))):0,n=0,r=!1,l=!1,a=null,c=[],d=typeof globalThis<"u"?globalThis:{},h=()=>{a&&(a.kind==="idle"?d.cancelIdleCallback?.(a.id):a.kind==="frame"?d.cancelAnimationFrame?.(a.id):clearTimeout(a.id),a=null)},p=u=>{if(!c.length&&typeof d.requestIdleCallback=="function"){a={kind:"idle",id:d.requestIdleCallback(()=>{a=null,u()},{timeout:120})};return}if(typeof d.requestAnimationFrame=="function"){a={kind:"frame",id:d.requestAnimationFrame(()=>{a=null,u()})};return}a={kind:"timer",id:setTimeout(()=>{a=null,u()},16)}},m=()=>{l||r||(l=!0,h(),t.done())},f=u=>{for(let y=c.length-1;y>=0;y--){let S=c[y],b=o?1:Yh((u-S.startedAt)/160);t.fade(S.work,b),b>=1&&c.splice(y,1)}return c.length>0},g=()=>{if(r)return;let u=e(),y=u;for(;n<t.chunks.length&&(n===0||e()-y<i);){let b=t.chunks[n++];if(t.build(b.work),t.fade(b.work,o?1:0),o||c.push({work:b.work,startedAt:u+(n-1)*s}),e()-y>=i)break}let S=f(u);t.draw(),n<t.chunks.length||S?p(g):m()};return p(g),{cancel(){if(!l){r=!0,h();for(let u of c)t.fade(u.work,1);c.length=0}},finishNow(){if(!(r||l)){for(;n<t.chunks.length;){let u=t.chunks[n++];t.build(u.work)}for(let u of t.chunks)t.fade(u.work,1);c.length=0,t.draw(),m()}},get done(){return l}}}function sl(t){let e=new Map,i=[];for(let s of t.seats){let n=t.sectionIdOf(s.id);if(n==null){i.push(s);continue}let r=e.get(n);r?r.push(s):e.set(n,[s])}let o=[...e.entries()].flatMap(([s,n])=>{let r=t.sections.find(l=>l.id===s);return r?[{chunk:{id:s,work:{seats:n,group:r.liftGroupSeat}},distance:Math.hypot(r.centroid.x-t.viewportCentre.x,r.centroid.y-t.viewportCentre.y)}]:[]}).sort((s,n)=>s.distance-n.distance).map(s=>s.chunk);return i.length&&t.looseGroup&&o.push({id:"",work:{seats:i,group:t.looseGroup}}),o}function Tt(t){return{th:Zt*Math.PI/180*t.isoT,sg:1-(1-mt)*t.isoT}}function nl(t,e){let{th:i,sg:o}=Tt(e),s=e.centre,n=t.x-s.x,r=t.y-s.y,l=n*Math.cos(i)-r*Math.sin(i),a=(n*Math.sin(i)+r*Math.cos(i))*o;return{x:s.x+l,y:s.y+a}}function rl(t,e){let{th:i,sg:o}=Tt(e),s=e.centre,n=t.x-s.x,l=(t.y-s.y)/o,a=n*Math.cos(i)+l*Math.sin(i),c=-n*Math.sin(i)+l*Math.cos(i);return{x:s.x+a,y:s.y+c}}function al(t,e){let{th:i,sg:o}=Tt(e),s=t*e.isoT;return{x:-(s/o)*Math.sin(i),y:-(s/o)*Math.cos(i)}}function ll(t,e,i){let o=Ts(e);t.offset(i),t.position(ae(e,i)),t.rotation(o.rotationDeg),t.scale({x:o.scaleX,y:o.scaleY}),t.skewX(o.skewX),t.skewY(0)}function cl(t){t.position({x:0,y:0}),t.offset({x:0,y:0}),t.scale({x:1,y:1}),t.rotation(0),t.skewX(0),t.skewY(0)}function dl(t,e){let i=Math.hypot(e.x-t.surfaceFocal.x,e.y-t.surfaceFocal.y),o=Math.max(0,i-t.frontDistanceWorld);return t.liftWorld+o*Math.tan(t.rakeDeg*Math.PI/180)}function hl(t,e,i){return t.perspectiveAffine?ae(t.perspectiveAffine,e):ae(i,e)}function ul(t,e){return e?ae(e,t):t}function pl(t,e){let i=0;for(let h of t.seats){let p=Math.max(0,(h.eyeHeightM??J)-J);i=Math.max(i,p*Ye)}for(let h of t.objects)h.type==="section"&&(i=Math.max(i,_t(h,{floorBaseHeightM:t.floorBaseHeightMFor(h.id)}).height*Ye));let o=Ls(t.bounds,i),s=Yt(o,o.target),n=Cs(s);e.seatLocal.clear(),e.seatProjected.clear(),e.seatDepth.clear(),e.seatScale.clear();let r=1/0,l=1/0,a=-1/0,c=-1/0;for(let h of t.seats){let p=Math.max(0,(h.eyeHeightM??J)-J),m=Se(o,h,p*Ye),f={x:m.x,y:m.y};e.seatProjected.set(h.id,f),e.seatLocal.set(h.id,ae(n,f)),e.seatDepth.set(h.id,m.depth),e.seatScale.set(h.id,m.scale),r=Math.min(r,m.x),l=Math.min(l,m.y),a=Math.max(a,m.x),c=Math.max(c,m.y)}for(let h of[{x:t.bounds.x,y:t.bounds.y},{x:t.bounds.x+t.bounds.width,y:t.bounds.y},{x:t.bounds.x+t.bounds.width,y:t.bounds.y+t.bounds.height},{x:t.bounds.x,y:t.bounds.y+t.bounds.height}]){let p=Se(o,h,0);r=Math.min(r,p.x),l=Math.min(l,p.y),a=Math.max(a,p.x),c=Math.max(c,p.y)}let d=Math.max(24,t.seatR*3);return{camera:o,baseAffine:s,baseInverse:n,bounds:Number.isFinite(r)?{x:r-d,y:l-d,width:Math.max(1,a-r+d*2),height:Math.max(1,c-l+d*2)}:null}}function fl(t,e,i){let o=i?[...i].map(s=>t.seatById.get(s)).filter(s=>!!s):e?t.seats:[...t.perspectiveAppliedSeats].map(s=>t.seatById.get(s)).filter(s=>!!s);for(let s of o){if(e&&t.perspectiveAppliedSeats.has(s.id))continue;let n=e?t.perspectiveSeatProjected.get(s.id)??s:s,r=e?t.perspectiveSeatScale.get(s.id)??1:1,l=t.circleById.get(s.id);l?.position(n),l?.scale({x:r,y:r});let a=t.accessRingById.get(s.id);a?.position(n),a?.scale({x:r,y:r});let c=t.accessGlyphById.get(s.id);if(c){let h=t.seatR*1.5/Ie;c.position(n),c.scale({x:h*r,y:h*r})}let d=t.boothLabelById.get(s.id);d?.position(n),d?.scale({x:r,y:r}),e&&t.perspectiveAppliedSeats.add(s.id)}e||t.perspectiveAppliedSeats.clear()}import{Group as ml}from"konva/lib/Group";import{Line as Uh}from"konva/lib/shapes/Line";import{Rect as $h}from"konva/lib/shapes/Rect";import{Text as _o}from"konva/lib/shapes/Text";function yl(t,e){let i=Ft(e.outline,e.holes),o=te(t.canvasBackground),s=[],n=new Map,r=0,l=z(e.outline),a=t.seatIndex?Xt(t.seatIndex,l).map(M=>t.seatById.get(M)).filter(M=>!!M):t.seats;for(let M of a)t.seatSection.has(M.id)||ee(M,e.outline,e.holes)&&(s.push(M.id),n.set(M.categoryKey,(n.get(M.categoryKey)??0)+1),(t.statusById.get(M.id)??"free")==="free"&&r++);let c=e.color??Nt([...n].map(([M,X])=>({hex:t.catColor.get(M)??"#6e7bff",w:X})),"#3a4358"),d=es(e.elevation),h=_t(e,{floorBaseHeightM:t.floorBaseHeightMFor(e.id)}),p=h.height*Ye,m=new ml({listening:!1});t.bgLayer.add(m);let f=new ml({listening:!1});m.add(f);let g=new st({listening:!0});t.seatLayer.add(g);let u=[];if(p>0){let M=ye(t.zoneColor.get(e.zone??"")??c,.42);for(let X=0;X<e.outline.length;X++){let G=new Uh({points:[],closed:!0,fill:M,stroke:F("#000000",.25),strokeWidth:1,opacity:0,listening:!1,perfectDrawEnabled:!1});u.push(G),m.add(G)}}f.moveToTop();let y=f,S=e.color??t.zoneColor.get(e.zone??"")??"#3a4358",b=ze(e.outline,e.holes,{stroke:F(S,.5),strokeWidth:1,fill:F(S,.08),listening:!1},e.outlinePath);y.add(b);let v=ze(e.outline,e.holes,{fill:o.sectionFill,stroke:o.sectionStroke,strokeWidth:Ge,opacity:0,listening:!1},e.outlinePath);y.add(v);let k=e.labelPresentation?.labelStyle,w=k?.color,C=o.sectionInk,I=(k?.size??18)/18,T=new $h({x:e.labelPresentation?.position?.x??i.x,y:e.labelPresentation?.position?.y??i.y,width:0,height:0,opacity:0,listening:!1,perfectDrawEnabled:!1});y.add(T);let L=new _o({x:e.labelPresentation?.position?.x??i.x,y:e.labelPresentation?.position?.y??i.y,text:e.displayLabel??e.label,rotation:e.labelPresentation?.rotation??0,visible:e.labelPresentation?.visible!==!1,fontSize:18*I,fontStyle:Me,fontFamily:t.labelFont(),fill:ue(o.sectionFill,w,C),listening:!1,perfectDrawEnabled:!1});L.offsetX(L.width()/2),L.offsetY(L.height()/2),y.add(L);let x=new _o({x:i.x,y:i.y,text:"",fontSize:12,fontStyle:Me,fontFamily:t.labelFont(),fill:ue(o.sectionFill,w,C),opacity:0,listening:!1,perfectDrawEnabled:!1});y.add(x);let P=new _o({x:i.x,y:i.y,text:N("map.seatsLeft",{count:r}),fontSize:12,fontStyle:dn,fontFamily:"JetBrains Mono, ui-monospace, monospace",fill:o.sectionInk,opacity:0,listening:!1,perfectDrawEnabled:!1});P.offsetX(P.width()/2),y.add(P);let A={id:e.id,logicalId:e.logicalSectionId??e.id,label:e.displayLabel??e.label,outline:e.outline,...e.outlinePath?{outlinePath:e.outlinePath}:{},holes:e.holes??[],centroid:i,labelAnchors:sr(e.outline,e.holes??[],i),memberCategoryKeys:new Set(s.map(M=>t.seatById.get(M)?.categoryKey).filter(Boolean)),shellCategoryColor:t.dominantSellableColor(s),shellFill:o.sectionFill,shellStroke:o.sectionStroke,labelArea:Qo(e.outline,e.holes),zone:e.zone,memberIds:s,total:s.length,free:r,baseFill:c,outlineTint:S,outlinePoly:b,blockPoly:v,namePlate:T,nameLabel:L,numberLabel:x,subLabel:P,preferredInk:C,...w?{explicitInk:w}:{},labelScale:I,nameLabelFits:!1,numberLabelFits:!1,subLabelFits:!0,elevation:d,liftWorld:p,rakeDeg:h.rake,surfaceFocal:s.length?{...t.seatById.get(s[0])?.focalPoint??t.isoCentre}:{...t.chartDoc?.focalPoint??t.isoCentre},frontDistanceWorld:0,rootGroupBg:m,bgZIndex:m.zIndex(),seatZIndex:g.zIndex(),liftGroupBg:f,liftGroupSeat:g,sideFaces:u},R=s.map(M=>t.seatById.get(M)).filter(M=>!!M),E=R.length?R:e.outline;return A.frontDistanceWorld=Math.min(...E.map(M=>Math.hypot(M.x-A.surfaceFocal.x,M.y-A.surfaceFocal.y))),A}function gl(t,e,i){if(!e?.length)return;let o=new Set(e),s=t.seats.filter(h=>!o.has(h.categoryKey)||t.seatInClosedSection(h.id)?!1:(t.statusById.get(h.id)??"free")==="free"||t.ownedHold.has(h.id));if(!s.length)return;let n=po(s.map(h=>h.id),t.seatSection);n&&t.focusSection(n);let r=Math.max(24,t.seatR*3),l=s.map(h=>t.renderedSeatPoint(h)),a=t.clusterLabels.boundsForSeats(s.map((h,p)=>({...h,...l[p]})),r),c=nt(l,r);if(a?.singleBlock&&(!t.hasSections||n!=null)){let h=t.clusterLabels.diveTarget(a.bounds,a.anchor);if(h){t.focusRegion(h,{animate:i?.animate,durationMs:t.cameraGlideMs,minScale:Math.min(t.seatLabelTargetScale(),t.zoomBounds().max),maxScale:rt(t)});return}}let d={x:c.x+c.width/2,y:c.y+c.height/2};uo({stage:t.stage,box:c,bounds:t.zoomBounds(),viewport:t.framingViewport(),centreScreen:t.worldToScreen(d)})||t.focusRegion(c,{animate:i?.animate,durationMs:t.cameraGlideMs})}function rt(t){let e=ra(Math.max(t.seatR,t.markerR));return Math.max(e,xt(t.markerR))}function bl(t,e){let i=e===void 0?t.accessFilter:e;if(!i)return!1;let o=Sl(t,i);if(!o.length)return!1;t.clearSectionFocus();let s=Math.max(24,t.seatR*3),n=nt(o.map(l=>t.renderedSeatPoint(l)),s),r={x:n.x+n.width/2,y:n.y+n.height/2};return uo({stage:t.stage,box:n,bounds:t.zoomBounds(),viewport:t.framingViewport(),centreScreen:t.worldToScreen(r)})||t.focusRegion(n,{durationMs:t.cameraGlideMs,maxScale:rt(t)}),!0}function Sl(t,e){return t.seats.filter(i=>t.seatInClosedSection(i.id)||Ae(i,e)!=="match"?!1:(t.statusById.get(i.id)??"free")==="free"||t.ownedHold.has(i.id))}function vl(t,e,i){let o=i===void 0?t.accessFilter:i;if(!o||!t.sections.some(n=>n.id===e||n.logicalId===e))return!1;let s=t.sectionMembers(e).filter(n=>{if((t.statusById.get(n)??"free")!=="free")return!1;let r=t.seatById.get(n);return r!=null&&Ae(r,o)==="match"});return s.length&&Fo(t,s)||t.focusSection(e),!0}function wl(t,e){let i=e===void 0?t.accessFilter:e;if(!i)return null;let o=Sl(t,i);if(!o.length)return null;let s=Math.max(24,t.seatR*3),n=nt(o.map(a=>t.renderedSeatPoint(a)),s),r=t.getWorldBounds(),l=r.width>0&&r.height>0&&n.width>=r.width*kt&&n.height>=r.height*kt;return{spaces:o.length,sections:Oo(t,i),wholeVenue:l}}function Fo(t,e,i){let o=e.map(a=>t.seatById.get(a)).filter(a=>a!=null);if(!o.length)return!1;let s=t.seatPitch>0?t.seatPitch:t.seatR*2,n=nt(o.map(a=>t.renderedSeatPoint(a)),Math.max(24,t.seatR*3,s*4)),r=t.getWorldBounds();if(r.width>0&&r.height>0&&n.width>=r.width*kt&&n.height>=r.height*kt)return!1;let l=po(o.map(a=>a.id),t.seatSection);return l&&t.markSectionFocus(l,{x:n.x+n.width/2,y:n.y+n.height/2}),t.focusRegion(n,{animate:i?.animate,durationMs:t.cameraGlideMs,minScale:Math.min(t.seatLabelTargetScale(),t.zoomBounds().max),maxScale:rt(t)}),!0}function kl(t,e,i=!0,o){let s=t.sectionBounds(e);if(!s)return;let n=t.sectionMembers(e).map(c=>t.seatById.get(c)).filter(c=>c!=null),r=n.filter(c=>(t.statusById.get(c.id)??"free")==="free"||t.ownedHold.has(c.id)),l=(r.length?r:n).map(c=>t.renderedSeatPoint(c)),a=t.narrowSeatDetailFocus(l,s,o);t.focusRegion(a?.bounds??s,{animate:i,minScale:a?.minScale,maxScale:rt(t)})}function Bo(t,e){if(!t.accessFilter)return 0;let i=t.accessFreeBySection.get(e.id);if(i!==void 0)return i;let o=Ll(t,e,t.accessFilter);return t.accessFreeBySection.set(e.id,o),o}function Ll(t,e,i){return _r(e.memberIds,i,o=>t.statusById.get(o)??"free",o=>t.seatById.get(o))}function Oo(t,e){let i=e===void 0?t.accessFilter:e;if(!i)return[];let o=i===t.accessFilter,s=new Map;for(let n of t.sections){if(t.isSectionClosed(n))continue;let r=o?Bo(t,n):Ll(t,n,i);if(r<=0)continue;let l=s.get(n.logicalId);l?l.free+=r:s.set(n.logicalId,{id:n.logicalId,label:n.label,free:r})}return[...s.values()]}function Li(t){return t?.getAttr?.("seatId")??void 0}var No=Object.freeze([]),xl=.85,Jh=.38,eu=Object.freeze([3,3]),Pt=class Pt{constructor(e,i={}){this.seatLabelPool=new Map;this.statusCuePool=new Map;this.labelLiftGroups=new Map;this.seats=[];this.seatById=new Map;this.seatIndex=null;this.chartDoc=null;this.activeFloorId="";this.stacked=!1;this.floorOverview=!1;this.floorLabelStyle="number";this.circleById=new Map;this.glyphMarkers=[];this.seatGlyphDetail=!0;this.boothDims=new Map;this.boothLabelById=new Map;this.seatLabelById=new Map;this.seatLabelDrops=new Map;this.seatLabelRungOpen=!1;this.accessRingById=new Map;this.accessGlyphById=new Map;this.freeTextById=new Map;this.iconNodeById=new Map;this.primaryFocalLabels=new Map;this.gaById=new Map;this.statusById=new Map;this.catColor=new Map;this.catByKey=new Map;this.theme={};this.canvasBackground=lo;this.effSelection=vt;this.colorblind=!1;this.cbHueByKey=new Map;this.rowLabelPlan=[];this.catOrder=[];this.selection=new Set;this.selectionMarkers=new Map;this.momentsCache=null;this.breathCache=null;this.ownedCache=null;this.beaconsCache=null;this.ownedHold=new Set;this.seatMarks=new bi;this.selectionFocusId=null;this.selectionFocusKeep=null;this.hiddenPose=null;this.hoveredId=null;this.focusedId=null;this.accessFilter=null;this.accessFreeBySection=new Map;this.categoryHighlight=null;this.categoryFilter=null;this.commercialLimitedFilter=!1;this.sections=[];this.zones=[];this.landmarkBoxes=[];this.seatSection=new Map;this.unsectionedSeatGroup=null;this.catPrice=new Map;this.dimmedSections=new Set;this.sectionHeat=new Map;this.closedSections=new Set;this.focusedSectionId=null;this.focusMembership=new Map;this.focusMembershipKey=null;this.focusAnchor=null;this.focusRoams=!1;this.focusBackdrop=null;this.focusDimOverlay=null;this.sectionFocusDim=!0;this.cameraGestures=0;this.objectFloor=new Map;this.unsectionedSeatIds=null;this.zoneColor=new Map;this.hasSections=!1;this.hasBoothText=!1;this.isoT=0;this.isoTarget=0;this.isoRaf=0;this.viewMode="flat";this.perspectiveCamera=null;this.perspectiveBaseAffine=null;this.perspectiveBaseInverse=null;this.perspectiveSeatLocal=new Map;this.perspectiveSeatProjected=new Map;this.perspectiveSeatDepth=new Map;this.perspectiveSeatScale=new Map;this.perspectiveAppliedSeats=new Set;this.perspectiveBounds=null;this.isoCentre={x:0,y:0};this.glideRaf=0;this.labelsVisible=!1;this.labelFadeRaf=0;this.glideInProgress=!1;this.destroyed=!1;this.lodScale=0;this.reducedMotion=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;this.cameraGlideMs=sa();this.fitScale=1;this.fitPose="";this.viewportInsets={...ko};this.seatR=le;this.markerR=le;this.seatPitch=0;this.bounds={x:0,y:0,width:1,height:1};this.cached=!1;this.dpr=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2);this.assetGeneration=0;this.assetPromises=[];this.assetErrors=[];this.assetCancels=new Set;this.seatReveal=null;this.seatRevealPending=!1;this.progressiveSeatFloor=800;this.rafId=0;this.recacheTimer=null;this.mountCachePending=!1;this.resizeObs=null;this.viewChangeRaf=0;this.zoomSettleRaf=0;this.marquee=null;this.marqueeCur=null;this.onKeyDown=e=>{if(this.opts.manageMode){if((e.metaKey||e.ctrlKey)&&(e.key==="a"||e.key==="A")){e.preventDefault(),this.opts.onMarquee?.(this.selectAllSelectable());return}if(e.key==="Escape"&&this.selection.size){e.preventDefault(),this.clearSelection(),this.opts.onMarquee?.([]);return}}let i=e.key==="ArrowLeft"?{x:-1,y:0}:e.key==="ArrowRight"?{x:1,y:0}:e.key==="ArrowUp"?{x:0,y:-1}:e.key==="ArrowDown"?{x:0,y:1}:null;if(i){e.preventDefault();let o=this.focusedId?this.nearestSeat(this.focusedId,i):this.seats[0]?.id??null;o&&this.focusSeat(o);return}if((e.key==="Enter"||e.key===" ")&&this.focusedId){e.preventDefault(),this.toggleSeat(this.focusedId);let o=this.seatById.get(this.focusedId);o&&this.opts.onFocusSeat?.(o)}};this.seatAnchorContextCache=null;this.container=e,this.opts={maxSelection:10,selectableStatuses:["free"],...i},this.exportMode=i.exportMode===!0,this.loadingReveal=i.loadingReveal??"progressive",this.onSeatsRevealed=i.onSeatsRevealed,this.currency=i.currency;let o=ki.pixelRatio;if(this.exportMode&&(this.dpr=1),ki.pixelRatio=this.dpr,this.stage=new Zh({container:e,width:e.clientWidth||1,height:e.clientHeight||1,draggable:!1}),this.gestures=new vi(this.pointerHost),this.exportMode||(e.style.touchAction="none",this.gestures.attach(),e.tabIndex<0&&(e.tabIndex=0),e.setAttribute("role","application"),e.getAttribute("aria-label")||e.setAttribute("aria-label",N("map.aria")),e.addEventListener("keydown",this.onKeyDown)),this.bgLayer=new Do({listening:!this.exportMode}),this.seatLayer=new Do({listening:!this.exportMode}),this.overlayLayer=new Do({listening:!1}),this.labelGroup=new It({listening:!1}),this.overlayLayer.add(this.labelGroup),this.rowLabelGroup=new It({listening:!1}),this.labelGroup.add(this.rowLabelGroup),this.fgDecorGroup=new It({listening:!1}),this.overlayLayer.add(this.fgDecorGroup),this.clusterLabels=new mi({labelLayer:this.overlayLayer,stage:this.stage,exportMode:this.exportMode,canvasBackground:()=>this.canvasBackground,labelFont:()=>this.labelFont(),reducedMotion:()=>this.reducedMotion,destroyed:()=>this.destroyed,hasSections:()=>this.hasSections,seats:()=>this.seats,seatR:()=>this.seatR,readableScale:()=>xt(this.markerR),pickableScale:()=>Eo(this.markerR),categoryLabel:s=>this.catByKey.get(s)?.label??"",categoryColor:s=>this.categoryDisplayColor(s),categoryPriceLabel:s=>this.categoryPriceLabel(s),categoryFilter:()=>this.categoryFilter,viewMode:()=>this.viewMode,seatsPickable:()=>this.seatsPickable(),screenToWorld:s=>this.screenToWorld(s),zoomBounds:()=>this.zoomBounds(),framingViewport:()=>this.framingViewport(),focusRegion:(s,n)=>this.focusRegion(s,n),cameraGlideMs:()=>this.cameraGlideMs}),this.hoverRing=new Cl({radius:le+2,stroke:"#ffffff",strokeWidth:2,opacity:xl,listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),this.overlayLayer.add(this.hoverRing),this.focusRing=new Cl({radius:le+3,stroke:"#38bdf8",strokeWidth:2.5,dash:[4,3],opacity:.95,listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),this.overlayLayer.add(this.focusRing),this.stage.add(this.bgLayer,this.seatLayer,this.overlayLayer),this.exportMode&&(ki.pixelRatio=o),!this.exportMode){this.wireInteraction();let s=this.opts.onFps;s&&qa(s,n=>{this.rafId=n})}!this.exportMode&&typeof ResizeObserver<"u"&&(this.resizeObs=new ResizeObserver(()=>this.handleResize()),this.resizeObs.observe(e))}get moved(){return this.gestures.moved}isGhostClick(e){return this.gestures.isGhostClick(e)}get moments(){return this.momentsCache||(this.momentsCache=new ci({overlayLayer:this.overlayLayer,seatLayer:this.seatLayer,stage:this.stage,seatRadius:()=>this.seatR,canvasBackground:()=>this.canvasBackground,selectionColor:()=>this.effSelection,reducedMotion:()=>this.reducedMotion,isDestroyed:()=>this.destroyed,isCached:()=>this.cached,isExportMode:()=>this.exportMode,labelFont:()=>this.labelFont(),viewMode:()=>this.viewMode,perspectiveSeatScale:e=>this.perspectiveSeatScale.get(e)??1,seat:e=>this.seatById.get(e),seatStatus:e=>this.statusById.get(e)??"free",seatShape:e=>this.circleById.get(e),seatPoint:e=>this.renderedSeatPoint(e),boothDims:e=>this.boothDims.get(e),selectionFocusId:()=>this.selectionFocusId,selectionFocusDims:e=>this.selectionFocusDims(e),categoryColor:e=>this.categoryDisplayColor(e),priceLabel:e=>this.categoryPriceLabel(e.categoryKey),seatClosed:e=>this.seatInClosedSection(e),screenToWorld:e=>this.screenToWorld(e),nearestSeat:(e,i)=>this.nearestSeatToScreen(e,i)})),this.momentsCache}get breath(){return this.breathCache||(this.breathCache=new di({overlayLayer:this.overlayLayer,canvasBackground:()=>this.canvasBackground,selectionColor:()=>this.effSelection,categoryColor:e=>this.categoryDisplayColor(e),seatCategoryKey:e=>this.seatById.get(e)?.categoryKey??null,isOwnedHold:e=>this.ownedHold.has(e),reducedMotion:()=>this.reducedMotion,isDestroyed:()=>this.destroyed})),this.breathCache}get beacons(){return this.beaconsCache||(this.beaconsCache=new ui({overlayLayer:this.overlayLayer,container:this.container,accent:()=>this.effSelection,accentInk:()=>no(this.effSelection),labelFont:()=>this.labelFont(),stageScale:()=>this.stage.scaleX(),worldToScreen:e=>this.worldToScreen(e),activate:e=>this.activateBeacon(e)})),this.beaconsCache}activateBeacon(e){let i=e.kind==="section"?e.id:this.seatSection.get(e.seatId)?.logicalId??null;if(i){let o=this.sectionTapAnchor(i,this.renderedSeatPoint(this.seatById.get(e.seatId)??{x:0,y:0}));this.opts.onSectionTap?this.opts.onSectionTap(i,o):this.focusSection(i,{anchor:o})}this.focusSeat(e.seatId,{move:!i})}syncBeacons(){if(!this.beaconsCache&&!this.selectionMarkers.size)return;let e=this.beacons;e.sync(Zn({rung:this.getRung(),sections:this.sections,zones:this.zones,ownedSeatIds:i=>this.ownedSeatIds(i),sectionName:i=>i.nameLabel.text()||i.logicalId,sectionAnchor:i=>this.ownedAnchor(i)})),this.breath.syncBeacons(e.breathingRings())}ownedSeatIds(e){return e.memberIds.filter(i=>this.selection.has(i)||this.ownedHold.has(i))}ownedAnchor(e){let i=this.ownedSeatIds(e).map(n=>this.seatById.get(n)).filter(n=>n!=null).map(n=>this.renderedSeatPoint(n));if(!i.length)return{x:e.nameLabel.x(),y:e.nameLabel.y()};let o=0,s=0;for(let n of i)o+=n.x,s+=n.y;return{x:o/i.length,y:s/i.length}}get owned(){return this.ownedCache||(this.ownedCache=new pi({overlayLayer:this.overlayLayer,sections:()=>this.sections,ownedPoints:e=>this.ownedSeatPoints(e),sectionColor:e=>e.shellCategoryColor,labelAnchor:e=>this.ownedAnchor(e),stageScale:()=>this.stage.scaleX(),labelFont:()=>this.labelFont()})),this.ownedCache}sectionTapAnchor(e,i){return this.owned.anchorFor(e)??i}ownedSeatPoints(e){let i=[];for(let o of e.memberIds){if(!this.selection.has(o)&&!this.ownedHold.has(o))continue;let s=this.seatById.get(o);s&&i.push(this.renderedSeatPoint(s))}return i}get pointerHost(){return{container:this.container,stage:this.stage,cancelGlide:()=>this.cancelGlide(),releaseSectionFocusDim:()=>this.releaseSectionFocusDim(),updateSeatGroupVisibility:()=>this.updateSeatGroupVisibility(),scheduleViewChange:()=>this.scheduleViewChange(),afterViewChange:()=>this.afterViewChange(),zoomBounds:()=>this.zoomBounds(),marqueeActive:()=>!!this.marquee,marqueeShouldStart:e=>!!(this.opts.manageMode&&this.opts.marqueeSelect&&e.pointerType!=="touch"&&e.button===0&&this.getRung()==="seats"),beginMarquee:e=>this.beginMarquee(e),updateMarquee:e=>this.updateMarquee(e),finishMarquee:()=>this.finishMarquee(),cancelMarquee:()=>this.cancelMarquee(),touchProbeStart:e=>this.showTouchLoupe(e),touchProbeMove:e=>this.showTouchLoupe(e),touchProbeEnd:()=>this.hideTouchLoupe()}}setChart(e,i){if(e!==this.chartDoc&&(this.stacked=!1,this.floorOverview=!1),this.cancelAssetLoads(),this.cancelSeatReveal(),this.chartDoc=e,this.activeFloorId=i?.floorId??Bt(e)[0].id,this.objectFloor.clear(),e.floors&&e.floors.length>1)for(let n of e.floors)for(let r of n.objects)this.objectFloor.set(r.id,n.id),r.type==="section"&&r.logicalSectionId&&this.objectFloor.set(r.logicalSectionId,n.id);let o=this.floorView(e);this.focusedId=null,this.focusRing.visible(!1),this.bgLayer.destroyChildren(),this.clusterLabels.clear(),this.focusDimOverlay?.destroy(),this.focusDimOverlay=null,this.seatLayer.clearCache(),this.seatLayer.listening(!this.exportMode),this.seatLayer.destroyChildren(),this.unsectionedSeatGroup=null,this.labelGroup.destroyChildren(),this.labelLiftGroups.clear(),this.seatLabelPool.clear(),this.statusCuePool.clear(),this.rowLabelGroup=new It({listening:!1}),this.labelGroup.add(this.rowLabelGroup),this.fgDecorGroup.destroyChildren(),this.circleById.clear(),this.glyphMarkers=[],this.boothDims.clear(),this.boothLabelById.clear(),this.seatLabelById.clear(),this.accessRingById.clear(),this.accessGlyphById.clear(),this.freeTextById.clear(),this.iconNodeById.clear(),this.focusMembership.clear(),this.focusMembershipKey=null,this.unsectionedSeatIds=null,this.primaryFocalLabels.clear(),this.gaById.clear();for(let n of this.selectionMarkers.values())n.destroy();this.selectionMarkers.clear(),this.beaconsCache?.clear(),this.breathCache?.syncBeacons([]),this.breathCache?.sync(this.selectionMarkers),this.ownedHold.clear(),this.seatMarks.clear(),this.selectionFocusId=null,this.selectionFocusKeep=null,this.statusById.clear(),this.accessFreeBySection.clear(),this.seatAnchorContextCache=null,this.selection.clear(),this.seatById.clear(),this.seatIndex=null,this.cached=!1,this.accessFilter=null,this.sections=[],this.zones=[],this.landmarkBoxes=[],this.seatSection.clear(),this.focusedSectionId=null,this.focusBackdrop=null,this.catPrice.clear(),this.zoneColor.clear(),this.lodScale=0,this.hasBoothText=!1,this.isoRaf&&(cancelAnimationFrame(this.isoRaf),this.isoRaf=0),this.isoT=0,this.isoTarget=0,this.viewMode="flat",this.perspectiveCamera=null,this.perspectiveBaseAffine=null,this.perspectiveBaseInverse=null,this.perspectiveSeatLocal.clear(),this.perspectiveSeatProjected.clear(),this.perspectiveSeatDepth.clear(),this.perspectiveSeatScale.clear(),this.perspectiveAppliedSeats.clear(),this.perspectiveBounds=null,this.resetLayerTransforms(),this.hasSections=o.objects.some(n=>n.type==="section");for(let n of e.zones??[])n.color&&this.zoneColor.set(n.id,n.color);this.seatLayer.opacity(1),this.hoverRing.visible(!1),this.hoveredId=null,this.theme=e.theme??{},this.seatR=Is(this.theme.seatScale)*le,this.container.style.background="",this.canvasBackground=this.resolveCanvasBackground(),this.container.style.background=this.canvasBackground,this.effSelection=this.resolveSelectionColor(),this.hoverRing.stroke(this.effSelection),this.hoverRing.radius(this.seatR+2),this.catColor.clear(),this.catByKey.clear(),this.catPrice.clear(),this.catOrder=e.categories.map(n=>n.key),this.cbHueByKey.clear(),[...this.catOrder].sort().forEach((n,r)=>{this.cbHueByKey.set(n,ni[r%ni.length])});for(let n of e.categories)this.catColor.set(n.key,n.color),this.catByKey.set(n.key,n),typeof n.price=="number"&&this.catPrice.set(n.key,n.price);for(let n of o.objects)n.type==="booth"&&this.boothDims.set(n.id,{width:n.width,height:n.height,rotation:n.rotation,...n.points&&n.points.length>=3?{points:n.points.map(r=>({x:r.x,y:r.y}))}:{}});this.seats=Ue(o,{floorBaseHeightM:this.stacked||this.floorOverview?0:this.floorBaseHeightMFor()});for(let n of this.seats)this.seatById.set(n.id,n),this.statusById.set(n.id,"free");this.seatIndex=ks(this.seats,{seatRadius:this.seatR}),this.seatPitch=Ja(this.seats),this.markerR=el(this.seatR,this.seatPitch),this.clusterLabels.rebuild(),this.bounds=ns(o,{freeText:"exclude"}),this.isoCentre={x:this.bounds.x+this.bounds.width/2,y:this.bounds.y+this.bounds.height/2},this.buildPerspectiveProjection(o),this.renderBackground(o),this.unsectionedSeatGroup=new It({listening:!this.exportMode}),this.seatLayer.add(this.unsectionedSeatGroup);let s=this.seatRevealWanted();this.seatRevealPending=s,s||this.renderSeats(),this.buildRowLabelPlan(o),this.overlayLayer.add(this.labelGroup),this.overlayLayer.add(this.fgDecorGroup),this.overlayLayer.add(this.hoverRing),this.overlayLayer.add(this.focusRing),this.mountCachePending=!s,this.zoomToFit(),s&&this.startSeatReveal()}seatRevealWanted(){return this.loadingReveal==="progressive"&&!this.exportMode&&this.sections.length>1&&this.seats.length>=this.progressiveSeatFloor}startSeatReveal(){this.cancelSeatReveal();let e=sl({seats:this.seats,sections:this.sections,sectionIdOf:i=>this.seatSection.get(i)?.id??null,looseGroup:this.unsectionedSeatGroup,viewportCentre:this.viewportCentreInChartSpace()});this.seatReveal=ol({chunks:e,build:i=>this.renderSeats(i.seats),fade:(i,o)=>i.group.opacity(o),draw:()=>{this.seatLayer.batchDraw()},reducedMotion:this.reducedMotion,done:()=>{this.seatReveal=null,this.seatRevealPending=!1,this.afterViewChange(),this.fitPose&&so(this.stage)===this.fitPose&&this.zoomToFit(),this.seatLayer.batchDraw(),this.onSeatsRevealed?.()}})}viewportCentreInChartSpace(){let e=this.stage.scaleX()||1;return{x:(this.stage.width()/2-this.stage.x())/e,y:(this.stage.height()/2-this.stage.y())/e}}cancelSeatReveal(e=!1){let i=this.seatReveal;this.seatRevealPending=!1,i&&(this.seatReveal=null,e?i.finishNow():i.cancel(),this.seats.length&&!this.destroyed&&this.updateLabels())}floorView(e){if(!e.floors?.length)return{...e,referenceImage:void 0,backgroundImage:ut(e)};if(this.floorOverview&&e.floors.length>=2)return rs(e,{labelStyle:this.floorLabelStyle});if(this.stacked&&e.floors.length>=2)return{...ss(e),referenceImage:void 0,backgroundImage:ut(e)};let i=e.floors.find(o=>o.id===this.activeFloorId)??e.floors[0];return{...e,objects:i.objects,focalPoint:i.focalPoint,referenceImage:void 0,backgroundImage:ut(i),floors:void 0}}floorBaseHeightMFor(e){let i=this.chartDoc?.floors;if(!i?.length)return 0;let o=this.stacked&&e?this.objectFloor.get(e)??this.activeFloorId:this.activeFloorId;return i.find(s=>s.id===o)?.baseHeightM??0}setStacked(e){!this.chartDoc||e===this.stacked||!(this.chartDoc.floors&&this.chartDoc.floors.length>=2)||(this.stacked=e,e&&(this.floorOverview=!1),this.setChart(this.chartDoc,{floorId:this.activeFloorId}))}isStacked(){return this.stacked}setFloorOverview(e){!this.chartDoc||e===this.floorOverview||!(this.chartDoc.floors&&this.chartDoc.floors.length>=2)||(this.floorOverview=e,e&&(this.stacked=!1),this.setChart(this.chartDoc,{floorId:this.activeFloorId}))}isFloorOverview(){return this.floorOverview}setFloorLabelStyle(e){e===this.floorLabelStyle||!this.chartDoc||(this.floorLabelStyle=e,this.floorOverview&&this.setChart(this.chartDoc,{floorId:this.activeFloorId}))}getFloorLabelStyle(){return this.floorLabelStyle}setActiveFloor(e){!this.chartDoc||e===this.activeFloorId&&!this.floorOverview&&!this.stacked||(this.floorOverview=!1,this.stacked=!1,this.setChart(this.chartDoc,{floorId:e}))}getFloors(){return this.chartDoc?Bt(this.chartDoc).map(e=>({id:e.id,name:e.name})):[]}getActiveFloorId(){return this.activeFloorId}setStatus(e,i){let o=!1,s=this.hasSections?new Set:null;for(let n of e){if(!this.statusById.has(n))continue;let r=this.statusById.get(n);if(r===i)continue;this.statusById.set(n,i);let l=this.circleById.get(n);if(l&&(this.paintSeat(l,n),o=!0),s){let a=this.seatSection.get(n);a&&(this.accessFreeBySection.delete(a.id),r==="free"!=(i==="free")&&(a.free+=i==="free"?1:-1),s.add(a))}}if(s&&s.size){for(let n of s)this.refreshSectionFill(n);this.bgLayer.batchDraw()}o&&(this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>se&&this.updateLabels())}setSeatCategories(e){let i=!1,o=new Set;for(let[n,r]of Object.entries(e)){let l=this.seatById.get(n);if(!l||!this.catColor.has(r)||l.categoryKey===r)continue;l.categoryKey=r;let a=this.circleById.get(n);a&&(this.paintSeat(a,n),i=!0);let c=this.seatSection.get(n);c&&o.add(c)}if(!i)return;let s=new Map((this.chartDoc?Bt(this.chartDoc):[]).flatMap(n=>n.objects).filter(n=>n.type==="section").map(n=>[n.id,n]));for(let n of o){if(!s.get(n.id)?.color){let l=new Map;for(let a of n.memberIds){let c=this.seatById.get(a)?.categoryKey;c&&l.set(c,(l.get(c)??0)+1)}n.baseFill=Nt([...l].map(([a,c])=>({hex:this.catColor.get(a)??"#6e7bff",w:c})),"#3a4358")}n.shellCategoryColor=this.dominantSellableColor(n.memberIds),this.refreshSectionFill(n)}o.size&&this.bgLayer.batchDraw(),this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>se&&this.updateLabels()}setOwnedHold(e){let i=new Set((e??[]).filter(s=>this.statusById.has(s))),o=new Set([...this.ownedHold,...i]);this.ownedHold=i;for(let s of o){let n=this.circleById.get(s);n&&this.paintSeat(n,s),this.syncSelectionMarker(s)}o.size&&(this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>se&&this.updateLabels(),this.overlayLayer.batchDraw())}setSelectionFocus(e){let i=e&&this.selection.has(e)?e:null;if(i===this.selectionFocusId)return;let o=this.selectionFocusId;this.selectionFocusId=i,this.selectionFocusKeep=xa({focusedId:i,seats:this.seats,seatId:r=>r.id,seatPoint:r=>this.renderedSeatPoint(r),sectionOf:r=>this.seatSection.get(r)?.logicalId??null,seatPitch:this.seatPitch,seatRadius:this.seatR});let n=o!=null&&i!=null&&Ta(o,i,r=>this.seatSection.get(r)?.logicalId??null)?[o,i]:this.seats.map(r=>r.id);for(let r of n){let l=this.circleById.get(r);l&&this.paintSeat(l,r)}o&&this.syncSelectionMarker(o),i&&this.syncSelectionMarker(i);for(let[r,l]of this.selectionMarkers)l.opacity(this.selectionFocusDims(r)?.2:1);this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.updateLabels(),this.overlayLayer.batchDraw()}setSeatMarks(e){let i=this.seatMarks.merge(e,this.statusById);for(let o of i){let s=this.circleById.get(o);s&&this.paintSeat(s,o)}i.size&&(this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw())}getSeatMark(e){return this.seatMarks.get(e)}getStatus(e){return this.statusById.get(e)??"free"}getSelection(){let e=[];for(let i of this.selection){let o=this.seatById.get(i);o&&e.push(o)}return e}clearSelection(){let e=[...this.selection];for(let i of e)this.setSelected(i,!1,!0);this.overlayLayer.batchDraw()}setMaxSelection(e){this.opts.maxSelection=Math.max(0,Math.floor(e))}select(e){let i=[];for(let o of e){if(this.selection.has(o)||!this.isSelectable(o))continue;if(this.selection.size>=this.opts.maxSelection){this.opts.onSelectionLimit?.(this.opts.maxSelection);break}this.setSelected(o,!0,!0);let s=this.seatById.get(o);s&&i.push(s)}return i.length&&this.overlayLayer.batchDraw(),i}setManageInteraction(e){this.marquee&&this.cancelMarquee(),this.gestures.resetPan(),this.opts.manageMode=e.manageMode,this.opts.marqueeSelect=e.marqueeSelect,this.opts.selectableStatuses=[...e.selectableStatuses],e.maxSelection!=null&&(this.opts.maxSelection=e.maxSelection);let i=[...this.selection].filter(o=>!this.isSelectable(o));i.length&&this.deselect(i),!e.manageMode&&this.selection.size&&this.clearSelection(),this.clusterLabels.syncCursor(!1),this.overlayLayer.batchDraw()}setSectionHeat(e){this.sectionHeat.clear();for(let[i,o]of Object.entries(e??{}))Number.isFinite(o)&&this.sectionHeat.set(i,Math.max(0,Math.min(1,o)));for(let i of this.sections)this.refreshSectionHeat(i);this.bgLayer.batchDraw()}deselect(e){let i=!1;for(let o of e)this.selection.has(o)&&(this.setSelected(o,!1,!0),i=!0);i&&this.overlayLayer.batchDraw()}selectAllSelectable(){if(!this.opts.manageMode)return[];let e=[];for(let i of this.seats)this.isSelectable(i.id)&&e.push(i.id);return this.selectMany(e)}selectByLabels(e){if(!this.opts.manageMode)return[];let i=new Set(e),o=[];for(let s of this.seats)i.has(s.label)&&this.isSelectable(s.id)&&o.push(s.id);return this.selectMany(o)}setEvidenceSelection(e){return!this.seatById.has(e)||!this.isSelectable(e)?!1:(this.selection.size&&this.clearSelection(),this.setSelected(e,!0),this.overlayLayer.batchDraw(),this.selection.has(e))}getSelectableInSection(e){let i=[],o=new Set;for(let s of this.sections)if(!(s.id!==e&&s.logicalId!==e&&s.zone!==e))for(let n of s.memberIds){if(o.has(n)||(o.add(n),!this.isSelectable(n)))continue;let r=this.seatById.get(n);r&&i.push(r)}return i}selectMany(e){let i=e.filter(s=>!this.selection.has(s));if(!i.length)return this.getSelection();let o=this.selection.size+i.length<=Xs;for(let s of i)if(o)this.setSelected(s,!0,!0);else{this.selection.add(s);let n=this.circleById.get(s);n&&this.paintSeat(n,s)}return this.cached||this.seatLayer.batchDraw(),this.overlayLayer.batchDraw(),this.getSelection()}beginMarquee(e){let i=this.screenToWorld(e),o=this.stage.scaleX()||1,s=new jh({x:i.x,y:i.y,width:0,height:0,stroke:this.effSelection,strokeWidth:1.5/o,dash:[5/o,4/o],fill:"rgba(110,123,255,0.10)",listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});this.overlayLayer.add(s),this.marquee={start:i,rect:s},this.marqueeCur=i,this.overlayLayer.batchDraw()}updateMarquee(e){if(!this.marquee)return;let i=this.screenToWorld(e),{start:o,rect:s}=this.marquee;s.setAttrs({x:Math.min(o.x,i.x),y:Math.min(o.y,i.y),width:Math.abs(i.x-o.x),height:Math.abs(i.y-o.y)}),this.marqueeCur=i,this.overlayLayer.batchDraw()}cancelMarquee(){this.marquee&&(this.marquee.rect.destroy(),this.marquee=null,this.marqueeCur=null,this.overlayLayer.batchDraw())}finishMarquee(){let e=this.marquee;if(this.marquee=null,!e)return;e.rect.destroy(),this.overlayLayer.batchDraw();let i=this.marqueeCur??e.start;this.marqueeCur=null;let o=Math.min(e.start.x,i.x),s=Math.max(e.start.x,i.x),n=Math.min(e.start.y,i.y),r=Math.max(e.start.y,i.y),l=this.stage.scaleX()||1;if((s-o)*l<4&&(r-n)*l<4){this.selection.size&&(this.clearSelection(),this.opts.onMarquee?.([]));return}let a=[];for(let c of this.seats){let d=this.renderedSeatPoint(c);d.x<o||d.x>s||d.y<n||d.y>r||this.isSelectable(c.id)&&a.push(c.id)}this.selectMany(a),this.opts.onMarquee?.(this.getSelection())}flashSeat(e,i="#f43f5e"){let o=this.seatById.get(e);o&&Yr(this.flashHost,e,this.renderedSeatPoint(o),i)}flashSection(e,i="#22a06b"){Ur(this.flashHost,this.sections.filter(o=>o.id===e||o.zone===e),i)}get flashHost(){return{overlayLayer:this.overlayLayer,seatRadius:()=>this.seatR,reducedMotion:()=>this.reducedMotion,isDestroyed:()=>this.destroyed,viewMode:()=>this.viewMode,perspectiveSeatScale:e=>this.perspectiveSeatScale.get(e)??1,perspectiveLocalPoint:e=>this.perspectiveLocalPoint(e),projectedSectionPoint:(e,i)=>this.projectedSectionPoint(e,i),isoLiftLocal:e=>this.isoLiftLocal(e)}}nearestSeat(e,i){let o=this.seatById.get(e);if(!o)return null;let s=this.viewMode==="perspective"?this.perspectiveSeatProjected.get(o.id)??o:o,n=null,r=1/0;for(let l of this.seats){if(l.id===e)continue;let a=this.viewMode==="perspective"?this.perspectiveSeatProjected.get(l.id)??l:l,c=a.x-s.x,d=a.y-s.y,h=c*i.x+d*i.y;if(h<=.5)continue;let p=Math.abs(c*i.y-d*i.x),m=h+p*2.5;m<r&&(r=m,n=l.id)}return n}focusSeat(e,i){let o=this.seatById.get(e);if(!o)return;this.focusedId=e,this.focusRing.radius(this.seatR+3),this.focusRing.position(this.renderedSeatPoint(o));let s=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e)??1:1;this.focusRing.scale({x:s,y:s}),this.focusRing.visible(!0),i?.move!==!1&&this.ensureVisible(o),this.overlayLayer.batchDraw(),this.opts.onFocusSeat?.(o)}ensureVisible(e){let i=this.stage.width(),o=this.stage.height(),s=Math.max(this.stage.scaleX(),De*1.2),n=this.worldToScreen(e),r=70,l=n.x<r||n.x>i-r||n.y<r||n.y>o-r;if(this.stage.scaleX()<s||l){let a=this.renderedSeatPoint(e),c=this.viewMode==="perspective"&&this.perspectiveBaseAffine?ae(this.perspectiveBaseAffine,a):this.isoT===0?a:this.isoForward(a);this.stage.scale({x:s,y:s}),this.stage.position({x:i/2-c.x*s,y:o/2-c.y*s}),this.afterViewChange(),this.stage.batchDraw()}}setViewportInsets(e){this.viewportInsets=Qr(e),this.refitCurrentView()}getViewportInsets(){return{...this.viewportInsets}}framingViewport(){return Jr(this.stage.width(),this.stage.height(),this.viewportInsets)}framingWorldRect(){return ia(this.framingViewport(),e=>this.screenToWorld(e))}zoomToFit(){let e=this.framingViewport(),i=e.width,o=e.height,s=this.viewMode==="perspective"&&this.perspectiveBounds?this.perspectiveBounds:this.bounds;if(this.fitScale=Math.min(i/s.width,o/s.height)||1,this.opts.portraitFitCrop&&!this.exportMode){let r=i/s.width<=o/s.height,l=s.height*this.fitScale;r&&l<.55*o&&(this.fitScale=Math.min(this.fitScale*1.3,.62*o/s.height))}let n=this.fitScale;if(this.stage.scale({x:n,y:n}),this.stage.position({x:e.x+(i-s.width*n)/2-s.x*n,y:e.y+(o-s.height*n)/2-s.y*n}),this.settleView(),!this.exportMode){let r=er(this.stage,[this.bgLayer,this.seatLayer],e,this.effScale()<ke?ke*.999999*(this.stage.scaleX()/Math.max(this.effScale(),1e-9)):void 0);r>0&&r!==1&&(this.fitScale*=r),r>0&&(this.afterViewChange(),tr(this.stage,[this.bgLayer,this.seatLayer],e)),this.fitPose=so(this.stage)}this.stage.batchDraw()}refitCurrentView(){if(this.focusedSectionId&&this.sectionBounds(this.focusedSectionId)){this.focusSectionCamera(this.focusedSectionId,!1,this.focusAnchor);return}if(this.categoryFilter?.size){this.focusCategories([...this.categoryFilter],{animate:!1});return}this.zoomToFit()}getCameraPose(){return ea(this.stage)}setCameraPose(e){this.cancelGlide(),ta(this.stage,e)&&(this.settleView(),this.stage.batchDraw())}zoomIn(){this.zoomAbout(this.stage.scaleX()*Pt.ZOOM_STEP,yi(this.framingViewport()))}zoomOut(){this.zoomAbout(this.stage.scaleX()/Pt.ZOOM_STEP,yi(this.framingViewport()))}zoomOutLevel(){let e=this.focusedSectionId;return e?this.sectionBounds(e)&&this.stage.scaleX()>this.sectionFrameScale(e)*1.05?(this.focusRegion(e,{maxScale:this.diveCeiling()}),"section"):"venue":this.getRung()==="seats"?(this.setRung("sections"),"sections"):(this.cancelGlide(),this.zoomToFit(),"venue")}seatCount(){return this.seats.length}bookableCount(){let e=this.seats.length;for(let i of this.gaById.values())e+=i.capacity;return e}worldToScreen(e){let i=this.stage.scaleX(),o=e.id,s=typeof o=="string"?this.seatById.get(o):void 0;if(this.viewMode==="perspective"&&this.perspectiveBaseAffine){let l=s?this.perspectiveSeatProjected.get(s.id)??ae(this.perspectiveBaseAffine,e):ae(this.perspectiveBaseAffine,e);return{x:l.x*i+this.stage.x(),y:l.y*i+this.stage.y()}}let n=s?this.renderedSeatPoint(s):e,r=this.isoT===0?n:this.isoForward(n);return{x:r.x*i+this.stage.x(),y:r.y*i+this.stage.y()}}setAccessibleFilter(e){this.setAccessibilityFilter(e?[]:null)}setAccessibilityFilter(e){let i=e===null?null:[...e];if(!this.sameAccessFilter(i)){this.accessFilter=i,this.accessFreeBySection.clear();for(let o of this.sections)this.refreshSectionFill(o);this.lodScale=0,this.updateLOD(),this.updateAccessGlyphs(this.effScale());for(let o of this.seats){let s=this.circleById.get(o.id);s&&this.paintSeat(s,o.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw()}}sameAccessFilter(e){let i=this.accessFilter;return i===null||e===null?i===e:i.length===e.length&&i.every((o,s)=>o===e[s])}setCommercialLimitedFilter(e){if(this.commercialLimitedFilter!==e){this.commercialLimitedFilter=e;for(let i of this.seats){let o=this.circleById.get(i.id);o&&this.paintSeat(o,i.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw()}}setCategoryFilter(e){let i=e===null?null:new Set(e);if(!Cr(i,this.categoryFilter)){this.categoryFilter=i,this.lodScale=0,this.updateLOD();for(let o of this.seats){let s=this.circleById.get(o.id);s&&this.paintSeat(s,o.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.applyGAFilterState()}}applyGAFilterState(){this.clusterLabels.applyFilterDim(),this.paintGAStateForView(),this.updateFreeTextVisibility(),this.bgLayer.batchDraw()}paintGAStateForView(){La({gaById:this.gaById,bgLayer:this.bgLayer,exportMode:this.exportMode,pickerMode:!!this.opts.gaPickerMode,selectionColor:this.effSelection,labelFont:()=>this.labelFont(),filteredOut:e=>!!(this.categoryFilter&&!this.categoryFilter.has(e)),dimmed:e=>ka(this.categoryHighlight,this.categoryFilter,e),overviewHidden:e=>!this.exportMode&&e.sectionId!=null&&this.effScale()<ce,effScale:()=>this.effScale(),labelLegible:e=>be(e,this.effScale())})}setGAStates(e){Ca(this.gaById,e)&&this.applyGAFilterState()}setGAState(e,i){this.setGAStates({[e]:i})}get focusFramingContext(){return{stage:this.stage,seats:this.seats,sections:this.sections,hasSections:this.hasSections,seatById:this.seatById,seatSection:this.seatSection,statusById:this.statusById,ownedHold:this.ownedHold,accessFilter:this.accessFilter,accessFreeBySection:this.accessFreeBySection,clusterLabels:this.clusterLabels,seatR:this.seatR,markerR:this.markerR,seatPitch:this.seatPitch,cameraGlideMs:this.cameraGlideMs,seatInClosedSection:e=>this.seatInClosedSection(e),isSectionClosed:e=>this.isSectionClosed(e),renderedSeatPoint:e=>this.renderedSeatPoint(e),sectionMembers:e=>this.sectionMembers(e),sectionBounds:e=>this.sectionBounds(e),seatLabelTargetScale:()=>this.seatLabelTargetScale(),zoomBounds:()=>this.zoomBounds(),framingViewport:()=>this.framingViewport(),worldToScreen:e=>this.worldToScreen(e),getWorldBounds:()=>this.getWorldBounds(),narrowSeatDetailFocus:(e,i,o)=>this.narrowSeatDetailFocus(e,i,o),focusSection:(e,i)=>this.focusSection(e,i),markSectionFocus:(e,i)=>this.markSectionFocus(e,i),clearSectionFocus:()=>this.clearSectionFocus(),focusRegion:(e,i)=>this.focusRegion(e,i)}}focusCategories(e,i){gl(this.focusFramingContext,e,i)}diveCeiling(){return rt(this.focusFramingContext)}focusAccessibleSeats(e){return bl(this.focusFramingContext,e)}focusAccessibleSection(e,i){return vl(this.focusFramingContext,e,i)}accessibleSpread(e){return wl(this.focusFramingContext,e)}setViewMode(e){if(e==="perspective"){if(this.viewMode===e){this.afterViewChange();return}let l=this.viewMode==="isometric"&&this.isoT>0;this.viewMode=e,this.isoTarget=1,this.isoT=1,this.isoRaf&&(cancelAnimationFrame(this.isoRaf),this.isoRaf=0),this.applyPerspective(l),this.zoomToFit();return}let i=e==="isometric"?1:0,o=this.viewMode==="perspective";if(this.viewMode=e,this.isoTarget=i,this.isoRaf&&(cancelAnimationFrame(this.isoRaf),this.isoRaf=0),o){this.isoT=i,this.applyIso(),this.afterViewChange();return}if(this.reducedMotion){this.isoT=i,this.applyIso(),this.afterViewChange();return}let s=this.isoT;if(s===i){this.applyIso(),this.afterViewChange();return}let n=performance.now(),r=l=>{if(this.destroyed)return;let a=Math.min(1,(l-n)/Ys),c=a<.5?4*a*a*a:1-Math.pow(-2*a+2,3)/2;this.isoT=s+(this.isoTarget-s)*c,this.applyIso(),this.scheduleViewChange(),a<1?this.isoRaf=requestAnimationFrame(r):(this.isoT=this.isoTarget,this.isoRaf=0,this.applyIso(),this.afterViewChange())};this.isoRaf=requestAnimationFrame(r)}getViewMode(){return this.viewMode}get isoState(){return{isoT:this.isoT,centre:this.isoCentre}}isoParams(){return Tt(this.isoState)}effScale(){if(this.viewMode==="perspective"&&this.perspectiveBaseAffine){let e=Math.hypot(this.perspectiveBaseAffine.a,this.perspectiveBaseAffine.b),i=Math.hypot(this.perspectiveBaseAffine.c,this.perspectiveBaseAffine.d);return this.stage.scaleX()*Math.min(e,i)}return this.stage.scaleX()*(1-(1-mt)*this.isoT)}isoForward(e){return nl(e,this.isoState)}isoInverse(e){return rl(e,this.isoState)}buildPerspectiveProjection(e){let i=pl({seats:this.seats,objects:e.objects,bounds:this.bounds,seatR:this.seatR,floorBaseHeightMFor:o=>this.floorBaseHeightMFor(o)},{seatLocal:this.perspectiveSeatLocal,seatProjected:this.perspectiveSeatProjected,seatDepth:this.perspectiveSeatDepth,seatScale:this.perspectiveSeatScale});this.perspectiveCamera=i.camera,this.perspectiveBaseAffine=i.baseAffine,this.perspectiveBaseInverse=i.baseInverse,this.perspectiveBounds=i.bounds}setContainerAffine(e,i,o){ll(e,i,o)}resetContainerTransform(e){cl(e)}sectionSurfaceHeight(e,i){return dl(e,i)}projectedSectionPoint(e,i){return hl(e,i,this.perspectiveBaseAffine)}perspectiveLocalPoint(e){return ul(e,this.perspectiveBaseInverse)}isoLiftLocal(e){return al(e,this.isoState)}resetLayerTransforms(e=!0){let i=e?[this.bgLayer,this.seatLayer,this.overlayLayer]:[this.bgLayer,this.overlayLayer];for(let o of i)o.position({x:0,y:0}),o.offset({x:0,y:0}),o.scale({x:1,y:1}),o.rotation(0),o.skewX(0),o.skewY(0)}resetSectionProjection(e=!0){for(let i of this.sections){this.resetContainerTransform(i.rootGroupBg),this.resetContainerTransform(i.liftGroupBg),e&&this.resetContainerTransform(i.liftGroupSeat),i.rootGroupBg.zIndex(i.bgZIndex),e&&i.liftGroupSeat.zIndex(i.seatZIndex);let o=this.labelLiftGroups.get(i.id);o&&e&&this.resetContainerTransform(o),i.perspectiveAffine=void 0,i.perspectiveCorrection=void 0,i.perspectiveDepth=void 0}}get seatAnchorContext(){return this.seatAnchorContextCache??={seats:this.seats,seatById:this.seatById,seatR:this.seatR,perspectiveSeatProjected:this.perspectiveSeatProjected,perspectiveSeatScale:this.perspectiveSeatScale,perspectiveAppliedSeats:this.perspectiveAppliedSeats,circleById:this.circleById,accessRingById:this.accessRingById,accessGlyphById:this.accessGlyphById,boothLabelById:this.boothLabelById}}applyExactSeatAnchors(e,i){fl(this.seatAnchorContext,e,i)}applyPerspective(e=!0){let i=this.perspectiveCamera,o=this.perspectiveBaseAffine,s=this.perspectiveBaseInverse;if(!i||!o||!s)return;let n=this.seats.length>2500&&this.sections.length>0;this.cached&&!n&&(this.seatLayer.clearCache(),this.seatLayer.listening(!0),this.cached=!1),this.resetLayerTransforms(e),this.resetSectionProjection(e);for(let l of[this.bgLayer,this.overlayLayer])this.setContainerAffine(l,o,i.target);this.perspectiveAppliedSeats.clear(),n||this.applyExactSeatAnchors(!0);for(let l of this.sections){let a=h=>this.sectionSurfaceHeight(l,h),c=Yt(i,l.centroid,a),d=xs(s,c);l.perspectiveAffine=c,l.perspectiveCorrection=d,l.perspectiveDepth=Se(i,l.centroid,a(l.centroid)).depth,this.setContainerAffine(l.liftGroupBg,d,l.centroid);for(let h=0;h<l.sideFaces.length;h++){let p=l.outline[h],m=l.outline[(h+1)%l.outline.length],f=this.perspectiveLocalPoint(Se(i,p,0)),g=this.perspectiveLocalPoint(Se(i,m,0)),u=this.perspectiveLocalPoint(Se(i,m,a(m))),y=this.perspectiveLocalPoint(Se(i,p,a(p)));l.sideFaces[h].points([f.x,f.y,g.x,g.y,u.x,u.y,y.x,y.y]),l.sideFaces[h].opacity(.9)}}let r=[...this.sections].sort((l,a)=>(a.perspectiveDepth??0)-(l.perspectiveDepth??0));for(let l of r)l.rootGroupBg.moveToTop(),l.liftGroupSeat.moveToTop();this.unsectionedSeatGroup?.moveToTop(),this.syncSeatOverlayPositions(),n||this.updateSeatGroupVisibility(),this.bgLayer.batchDraw(),this.seatLayer.batchDraw(),this.overlayLayer.batchDraw()}applyIso(){if(this.resetSectionProjection(),this.applyExactSeatAnchors(!1),this.isoT===0)this.resetLayerTransforms();else{let{th:i,sg:o}=this.isoParams(),s=Math.cos(i),n=o*Math.sin(i),r=-Math.sin(i),l=o*Math.cos(i),a=Math.sqrt(s*s+n*n),c=s*l-n*r,d=Math.atan2(n,s)*180/Math.PI,h=a,p=c/a,m=(s*r+n*l)/c,f=this.isoCentre;for(let g of[this.bgLayer,this.seatLayer,this.overlayLayer])g.position({x:f.x,y:f.y}),g.offset({x:f.x,y:f.y}),g.rotation(d),g.scaleX(h),g.scaleY(p),g.skewX(m),g.skewY(0)}this.applyUprightLabels(),this.applyElevation(),this.updateSeatGroupVisibility(),this.bgLayer.batchDraw(),this.seatLayer.batchDraw(),this.overlayLayer.batchDraw()}applyUprightLabels(){let e=Zt*this.isoT,i=1/(1-(1-mt)*this.isoT),o=this.hasBoothText?[this.bgLayer,this.seatLayer,this.overlayLayer]:[this.bgLayer,this.overlayLayer];for(let s of o){let n=s.find("Text");for(let r of n){let l=r.getAttr("uprightBase");l==null&&(l=r.rotation(),r.setAttr("uprightBase",l)),r.rotation(l-e),r.scaleX(1),r.scaleY(i),r.skewX(0)}}}applyElevation(){let e=this.isoT;for(let i of this.sections){if(i.liftWorld<=0)continue;let o=this.isoLiftLocal(i.liftWorld);i.liftGroupBg?.position(o),i.liftGroupSeat.position(o),this.labelLiftGroups.get(i.id)?.position(o);let s=.9*e;for(let n=0;n<i.sideFaces.length;n++){let r=i.sideFaces[n],l=i.outline[n],a=i.outline[(n+1)%i.outline.length];r.points([l.x,l.y,a.x,a.y,a.x+o.x,a.y+o.y,l.x+o.x,l.y+o.y]),r.opacity(s)}}this.syncSeatOverlayPositions()}destroy(){this.destroyed=!0,this.cancelAssetLoads(),this.cancelSeatReveal(),this.recacheTimer&&(clearTimeout(this.recacheTimer),this.recacheTimer=null),this.rafId&&cancelAnimationFrame(this.rafId),this.isoRaf&&cancelAnimationFrame(this.isoRaf),this.glideRaf&&cancelAnimationFrame(this.glideRaf),this.viewChangeRaf&&cancelAnimationFrame(this.viewChangeRaf),this.zoomSettleRaf&&cancelAnimationFrame(this.zoomSettleRaf),this.breathCache?.destroy(),this.momentsCache?.destroy(),this.beaconsCache?.clear(),this.recacheTimer&&clearTimeout(this.recacheTimer),this.resizeObs?.disconnect(),this.gestures.detach(),this.clusterLabels.destroy(),this.container.removeEventListener("keydown",this.onKeyDown),this.stage.destroy()}labelFont(){return this.exportMode?this.theme.fontFamily?.toLowerCase().includes("jetbrains")?"JetBrains Mono, monospace":"Inter, sans-serif":this.theme.fontFamily||"Inter, sans-serif"}seatContainer(e){return this.seatSection.get(e)?.liftGroupSeat??this.unsectionedSeatGroup??this.seatLayer}sectionMatchesFocus(e){let i=this.focusedSectionId;return i==null||e.id===i||e.logicalId===i||e.zone===i}selectionFocusDims(e){return this.selectionFocusId?!(this.selectionFocusKeep?.has(e)??e===this.selectionFocusId):!1}focusedSeatOpacity(e,i){if(!this.focusedSectionId||!this.focusDimOverlay)return i;let o=this.seatSection.get(e);return i*(o&&this.sectionMatchesFocus(o)?1:Le)}sectionScreenBounds(e){return nr({viewMode:this.viewMode,isoT:this.isoT,stageScale:this.stage.scaleX(),stageX:this.stage.x(),stageY:this.stage.y(),projectedSectionPoint:(i,o)=>this.projectedSectionPoint(i,o),isoLiftLocal:i=>this.isoLiftLocal(i),isoForward:i=>this.isoForward(i)},e)}updateSeatGroupVisibility(){let e=this.exportMode||this.effScale()>=ce,i=this.viewMode==="perspective"&&this.glideInProgress&&this.seats.length>2500,o=96,s=this.stage.width(),n=this.stage.height();for(let r of this.sections){let l=!0;if(e){let c=this.sectionScreenBounds(r);l=c.x+c.width>=-o&&c.y+c.height>=-o&&c.x<=s+o&&c.y<=n+o,l&&this.viewMode==="perspective"&&!i&&this.applyExactSeatAnchors(!0,r.memberIds)}r.liftGroupSeat.setViewportCulled(!l),this.labelLiftGroups.get(r.id)?.setViewportCulled(!l)}this.unsectionedSeatGroup&&!this.unsectionedSeatGroup.visible()&&this.unsectionedSeatGroup.visible(!0),e&&this.viewMode==="perspective"&&!i&&(this.unsectionedSeatIds||(this.unsectionedSeatIds=this.seats.filter(r=>!this.seatSection.has(r.id)).map(r=>r.id)),this.applyExactSeatAnchors(!0,this.unsectionedSeatIds))}visibleSeatCandidates(){if(!this.sections.length)return this.seats;let e=[];for(let i of this.sections)if(!i.liftGroupSeat.isViewportCulled())for(let o of i.memberIds){let s=this.seatById.get(o);s&&e.push(s)}for(let i of this.seats)this.seatSection.has(i.id)||e.push(i);return e}seatViewportCulled(e){return this.seatSection.get(e)?.liftGroupSeat.isViewportCulled()??!1}renderedSeatPoint(e){if(this.viewMode==="perspective")return this.perspectiveSeatLocal.get(e.id)??e;let i=this.seatSection.get(e.id);if(!i||i.liftWorld<=0||this.isoT===0)return e;let o=this.isoLiftLocal(i.liftWorld);return{x:e.x+o.x,y:e.y+o.y}}seatLabelContainer(e){let i=this.seatSection.get(e);if(!i)return this.labelGroup;let o=this.labelLiftGroups.get(i.id);return o||(o=new st({listening:!1}),o.setViewportCulled(i.liftGroupSeat.isViewportCulled()),o.position(this.viewMode==="perspective"?{x:0,y:0}:this.isoLiftLocal(i.liftWorld)),this.labelGroup.add(o),this.labelLiftGroups.set(i.id,o)),o}syncSeatOverlayPositions(){if(this.hoveredId){let e=this.seatById.get(this.hoveredId);if(e){this.hoverRing.position(this.renderedSeatPoint(e));let i=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e.id)??1:1;this.hoverRing.scale({x:i,y:i})}}if(this.focusedId){let e=this.seatById.get(this.focusedId);if(e){this.focusRing.position(this.renderedSeatPoint(e));let i=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e.id)??1:1;this.focusRing.scale({x:i,y:i})}}for(let[e,i]of this.selectionMarkers){let o=this.seatById.get(e);if(o){i.position(this.renderedSeatPoint(o));let s=this.viewMode==="perspective"?this.perspectiveSeatScale.get(o.id)??1:1;i.scale({x:s,y:s})}}}renderSeats(e=this.seats){Sr({seats:e,seatR:this.seatR,theme:this.theme,seatGlyphDetail:this.seatGlyphDetail,setHasBoothText:()=>{this.hasBoothText=!0},circleById:this.circleById,glyphMarkers:this.glyphMarkers,boothDims:this.boothDims,boothLabelById:this.boothLabelById,accessGlyphById:this.accessGlyphById,accessRingById:this.accessRingById,catByKey:this.catByKey,perspectiveSeatDepth:this.perspectiveSeatDepth,seatContainer:i=>this.seatContainer(i),buildAccessGlyph:(i,o)=>this.buildAccessGlyph(i,o),paintSeat:(i,o)=>this.paintSeat(i,o),labelFont:()=>this.labelFont()})}buildAccessGlyph(e,i){let o=this.seatR*1.5/Ie,s=new Qh({x:e.x,y:e.y,data:Wt(e.accessibility??[])??"",scaleX:o,scaleY:o,fill:Di(i),listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});return Si(s),s}updateAccessGlyphs(e){if(this.accessGlyphById.size)for(let[i,o]of this.accessGlyphById){let s=this.viewMode==="perspective"?this.perspectiveSeatScale.get(i)??1:1,n=this.seatR*1.5/Ie*s,l=this.accessGlyphFilterEmphasized(i)?Hs:Gs,a=Math.max(n,l/(Ie*Math.max(e,.001)));o.scale({x:a,y:a}),o.visible(this.accessGlyphShouldShow(i))}}accessGlyphFilterEmphasized(e){let i=this.seatById.get(e),o=this.accessFilter;return!!i&&o!==null&&!!i.accessibility?.includes("wheelchair")&&(o.length===0||o.includes("wheelchair"))&&Ce(i,o)}accessGlyphShouldShow(e){return this.accessGlyphById.has(e)&&this.accessGlyphEligible(e)}accessGlyphEligible(e){let i=this.statusById.get(e)??"free";return!(i==="booked"||i==="held"&&!this.ownedHold.has(e)&&!this.opts.manageMode)}categoryPriceLabel(e){let i=this.catPrice.get(e);return typeof i=="number"?bt(i,this.currency):null}categoryDisplayColor(e){return this.colorblind?this.cbHueByKey.get(e)??ni[0]:this.catColor.get(e)??"#6e7bff"}seatLabelScale(e){return(e.labelStyle?.size??18)/18}seatPreferredLabelInk(e){return e.labelStyle?.color??this.theme.seatLabelColor??it}seatLabelInk(e,i){let o=i.fill();return ue(typeof o=="string"?o:"",e.labelStyle?.color,this.theme.seatLabelColor??it,$e)}paintSeat(e,i){let o=this.seatById.get(i),s=this.statusById.get(i)??"free",n=this.selection.has(i),r=this.categoryDisplayColor(o.categoryKey),l=this.boothLabelById.get(i);e.dash(No),e.strokeWidth(0),e.stroke(""),e.opacity(1),e.scale({x:1,y:1});let a=s==="held"&&this.ownedHold.has(i),c=a?null:ga(s,this.canvasBackground,this.colorblind);c?(e.fill(c.fill),e.stroke(c.stroke),e.strokeWidth(c.strokeWidth),e.dash(c.dash),e.opacity(c.opacity),c.scale!==1&&e.scale({x:c.scale,y:c.scale})):a?(e.fill(Te(r,this.effSelection===vt?.24:.1)),e.stroke(this.effSelection),e.strokeWidth(3)):e.fill(n&&this.effSelection===vt?Te(r,.28):r),this.seatMarks.paint(e,i,s,r,this.seatR,this.colorblind,this.seatInClosedSection(i)),Lo(e)&&e.scale({x:1,y:1}),o.wheelchairSpaceType==="no-seat"&&s==="free"&&(e.stroke(Et(o.accessibility)),e.strokeWidth(n?3:2),e.dash([3,2])),l&&(l.text(s==="booked"?"SOLD":s==="held"?"HELD":o.label),l.fontSize(s==="free"?10:Math.min(10,Math.max(6,this.boothDims.get(o.rowId)?.width??40)/6)),l.fontStyle(s==="free"?"600":"800"),l.fill(s==="free"?this.theme.seatLabelColor??it:"#ffffff"),l.offsetX(l.width()/2),l.offsetY(l.height()/2));let d=s==="free"||s==="held"&&!this.ownedHold.has(i),h=()=>{let f=e.fill();typeof f=="string"&&e.fill(Ia(f,this.canvasBackground))};if(this.accessFilter&&d&&!n){let f=Ae(o,this.accessFilter);f==="other"?(h(),e.opacity(Math.min(e.opacity(),dr))):f==="companion"&&e.opacity(Math.min(e.opacity(),hr))}if(this.categoryHighlight&&s==="free"&&!n&&o.categoryKey!==this.categoryHighlight&&e.opacity(.25),this.categoryFilter&&d&&!n&&!this.categoryFilter.has(o.categoryKey)&&(h(),e.opacity(.22)),this.commercialLimitedFilter&&s==="free"&&!n&&(o.commercial?.restrictedView||o.commercial?.obstructedView)&&e.opacity(.22),this.dimmedSections.size){let f=this.seatSection.get(i);(f?this.dimmedSections.has(f.id)||this.dimmedSections.has(f.logicalId)||f.zone!=null&&this.dimmedSections.has(f.zone):this.dimmedSections.has(ls))&&e.opacity(.18)}this.closedSections.size&&this.seatInClosedSection(i)&&(e.fill(gn),e.stroke(""),e.strokeWidth(0),e.dash(No),e.opacity(bn),e.scale({x:1,y:1})),this.selectionFocusDims(i)&&e.opacity(Math.min(e.opacity(),.16));let p=this.boothLabelById.get(i)??this.seatLabelById.get(i);p&&(p.fill(this.seatLabelInk(o,e)),p.visible(be(p.fontSize(),this.effScale())&&e.opacity()>=.5));let m=this.accessGlyphById.get(i);if(m){let f=e.fill();m.fill(Di(typeof f=="string"?f:"")),m.opacity(e.opacity()),m.visible(this.accessGlyphShouldShow(i))}this.accessRingById.get(i)?.opacity(e.opacity())}seatInClosedSection(e){if(!this.closedSections.size)return!1;let i=this.seatSection.get(e);return!!i&&(this.closedSections.has(i.id)||this.closedSections.has(i.logicalId)||i.zone!=null&&this.closedSections.has(i.zone))}setColorblindSafe(e){if(e!==this.colorblind){this.colorblind=e;for(let i of this.seats){let o=this.circleById.get(i.id);o&&this.paintSeat(o,i.id)}for(let i of this.sections)i.shellCategoryColor=this.dominantSellableColor(i.memberIds),this.refreshSectionFill(i);this.bgLayer.batchDraw(),this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw()}}setDimmedSections(e){let i=new Set(e??[]);if(!(i.size===this.dimmedSections.size&&[...i].every(o=>this.dimmedSections.has(o)))){this.dimmedSections=i;for(let o of this.seats){let s=this.circleById.get(o.id);s&&this.paintSeat(s,o.id)}this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw()}}setClosedSections(e){let i=new Set(e??[]);i.size===this.closedSections.size&&[...i].every(o=>this.closedSections.has(o))||(this.closedSections=i,this.repaintSectionsAndSeats())}focusSection(e,i){this.markSectionFocus(e,i?.anchor??null)&&this.focusSectionCamera(e,!0,i?.anchor)}markSectionFocus(e,i){return this.sections.some(o=>o.id===e||o.logicalId===e)?(this.focusedSectionId=e,this.focusAnchor=i,this.focusRoams=!1,this.sectionFocusDim&&this.drawFocusBackdrop(e),this.bgLayer.batchDraw(),this.overlayLayer.batchDraw(),this.updateLOD(),!0):!1}focusSeats(e,i){return Fo(this.focusFramingContext,e,i)}focusSectionCamera(e,i=!0,o){kl(this.focusFramingContext,e,i,o)}releaseSectionFocusDim(){this.cameraGestures+=1,this.focusRoams=!0,this.dropFocusDim()}dropFocusDim(){!this.focusBackdrop&&!this.focusDimOverlay||(this.focusBackdrop?.destroy(),this.focusBackdrop=null,this.focusDimOverlay?.destroy(),this.focusDimOverlay=null,this.bgLayer.batchDraw(),this.overlayLayer.batchDraw())}setSectionFocusDim(e){this.sectionFocusDim!==e&&(this.sectionFocusDim=e,e||this.dropFocusDim())}clearSectionFocus(){this.focusedSectionId&&(this.focusedSectionId=null,this.focusAnchor=null,this.focusRoams=!1,this.focusBackdrop&&(this.focusBackdrop.destroy(),this.focusBackdrop=null),this.focusDimOverlay?.destroy(),this.focusDimOverlay=null,this.bgLayer.batchDraw(),this.overlayLayer.batchDraw(),this.updateLOD())}getFocusedSection(){return this.focusedSectionId}seatsRevealed(){return this.focusedSectionId||this.floorOverview?!0:this.effScale()>=ke}seatsPickable(){return this.focusedSectionId||this.floorOverview?!0:this.effScale()>=Eo(this.markerR)}drawFocusBackdrop(e){this.focusBackdrop?.destroy(),this.focusBackdrop=null;let i=this.sections.filter(o=>o.id===e||o.logicalId===e);if(this.focusBackdrop=$r(this.focusBackdropHost,i),!!this.focusBackdrop){this.focusDimOverlay?.destroy(),this.focusDimOverlay=qr(this.focusBackdropHost,i);for(let o of this.selectionMarkers.values())o.moveToTop();this.hoverRing.moveToTop(),this.focusRing.moveToTop()}}get focusBackdropHost(){return{bgLayer:this.bgLayer,overlayLayer:this.overlayLayer,bounds:this.bounds,canvasBackground:this.canvasBackground,viewMode:this.viewMode,perspectiveLocalPoint:e=>this.perspectiveLocalPoint(e),projectedSectionPoint:(e,i)=>this.projectedSectionPoint(e,i),isoLiftLocal:e=>this.isoLiftLocal(e)}}repaintSectionsAndSeats(){for(let e of this.seats){let i=this.circleById.get(e.id);i&&this.paintSeat(i,e.id)}for(let e of this.sections)this.refreshSectionFill(e);this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.bgLayer.batchDraw()}getVisibleWorldRect(){let e=this.screenToWorld({x:0,y:0}),i=this.screenToWorld({x:this.stage.width(),y:this.stage.height()});return{x:Math.min(e.x,i.x),y:Math.min(e.y,i.y),width:Math.abs(i.x-e.x),height:Math.abs(i.y-e.y)}}getWorldBounds(){let e=1/0,i=1/0,o=-1/0,s=-1/0,n=(r,l)=>{r<e&&(e=r),l<i&&(i=l),r>o&&(o=r),l>s&&(s=l)};for(let r of this.seats)n(r.x,r.y);for(let r of this.sections)for(let l of r.outline)n(l.x,l.y);for(let r of this.gaById.values())for(let l of r.points)n(l.x,l.y);return Number.isFinite(e)?{x:e,y:i,width:Math.max(1,o-e),height:Math.max(1,s-i)}:{x:0,y:0,width:1,height:1}}getMinimapSnapshot(){let e=this.sections.map(i=>{let o=this.isSectionClosed(i)||i.free<=0,s=i.memberIds.some(l=>this.selection.has(l)),n=s||i.memberIds.some(l=>this.ownedHold.has(l)),r=this.focusedSectionId===i.id||this.focusedSectionId===i.logicalId;return{id:i.logicalId,label:i.label,outline:i.outline.map(l=>({...l})),...this.objectFloor.get(i.id)?{floorId:this.objectFloor.get(i.id)}:{},state:s?"selected":o?"inactive":"available",active:r,paint:{fill:i.shellFill,stroke:i.shellStroke},owned:n}});return{sections:e,seats:e.length?[]:this.seats.map(i=>({x:i.x,y:i.y,categoryKey:i.categoryKey,state:this.selection.has(i.id)?"selected":this.statusById.get(i.id)==="free"?"available":"inactive"}))}}panToWorld(e){this.cancelGlide();let i=this.worldToScreen(e);this.stage.position({x:this.stage.x()+this.stage.width()/2-i.x,y:this.stage.y()+this.stage.height()/2-i.y}),this.afterViewChange(),this.stage.batchDraw()}panScreenBy(e,i){if(Math.abs(e.x)<.5&&Math.abs(e.y)<.5)return;this.cancelGlide();let o=this.stage.x(),s=this.stage.y();if(i?.animate===!1||this.reducedMotion||typeof requestAnimationFrame!="function"){this.stage.position({x:o+e.x,y:s+e.y}),this.afterViewChange(),this.stage.batchDraw();return}let n=performance.now(),r=Math.max(180,Math.min(1200,this.cameraGlideMs));this.glideInProgress=!0;let l=a=>{if(this.destroyed){this.glideRaf=0,this.glideInProgress=!1;return}let c=Math.min(1,(a-n)/r),d=c<.5?4*c*c*c:1-Math.pow(-2*c+2,3)/2;if(this.stage.position({x:o+e.x*d,y:s+e.y*d}),this.scheduleViewChange(),this.stage.batchDraw(),c<1){this.glideRaf=requestAnimationFrame(l);return}this.glideRaf=0,this.glideInProgress=!1,this.settleView()};this.glideRaf=requestAnimationFrame(l)}getCameraGestureCount(){return this.cameraGestures}setCategoryHighlight(e){if(this.categoryHighlight!==e){this.categoryHighlight=e;for(let i of this.seats){let o=this.circleById.get(i.id);o&&this.paintSeat(o,i.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.applyGAFilterState()}}renderBackground(e){let i=ut(e);i&&this.renderBackgroundImage(i);for(let o of e.objects)o.type==="decorImage"&&this.renderDecorImage(o);for(let o of e.objects)o.type==="section"&&this.renderSection(o);for(let o of e.objects)o.type==="shape"?this.renderShape(o):o.type==="gaArea"?this.renderGA(o):o.type==="table"?this.renderTable(o):o.type==="text"&&this.renderText(o);this.renderZones(e)}trackAssetImage(e,i,o,s){let n=this.assetGeneration;/^https?:\/\//i.test(i)&&(e.crossOrigin="anonymous");let r=new Promise(l=>{let a=!1,c=()=>{a||(a=!0,this.assetCancels.delete(d),l())},d=()=>{e.onload=null,e.onerror=null;try{e.removeAttribute("src"),e.src=""}catch{}c()};this.assetCancels.add(d),e.onload=()=>{if(!this.exportMode){n===this.assetGeneration&&s(),c();return}(typeof e.decode=="function"?e.decode():Promise.resolve()).then(()=>{n===this.assetGeneration&&s()}).catch(()=>{n===this.assetGeneration&&this.assetErrors.push(`${o} could not be decoded.`)}).finally(c)},e.onerror=()=>{n===this.assetGeneration&&this.assetErrors.push(`${o} could not be loaded.`),c()},e.src=i});this.assetPromises.push(r)}cancelAssetLoads(){this.assetGeneration++;for(let e of[...this.assetCancels])e();this.assetCancels.clear(),this.assetPromises=[],this.assetErrors=[]}renderBackgroundImage(e){Da(this.objectDrawContext,e)}get objectDrawContext(){return{bgLayer:this.bgLayer,fgDecorGroup:this.fgDecorGroup,container:this.container,opts:this.opts,theme:this.theme,canvasBackground:this.canvasBackground,catColor:this.catColor,sections:this.sections,freeTextById:this.freeTextById,gaById:this.gaById,iconNodeById:this.iconNodeById,primaryFocalLabels:this.primaryFocalLabels,landmarkBoxes:this.landmarkBoxes,labelFont:()=>this.labelFont(),trackAssetImage:(e,i,o,s)=>this.trackAssetImage(e,i,o,s),isGhostClick:e=>this.isGhostClick(e)}}renderDecorImage(e){Na(this.objectDrawContext,e)}renderTable(e){Ga(this.objectDrawContext,e)}renderText(e){Ha(this.objectDrawContext,e)}renderShape(e){Wa(this.objectDrawContext,e)}renderGA(e){za(this.objectDrawContext,e)}renderSection(e){let i=yl(this.sectionBuildContext,e);for(let o of i.memberIds)this.seatSection.set(o,i);this.unsectionedSeatIds=null,this.refreshSectionFill(i),this.refreshSectionHeat(i),this.sections.push(i)}get sectionBuildContext(){return{bgLayer:this.bgLayer,seatLayer:this.seatLayer,canvasBackground:this.canvasBackground,seats:this.seats,seatById:this.seatById,seatSection:this.seatSection,seatIndex:this.seatIndex,statusById:this.statusById,catColor:this.catColor,zoneColor:this.zoneColor,chartDoc:this.chartDoc,isoCentre:this.isoCentre,labelFont:()=>this.labelFont(),floorBaseHeightMFor:e=>this.floorBaseHeightMFor(e),dominantSellableColor:e=>this.dominantSellableColor(e)}}refreshSectionHeat(e){Er(this.sectionLodPaintContext,e)}refreshSectionFill(e){Br(this.sectionLodPaintContext,e)}isSectionClosed(e){return mo(this.sectionLodPaintContext,e)}dominantSellableColor(e){let i=vn(e,o=>this.seatById.get(o)?.categoryKey,o=>this.catByKey.get(o)?.notForSale===!0);return i?this.categoryDisplayColor(i):null}sectionAccessibleFree(e){return Bo(this.focusFramingContext,e)}accessibleSections(e){return Oo(this.focusFramingContext,e)}get sectionLodPaintContext(){return{sections:this.sections,zones:this.zones,sectionHeat:this.sectionHeat,closedSections:this.closedSections,canvasBackground:this.canvasBackground,sectionIsOwned:e=>e.memberIds.some(i=>this.selection.has(i)||this.ownedHold.has(i)),accessFilterActive:this.accessFilter!=null,sectionAccessibleFree:e=>this.sectionAccessibleFree(e),selectionColor:this.effSelection,bgLayer:this.bgLayer,seatLayer:this.seatLayer,stageScaleX:this.stage.scaleX(),stageWidth:this.stage.width(),floorOverview:this.floorOverview,focusedSectionId:this.focusedSectionId,categoryFilter:this.categoryFilter,landmarks:this.landmarkBoxes,hasFocusDimOverlay:!!this.focusDimOverlay,viewMode:this.viewMode,glideInProgress:this.glideInProgress,reducedMotion:this.reducedMotion,isoT:this.isoT,seatCount:this.seats.length,lodScale:this.lodScale,setLodScale:e=>{this.lodScale=e},worldToScreen:e=>this.worldToScreen(e)}}renderZones(e){cr({bgLayer:this.bgLayer,canvasBackground:this.canvasBackground,catPrice:this.catPrice,currency:this.currency,seatById:this.seatById,sections:this.sections,zones:this.zones,labelFont:()=>this.labelFont()},e)}screenToWorld(e){let i=this.stage.scaleX(),o={x:(e.x-this.stage.x())/i,y:(e.y-this.stage.y())/i};return this.viewMode==="perspective"&&this.perspectiveBaseInverse?ae(this.perspectiveBaseInverse,o):this.isoT===0?o:this.isoInverse(o)}sectionAt(e){if(!this.sections.length)return null;let i=this.screenToWorld(e),o=this.sections.find(s=>{if(this.viewMode==="perspective"&&s.perspectiveAffine)return ee(i,s.outline.map(r=>this.perspectiveLocalPoint(this.projectedSectionPoint(s,r))),s.holes.map(r=>r.map(l=>this.perspectiveLocalPoint(this.projectedSectionPoint(s,l)))));let n=s.liftWorld>0?this.isoLiftLocal(s.liftWorld):{x:0,y:0};return ee({x:i.x-n.x,y:i.y-n.y},s.outline,s.holes)});return o?o.logicalId:null}sectionMembers(e){return[...new Set(this.sections.filter(i=>i.id===e||i.logicalId===e||i.zone===e).flatMap(i=>i.memberIds))]}isSelectable(e){return this.seatInClosedSection(e)||!(this.opts.selectableStatuses??["free"]).includes(this.statusById.get(e)??"free")?!1:!this.hiddenByAccessFilter(e)}filterExcludesSeat(e){let i=this.seatById.get(e);return this.hiddenByAccessFilter(e)||i!=null&&Ra({categoryFilter:this.categoryFilter,categoryKey:i.categoryKey,status:this.statusById.get(e)??"free",selected:this.selection.has(e),ownHold:this.ownedHold.has(e)})}hiddenByAccessFilter(e){if(!this.accessFilter||this.selection.has(e))return!1;let i=this.seatById.get(e);return i?Ae(i,this.accessFilter)==="other":!1}toggleSeat(e){if(this.ownedHold.has(e)){let i=this.seatById.get(e);i&&this.opts.onDeselect?.(i);return}if(this.selection.has(e)){this.setSelected(e,!1);let i=this.seatById.get(e);i&&this.opts.onDeselect?.(i)}else{if(!this.isSelectable(e))return;if(this.selection.size>=this.opts.maxSelection){this.opts.onSelectionLimit?.(this.opts.maxSelection);return}this.setSelected(e,!0),this.playSeatPickMoment(e);let i=this.seatById.get(e);i&&this.opts.onSelect?.(i)}this.overlayLayer.batchDraw()}resolveCanvasBackground(){let e=this.theme.background?Oi(this.theme.background):null;if(e)return e;if(typeof getComputedStyle=="function"){let i=this.container;for(;i;){let o=Oi(getComputedStyle(i).backgroundColor);if(o)return o;i=i.parentElement}}return lo}resolveSelectionColor(){return this.theme.selectionColor?this.theme.selectionColor:O(this.canvasBackground)?ur:vt}setSelected(e,i,o=!1){let s=this.circleById.get(e);i?this.selection.add(e):(this.selectionFocusId===e&&this.setSelectionFocus(null),this.selection.delete(e)),s&&(this.paintSeat(s,e),!o&&!this.cached&&this.seatLayer.batchDraw()),this.syncSelectionMarker(e)}syncSelectionMarker(e){this.moments.syncMarker(e,this.selection.has(e)||this.ownedHold.has(e),this.selectionMarkers),this.hasSections&&(this.owned.sync(this.effScale(),this.getRung()),this.syncBeacons()),(this.breathCache||this.selectionMarkers.size)&&this.breath.sync(this.selectionMarkers)}playSeatPickMoment(e){this.moments.play(e)}showTouchLoupe(e){this.moments.showLoupe(e)}hideTouchLoupe(){this.moments.hideLoupe()}sectionBounds(e){return ar({sections:this.sections,viewMode:this.viewMode,isoT:this.isoT,seatR:this.seatR,bgLayer:this.bgLayer,seatById:this.seatById,freeTextById:this.freeTextById,iconNodeById:this.iconNodeById,rowLabelPlan:this.rowLabelPlan,projectedSectionPoint:(i,o)=>this.projectedSectionPoint(i,o),isoLiftLocal:i=>this.isoLiftLocal(i),isoForward:i=>this.isoForward(i),renderedSeatPoint:i=>this.renderedSeatPoint(i),labelFont:()=>this.labelFont(),resolveAutomaticRowLabelPosition:(i,o,s)=>this.resolveAutomaticRowLabelPosition(i,o,s),rowLabelBox:(i,o)=>this.rowLabelBox(i,o)},e)}sectionFrameScale(e){let i=this.sectionBounds(e);return i?Math.min(ot(this.stage,i,this.zoomBounds(),this.framingViewport()),fi(this.zoomBounds(),this.diveCeiling())):this.stage.scaleX()}handleSeatTap(e){if((this.stacked||this.floorOverview)&&this.opts.onDeckTap){let o=this.objectFloor.get(this.seatById.get(e)?.rowId??"");if(o){this.opts.onDeckTap(o);return}}if(this.effScale()<se&&this.sections.length){let o=this.seatSection.get(e);if(o){let s=this.focusedSectionId===o.logicalId,n=this.sectionFrameScale(o.logicalId)>this.stage.scaleX()*1.02;if(!s&&n){let r=this.seatById.get(e),l=r?this.renderedSeatPoint(r):void 0;this.opts.onSectionTap?this.opts.onSectionTap(o.logicalId,l):this.focusSection(o.logicalId,{anchor:l});return}}}if(!(this.ownedHold.has(e)||this.selection.has(e)||this.isSelectable(e))){let o=this.seatById.get(e)??null;o&&(this.opts.onHover?.(o,{mark:this.seatMarks.get(e)??null,interaction:"press",unavailable:!0,...this.hiddenByAccessFilter(e)?{filteredOut:!0}:{}}),this.moments.nudge(e));return}this.seatMarks.has(e)&&this.opts.onHover?.(this.seatById.get(e)??null,{mark:this.seatMarks.get(e),interaction:"press"}),this.toggleSeat(e)}deckFloorAt(){return wr(this.screenPickingHost)}nearestSeatToScreen(e,i,o=!1){return vr(this.screenPickingHost,e,i,{includeUnavailable:o})}get screenPickingHost(){return{seats:this.seats,stage:this.stage,seatR:this.seatR,viewMode:this.viewMode,selection:this.selection,objectFloor:this.objectFloor,perspectiveSeatScale:this.perspectiveSeatScale,renderedSeatPoint:e=>this.renderedSeatPoint(e),screenToWorld:e=>this.screenToWorld(e),worldToScreen:e=>this.worldToScreen(e),isSelectable:e=>this.isSelectable(e)}}hoverAffordance(e){return this.ownedHold.has(e)||this.selection.has(e)||this.isSelectable(e)?"full":this.seatInClosedSection(e)?"none":(this.statusById.get(e)??"free")==="held"?"muted":"none"}wireInteraction(){this.seatLayer.on("click tap",e=>{if(this.moved>Pe||this.isGhostClick(e))return;let i=Li(e.target);i&&this.seatsPickable()&&this.handleSeatTap(i)}),this.seatLayer.on("mouseover",e=>{let i=Li(e.target);if(!i)return;let o=this.seatById.get(i);if(!o)return;this.hoveredId=i;let s=this.hoverAffordance(i);this.hoverRing.position(this.renderedSeatPoint(o));let n=this.viewMode==="perspective"?this.perspectiveSeatScale.get(i)??1:1;this.hoverRing.scale({x:n,y:n}),this.hoverRing.opacity(s==="muted"?Jh:xl),this.hoverRing.dash(s==="muted"?eu:No),this.hoverRing.visible(s!=="none"),this.overlayLayer.batchDraw(),this.clusterLabels.syncCursor(s==="full"),this.opts.onHover?.(o,{mark:this.seatMarks.get(i),interaction:"hover"})}),this.seatLayer.on("mouseout",()=>{this.hoveredId=null,this.hoverRing.visible(!1),this.overlayLayer.batchDraw(),this.clusterLabels.syncCursor(!1),this.opts.onHover?.(null,{mark:null})}),this.stage.on("wheel",e=>{e.evt.preventDefault(),this.releaseSectionFocusDim();let i=this.container.getBoundingClientRect(),o={x:e.evt.clientX-i.left,y:e.evt.clientY-i.top},s=Math.exp(-e.evt.deltaY*.002);this.zoomAbout(this.stage.scaleX()*Y(s,.5,2),o,"frame")}),this.stage.on("click tap",e=>{if(this.moved>Pe||this.isGhostClick(e))return;let i=this.stage.getPointerPosition();if(!i)return;if(!(Li(e.target)&&this.seatsPickable())){let s=Zr(this.selectionMarkers,i);if(s){this.focusSeats([s],{animate:!this.reducedMotion});return}}if(!this.cached){if(Li(e.target)&&this.seatsPickable())return;if(this.seatsPickable()){let s=this.focusedSectionId,n=this.nearestSeatToScreen(i,Ne),r=n?this.seatSection.get(n):null;if(n&&(!s||r&&this.sectionMatchesFocus(r))){this.handleSeatTap(n);return}let l=n?null:this.nearestSeatToScreen(i,Ne,!0),a=l?this.seatSection.get(l):null;if(l&&(!s||a&&this.sectionMatchesFocus(a))){this.handleSeatTap(l);return}if(s&&this.opts.onBackdropTap&&!this.floorOverview){let d=this.sectionAt(i);if(d&&d!==s){let h=this.sectionTapAnchor(d,this.screenToWorld(i));this.opts.onSectionTap?this.opts.onSectionTap(d,h):this.focusSection(d,{anchor:h})}else d||this.opts.onBackdropTap();return}if(s)return;let c=this.sections.length?this.sectionAt(i):null;if(!c||this.effScale()>=se||this.sectionFrameScale(c)<=this.stage.scaleX()*1.02)return}}if((this.stacked||this.floorOverview)&&this.opts.onDeckTap){let s=this.floorOverview?this.sectionAt(i):null,n=(s?this.objectFloor.get(s):null)??this.deckFloorAt();if(n){this.opts.onDeckTap(n);return}}if(this.sections.length){let s=this.screenToWorld(i),n=this.owned.badgeAt(s)??this.sectionAt(i);if(n){let r=this.sectionTapAnchor(n,s);this.opts.onSectionTap?this.opts.onSectionTap(n,r):this.focusSection(n,{anchor:r});return}}if(this.clusterLabels.focusCluster(i)||this.clusterLabels.glideTowardTap(i))return;let o=Math.max(De*1.2,this.stage.scaleX()*2.5);this.zoomAbout(o,i)})}zoomBounds(){let e=.5*this.fitScale;return this.zones.length&&(e=Math.min(e,qe*.9)),{min:e,max:Math.max(10*this.fitScale,4,tl(this.markerR))}}zoomAbout(e,i,o="now"){kr(this.stage,e,i,this.zoomBounds())&&(o==="frame"?(this.updateSeatGroupVisibility(),this.scheduleZoomSettle()):this.afterViewChange(),this.stage.batchDraw())}scheduleZoomSettle(){if(this.exportMode||typeof requestAnimationFrame!="function"){this.afterViewChange();return}this.zoomSettleRaf||(this.zoomSettleRaf=requestAnimationFrame(()=>{this.zoomSettleRaf=0,!this.destroyed&&this.afterViewChange()}))}cancelZoomSettle(){this.zoomSettleRaf&&(cancelAnimationFrame(this.zoomSettleRaf),this.zoomSettleRaf=0)}zoomToBounds(e,i,o){Lr(this.stage,e,this.zoomBounds(),i,this.framingViewport(),o),this.settleView(),this.stage.batchDraw()}focusRegion(e,i){let o=typeof e=="string"?this.sectionBounds(e):e;if(!o)return;if(this.cancelGlide(),i?.animate===!1||this.reducedMotion){this.zoomToBounds(o,i?.minScale,i?.maxScale);return}let s=this.framingViewport(),n=s.width,r=s.height,{min:l,max:a}=this.zoomBounds(),c=1.12,d=Math.min(n/(o.width*c),r/(o.height*c)),h=i?.minScale??l,p=Y(Math.max(d,h),l,Math.max(h,fi({min:l,max:a},i?.maxScale))),m=s.x+n/2-(o.x+o.width/2)*p,f=s.y+r/2-(o.y+o.height/2)*p,g=this.stage.scaleX(),u=this.stage.x(),y=this.stage.y();if(Math.abs(p-g)<1e-4&&Math.abs(m-u)<.5&&Math.abs(f-y)<.5){this.settleView();return}let S=performance.now(),b=Math.max(180,Math.min(1200,i?.durationMs??this.cameraGlideMs));this.glideInProgress=!0;let v=k=>{if(this.destroyed){this.glideRaf=0,this.glideInProgress=!1;return}let w=Math.min(1,(k-S)/b),C=w<.5?4*w*w*w:1-Math.pow(-2*w+2,3)/2,I=g+(p-g)*C;this.stage.scale({x:I,y:I}),this.stage.position({x:u+(m-u)*C,y:y+(f-y)*C}),this.updateSeatGroupVisibility(),this.updateLOD(),this.scheduleViewChange(),this.stage.batchDraw(),w<1?this.glideRaf=requestAnimationFrame(v):(this.glideRaf=0,this.glideInProgress=!1,this.settleView())};this.glideRaf=requestAnimationFrame(v)}applyLabelVisibility(e){let i=e!==this.labelsVisible;if(this.labelsVisible=e,!i||!e)return;if(this.labelFadeRaf&&(cancelAnimationFrame(this.labelFadeRaf),this.labelFadeRaf=0),this.reducedMotion){this.labelGroup.opacity(1);return}let o=performance.now();this.labelGroup.opacity(0);let s=n=>{if(this.destroyed){this.labelFadeRaf=0;return}let r=Math.min(1,(n-o)/90);this.labelGroup.opacity(r),this.stage.batchDraw(),this.labelFadeRaf=r<1?requestAnimationFrame(s):0};this.labelFadeRaf=requestAnimationFrame(s)}cancelGlide(){this.glideRaf&&(cancelAnimationFrame(this.glideRaf),this.glideRaf=0),this.glideInProgress=!1}getRung(){let e=this.effScale();return e>=ce?"seats":this.zones.length&&e<qe?"zones":"sections"}get renderedQualityContext(){return{stage:this.stage,overlayLayer:this.overlayLayer,labelGroup:this.labelGroup,viewMode:this.viewMode,cached:this.cached,effScale:()=>this.effScale(),getRung:()=>this.getRung(),worldToScreen:e=>this.worldToScreen(e),isoLiftLocal:e=>this.isoLiftLocal(e),seats:this.seats,sections:this.sections,zones:this.zones,seatSection:this.seatSection,statusById:this.statusById,selection:this.selection,circleById:this.circleById,seatLabelById:this.seatLabelById,seatLabelDrops:this.seatLabelDrops,seatLabelRungOpen:()=>this.seatLabelRungOpen,boothLabelById:this.boothLabelById,accessGlyphById:this.accessGlyphById,freeTextById:this.freeTextById,gaById:this.gaById,perspectiveSeatProjected:this.perspectiveSeatProjected,perspectiveSeatScale:this.perspectiveSeatScale,seatR:this.seatR,canvasBackground:this.canvasBackground,effSelection:this.effSelection,categoryFilter:this.categoryFilter,focusedSectionId:this.focusedSectionId,focusBackdrop:this.focusBackdrop,isSelectable:e=>this.isSelectable(e),seatViewportCulled:e=>this.seatViewportCulled(e),focusedSeatOpacity:(e,i)=>this.focusedSeatOpacity(e,i),accessGlyphFilterEmphasized:e=>this.accessGlyphFilterEmphasized(e),seatLabelScale:e=>this.seatLabelScale(e),seatLabelInk:(e,i)=>this.seatLabelInk(e,i),seatPreferredLabelInk:e=>this.seatPreferredLabelInk(e)}}getRenderedQualityEvidence(){return this.cancelSeatReveal(!0),Fa(this.renderedQualityContext)}setRung(e){if(e==="zones"){this.cancelGlide(),this.zoomToFit();return}let i=e==="sections"?(ve+ce)/2:this.seatRungScale(),o=this.framingViewport(),s=o.width,n=o.height,r=yi(this.framingWorldRect()),l=r.x,a=r.y;if(e==="sections"&&this.sections.length>0){let p=this.sections.map(u=>{let y=z(u.outline);return{x:y.x+y.width/2,y:y.y+y.height/2}}),m=s/(i*2),f=n/(i*2);if(!p.some(u=>Math.abs(u.x-r.x)<=m&&Math.abs(u.y-r.y)<=f)){let u=p.reduce((y,S)=>{let b=(S.x-r.x)**2+(S.y-r.y)**2;return b<y.distance?{point:S,distance:b}:y},{point:p[0],distance:1/0});l=u.point.x,a=u.point.y}}let c=e==="seats"?this.seats.filter(p=>p.kind!=="booth"):[];if(c.length>0){let p=c[0],m=1/0;for(let f of c){let g=f.x-r.x,u=f.y-r.y,y=g*g+u*u;y<m&&(p=f,m=y)}l=p.x,a=p.y}let d=s/(i*1.12),h=n/(i*1.12);this.focusRegion({x:l-d/2,y:a-h/2,width:d,height:h})}seatRungScale(){return na(this.seatLabelTargetScale())}narrowSeatDetailFocus(e,i,o){let s=this.framingViewport();return aa({stageWidth:s.width,stageHeight:s.height,fullBounds:i,seatPoints:e,visibleBounds:this.framingWorldRect(),minScale:this.seatRungScale(),tapAnchor:o})}seatLabelTargetScale(){return jr({seats:this.seats,seatR:this.seatR,labelFont:()=>this.labelFont(),seatLabelScale:e=>this.seatLabelScale(e)})}afterViewChange(){this.retargetRoamingFocus(),this.updateSeatGroupVisibility(),this.updateLOD(),this.updateFreeTextVisibility(),this.updateLabels(),this.scheduleViewChange()}settleView(){this.cancelZoomSettle(),this.viewChangeRaf&&(cancelAnimationFrame(this.viewChangeRaf),this.viewChangeRaf=0),this.afterViewChange()}retargetRoamingFocus(){if(!this.focusRoams||!this.focusedSectionId||this.floorOverview)return;let e=rr({sections:this.sections.map(i=>({logicalId:i.logicalId,members:i.memberIds.length,bounds:this.sectionScreenBounds(i)})),viewport:{width:this.stage.width(),height:this.stage.height()},current:this.focusedSectionId});!e||e===this.focusedSectionId||(this.focusedSectionId=e,this.focusAnchor=null,this.opts.onFocusedSectionChange?.(e))}scheduleViewChange(){this.exportMode||this.viewChangeRaf||(this.viewChangeRaf=requestAnimationFrame(()=>{this.viewChangeRaf=0,this.opts.onViewChange?.()}))}sizeLabel(e,i,o){e.fontSize(Math.max(1,i)),e.offsetX(e.width()/2),e.offsetY(e.height()/2),e.y(o)}updateLOD(){let e=this.exportMode?Math.max(this.effScale(),we+.01,se):this.effScale(),i=Math.max(e,1e-4);for(let[n,r]of this.primaryFocalLabels)Va(n,r,i,(l,a)=>{this.sizeLabel(l,a,l.y())});this.hasSections?(Nr(this.sectionLodPaintContext,e),this.owned.sync(e,this.getRung()),this.syncBeacons()):(this.clusterLabels.syncForCamera(e)||this.primaryFocalLabels.size)&&this.bgLayer.batchDraw(),this.clusterLabels.syncCursor(this.hoveredId!=null),this.paintGAStateForView(),this.updateAccessGlyphs(e),this.seatGlyphDetail=br(this.glyphMarkers,this.seatR,e,this.seatGlyphDetail);let o=!this.exportMode&&e<ce;if(this.viewMode==="perspective"&&this.hasSections&&this.seats.length>2500&&o){this.seatLayer.listening(!1);return}if(o&&!this.cached){if(this.mountCachePending){this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>{this.recacheTimer=null,this.cacheSeatLayer()},0);return}this.cacheSeatLayer()}else!o&&(this.cached||!this.seatLayer.listening())&&(this.cached&&this.releaseSeatLayerBitmap(),this.seatLayer.listening(!this.exportMode),this.cached=!1,this.seatLayer.batchDraw())}rebuildSeatCache(){if(this.seatReveal||this.seatRevealPending)return;this.updateSeatGroupVisibility();let e=Y(this.stage.scaleX()*this.dpr,.15,2);this.seatLayer.clearCache(),this.seatLayer.cache({pixelRatio:e}),this.seatLayer.listening(!1),this.cached=!0,this.mountCachePending=!1}cacheSeatLayer(){this.destroyed||typeof document>"u"||(this.recacheTimer=null,this.rebuildSeatCache(),this.seatLayer.batchDraw())}releaseSeatLayerBitmap(){$a(ki,this.seatLayer)}forceDraw(){this.loadingReveal==="plain"&&this.cancelSeatReveal(!0),this.zoomSettleRaf&&(this.cancelZoomSettle(),this.afterViewChange()),this.recacheTimer&&(clearTimeout(this.recacheTimer),this.recacheTimer=null,this.effScale()<ce?this.rebuildSeatCache():this.cached&&(this.releaseSeatLayerBitmap(),this.seatLayer.listening(!0),this.cached=!1)),this.bgLayer.draw(),this.seatLayer.draw(),this.overlayLayer.draw()}async ready(){this.cancelSeatReveal(!0);let e=this.assetGeneration,i=typeof document<"u"&&"fonts"in document?document.fonts:null;if(await Promise.all([...this.assetPromises.slice(),...i?[i.ready.then(()=>{}),i.load("700 24px Inter").then(()=>{}),i.load('600 12px "JetBrains Mono"').then(()=>{})]:[]]),e!==this.assetGeneration)throw new Error("The chart changed while its export assets were loading.");if(this.assetErrors.length)throw new Error(`Export stopped because ${this.assetErrors.join(" ")}`);this.exportMode&&(this.fitExportContent(),this.forceDraw())}exportSceneBounds(){let e=[this.bgLayer,this.seatLayer,this.overlayLayer].map(r=>r.getClientRect({relativeTo:this.stage})).filter(r=>r.width>0&&r.height>0);if(!e.length)return this.bounds;let i=Math.min(...e.map(r=>r.x)),o=Math.min(...e.map(r=>r.y)),s=Math.max(...e.map(r=>r.x+r.width)),n=Math.max(...e.map(r=>r.y+r.height));return{x:i,y:o,width:Math.max(1,s-i),height:Math.max(1,n-o)}}fitExportContent(){if(!this.exportMode)return;let e=this.stage.width(),i=this.stage.height(),o=Math.max(12,Math.min(36,Math.min(e,i)*.025)),s=()=>{let n=this.exportSceneBounds(),r=Math.max(1,e-o*2),l=Math.max(1,i-o*2),a=Math.min(r/n.width,l/n.height)||1;this.fitScale=a,this.stage.scale({x:a,y:a}),this.stage.position({x:(e-n.width*a)/2-n.x*a,y:(i-n.height*a)/2-n.y*a}),this.afterViewChange()};s(),s()}captureCanvas(){if(!this.exportMode)throw new Error("captureCanvas() is available only on a renderer created with exportMode.");this.forceDraw();let e;try{e=this.stage.toCanvas({pixelRatio:1,imageSmoothingEnabled:!0})}catch(s){let n=s instanceof Error?s.message:String(s);throw new Error(`The chart canvas could not be captured. A buyer-visible image may block export. ${n}`)}let i=document.createElement("canvas");i.width=this.stage.width(),i.height=this.stage.height();let o=i.getContext("2d");if(!o)throw new Error("Canvas 2D is unavailable; this browser cannot create an export.");o.fillStyle=this.canvasBackground,o.fillRect(0,0,i.width,i.height);try{o.drawImage(e,0,0)}finally{e.width=1,e.height=1}return i}updateFreeTextVisibility(){let e=this.exportMode?Math.max(this.effScale(),se):this.effScale();for(let{node:i,backdrop:o,kind:s}of this.freeTextById.values()){if(s==="ga-label"||s==="ga-capacity")continue;let n=s==="free-text"&&this.nodeBelongsToFocusedSection(i),r=s==="direct-landmark";if(r){let a=Number(i.getAttr("directLandmarkBaseFontSize"))||i.fontSize();i.setAttr("directLandmarkBaseFontSize",a),i.fontSize(Math.max(a,V/e))}let l=r||n||be(i.fontSize(),e);i.visible(l),o?.visible(l)}for(let{node:i,fontSize:o}of this.iconNodeById.values())i.visible(this.nodeBelongsToFocusedSection(i)||be(o,e))}nodeBelongsToFocusedSection(e){let i=this.focusedSectionId;if(!i)return!1;this.focusMembershipKey!==i&&(this.focusMembership.clear(),this.focusMembershipKey=i);let o=this.focusMembership.get(e);if(o!==void 0)return o;let s=this.sections.filter(r=>r.id===i||r.logicalId===i||r.zone===i),n=!1;if(s.length){let r=e.getClientRect({relativeTo:this.bgLayer,skipShadow:!0}),l={x:r.x+r.width/2,y:r.y+r.height/2};n=s.some(a=>ee(l,a.outline,a.holes))}return this.focusMembership.set(e,n),n}buildRowLabelPlan(e){this.rowLabelPlan=Ya(e,{theme:this.theme,canvasBackground:this.canvasBackground,seats:this.seats,seatSection:this.seatSection,seatR:this.seatR,objectFilteredOut:i=>this.objectFilteredOut(i)})}rowLabelBox(e,i,o=Q){return Mo(e,i,o)}resolveAutomaticRowLabelPosition(e,i,o){return Ua(e,i,o,this.seatIndex)}objectFilteredOut(e){let i=e.categoryKey;return i?!!(this.categoryHighlight&&i!==this.categoryHighlight||this.categoryFilter&&!this.categoryFilter.has(i)):!1}updateLabels(){il(this.viewportLabelContext)}get viewportLabelContext(){return{exportMode:this.exportMode,effScale:()=>this.effScale(),labelsWereVisible:()=>this.labelsVisible,onLabelVisibilityChange:e=>this.applyLabelVisibility(e),boothLabelById:this.boothLabelById,circleById:this.circleById,focusedSeatOpacity:(e,i)=>this.focusedSeatOpacity(e,i),labelGroup:this.labelGroup,rowLabelGroup:this.rowLabelGroup,seatLabelPool:this.seatLabelPool,statusCuePool:this.statusCuePool,labelLiftGroups:this.labelLiftGroups,seatLabelById:this.seatLabelById,seatLabelDrops:this.seatLabelDrops,setSeatLabelRungOpen:e=>{this.seatLabelRungOpen=e},visibleSeatCandidates:()=>this.visibleSeatCandidates(),worldToScreen:e=>this.worldToScreen(e),stage:this.stage,accessGlyphById:this.accessGlyphById,accessGlyphShouldShow:e=>this.accessGlyphShouldShow(e),statusById:this.statusById,renderedSeatPoint:e=>this.renderedSeatPoint(e),viewMode:this.viewMode,perspectiveSeatScale:this.perspectiveSeatScale,ownedHold:this.ownedHold,hasSeatMark:e=>this.seatMarks.has(e),filterExcluded:e=>this.filterExcludesSeat(e),focusDims:e=>this.selectionFocusDims(e)||this.focusedSeatOpacity(e,1)<1,statusCueInk:e=>Aa(this.circleById.get(e)?.fill(),this.canvasBackground,this.filterExcludesSeat(e)),statusCueScale:()=>Ma(this.markerR),opts:this.opts,seatLabelContainer:e=>this.seatLabelContainer(e),seatLabelScale:e=>this.seatLabelScale(e),labelFont:()=>this.labelFont(),seatLabelInk:(e,i)=>this.seatLabelInk(e,i),seatPreferredLabelInk:e=>this.seatPreferredLabelInk(e),seatR:this.seatR,freeTextById:this.freeTextById,bgLayer:this.bgLayer,rowLabelPlan:this.rowLabelPlan,focusedSectionId:this.focusedSectionId,resolveAutomaticRowLabelPosition:(e,i,o)=>this.resolveAutomaticRowLabelPosition(e,i,o),rowLabelBox:(e,i)=>this.rowLabelBox(e,i),isoT:this.isoT,applyUprightLabels:()=>this.applyUprightLabels(),overlayLayer:this.overlayLayer}}handleResize(){this.gestures.invalidateRect();let e=Ea({width:this.container.clientWidth,height:this.container.clientHeight,stageWidth:this.stage.width(),stageHeight:this.stage.height()});if(e==="hidden"){this.hiddenPose??=this.getCameraPose();return}let i=this.hiddenPose;if(this.hiddenPose=null,e==="unchanged"){i&&this.setCameraPose(i);return}this.stage.size(e),i&&this.setCameraPose(i),this.refitCurrentView()}};Pt.ZOOM_STEP=1.4;var Go=Pt;function Tl(t,e){return new Go(t,e)}function Il(t,e){t.accessFilter=e===null?null:[...e],t.renderer?.setAccessibilityFilter?.(e);let i=t.renderer?.getFocusedSection?.()??null;i&&t.emitSectionFocus(t.sectionSummary(i))}function Ho(t,e){let i=t.renderer;if(!i?.focusAccessibleSeats)return!1;let o=e===void 0?t.accessFilter:e;if(!o)return!1;let s=Al(t,o);s&&t.setFloor(s);let n=i.focusAccessibleSeats(o);return n&&t.emitSectionFocus(null),n}function Pl(t,e){let i=t.renderer;if(!i?.accessibleSpread)return null;let o=e===void 0?t.accessFilter:e;return o?i.accessibleSpread(o):null}function Ml(t,e,i,o){let s=t.renderer;s&&(t.accessFilter&&(i?.accessibleLeft??0)>0&&s.focusAccessibleSection?.(e,t.accessFilter)||(s.focusSection?s.focusSection(e,o?{anchor:o}:void 0):s.focusRegion?.(e)))}function Rl(t,e){let i=e===void 0?t.accessFilter:e;if(!i)return null;let o=Al(t,i);o&&t.setFloor(o);let s=t.renderer,n=s?.accessibleSections?.(i)??[];if(!n.length)return null;let r=t.accessStepAt?n.findIndex(a=>a.id===t.accessStepAt):-1,l=n[(r+1)%n.length];return t.accessStepAt=l.id,s?.focusAccessibleSection?.(l.id,i)||s?.focusSection?.(l.id),t.emitSectionFocus(t.sectionSummary(l.id)),{...l,index:n.indexOf(l),total:n.length}}function Al(t,e){let i=t.doc;if(!i?.floors||i.floors.length<2)return null;let o=new Set(e),s=a=>o.size===0?!!a.accessible:!!a.accessibility?.some(c=>o.has(c)),n=a=>a.some(c=>c.type==="row"&&(c.overrides??[]).some(s)),r=t.getActiveFloorId(),l=i.floors.find(a=>a.id===r);return l&&n(l.objects)?null:i.floors.find(a=>n(a.objects))?.id??null}function El(t,e){return t.accessFilter?Ae(e,t.accessFilter)==="other":!1}function _l(t,e){let i=t.renderer;if(!i)return;if(i.clearSectionFocus?.(),t.emitSectionFocus(null),e?.length){t.bandReturnPose||(t.bandReturnPose=i.getCameraPose?.()??null);let s=tu(t,e);s&&t.setFloor(s),i.focusCategories?i.focusCategories(e):i.zoomToFit();return}let o=t.bandReturnPose;t.bandReturnPose=null,!(t.accessFilter&&Ho(t))&&o&&i.setCameraPose?.(o)}function tu(t,e){let i=t.doc;if(!i?.floors||i.floors.length<2)return null;let o=new Set(e),s=l=>l.some(a=>a.type==="row"&&(o.has(a.categoryKey)||(a.overrides??[]).some(c=>c.categoryKey!=null&&o.has(c.categoryKey)))||a.type==="gaArea"&&o.has(a.categoryKey)),n=t.getActiveFloorId(),r=i.floors.find(l=>l.id===n);return r&&s(r.objects)?null:i.floors.find(l=>s(l.objects))?.id??null}function Fl(t,e,i){let o=new Map,s=new Map,n=new Map,r=new Map,l=[],a=new Map(os(t).map(h=>[h.id,h])),c=Dt(t),d=new Map(c.sections.map(h=>[h.id,h.label]));for(let h of e){o.set(h.label,h.id),s.set(h.label,h),n.set(h.id,h),l.push(h.id);let p=a.get(h.rowId),m=p&&"label"in p&&typeof p.label=="string"?p.label:void 0,f=p?.type==="row"?p.segmentedRow:void 0,g=f?.displayLabel??(p&&"displayLabel"in p&&typeof p.displayLabel=="string"&&p.displayLabel?p.displayLabel:m),u=i.get(h.rowId),y=p?.type==="table"?"table":p?.type==="booth"?"booth":"seat",S=g,b=f?.displayType?.trim()||(p&&"displayType"in p&&typeof p.displayType=="string"&&p.displayType.trim()?p.displayType.trim():void 0),v=h.displayLabel??h.label,k=v.split("-"),w=u||h.kind==="booth"?void 0:g&&v.startsWith(`${g}-`)?v.slice(g.length+1):k[k.length-1]??v;r.set(h.id,{objectId:h.rowId,objectType:y,sectionLabel:d.get(c.objectToSection.get(h.rowId)??""),rowLabel:S,seatNumber:w,...b?{displayType:b,rowType:b}:{}})}return{labelToId:o,labelToSeat:s,seatById:n,seatContext:r,allIds:l}}function Bl(t,e={}){let{baseMs:i=1e3,factor:o=2,maxMs:s=1/0,jitter:n=0,random:r=Math.random}=e,l=Math.min(i*o**Math.max(0,t),s);if(n<=0)return l;let a=Math.min(1,n);return l*(1-a+a*r())}function Ol(t,e,i){return dt(t).map(o=>{let s=t.categories.find(n=>n.key===o.categoryKey);return{id:o.id,label:o.label,...o.displayLabel?{displayLabel:o.displayLabel}:{},...o.displayType?{displayType:o.displayType}:{},capacity:Math.max(0,Math.floor(o.capacity)),available:Ot(o).filter(n=>i(n)==="free").length,categoryKey:o.categoryKey,tiers:s?.tiers,price:s?.tiers?.[0]?.price??s?.price??0,currency:e}})}function Dl(t,e){let i={};for(let o of t)i[o.id]=e?{available:o.available,selected:e.get(o.id)??0}:{available:o.available};return i}function Nl(t){let e={};for(let[i,o]of t.seatById)t.groupedTableBySeatId.has(i)||t.closedMembers.has(i)||(t.statusOf(i)??"free")==="free"&&(e[o.categoryKey]=(e[o.categoryKey]??0)+1);for(let i of t.groupedTablesByLabel.values()){if(i.chairs.some(s=>t.closedMembers.has(s.id)))continue;let o=i.chairs[0];o&&(t.statusOf(o.id)??"free")==="free"&&(e[i.categoryKey]=(e[i.categoryKey]??0)+i.maxOccupancy)}for(let i of t.gaAreas??[])e[i.categoryKey]=(e[i.categoryKey]??0)+i.available;return e}function iu(t){return t.accessibility?.length?t.accessibility:t.accessible?["wheelchair"]:[]}function Gl(t,e){let i=new Set,o=new Map;for(let s of t){let n=iu(s);if(!n.length)continue;let r=e(s.id)==="free";for(let l of n)i.add(l),r&&o.set(l,(o.get(l)??0)+1)}return i.size?Zo.filter(s=>i.has(s.key)).map(s=>({key:s.key,count:o.get(s.key)??0})):[]}var FS=5e3,BS={lost:[],holdLapsed:!1,lapsedLabels:[],recoverable:[]};function ou(t){if(!t.holdActive||t.holdLabels.length===0)return!1;let e=t.now??Date.now();return t.holdExpiresAt!=null&&e>=t.holdExpiresAt+5e3||t.serverHoldActive===!1?!0:!t.holdLabels.some(i=>t.statusOf(i)==="held")}function Hl(t){let e=new Set(t.holdLabels),i=t.selection.filter(s=>!e.has(s)&&t.statusOf(s)!=="free");if(!ou(t))return{lost:i,holdLapsed:!1,lapsedLabels:[],recoverable:[]};let o=[...t.holdLabels];return{lost:i,holdLapsed:!0,lapsedLabels:o,recoverable:o.filter(s=>t.statusOf(s)==="free")}}function OS(t){return t.lost.length>0||t.holdLapsed}function DS(t){return!t.lapsedLabels.length||!t.recoverable.length?"none":t.recoverable.length===t.lapsedLabels.length?"all":"partial"}function Wl(t,e,i=Date.now()){return e&&i<t+5e3}function Vl(t){if(typeof document>"u"||typeof document.addEventListener!="function")return()=>{};let e=()=>{document.visibilityState==="visible"&&t()};return document.addEventListener("visibilitychange",e),()=>{typeof document.removeEventListener=="function"&&document.removeEventListener("visibilitychange",e)}}function zl(t){if(!t?.zones?.length)return[];let e=new Set(Dt(t).sections.filter(i=>i.seatCount>0&&!!i.zone).map(i=>i.zone));return t.zones.filter(i=>e.has(i.id)).map(i=>({id:i.id,label:i.label}))}function Kl(t){let e=t.doc;if(!e?.objects?.length)return null;let i=e.focalPoint??{x:0,y:0},o=Ue(e).filter(r=>!t.groupedObjectIds.has(r.rowId)),s=new Set;for(let r of o)t.heldLabels.has(r.label)||t.tierApplies(r)&&(t.accessFilter&&!Ce(r,t.accessFilter)||t.statusOfLabel(r.label)==="free"&&s.add(r.label));let n=Bs(o,s,{qty:t.qty,categoryKey:t.categoryKey,zoneId:t.zoneId,focal:i,preferPremium:!0});return n.labels.length!==t.qty?null:n.labels.every(r=>t.isPremium(r))?[...n.labels]:null}var Wo=["background","rowLabelColor","textColor","selectionColor"];function Xl(t,e){return!t||!e?!t&&!e:Wo.every(i=>t[i]===e[i])}function Mt(t){let e=t??{};return{status:e.status,conflicts:e.conflicts,reason:e.reason}}function Ci(t){return t==="blocked"?"not_for_sale":t==="held"||t==="booked"||t==="free"||t==="not_for_sale"?t:"free"}function Yl(t,e,i){let o=as(e,i);o==="all"?t.setFloorOverview?.(!0):o&&t.setActiveFloor?.(o)}var _e=class extends Error{constructor(i){super(i.message);this.status=422;this.name="PickerSelectionError",this.reason=i.code,this.labels=i.labels}};function Ul(t,e){return!e||t.eventConfigurationId===e.id&&t.eventConfigurationVersion===e.version?t:{...t,eventConfigurationId:e.id,eventConfigurationVersion:e.version}}var xi=class{constructor(){this.ref=null;this.pending=null}reset(e){this.ref=e??null,this.pending=null}load(e,i){if(!this.ref||!e.eventConfiguration)return Promise.resolve(null);if(!this.pending){let o=this.ref;this.pending=e.eventConfiguration(i).then(s=>{if(s.reference.id!==o.id||s.reference.version!==o.version||s.configuration.id!==o.id||s.configuration.version!==o.version)throw new Error("seatlayer: Event configuration response did not match the chart reference");return s.configuration})}return this.pending}};function $l(t){if(t!=null&&(!Number.isInteger(t)||t<1))throw new Error("picker: `numberOfPlacesToSelect` must be a positive integer");return t??null}function ql(t,e,i,o){if(i!=null&&!Array.isArray(i))throw new TypeError("picker: `selectionValidators` must be an array");let s=[],n=0,r=!1,l=!1;for(let c of i??[])if(c?.type==="minimumSelectedPlaces"){if(!Number.isInteger(c.minimum)||Number(c.minimum)<1)throw new TypeError("picker: `minimumSelectedPlaces.minimum` must be a positive integer");n=Math.max(n,Number(c.minimum))}else if(c?.type==="consecutiveSeats")r=!0;else if(c?.type==="noOrphanSeats")l=!0;else throw new TypeError(`picker: unsupported selection validator "${String(c?.type??"")}"`);if(n&&s.push({type:"minimumSelectedPlaces",minimum:n}),r&&s.push({type:"consecutiveSeats"}),l&&s.push({type:"noOrphanSeats"}),t!=null&&n>t)throw new Error("picker: `minimumSelectedPlaces.minimum` cannot exceed `numberOfPlacesToSelect`");let a=Math.max(0,Math.floor(e??t??Math.max(o,n)));if(t!=null&&a<t)throw new Error("picker: `maxSelection` cannot be lower than `numberOfPlacesToSelect`");if(e!=null&&a<n)throw new Error("picker: `maxSelection` cannot be lower than `minimumSelectedPlaces.minimum`");return{validators:s,maxSelection:t??a}}function su(t){let e=Number(t.slice(t.lastIndexOf(":")+1));return Number.isInteger(e)?e:-1}function nu(t){if(t.length<=1)return!1;let e=t[0]?.objectId,i=t[0]?.categoryKey;if(!e||t.some(s=>s.objectId!==e||s.categoryKey!==i))return!0;let o=t.map(s=>su(s.id)).sort((s,n)=>s-n);return o.some((s,n)=>s<0||n>0&&s!==o[n-1]+1)}function Zl(t,e,i,o,s){let n=o.find(a=>a.type==="minimumSelectedPlaces")?.minimum??0,r=i??n,l=[];return i!=null&&e!==i&&l.push("numberOfPlacesToSelect"),n&&e<n&&l.push("minimumSelectedPlaces"),o.some(a=>a.type==="consecutiveSeats")&&nu(t)&&l.push("consecutiveSeats"),o.some(a=>a.type==="noOrphanSeats")&&s()&&l.push("noOrphanSeats"),{isValid:l.length===0,count:e,required:r,remaining:Math.max(0,r-e),seats:t,violations:l}}function jl(t){let{id:e,doc:i,seatById:o,groupedTableBySeatId:s}=t,n=i.objects.find(v=>v.type==="section"&&v.id===e);if(!n)return null;let r=t.sectionMembers(e),l=new Map,a=new Map,c=new Set,d=0,h=0;for(let v of r){let k=o.get(v);if(!k)continue;t.matchesAccessFilter&&t.statusOf(v)==="free"&&t.matchesAccessFilter(k)&&(h+=1);let w=s.get(v);if(w){if(c.has(w.label))continue;c.add(w.label),l.set(w.categoryKey,(l.get(w.categoryKey)??0)+w.maxOccupancy),t.statusOf(w.chairs[0]?.id??v)==="free"&&(d+=w.maxOccupancy,a.set(w.categoryKey,(a.get(w.categoryKey)??0)+w.maxOccupancy))}else l.set(k.categoryKey,(l.get(k.categoryKey)??0)+1),t.statusOf(v)==="free"&&(d++,a.set(k.categoryKey,(a.get(k.categoryKey)??0)+1))}let p=[...l.entries()].map(([v,k])=>{let w=i.categories.find(L=>L.key===v),C=w?.tiers?.length?w.tiers.map(L=>L.price):[w?.price??0],I=Math.min(...C),T=Math.max(...C);return{key:v,count:k,label:w?.label??v,color:w?.color??"#6e7bff",price:I,priceMin:I,priceMax:T}}).sort((v,k)=>v.price-k.price),m=p.map(v=>v.priceMin),f=p.map(v=>v.priceMax),g=n.zone?i.zones?.find(v=>v.id===n.zone):void 0,u=v=>{let k=null,w=0;for(let[C,I]of v)(I>w||I===w&&k!=null&&C<k)&&(k=C,w=I);return k},y=u(a)??u(l),b=(y?p.find(v=>v.key===y)?.color:void 0)??g?.color??n.color??"#6e7bff";return{id:e,...y?{dominantCategoryKey:y}:{},...t.matchesAccessFilter?{accessibleLeft:h}:{},label:n.displayLabel??n.label,zoneLabel:g?.label??"",...n.entrance&&n.entrance.trim()?{entrance:n.entrance.trim()}:{},color:b,seatsLeft:d,priceMin:m.length?Math.min(...m):0,priceMax:f.length?Math.max(...f):0,categories:p}}var Ti=class{constructor(e={}){this.inFlight=null;this.lastSettledAt=Number.NEGATIVE_INFINITY;this.windowMs=e.windowMs??250,this.now=e.now??(()=>Date.now())}run(e,i=!1){if(!i){if(this.inFlight)return this.inFlight;if(this.now()-this.lastSettledAt<this.windowMs)return Promise.resolve()}let o=e().then(()=>{this.lastSettledAt=this.now()},()=>{}).finally(()=>{this.inFlight===o&&(this.inFlight=null)});return this.inFlight=o,o}markSettled(){this.lastSettledAt=this.now()}reset(){this.inFlight=null,this.lastSettledAt=Number.NEGATIVE_INFINITY}};function Ql(t,e){return t?.source==="socket"&&e.source==="http"?t:e}function Jl(t,e){return t?.source==="socket"?t:e?{seats:e.seats,default:e.default,source:"http"}:t}var lu=10,cu=15e3,ec=class{constructor(e){this.selectableSeatIds=null;this.lastSelectionValidity=null;this.renderer=null;this.gaSelected=null;this._doc=null;this.eventConfiguration=new xi;this.hidden=new Set;this.mapTheme=null;this.closedSections=new Set;this.labelToId=new Map;this.labelToSeat=new Map;this.expandedSeats=[];this.seatTiers=new Map;this.seatById=new Map;this.seatContext=new Map;this.allIds=[];this.groupedTablesByObject=new Map;this.groupedTablesByLabel=new Map;this.groupedTableBySeatId=new Map;this.tableQuantities=new Map;this.confirmedVariableTables=new Set;this.groupedSelectionOverhead=0;this.ws=null;this.connectFallback=null;this.realtime=null;this.reconnectTimer=null;this.attempt=0;this.closed=!1;this.detachVisibility=null;this.hold_=null;this.liveStatuses=new Map;this.liveDefault="free";this.currency="USD";this.expiryTimer=null;this.snapshots=new Ti;this.accessFilter=null;this.viewportInsets=null;this.accessStepAt=null;this.bandReturnPose=null;this.hintShown=!1;this.lastSnapshotAt=0;this.seatsBuilt=!1;this.pendingSnapshot=null;this.socketVersion=0;this.opts=e,this.api=e.transport,this.key=e.eventKey,this.numberOfPlacesToSelect=$l(e.numberOfPlacesToSelect);let i=ql(this.numberOfPlacesToSelect,e.maxSelection,e.selectionValidators,lu);this.selectionValidators=i.validators,this.maxSelection=i.maxSelection,this.selectableObjectRefs=e.selectableObjects==null?null:[...new Set(e.selectableObjects.filter(o=>typeof o=="string"&&!!o))],this.mapTheme=e.mapTheme??null}get doc(){return this._doc}visibleDoc(){if(!this._doc)return{objects:[]};let e=cs(this._doc,this.hidden);if(!this.mapTheme)return e;let i={...e.theme??{}};for(let o of Wo){let s=this.mapTheme[o];s&&(i[o]=s)}return{...e,theme:i}}setMapTheme(e){return Xl(this.mapTheme,e??null)?!1:(this.mapTheme=e??null,this.rebuildPreservingState(),!0)}rebuildPreservingState(){let e=this.renderer;if(!e)return!1;let i=e.getSelection().map(l=>l.id),o=this.getActiveFloorId(),s=e.isFloorOverview?.()??!1,n=e.getFocusedSection?.()??null,r=e.getCameraPose?.();return e.setChart(this.visibleDoc(),o?{floorId:o}:void 0),s&&e.setFloorOverview?.(!0),this.opts.colorblindSafe&&e.setColorblindSafe?.(!0),this.closedSections.size&&e.setClosedSections?.([...this.closedSections]),this.applySeatsMap(Object.fromEntries(this.liveStatuses),this.liveDefault),i.length&&e.select?.(i),n&&e.focusSection?.(n),r&&e.setCameraPose&&e.setCameraPose(r),e.settleView?.(),!0}refreshMapCopy(){this.rebuildPreservingState()&&this.renderer?.forceDraw()}syncHidden(e){let i=e.filter(s=>typeof s=="string");if(i.length===this.hidden.size&&i.every(s=>this.hidden.has(s)))return!1;this.hidden=new Set(i);let o=this.renderer?.isFloorOverview?.()??!1;return this.renderer?.setChart(this.visibleDoc()),o&&this.renderer?.setFloorOverview?.(!0),!0}syncClosed(e){let i=(e??[]).filter(o=>typeof o=="string");return i.length===this.closedSections.size&&i.every(o=>this.closedSections.has(o))?!1:(this.closedSections=new Set(i),this.renderer?.setClosedSections?.(i),!0)}isSectionClosed(e){return this.closedSections.has(e)}currentHold(){return this.hold_}getRenderer(){return this.renderer}seatByLabel(e){return this.labelToSeat.get(e)}getExpandedSeats(){return this.expandedSeats}loadEventConfiguration(){return this.eventConfiguration.load(this.api,this.key)}idForLabel(e){return this.labelToId.get(e)}idsForLabel(e){let i=this.groupedTablesByLabel.get(e);if(i)return i.chairs.map(s=>s.id);let o=this.labelToId.get(e);return o?[o]:[]}idsForLabels(e){return[...new Set([...e].flatMap(i=>this.idsForLabel(i)))]}tableSelection(e){let i=this.groupedTableBySeatId.get(e)??this.groupedTablesByLabel.get(e);return i?this.toTableSeat(i):null}lineItemDisplay(e){if(e.objectType==="ga"){let s=this.visibleDoc(),n=dt(s).find(r=>r.id===e.objectId);return{...n?.displayLabel?{displayLabel:n.displayLabel}:{},...n?.displayType?{displayType:n.displayType}:{}}}if(e.objectType==="table"){let s=this.groupedTablesByLabel.get(e.label);return{...s?.displayLabel&&s.displayLabel!==s.label?{displayLabel:s.displayLabel}:{},...s?.displayType?{displayType:s.displayType}:{}}}let i=this.labelToSeat.get(e.label),o=i?this.seatContext.get(i.id):void 0;return{...i?.displayLabel?{displayLabel:i.displayLabel}:{},...o?.displayType?{displayType:o.displayType}:{}}}async render(e){if(this.renderer)return null;let i=performance.now(),o={},s=L=>Math.round((performance.now()-L)*100)/100;this.closed=!1;let n=performance.now(),r=(async()=>this.api.chart(this.key))().then(L=>({ok:!0,res:L,elapsed:s(n)}),L=>({ok:!1,error:L,elapsed:s(n)})),l=performance.now(),a=(async()=>this.api.objects(this.key))().then(L=>({ok:!0,objects:L,elapsed:s(l)}),()=>({ok:!1,elapsed:s(l)})),c=await r;if(o.loadChart=c.elapsed,!c.ok)return this.emitError(c.error),null;let d=c.res;if(this.closed)return null;this._doc=Ul(d.doc,d.event.eventConfiguration),this.eventConfiguration.reset(d.event.eventConfiguration);let h=performance.now();try{let L=Os(d.doc,d.event.inventoryModelVersion===2?2:1);this.groupedTablesByObject=new Map(L.map(x=>[x.objectId,x])),this.groupedTablesByLabel=new Map(L.map(x=>[x.label,x])),this.groupedTableBySeatId=new Map(L.flatMap(x=>x.chairs.map(P=>[P.id,x]))),this.tableQuantities=new Map(L.map(x=>[x.label,x.mode==="whole"?x.capacity:x.minOccupancy])),this.confirmedVariableTables=new Set,this.groupedSelectionOverhead=L.reduce((x,P)=>x+Math.max(0,P.chairs.length-1),0)}catch(L){return this.emitError(L),null}this.expandedSeats=Ue(d.doc,{deriveRestrictedView:d.doc.derivedRestrictedView===!0});let p=Fl(d.doc,this.expandedSeats,this.groupedTablesByObject);this.labelToId=p.labelToId,this.labelToSeat=p.labelToSeat,this.seatById=p.seatById,this.seatContext=p.seatContext,this.allIds=p.allIds;for(let L of this.groupedTablesByLabel.values()){let x=L.chairs[0];x&&(this.labelToId.set(L.label,x.id),this.labelToSeat.set(L.label,x))}o.normalizeBuyerModel=s(h);let m=d.event.currency??this.opts.currency;this.currency=m??"USD";let f=performance.now(),g=Tl(e,{maxSelection:this.rendererSelectionCap(),confirmSelection:this.opts.confirmSelection,portraitFitCrop:!1,gaPickerMode:!0,currency:m,...this.opts.loadingReveal?{loadingReveal:this.opts.loadingReveal}:{},onSeatsRevealed:()=>{o.seatsComplete=s(i),this.opts.onSeatsRevealed?.()},onSelect:L=>{this.handleRendererSelect(L)},onDeselect:L=>{this.handleRendererDeselect(L)},onSelectionLimit:this.opts.onSelectionLimit,onHover:(L,x)=>{this.opts.onHover?.(L),this.opts.onSeatHover&&this.opts.onSeatHover(L?this.describeSeat(L,x):null)},onFocusSeat:this.opts.onFocusSeat,onViewChange:this.opts.onViewChange,onGAClick:this.opts.onGAClick,onSectionTap:(L,x)=>this.handleSectionTap(L,x),onBackdropTap:()=>this.overview(),onFocusedSectionChange:L=>this.opts.onSectionFocus?.(this.isSectionClosed(L)?null:this.sectionSummary(L)),onDeckTap:L=>this.handleDeckTap(L),onFps:this.opts.onFps});if(o.createRenderer=s(f),this.closed)return g.destroy(),null;this.renderer=g,this.viewportInsets&&g.setViewportInsets?.(this.viewportInsets);let u=null,y="free",S=[],b=await a;if(b.ok){let L=b.objects;this.hidden=new Set(L.hidden??[]),S=(L.closed??[]).filter(x=>typeof x=="string"),u=L.seats,y=L.default??"free"}if(o.loadStatuses=b.elapsed,this.closed)return g.destroy(),this.renderer=null,null;let v=performance.now();g.setChart(this.visibleDoc()),Yl(g,d.doc,e.clientWidth),this.opts.colorblindSafe&&g.setColorblindSafe?.(!0),o.buildScene=s(v),this.closedSections=new Set(S);let k=performance.now();S.length&&g.setClosedSections?.(S),this.seatsBuilt=!0;let w=this.pendingSnapshot;this.pendingSnapshot=null;let C=Jl(w,u?{seats:u,default:y}:null);C&&this.applySeatsMap(C.seats,C.default,C.source),this.rebuildSelectableSeatIds(),this.opts.selectedObjects?.length?this.select(this.opts.selectedObjects):this.emitSelectionValidity(),this.pushGAState(),o.applyInitialState=s(k);let I=performance.now();g.forceDraw(),o.firstPaint=s(I);let T=performance.now();return b.ok&&this.snapshots.markSettled(),this.attachVisibility(),this.connect(),o.startRealtime=s(T),o.controllerTotal=s(i),{doc:d.doc,salesClosed:!!d.event.salesClosed,eventName:d.event.name,venue:d.event.venue,startsAt:d.event.startsAt,timezone:d.event.timezone??null,currency:m,mode:d.event.mode??"live",locale:d.event.locale??null,posterUrl:d.event.posterUrl??null,chartDelivery:d.chartDelivery,performanceProfile:o}}getSelection(){if(!this.renderer)return[];let e=[],i=new Set;for(let o of this.renderer.getSelection()){let s=this.groupedTableBySeatId.get(o.id);s?i.has(s.label)||(i.add(s.label),e.push(this.toTableSeat(s))):e.push(this.toSeat(o))}return e}seatDetails(e){let i=this.seatById.get(e);return i?this.describeSeat(i):null}clearSelection(){this.renderer?.clearSelection(),this.resetUnheldTableQuantities(),this.emitSelectionChange()}deselect(e){let i=new Set;for(let o of e){let s=this.groupedTableBySeatId.get(o)??this.groupedTablesByLabel.get(o);if(s)s.chairs.forEach(n=>i.add(n.id)),this.hold_?.labels.includes(s.label)||(this.tableQuantities.set(s.label,s.mode==="whole"?s.capacity:s.minOccupancy),s.mode==="variable"&&this.confirmedVariableTables.delete(s.label));else{let n=this.seatById.has(o)?o:this.labelToId.get(o);n&&i.add(n)}}this.renderer?.deselect([...i]),this.emitSelectionChange()}setMaxSelection(e){this.maxSelection=Math.max(0,Math.floor(e)),this.renderer?.setMaxSelection?.(this.rendererSelectionCap())}select(e){let i=new Set(this.getSelection().map(r=>r.label)),o=new Set,s=[];for(let r of e){let l=this.groupedTableBySeatId.get(r)??this.groupedTablesByLabel.get(r);if(l)this.tableTierResolution(l).kind==="invalid"?s.push(l.label):l.chairs.forEach(c=>{this.isSelectableByPolicy(c.id)&&o.add(c.id)});else{let a=this.seatById.has(r)?r:this.labelToId.get(r);if(!a||!this.isSelectableByPolicy(a))continue;let c=this.seatById.get(a);c&&this.seatTierResolution(c).kind==="invalid"?s.push(c.label):o.add(a)}}if(s.length&&this.emitError(new _e(Hi(s))),!o.size)return[];if(this.renderer?.select?.([...o]),this.selectionGuestCount()>this.maxSelection)return this.renderer?.deselect([...o]),this.opts.onSelectionLimit?.(this.maxSelection),[];let n=this.getSelection().filter(r=>!i.has(r.label));return n.length&&this.emitSelectionChange(),n}selectCategories(e){let i=new Set(e);return this.select([...this.seatById.values()].filter(o=>i.has(o.categoryKey)).map(o=>o.id))}deselectCategories(e){let i=new Set(e);this.deselect(this.getSelection().filter(o=>i.has(o.categoryKey)).map(o=>o.id))}setSelectableObjects(e){this.selectableObjectRefs=e==null?null:[...new Set(e.filter(o=>typeof o=="string"&&!!o))],this.rebuildSelectableSeatIds();let i=this.renderer?.getSelection().filter(o=>!this.isSelectableByPolicy(o.id)).map(o=>o.id)??[];i.length&&this.deselect(i)}getSelectionValidity(e){if(this.numberOfPlacesToSelect==null&&!this.selectionValidators.length)return null;let i=this.getSelection(),o=e??i.reduce((s,n)=>s+(n.quantity??1),0);return Zl(i,o,this.numberOfPlacesToSelect,this.selectionValidators,()=>this.hasOrphanedSelection())}hasOrphanedSelection(){let e=this.renderer;if(!e)return!1;let i=new Set(e.getSelection().map(o=>o.id));return i.size>0&&Gi(this.seatById.values(),o=>e.getStatus(o),i).length>0}rebuildSelectableSeatIds(){if(this.selectableObjectRefs==null){this.selectableSeatIds=null;return}let e=new Set;for(let i of this.selectableObjectRefs){let o=this.groupedTableBySeatId.get(i)??this.groupedTablesByLabel.get(i);if(o){o.chairs.forEach(n=>e.add(n.id));continue}let s=this.seatById.has(i)?i:this.labelToId.get(i);s&&e.add(s)}this.selectableSeatIds=e}isSelectableByPolicy(e){return this.selectableSeatIds==null||this.selectableSeatIds.has(e)}setTableQuantity(e,i){let o=this.groupedTablesByLabel.get(e);if(!o)return!1;let s=o.mode==="whole"?o.capacity:Math.floor(i);if(!Number.isInteger(s)||s<o.minOccupancy||s>o.maxOccupancy)return!1;let n=this.tableQuantities.get(e)??o.minOccupancy;return this.tableQuantities.set(e,s),this.selectionGuestCount()>this.maxSelection?(this.tableQuantities.set(e,n),this.opts.onSelectionLimit?.(this.maxSelection),!1):(o.mode==="variable"&&this.confirmedVariableTables.add(e),this.emitSelectionChange(),!0)}async replaceTableQuantity(e,i,o){let s=this.groupedTablesByLabel.get(e),n=this.hold_;if(!s||s.mode!=="variable"||!n?.labels.includes(e))return null;let r=Math.floor(i);if(!Number.isInteger(r)||r<s.minOccupancy||r>s.maxOccupancy)return null;if((n.items??[]).filter(d=>d.label!==e).reduce((d,h)=>d+(h.quantity??1),0)+r>this.maxSelection)return this.opts.onSelectionLimit?.(this.maxSelection),null;let a=(n.items??[]).map(d=>({label:d.label,tierId:d.tierId,quantity:d.label===e?r:d.quantity}));if(!a.some(d=>d.label===e))return null;let c=await this.api.hold(this.key,a,o,n.holdId);return this.tableQuantities.set(e,r),this.setHold({holdId:c.holdId,labels:a.map(d=>d.label),expiresAt:c.expiresAt,items:c.items}),this.hold_}rendererSelectionCap(){return this.maxSelection+this.groupedSelectionOverhead}selectionGuestCount(){return this.getSelection().reduce((e,i)=>e+(i.quantity??1),0)}handleRendererSelect(e){let i=this.groupedTableBySeatId.get(e.id);if(!this.isSelectableByPolicy(e.id)){this.renderer?.deselect(i?i.chairs.map(s=>s.id):[e.id]),this.emitSelectionChange();return}if((i?this.tableTierResolution(i):this.seatTierResolution(e)).kind==="invalid"){this.renderer?.deselect(i?i.chairs.map(s=>s.id):[e.id]),this.emitError(new _e(Hi([i?.label??e.label]))),this.emitSelectionChange();return}if(i){if(this.selectionGuestCount()>this.maxSelection){this.renderer?.deselect(i.chairs.map(s=>s.id)),this.opts.onSelectionLimit?.(this.maxSelection),this.emitSelectionChange();return}this.renderer?.select?.(i.chairs.map(s=>s.id)),this.opts.onSelect?.(i.chairs[0]??e),this.opts.onTableSelectionRequest?.(this.toTableSeat(i)),this.emitSelectionChange();return}if(this.selectionGuestCount()>this.maxSelection){this.renderer?.deselect([e.id]),this.opts.onSelectionLimit?.(this.maxSelection),this.emitSelectionChange();return}this.opts.onSelect?.(e),this.emitSelectionChange()}handleRendererDeselect(e){let i=this.groupedTableBySeatId.get(e.id),o=i?.label??e.label;if(this.hold_?.labels.includes(o)){this.opts.onDeselect?.(i?{...e,label:o}:e);return}i?(this.renderer?.deselect(i.chairs.map(s=>s.id)),this.hold_?.labels.includes(i.label)||(this.tableQuantities.set(i.label,i.mode==="whole"?i.capacity:i.minOccupancy),i.mode==="variable"&&this.confirmedVariableTables.delete(i.label)),this.opts.onDeselect?.(i.chairs[0]??e)):this.opts.onDeselect?.(e),this.emitSelectionChange()}resetUnheldTableQuantities(){for(let e of this.groupedTablesByLabel.values())this.hold_?.labels.includes(e.label)||(this.tableQuantities.set(e.label,e.mode==="whole"?e.capacity:e.minOccupancy),e.mode==="variable"&&this.confirmedVariableTables.delete(e.label))}resetTableQuantitiesForLabels(e){for(let i of e){let o=this.groupedTablesByLabel.get(i);o&&(this.tableQuantities.set(i,o.mode==="whole"?o.capacity:o.minOccupancy),o.mode==="variable"&&this.confirmedVariableTables.delete(i))}}tableQuantityRequest(e){if(e?.objectType!=="table")return{};if(e.bookingMode==="variable"&&!this.confirmedVariableTables.has(e.label))throw new Error("picker: confirm a variable table guest quantity before holding");return{quantity:e.quantity}}async hold(e,i){if(!this.renderer)return null;let s=e??this.getSelection().map(a=>a.label),n=(this.hold_?.items??[]).filter(a=>a.objectType==="ga"),r=[...new Set([...n.map(a=>a.label),...s])];if(!r.length)return null;let l=this.ticketIssue(r);if(l)throw new _e(l);if(this.hold_&&this.holdCovers(r))return this.hold_;try{let a=r.map(d=>{let h=n.find(f=>f.label===d);if(h)return{label:d,tierId:h.tierId,quantity:h.quantity};let p=this.labelToSeat.get(d),m=p?this.toSeat(p):null;return{label:d,...m?.tierId?{tierId:m.tierId}:{},...this.tableQuantityRequest(m)}}),c=await this.api.hold(this.key,a,i,this.hold_?.holdId);return this.setHold({holdId:c.holdId,labels:r,expiresAt:c.expiresAt,items:c.items}),this.hold_}catch(a){throw this.handle409Conflicts(a),a}}async resumeHold(e){if(this.closed||!e||!this.api.resume)return null;let i=await this.api.resume(this.key,e);if(this.closed)return null;let o=[...new Set(i.items.map(s=>s.label))];return o.length?(this.setHold({holdId:i.holdId,labels:o,expiresAt:i.expiresAt,items:i.items},"restored"),this.hold_):null}async extendHold(e){let i=this.hold_;if(!i||!this.api.extend)return null;try{let o=await this.api.extend(this.key,i.holdId,e);return this.hold_?.holdId!==i.holdId?this.hold_:(this.setHold({holdId:i.holdId,labels:i.labels,expiresAt:o.expiresAt,items:i.items}),this.hold_)}catch{return null}}categoryAvailability(){return Nl({seatById:this.seatById,groupedTableBySeatId:this.groupedTableBySeatId,groupedTablesByLabel:this.groupedTablesByLabel,closedMembers:this.closedMemberIds(),statusOf:e=>this.getStatus(e),gaAreas:this.getGAAreas()})}closedMemberIds(){let e=new Set,i=this.renderer;if(!i||!this.closedSections.size)return e;for(let o of this.closedSections)for(let s of i.sectionMembers?.(o)??[])e.add(s);return e}getGAAreas(){let e=this.visibleDoc();return e?Ol(e,this.currency,i=>this.statusOf(i)):[]}setGASelection(e){this.gaSelected=e?new Map(e):null,this.pushGAState()}pushGAState(){this.renderer?.setGAStates?.(Dl(this.getGAAreas(),this.gaSelected))}async holdGA(e,i,o={}){let s=this.visibleDoc();if(!s||!Number.isFinite(i)||i<1)return null;let n=dt(s).find(d=>d.id===e);if(!n)return null;let r=Ot(n).filter(d=>!this.hold_?.labels.includes(d)&&this.statusOf(d)==="free").slice(0,Math.floor(i));if(r.length!==Math.floor(i))return null;let l=new Map;for(let d of this.hold_?.items??[])l.set(d.label,{label:d.label,tierId:d.tierId,quantity:d.quantity});if(this.hold_&&!this.hold_?.items?.length)for(let d of this.hold_.seats)l.set(d.label,{label:d.label,...d.tierId?{tierId:d.tierId}:{}});for(let d of this.getSelection())l.set(d.label,{label:d.label,...d.tierId?{tierId:d.tierId}:{},...this.tableQuantityRequest(d)});for(let d of r)l.set(d,{label:d,...o.tierId?{tierId:o.tierId}:{}});let a=[...l.values()],c=await this.api.hold(this.key,a,o.ttlMs,this.hold_?.holdId);return this.setHold({holdId:c.holdId,labels:a.map(d=>d.label),expiresAt:c.expiresAt,items:c.items}),this.hold_}hasPremiumSeats(){for(let e of this.labelToSeat.values())if(e.commercial?.premium)return!0;return!1}getBestAvailableZones(){return zl(this.visibleDoc())}pickPremiumBlock(e,i,o){return Kl({doc:this.visibleDoc(),qty:e,categoryKey:i,zoneId:o,groupedObjectIds:new Set(this.groupedTablesByObject.keys()),heldLabels:new Set(this.hold_?.labels??[]),accessFilter:this.accessFilter,tierApplies:s=>this.seatTierResolution(s).kind!=="invalid",statusOfLabel:s=>this.getStatus(this.labelToId.get(s)??"")??"free",isPremium:s=>!!this.labelToSeat.get(s)?.commercial?.premium})}async bestAvailable(e,i,o={}){let s=this.renderer;if(!s)return null;if(o.preferPremium){let n=this.pickPremiumBlock(e,i,o.zoneId);if(n){if(this.hold_&&!await this.release())return null;try{let r=n.map(d=>{let h=this.labelToSeat.get(d),p=h?this.toSeat(h):null;return{label:d,...p?.tierId?{tierId:p.tierId}:{}}}),l=await this.api.hold(this.key,r,o.ttlMs);s.clearSelection();let a=this.idsForLabels(n);a.length&&s.setStatus(a,"held"),this.setHold({holdId:l.holdId,labels:[...n],expiresAt:l.expiresAt,items:l.items});let c=n.map(d=>this.labelToSeat.get(d)).filter(d=>!!d).map(d=>this.toSeat(d));return this.opts.onSelectionChange?.(c),this.hold_}catch(r){let{status:l,reason:a}=Mt(r);if(l===409&&a==="event_closed")throw this.opts.onSalesClosed?.(),r}}}if(this.hold_&&!await this.release())return null;try{let n=await this.api.bestAvailable(this.key,e,i,o.zoneId,o.ttlMs);s.clearSelection();let r=this.idsForLabels(n.labels);r.length&&s.setStatus(r,"held"),this.setHold({holdId:n.holdId,labels:[...n.labels],expiresAt:n.expiresAt,items:n.items});let l=n.labels.map(a=>this.labelToSeat.get(a)).filter(a=>!!a).map(a=>this.toSeat(a));return this.opts.onSelectionChange?.(l),this.hold_}catch(n){let{status:r,reason:l}=Mt(n);throw r===409&&l==="event_closed"&&this.opts.onSalesClosed?.(),n}}async book(e,i,o){let s=this.renderer;if(!s)return null;if(!this.api.book)throw new Error("picker: transport has no book() \u2014 hold-only mode");let n=i??this.getSelection().map(c=>c.label);if(!n.length)return null;let r=this.ticketIssue(n);if(r)throw new _e(r);let l;try{if(this.hold_&&this.holdCovers(n))l=this.hold_.holdId;else{let c=this.hold_?.holdId,d=await this.api.hold(this.key,n.map(h=>{let p=this.labelToSeat.get(h),m=p?this.toSeat(p):null;return{label:h,...m?.tierId?{tierId:m.tierId}:{},...this.tableQuantityRequest(m)}}),o,c);l=d.holdId,this.setHold({holdId:l,labels:[...n],expiresAt:d.expiresAt,items:d.items})}await this.api.book(this.key,n,l,e)}catch(c){let{status:d,conflicts:h,reason:p}=Mt(c);if(this.clearHold(),d===409&&p==="event_closed")this.opts.onSalesClosed?.();else if(d===409&&h?.length){let m=new Set(h.map(u=>u.label)),f=this.idsForLabels(m);f.length&&(s.setStatus(f,"booked"),s.deselect(f),this.resetTableQuantitiesForLabels(m));let g=n.filter(u=>!m.has(u));g.length&&l&&this.api.release(this.key,g,l).catch(()=>{}),this.emitSelectionChange()}else l&&this.api.release(this.key,n,l).catch(()=>{});throw c}let a=this.idsForLabels(n);return a.length&&(s.setStatus(a,"booked"),s.deselect(a)),this.clearHold(),this.resetTableQuantitiesForLabels(n),this.emitSelectionChange(),this.opts.onBook?.(e),n}async release(){let e=this.hold_;if(!e)return!0;try{let o=await this.api.release(this.key,e.labels,e.holdId);if(!this.releaseConfirmed(o,e.labels))return await this.resnapshot(),!1}catch(o){return this.emitError(o),!1}if(this.hold_?.holdId!==e.holdId)return!0;this.clearHold(),this.resetTableQuantitiesForLabels(e.labels);let i=this.idsForLabels(e.labels);return i.length&&(this.renderer?.deselect(i),this.renderer?.setStatus(i,"free")),!0}async releaseLabels(e){let i=this.hold_;if(!i)return!0;let o=e.filter(l=>i.labels.includes(l));if(!o.length)return!0;try{let l=await this.api.release(this.key,o,i.holdId);if(!this.releaseConfirmed(l,o))return await this.resnapshot(),!1}catch(l){return this.emitError(l),!1}if(this.hold_?.holdId!==i.holdId)return!0;let s=i.labels.filter(l=>!o.includes(l)),n=i.items?.filter(l=>!o.includes(l.label));s.length?this.setHold({...i,labels:s,items:n}):this.clearHold(),this.resetTableQuantitiesForLabels(o);let r=this.idsForLabels(o);return r.length&&(this.renderer?.deselect(r),this.renderer?.setStatus(r,"free")),!0}releaseConfirmed(e,i){let o=e?.released;return!Array.isArray(o)||i.every(s=>o.includes(s))}setStatus(e,i){this.renderer?.setStatus(e,i)}getStatus(e){return this.renderer?.getStatus(e)}notForSaleCategorySeatIds(){let e=this.doc;if(!e)return[];let i=new Set(e.categories.filter(s=>s.notForSale).map(s=>s.key));if(!i.size)return[];let o=[];for(let[s,n]of this.seatById)i.has(n.categoryKey)&&o.push(s);return o}flashSeat(e,i){this.renderer?.flashSeat(e,i)}zoomIn(){this.renderer?.zoomIn()}zoomOut(){let e=this.renderer;if(!e?.zoomOutLevel)return void e?.zoomOut();let i=!!e.getFocusedSection?.();e.zoomOutLevel()==="venue"&&i&&this.overview()}zoomToFit(){this.renderer?.zoomToFit()}refitCurrentView(){this.renderer?.refitCurrentView?this.renderer.refitCurrentView():this.renderer?.zoomToFit()}setViewportInsets(e){this.viewportInsets=e?{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}:null,this.renderer?.setViewportInsets?.(this.viewportInsets)}getViewportInsets(){return this.renderer?.getViewportInsets?.()??this.viewportInsets??{top:0,right:0,bottom:0,left:0}}worldToScreen(e){return this.renderer?.worldToScreen(e)??{x:0,y:0}}setSelectionFocus(e){this.renderer?.setSelectionFocus?.(e)}setAccessibilityFilter(e){Il(this.pickerFocusContext,e)}getAccessibilityFilter(){return this.accessFilter?[...this.accessFilter]:null}get pickerFocusContext(){let e=this;return{renderer:e.renderer,doc:e._doc,get accessFilter(){return e.accessFilter},set accessFilter(i){e.accessFilter=i},get accessStepAt(){return e.accessStepAt},set accessStepAt(i){e.accessStepAt=i},get bandReturnPose(){return e.bandReturnPose},set bandReturnPose(i){e.bandReturnPose=i},getActiveFloorId:()=>e.getActiveFloorId(),setFloor:i=>e.setFloor(i),sectionSummary:i=>e.sectionSummary(i),emitSectionFocus:i=>{e.opts.onSectionFocus?.(i)}}}focusAccessibilityFilter(e){return Ho(this.pickerFocusContext,e)}accessibilitySpread(e){return Pl(this.pickerFocusContext,e)}focusNextAccessibleSection(e){return Rl(this.pickerFocusContext,e)}accessibilityFilterDims(e){return El(this.pickerFocusContext,e)}setCommercialLimitedFilter(e){this.renderer?.setCommercialLimitedFilter?.(e)}getFloors(){return this.renderer?.getFloors?.()??[]}getActiveFloorId(){return this.renderer?.getActiveFloorId?.()??""}setFloor(e){let i=this.renderer;!i?.setActiveFloor||e===i.getActiveFloorId?.()&&!i.isFloorOverview?.()||(i.setFloorOverview?.(!1),i.setStacked?.(!1),i.setActiveFloor(e),this.resnapshot(),this.emitSelectionChange())}setStacked(e){let i=this.renderer;!i?.setStacked||e===i.isStacked?.()||(i.setStacked(e),this.resnapshot())}isMultiFloor(){return(this._doc?.floors?.length??0)>1}setFloorOverview(e){let i=this.renderer;!i?.setFloorOverview||e===i.isFloorOverview?.()||(i.setFloorOverview(e),this.resnapshot(),this.emitSelectionChange())}isFloorOverview(){return this.renderer?.isFloorOverview?.()??!1}handleDeckTap(e){let i=this.renderer;i&&(i.setViewMode?.("flat"),i.setFloorOverview?.(!1),i.setStacked?.(!1),i.setActiveFloor?.(e),this.resnapshot(),this.emitSelectionChange(),this.opts.onDeckTap?.(e))}setViewMode(e){this.renderer?.setViewMode?.(e)}getViewMode(){return this.renderer?.getViewMode?.()??"flat"}getRung(){return this.renderer?.getRung?.()??"seats"}getFocusedSection(){return this.renderer?.getFocusedSection?.()??null}seatsRevealed(){let e=this.renderer;return e?.seatsRevealed?e.seatsRevealed():this.getRung()==="seats"||!!this.getFocusedSection()}setRung(e){if(e==="zones"){this.overview();return}this.renderer?.setRung?.(e)}setCategoryFilter(e){this.renderer?.setCategoryFilter?.(e)}focusCategoryFilter(e){_l(this.pickerFocusContext,e)}getViewport(){let e=this.renderer;return!e?.getVisibleWorldRect||!e.getWorldBounds?null:{visible:e.getVisibleWorldRect(),bounds:e.getWorldBounds()}}getMinimapSnapshot(){return this.renderer?.getMinimapSnapshot?.()??{sections:[],seats:[]}}panToWorld(e){this.renderer?.panToWorld?.(e)}clearSectionFocus(){this.renderer?.clearSectionFocus?.(),this.opts.onSectionFocus?.(null)}getRenderedQualityEvidence(){return this.renderer?.getRenderedQualityEvidence()??null}focusSection(e,i){this.handleSectionTap(e,i)}focusSeats(e,i){let o=this.renderer;if(!o?.focusSeats?.(e,i))return!1;let s=o.getFocusedSection?.()??null;return this.opts.onSectionFocus?.(s?this.sectionSummary(s):null),!0}getSectionSeatCount(e){return this.renderer?.sectionMembers?.(e)?.length??0}overview(){this.renderer?.clearSectionFocus?.(),this.renderer?.zoomToFit(),this.opts.onSectionFocus?.(null)}handleSectionTap(e,i){if(!this.renderer)return;let o=this.isSectionClosed(e)?null:this.sectionSummary(e);Ml(this.pickerFocusContext,e,o,i),this.opts.onSectionFocus?.(o)}sectionSummary(e){return!this.renderer||!this._doc?null:jl({id:e,doc:this._doc,sectionMembers:i=>this.renderer?.sectionMembers?.(i)??[],statusOf:i=>this.renderer?.getStatus(i)??"free",seatById:this.seatById,groupedTableBySeatId:this.groupedTableBySeatId,...this.accessFilter?{matchesAccessFilter:i=>Ce(i,this.accessFilter)}:{}})}clearConnectFallback(){this.connectFallback&&(clearTimeout(this.connectFallback),this.connectFallback=null)}destroy(){if(this.closed=!0,this.seatsBuilt=!1,this.pendingSnapshot=null,this.clearConnectFallback(),this.detachVisibility?.(),this.detachVisibility=null,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.expiryTimer&&(clearTimeout(this.expiryTimer),this.expiryTimer=null),this.realtime){try{this.realtime.stop()}catch{}this.realtime=null}if(this.ws){try{this.ws.close()}catch{}this.ws=null}this.renderer?.destroy(),this.renderer=null}toSeat(e){let i=this.groupedTableBySeatId.get(e.id);if(i)return this.toTableSeat(i);let o=e.commercial?{commercial:e.commercial}:void 0,s=e.displayLabel?{displayLabel:e.displayLabel}:void 0,n=e.accessibility?.length?{accessibility:e.accessibility}:void 0,r=e.wheelchairSpaceType?{wheelchairSpaceType:e.wheelchairSpaceType}:void 0,l=this.seatContext.get(e.id),a=this.tiersForSeat(e),c=this.seatTierResolution(e);if(c.kind!=="resolved"||!a)return{id:e.id,label:e.label,...s,...l,categoryKey:e.categoryKey,price:this.priceFor(e.categoryKey),currency:this.currency,...o,...n,...r};let d=c.tier;return{id:e.id,label:e.label,...s,...l,categoryKey:e.categoryKey,price:d.price,currency:this.currency,tiers:a,tierId:d.id,...o,...n,...r}}toTableSeat(e){let i=e.chairs[0],o=this.tiersFor(e.categoryKey)?.filter(r=>Ut(this._doc,this.tableTierSeat(e),r.id).kind==="resolved"),s=this.tableTierResolution(e),n=s.kind==="resolved"?s.tier:void 0;return{id:i?.id??e.objectId,label:e.label,displayLabel:e.displayLabel??e.label,...e.displayType?{displayType:e.displayType,rowType:e.displayType}:{},objectId:e.objectId,sectionLabel:i?this.seatContext.get(i.id)?.sectionLabel:void 0,rowLabel:e.displayLabel??e.label,categoryKey:e.categoryKey,price:n?.price??this.priceFor(e.categoryKey),currency:this.currency,...o?{tiers:o,tierId:n?.id}:{},objectType:"table",bookingMode:e.mode,quantity:this.tableQuantities.get(e.label)??(e.mode==="whole"?e.capacity:e.minOccupancy),capacity:e.capacity,minOccupancy:e.minOccupancy,maxOccupancy:e.maxOccupancy,physicalSeatIds:e.chairs.map(r=>r.id)}}describeSeat(e,i){let o=this._doc?.categories.find(s=>s.key===e.categoryKey);return{...this.toSeat(e),categoryLabel:o?.label??e.categoryKey,categoryColor:o?.color??"#6e7bff",status:this.renderer?.getStatus(e.id)??"free",mark:this.renderer?.getSeatMark?.(e.id)??null,...i?.interaction?{interaction:i.interaction}:{},...i?.unavailable?{unavailable:!0}:{},...i?.filteredOut?{filteredOut:!0}:{},currency:this.currency,...this.seatContext.get(e.id)}}priceFor(e){return this._doc?.categories.find(i=>i.key===e)?.price??0}tiersFor(e){let i=this._doc?.categories.find(o=>o.key===e)?.tiers;return i&&i.length?i:void 0}tiersForSeat(e){if(!this._doc)return;let i=_s(this._doc,e);return i.length?i:void 0}seatTierResolution(e){return this._doc?Ut(this._doc,e,this.seatTiers.get(e.id)):{kind:"none"}}tableTierSeat(e){return{label:e.label,categoryKey:e.categoryKey,accessibility:e.chairs.flatMap(i=>i.accessibility??[])}}tableTierResolution(e){if(!this._doc)return{kind:"none"};let i=e.chairs[0]?.id??"";return Ut(this._doc,this.tableTierSeat(e),this.seatTiers.get(i))}setSeatTier(e,i){let o=this.seatById.get(e);if(!o)return;let s=this.tiersForSeat(o);if(s){if(i==null)this.seatTiers.delete(e);else if(s.some(n=>n.id===i))this.seatTiers.set(e,i);else return;this.emitSelectionChange(),this.hold_&&(this.hold_={...this.hold_,seats:this.seatsForLabels(this.hold_.labels)})}}seatsForLabels(e){let i=[];for(let o of e){let s=this.labelToSeat.get(o);s&&i.push(this.toSeat(s))}return i}emitSelectionChange(){let e=this.getSelection();this.opts.onSelectionChange?.(e),this.emitSelectionValidity(),this.emitOrphanHint()}emitSelectionValidity(){let e=this.getSelectionValidity();e&&(this.opts.onSelectionValidityChange?.(e),e.isValid?this.lastSelectionValidity!==!0&&this.opts.onSelectionValid?.(e.seats):this.lastSelectionValidity!==!1&&this.opts.onSelectionInvalid?.(e),this.lastSelectionValidity=e.isValid)}ticketIssue(e){if(!this._doc)return null;let i=e?this.seatsForLabels(e):this.getSelection();return Fs(this._doc,i.map(o=>({label:o.label,...o.tierId?{tierId:o.tierId}:{}})))}emitOrphanHint(){if(!this.opts.onHint)return;let e=this.renderer;if(!e)return;let i=this.ticketIssue();if(i){this.hintShown=!0,this.opts.onHint(i.code==="companion_pair_required"?N("picker.companionPairRequired"):"That ticket choice is not available for the selected seat.");return}let o=this.selectionValidators.some(r=>r.type==="noOrphanSeats"),s=new Set(e.getSelection().map(r=>r.id));(o&&s.size?Gi(this.seatById.values(),r=>e.getStatus(r),s):[]).length>0?(this.hintShown=!0,this.opts.onHint(N("picker.orphanHint"))):this.hintShown&&(this.hintShown=!1,this.opts.onHint(null))}setColorblindSafe(e){this.renderer?.setColorblindSafe?.(e)}emitError(e){this.opts.onError?this.opts.onError(e):console.error("[picker]",e)}holdCovers(e){let i=this.hold_;if(!i||i.labels.length!==e.length||!e.every(n=>i.labels.includes(n)))return!1;let o=new Map((i.items??[]).map(n=>[n.label,n.tierId])),s=new Map((i.items??[]).map(n=>[n.label,n.quantity??1]));return e.every(n=>{let r=this.labelToSeat.get(n),l=r?this.toSeat(r):null,a=l?.tierId??null;return(l?.objectType!=="table"||(l.bookingMode!=="variable"||this.confirmedVariableTables.has(n))&&(!s.has(n)||s.get(n)===l.quantity))&&(!o.has(n)||o.get(n)===a)})}handle409Conflicts(e){let{status:i,conflicts:o}=Mt(e);if(i!==409||!o?.length)return;let s=this.renderer;if(!s)return;let n=this.idsForLabels(o.map(r=>r.label));n.length&&(s.deselect(n),s.setStatus(n,"held"),this.resetTableQuantitiesForLabels(o.map(r=>r.label))),this.emitSelectionChange()}setHold(e,i="created"){for(let n of e.items??[])this.groupedTablesByLabel.has(n.label)&&n.quantity!=null&&(this.tableQuantities.set(n.label,n.quantity),this.groupedTablesByLabel.get(n.label)?.mode==="variable"&&this.confirmedVariableTables.add(n.label));let o={...e,seats:this.seatsForLabels(e.labels)};this.hold_=o,this.renderer?.setOwnedHold?.(this.idsForLabels(o.labels)),this.expiryTimer&&clearTimeout(this.expiryTimer);let s=Math.max(0,o.expiresAt-Date.now());this.expiryTimer=setTimeout(()=>{this.expireActiveHold()},s),i==="restored"?this.opts.onHoldRestored?.(o):this.opts.onHold?.(o)}clearHold(){this.hold_=null,this.renderer?.setOwnedHold?.(null),this.expiryTimer&&(clearTimeout(this.expiryTimer),this.expiryTimer=null)}async expireActiveHold(){let e=this.hold_;if(e){try{let i=await this.api.objects(this.key);if(this.hold_?.holdId!==e.holdId)return;this.applySeatsMap(i.seats,i.default??"free")}catch{this.hold_?.holdId===e.holdId&&(this.expiryTimer=setTimeout(()=>{this.expireActiveHold()},2e3));return}if(this.hold_?.holdId===e.holdId){if(Wl(e.expiresAt,e.labels.some(i=>this.statusOf(i)==="held"))){this.expiryTimer=setTimeout(()=>{this.expireActiveHold()},1e3);return}this.clearHold(),this.opts.onHoldExpired?.()}}}applySeatsMap(e,i="free",o="http"){o==="socket"&&(this.socketVersion+=1);let s=this.renderer;if(!s||!this.seatsBuilt){this.pendingSnapshot=Ql(this.pendingSnapshot,{seats:e,default:i,source:o});return}let n=this.seatsMapDiffers(e,i);this.lastSnapshotAt=Date.now(),this.liveStatuses=new Map(Object.entries(e)),this.liveDefault=i;let r=Ci(i);this.allIds.length&&s.setStatus(this.allIds,r),s.setOwnedHold?.(this.idsForLabels(this.hold_?.labels??[]));let l={free:[],held:[],booked:[],not_for_sale:[]};for(let[c,d]of Object.entries(e))l[Ci(d)].push(...this.idsForLabel(c));["free","held","booked","not_for_sale"].forEach(c=>{c!==r&&l[c].length&&s.setStatus(l[c],c)});let a=this.notForSaleCategorySeatIds();a.length&&s.setStatus(a,"not_for_sale"),this.clearBookedHoldIfSettled(),this.opts.onStatusChange?.({changed:n})}snapshotIsFresh(e=5e3){return this.lastSnapshotAt>0&&Date.now()-this.lastSnapshotAt<e}statusOf(e){return this.liveStatuses.get(e)??this.liveDefault}clearBookedHoldIfSettled(){let e=this.hold_;e?.labels.every(i=>this.statusOf(i)==="booked")&&(this.clearHold(),this.resetTableQuantitiesForLabels(e.labels))}resnapshot(e=!1){return this.snapshots.run(async()=>{let i=this.socketVersion,o=await this.api.objects(this.key);this.socketVersion===i&&this.applySeatsMap(o.seats,o.default??"free","http")},e)}resync(e){return e?.reason==="connect"&&this.snapshotIsFresh()?Promise.resolve():this.resnapshot()}applyProjection(e){this.applySeatsMap(e.exceptions,e.default,"socket")}refresh(){return this.resnapshot(!0)}async refreshAvailability(){await this.resnapshot();let e=this.hold_,i=Hl({selection:this.getSelection().map(o=>o.label),holdLabels:e?.labels??[],holdActive:!!e,holdExpiresAt:e?.expiresAt??null,statusOf:o=>this.statusOf(o)});if(i.lost.length&&this.deselect(i.lost),i.holdLapsed){this.clearHold(),this.resetTableQuantitiesForLabels(i.lapsedLabels);let o=this.idsForLabels(i.lapsedLabels);o.length&&this.renderer?.deselect(o),this.opts.onHoldExpired?.()}return this.opts.onAvailabilityRefresh?.(i),i}getAccessNeeds(){return Gl(this.seatById.values(),e=>this.getStatus(e)??"free")}attachVisibility(){this.detachVisibility||(this.detachVisibility=Vl(()=>{this.closed||this.refreshAvailability().then(()=>{this.closed||this.renderer?.forceDraw()})}))}realtimeSink(){return{applyStatuses:e=>this.applyStatusChanges(e),applyProjection:e=>this.applyProjection(e),resync:e=>this.resync(e),onSections:(e,i)=>{let o=this.syncHidden(e),s=this.syncClosed(i);o&&this.resnapshot(),(o||s)&&this.opts.onStatusChange?.({changed:!0})}}}seatsMapDiffers(e,i){if(this.lastSnapshotAt===0||i!==this.liveDefault)return!0;let o=Object.entries(e);if(o.length!==this.liveStatuses.size)return!0;for(let[s,n]of o)if(this.liveStatuses.get(s)!==n)return!0;return!1}applyStatusChanges(e){this.socketVersion+=1;let i=this.renderer;if(!i)return;let o=e.some(s=>this.liveStatuses.get(s.label)!==s.status);for(let s of e){this.liveStatuses.set(s.label,s.status);let n=this.idsForLabel(s.label);if(!n.length)continue;let r=Ci(s.status);this.opts.flashOnLiveChange&&r!=="free"&&n.some(l=>i.getStatus(l)==="free")&&!this.hold_?.labels.includes(s.label)&&n.forEach(l=>i.flashSeat(l,r==="held"?"#f4b740":"#f43f5e")),i.setStatus(n,r)}this.opts.keepLiveWhileHidden&&typeof document<"u"&&document.visibilityState==="hidden"&&i.forceDraw(),this.pushGAState(),this.clearBookedHoldIfSettled(),this.opts.onStatusChange?.({changed:o})}connect(){if(this.closed)return;let e=this.api.socketUrl(this.key);if(!e)return;if(!this.realtime&&this.api.createRealtime){let o=null;try{o=this.api.createRealtime(this.key,this.realtimeSink())}catch{o=null}if(o){this.realtime=o,o.start();return}}if(this.realtime)return;let i;try{let o=this.api.socketProtocols?.(this.key);i=o&&o.length?new WebSocket(e,o):new WebSocket(e)}catch{this.scheduleReconnect();return}this.ws=i,i.onopen=()=>{if(this.attempt=0,!this.snapshotIsFresh()){this.resnapshot();return}this.clearConnectFallback(),this.connectFallback=setTimeout(()=>{this.connectFallback=null,this.resnapshot()},2500)},i.onmessage=o=>{this.clearConnectFallback();let s;try{s=JSON.parse(typeof o.data=="string"?o.data:"")}catch{return}if(!this.renderer||!s||typeof s!="object")return;let r=s;Array.isArray(r.hidden)&&this.syncHidden(r.hidden)&&(this.resnapshot(),this.opts.onStatusChange?.({changed:!0})),Array.isArray(r.closed)&&this.syncClosed(r.closed)&&this.opts.onStatusChange?.({changed:!0}),r.type!=="hidden"&&(r.seats&&typeof r.seats=="object"?this.applySeatsMap(r.seats):Array.isArray(r.changes)&&this.applyStatusChanges(r.changes))},i.onclose=()=>{this.ws===i&&(this.ws=null),this.scheduleReconnect()},i.onerror=()=>{try{i.close()}catch{}}}scheduleReconnect(){if(this.closed||this.reconnectTimer)return;let e=Math.min(this.attempt++,5),i=Bl(e,{baseMs:1e3,maxMs:cu,jitter:1});this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},i)}};var du=5,hu=-1.1,Vo=35;function zo(t,e){let i=t-J,o=Math.atan2(du-i,e)*180/Math.PI,s=Math.atan2(hu-i,e)*180/Math.PI;return s<-Vo&&(o+=-Vo-s,s=-Vo),{topPitch:o,basePitch:s}}var q=2048,fe=1024,At=Jo,_=Math.PI*2,uu=fe/180,lt=t=>(t+180)/360*q,U=t=>(90-t)/180*fe;function nc(t){let e=2166136261;for(let i=0;i<t.length;i++)e^=t.charCodeAt(i),e=Math.imul(e,16777619);return e>>>0}function rc(t){let e=t>>>0;return()=>{e|=0,e=e+1831565813|0;let i=Math.imul(e^e>>>15,1|e);return i=i+Math.imul(i^i>>>7,61|i)^i,((i^i>>>14)>>>0)/4294967296}}var Ii=96,Yo=360/Ii,pu=.6,Ko=[17,23,42];function Xo(t,e,i=1){let o=Math.max(0,Math.min(.58,e)),s=Math.round(t[0]+(Ko[0]-t[0])*o),n=Math.round(t[1]+(Ko[1]-t[1])*o),r=Math.round(t[2]+(Ko[2]-t[2])*o);return`rgba(${s},${n},${r},${i})`}function tc(t,e,i){return[Math.round(t[0]+(e[0]-t[0])*i),Math.round(t[1]+(e[1]-t[1])*i),Math.round(t[2]+(e[2]-t[2])*i)]}function ie(t,e,i){let o=(1-Math.abs(2*i-1))*e,s=(t%360+360)%360/60,n=o*(1-Math.abs(s%2-1)),r=0,l=0,a=0;s<1?[r,l,a]=[o,n,0]:s<2?[r,l,a]=[n,o,0]:s<3?[r,l,a]=[0,o,n]:s<4?[r,l,a]=[0,n,o]:s<5?[r,l,a]=[n,0,o]:[r,l,a]=[o,0,n];let c=i-o/2;return[Math.round((r+c)*255),Math.round((l+c)*255),Math.round((a+c)*255)]}var ic=new Map;function oc(t){if(!t)return null;let e=ic.get(t);if(e)return e;let i=2166136261;for(let n=0;n<t.length;n++)i^=t.charCodeAt(n),i=Math.imul(i,16777619);let o=(i>>>0)%360,s=ie(o,.3,.42);return ic.set(t,s),s}function fu(t,e,i,o){let s=new Array(Ii).fill(null),n=0,r=t.sectionId;for(let l of e){if(l.id===t.id)continue;let a=l.sectionId;if(!a||r&&a===r)continue;let c=l.x-t.x,d=l.y-t.y,h=Math.hypot(c,d)*At;if(h<1.5||h>95)continue;let p=l.eyeHeightM??J,m=p-o;Math.abs(m)>n&&(n=Math.abs(m));let f=Math.atan2(m,h)*180/Math.PI,g=Math.atan2(p-J-o,h)*180/Math.PI,y=((Math.atan2(c,-d)-i)*180/Math.PI+540)%360-180,S=Math.min(Ii-1,Math.max(0,Math.floor((y+180)/Yo))),b=f>34&&h<16,v=s[S];v?(f>v.top&&(v.top=f),g<v.base&&(v.base=g),h<v.nearM&&(v.nearM=h,v.tint=oc(l.categoryKey)),v.overhead=v.overhead||b):s[S]={top:f,base:g,nearM:h,overhead:b,tint:oc(l.categoryKey)}}return{bins:s,maxDelta:n}}function mu(t,e,i,o){for(let s=0;s<Ii;s++){let n=e[s];if(!n)continue;let r=-180+s*Yo,l=i(r),a=i(r+Yo);if(!(a>l))continue;let c=Math.min(72,n.top),d=Math.min(n.base,-4),h=o(c),p=o(d);if(p<=h)continue;let m=n.nearM/95,f=n.tint,g=f?tc([44,54,80],f,.34):[44,54,80],u=f?tc([24,30,48],f,.28):[24,30,48],y=t.createLinearGradient(0,h,0,p);y.addColorStop(0,Xo(g,m)),y.addColorStop(.24,Xo(u,m)),y.addColorStop(1,Xo([10,13,22],m)),t.fillStyle=y,t.fillRect(l,h,a-l+1,p-h),t.fillStyle=`rgba(150,165,205,${.35*(1-m*.55)})`,t.fillRect(l,h,a-l+1,1.5);let b=Math.min(p,o(0))-h;if(b>8){let k=1-m*.4;for(let w=1;w<6;w++){let C=h+b*w/6;t.fillStyle=`rgba(0,0,0,${.16*k})`,t.fillRect(l,C,a-l+1,1.5),t.fillStyle=`rgba(120,134,170,${.1*k})`,t.fillRect(l,C+1.5,a-l+1,1.2)}}if(n.overhead){let v=o(Math.min(86,c+12)),k=t.createLinearGradient(0,v,0,h);k.addColorStop(0,"rgba(3,4,8,0.9)"),k.addColorStop(1,"rgba(3,4,8,0)"),t.fillStyle=k,t.fillRect(l,v,a-l+1,h-v),t.fillStyle="rgba(120,130,160,0.14)",t.fillRect(l,h-1.5,a-l+1,1.5)}}}function yu(t,e,i){let s=new Array(72).fill(!1),n=new Array(72).fill(1/0),r=new Set,l=0;for(let y of i){l++,y.sectionId&&r.add(y.sectionId);let S=y.x-e.x,b=y.y-e.y,v=Math.hypot(S,b)*At;if(v<.5)continue;let k=Math.atan2(S,-b),w=Math.floor((k+Math.PI)/_*72);w<0?w=0:w>=72&&(w=71),s[w]=!0,v<n[w]&&(n[w]=v)}let a=0,c=[];for(let y=0;y<72;y++)s[y]&&(a++,c.push(n[y]));let d=a/72*360;c.sort((y,S)=>y-S);let h=c.length?c[c.length>>1]:0,p=c.length?c[Math.floor(c.length*.15)]??h:0,m=c.length?c[Math.floor(c.length*.85)]??h:0,f=p>.5?m/p:1,g=nc(`${l}|${[...r].sort().join(",")}|${Math.round(e.x)},${Math.round(e.y)}`),u;return d>=300&&h>11&&f>1.35?u="sport":d>=285?u="arena":u="proscenium",{mode:u,seed:g,voidRadiusM:h,aspect:f}}var gu=5;function bu(t,e,i){switch(i){case 1:t.beginPath(),t.ellipse(0,-e*.14,e*1.16,e*1.16,0,0,_),t.fill();break;case 2:t.beginPath(),t.ellipse(0,-e*1.02,e*.42,e*.42,0,0,_),t.fill(),t.beginPath(),t.ellipse(0,-e*.2,e*.98,e*1.02,0,0,_),t.fill();break;case 3:t.beginPath(),t.ellipse(0,-e*.36,e*1.04,e*.6,0,Math.PI,_),t.fill(),t.beginPath(),t.ellipse(0,-e*.52,e*1.22,e*.24,0,0,_),t.fill();break;case 4:t.beginPath(),t.ellipse(-e*.66,e*.5,e*.5,e*1.35,0,0,_),t.fill(),t.beginPath(),t.ellipse(e*.66,e*.5,e*.5,e*1.35,0,0,_),t.fill(),t.beginPath(),t.ellipse(0,-e*.08,e*1.06,e*1.08,0,0,_),t.fill();break;default:break}}function Su(t,e,i,o,s){let n=o*.44,r=o*s.shoulderK,l=o*.66,a=o*1.68,c=o*5.4,d=`rgba(${s.clothing[0]},${s.clothing[1]},${s.clothing[2]},${s.alpha})`,h=`rgba(${s.tone[0]},${s.tone[1]},${s.tone[2]},${s.alpha})`;t.save(),t.translate(e,i);let p=s.lean*o;t.fillStyle=d,t.beginPath(),t.moveTo(-n,l),t.quadraticCurveTo(-n*1.18,a-p-o*.6,-r,a-p),t.quadraticCurveTo(-r*1.05,a+o*1.2,-r*.94,c),t.lineTo(r*.94,c),t.quadraticCurveTo(r*1.05,a+o*1.2,r,a+p),t.quadraticCurveTo(n*1.18,a+p-o*.6,n,l),t.closePath(),t.fill(),t.fillStyle=h,t.fillRect(-n*.82,o*.5,n*1.64,o*.9),t.save(),t.rotate(s.tilt),t.translate(s.turn*o,0),t.fillStyle=h,o>=18?(t.beginPath(),t.moveTo(-o*.9,-o*.15),t.quadraticCurveTo(-o*.96,-o*1.12,0,-o*1.06),t.quadraticCurveTo(o*.96,-o*1.12,o*.9,-o*.15),t.quadraticCurveTo(o*.86,o*.55,o*.36,o*.98),t.quadraticCurveTo(0,o*1.14,-o*.36,o*.98),t.quadraticCurveTo(-o*.86,o*.55,-o*.9,-o*.15),t.closePath(),t.fill(),o>=22&&(t.beginPath(),t.ellipse(-o*.9,o*.18,o*.13,o*.22,0,0,_),t.ellipse(o*.9,o*.18,o*.13,o*.22,0,0,_),t.fill())):(t.beginPath(),t.ellipse(0,0,o*.9,o*1.06,0,0,_),t.fill()),bu(t,o,s.hair),s.rim>.01&&(t.strokeStyle=`rgba(245,205,150,${(.5*s.rim).toFixed(3)})`,t.lineWidth=Math.max(1,o*.14),t.beginPath(),t.ellipse(0,-o*.06,o*.86,o*1,0,Math.PI*1.12,Math.PI*1.9),t.stroke()),t.restore(),s.rim>.01&&(t.strokeStyle=`rgba(240,200,150,${(.28*s.rim).toFixed(3)})`,t.lineWidth=Math.max(1,o*.12),t.beginPath(),t.moveTo(-r*.8,a-o*.05),t.quadraticCurveTo(-n,a-o*.75,0,a-o*.82),t.quadraticCurveTo(n,a-o*.75,r*.8,a-o*.05),t.stroke()),t.restore()}function vu(t,e,i,o,s,n,r){t.fillStyle=`rgba(${s[0]},${s[1]},${s[2]},${r})`,t.beginPath(),t.moveTo(e-o*1.72,i+o*4),t.quadraticCurveTo(e-o*1.78,i+o*1.55,e-o*.46,i+o*1.02),t.lineTo(e-o*.4,i+o*.62),t.lineTo(e+o*.4,i+o*.62),t.lineTo(e+o*.46,i+o*1.02),t.quadraticCurveTo(e+o*1.78,i+o*1.55,e+o*1.72,i+o*4),t.closePath(),t.fill(),t.fillStyle=`rgba(${n[0]},${n[1]},${n[2]},${r})`,t.beginPath(),t.ellipse(e,i,o*.9,o*1.05,0,0,_),t.fill()}function $o(t,e,i,o,s){let n=o*.1,r=i-o*.9,l=i-o*.74,a=i-o*.46,c=o*.13,d=o*.09,h=`rgba(${s.tone[0]},${s.tone[1]},${s.tone[2]},${s.alpha})`,p=t.createRadialGradient(e,i,1,e,i,o*.24);p.addColorStop(0,"rgba(0,0,0,0.4)"),p.addColorStop(1,"rgba(0,0,0,0)"),t.save(),t.scale(1,.28),t.fillStyle=p,t.beginPath(),t.ellipse(e,i/.28,o*.24,o*.24,0,0,_),t.fill(),t.restore(),t.fillStyle=h,t.beginPath(),t.moveTo(e-d,a),t.lineTo(e-d*.7,i),t.lineTo(e-d*.1,i),t.lineTo(e-d*.1,a+o*.02),t.lineTo(e+d*.1,a+o*.02),t.lineTo(e+d*.1,i),t.lineTo(e+d*.7,i),t.lineTo(e+d,a),t.closePath(),t.fill(),t.beginPath(),t.moveTo(e-c,l),t.quadraticCurveTo(e-c*.9,a-o*.12,e-d,a),t.lineTo(e+d,a),t.quadraticCurveTo(e+c*.9,a-o*.12,e+c,l),t.quadraticCurveTo(e,l-o*.05,e-c,l),t.closePath(),t.fill(),t.lineCap="round",t.lineJoin="round",t.strokeStyle=h,t.lineWidth=o*.055;let m=l+o*.02;s.pose===1?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e-c*1.5,i-o*1.02),t.moveTo(e+c*.8,m),t.lineTo(e+c*1.5,i-o*1.02),t.stroke()):s.pose===2?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e+d*1.4,a-o*.02),t.moveTo(e+c*.8,m),t.lineTo(e-d*.4,a-o*.06),t.stroke(),t.fillStyle=h,t.beginPath(),t.ellipse(e+d*1.5,a-o*.04,o*.07,o*.09,-.5,0,_),t.fill()):s.pose===3?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e-c*.2,r+n*.6),t.moveTo(e+c*.8,m),t.lineTo(e+c*1.1,a),t.stroke(),t.lineWidth=o*.02,t.beginPath(),t.moveTo(e-c*.2,r+n*.9),t.lineTo(e-c*.2,i-o*.02),t.stroke()):(t.beginPath(),t.moveTo(e-c*.85,m),t.lineTo(e-c*.95,a+o*.02),t.moveTo(e+c*.85,m),t.lineTo(e+c*.95,a+o*.02),t.stroke()),t.fillStyle=h,t.fillRect(e-n*.34,r+n*.6,n*.68,n*.9),t.beginPath(),t.ellipse(e,r,n*.86,n*1.05,0,0,_),t.fill(),s.rimStrength>.01&&(t.strokeStyle=`rgba(${s.rim[0]},${s.rim[1]},${s.rim[2]},${(.6*s.rimStrength).toFixed(3)})`,t.lineWidth=Math.max(1,o*.02),t.beginPath(),t.moveTo(e-c,l),t.lineTo(e-n*.6,r+n*.4),t.moveTo(e-n*.7,r),t.ellipse(e,r,n*.84,n*1.02,0,Math.PI*1.05,Math.PI*1.55),t.stroke())}function Pi(t,e,i,o,s,n,r,l,a){t.save(),t.globalCompositeOperation="lighter";let c=t.createLinearGradient(0,i,0,s);c.addColorStop(0,`rgba(${l},${a})`),c.addColorStop(.5,`rgba(${l},${(a*.4).toFixed(3)})`),c.addColorStop(1,`rgba(${l},0)`),t.fillStyle=c,t.beginPath(),t.moveTo(e-n,i),t.lineTo(o-r,s),t.lineTo(o+r,s),t.lineTo(e+n,i),t.closePath(),t.fill(),t.restore()}function qo(t,e,i,o,s){let n=t.createRadialGradient(e,i,0,e,i,o*3);n.addColorStop(0,`rgba(${s},0.9)`),n.addColorStop(.4,`rgba(${s},0.35)`),n.addColorStop(1,`rgba(${s},0)`),t.fillStyle=n,t.beginPath(),t.arc(e,i,o*3,0,_),t.fill(),t.fillStyle=`rgba(${s},1)`,t.beginPath(),t.arc(e,i,o,0,_),t.fill()}function Mv(t,e,i){let o=document.createElement("canvas");o.width=q,o.height=fe;let s=o.getContext("2d"),n=e.x-t.x,r=e.y-t.y,l=Math.hypot(n,r),a=Math.max(2,l*At),c=t.eyeHeightM??J,d=yu(t,e,i),h=rc(d.seed),p=210+h()*150,m=ie(220+(h()-.5)*60,.55,.82),f=`${m[0]},${m[1]},${m[2]}`,g=s.createLinearGradient(0,0,0,fe);g.addColorStop(0,"#080b12"),g.addColorStop(.42,"#12182c"),g.addColorStop(.5,"#1c2440"),g.addColorStop(.56,"#151b2c"),g.addColorStop(.78,"#171e30"),g.addColorStop(1,"#131829"),s.fillStyle=g,s.fillRect(0,0,q,fe);let u=s.createLinearGradient(0,U(-6),0,fe);u.addColorStop(0,"rgba(30, 37, 56, 0)"),u.addColorStop(.55,"rgba(30, 37, 56, 0.22)"),u.addColorStop(1,"rgba(22, 28, 44, 0.12)"),s.fillStyle=u,s.fillRect(0,U(-6),q,fe-U(-6));let y=Math.atan2(n,-r),S=fu(t,i,y,c),b=S.maxDelta>=pu;b&&mu(s,S.bins,lt,U);let v=Math.max(.3,Math.min(1,1-(a-6)/60)),k=zo(c,a),w=Math.min(80,Math.atan2(4,a)*180/Math.PI),C=Math.min(45,k.topPitch),I=k.basePitch;d.mode==="sport"?Lu(s,a,c,d,v,p,f,h):d.mode==="arena"?ku(s,a,c,d,v,f,h):wu(s,w,C,I,v,p,f,h);let T=d.mode==="sport"?34:24+Math.floor(h()*8);s.fillStyle=`rgba(${f},0.8)`;for(let x=0;x<T;x++){let P=(x+.5)/T*q,A=U(d.mode==="sport"?58:54+x*7%3*6);s.beginPath(),s.arc(P,A,d.mode==="sport"?2.6:3.2,0,_),s.fill()}Cu(s,t,i,e,y,c,n,r,b,d);let L=s.createLinearGradient(0,0,0,fe);return L.addColorStop(0,"rgba(0,0,0,0.85)"),L.addColorStop(.12,"rgba(0,0,0,0)"),L.addColorStop(.9,"rgba(0,0,0,0)"),L.addColorStop(1,"rgba(0,0,0,0.55)"),s.fillStyle=L,s.fillRect(0,0,q,fe),{url:o.toDataURL("image/jpeg",.82),distanceM:Math.round(a)}}function wu(t,e,i,o,s,n,r,l){let a=lt(-e),c=lt(e),d=U(i),h=U(o),p=c-a,m=h-d,f=U(Math.min(50,i+10)),g=p*(1.1+(1-s)*.5),u=t.createRadialGradient(q/2,(d+h)/2,8,q/2,(d+h)/2,g);u.addColorStop(0,"rgba(255, 214, 150, 0.34)"),u.addColorStop(.28,"rgba(150, 150, 230, 0.3)"),u.addColorStop(.6,"rgba(99, 102, 241, 0.12)"),u.addColorStop(1,"rgba(99, 102, 241, 0)"),t.fillStyle=u,t.fillRect(a-p*.6,d-m*1.2,p*2.2,m*3.4);let y=ie(n,.62,.55),S=ie(n+40,.7,.5),b=ie(n+70,.78,.52);t.save(),t.beginPath(),t.rect(a,d,p,m),t.clip();let v=t.createLinearGradient(0,d,0,h);v.addColorStop(0,`rgb(${y[0]},${y[1]},${y[2]})`),v.addColorStop(.5,`rgb(${S[0]},${S[1]},${S[2]})`),v.addColorStop(1,`rgb(${b[0]},${b[1]},${b[2]})`),t.globalAlpha=.8,t.fillStyle=v,t.fillRect(a,d,p,m),t.globalAlpha=1;let k=t.createRadialGradient(q/2,(d+h)/2,p*.12,q/2,(d+h)/2,p*.62);k.addColorStop(0,"rgba(6,8,14,0)"),k.addColorStop(.7,"rgba(6,8,14,0.15)"),k.addColorStop(1,"rgba(5,6,11,0.92)"),t.fillStyle=k,t.fillRect(a,d,p,m),t.restore();let w=3+Math.floor(l()*3),C=m*.46,I=h-m*.08;for(let M=0;M<w;M++){let X=(M+1)/(w+1),G=a+p*(.22+X*.56+(l()-.5)*.06);$o(t,G,I,C*(.9+l()*.24),{tone:[8,10,16],alpha:.9,pose:Math.floor(l()*4),rim:ie(n+20,.5,.7),rimStrength:.7})}t.fillStyle="#05070d",t.fillRect(a-p*.5,f,p*.5,h-f),t.fillRect(c,f,p*.5,h-f);let T=p*.055+3,L=T*1.35;t.fillStyle="#03050a",t.beginPath(),t.moveTo(a,h),t.lineTo(a-T,h),t.lineTo(a-L,f),t.lineTo(a+p*.012,f),t.closePath(),t.fill(),t.beginPath(),t.moveTo(c,h),t.lineTo(c+T,h),t.lineTo(c+L,f),t.lineTo(c-p*.012,f),t.closePath(),t.fill(),t.fillRect(a-L,f,p+L*2,(h-f)*.12);let x=m*.14,P=f+(h-f)*.12;t.fillStyle="rgba(4,6,12,0.96)";let A=7;t.beginPath(),t.moveTo(a-L,P);for(let M=0;M<=A;M++){let X=a-L+(p+L*2)*M/A;t.quadraticCurveTo(X-(p+L*2)/A/2,P+x,X,P)}t.lineTo(c+L,P),t.lineTo(c+L,f),t.lineTo(a-L,f),t.closePath(),t.fill(),t.fillStyle=`rgba(${r},0.12)`,t.fillRect(a-1.5,P,1.5,h-P),t.fillRect(c,P,1.5,h-P),t.fillStyle="#0b0f18",t.fillRect(a-T,h-m*.05,p+T*2,m*.05+3);let R=t.createLinearGradient(0,h-m*.05,0,h+m*.12);R.addColorStop(0,`rgba(255,206,140,${(.5*s).toFixed(3)})`),R.addColorStop(1,"rgba(255,206,140,0)"),t.fillStyle=R,t.fillRect(a-T,h-m*.05,p+T*2,m*.2);let E=3+Math.floor(l()*2);for(let M=0;M<E;M++){let X=(M+1)/(E+1),G=a+p*(X+(l()-.5)*.08),$=U(Math.min(62,i+26)),oe=(l()-.5)*p*.16;Pi(t,G,$,G+oe,h,4,p*.09,r,.16*(.7+s*.5)),qo(t,G,$,2.4,r)}}function ku(t,e,i,o,s,n,r){let l=Math.min(e*.6,Math.max(3,o.voidRadiusM)),a=Math.min(55,Math.atan2(l,e)*180/Math.PI),c=q/2,d=1.2,h=Math.max(e*.45,e-l),p=e+l,m=Math.atan2(d-i,h)*180/Math.PI,f=Math.atan2(d-i,p)*180/Math.PI,g=Math.atan2(-i,h)*180/Math.PI,u=U(m),y=U(f),S=U(g),b=lt(a)-c,v=Math.max(6,(u-y)/2),k=(u+y)/2,w=t.createRadialGradient(c,S,4,c,S,b*2.6);w.addColorStop(0,`rgba(255,206,150,${(.2*s).toFixed(3)})`),w.addColorStop(.5,"rgba(150,140,190,0.08)"),w.addColorStop(1,"rgba(40,44,60,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=w,t.fillRect(c-b*2.6,y-v,b*5.2,S-y+v+40),t.restore(),t.fillStyle="#0c1019",t.beginPath(),t.moveTo(c-b,k),t.ellipse(c,k,b,v,0,Math.PI,0,!1),t.lineTo(c+b,S),t.ellipse(c,S,b,v,0,0,Math.PI,!1),t.closePath(),t.fill();let C=t.createLinearGradient(0,k,0,S);C.addColorStop(0,`rgba(${n},0.14)`),C.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=C,t.fillRect(c-b,k,b*2,S-k);let I=[[{u:-.24,v:.4,lead:!0,pose:3},{u:.34,v:-.04,pose:2},{u:-.52,v:-.38,pose:0}],[{u:.2,v:.34,lead:!0,pose:3},{u:-.3,v:-.08,pose:2}],[{u:-.1,v:.28,lead:!0,pose:1},{u:.44,v:-.2,pose:2},{u:-.46,v:-.14,pose:2},{u:.08,v:-.46,pose:0}]],T=I[Math.floor(r()*I.length)],L=r()<.5?-1:1,x=D=>c+D.u*L*b*.84,P=D=>k+D.v*v*.8,A=T.find(D=>D.lead)??T[0],R=x(A),E=t.createLinearGradient(0,k-v,0,k+v);E.addColorStop(0,"#3d4a72"),E.addColorStop(1,"#232b47"),t.fillStyle=E,t.beginPath(),t.ellipse(c,k,b,v,0,0,_),t.fill();let M=t.createRadialGradient(R,k,2,R,k,b);M.addColorStop(0,`rgba(255,214,160,${(.5*s).toFixed(3)})`),M.addColorStop(1,"rgba(255,214,160,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=M,t.beginPath(),t.ellipse(c,k,b,v,0,0,_),t.fill(),t.restore(),t.strokeStyle=`rgba(${n},0.7)`,t.lineWidth=2,t.beginPath(),t.ellipse(c,k,b,v,0,0,_),t.stroke();let X=Math.max(24,(S-y)*1.3),G=T.length>=3?3:2;for(let D=0;D<G;D++){let me=(-.62+D*.52+(r()-.5)*.12)*-L,Fe=c+me*b*.7,ct=k-v*(.45+r()*.18),Xe=b*(.07+r()*.04),Fi=X*(.26+r()*.12);t.fillStyle="#0a0e18",t.fillRect(Fe-Xe/2,ct-Fi,Xe,Fi),t.fillStyle=`rgba(${n},0.3)`,t.fillRect(Fe-Xe/2,ct-Fi,Xe,1.5)}if(T.length>=3){let D=c-A.u*L*b*.4;t.fillStyle="#0b0f1a",t.beginPath(),t.ellipse(D,k-v*.34,b*.08,v*.1,0,0,_),t.fill(),t.strokeStyle=`rgba(${n},0.35)`,t.lineWidth=1,t.stroke()}for(let D of[...T].sort((me,Fe)=>me.v-Fe.v)){let me=.82+(D.v+1)*.14;$o(t,x(D),P(D),X*me*(D.lead?1.06:.92),{tone:[18,21,34],alpha:.95,pose:D.pose,rim:ie(40,.72,.8),rimStrength:D.lead?1.4:.9})}let $=U(Math.min(60,f+34)),oe=v*1.1+6;t.strokeStyle="rgba(60,68,92,0.85)",t.lineWidth=3,t.beginPath(),t.ellipse(c,$,b*1.15,oe,0,0,_),t.stroke();let B=4+Math.floor(r()*3);for(let D=0;D<B;D++){let me=D/B*_,Fe=c+Math.cos(me)*b*1.15,ct=$+Math.sin(me)*oe;if(Math.sin(me)>-.2){let Xe=c+(r()-.5)*b*.8;Pi(t,Fe,ct,Xe,k,3,b*.32,n,.2*(.7+s*.4))}qo(t,Fe,ct,3,n)}let H=U(Math.min(52,f+24)),W=Math.max(60,b*.4),Z=Math.max(24,W*.34);t.strokeStyle="rgba(70,78,102,0.6)",t.lineWidth=1.5,t.beginPath(),t.moveTo(c-W*.3,H-Z/2),t.lineTo(c-W*.16,H-Z*2.2),t.moveTo(c+W*.3,H-Z/2),t.lineTo(c+W*.16,H-Z*2.2),t.stroke(),t.fillStyle="#0d1220",t.fillRect(c-W/2,H-Z/2,W,Z);let Ri=t.createLinearGradient(0,H-Z*.3,0,H+Z*.42);Ri.addColorStop(0,`rgba(${n},0.5)`),Ri.addColorStop(1,"rgba(255,214,160,0.32)"),t.fillStyle=Ri,t.fillRect(c-W*.42,H-Z*.3,W*.84,Z*.72),t.fillStyle="rgba(255,214,160,0.55)",t.fillRect(c-W/2,H+Z/2-2,W,2);let Ai=t.createRadialGradient(c,H,4,c,H,W*1.1);Ai.addColorStop(0,`rgba(${n},0.2)`),Ai.addColorStop(1,"rgba(0,0,0,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=Ai,t.fillRect(c-W*1.1,H-W*.8,W*2.2,W*1.6);let Ei=t.createRadialGradient(c,($+k)/2,6,c,($+k)/2,b*1.5);Ei.addColorStop(0,`rgba(${n},${(.1*(.6+s*.5)).toFixed(3)})`),Ei.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=Ei,t.fillRect(c-b*1.5,$-40,b*3,k-$+80),t.restore();let lc=c+Math.sign(R-c||1)*b*.5;Pi(t,lc,$-oe*.4,R,P(A),2.5,b*.16,"255,224,178",.42*(.7+s*.4));let _i=t.createRadialGradient(R,P(A),1,R,P(A),b*.2);_i.addColorStop(0,`rgba(255,228,185,${(.4*s).toFixed(3)})`),_i.addColorStop(1,"rgba(255,228,185,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=_i,t.beginPath(),t.ellipse(R,P(A),b*.2,v*.24,0,0,_),t.fill(),t.restore()}function Lu(t,e,i,o,s,n,r,l){let a=q/2,c=Math.max(10,o.voidRadiusM),d=Math.max(2,e-c),h=e+c,p=Math.min(78,Math.atan2(c*1.15,e)*180/Math.PI),m=Math.atan2(-i,d)*180/Math.PI,f=Math.atan2(-i,h)*180/Math.PI,g=U(m),u=U(f),y=lt(p)-a,S=(g+u)/2,b=Math.max(10,(g-u)/2),v=t.createRadialGradient(a,S,4,a,S,y);v.addColorStop(0,"#e8f0fb"),v.addColorStop(.7,"#b9c9e2"),v.addColorStop(1,"#8fa3c4"),t.save(),t.beginPath(),t.ellipse(a,S,y,b,0,0,_),t.clip(),t.fillStyle=v,t.fillRect(a-y,S-b,y*2,b*2),t.strokeStyle="rgba(90,120,170,0.5)",t.lineWidth=3,t.beginPath(),t.moveTo(a,S-b),t.lineTo(a,S+b),t.moveTo(a-y*.5,S-b),t.lineTo(a-y*.5,S+b),t.moveTo(a+y*.5,S-b),t.lineTo(a+y*.5,S+b),t.stroke(),t.strokeStyle="rgba(180,90,110,0.45)",t.beginPath(),t.ellipse(a,S,b*.9,b*.5,0,0,_),t.stroke(),t.restore(),t.strokeStyle="rgba(210,225,245,0.6)",t.lineWidth=2.5,t.beginPath(),t.ellipse(a,S,y,b,0,0,_),t.stroke(),t.fillStyle="rgba(20,26,40,0.8)";for(let x=0;x<5;x++){let P=a+(l()-.5)*y*1.4,A=S+(l()-.5)*b*1.1,R=Math.max(2,b*.06);t.beginPath(),t.ellipse(P,A,R*.6,R,0,0,_),t.fill()}let k=t.createRadialGradient(a,S,4,a,S,y*1.4);k.addColorStop(0,"rgba(200,220,255,0.12)"),k.addColorStop(1,"rgba(200,220,255,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=k,t.fillRect(a-y*1.4,u-b,y*2.8,g-u+b*2),t.restore();let w=U(Math.min(66,f+60)),C=Math.max(80,y*.7),I=C*.5,T=t.createRadialGradient(a,w,4,a,w,C*1.6);T.addColorStop(0,`rgba(${r},0.3)`),T.addColorStop(1,`rgba(${r},0)`),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=T,t.fillRect(a-C*1.6,w-C*1.2,C*3.2,C*2.4),t.restore(),t.fillStyle="#080b12",t.beginPath(),t.moveTo(a-C/2,w-I/2),t.lineTo(a+C/2,w-I/2),t.lineTo(a+C*.6,w),t.lineTo(a+C/2,w+I/2),t.lineTo(a-C/2,w+I/2),t.lineTo(a-C*.6,w),t.closePath(),t.fill();let L=n;for(let x=0;x<3;x++){let P=ie(L+x*30,.5,.5);t.fillStyle=`rgba(${P[0]},${P[1]},${P[2]},0.75)`;let A=C*.26;t.fillRect(a-C*.42+x*(A+C*.06),w-I*.32,A,I*.64)}t.fillStyle=`rgba(${r},0.9)`;for(let x=0;x<8;x++){let P=a-C*.6+C*1.2*x/7;t.beginPath(),t.arc(P,w+I*.62,2.4,0,_),t.fill()}}function Cu(t,e,i,o,s,n,r,l,a,c){let d=e.sectionId,h=!1,p=[];for(let g of i){if(g.id===e.id)continue;let u=g.x-e.x,y=g.y-e.y,S=Math.hypot(u,y)*At;if(d&&g.sectionId===d&&S<3&&u*r+y*l>0&&(h=!0),S<.3||S>32)continue;let v=((Math.atan2(u,-y)-s)*180/Math.PI+540)%360-180,k=a?(g.eyeHeightM??J)-n:0,w=Math.atan2(k-.28,S)*180/Math.PI;if(w>10&&S>5)continue;let C=0;for(let L=0;L<g.id.length;L++)C=C*31+g.id.charCodeAt(L)&65535;let I=.9+(C&15)/40,T=Math.min(78,Math.atan2(.16,S)*180/Math.PI*uu*I);T<1.2||p.push({hx:lt(v),hy:U(w),r:T,d:S,hash:C})}p.sort((g,u)=>u.d-g.d);let m=[];{let g=[...p].sort((S,b)=>S.hy-b.hy),u=[],y=()=>{if(!u.length)return;let S=u.reduce((k,w)=>k+w.d,0)/u.length,b=u.reduce((k,w)=>k+w.hy,0)/u.length,v=u.reduce((k,w)=>k+w.r,0)/u.length;m.push({figs:u.sort((k,w)=>w.d-k.d),d:S,hy:b,r:v}),u=[]};for(let S of g){let b=u[u.length-1];b&&Math.abs(S.hy-b.hy)>Math.max(5,(b.r+S.r)/2*1.7)&&y(),u.push(S)}y()}m.sort((g,u)=>u.d-g.d);let f=[[22,26,40],[28,27,42],[24,31,46],[31,30,47],[20,24,36]];for(let g of m){if(g.figs.length>=3&&g.r>=1.6&&g.r<26){let u=[],y=[...g.figs].sort((v,k)=>v.hx-k.hx),S=[];for(let v of y){let k=S[S.length-1];k&&v.hx-k.hx>Math.max(14,v.r*7)&&(S.length>=3&&u.push(S),S=[]),S.push(v)}S.length>=3&&u.push(S);let b=Math.min(.42,.5*(1-g.d/42));if(b>.05){t.fillStyle=`rgba(15, 19, 31, ${b.toFixed(3)})`;for(let v of u){let k=v[0].hx-g.r*1.6,w=v[v.length-1].hx+g.r*1.6;t.beginPath(),t.roundRect(k,g.hy+g.r*.8,w-k,g.r*2.4,g.r*.8),t.fill()}}}for(let u of g.figs){let y=u.d<12?.95:u.d<17?Math.max(.66,.95-(u.d-12)/18):Math.max(.3,.68-(u.d-17)/34),S=Math.round((1-Math.min(1,u.d/16))*10),b=[14+(u.hash>>4&6)+S,17+(u.hash>>4&6)+S,25+(u.hash>>4&6)+S],v=f[u.hash%f.length],k=[v[0]+S,v[1]+S,v[2]+S];if(u.r>=13){let w=u.d<9?.16*(1-u.d/9)+(c.mode==="proscenium"?.06:0):0;Su(t,u.hx,u.hy,u.r,{tone:b,clothing:k,alpha:y,tilt:((u.hash>>2&7)-3.5)*.018,shoulderK:1.72+(u.hash>>5&7)/22,hair:u.hash%gu,rim:w,turn:((u.hash>>8&7)-3.5)*.034,lean:((u.hash>>10&3)-1.5)*.09})}else u.r>=5.5?vu(t,u.hx,u.hy,u.r,k,b,y):(t.fillStyle=`rgba(${b[0]},${b[1]},${b[2]},${y.toFixed(3)})`,t.beginPath(),t.arc(u.hx,u.hy,u.r,0,_),t.fill(),t.beginPath(),t.ellipse(u.hx,u.hy+u.r*1.4,u.r*1.85,u.r*.95,0,Math.PI,0,!0),t.fill())}}if(h){let g=U(-34);t.fillStyle="rgba(6, 8, 14, 0.92)",t.fillRect(0,g,q,fe-g),t.fillStyle="rgba(24, 30, 46, 0.9)";let u=16;for(let y=0;y<u;y++){let S=(y+.5)/u*q;t.beginPath(),t.ellipse(S,g+6,q/u*.42,22,0,Math.PI,0,!0),t.fill()}}}var ne=480,at=270,Uo=50,Ke=30,sc=t=>(t+Uo)/(2*Uo)*ne,Rt=t=>(Ke-t)/(2*Ke)*at;function Rv(t,e,i){let o=document.createElement("canvas");o.width=ne,o.height=at;let s=o.getContext("2d"),n=e.x-t.x,r=e.y-t.y,l=Math.max(2,Math.hypot(n,r)*At),a=rc(nc(`${t.id}|${Math.round(e.x)},${Math.round(e.y)}`)),c=210+a()*150,d=ie(220+(a()-.5)*60,.55,.82),h=`${d[0]},${d[1]},${d[2]}`,p=s.createLinearGradient(0,0,0,at);p.addColorStop(0,"#080b12"),p.addColorStop(.44,"#151c32"),p.addColorStop(.5,"#1d2644"),p.addColorStop(.58,"#161c2e"),p.addColorStop(1,"#131829"),s.fillStyle=p,s.fillRect(0,0,ne,at);let m=t.eyeHeightM??J,f=zo(m,l),g=Math.min(Uo-2,Math.atan2(4,l)*180/Math.PI),u=Math.min(Ke-2,f.topPitch),y=Math.max(-Ke+2,f.basePitch),S=sc(-g),b=sc(g),v=Rt(u),k=Rt(y),w=b-S,C=k-v,I=Math.max(.35,Math.min(1,1-(l-6)/60)),T=Rt(Math.min(Ke-1,u+8)),L=s.createRadialGradient(ne/2,(v+k)/2,4,ne/2,(v+k)/2,w*1.15);L.addColorStop(0,"rgba(255,214,150,0.34)"),L.addColorStop(.28,"rgba(150,150,230,0.3)"),L.addColorStop(.6,"rgba(99,102,241,0.12)"),L.addColorStop(1,"rgba(99,102,241,0)"),s.fillStyle=L,s.fillRect(S-w*.6,v-C*1.2,w*2.2,C*3.4);let x=ie(c,.62,.55),P=ie(c+40,.7,.5),A=ie(c+70,.78,.52);s.save(),s.beginPath(),s.rect(S,v,w,C),s.clip();let R=s.createLinearGradient(0,v,0,k);R.addColorStop(0,`rgb(${x[0]},${x[1]},${x[2]})`),R.addColorStop(.5,`rgb(${P[0]},${P[1]},${P[2]})`),R.addColorStop(1,`rgb(${A[0]},${A[1]},${A[2]})`),s.globalAlpha=.8,s.fillStyle=R,s.fillRect(S,v,w,C),s.globalAlpha=1;let E=s.createRadialGradient(ne/2,(v+k)/2,w*.12,ne/2,(v+k)/2,w*.6);E.addColorStop(0,"rgba(6,8,14,0)"),E.addColorStop(.7,"rgba(6,8,14,0.15)"),E.addColorStop(1,"rgba(5,6,11,0.9)"),s.fillStyle=E,s.fillRect(S,v,w,C),s.restore();let M=3,X=k-C*.08;for(let B=0;B<M;B++){let H=(B+1)/(M+1);$o(s,S+w*(.24+H*.52),X,C*.46*(.9+a()*.24),{tone:[8,10,16],alpha:.9,pose:Math.floor(a()*4),rim:ie(c+20,.5,.7),rimStrength:.7})}s.fillStyle="#05070d",s.fillRect(S-w*.5,T,w*.5,k-T),s.fillRect(b,T,w*.5,k-T);let G=w*.05+2,$=G*1.35;s.fillStyle="#03050a",s.beginPath(),s.moveTo(S,k),s.lineTo(S-G,k),s.lineTo(S-$,T),s.lineTo(S+w*.012,T),s.closePath(),s.fill(),s.beginPath(),s.moveTo(b,k),s.lineTo(b+G,k),s.lineTo(b+$,T),s.lineTo(b-w*.012,T),s.closePath(),s.fill(),s.fillRect(S-$,T,w+$*2,(k-T)*.13),s.fillStyle=`rgba(${h},0.12)`,s.fillRect(S-1.2,T,1.2,k-T),s.fillRect(b,T,1.2,k-T),s.fillStyle="#0b0f18",s.fillRect(S-G,k-C*.05,w+G*2,C*.05+2);let oe=s.createLinearGradient(0,k-C*.05,0,k+C*.14);oe.addColorStop(0,`rgba(255,206,140,${(.5*I).toFixed(3)})`),oe.addColorStop(1,"rgba(255,206,140,0)"),s.fillStyle=oe,s.fillRect(S-G,k-C*.05,w+G*2,C*.22);for(let B=0;B<3;B++){let H=(B+1)/4,W=S+w*H,Z=Rt(Math.min(Ke-1,u+20));Pi(s,W,Z,W+(a()-.5)*w*.14,k,3,w*.09,h,.17*I),qo(s,W,Z,1.8,h)}s.fillStyle=`rgba(${h},0.75)`;for(let B=0;B<8;B++)s.beginPath(),s.arc((B+.5)/8*ne,Rt(Ke-4-B%2*3),2.2,0,_),s.fill();s.fillStyle="rgba(10,13,20,0.9)",s.fillRect(0,at-26,ne,26),s.fillStyle="rgba(30,37,54,0.9)";for(let B=0;B<9;B++){let H=B*(ne/9)+ne/18;s.beginPath(),s.ellipse(H,at-22,ne/9*.4,15,0,Math.PI,0,!0),s.fill()}return{url:o.toDataURL("image/jpeg",.8),distanceM:Math.round(l)}}var ac=new Set(["en"]),Mi=new Map;async function xu(t){if(typeof __SEATLAYER_CDN__<"u"&&__SEATLAYER_CDN__)return(await import(Ds(`i18n/${t}.mjs`))).default??null;let{LOADERS:e}=await import("./localeLoaders-YAOADFDS.js"),i=e[t];return i?await i():null}async function Fv(t,e){let i=Hn(t,e);if(i==="en"||ac.has(i))return je(i),i;if(!Gn.includes(i))return je("en"),"en";try{let o=Mi.get(i);o||(o=xu(i),Mi.set(i,o));let s=await o;return Mi.delete(i),s?(je(i,s),ac.add(i),i):(je("en"),"en")}catch{return Mi.delete(i),je("en"),"en"}}export{Mu as ACCESSIBILITY_RING_COLOR,Zo as ACCESSIBILITY_TYPES,up as AUTOMATIC_ROUND_TABLE_RADIUS_MAX,hp as AUTOMATIC_ROUND_TABLE_RADIUS_MIN,Iu as CHART_STORAGE_KEY,Bp as CURRENCY_CHOICES,Fp as DEFAULT_CURRENCY,BS as EMPTY_AVAILABILITY_REFRESH,Du as EVENT_CONFIGURATION_EXPORT_SCHEMA,Ou as EVENT_CONFIGURATION_SCHEMA,ap as FLOOR_STACK_GAP_RATIO,dp as FLOOR_STACK_MIN_SURFACE_PX,FS as HOLD_CLOCK_SKEW_MS,Wi as LABEL_FADE_MS,_u as LABEL_STYLE_MAX_SIZE,Eu as LABEL_STYLE_MIN_SIZE,xp as LEGIBILITY_HYSTERESIS_PX,zp as LOCALE_NAMES,mp as MAX_EVENT_INVENTORY,fp as MAX_GA_CAPACITY,ms as MIN_POINTER_TARGET_PX,ec as PickerController,_e as PickerSelectionError,Lp as RENDERED_QUALITY_REPORT_VERSION,Ru as SEAT_COMMERCIAL_MARKS,Tu as STAGE_LABEL_STYLE_MAX_SIZE,Dc as SUPPORTED_LOCALES,Fu as SURROUNDINGS_SHAPE_ROLES,Go as SeatmapRenderer,Yu as TABLE_SEAT_OFFSET,Xu as TIER_HEIGHT_M,Gn as TRANSLATED_LOCALES,ls as UNGROUPED_ID,Gl as accessNeedsFor,Pu as accessibilityMeta,Et as accessibilityRingColor,os as allObjects,cs as applyHidden,Vl as attachVisibilityCatchUp,pp as automaticRoundTableRadius,Vu as canTransitionEventConfiguration,Hu as canonicalEventConfigurationJson,ns as chartBounds,Ni as compactRowLabel,Dt as computeSections,Tl as createRenderer,Ns as crossesThreshold,Bc as currencyExponent,Dp as currencySymbol,tp as expandBooth,Ue as expandChart,Zu as expandRow,qu as expandRowSlots,ep as expandTable,Qu as expandTableSlots,np as floorObjects,lp as floorStackPlacements,Bt as floorsOf,$p as formatDate,Op as formatMinor,bt as formatMoney,Oc as fromMinorUnits,dt as gaAreasOf,bp as gaInventorySegments,yp as gaUnitLabel,Ot as gaUnitLabels,Mv as generateSeatPanorama,Rv as generateSeatThumb,Kp as getLocale,Sp as growJoinedGAInventory,kp as hiddenObjectIds,ou as holdHasLapsed,DS as holdRecoveryShape,zi as hysteresisScale,as as initialFloorMode,Wu as inspectEventConfigurationCompatibility,Cp as inspectRenderedQualityEvidence,vp as isGaUnitLabel,Yp as isLocaleLoaded,wp as isSectionHidden,Bu as layerOf,rs as layoutFloorStack,Fv as loadLocale,Xp as localeDirection,cp as mainFloorId,Ku as migrateLegacyEventConfigurations,op as objectCenter,sp as owningSectionForObject,Gu as parseEventConfigurationExport,Nu as parseEventConfigurationVersion,ip as pointInPolygon,ee as pointInPolygonWithHoles,Ft as polygonLabelPoint,Hl as reconcileAvailability,OS as refreshChangedSomething,Vi as renderedPx,zu as resolveEventConfigurationRollback,Hn as resolveLocale,$u as rowInventoryCount,Uu as rowSeatPositions,Au as seatCommercialMeta,_t as sectionGeometry,je as setLocale,Nn as setMoneyLocale,Up as setStringOverrides,Wl as shouldWaitForHoldExpiry,ss as stackFloors,N as t,Vn as tCount,Ju as tableInventoryCount,ju as tableSeatCountsBySide,rp as translateObject,gp as validGAInventorySegments,Tp as zoomTowardPoint};
1
+ import{a as qi,c as Zi,e as Yn,f as ei,h as Un,i as $n,l as qn}from"./chunk-7LMW7QTP.js";import{a as Qp,b as Jp,c as bn,d as ef,e as tf,f as Sn,h as Bn,k as Qt,m as On,n as ve,o as le,p as Dn,q as Hn,r as Jt,s as Nn}from"./chunk-NQZAZFAC.js";import{a as mf,b as In,c as gf}from"./chunk-SKMHD76O.js";import{b as Zn}from"./chunk-FOYQOIWG.js";import{a as ft}from"./chunk-QJXSZT3H.js";import{a as of,b as nf,c as rf}from"./chunk-BT2KJXQC.js";import{a as Se,b as xn,c as De,d as Xt,e as Yt,f as He,g as K,m as pe,n as Re,q as Ut,r as $t,t as Tn,u as je,v as Pn,w as $i,x as q,y as fe,z as qt}from"./chunk-C7MR6CFC.js";import{A as zn,B as Xn,b as Fn,c as _n,e as gt,i as Wn,j as Vn,p as Kn}from"./chunk-QLDV5ZGA.js";import{a as sf,b as af,c as lf,d as cf,e as df,f as Vt,g as hf,h as pt,i as uf,j as vn,k as Kt,l as pf,m as ff,n as wn}from"./chunk-Q3U3F4YJ.js";import{a as yp,b as bp,c as ln,d as Sp,e as vp,f as Ht,g as wp,h as kp,i as Lp,j as Cp,k as xp,l as Tp,n as Mn,q as mt,u as Gn}from"./chunk-WXGW2SYC.js";import{b as Zt,f as Rn,h as jt,i as An,k as En}from"./chunk-UL5OIGIF.js";import{Aa as fn,Ca as Dp,Da as Hp,E as cn,Ea as Np,Fa as Gp,G as dn,Ga as Wp,Ha as Vp,I as N,Ia as Kp,Ja as zp,Ka as Xp,La as Yp,Ma as Up,Na as te,Oa as Gt,Pa as $p,Qa as qp,Ra as Wt,Sa as Zp,Ta as mn,Ua as jp,Va as gn,Wa as Ze,Xa as yn,d as Pp,e as Ip,f as Mp,g as Rp,ga as hn,h as Ap,ha as qe,i as Ep,ia as Op,j as Fp,k as _p,l as Bp,qa as ee,ra as un,sa as Nt,ya as pn}from"./chunk-24O23MNB.js";import{C as B,c as Yi,h as Ui,m as kn,o as Ln,t as D,u as Me,v as be,w as Q,x as zt,z as Cn}from"./chunk-JBOTRSMY.js";import"./chunk-CRCGO52K.js";var yf=1,ji=90;function Qi(t,e){return!Number.isFinite(t)||!Number.isFinite(e)?0:Math.max(0,t*e)}function jn(t,e,i,o=1){if(!Number.isFinite(t))return i;let n=Math.max(0,o);return i?t>=e-n:t>=e+n}function Ji(t,e,i,o=1){if(!Number.isFinite(t)||!(i>0))return t;let n=Math.max(0,o)/i;return e?t*(1+n):t*(1-n)}function bf(t){let{point:e,camera:i,scale:o,nextScale:n}=t;if(!Number.isFinite(o)||o<=0||!Number.isFinite(n))return{...i};let r=(e.x-i.x)/o,s=(e.y-i.y)/o;return{x:e.x-r*n,y:e.y-s*n}}import{Konva as _i}from"konva/lib/Core";import{Stage as Vu}from"konva/lib/Stage";import{Layer as qo}from"konva/lib/Layer";import{Group as _t}from"konva/lib/Group";import{Circle as ql}from"konva/lib/shapes/Circle";import{Group as co}from"konva/lib/Group";import{Circle as Ke}from"konva/lib/shapes/Circle";import{Line as ho}from"konva/lib/shapes/Line";import{Rect as uo}from"konva/lib/shapes/Rect";import{Text as rs}from"konva/lib/shapes/Text";var ce=9,Ae=.9,de=.55*Ae,ie=K/Se,yt=4,we=14,Qn=10,Jn=14,ke=.45*Ae,Le=.9*Ae,se=(ke+Le)/2,er=Math.max(Ae*1.1,Le),Ee=8,tr=700,J=2,ir=K,ti=.85,or=K,bt=64,Ne=.55*ke,ii=700,nr=2500,oi=-11.5,St=.58,rr=320,sr=420,ar=420,lr=1,Ge=1,cr=2,Qe=16,me=12,eo=[.85,.72,.62],Xc=10,Yc=9;function ni(t){return t<he?Yc:Xc}var ri=13,si=12,dr=0,hr="700",ur="600",pr=8,fr=5,mr=10,gr=6,yr=8,br=.6,Sr=.6,vr=.7,wr=[0,18,-18,36,-36,54,-54],Fe="600",kr="500",he=640,ai="700",We=.02,Lr=14,Cr=.34,li=.92,vt=7,ci=3,xr=6;function to(t){return Math.min(1,Math.max(me/Qe,t/900))}function _e(t,e){return Math.max(me,t*to(e))}var Tr=.1,wt=1.02;var Pr=2;function Ir(t,e){return!(t>0)||!(e>0)||t>=e?null:e}var Uc="#e5e7eb",$c="#c7cbd1",qc="#595f69",Zc="#d1d5db",jc="#b8bdc4",Qc="#273142",Jc="#526078",ed="#f1f5f9",td="#374151",id="#64748b",od="#111827",di="#6b7280",hi="#374151";var Mr="#4b5563",Rr=.4,Ce=.16,Ar="rgba(244,246,248,0.06)",ui=["#E69F00","#56B4E9","#009E73","#F0E442","#0072B2","#D55E00","#CC79A7"];function Er(t,e,i){let o=new Map;for(let s of t){let l=e(s);!l||i(l)||o.set(l,(o.get(l)??0)+1)}let n=null,r=0;for(let[s,l]of o)(l>r||l===r&&n!=null&&s<n)&&(n=s,r=l);return n}function oe(t){return D(t)?{sectionFill:Uc,sectionStroke:$c,sectionInk:qc,focalFill:Zc,focalStroke:jc}:{sectionFill:Qc,sectionStroke:Jc,sectionInk:ed,focalFill:td,focalStroke:id}}function io(t,e){let i=t.sectionFill,o=Cn(be(i,.2),.85);switch(e){case"closed":return be(i,.12);case"sold-out":return o;case"nearly-gone":return Q(i,o,.4);default:return i}}var Fr=.28,_r=.32,nd=.55,rd=.7;function Br(t,e,i){let o=oe(t),n=io(o,e);if(!i||e==="sold-out"||e==="closed")return{fill:n,stroke:o.sectionStroke};let r=D(t);return{fill:Q(n,i,r?_r:Fr),stroke:B(i,r?rd:nd)}}var sd=.03;function Or(t,e){let i=oe(t);return!["normal","nearly-gone","sold-out","closed"].map(n=>io(i,n).toLowerCase()).includes(e.trim().toLowerCase())&&oo(t,e)}function oo(t,e){let i=Yi(e);if(!i)return!1;let o=oe(t),n=Math.max(Fr,_r)+sd;return["normal","nearly-gone","sold-out","closed"].some(r=>{let s=Yi(io(o,r));return s?Math.max(Math.abs(s[0]-i[0]),Math.abs(s[1]-i[1]),Math.abs(s[2]-i[2]))/255<=n:!1})}var ad="#f8fafc",ld="#f4f6fb",cd="#111827",dd=.72;function Dr(t){let e=D(t),i=e?ad:od,o=e?cd:ld,n=Q(o,i,1-dd);return{plate:i,ink:o,subInk:kn(n,i)>=Ln?n:o}}function pi(t){return t?.35:.3}function Gr(t){if(t<=0||t>=1)return 1;let e=1.25-1;if(t<.45){let o=t/.45;return 1+e*(1-(1-o)**2)}let i=(t-.45)/(1-.45);return 1+e*Math.cos(i*Math.PI*1.5)*(1-i)**2}function no(t){let e=t<=0?0:t>=1?1:t,i=1-(1-e)**3;return{radiusScale:1+(2.5-1)*i,opacity:.55*(1-e)}}var Wr=700,hd=2400,ro=12,Vr=30,Hr=1,ud=1.16,Nr=.5,pd=1;function so(t){return t*.61803398875%1}function Kr(t,e){let o=((t/hd+e)%1+1)%1,n=(1-Math.cos(o*2*Math.PI))/2;return{scale:Hr+(ud-Hr)*n,opacity:Nr+(pd-Nr)*n}}var Xr;function Yr(t){Xr=t}function fd(t){return typeof t=="number"?t:t instanceof Date?t.getTime():Date.parse(t)}var zr=new Map;function md(t,e){let i=t??Xr,o=`${i??""}|${JSON.stringify(e)}`,n=zr.get(o);return n||(n=new Intl.DateTimeFormat(i,e),zr.set(o,n)),n}var gd={dateStyle:"medium",timeStyle:"short"};function Ur(t,e={}){let{locale:i,...o}=e,n=fd(t);if(!Number.isFinite(n))return"";let r=Object.keys(o).length?o:gd;return md(i,r).format(n)}var Tf="USD",Pf=["USD","EUR","GBP","CAD","AUD","INR","AED","SGD","JPY","CHF","SEK","NZD","ZAR","MXN","BRL"],qr;function Zr(t){qr=t}var $r=new Map;function fi(t,e,i,o){let n=o??qr,r=`${n??""}|${t}|${e??"auto"}|${i??"auto"}`,s=$r.get(r);return s||(s=new Intl.NumberFormat(n,{style:"currency",currency:t,minimumFractionDigits:e,maximumFractionDigits:i}),$r.set(r,s)),s}function kt(t,e="USD",i,o){if(typeof i=="object"){let r=i;try{return fi(e,r.minimumFractionDigits,r.maximumFractionDigits,r.locale).format(t)}catch(s){if(r.fallback)return r.fallback(t,e);throw s}}let n=i??(Number.isInteger(t)?0:void 0);return fi(e,n,n,o).format(t)}function yd(t="USD"){try{return fi(t,void 0,void 0).resolvedOptions().maximumFractionDigits??2}catch{return 2}}function bd(t,e="USD"){return t/10**yd(e)}function If(t,e="USD",i){return kt(bd(t,e),e,void 0,i)}function Mf(t="USD"){return fi(t,0,0).formatToParts(0).find(i=>i.type==="currency")?.value??t}var Lt={"common.cancel":"Cancel","common.close":"Close","common.done":"Done","common.copied":"\u2713 Copied","picker.holdExpired":"Your hold expired \u2014 the seats were released. Pick again.","picker.holdExpiredTitle":"Your seats were released","picker.holdExpiredBody":"Your hold time ran out and the seats went back on sale.","picker.holdExpiredRestart":"Choose seats again","picker.holdExpiredPickAgain":"Pick your seats again to continue \u2014 they may already be taken.","picker.releasedPair":"{first} \xB7 {second}","picker.releasedSeatPlace":"Section {section}, Row {row}, Seat {seat}","picker.releasedSeatRange":"Section {section}, Row {row}, Seats {from}\u2013{to}","picker.releasedInSection":"{seats} in Section {section}","picker.releasedInSections":"{seats} in Sections {sections}","picker.releasedGa":"{quantity} \xD7 {area}","picker.poweredBy":"Powered by SeatLayer","picker.testMode":"TEST MODE","picker.testModeExplained":"Bookings here are not real and no card is charged","picker.seatsTogether":"Seats together","picker.findClosestSeatsTogether":"Find the closest seats together","picker.addSeat":"Add seat","picker.removeSeat":"Remove seat","picker.added":"Added","picker.findSeats":"Find seats","picker.displayOptions":"Display options","picker.closeVenueNavigation":"Close venue navigation","picker.orphanHint":"This leaves a single seat stranded \u2014 consider shifting one seat over.","picker.companionRequiresWheelchair":"Requires the adjacent wheelchair place","picker.companionPairRequired":"Select the adjacent wheelchair place with each companion ticket.","map.aria":"Seating map. Use arrow keys to move between seats, Enter to select.","map.beaconAria":"Go to your {seats} in {name}","map.seatsLeft":"{count} LEFT","map.soldOut":"SOLD OUT","map.fromPrice":"FROM {price}","map.statusHeld":"On hold","map.statusTaken":"Taken","picker.floor":"Floor","picker.zoomLevel":"Zoom level","picker.rungTip.zones":"Venue overview \u2014 groups of sections such as North Stand or VIP","picker.rungTip.sections":"Section blocks \u2014 sold-out and nearly-gone sections shade to show availability at a glance","picker.rungTip.seats":"Individual seats \u2014 blocks melt into dots","picker.rungLabel.zones":"ZONES","picker.rungLabel.sections":"SECTIONS","picker.rungLabel.seats":"SEATS","picker.sectionSummaryAria":"{label} section summary","picker.closeSectionSummary":"Close section summary","picker.seatsLeftInSection.one":"{count} seat left","picker.seatsLeftInSection.other":"{count} seats left","picker.seatsLeftShort":"{count} left","picker.overview":"Venue","picker.entrance":"Entrance","picker.turnOffAccessibilityFilter":"Turn off the wheelchair filter to pick this seat","picker.tapSeatHint":"Tap any seat to check its view","picker.ticketTierFor":"Ticket tier for {label}","picker.viewFromSeat":"View from seat {label}","picker.real360":"REAL 360\xB0","picker.preview":"PREVIEW","picker.sightline":"\u2248 {m} m to stage","picker.panorama360":"360\xB0 venue photo","picker.illustrationCaption":"illustration \xB7 \u2248 {m} m from stage","picker.restrictedView":"Restricted view","picker.obstructedView":"Obstructed view","picker.premiumSeat":"Premium seat","picker.hideLimitedView":"Hide limited-view seats","picker.bestSeatsPremium":"Best seats","picker.premiumFallbackNote":"No premium block of {count} \u2014 showing best overall","picker.loading3d":"Building the 3D venue\u2026","picker.unavailable3d":"3D could not start. The seat map is still available.","picker.jumpToSection":"Jump to section","picker.salesClosedPill":"Sales are closed","picker.salesClosedCopy":"Ticket sales for this event have ended.","picker.salesClosedCta":"Sales closed","picker.salesClosedToast":"Sales are closed for this event.","picker.holdReassurance":"Yours for {time} \u2014 you won\u2019t be charged yet.","picker.securingSeats":"Securing your seats\u2026","picker.openingCheckout":"Opening secure checkout\u2026","picker.peekSecured":"\u2713 {count} secured \xB7 {total} \u2014 you won\u2019t be charged yet","picker.priceHint":"Colours on the map are ticket types \u2014 tap one below to show just those seats.","picker.findTogetherInstead":"Find seats together instead","picker.keepMyPicks":"Keep my picks","picker.accessExpiredBody":"To show you up-to-date seats, please refresh.","picker.accessExpiredTitle":"Session expired","picker.accessInvalidBody":"You can still book anything shown as available. Contact whoever sent you here for access to the rest.","picker.accessInvalidTitle":"We couldn\u2019t verify your access","picker.accessPausedBody":"The organizer has paused this selection. Try again in a few minutes.","picker.accessPausedTitle":"These seats are on hold right now","picker.accessRefresh":"Refresh","picker.accessRetry":"Try again","picker.accessRevokedBody":"Ask whoever sent you here for a new link to keep booking these seats.","picker.accessRevokedTitle":"This access link is no longer active","picker.accessiblePhysicalSeat":"Accessible physical seat","picker.addMinutes":"+{count} min","picker.accessibilityOptions":"Accessibility and colour options","picker.addingEllipsis":"Adding\u2026","picker.allLevels":"All levels","picker.allPlacesBookedTogether":"All {count} places are booked together as one exclusive table.","picker.allPrices":"All prices","picker.allSeats":"All seats","picker.allSetTitle":"You\u2019re all set","picker.anyTicketType":"Any ticket type","picker.anyVenueZone":"Any venue zone","picker.areas":"Areas","picker.available":"Available","picker.backToMap":"Back to map","picker.backToVenue":"Back to venue","picker.bestSeatsStar":"\u2726 Best seats","picker.booth":"Booth","picker.capacityGuests":"{count} guests","picker.change":"Change","picker.chartDerivedModel":"Chart-derived model","picker.chartDerivedSeatEye":"Live 3D \xB7 chart-derived seat-eye \xB7 not surveyed","picker.checkConnection":"Check your connection and try again.","picker.checkoutCouldNotBeOpened":"Checkout could not be opened. Your seats are still held \u2014 please try again.","picker.chooseAnotherToCompare":"Choose another seat to compare.","picker.chooseGuestsCopy":"Choose how many guests will sit together. This table is held exclusively for your party.","picker.chooseMinMaxGuests":"Choose {min}\u2013{max} guests","picker.clearSavedSeatComparison":"Clear saved seat comparison","picker.close":"Close","picker.closeSeatStatus":"Close seat status","picker.closestGroupChosenInstantly":"Closest available group, chosen instantly.","picker.collapseTicketPanel":"Collapse ticket panel","picker.colorblindColors":"Colourblind-friendly colours","picker.companionSeatsNote":"Companion places beside them stay selectable","picker.accessFreeCount":"{count} free","picker.accessNoneLeft":"None left","picker.accessSpreadHint":"{count} accessible spaces in {sections} sections \xB7 tap a highlighted section","picker.holdLapsedStillFree.one":"Your hold ended while you were away. That seat is still free.","picker.holdLapsedStillFree.other":"Your hold ended while you were away. Those seats are still free.","picker.holdLapsedSomeTaken.one":"Your hold ended while you were away, and {count} of those seats has been taken. The rest are still free.","picker.holdLapsedSomeTaken.other":"Your hold ended while you were away, and {count} of those seats have been taken. The rest are still free.","picker.holdLapsedAllTaken.one":"Your hold ended while you were away, and that seat has been taken.","picker.holdLapsedAllTaken.other":"Your hold ended while you were away, and those seats have been taken.","picker.holdLapsedSelectAgain.one":"Select it again","picker.holdLapsedSelectAgain.other":"Select them again","picker.compareCount":"Compare {count}","picker.compareWithSaved":"Compare with saved","picker.confirmOrCancelSeat":"Confirm or cancel this seat","picker.confirmSeatLabel":"Confirm seat {label}","picker.confirmYourTable":"Confirm your table","picker.confirmedAndOnWay":"confirmed. A confirmation is on its way.","picker.continue":"Continue","picker.continueToCheckout":"Continue to checkout","picker.couldNotAddMoreTime":"Couldn\u2019t add more time \u2014 please head to checkout now.","picker.couldNotFindSeatsTogether":"We couldn\u2019t find {count} seats together. Try fewer seats or another ticket type.","picker.couldNotReleaseTickets":"Couldn\u2019t release your tickets. Your hold is unchanged.","picker.couldNotRemoveLabel":"Couldn\u2019t remove {label}. Your hold is unchanged.","picker.currentOffer":"Current offer","picker.currentTicketOffer":"Current ticket offer","picker.dragToLookAround":"Drag to look around \xB7 scroll to zoom","picker.dragToLookTouch":"Drag to look \xB7 pinch to zoom \xB7 tap \u2715 to close","picker.dragToLookMouse":"Drag to look \xB7 pinch or scroll to zoom \xB7 Esc to close","picker.emptyWheelchairSpace":"Empty wheelchair space","picker.exitFullScreen":"Exit full screen","picker.fewer":"Fewer","picker.fewerGuests":"Fewer guests","picker.fewerSeats":"Fewer seats","picker.filterAndFocusByPrice":"Filter and focus seats by price","picker.filters":"Filters","picker.findBestSeatsCount.one":"Find {count} best seat","picker.findBestSeatsCount.other":"Find {count} best seats","picker.findBestSeatsTogether":"Find the best seats together","picker.findNewSeats":"Find new seats","picker.findingBestSeats":"Finding the best seats\u2026","picker.findingEllipsis":"Finding\u2026","picker.fitToScreen":"Fit to screen","picker.flat2dMap":"Flat 2D map","picker.flexiblePartyTypeWord":"Flexible party \xB7 {typeWord}","picker.fullScreen":"Full screen","picker.generalAdmission":"General admission","picker.guestCountCouldNotBeSecured":"That guest count could not be secured. Your current table hold is unchanged.","picker.guestCountNoLongerAvailable":"That guest count is no longer available. Your current hold is unchanged.","picker.guests":"Guests","picker.guestsCount":"{count} guests","picker.guestsCountEdit":"{count} guests \xB7 Edit","picker.held":"Held","picker.heldByOther":"Held by another buyer \u2014 may become available","picker.heldForYou":"Held for you","picker.heldSeatExplanation":"Another buyer is holding this seat. It may become available again.","picker.heldTicketsReleased":"Held tickets released. Choose your new seats.","picker.heldTicketsRestored":"Your held tickets have been restored.","picker.hidePanel":"Hide panel","picker.hideTicketPanel":"Hide the ticket panel","picker.holdSeatsAndCheckout":"Hold seats & checkout","picker.howOfferWorks":"How the {name} offer works","picker.interactive3dVenueView":"Interactive 3D venue view","picker.keepMine":"Keep mine","picker.labelNoLongerAvailable":"{label} is no longer available.","picker.labelRemoved":"{label} removed.","picker.labelRemovedFromHold":"{label} removed from your hold.","picker.labelRestored":"{label} restored.","picker.labelsNoLongerAvailable.one":"{labels} is no longer available. Choose another seat.","picker.labelsNoLongerAvailable.other":"{labels} are no longer available. Choose another group.","picker.leftCount.one":"{count} left","picker.leftCount.other":"{count} left","picker.levelNumber":"Level {number}","picker.levels":"Levels","picker.liveAvailability":"Live availability \u2014 seats update in real time","picker.loadingSeatMap":"Loading seat map\u2026","picker.lookAroundLive3d":"Look around in live 3D","picker.manualTicketsRemovedNote":"Your manually selected tickets will be removed only after a new group is secured.","picker.map":"Map","picker.mapDidNotLoad":"The seat map didn\u2019t load","picker.maxTicketsForOrder":"You can select up to {count} tickets for this order.","picker.selectExactMore":"Select {count} more","picker.selectExactCount":"Select exactly {count} tickets","picker.selectMinimumMore":"Select {count} more","picker.adjustSeatSelection":"Adjust seat selection","picker.selectSeatsTogether":"Choose seats together in the same row and ticket category.","picker.minToMaxGuests":"{min} to {max} guests","picker.more":"More","picker.moreCount":"+{count} more","picker.showLess":"Show less","picker.moreGuests":"More guests","picker.moreSeats":"More seats","picker.moreSelectedCount":"{count} more selected","picker.moreTimeAdded":"More time added \u2014 your seats are still held.","picker.noAccessibilityMetadata":"No accessibility metadata supplied","picker.noAuthoredRestriction":"No organizer-authored restriction","picker.noSeatsSelected":"No seats selected","picker.notChargedYet":"You won\u2019t be charged yet.","picker.notForSale":"Not for sale","picker.notForSaleExplanation":"This seat is not included in the current sale.","picker.numberOfGuests":"Number of guests","picker.offerDetailActive":"This price applies automatically to eligible seats. Tickets in active carts temporarily reduce the available quantity; released or expired holds return it. When the offer ends, the next matching offer or normal ticket price takes over.","picker.offerDetailUpcoming":"Tickets are available at their normal price now. This scheduled offer will apply automatically to eligible seats when it starts.","picker.offerRemainingAvailable":"{count} available","picker.offerStarts":"starts {time}","picker.offerUntil":"until {time}","picker.oneSeatSaved":"1 seat saved","picker.oneSeatSavedChooseAnother":"One seat saved; choose another to compare","picker.openAuthored360":"Open venue 360\xB0","picker.openComparison":"Open comparison","picker.openComparisonOfSeats":"Open comparison of {count} seats","picker.openTicketPanel":"Open ticket panel","picker.peekFromPrice":"From {price}","picker.peekTicketsTotal.one":"{count} ticket \xB7 {total}","picker.peekTicketsTotal.other":"{count} tickets \xB7 {total}","picker.perGuestPrice":"{price} per guest","picker.pickYourSeats":"Pick your seats","picker.preferredTicketType":"Preferred ticket type","picker.preferredVenueZone":"Preferred venue zone","picker.priceNotSupplied":"Price not supplied","picker.releaseHeldTickets":"Release held tickets and choose different seats","picker.releasingEllipsis":"Releasing\u2026","picker.removeHeldTicketLabel":"Remove held ticket {label}","picker.removeSeatLabel":"Remove {label}","picker.removeTicketsUntilOrFewer":"Remove tickets until your order has {count} or fewer.","picker.replaceCurrentChoices":"Replace your current choices?","picker.review":"Review","picker.row":"Row","picker.rowLabel":"Row {label}","picker.saveToCompare":"Save to compare","picker.savedForComparison":"Saved for comparison","picker.savedSeatComparison":"Saved seat comparison","picker.scheduledOffer":"Scheduled offer","picker.seat":"Seat","picker.seatCount.one":"{count} seat","picker.seatCount.other":"{count} seats","picker.seatJustTakenByAnother":"Seat {label} was just taken by another buyer.","picker.seatLabel":"Seat {label}","picker.seatNoLongerAvailable":"That seat is no longer available.","picker.seatNoLongerYours":"Some seats are no longer available to you. They have been removed from your order.","picker.seatNumberLower":"seat {label}","picker.seatSalesClosedForEvent":"Seat sales have closed for this event.","picker.seatSelection":"Seat selection","picker.seatStatusLegend":"Seat status legend","picker.seatTaken":"Someone else took a seat you had picked. It has been removed from your order.","picker.seatsJustTaken":"One or more seats were just taken. Please pick again.","picker.seatsJustTakenInCategory.one":"{count} seat just taken in {label} \xB7 {left} left","picker.seatsJustTakenInCategory.other":"{count} seats just taken in {label} \xB7 {left} left","picker.seatsNoLongerAvailableTryAnother":"Those seats are no longer available. Try another quantity or ticket type.","picker.seatsSecured":"Seats secured","picker.seatsSelectedCount.one":"{count} selected","picker.seatsSelectedCount.other":"{count} selected","picker.section":"Section","picker.secureMore":"Secure more","picker.secureMoreAndCheckout":"Secure {count} more & checkout","picker.securedCount":"{count} secured","picker.seeItIn3d":"See it in 3D","picker.select":"Select","picker.selectSeats":"Select seats","picker.selectTable":"Select table","picker.selectWholeTable":"Select whole table","picker.selected":"Selected","picker.selectingEllipsis":"Selecting\u2026","picker.showAllSeats":"Show all seats","picker.showAllTicketTypes":"Show all {count} ticket types","picker.showFewer":"Show fewer","picker.showLabelSeatsOnMap":"Show {label} seats on the map","picker.showTicketPanel":"Show the ticket panel","picker.sold":"Sold","picker.soldOutCopy":"No reserved seats are currently available for this event.","picker.soldOutEyebrow":"This event","picker.soldOutTitle":"Sold out","picker.soldSeatExplanation":"This seat has already been booked.","picker.statusAvailable":"available","picker.statusOnHold":"on hold","picker.statusTaken2":"taken","picker.table":"Table","picker.tableCapacity":"Table capacity","picker.tableUpdatedForGuests":"{label} updated for {count} guests.","picker.temporarilyHeld":"Temporarily held","picker.ticketPrices":"Ticket prices","picker.ticketTypeSoldOut":"That ticket type is sold out. Try another ticket type.","picker.tickets":"Tickets","picker.ticketsCount.one":"{count} ticket","picker.ticketsCount.other":"{count} tickets","picker.toggleColorblindColors":"Toggle colorblind-friendly colors","picker.total":"Total","picker.trayHintTapOrBest":"Tap a seat on the map, or let us pick the best available for you.","picker.trayHintTapOrStanding":"Tap a seat on the map \u2014 or grab standing tickets below.","picker.undo":"Undo","picker.upcomingTicketOffer":"Upcoming ticket offer","picker.updateTable":"Update table","picker.updatingEllipsis":"Updating\u2026","picker.venueView":"Venue view","picker.recentreOnStage":"Recentre on the stage","picker.stopYourSeat":"Your seat","picker.stopYourRow":"Your row","picker.stopYourSection":"Your section","picker.stopWholeVenue":"Whole venue","picker.viewFromHere":"View from here","picker.viewFromYourSeat":"view from your seat","picker.fromYourSeat":"from your seat","picker.viewFromThisSeat":"View from this seat","picker.wholeTypeWord":"Whole {typeWord}","picker.willChooseClosestGroup":"We\u2019ll choose the closest available group for you.","picker.willFindSeatsTogether":"We\u2019ll find {count} seats together.","picker.yourSeats":"Your seats","picker.zoomIn":"Zoom in","picker.zoomOut":"Zoom out","picker.closeVenueNav":"Close","picker.levelsAndAreas":"Levels & areas","picker.gaChooseTickets":"How many tickets?","picker.gaAdd.one":"Add {count} ticket \xB7 {price}","picker.gaAdd.other":"Add {count} tickets \xB7 {price}","picker.gaUpdate.one":"Update \xB7 {count} ticket","picker.gaUpdate.other":"Update \xB7 {count} tickets","picker.gaRemove":"Remove","picker.gaAreasHeading":"Areas","picker.gaTrayHintTapArea":"Tap an area on the map to choose tickets.","picker.gaAdded.one":"{count} {area} ticket added, {price}","picker.gaAdded.other":"{count} {area} tickets added, {price}","picker.gaRemoved":"{area} tickets removed","picker.gaChooseForArea":"Choose tickets for {area}","picker.holdSeatsForAllPerformances":"Hold seats for all {count} performances","picker.completeAllPerformances":"Complete all performances ({complete}/{total})","picker.groupTrayHint":"Choose seats once \u2014 the same seats will be held for every performance.","picker.groupPerPerformanceTrayHint":"Choose seats for this performance, then complete every date above.","picker.group.sameSeatSummary":"Choose once. The same seats will be held for all {count} performances.","picker.group.perPerformanceSummary":"Choose seats for each performance. All {count} selections are held together.","picker.group.allDates":"All {count} dates included","picker.group.flexibleDatesInView":"All {count} dates in view","picker.group.flexibleDatesSelected":"{selected} of {total} dates selected","picker.group.performances":"Performances","picker.group.heldForEveryPerformance":"Held for every performance","picker.group.notStarted":"Not started","picker.group.inProgress":"In progress","picker.group.complete":"Complete","picker.group.needsAttention":"Needs attention","picker.group.previousPerformance":"Previous performance","picker.group.nextPerformance":"Next performance","picker.group.performanceOpened":"Now choosing seats for {performance}.","picker.group.checkingAvailability":"Checking seats available for every performance\u2026","picker.group.securing":"Securing these seats for every performance. Please wait.","picker.group.commitPending":"We\u2019re still securing these seats for every performance. SeatLayer will keep working; this page is checking the result.","picker.group.outcomeUnknown":"We\u2019re checking whether your seats were secured. Don\u2019t choose other seats yet.","picker.group.longRunning":"This is taking longer than usual. We\u2019re still checking the same request. Don\u2019t submit it again. Reference: {reference}.","picker.group.abortPending":"We couldn\u2019t secure every performance. We\u2019re checking that all seats are released before you try again.","picker.group.secured":"Seats secured for every performance. Continue when you are ready.","picker.group.notSecured":"We couldn\u2019t secure these seats for every performance. Nothing is held. Try again.","picker.group.retry":"Try again","picker.group.salesClosed":"Seats for this performance set are not available now. Return to the event page for other options.","picker.group.revisionChanged":"This performance set changed. Review the included performances before choosing seats again.","picker.group.legendTitle":"Seat availability","picker.group.legendUnavailable":"Unavailable","picker.group.partlyAvailableTitle":"Free on some nights only","picker.group.notAvailableOn":"Not available on {dates}","picker.group.nightFree":"Free","picker.group.nightBlocked":"Not available","picker.group.pickSeatFreeEveryNight":"Pick a seat that is free every night.","picker.group.chooseNightByNight":"Choose seats night by night","picker.group.nightByNightStarted":"Now choosing seats for each performance separately. Your selection was cleared.","picker.group.yourSeatsByNight":"Your seats by night","picker.group.noSeatsChosenYet":"No seats yet","picker.group.chosenOfTotal":"{chosen} of {total}","picker.group.needsMoreSeats":"Needs {count} more","picker.group.closeSeatDetails":"Close seat details","picker.group.seatPartlyAvailable":"{label}: free on {free} of {total} performances. Not available on {dates}.","picker.group.selectAvailableDates":"Select for {count} available dates","picker.group.selectedAvailableDates":"Selected for {count} available dates.","picker.group.clearBeforePartial":"Clear your current seats before choosing a different date set.","picker.group.legendAvailable":"Available","picker.group.legendSelected":"Selected","picker.group.legendNotEveryDate":"Not open on every date","picker.group.progressLabel":"Booking steps","picker.group.stepPerformances":"Performances","picker.group.stepSeats":"Seats","picker.group.stepReview":"Review","picker.group.stepDone":"Done","picker.group.stepCurrent":"Current step","picker.group.includedNote":"All {count} performances are included \xB7 dates cannot be removed here","picker.group.flexibleDatesNote":"Choose a partial seat to include only the dates where it is available.","picker.group.flexibleSelectedNote":"Only these {count} dates will be held for this seat.","picker.group.yourSelection":"Your selection","picker.group.pricesPerPerformance":"Prices shown per performance","picker.group.total":"Total","picker.group.heldTogether":"All {count} performance selections are held together \xB7 {time} remaining","picker.group.completeWithSeats":"Complete \xB7 {seats}","picker.group.stillNeedsSeat":"Still needs a seat","picker.group.sameSeatMapHelp":"One chart shows only seats available for every selected performance.","picker.group.perPerformanceMapHelp":"Switch dates above; the map position and each choice stay saved.","picker.group.bookedAll":"You\u2019re all set \u2014 seats booked for all {count} performances.","picker.group.seatsEveryPerformance.one":"{count} seat \xB7 every performance","picker.group.seatsEveryPerformance.other":"{count} seats \xB7 every performance","picker.group.seatsPerPerformance.one":"{count} seat \xB7 {per} per performance","picker.group.seatsPerPerformance.other":"{count} seats \xB7 {per} per performance","picker.group.performancesChosenOf.one":"{chosen} of {total} performances chosen \xB7 {count} seat","picker.group.performancesChosenOf.other":"{chosen} of {total} performances chosen \xB7 {count} seats","picker.group.ticketsConfirmedAcross.one":"{count} ticket confirmed across {performances} performances","picker.group.ticketsConfirmedAcross.other":"{count} tickets confirmed across {performances} performances"};var Sd=["ar","be","bg","ca","cs","cy","da","de","el","en","es","et","fa","fi","fr","he","hr","hu","it","ja","ku","lt","lv","nl","no","pl","pt","ro","ru","sk","sl","sr","sv","tr","uk","zh-Hans","zh-Hant"],Bf={ar:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",be:"\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u043A\u0430\u044F",bg:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438",ca:"Catal\xE0",cs:"\u010Ce\u0161tina",cy:"Cymraeg",da:"Dansk",de:"Deutsch",el:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",en:"English",es:"Espa\xF1ol",et:"Eesti",fa:"\u0641\u0627\u0631\u0633\u06CC",fi:"Suomi",fr:"Fran\xE7ais",he:"\u05E2\u05D1\u05E8\u05D9\u05EA",hr:"Hrvatski",hu:"Magyar",it:"Italiano",ja:"\u65E5\u672C\u8A9E",ku:"Kurd\xEE",lt:"Lietuvi\u0173",lv:"Latvie\u0161u",nl:"Nederlands",no:"Norsk",pl:"Polski",pt:"Portugu\xEAs",ro:"Rom\xE2n\u0103",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",sk:"Sloven\u010Dina",sl:"Sloven\u0161\u010Dina",sr:"\u0421\u0440\u043F\u0441\u043A\u0438",sv:"Svenska",tr:"T\xFCrk\xE7e",uk:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430","zh-Hans":"\u7B80\u4F53\u4E2D\u6587","zh-Hant":"\u7E41\u9AD4\u4E2D\u6587"},jr=["ar","be","bg","ca","cs","cy","da","de","el","en","es","et","fa","fi","fr","he","hr","hu","it","ja","ku","lt","lv","nl","no","pl","pt","ro","ru","sk","sl","sr","sv","tr","uk","zh-Hans","zh-Hant"],vd=new Set(["ar","fa","he"]),ao={li:"lt",iw:"he",mo:"ro",sh:"sr",nb:"no",nn:"no",kmr:"ku",zh:"zh-Hans","zh-cn":"zh-Hans","zh-sg":"zh-Hans","zh-my":"zh-Hans","zh-tw":"zh-Hant","zh-hk":"zh-Hant","zh-mo":"zh-Hant"},lo=new Map(Sd.map(t=>[t.toLowerCase(),t]));function wd(t){let e=t.trim().toLowerCase().replace(/_/g,"-");if(!e)return;let i=lo.get(e)??ao[e];if(i)return i;let o=e.split("-");if(o.length>=2){let n=`${o[0]}-${o[1]}`,r=lo.get(n)??ao[n];if(r)return r}return lo.get(o[0])??ao[o[0]]}var Ve={en:Lt},mi={},ue="en";function Qr(t,e){let i=typeof navigator<"u"?navigator.languages?.length?navigator.languages:[navigator.language]:[];for(let o of[t,e,...i]){if(!o)continue;let n=wd(o);if(n)return n}return"en"}function Of(){return ue}function Df(t=ue){return vd.has(t)?"rtl":"ltr"}function Hf(t){return!!Ve[t]}function Je(t,e){e&&(Ve[t]={...Ve[t],...e}),ue=Ve[t]?t:"en",Zr(ue),Yr(ue),typeof document<"u"&&(document.documentElement.lang=ue)}function Nf(t){mi=t}var Jr=/\{(\w+)\}/g;function _(t,e){let i=mi[t]??Ve[ue]?.[t]??Lt[t]??t;return e?i.replace(Jr,(o,n)=>String(e[n]??`{${n}}`)):i}function es(t,e,i){let o=new Intl.PluralRules(ue).select(e);return(mi[`${t}.${o}`]??Ve[ue]?.[`${t}.${o}`]??Lt[`${t}.${o}`]??mi[`${t}.other`]??Ve[ue]?.[`${t}.other`]??Lt[`${t}.other`]??t).replace(Jr,(s,l)=>String({count:e,...i}[l]??`{${l}}`))}function Gf(t,e){return Ur(t,{...e??{dateStyle:"medium",timeStyle:"short"},locale:ue})}function is(t,e,i,o=!1){let n=t.displayLabel?.trim()||t.label;return o?{title:n,detail:_("map.statusTaken"),sellable:!1}:e==="booked"?{title:n,detail:_("map.statusTaken"),sellable:!1}:e==="held"?{title:n,detail:_("map.statusHeld"),sellable:!1}:{title:n,detail:i()??"",sellable:!0}}var et=32,ts=70;function os(t,e){let i=et+6,o=t.y-ts;return{x:Math.min(Math.max(t.x,i),Math.max(i,e.width-i)),y:o>=i?o:Math.min(t.y+ts,e.height-i)}}var ss=.8,xd=220,Td=.08,gi=class{constructor(e){this.pulses=new Map;this.pulseGroup=null;this.loupe=null;this.echoTimers=new Map;this.host=e}syncMarker(e,i,o){let n=o.get(e);if(o.delete(e),!i){this.retire(n);return}n?.destroy();let r=this.host,s=r.seat(e);if(!s)return;let l=r.seatShape(e)?.fill(),a=q(typeof l=="string"?l:"",r.selectionColor(),je),c=r.selectionFocusId()===e,d=r.boothDims(s.rowId),h=r.seatRadius(),p=r.seatPoint(s),m=new co({name:"selection-ring",x:p.x,y:p.y,rotation:d?.rotation??0,listening:!1,perfectDrawEnabled:!1,opacity:r.selectionFocusDims(e)?.2:1});if(r.viewMode()==="perspective"){let u=r.perspectiveSeatScale(e);m.scale({x:u,y:u})}m.setAttrs({seatId:e,ringColor:a});let f={name:"selection-halo",stroke:B(r.categoryColor(s.categoryKey),pi(D(r.canvasBackground()))),listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1};if(d){let u=h*1.2;m.add(new uo({...f,width:d.width+u*2,height:d.height+u*2,offsetX:(d.width+u*2)/2,offsetY:(d.height+u*2)/2,cornerRadius:8,strokeWidth:Math.max(2,h*.5)}))}else m.add(new Ke({...f,radius:h*1.6,strokeWidth:Math.max(2,h*.55)}));let y={stroke:a,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1};if(d)if(m.add(new uo({...y,width:d.width,height:d.height,offsetX:d.width/2,offsetY:d.height/2,cornerRadius:4,strokeWidth:c?4:3})),c)m.add(new uo({...y,stroke:$i(r.canvasBackground()),width:d.width+10,height:d.height+10,offsetX:(d.width+10)/2,offsetY:(d.height+10)/2,cornerRadius:7,strokeWidth:2.5,opacity:ss}));else{let u=Math.max(0,d.width/2-14),g=-Math.max(0,d.height/2-14);m.add(new Ke({x:u,y:g,radius:10,fill:a,listening:!1})),m.add(new ho({x:u,y:g,points:[-4.5,0,-1,3.5,5.5,-4.5],stroke:D(a)?"#0b1220":"#ffffff",strokeWidth:2.4,lineCap:"round",lineJoin:"round",listening:!1}))}else m.add(new Ke({...y,radius:Math.max(1,h-1.25),strokeWidth:Math.min(2.5,Math.max(1.8,h*.22))})),c?m.add(new Ke({...y,stroke:$i(r.canvasBackground()),radius:h+2,strokeWidth:Math.max(2,h*.2),opacity:ss})):m.add(new ho({points:[-h*.52,0,-h*.12,h*.4,h*.6,-h*.46],stroke:"#ffffff",strokeWidth:Math.max(2.6,h*.34),lineCap:"round",lineJoin:"round",shadowColor:"#0b1220",shadowBlur:1.5,shadowOpacity:.55,listening:!1}));o.set(e,m),this.host.overlayLayer.add(m)}retire(e){let i=this.host;if(!e)return;if(i.reducedMotion()||i.isDestroyed()||typeof document<"u"&&document.hidden){e.destroy();return}let o=performance.now(),n=r=>{if(i.isDestroyed()||!e.getLayer()){e.destroy();return}let s=Math.min(1,(r-o)/160);e.opacity(1-s),i.overlayLayer.batchDraw(),s<1?requestAnimationFrame(n):(e.destroy(),i.overlayLayer.batchDraw())};requestAnimationFrame(n)}play(e){let i=this.host;if(i.reducedMotion()||i.isDestroyed()||typeof document<"u"&&document.hidden||!i.seat(e))return;this.emitPulse(e,!0);let o=this.echoTimers.get(e);o&&clearTimeout(o),this.echoTimers.set(e,setTimeout(()=>{this.echoTimers.delete(e),!(i.isDestroyed()||i.reducedMotion())&&(typeof document<"u"&&document.hidden||this.emitPulse(e,!1))},Wr))}emitPulse(e,i){let o=this.host,n=o.seat(e);if(!n)return;let r=o.seatRadius(),s=o.seatPoint(n);this.pulses.get(e)?.destroy();let l=new Ke({name:"selection-pulse",x:s.x,y:s.y,radius:r,stroke:o.categoryColor(n.categoryKey),strokeWidth:Math.max(1.5,r*.24),opacity:no(0).opacity,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});this.pulses.set(e,l),this.pulseHome().add(l);let a=i&&!o.isCached()?o.seatShape(e):void 0,c=performance.now(),d=()=>{a?.scale({x:1,y:1}),l.destroy(),this.pulses.get(e)===l&&this.pulses.delete(e),o.overlayLayer.batchDraw(),a&&!o.isCached()&&o.seatLayer.batchDraw()},h=p=>{if(o.isDestroyed()){d();return}l.getLayer()||this.pulseHome().add(l);let m=p-c,f=no(m/420);if(l.radius(r*f.radiusScale),l.opacity(f.opacity),a){let y=Gr(m/320);a.scale({x:y,y})}o.overlayLayer.batchDraw(),a&&!o.isCached()&&o.seatLayer.batchDraw(),m<420?requestAnimationFrame(h):d()};queueMicrotask(()=>{o.isDestroyed()||typeof requestAnimationFrame!="function"||requestAnimationFrame(h)})}nudge(e){let i=this.host;if(i.reducedMotion()||i.isDestroyed()||i.isCached()||typeof document<"u"&&document.hidden)return;let o=i.seatShape(e);if(!o)return;let n=performance.now(),r=()=>{o.scale({x:1,y:1}),i.seatLayer.batchDraw()},s=l=>{if(i.isDestroyed()||i.isCached()||!o.getLayer()){r();return}let a=l-n,c=Math.min(1,a/xd),d=1+Td*Math.sin(Math.PI*c);o.scale({x:d,y:d}),i.seatLayer.batchDraw(),c<1?requestAnimationFrame(s):r()};requestAnimationFrame(s)}pulseHome(){return(!this.pulseGroup||!this.pulseGroup.getLayer())&&(this.pulseGroup=new co({name:"seat-pulses",listening:!1})),this.pulseGroup.getLayer()||this.host.overlayLayer.add(this.pulseGroup),this.host.overlayLayer.isCached()&&this.host.overlayLayer.clearCache(),this.pulseGroup.moveToTop(),this.pulseGroup}showLoupe(e){let i=this.host;if(i.isExportMode()||i.isDestroyed())return;let o=i.nearestSeat(e,we),n=o?i.seat(o):void 0;if(!n){this.hideLoupe();return}let r=is(n,i.seatStatus(n.id),()=>i.priceLabel(n),i.seatClosed(n.id)),s=os(e,{width:i.stage.width(),height:i.stage.height()}),l=1/(i.stage.scaleX()||1),a=this.loupe??this.buildLoupe();a.seatId=n.id,a.group.position(i.screenToWorld(s)),a.group.scale({x:l,y:l}),a.group.opacity(r.sellable?1:.75),a.group.visible(!0),a.disc.fill(i.categoryColor(n.categoryKey)),a.title.text(r.title),a.title.offsetX(a.title.width()/2),a.detail.text(r.detail),a.detail.offsetX(a.detail.width()/2),i.overlayLayer.batchDraw()}buildLoupe(){let e=this.host,i=e.canvasBackground(),o=q(i,oe(i).sectionInk),n=new co({name:"touch-loupe",listening:!1,visible:!1});n.add(new ho({points:[-7,et-4,0,et+12,7,et-4],closed:!0,fill:i,stroke:B(o,.25),strokeWidth:1,listening:!1})),n.add(new Ke({radius:et,fill:i,stroke:B(o,.28),strokeWidth:1.25,shadowColor:"#000000",shadowBlur:16,shadowOpacity:.45,listening:!1}));let r=new Ke({y:-15,radius:6,fill:"#6e7bff",listening:!1}),s=new rs({y:-6,text:"",fontSize:15,fontStyle:"800",fontFamily:e.labelFont(),fill:o,listening:!1,perfectDrawEnabled:!1}),l=new rs({y:12,text:"",fontSize:10.5,fontStyle:"700",fontFamily:e.labelFont(),fill:B(o,.72),listening:!1,perfectDrawEnabled:!1});return n.add(r),n.add(s),n.add(l),e.overlayLayer.add(n),n.moveToTop(),this.loupe={group:n,title:s,detail:l,disc:r,seatId:""},this.loupe}hideLoupe(){this.loupe?.group.visible()&&(this.loupe.group.visible(!1),this.host.overlayLayer.batchDraw())}destroy(){for(let e of this.echoTimers.values())clearTimeout(e);this.echoTimers.clear()}};import{Animation as Pd}from"konva/lib/Animation";var Id=1e3/Vr;function as(t){return t.findOne(".selection-halo")??null}var yi=class{constructor(e){this.animation=null;this.targets=[];this.startedAt=0;this.lastFrameAt=0;this.visibilityBound=!1;this.onVisibilityChange=()=>{this.refresh()};this.markers=new Map;this.beaconRings=[];this.host=e}sync(e){this.markers=e,this.refresh()}syncBeacons(e){this.beaconRings=e,this.refresh()}refresh(){let e=this.host,i=this.markers.size>0||this.beaconRings.length>0;if(i&&!e.isDestroyed()&&!e.reducedMotion()&&this.bindVisibility(),e.isDestroyed()||e.reducedMotion()||!this.pageVisible()||!i){this.stop(),this.rest(),(!i||e.isDestroyed()||e.reducedMotion())&&this.unbindVisibility();return}let o=[],n=0;for(let[s,l]of this.markers){let a=as(l);if(a){if(this.paintHalo(s,a),n>=ro){a.scale({x:1,y:1}),a.opacity(1);continue}o.push({node:a,phase:so(n)}),n+=1}}let r=0;for(let s of this.beaconRings){if(r>=ro){s.scale({x:1,y:1}),s.opacity(1);continue}o.push({node:s,phase:so(r)}),r+=1}if(this.targets=o,!o.length){this.stop();return}this.animation||(this.startedAt=performance.now(),this.lastFrameAt=0,this.animation=new Pd(()=>this.frame(),e.overlayLayer),this.animation.start())}stop(){this.targets=[],this.animation&&(this.animation.stop(),this.animation=null)}destroy(){this.stop(),this.markers=new Map,this.beaconRings=[],this.unbindVisibility()}isRunning(){return!!this.animation?.isRunning()}paintHalo(e,i){let o=this.host,n=pi(D(o.canvasBackground())),r=o.seatCategoryKey(e),s=o.isOwnedHold(e)?Q(o.selectionColor(),o.canvasBackground(),.55):r?o.categoryColor(r):o.selectionColor();i.stroke(B(s,n))}rest(){let e=!1;for(let[i,o]of this.markers){let n=as(o);n&&(this.paintHalo(i,n),n.scale({x:1,y:1}),n.opacity(1),e=!0)}for(let i of this.beaconRings)i.scale({x:1,y:1}),i.opacity(1),e=!0;e&&!this.host.isDestroyed()&&this.host.overlayLayer.batchDraw()}frame(){if(this.host.isDestroyed()||!this.targets.length)return this.stop(),!1;let i=performance.now();if(i-this.lastFrameAt<Id)return!1;this.lastFrameAt=i;let o=i-this.startedAt;for(let n of this.targets){let{scale:r,opacity:s}=Kr(o,n.phase);n.node.scale({x:r,y:r}),n.node.opacity(s)}return!0}pageVisible(){return typeof document>"u"?!0:document.visibilityState==="visible"}bindVisibility(){this.visibilityBound||typeof document>"u"||(document.addEventListener("visibilitychange",this.onVisibilityChange),this.visibilityBound=!0)}unbindVisibility(){!this.visibilityBound||typeof document>"u"||(document.removeEventListener("visibilitychange",this.onVisibilityChange),this.visibilityBound=!1)}};import{Group as Md}from"konva/lib/Group";import{Circle as ls}from"konva/lib/shapes/Circle";import{Text as Rd}from"konva/lib/shapes/Text";var bi=28,Ad=12,Ed="800",Fd=44;function cs(t){if(t.rung==="seats")return[];let e=new Map,i=new Map,o=new Map(t.zones.map(n=>[n.id,n.name]));for(let n of t.sections){let r=t.ownedSeatIds(n);if(!r.length)continue;let s=t.rung==="zones"&&n.zone!=null&&o.has(n.zone),l=s?n.zone:n.logicalId,a=e.get(l);if(a){a.count+=r.length,r.length>(i.get(l)??0)&&(i.set(l,r.length),a.seatId=r[0],a.anchor=t.sectionAnchor(n),a.toward=t.sectionCentre(n));continue}i.set(l,r.length),e.set(l,{id:l,kind:s?"zone":"section",name:s?o.get(n.zone):t.sectionName(n),count:r.length,seatId:r[0],anchor:t.sectionAnchor(n),toward:t.sectionCentre(n)})}return[...e.values()]}function _d(t,e){return _("map.beaconAria",{seats:es("picker.seatCount",t),name:e})}function Bd(t,e){let i=e*1.6,o=t.toward.x-t.anchor.x,n=t.toward.y-t.anchor.y,r=Math.hypot(o,n);return r<1e-6?{x:t.anchor.x,y:t.anchor.y-i}:{x:t.anchor.x+o/r*i,y:t.anchor.y+n/r*i}}var Od="selection-beacon-ring",Si=class{constructor(e){this.group=null;this.buttons=[];this.centres=[];this.rings=[];this.targets=[];this.signature="";this.host=e}breathingRings(){return this.rings}current(){return this.targets}sync(e){let i=Math.max(this.host.stageScale(),1e-4),o=`${i.toFixed(4)}|${e.map(a=>`${a.id}:${a.count}:${a.seatId}`).join(",")}`;if(o===this.signature&&this.buttons.length===e.length){this.targets=e,this.repositionButtons();return}if(this.clear(),this.signature=o,this.targets=e,!e.length){this.host.overlayLayer.batchDraw();return}let n=bi/2/i,r=this.host.accent(),s=this.host.accentInk(),l=new Md({listening:!1,name:"selection-beacons"});for(let a of e){let c=Bd(a,n),d=new ls({name:Od,x:c.x,y:c.y,radius:n*1.25,stroke:B(r,.55),strokeWidth:Math.max(1,n*.22),listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});l.add(d),l.add(new ls({name:"selection-beacon-disc",x:c.x,y:c.y,radius:n,fill:r,stroke:B(s,.28),strokeWidth:1/i,listening:!1,perfectDrawEnabled:!1}));let h=new Rd({x:c.x,y:c.y,text:String(a.count),fontSize:Ad/i,fontStyle:Ed,fontFamily:this.host.labelFont(),fill:s,listening:!1,perfectDrawEnabled:!1});h.offsetX(h.width()/2),h.offsetY(h.height()/2),l.add(h),this.rings.push(d),this.centres.push(c),this.buttons.push(this.buildButton(a,c))}this.host.overlayLayer.add(l),l.moveToTop(),this.group=l,this.host.overlayLayer.batchDraw()}raise(){this.group?.moveToTop()}clear(){this.group?.destroy(),this.group=null,this.rings=[],this.targets=[],this.centres=[],this.signature="";for(let e of this.buttons)e.remove();this.buttons=[]}repositionButtons(){for(let e=0;e<this.buttons.length;e+=1){let i=this.buttons[e],o=this.host.worldToScreen(this.centres[e]),n=i.offsetWidth||parseFloat(i.style.width)||bi;i.style.left=`${o.x-n/2}px`,i.style.top=`${o.y-n/2}px`}}buildButton(e,i){let o=this.host.worldToScreen(i),n=typeof globalThis.matchMedia=="function"&&globalThis.matchMedia("(pointer: coarse)").matches,r=Math.max(bi,n?Fd:bi),s=document.createElement("button");return s.type="button",s.className="sl-beacon",s.dataset.beacon=e.id,s.setAttribute("aria-label",_d(e.count,e.name)),Object.assign(s.style,{position:"absolute",left:`${o.x-r/2}px`,top:`${o.y-r/2}px`,width:`${r}px`,height:`${r}px`,padding:"0",margin:"0",border:"none",borderRadius:"50%",background:"transparent",cursor:"pointer",touchAction:"manipulation",zIndex:"3"}),s.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),this.host.activate(e)}),s.addEventListener("pointerdown",l=>l.stopPropagation()),this.host.container.appendChild(s),s}};function po(t,e){let i=t.width(),o=t.height(),n=1/0,r=1/0,s=-1/0,l=-1/0,a=i*2,c=o*2;for(let d of e){let h=d.getClientRect();if(!(!(h.width>1)||!(h.height>1))){if(h.x<-a||h.y<-c||h.x+h.width>i+a||h.y+h.height>o+c)return null;h.x<n&&(n=h.x),h.y<r&&(r=h.y),h.x+h.width>s&&(s=h.x+h.width),h.y+h.height>l&&(l=h.y+h.height)}}return isFinite(n)?{x:n,y:r,width:s-n,height:l-r}:null}var ds=8,Dd=.02,hs=1,us=.5;function ps(t,e,i,o){let n=i??{x:0,y:0,width:t.width(),height:t.height()},r=po(t,e);if(!r)return 0;fo(t,r,n);let s=Math.min((n.width-2*ds)/r.width,(n.height-2*ds)/r.height);if(!(s>0))return 1;let l=Math.max(r.width-n.width,r.height-n.height),a=l>us?s:Math.min(s,Hd(t.scaleX(),o));if(!(a>1+Dd)&&!(l>us)||!(a>0)||a===1)return 1;let c=n.x+n.width/2,d=n.y+n.height/2;t.scale({x:t.scaleX()*a,y:t.scaleY()*a}),t.position({x:c+(t.x()-c)*a,y:d+(t.y()-d)*a});let h=po(t,e);return h&&fo(t,h,n),a}function fs(t,e,i){let o=i??{x:0,y:0,width:t.width(),height:t.height()},n=po(t,e);return n?fo(t,n,o):!1}function Hd(t,e){let i=Math.max(t,1e-9);return(e!=null&&e>i?Math.min(hs,e):hs)/i}function fo(t,e,i){let o=i.x+i.width/2-(e.x+e.width/2),n=i.y+i.height/2-(e.y+e.height/2);return o===0&&n===0?!1:(t.position({x:t.x()+o,y:t.y()+n}),!0)}function vi(t){return`${t.x()},${t.y()},${t.scaleX()}`}import{Group as Nd}from"konva/lib/Group";import{Circle as ms}from"konva/lib/shapes/Circle";import{Line as Gd}from"konva/lib/shapes/Line";import{Text as Wd}from"konva/lib/shapes/Text";var Vd=6;function mo(t){return D(t)?"#0b1220":"#ffffff"}function gs(t){let{points:e}=t;if(!e.length)return null;let i=t.categoryColor??"#6e7bff",o=0,n=0;for(let r of e)o+=r.x,n+=r.y;return{count:e.length,centroid:{x:o/e.length,y:n/e.length},fill:i,ink:mo(i)}}var wi=class{constructor(e){this.group=null;this.badges=[];this.host=e}anchorFor(e){for(let i of this.host.sections()){if(i.logicalId!==e&&i.id!==e)continue;let o=gs({points:this.host.ownedPoints(i),categoryColor:null});if(o)return o.centroid}return null}badgeAt(e){for(let i of this.badges)if(Math.hypot(e.x-i.centre.x,e.y-i.centre.y)<=i.radius)return i.id;return null}sync(e,i="seats"){if(this.group?.destroy(),this.group=null,this.badges=[],e>=Le){this.host.overlayLayer.batchDraw();return}let o=Math.max(this.host.stageScale(),1e-4),n=new Nd({listening:!1,name:"owned-sections"}),r=new Set;for(let s of this.host.sections()){let l=this.host.ownedPoints(s),a=gs({points:l,categoryColor:this.host.sectionColor(s)});if(!a)continue;let c=Math.max(Vd/2/o,1);for(let y of l)n.add(new ms({name:"owned-seat-dot",x:y.x,y:y.y,radius:c,fill:a.fill,stroke:B("#ffffff",.55),strokeWidth:Math.max(.5,c*.28),shadowColor:a.fill,shadowBlur:c*2.4,shadowOpacity:.7,listening:!1,perfectDrawEnabled:!1}));if(i!=="seats"||r.has(s.logicalId))continue;r.add(s.logicalId);let d=this.host.sections().filter(y=>y.logicalId===s.logicalId).reduce((y,u)=>y+this.host.ownedPoints(u).length,0),h=this.host.labelAnchor(s),p=11/o,m={x:h.x,y:h.y-p*2.1};n.add(new ms({name:"owned-section-badge",x:m.x,y:m.y,radius:p,fill:a.fill,stroke:B(a.ink,.35),strokeWidth:1/o,listening:!1,perfectDrawEnabled:!1})),n.add(new Gd({x:m.x-p*.62,y:m.y,points:[-p*.22,0,-p*.02,p*.2,p*.34,-p*.26],stroke:a.ink,strokeWidth:Math.max(.6,p*.16),lineCap:"round",lineJoin:"round",listening:!1}));let f=new Wd({x:m.x+p*.12,y:m.y-p*.5,text:String(d),fontSize:p,fontStyle:"800",fontFamily:this.host.labelFont(),fill:a.ink,listening:!1,perfectDrawEnabled:!1});n.add(f),this.badges.push({id:s.logicalId,centre:m,radius:p*1.8})}if(!n.hasChildren()){n.destroy(),this.host.overlayLayer.batchDraw();return}this.host.overlayLayer.add(n),n.moveToTop(),this.group=n,this.host.overlayLayer.batchDraw()}};import{Text as Kd}from"konva/lib/shapes/Text";var zd=4;function Ct(t){return D(t)?{plate:"#ffffff",stroke:"rgba(15,23,42,0.18)"}:{plate:"#0f1622",stroke:"rgba(226,232,240,0.22)"}}function Xd(t,e,i,o){let n=Math.max(0,Math.min(o,e/2,i/2));t.beginPath(),t.moveTo(n,0),t.arcTo(e,0,e,i,n),t.arcTo(e,i,0,i,n),t.arcTo(0,i,0,0,n),t.arcTo(0,0,e,0,n),t.closePath()}function ys(t,e){t.padding(zd),t.shadowBlur(0),t.shadowOpacity(0),t.sceneFunc(function(o){let n=this.width(),r=this.height();o.save(),Xd(o,n,r,Math.min(r/2,8)),o.setAttr("fillStyle",e.plate),o.fill(),o.setAttr("strokeStyle",e.stroke),o.setAttr("lineWidth",1),o.stroke(),o.restore(),Kd.prototype._sceneFunc.call(this,o)})}function bs(t){return t?"seat":"section"}function Ss(t){let e=new Set,i=0;for(let n of t.memberIds){let r=t.categoryKey(n);r&&t.categorySellable(r)&&e.add(r),t.seatSellable(n)&&(i+=1)}let o=[];for(let n of t.categoryOrder)e.has(n)&&o.push({key:n,name:t.categoryLabel(n)||n,price:t.categoryPrice(n),color:t.categoryColor(n)});return o.length?i?{mode:"section",title:t.name,fields:[],rows:o,note:null}:{mode:"section",title:t.name,fields:[],rows:[],note:_("map.soldOut")}:{mode:"section",title:t.name,fields:[],rows:[],note:_("picker.notForSale")}}function vs(t){let e=Ud(t.label,t.sectionLabel,t.rowLabel),i=[t.sectionLabel,t.rowLabel?_("picker.rowLabel",{label:t.rowLabel}):null,e?_("picker.seatLabel",{label:e}):null].filter(Boolean).join(" \xB7 ")||t.label,o=[t.sectionLabel?{caption:_("picker.section"),value:t.sectionLabel}:null,t.rowLabel?{caption:_("picker.row"),value:t.rowLabel}:null,e?{caption:_("picker.seat"),value:e}:null].filter(r=>r!=null),n={key:t.categoryKey,name:t.categoryLabel||t.categoryKey,price:t.categoryPrice,color:t.categoryColor};return{mode:"seat",title:i,fields:o,rows:[n],note:Yd(t.status,t.closed)}}function Yd(t,e){return e||t==="not_for_sale"?_("picker.notForSale"):t==="booked"?_("map.statusTaken"):t==="held"?_("map.statusHeld"):null}function Ud(t,e,i){let o=t;for(let n of[e,i])!n||!o.startsWith(n)||o.length<=n.length||(o=o.slice(n.length).replace(/^[\s·\-/_]+/,""));return o}var $d=16,qd=8;function ws(t,e,i,o=$d){let n=qd,r=t.x+o;r+e.width>i.width-n&&(r=t.x-o-e.width);let s=t.y+o;return s+e.height>i.height-n&&(s=t.y-o-e.height),{x:Math.max(n,Math.min(r,Math.max(n,i.width-n-e.width))),y:Math.max(n,Math.min(s,Math.max(n,i.height-n-e.height)))}}var ks=13,Ls=12,ki=class{constructor(e){this.root=null;this.titleEl=null;this.rowsEl=null;this.noteEl=null;this.signature="";this.model=null;this.cursor=null;this.raf=0;this.attached=!1;this.lastUpdateMs=0;this.rowNames=new Map;this.rowNamesDoc=null;this.onPointerMove=e=>{if(e.pointerType!=="mouse"){this.hide();return}let i=this.host.container.getBoundingClientRect();this.cursor={x:e.clientX-i.left,y:e.clientY-i.top},this.schedule()};this.onPointerLeave=()=>this.hide();this.onPointerDown=e=>{e.pointerType!=="mouse"&&this.hide()};this.onWheel=()=>{this.cursor&&this.schedule()};this.host=e}attach(){this.attached||(this.attached=!0,this.host.container.addEventListener("pointermove",this.onPointerMove),this.host.container.addEventListener("pointerleave",this.onPointerLeave),this.host.container.addEventListener("pointerdown",this.onPointerDown),this.host.container.addEventListener("wheel",this.onWheel,{passive:!0}))}destroy(){this.raf&&(cancelAnimationFrame(this.raf),this.raf=0),this.host.container.removeEventListener("pointermove",this.onPointerMove),this.host.container.removeEventListener("pointerleave",this.onPointerLeave),this.host.container.removeEventListener("pointerdown",this.onPointerDown),this.host.container.removeEventListener("wheel",this.onWheel),this.attached=!1,this.cursor=null,this.root?.remove(),this.root=null,this.titleEl=null,this.rowsEl=null,this.noteEl=null,this.signature=""}hide(){this.cursor=null,this.signature="",this.model=null,this.root&&(this.root.style.display="none")}text(){let e=this.model;return!e||!this.root||this.root.style.display==="none"?"":[e.title,...e.rows.map(i=>[i.name,i.price].filter(Boolean).join(" ")),e.note].filter(Boolean).join(" | ")}schedule(){this.raf||(this.raf=requestAnimationFrame(()=>{this.raf=0,this.update()}))}update(){let e=performance.now(),i=this.cursor;if(!i)return;let o=this.host.hostCardOpen?.()?null:this.resolve(i);if(!o){this.hide(),this.lastUpdateMs=performance.now()-e;return}let n=this.ensureRoot(),r=`${o.mode}|${o.title}|${o.note??""}|${this.host.canvasBackground()}|`+o.rows.map(l=>`${l.key}:${l.price??""}:${l.color}`).join(",");r!==this.signature&&(this.signature=r,this.paint(o)),this.model=o,n.style.display="block";let s=ws(i,{width:n.offsetWidth,height:n.offsetHeight},{width:this.host.container.clientWidth,height:this.host.container.clientHeight});n.style.left=`${s.x}px`,n.style.top=`${s.y}px`,this.lastUpdateMs=performance.now()-e}resolve(e){if(bs(this.host.seatsPickable())==="seat"){let n=this.host.hoveredSeatId()??this.host.nearestSeat(e),r=n?this.host.seat(n):void 0;if(!n||!r)return null;let s=this.host.seatSectionLabel(n);return vs({label:r.displayLabel?.trim()||r.label,rowLabel:this.rowName(r,s),sectionLabel:s,categoryKey:r.categoryKey,categoryLabel:this.host.categoryLabel(r.categoryKey),categoryPrice:this.host.categoryPrice(r.categoryKey),categoryColor:this.host.categoryColor(r.categoryKey),status:this.host.seatStatus(n),closed:this.host.seatClosed(n)})}let i=this.host.sectionAt(e),o=i?this.host.sectionLabel(i):null;return!i||o==null?null:Ss({name:o||i,memberIds:this.host.sectionMembers(i),categoryOrder:this.host.categoryOrder(),categoryKey:n=>this.host.seat(n)?.categoryKey??null,categoryLabel:n=>this.host.categoryLabel(n),categoryPrice:n=>this.host.categoryPrice(n),categoryColor:n=>this.host.categoryColor(n),categorySellable:n=>this.host.categorySellable(n),seatSellable:n=>this.host.seatSellable(n)})}rowName(e,i){let o=this.host.chartDoc();if(!o)return null;if(this.rowNamesDoc!==o){this.rowNamesDoc=o,this.rowNames.clear();for(let r of o.objects){if(r.type!=="row")continue;let s=r.segmentedRow?.displayLabel??r.displayLabel??r.label;s&&(this.rowNames.set(r.id,s),r.segmentedRow&&this.rowNames.set(r.segmentedRow.groupId,s))}}let n=this.rowNames.get(e.logicalRowId??e.rowId)??this.rowNames.get(e.rowId);return n?ft(n,i??void 0)||n:null}ensureRoot(){if(this.root)return this.root;let e=Ct(this.host.canvasBackground()),i=document.createElement("div");i.className="sl-hover-card",i.setAttribute("aria-hidden","true"),Object.assign(i.style,{position:"absolute",left:"0",top:"0",display:"none",pointerEvents:"none",boxSizing:"border-box",minWidth:"150px",maxWidth:"280px",padding:"0",overflow:"hidden",borderRadius:"10px",background:e.plate,border:`1px solid ${e.stroke}`,boxShadow:"0 6px 20px rgba(2,6,23,0.22)",fontFamily:this.host.labelFont(),lineHeight:"1.35",zIndex:"2"});let o=document.createElement("div");Object.assign(o.style,{fontSize:`${ks}px`,fontWeight:"700",padding:"8px 12px 7px",textAlign:"center",color:q(e.plate,"#0b1220")});let n=document.createElement("div");Object.assign(n.style,{display:"flex",flexDirection:"column",gap:"0"});let r=document.createElement("div");return Object.assign(r.style,{fontSize:`${Ls}px`,fontWeight:"600",padding:"0 12px 8px",textAlign:"center",opacity:"0.72",color:q(e.plate,"#0b1220")}),i.append(o,n,r),this.host.container.appendChild(i),this.root=i,this.titleEl=o,this.rowsEl=n,this.noteEl=r,i}paint(e){let i=this.ensureRoot(),o=Ct(this.host.canvasBackground());i.style.background=o.plate,i.style.border=`1px solid ${o.stroke}`;let n=this.titleEl,r=this.rowsEl,s=this.noteEl,l=q(o.plate,"#0b1220");if(n.replaceChildren(),n.style.color=l,n.style.paddingBottom=e.rows.length||e.note?"7px":"8px",e.fields.length){let a=e.fields[0]?.caption;n.style.display="flex",n.style.padding="0";for(let[c,d]of e.fields.entries()){let h=document.createElement("div");Object.assign(h.style,{flex:d.caption===a?"1 1 auto":"0 0 auto",minWidth:"0",padding:"7px 10px 8px",textAlign:"center",borderLeft:c?`1px solid ${o.stroke}`:"none"});let p=document.createElement("div");p.textContent=d.caption,Object.assign(p.style,{fontSize:"9px",fontWeight:"800",letterSpacing:".12em",textTransform:"uppercase",opacity:"0.6"});let m=document.createElement("div");m.textContent=d.value,Object.assign(m.style,{marginTop:"2px",fontSize:`${ks}px`,fontWeight:"700",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"}),h.append(p,m),n.append(h)}}else n.style.display="block",n.style.padding="8px 12px 7px",n.textContent=e.title;r.replaceChildren();for(let a of e.rows){let c=document.createElement("div");Object.assign(c.style,{display:"flex",justifyContent:"space-between",gap:"16px",padding:"7px 12px",fontSize:`${Ls}px`,fontWeight:"700",background:a.color,color:Pn(a.color)});let d=document.createElement("span");d.textContent=a.name;let h=document.createElement("span");h.textContent=a.price??"",c.append(d,h),r.appendChild(c)}s.textContent=e.note??"",s.style.display=e.note?"block":"none",s.style.marginTop=e.note&&e.rows.length?"6px":"0",s.style.color=q(o.plate,"#0b1220")}};function z(t){let e=Mn(t);return e?{x:e.x,y:e.y,width:Math.max(1,e.width),height:Math.max(1,e.height)}:{x:0,y:0,width:1,height:1}}function tt(t,e,i,o){let n=o*Math.PI/180,r=Math.cos(n),s=Math.sin(n);return[{x:-e/2,y:-i/2},{x:e/2,y:-i/2},{x:e/2,y:i/2},{x:-e/2,y:i/2}].map(l=>({x:t.x+l.x*r-l.y*s,y:t.y+l.x*s+l.y*r}))}function it(t,e,i,o,n,r){let s=o*Math.PI/180,l=Math.cos(s),a=Math.sin(s);for(let c=0;c<=4;c++)for(let d=0;d<=6;d++){let h=e*(d/6-.5),p=i*(c/4-.5),m={x:t.x+h*l-p*a,y:t.y+h*a+p*l};if(!te(m,n,r))return!1}return!0}function Cs(t,e,i){let o=z(t),n=[i];for(let s=1;s<12;s+=1)for(let l=1;l<12;l+=1){let a={x:o.x+o.width*l/12,y:o.y+o.height*s/12};te(a,t,e)&&n.push(a)}let r=[t,...e];return n.map(s=>({point:s,room:cn(s,r)})).sort((s,l)=>l.room-s.room).map(s=>s.point).filter((s,l,a)=>l===a.findIndex(c=>Math.abs(c.x-s.x)<1e-6&&Math.abs(c.y-s.y)<1e-6))}function xs(t,e){let{stageScale:i,stageX:o,stageY:n}=t;if(t.viewMode==="perspective"&&e.perspectiveAffine)return z(e.outline.map(s=>{let l=t.projectedSectionPoint(e,s);return{x:l.x*i+o,y:l.y*i+n}}));let r=e.liftWorld>0?t.isoLiftLocal(e.liftWorld):{x:0,y:0};return z(e.outline.map(s=>{let l={x:s.x+r.x,y:s.y+r.y},a=t.isoT===0?l:t.isoForward(l);return{x:a.x*i+o,y:a.y*i+n}}))}function Zd(t,e){let i=t.width*t.height;if(i<=0)return 0;let o=Math.max(0,Math.min(t.x+t.width,e.width)-Math.max(t.x,0)),n=Math.max(0,Math.min(t.y+t.height,e.height)-Math.max(t.y,0));return o*n/i}function Ts(t){let{current:e,viewport:i}=t,o=new Map;for(let l of t.sections){let a=Zd(l.bounds,i)*l.members;a<=0||o.set(l.logicalId,(o.get(l.logicalId)??0)+a)}if(!o.size)return e;let n=null,r=0;for(let[l,a]of o)a>r&&(r=a,n=l);if(!n||n===e)return e;let s=e!=null?o.get(e)??0:0;return r>s*1.35?n:e}import{Text as Qd}from"konva/lib/shapes/Text";function jd(t,e){return t.x<e.x+e.width&&e.x<t.x+t.width&&t.y<e.y+e.height&&e.y<t.y+t.height}var ot=class{constructor(){this.cells=new Map}insert(e){for(let i of this.keys(e)){let o=this.cells.get(i);o?o.push(e):this.cells.set(i,[e])}}collisionCount(e){let i=new Set,o=0;for(let n of this.keys(e))for(let r of this.cells.get(n)??[])i.has(r)||(i.add(r),jd(e,r)&&o++);return o}keys(e){let i=Math.floor(e.x/bt),o=Math.floor((e.x+Math.max(0,e.width))/bt),n=Math.floor(e.y/bt),r=Math.floor((e.y+Math.max(0,e.height))/bt),s=[];for(let l=n;l<=r;l++)for(let a=i;a<=o;a++)s.push(`${a}:${l}`);return s}};function Ps(t,e){let i=t.sections.filter(f=>f.id===e||f.logicalId===e),o=i.map(f=>{if(t.viewMode==="perspective"&&f.perspectiveAffine)return z(f.outline.map(g=>t.projectedSectionPoint(f,g)));let y=f.liftWorld>0?t.isoLiftLocal(f.liftWorld):{x:0,y:0},u=f.outline.map(g=>{let S={x:g.x+y.x,y:g.y+y.y};return t.isoT===0?S:t.isoForward(S)});return z(u)});if(!o.length)return null;let n=Math.min(...o.map(f=>f.x)),r=Math.min(...o.map(f=>f.y)),s=Math.max(...o.map(f=>f.x+f.width)),l=Math.max(...o.map(f=>f.y+f.height)),a=new Set(i.flatMap(f=>f.memberIds));for(let f of a){let y=t.seatById.get(f);if(!y)continue;let u=t.renderedSeatPoint(y);n=Math.min(n,u.x-t.seatR),r=Math.min(r,u.y-t.seatR),s=Math.max(s,u.x+t.seatR),l=Math.max(l,u.y+t.seatR)}let c=f=>{[f.x,f.y,f.width,f.height].every(Number.isFinite)&&(n=Math.min(n,f.x),r=Math.min(r,f.y),s=Math.max(s,f.x+f.width),l=Math.max(l,f.y+f.height))},d=f=>{let y={x:f.x+f.width/2,y:f.y+f.height/2};return i.some(u=>te(y,u.outline,u.holes))};for(let{node:f,backdrop:y}of t.freeTextById.values()){let u=f.getClientRect({relativeTo:t.bgLayer,skipShadow:!0});d(u)&&(c(u),y&&c(y.getClientRect({relativeTo:t.bgLayer,skipShadow:!0})))}for(let{node:f}of t.iconNodeById.values()){let y=f.getClientRect({relativeTo:t.bgLayer,skipShadow:!0});d(y)&&c(y)}let h=new ot;for(let{node:f}of t.freeTextById.values()){let y=f.getClientRect({relativeTo:t.bgLayer,skipShadow:!0,skipStroke:!0});h.insert({x:y.x-J,y:y.y-J,width:y.width+J*2,height:y.height+J*2})}for(let f of t.rowLabelPlan){let y=(f.focusKeys??[]).some(b=>b===e||i.some(v=>b===v.id||b===v.logicalId)),u=new Qd({text:f.text,fontSize:f.fontSize,fontStyle:"700",fontFamily:t.labelFont(),rotation:f.rotation,listening:!1});u.offsetX(u.width()/2),u.offsetY(u.height()/2);let g=t.resolveAutomaticRowLabelPosition(u,f,h),S=t.rowLabelBox(u,g);y&&c(S),h.insert(S),u.destroy()}let p=Math.max(s-n,l-r),m=Math.max(t.seatR*2,Math.min(24,p*.025));return{x:n-m,y:r-m,width:Math.max(1,s-n+m*2),height:Math.max(1,l-r+m*2)}}import{Rect as Jd}from"konva/lib/shapes/Rect";import{Text as Is}from"konva/lib/shapes/Text";var go="\0";function eh(t){let i=[..._("map.fromPrice",{price:go}).toLocaleLowerCase()],o=i.findIndex(n=>n!==go&&n.toLocaleUpperCase()!==n.toLocaleLowerCase());return o>=0&&(i[o]=i[o].toLocaleUpperCase()),i.join("").split(go).join(t)}function Ms(t,e){if(!e.zones?.length||!t.sections.length)return;let i=Dr(t.canvasBackground),o=new Map;for(let n of t.sections)n.zone&&(o.get(n.zone)??o.set(n.zone,[]).get(n.zone)).push(n);for(let n of e.zones){let r=o.get(n.id);if(!r||!r.length)continue;let s=r[0];for(let u of r)u.centroid.y<s.centroid.y&&(s=u);let l=s.centroid.x,a=s.centroid.y,c=1/0,d=-1/0;for(let u of r)for(let g of u.outline)g.x<c&&(c=g.x),g.x>d&&(d=g.x);let h=isFinite(c)&&d>c?d-c:0,p=1/0;for(let u of r)for(let g of u.memberIds){let S=t.seatById.get(g),b=S&&t.catPrice.get(S.categoryKey);typeof b=="number"&&b<p&&(p=b)}let m=new Jd({x:l,y:a,width:1,height:1,offsetX:.5,offsetY:.5,cornerRadius:1,fill:i.plate,stroke:B(n.color??s.outlineTint,br),strokeWidth:1,opacity:0,listening:!1,perfectDrawEnabled:!1});t.bgLayer.add(m);let f=new Is({x:l,y:a,text:n.label,fontSize:ri,fontStyle:hr,letterSpacing:0,fontFamily:t.labelFont(),fill:i.ink,opacity:0,listening:!1,perfectDrawEnabled:!1});f.offsetX(f.width()/2),f.offsetY(f.height()/2),t.bgLayer.add(f);let y=null;isFinite(p)&&(y=new Is({x:l,y:a,text:eh(kt(p,t.currency)),fontSize:si,fontStyle:ur,fontFamily:t.labelFont(),fill:i.subInk,opacity:0,listening:!1,perfectDrawEnabled:!1}),y.offsetX(y.width()/2),t.bgLayer.add(y)),t.zones.push({id:n.id,anchor:{x:l,y:a},back:m,background:i.plate,name:n.label,spanWorld:h,label:f,sub:y})}}import{Circle as ah}from"konva/lib/shapes/Circle";import{Line as lh}from"konva/lib/shapes/Line";import{Rect as ch}from"konva/lib/shapes/Rect";import{Text as dh}from"konva/lib/shapes/Text";function xe(t,e){return e.length===0?!!t.accessible:!!t.accessibility?.some(i=>e.includes(i))}function Te(t,e){return xe(t,e)?"match":t.accessibility?.includes("companion")?"companion":"other"}var Rs=.35,As=.7,ze="#0b1220",nt="#ffffff",Es="#0b1220",Fs="#232c40",_s="#8b93a7";function yo(t,e,i="normal"){let o=t?"bold":i;return e?`italic ${o}`.trim():o}var bo="#f7f8fb";import{Shape as ih}from"konva/lib/Shape";import{Circle as oh}from"konva/lib/shapes/Circle";import{Rect as nh}from"konva/lib/shapes/Rect";var th={M:2,L:2,Q:4,C:6,Z:0},So=new Map;function vo(t){let e=So.get(t);if(e)return e;let i=jt(t);if(!i)return So.set(t,[]),[];let o=i.match(/[MLQCZ]|-?(?:\d+(?:\.\d+)?|\.\d+)/g)??[],n=[],r=0;for(;r<o.length;){let s=o[r++],l=th[s];if(l===void 0||r+l>o.length)throw new Error(`Invalid path data for seat glyph "${t}".`);let a=o.slice(r,r+l).map(Number);if(a.some(c=>!Number.isFinite(c)))throw new Error(`Invalid coordinate in seat glyph "${t}".`);r+=l,s==="M"||s==="L"?n.push({command:s,points:a}):s==="Q"?n.push({command:s,points:a}):s==="C"?n.push({command:s,points:a}):n.push({command:"Z",points:[]})}return So.set(t,n),n}function Bs(t,e,i,o=0,n=0){let r=vo(e),s=Rn(e).bounds;if(!r.length||!s||!(i>0))return!1;let l=An(s,i);t.save(),t.translate(o,n),t.scale(l.scale,l.scale),t.translate(-l.centreX,-l.centreY);for(let a of r)a.command==="M"?t.moveTo(a.points[0],a.points[1]):a.command==="L"?t.lineTo(a.points[0],a.points[1]):a.command==="Q"?t.quadraticCurveTo(a.points[0],a.points[1],a.points[2],a.points[3]):a.command==="C"?t.bezierCurveTo(a.points[0],a.points[1],a.points[2],a.points[3],a.points[4],a.points[5]):t.closePath();return t.restore(),!0}function Os(t,e){t.beginPath(),t.arc(0,0,e,0,Math.PI*2,!1),t.closePath()}var xt=class extends ih{_sceneFunc(e){let i=this.attrs.seatRadius||1,o=this.attrs.seatGlyph,n=vo(o),r=this.attrs.seatGlyphDetail,s;if(r===void 0){let l=this.getAbsoluteScale(),a=Math.max(Math.abs(l.x),Math.abs(l.y)),c=Number.isFinite(a)&&a>0?a:1;s=i*2*c>=16}else s=r;if(!n.length||!s){Os(e,i),e.fillStrokeShape(this);return}e.beginPath(),Bs(e,o,i),e.fillStrokeShape(this)}_hitFunc(e){Os(e,this.attrs.seatRadius||1),e.fillStrokeShape(this)}getSelfRect(){let e=this.attrs.seatRadius||1;return{x:-e,y:-e,width:e*2,height:e*2}}};function rh(t,e){return t==="circle"||!jt(t)?null:new xt({x:e.x,y:e.y,seatRadius:e.radius,seatGlyph:t,...e.detail===void 0?{}:{seatGlyphDetail:e.detail},...e.fill?{fill:e.fill}:{},perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0})}function Ds(t){let{x:e,y:i,radius:o}=t;return t.wheelchairBay?new nh({x:e,y:i,width:o*2,height:o*2,offsetX:o,offsetY:o,cornerRadius:2,...t.fill?{fill:t.fill}:{},perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}):rh(t.glyph,{x:e,y:i,radius:o,detail:t.detail,fill:t.fill})??new oh({x:e,y:i,radius:o,...t.fill?{fill:t.fill}:{},perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0})}function sh(t,e){return t*2*e>=16}function Hs(t,e,i,o){let n=sh(e,i);if(n===o||!t.length)return n;for(let r of t)r.setAttr("seatGlyphDetail",n);return n}function Ns(t){let e=[...t.seats].sort((i,o)=>(t.perspectiveSeatDepth.get(o.id)??0)-(t.perspectiveSeatDepth.get(i.id)??0));for(let i of e){if(i.kind==="booth"){hh(t,i);continue}let o=t.seatContainer(i.id),n=Ds({x:i.x,y:i.y,radius:t.seatR,detail:t.seatGlyphDetail,glyph:En(i.glyph,t.catByKey.get(i.categoryKey)),wheelchairBay:i.wheelchairSpaceType==="no-seat"});if(n instanceof xt&&t.glyphMarkers.push(n),n.setAttr("seatId",i.id),t.circleById.set(i.id,n),t.paintSeat(n,i.id),o.add(n),i.accessible){if(i.wheelchairSpaceType!=="no-seat"){let r=new ah({x:i.x,y:i.y,radius:t.seatR+1.5,stroke:Ht(i.accessibility),strokeWidth:2.5,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});t.accessRingById.set(i.id,r),o.add(r)}if(i.accessibility?.includes("wheelchair")&&Ut(i.accessibility)){let r=t.buildAccessGlyph(i,typeof n.fill()=="string"?n.fill():"");t.accessGlyphById.set(i.id,r),o.add(r)}}}}function hh(t,e){let i=t.seatContainer(e.id),o=t.boothDims.get(e.rowId)??{width:40,height:30,rotation:0},n=e.x,r=e.y,s;o.points&&o.points.length>=3?(s=new lh({x:e.x,y:e.y,points:o.points.flatMap(a=>[a.x,a.y]),closed:!0,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}),n=e.x+o.points.reduce((a,c)=>a+c.x,0)/o.points.length,r=e.y+o.points.reduce((a,c)=>a+c.y,0)/o.points.length):s=new ch({x:e.x,y:e.y,width:o.width,height:o.height,offsetX:o.width/2,offsetY:o.height/2,rotation:o.rotation,cornerRadius:4,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}),s.setAttr("seatId",e.id),t.circleById.set(e.id,s),i.add(s);let l=new dh({x:n,y:r,text:e.displayLabel??e.label,fontSize:De,fontStyle:"600",fontFamily:t.labelFont(),fill:t.theme.seatLabelColor??ze,listening:!1,perfectDrawEnabled:!1});l.offsetX(l.width()/2),l.offsetY(l.height()/2),l.visible(!1),t.setHasBoothText(),t.boothLabelById.set(e.id,l),i.add(l),t.paintSeat(s,e.id)}function Gs(t,e,i,o){let n=null,r=1/0,s=t.stage.scaleX()||1;for(let l of t.seats){if(!o?.includeUnavailable&&!t.selection.has(l.id)&&!t.isSelectable(l.id))continue;let a=t.worldToScreen(l),c=t.viewMode==="perspective"?t.perspectiveSeatScale.get(l.id)??1:1,d=t.seatR*s*c+i,h=Math.hypot(a.x-e.x,a.y-e.y);h<=d&&h<r&&(r=h,n=l.id)}return n}function Ws(t){if(!t.objectFloor.size)return null;let e=t.stage.getPointerPosition();if(!e)return null;let i=t.screenToWorld(e),o=null,n=1/0;for(let r of t.seats){let s=t.renderedSeatPoint(r),l=s.x-i.x,a=s.y-i.y,c=l*l+a*a;c<n&&(n=c,o=r.rowId)}return o?t.objectFloor.get(o)??null:null}import{Circle as Ah}from"konva/lib/shapes/Circle";import{Group as la}from"konva/lib/Group";import{Rect as Eh}from"konva/lib/shapes/Rect";import{Text as Fh}from"konva/lib/shapes/Text";var Pe=1.12;function rt(t,e,i,o){if(e.width<=0||e.height<=0)return t.scaleX();let n=o??{x:0,y:0,width:t.width(),height:t.height()},r=Math.min(n.width/(e.width*Pe),n.height/(e.height*Pe));return N(r,i.min,i.max)}var Tt=.55;function Pt(t,e){return e==null?t.max:Math.max(t.min,Math.min(t.max,e))}function wo(t){let{stage:e,box:i,bounds:o,viewport:n,centreScreen:r}=t,s=t.ratio??wt,l=e.scaleX(),a=rt(e,i,o,n)/Math.max(l,1e-4);if(a>=s||a<=1/s)return!1;let c=r.x-(n.x+n.width/2),d=r.y-(n.y+n.height/2);return Math.hypot(c,d)<=Math.min(n.width,n.height)*.02}function Vs(t,e,i,o){let n=N(e,o.min,o.max),r=t.scaleX();if(n===r)return!1;let s=(i.x-t.x())/r,l=(i.y-t.y())/r;return t.scale({x:n,y:n}),t.position({x:i.x-s*n,y:i.y-l*n}),!0}function Ks(t,e,i,o,n,r){let s=n??{x:0,y:0,width:t.width(),height:t.height()},l=Math.min(s.width/(e.width*Pe),s.height/(e.height*Pe)),a=o??i.min,c=N(Math.max(l,a),i.min,Math.max(a,Pt(i,r)));t.scale({x:c,y:c}),t.position({x:s.x+s.width/2-(e.x+e.width/2)*c,y:s.y+s.height/2-(e.y+e.height/2)*c})}function zs(t,e){return t===null||e===null?t===e:t.size===e.size&&[...t].every(i=>e.has(i))}function ko(t,e){let i=null;for(let o of t){let n=e.get(o)?.logicalId;if(!n||i!=null&&i!==n)return null;i=n}return i}function Xs(t,e){if(!e?.size)return!1;for(let i of t)if(e.has(i))return!1;return!0}var uh=11;function ph(t){let e=_e(uh,t),i=ni(t),o=[];for(let n=Math.round(e);n>=i;n-=1)o.push(n);return o.length?o:[i]}var fh=4,mh=2;function gh(t){let e=t.trim();if(!e)return null;let i=e.match(/\d+/g);if(i?.length){let o=i[0];for(let n of i)n.length>=o.length&&(o=n);return o}return e.length<=4?e:null}function Ys(t,e,i){let o=t.numberLabel,n=gh(t.label);if(!n)return o.visible(!1),!1;o.text()!==n&&o.text(n),o.visible(!0),o.rotation(0);let r=fh/e;for(let s of ph(i)){o.fontSize(s/e),o.offsetX(o.width()/2),o.offsetY(o.height()/2);for(let l of[t.centroid,...t.labelAnchors])if(o.position(l),it(l,o.width()+r,o.height()+r,0,t.outline,t.holes))return!0}return o.position(t.centroid),!1}function yh(t,e,i){let o=i({x:t.x(),y:t.y()}),n=t.width()*e,r=t.height()*e;return{x:o.x-n/2,y:o.y-r/2,w:n,h:r}}function bh(t,e,i){return t.x<e.x+e.w+i&&e.x<t.x+t.w+i&&t.y<e.y+e.h+i&&e.y<t.y+t.h+i}function Us(t,e,i,o){let n=[];for(let r of e){if(r.label.opacity()<=.05)continue;let s=r.back.getAbsolutePosition(),l=r.back.width()*i,a=r.back.height()*i;n.push({x:s.x-l/2,y:s.y-a/2,w:l,h:a})}if(n.length)for(let r of t){if(r.numberLabel.opacity()<=.05)continue;let s=yh(r.numberLabel,i,o);for(let l of n)if(bh(s,l,mh)){r.numberLabel.opacity(0);break}}}function $s(t){let e=new Map;for(let i of t){if(i.numberLabel.opacity()<=.05)continue;let o=e.get(i.logicalId);o?o.push(i):e.set(i.logicalId,[i])}for(let i of e.values()){if(i.length<2)continue;let o=i[0];for(let n of i)n.labelArea>o.labelArea&&(o=n);for(let n of i)n!==o&&n.numberLabel.opacity(0)}}function Qs(t,e){let i=t.sectionHeat.get(e.id)??t.sectionHeat.get(e.logicalId)??(e.zone?t.sectionHeat.get(e.zone):void 0);if(i==null||i<=0){e.outlinePoly.stroke(B(e.outlineTint,.5)),e.outlinePoly.fill(B(e.outlineTint,.08)),e.outlinePoly.strokeWidth(1.75),e.outlinePoly.shadowOpacity(0);return}let o=Q("#f4b740","#ef4444",i);e.outlinePoly.stroke(B(o,.72+i*.25)),e.outlinePoly.fill(B(o,.08+i*.13)),e.outlinePoly.strokeWidth(2+i*3.5),e.outlinePoly.shadowColor(o),e.outlinePoly.shadowBlur(4+i*12),e.outlinePoly.shadowOpacity(.25+i*.45)}function Co(t,e){return t.closedSections.has(e.id)||t.closedSections.has(e.logicalId)||e.zone!=null&&t.closedSections.has(e.zone)}function Js(t,e,i,o){if(!e)return 0;let n=0;for(let r of t){if(i(r)!=="free")continue;let s=o(r);s&&xe(s,e)&&(n+=1)}return n}function ea(t,e){return Co(t,e)?"closed":e.total<=0?"normal":e.free<=0?"sold-out":e.free<=e.total*Tr?"nearly-gone":"normal"}function ta(t,e){let i=ea(t,e),o=t.accessFilterActive&&t.sectionAccessibleFree(e)<=0,n=Br(t.canvasBackground,i,o?null:e.shellCategoryColor);e.shellFill=n.fill,e.shellStroke=n.stroke,e.blockPoly.fill(n.fill),e.blockPoly.stroke(n.stroke),e.subLabel.text(i==="sold-out"?_("map.soldOut"):_("map.seatsLeft",{count:e.free})),e.subLabel.offsetX(e.subLabel.width()/2)}function xo(t,e){return Q(e,D(t)?"#ffffff":"#000000",Cr)}function To(t,e,i=0){let o=Lr-i;return!e||t.length<=o?t:`${t.slice(0,Math.max(1,o-1)).trimEnd()}\u2026`}function Sh(t,e){return ia(t,e)!=null}function ia(t,e){if(!t.accessFilterActive)return null;let i=t.sectionAccessibleFree(e);return i>0?`\u267F ${i}`:null}function oa(t,e,i){let o=To(t.label,e,i?i.length+1:0);return i?[`${i} ${o}`,i]:[o]}function vh(t,e,i){let o=oa(t,e,i),n=(t.nameLabelBadgeOnly?o[1]:o[0])??o[0];t.nameLabel.text()!==n&&t.nameLabel.text(n),t.nameLabel.fontStyle(e?ai:Fe),t.nameLabel.letterSpacing(e?t.nameLabel.fontSize()*We:0)}function wh(t,e,i){let o=t.stageWidth<he,n=e.nameLabel.opacity();if(!o||n<=.05||!e.nameLabel.visible()){e.namePlate.opacity(0),e.subLabel.opacity(0);return}let r=e.nameLabel.rotation(),s=r===0&&ea(t,e)==="sold-out",l=vt/i,a=ci/i,c=s?2/i:0,d={x:e.nameLabel.x(),y:e.nameLabel.y()},h=e.nameLabel.height(),p=0;s?(Be(e.subLabel,me/i,d.y),p=e.subLabel.height(),e.subLabel.rotation(0),e.subLabel.x(d.x),e.subLabel.y(d.y+h/2+c+p/2),e.subLabel.opacity(n)):e.subLabel.opacity(0);let m=s?c+p:0,f=Math.max(e.nameLabel.width(),s?e.subLabel.width():0)+l*2,y=h+m+a*2;e.namePlate.position({x:d.x,y:d.y+m/2}),e.namePlate.rotation(r),e.namePlate.size({width:f,height:y}),e.namePlate.offset({x:f/2,y:y/2}),e.namePlate.cornerRadius(xr/i),e.namePlate.opacity(n*li)}function na(t,e){let i,o;t.reducedMotion?(i=e<=ke?1:0,o=e<=Ne?1:0):(i=N((Le-e)/(Le-ke),0,1),o=N((ke-e)/(ke-Ne),0,1)),(t.floorOverview||t.focusedSectionId)&&(i=0,o=0);let n=!t.floorOverview&&!t.focusedSectionId&&e<de;n&&(i=1),t.zones.length||(o=0);let r=t.viewMode==="perspective"&&t.glideInProgress&&t.seatCount>2500;t.seatLayer.opacity(n||r?0:1-i);let s=t.stageScaleX,l=!t.glideInProgress&&(t.lodScale===0||Math.abs(e-t.lodScale)/(t.lodScale||1)>.08);l&&t.setLodScale(e);let a=t.focusedSectionId,c=t.stageWidth<he,d=oe(t.canvasBackground),h=N((i-.2)/.8,0,1),p=new Set;for(let f of t.sections){let y=t.hasFocusDimOverlay?1:a&&f.id!==a&&f.logicalId!==a&&f.zone!==a?Ce:1,u=ia(t,f);u&&f.zone&&p.add(f.zone);let g=Math.min(y,Xs(f.memberCategoryKeys,t.categoryFilter)?Ce:1,t.accessFilterActive&&!u?Ce:1);f.outlinePoly.opacity(n?0:(1-i)*g),f.blockPoly.opacity(lr*i*g);let S=t.sectionIsOwned(f);f.blockPoly.stroke(S?t.selectionColor:f.shellStroke||d.sectionStroke),f.blockPoly.strokeWidth((S?cr:Ge)/Math.max(s,1e-4));let b=f.blockPoly.fill(),v=typeof b=="string"?b:f.baseFill,k=c?xo(t.canvasBackground,v):null;k&&f.namePlate.fill(k);let w=fe(k??v,f.explicitInk,f.preferredInk);f.nameLabel.fill(w),f.subLabel.fill(w),vh(f,c,u),l&&h>.01&&Ch(t,f,s,oa(f,c,u));let C=u?1:1-o;f.nameLabel.opacity(f.nameLabelFits?h*C*g:0),f.subLabel.opacity(0),l&&(f.numberLabelFits=o>.01&&Ys(f,s,t.stageWidth)),f.numberLabelFits&&f.numberLabel.fill(fe(v,f.explicitInk,f.preferredInk)),f.numberLabel.opacity(f.numberLabelFits?o*g:0)}let m=o*(1-t.isoT);for(let f of t.zones){let y=t.accessFilterActive&&!p.has(f.id)?Ce:1,u=f.label.visible()?m*y:0;f.back.opacity(u),f.label.opacity(u),f.sub&&f.sub.opacity(qs(t,f)?0:u),l&&xh(t,f,s)}if(!t.glideInProgress&&(h>.01||m>.01)){Lh(t,s),kh(t.sections);for(let f of t.zones){let y=f.label.opacity();f.back.opacity(y),f.sub&&f.sub.opacity(qs(t,f)?0:y)}}m>.01&&(Us(t.sections,t.zones,s,t.worldToScreen),$s(t.sections));for(let f of t.sections)wh(t,f,s);t.bgLayer.batchDraw()}function qs(t,e){return t.stageWidth<he||!e.sub||!e.sub.visible()}function kh(t){let e=new Map;for(let i of t)(e.get(i.logicalId)??e.set(i.logicalId,[]).get(i.logicalId)).push(i);for(let i of e.values()){if(i.length<2)continue;let o=i.filter(n=>n.nameLabel.opacity()>.05).sort((n,r)=>{let s=z(n.outline),l=z(r.outline);return l.width*l.height-s.width*s.height});for(let n of o.slice(1))n.nameLabel.opacity(0)}}function Lh(t,e){let o=[],n=a=>{let c=t.worldToScreen({x:a.x(),y:a.y()}),d=z(tt({x:0,y:0},a.width()*e,a.height()*e,a.rotation()));return{x:c.x-d.width/2,y:c.y-d.height/2,w:d.width,h:d.height}};for(let a of t.zones){if(a.label.opacity()<=.05)continue;let c=a.back.getAbsolutePosition(),d=a.back.width()*e,h=a.back.height()*e;o.push({node:a.label,tier:0,section:!1,zone:a,box:{x:c.x-d/2,y:c.y-h/2,w:d,h}})}for(let a of t.sections)if(a.nameLabel.opacity()>.05){let c=Sh(t,a)?-1:1;o.push({node:a.nameLabel,tier:c,section:!0,area:a.labelArea,box:n(a.nameLabel)})}let r=t.landmarks.map(a=>{let c=t.worldToScreen({x:a.x,y:a.y}),d=t.worldToScreen({x:a.x+a.width,y:a.y+a.height});return{x:Math.min(c.x,d.x),y:Math.min(c.y,d.y),w:Math.abs(d.x-c.x),h:Math.abs(d.y-c.y)}});if(o.length<2&&!r.length)return;o.sort((a,c)=>a.tier-c.tier||(c.area??0)-(a.area??0)||a.box.y-c.box.y||a.box.x-c.box.x);let s=[...r],l=a=>s.some(c=>a.x<c.x+c.w+4&&c.x<a.x+a.w+4&&a.y<c.y+c.h+4&&c.y<a.y+a.h+4);for(let a of o){if(!l(a.box)){s.push(a.box);continue}let c=!1;if(a.zone)for(let d of wr){if(d===0)continue;let h={...a.box,y:a.box.y+d};if(!l(h)){Lo(a.zone,0,d/e),s.push(h),c=!0;break}}if(a.section){let d=a.node.fontSize(),h=a.node.y(),p=a.node.letterSpacing()>0;for(let m of eo){let f=d*m;if(f*e<me)break;Be(a.node,f,h),p&&(a.node.letterSpacing(a.node.fontSize()*We),a.node.offsetX(a.node.width()/2));let y=n(a.node);if(!l(y)){s.push(y),c=!0;break}}c||(Be(a.node,d,h),p&&(a.node.letterSpacing(a.node.fontSize()*We),a.node.offsetX(a.node.width()/2)))}c||a.node.opacity(0)}}function Be(t,e,i){t.fontSize(Math.max(1,e)),t.offsetX(t.width()/2),t.offsetY(t.height()/2),t.y(i)}function Ch(t,e,i,o){e.subLabelFits=!1;let n=t.stageWidth<he,r=n?vt*2:0,s=_e(Qe*e.labelScale,t.stageWidth),l=me;for(let[a,c]of o.entries()){e.nameLabel.text(c);for(let d=s;d>=l;d-=1)for(let h of[0,-90]){e.nameLabel.rotation(h),Be(e.nameLabel,d/i,e.nameLabel.y()),n&&(e.nameLabel.letterSpacing(e.nameLabel.fontSize()*We),e.nameLabel.offsetX(e.nameLabel.width()/2));for(let p of e.labelAnchors){e.nameLabel.position(p);let m=(8+r)/i;if(it(p,e.nameLabel.width()+m,e.nameLabel.height()+m,h,e.outline,e.holes)){e.nameLabelFits=!0,e.nameLabelBadgeOnly=a>0;return}}}}e.nameLabel.text(o[0]),e.nameLabelBadgeOnly=!1,e.nameLabel.position(e.centroid),e.nameLabel.rotation(0),e.nameLabelFits=!1}function Zs(t,e,i){let o=n=>(t.text(n),t.width());if(!(o(e)<=i)){for(let n=e.length-1;n>=1;n-=1)if(o(`${e.slice(0,n).trimEnd()}\u2026`)<=i)return;o("\u2026")}}function xh(t,e,i){let o=to(t.stageWidth),n=t.stageWidth<he,r=e.sub!=null&&!n,s=(n?pr:mr)*o/i,l=(n?fr:gr)*o/i,a=_e(ri,t.stageWidth);e.label.text(e.name),Be(e.label,a/i,e.anchor.y),r&&(Be(e.sub,_e(si,t.stageWidth)/i,e.anchor.y),e.sub.letterSpacing(e.sub.fontSize()*dr),e.sub.offsetX(e.sub.width()/2));let c=n?t.stageWidth*Sr/i-s*2:1/0,d=!n&&e.spanWorld>0?e.spanWorld*vr-s*2:1/0,h=Math.min(c,d),p=()=>Math.max(e.label.width(),r?e.sub.width():0);if(r&&p()>h&&(r=!1),p()>h)for(let C of eo){let P=Math.max(me,a*C);if(P>=e.label.fontSize()*i-.001||(Be(e.label,P/i,e.anchor.y),e.label.width()<=h))break}if(e.label.width()>h&&(Zs(e.label,e.name,Math.max(h,1)),Th(e.label.text())<Ph(e.name)&&Zs(e.label,e.name,Math.max(c,1)),Be(e.label,e.label.fontSize(),e.anchor.y)),e.sub&&e.sub.visible(r),c<=0||e.label.width()>c+.001){js(e);return}e.label.visible(!0),e.back.visible(!0);let m=r?3*o/i:0;e.label.x(e.anchor.x),r?e.sub.x(e.anchor.x):e.sub&&e.sub.opacity(0);let f=Math.max(e.label.width(),r?e.sub.width():0)+s*2,y=e.label.height()+(r?m+e.sub.height():0)+l*2;e.label.y(e.anchor.y-(r?(m+e.sub.height())/2:0)),r&&e.sub.y(e.anchor.y+(e.label.height()+m)/2),e.back.position(e.anchor),e.back.size({width:f,height:y}),e.back.offset({x:f/2,y:y/2}),e.back.cornerRadius(yr*o/i),e.back.strokeWidth(1/i);let u=e.back.getAbsolutePosition(),g=6,S=f*i;if(S>t.stageWidth-g*2){js(e);return}let b=S/2,k=(N(u.x,g+b,t.stageWidth-g-b)-u.x)/i;Math.abs(k)>.001&&Lo(e,k,0);let w=62+y*i/2;u.y<w&&Lo(e,0,(w-u.y)/i)}function Th(t){return t.endsWith("\u2026")?t.slice(0,-1).trimEnd().length:t.length}function Ph(t){return Math.min(t.length,Math.max(6,Math.ceil(t.length/2)))}function js(t){t.label.visible(!1),t.label.opacity(0),t.back.visible(!1),t.back.opacity(0),t.sub&&(t.sub.visible(!1),t.sub.opacity(0))}function Lo(t,e,i){t.label.x(t.label.x()+e),t.label.y(t.label.y()+i),t.sub&&(t.sub.x(t.sub.x()+e),t.sub.y(t.sub.y()+i)),t.back.x(t.back.x()+e),t.back.y(t.back.y()+i)}function Ih(t,e){if(!t.length)return null;let i=1/0,o=1/0,n=-1/0,r=-1/0;for(let s of t)!Number.isFinite(s.x)||!Number.isFinite(s.y)||(s.x<i&&(i=s.x),s.y<o&&(o=s.y),s.x>n&&(n=s.x),s.y>r&&(r=s.y));return!Number.isFinite(i)||!Number.isFinite(o)?null:{x:i-e,y:o-e,width:n-i+e*2,height:r-o+e*2}}function Mo(t,e=0){let i=new Map;for(let n of t){let r=`${n.rowId}|${n.categoryKey}`,s=i.get(r);s||(s={categoryKey:n.categoryKey,points:[]},i.set(r,s)),s.points.push({x:n.x,y:n.y})}let o=[];for(let[n,r]of i){let s=Ih(r.points,e);s&&o.push({id:n,categoryKey:r.categoryKey,seatCount:r.points.length,bounds:s})}return o}function Po(t,e){let i=Math.max(0,Math.max(t.x-(e.x+e.width),e.x-(t.x+t.width))),o=Math.max(0,Math.max(t.y-(e.y+e.height),e.y-(t.y+t.height)));return Math.hypot(i,o)}function Io(t,e){let i=Math.min(t.x,e.x),o=Math.min(t.y,e.y);return{x:i,y:o,width:Math.max(t.x+t.width,e.x+e.width)-i,height:Math.max(t.y+t.height,e.y+e.height)-o}}function ra(t){if(!t.length)return 0;let e=[...t].sort((o,n)=>o-n),i=Math.floor(e.length/2);return e.length%2?e[i]:(e[i-1]+e[i])/2}function Mh(t){if(!t.length)return 0;let e=ra(t.map(o=>Math.min(o.bounds.width,o.bounds.height)));if(t.length<2)return e;let i=[];for(let o=0;o<t.length;o+=1){let n=1/0;for(let r=0;r<t.length;r+=1)o!==r&&(n=Math.min(n,Po(t[o].bounds,t[r].bounds)));Number.isFinite(n)&&i.push(n)}return ra(i)+e}function Ro(t,e){if(!t.length)return[];let i=Mh(t)*(e?.gapRows??2),o=e?.minRows??2,n=e?.minSeats??12,r=new Map;for(let l of t){let a=r.get(l.categoryKey);a?a.push(l):r.set(l.categoryKey,[l])}let s=[];for(let[l,a]of r){let c=[...a].sort((p,m)=>p.bounds.y-m.bounds.y||p.bounds.x-m.bounds.x||p.id.localeCompare(m.id)),d=[];for(let p of c){let m=d.find(f=>Po(f.bounds,p.bounds)<=i);m?(m.bounds=Io(m.bounds,p.bounds),m.rowIds.push(p.id),m.seatCount+=p.seatCount):d.push({categoryKey:l,bounds:{...p.bounds},rowIds:[p.id],seatCount:p.seatCount})}let h=!0;for(;h&&d.length>1;){h=!1;e:for(let p=0;p<d.length;p+=1)for(let m=p+1;m<d.length;m+=1)if(!(Po(d[p].bounds,d[m].bounds)>i)){d[p].bounds=Io(d[p].bounds,d[m].bounds),d[p].rowIds.push(...d[m].rowIds),d[p].seatCount+=d[m].seatCount,d.splice(m,1),h=!0;break e}}for(let p of d)p.rowIds.length<o&&p.seatCount<n||(p.rowIds.sort(),s.push(p))}return s.sort((l,a)=>l.bounds.y-a.bounds.y||l.bounds.x-a.bounds.x||l.categoryKey.localeCompare(a.categoryKey)),s}function sa(t){let e=null;for(let i of t)e=e?Io(e,i.bounds):{...i.bounds};return e}function aa(t,e){let i=null,o=1/0;for(let n of t){let{x:r,y:s,width:l,height:a}=n.bounds;if(e.x<r||e.x>r+l||e.y<s||e.y>s+a)continue;let c=l*a;c<o&&(i=n,o=c)}return i}function da(t){return t*.3}function ca(t){return da(t)*2+t*.42}var Li=class{constructor(e){this.host=e;this.group=null;this.labels=[];this.revealed=!1;this.visible=!1;this.fadeRaf=0;this.lastFontKey=""}get all(){return this.labels.map(e=>e.cluster)}clear(){this.fadeRaf&&(cancelAnimationFrame(this.fadeRaf),this.fadeRaf=0),this.group?.destroy(),this.group=null,this.labels=[],this.visible=!1,this.revealed=!1,this.lastFontKey=""}destroy(){this.clear()}rebuild(){if(this.clear(),this.syncCursor(!1),this.host.hasSections()||this.host.exportMode)return;let e=Ro(Mo(this.host.seats(),this.host.seatR()));if(!e.length)return;let i=this.host.canvasBackground(),o=oe(i),n=xo(i,i),r=q(n,o.sectionInk),s=new la({listening:!1,opacity:0,visible:!1});for(let l of e){let a=this.host.categoryLabel(l.categoryKey);if(!a)continue;let c={x:l.bounds.x+l.bounds.width/2,y:l.bounds.y+l.bounds.height/2},d=new la({listening:!1}),h=new Eh({...c,width:0,height:0,fill:n,stroke:o.sectionStroke,strokeWidth:Ge,opacity:li,listening:!1,perfectDrawEnabled:!1}),p=new Ah({...c,radius:0,fill:this.host.categoryColor(l.categoryKey),listening:!1,perfectDrawEnabled:!1}),m=this.host.categoryPriceLabel(l.categoryKey),f=new Fh({...c,text:a,fontSize:Qe,fontStyle:Fe,fontFamily:this.host.labelFont(),fill:r,listening:!1,perfectDrawEnabled:!1});d.add(h),d.add(p),d.add(f),s.add(d),this.labels.push({cluster:l,pill:d,plate:h,swatch:p,text:f,label:a,price:m})}if(!this.labels.length){s.destroy();return}this.group=s,this.host.labelLayer.add(s)}syncForCamera(e){if(!this.group||!this.labels.length)return!1;let i=this.host.seatR()*2,o=this.host.exportMode||this.host.viewMode()!=="flat"||this.host.seatsPickable()&&e<se;return this.revealed=o||jn(Qi(i,e),Qi(i,se),this.revealed),!this.revealed&&this.size(this.host.stage.scaleX(),this.host.stage.width())&&this.host.labelLayer.batchDraw(),this.applyFilterDim(),this.applyVisibility(!this.revealed),!0}focusCluster(e){if(this.host.viewMode()!=="flat"||this.host.hasSections()||this.host.seatsPickable())return!1;let i=this.clusterAt(this.host.screenToWorld(e));if(!i)return!1;let o=this.host.seatR()*2,n={x:i.bounds.x-o,y:i.bounds.y-o,width:i.bounds.width+o*2,height:i.bounds.height+o*2},r=this.host.stage;if(rt(r,n,this.host.zoomBounds(),this.host.framingViewport())<=r.scaleX()*wt)return!1;let l=this.diveTarget(n);return l?(this.host.focusRegion(l,{durationMs:this.host.cameraGlideMs()}),!0):!1}diveTarget(e,i){let o=this.host.stage,n=this.host.framingViewport(),r=this.host.zoomBounds(),s=rt(o,e,r,n),l=Math.min(Math.max(this.host.readableScale(),this.host.pickableScale()),r.max);if(s>=l)return e;let a=n.width/(l*Pe),c=n.height/(l*Pe);if(!(a>0)||!(c>0))return null;let d=i??{x:e.x+e.width/2,y:e.y+e.height/2};return{x:d.x-a/2,y:d.y-c/2,width:a,height:c}}glideTowardTap(e){if(this.host.viewMode()!=="flat")return!1;let i=this.host.stage.scaleX(),o=Ir(i,this.host.pickableScale());if(o==null||o<=i*wt)return!1;let n=this.host.screenToWorld(e),r=this.host.framingViewport(),s=r.width/(o*Pe),l=r.height/(o*Pe);return!(s>0)||!(l>0)?!1:(this.host.focusRegion({x:n.x-s/2,y:n.y-l/2,width:s,height:l}),!0)}syncCursor(e){if(this.host.exportMode)return;let i=this.host.viewMode()==="flat"&&!this.host.seatsPickable()?"zoom-in":e?"pointer":"default";for(let o of[this.host.stage.container(),this.host.stage.content])o&&o.style.cursor!==i&&(o.style.cursor=i)}clusterAt(e){let i=aa(this.all,e);if(i)return i;if(!this.visible)return null;for(let o of this.labels){let n=o.plate.width()/2,r=o.plate.height()/2;if(Math.abs(e.x-o.text.x())<=n&&Math.abs(e.y-o.text.y())<=r)return o.cluster}return null}size(e,i){let o=Math.max(e,1e-4),n=i<he,r=`${o.toFixed(4)}|${i}`;if(r===this.lastFontKey)return!1;this.lastFontKey=r;let s=_e(Qe,i),l=vt/o,a=ci/o;for(let c of this.labels){let{text:d,plate:h,swatch:p,cluster:m}=c,f=To(c.label,n);d.text(c.price?`${f} \xB7 ${c.price}`:f),d.fontStyle(n?ai:Fe);let y=s,u=0;for(;d.fontSize(Math.max(1,y/o)),d.letterSpacing(d.fontSize()*We),u=ca(d.fontSize())+d.width()+l*2,!(u<=m.bounds.width||y<=me);)y=Math.max(me,y-1);let g={x:m.bounds.x+m.bounds.width/2,y:m.bounds.y+m.bounds.height/2},S=d.height()+a*2,b=u-l*2,v=g.x-b/2;p.radius(da(d.fontSize())),p.position({x:v+p.radius(),y:g.y}),d.offsetX(0),d.offsetY(d.height()/2),d.position({x:v+ca(d.fontSize()),y:g.y}),h.size({width:u,height:S}),h.offset({x:u/2,y:S/2}),h.cornerRadius(S/2),h.strokeWidth(Ge/o),h.position(g)}return!0}applyFilterDim(){if(!this.labels.length)return;let e=this.host.categoryFilter(),i=!1;for(let o of this.labels){let n=e&&!e.has(o.cluster.categoryKey)?.22:1;o.pill.opacity()!==n&&(o.pill.opacity(n),i=!0)}i&&this.host.labelLayer.batchDraw()}boundsForSeats(e,i){if(!e.length)return null;let o=Mo(e,this.host.seatR()),n=Ro(o);n.length||(n=o.map(l=>({categoryKey:l.categoryKey,bounds:l.bounds,rowIds:[l.id],seatCount:l.seatCount})));let r=sa(n);if(!r)return null;let s=n.reduce((l,a)=>a.seatCount>l.seatCount?a:l,n[0]);return{bounds:{x:r.x-i,y:r.y-i,width:r.width+i*2,height:r.height+i*2},anchor:{x:s.bounds.x+s.bounds.width/2,y:s.bounds.y+s.bounds.height/2},singleBlock:n.length===1&&e.every(l=>l.x>=r.x&&l.x<=r.x+r.width&&l.y>=r.y&&l.y<=r.y+r.height)}}applyVisibility(e){let i=this.group;if(!i||e===this.visible)return;if(this.visible=e,this.fadeRaf&&(cancelAnimationFrame(this.fadeRaf),this.fadeRaf=0),i.visible(!0),this.host.reducedMotion()){i.opacity(e?1:0),i.visible(e),this.host.labelLayer.batchDraw();return}let o=i.opacity(),n=e?1:0,r=performance.now(),s=l=>{if(this.host.destroyed()||!this.group){this.fadeRaf=0;return}let a=Math.min(1,(l-r)/90);i.opacity(o+(n-o)*a),a>=1&&i.visible(n>0),this.host.labelLayer.batchDraw(),this.fadeRaf=a<1?requestAnimationFrame(s):0};this.fadeRaf=requestAnimationFrame(s)}};import{Circle as _h}from"konva/lib/shapes/Circle";import{Line as Bh}from"konva/lib/shapes/Line";function ha(t,e,i,o){let n=t.seatRadius(),r=new _h({x:i.x,y:i.y,radius:n,stroke:o,strokeWidth:3,opacity:.9,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),s=t.viewMode()==="perspective"?t.perspectiveSeatScale(e):1;r.scale({x:s,y:s}),t.overlayLayer.add(r);let l=performance.now(),a=620,c=d=>{if(!r.getLayer())return;let h=Math.min(1,(d-l)/a);r.radius(n*(1+h*1.8)),r.opacity(.9*(1-h)),t.overlayLayer.batchDraw(),h<1?requestAnimationFrame(c):(r.destroy(),t.overlayLayer.batchDraw())};requestAnimationFrame(c)}function ua(t,e,i){for(let o of e){let n=t.viewMode()==="perspective"&&o.perspectiveAffine?o.outline.map(h=>t.perspectiveLocalPoint(t.projectedSectionPoint(o,h))):o.outline.map(h=>{let p=o.liftWorld>0?t.isoLiftLocal(o.liftWorld):{x:0,y:0};return{x:h.x+p.x,y:h.y+p.y}}),r=n.reduce((h,p)=>({x:h.x+p.x,y:h.y+p.y}),{x:0,y:0});r.x/=n.length,r.y/=n.length;let s=new Bh({x:r.x,y:r.y,points:n.flatMap(h=>[h.x-r.x,h.y-r.y]),closed:!0,stroke:i,strokeWidth:3,strokeScaleEnabled:!1,opacity:.92,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!0,shadowColor:i,shadowBlur:14,shadowOpacity:.7});t.overlayLayer.add(s),t.overlayLayer.batchDraw();let l=()=>{s.getLayer()&&(s.destroy(),t.overlayLayer.batchDraw())};if(t.reducedMotion()||typeof document<"u"&&document.hidden){setTimeout(l,520);continue}let a=performance.now(),c=820,d=h=>{if(t.isDestroyed()||!s.getLayer())return;let p=Math.min(1,(h-a)/c),f=1+(1-Math.pow(1-p,3))*.04;s.scale({x:f,y:f}),s.opacity(.92*(1-p)),t.overlayLayer.batchDraw(),p<1?requestAnimationFrame(d):l()};requestAnimationFrame(d)}}import{Group as Nh}from"konva/lib/Group";import{Shape as Gh}from"konva/lib/Shape";import{Group as Oh}from"konva/lib/Group";import{Shape as Dh}from"konva/lib/Shape";function Hh(t,e,i){let o=e.length,n={x:(e[o-1].x+e[0].x)/2,y:(e[o-1].y+e[0].y)/2};t.moveTo(n.x,n.y);for(let r=0;r<o;r+=1){let s=e[r],l=e[(r+1)%o],a=e[(r-1+o)%o],c=Math.min(Math.hypot(s.x-a.x,s.y-a.y)/2,Math.hypot(l.x-s.x,l.y-s.y)/2);t.arcTo(s.x,s.y,l.x,l.y,Math.max(0,Math.min(i,c)))}t.closePath()}function Xe(t,e,i,o){let n=mt(t)>0,r=i.cornerRadius&&i.cornerRadius>0?i.cornerRadius:0;return new Dh({...i,sceneFunc(s,l){s.beginPath();let a=d=>{if(d.length){if(r>0&&d.length>=3)return Hh(s,d,r);s.moveTo(d[0].x,d[0].y);for(let h=1;h<d.length;h+=1)s.lineTo(d[h].x,d[h].y);s.closePath()}};o?(d=>{s.moveTo(d.start.x,d.start.y);let h=d.start;for(let p of d.segments)p.kind==="line"?s.lineTo(p.end.x,p.end.y):p.kind==="arc"?s.arc(p.center.x,p.center.y,p.radius,Math.atan2(h.y-p.center.y,h.x-p.center.x),Math.atan2(p.end.y-p.center.y,p.end.x-p.center.x),!p.clockwise):s.bezierCurveTo(p.control1.x,p.control1.y,p.control2.x,p.control2.y,p.end.x,p.end.y),h=p.end;s.closePath()})(o):a(t);for(let d of e??[]){let h=mt(d)>0;a(h===n?[...d].reverse():d)}s.fillStrokeShape(l)},perfectDrawEnabled:!1})}var st=class extends Oh{constructor(){super(...arguments);this.viewportCulled=!1}setViewportCulled(i){i!==this.viewportCulled&&(this.viewportCulled=i,i||super._clearSelfAndDescendantCache())}isViewportCulled(){return this.viewportCulled}drawScene(...i){return this.viewportCulled?this:super.drawScene(...i)}drawHit(...i){return this.viewportCulled?this:super.drawHit(...i)}_clearSelfAndDescendantCache(i){if(!this.viewportCulled){super._clearSelfAndDescendantCache(i);return}this._clearCache(i)}};function pa(t,e){if(!e.length)return null;let i=new Nh({listening:!1});for(let o of e){let n=t.viewMode==="perspective"&&o.perspectiveAffine,r=n?o.outline.map(l=>t.perspectiveLocalPoint(t.projectedSectionPoint(o,l))):o.outline,s=n?o.holes.map(l=>l.map(a=>t.perspectiveLocalPoint(t.projectedSectionPoint(o,a)))):o.holes;i.add(Xe(r,s,{fill:Ar,stroke:B("#ffffff",.1),strokeWidth:1,listening:!1},n?void 0:o.outlinePath))}return t.bgLayer.add(i),i.moveToTop(),i}function fa(t,e){let{bounds:i}=t,n=Math.max(i.width,i.height,1)*4+1e3,r=[{x:i.x-n,y:i.y-n},{x:i.x+i.width+n,y:i.y-n},{x:i.x+i.width+n,y:i.y+i.height+n},{x:i.x-n,y:i.y+i.height+n}],s=new Gh({fill:t.canvasBackground,opacity:1-Ce,listening:!1,perfectDrawEnabled:!1,sceneFunc:(l,a)=>{let c=d=>{if(d.length){l.moveTo(d[0].x,d[0].y);for(let h=1;h<d.length;h++)l.lineTo(d[h].x,d[h].y);l.closePath()}};l.beginPath(),c(r);for(let d of e){let h=t.viewMode==="perspective"&&d.perspectiveAffine?d.outline.map(p=>t.perspectiveLocalPoint(t.projectedSectionPoint(d,p))):d.outline.map(p=>{let m=d.liftWorld>0?t.isoLiftLocal(d.liftWorld):{x:0,y:0};return{x:p.x+m.x,y:p.y+m.y}});c(mt(h)>0?[...h].reverse():h)}l.fillStrokeShape(a)}});return t.overlayLayer.add(s),s.moveToTop(),s}var Wh=.2,Vh=.55;function ma(t,e){return t.startsWith("#")?Q(e,t,Wh):t}function ga(t){return D(t)?"#0b1220":"#ffffff"}function Kh(t){return Q(t,ga(t),Vh)}function ya(t){return t>0?Math.min(1,t/ce):1}function ba(t){let{categoryFilter:e,status:i}=t;return!e||t.selected||i!=="free"&&!(i==="held"&&!t.ownHold)?!1:!e.has(t.categoryKey)}function Sa(t,e,i){let o=typeof t=="string"&&t.startsWith("#")?t:e;return i?Kh(o):ga(o)}var Ca=.5,X=Math.SQRT1_2,zh="#f3f4f6",va=4;function Xh(t){let e=t.fraction;return typeof e!="number"||!Number.isFinite(e)?Ca:Math.min(1,Math.max(0,e))}function Yh(t){return t==="booked"||t==="not_for_sale"?hi:di}function wa(t,e){return Number.parseInt(t.slice(e,e+2),16)}function ka(t){let e=t.trim();if(!/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(e))return null;if(e.length===7)return e.toLowerCase();let[,i,o,n]=e.toLowerCase();return`#${i}${i}${o}${o}${n}${n}`}function Uh(t,e,i){let o=ka(t),n=ka(e);if(!o||!n)return t;let r=Math.min(1,Math.max(0,i)),s="#";for(let l=1;l<7;l+=2){let a=Math.round(wa(o,l)*(1-r)+wa(n,l)*r);s+=a.toString(16).padStart(2,"0")}return s}function La(t,e,i,o){let n=i*4,r=e*X,s=-e*X,l=o*X*2*n,a=o*-X*2*n,c=r+n*X,d=s+n*X,h=r-n*X,p=s-n*X;t.beginPath(),t.moveTo(c,d),t.lineTo(h,p),t.lineTo(h+l,p+a),t.lineTo(c+l,d+a),t.closePath(),t.clip()}function $h(t,e){let i=e*4,o=Math.max(e*.45,1);t.beginPath();for(let n=-va;n<=va;n++){let r=n*o*2,s=r+o,l=r*X,a=-r*X,c=s*X,d=-s*X;t.moveTo(l+i*X,a+i*X),t.lineTo(l-i*X,a-i*X),t.lineTo(c-i*X,d-i*X),t.lineTo(c+i*X,d+i*X),t.closePath()}t.clip()}function Ci(t,e){t._sceneFunc(e)}function xa(t){let e=this,i=e.attrs,o=i.markRadius||1,n=i.fill,r=e.getStage(),s=Math.abs((r?r.scaleX():1)*(e.scaleX()||1))||1;if(o*2*s<16){i.fill=i.markMidtone??n,Ci(e,t),i.fill=n;return}let a=(1-2*(i.markFraction??Ca))*o;t.save(),La(t,a,o,1),i.fill=i.markBase??n,Ci(e,t),t.restore(),t.save(),La(t,a,o,-1),i.fill=i.markFill??n,Ci(e,t),i.markHatch&&($h(t,o),i.fill=zh,Ci(e,t)),t.restore(),i.fill=n}function qh(t,e,i,o,n,r){let s=Xh(e),l=Yh(i),a=t.attrs;a.markFraction=s,a.markBase=o,a.markFill=l,a.markMidtone=Uh(o,l,1-s),a.markHatch=r,a.markRadius=n>0?n:1,t.fill(a.markMidtone),t.stroke(""),t.strokeWidth(0),t.dash([]),t.opacity(1),t.sceneFunc(xa)}function Zh(t){t.setAttr("sceneFunc",void 0)}function Ao(t){return t.attrs.sceneFunc===xa}var xi=class{constructor(){this.marks=new Map}get size(){return this.marks.size}get(e){return this.marks.get(e)??null}has(e){return this.marks.has(e)}clear(){this.marks.clear()}merge(e,i){let o=new Set;for(let[n,r]of Object.entries(e))i.has(n)&&(r&&r.kind==="partial"?(this.marks.set(n,r),o.add(n)):this.marks.delete(n)&&o.add(n));return o}paint(e,i,o,n,r,s,l){let a=l?void 0:this.marks.get(i);if(!a){Ao(e)&&Zh(e);return}qh(e,a,o,n,r,s)}};var Ta=.85,jh=1,Qh=.7,Jh=.8,Pa="rgba(0,0,0,0)",eu=[2,2],tu=1,Eo=.6;function Ia(t){return D(t)?"#334155":"#e2e8f0"}function Ma(t,e,i){return t==="held"?{fill:di,stroke:Ia(e),strokeWidth:tu,dash:[...eu],opacity:1,scale:1}:t==="booked"||t==="not_for_sale"?i?{fill:Pa,stroke:hi,strokeWidth:1.5,dash:[],opacity:.9,scale:Ta}:{fill:Pa,stroke:Ia(e),strokeWidth:jh,dash:[],opacity:t==="booked"?Qh:Jh,scale:Ta}:null}function Ra(t){let{focusedId:e}=t;if(!e)return null;let i=new Set([e]),o=t.sectionOf(e);if(o!=null){for(let c of t.seats){let d=t.seatId(c);t.sectionOf(d)===o&&i.add(d)}return i}let n=t.seats.find(c=>t.seatId(c)===e);if(!n)return i;let r=t.seatPoint(n),s=t.seatPitch>0?t.seatPitch:t.seatRadius*2,l=6*(s>0?s:1),a=l*l;for(let c of t.seats){let d=t.seatPoint(c),h=d.x-r.x,p=d.y-r.y;h*h+p*p<=a&&i.add(t.seatId(c))}return i}function Aa(t,e,i){let o=i(t);return o!=null&&o===i(e)}var Ti=Object.freeze([]);function Ea(t,e,i){let o=t.seat(i),n=t.seatStatus(i),r=t.isSelected(i),s=t.categoryColor(o.categoryKey),l=t.boothLabel(i),a=t.canvasBackground(),c=t.selectionColor();e.dash(Ti),e.strokeWidth(0),e.stroke(""),e.opacity(1),e.scale({x:1,y:1});let d=n==="held"&&t.isOwnedHold(i),h=d?null:Ma(n,a,t.colorblind());h?(e.fill(h.fill),e.stroke(h.stroke),e.strokeWidth(h.strokeWidth),e.dash(h.dash),e.opacity(h.opacity),h.scale!==1&&e.scale({x:h.scale,y:h.scale})):d?(e.fill(Me(s,c===nt?.24:.1)),e.stroke(c),e.strokeWidth(3)):e.fill(r&&c===nt?Me(s,.28):s),t.seatMarks.paint(e,i,n,s,t.seatRadius(),t.colorblind(),t.seatInClosedSection(i)),Ao(e)&&e.scale({x:1,y:1}),o.wheelchairSpaceType==="no-seat"&&n==="free"&&(e.stroke(Ht(o.accessibility)),e.strokeWidth(r?3:2),e.dash([3,2])),l&&(l.text(n==="booked"?"SOLD":n==="held"?"HELD":o.label),l.fontSize(n==="free"?10:Math.min(10,Math.max(6,t.boothWidth(o.rowId)??40)/6)),l.fontStyle(n==="free"?"600":"800"),l.fill(n==="free"?t.theme().seatLabelColor??ze:"#ffffff"),l.offsetX(l.width()/2),l.offsetY(l.height()/2));let p=n==="free"||n==="held"&&!t.isOwnedHold(i),m=()=>{let v=e.fill();typeof v=="string"&&e.fill(ma(v,a))},f=t.accessFilter();if(f&&p&&!r){let v=Te(o,f);v==="other"?(m(),e.opacity(Math.min(e.opacity(),Rs))):v==="companion"&&e.opacity(Math.min(e.opacity(),As))}let y=t.categoryHighlight();y&&n==="free"&&!r&&o.categoryKey!==y&&e.opacity(.25);let u=t.categoryFilter();u&&p&&!r&&!u.has(o.categoryKey)&&(m(),e.opacity(.22)),t.commercialLimitedFilter()&&n==="free"&&!r&&(o.commercial?.restrictedView||o.commercial?.obstructedView)&&e.opacity(.22);let g=t.dimmedSections();if(g.size){let v=t.seatSection(i);(v?g.has(v.id)||g.has(v.logicalId)||v.zone!=null&&g.has(v.zone):g.has(vn))&&e.opacity(.18)}t.closedSections().size&&t.seatInClosedSection(i)&&(e.fill(Mr),e.stroke(""),e.strokeWidth(0),e.dash(Ti),e.opacity(Rr),e.scale({x:1,y:1})),t.selectionFocusDims(i)&&e.opacity(Math.min(e.opacity(),.16));let S=t.boothLabel(i)??t.seatLabel(i);S&&(S.fill(t.seatLabelInk(o,e)),S.visible(pe(S.fontSize(),t.effScale())&&e.opacity()>=.5));let b=t.accessGlyph(i);if(b){let v=e.fill();b.fill(qt(typeof v=="string"?v:"")),b.opacity(e.opacity()),b.visible(t.accessGlyphShouldShow(i))}t.accessRing(i)?.opacity(e.opacity())}function Fa(t,e){let i=null,o=1/0;for(let[n,r]of t){if(!r.getLayer())continue;let s=r.getClientRect(),l=s.x+s.width/2,a=s.y+s.height/2,c=Math.max(s.width/2,22),d=Math.max(s.height/2,22),h=Math.abs(e.x-l),p=Math.abs(e.y-a);if(h>c||p>d)continue;let m=h*h+p*p;m<o&&(o=m,i=n)}return i}function Pi(t){return t?.getAttr?.("seatId")??void 0}var Fo=.85,iu=.38,ou=Object.freeze([3,3]);function _a(t){t.attachHoverCard(),t.seatLayer.on("click tap",e=>{if(t.moved()>Ee||t.isGhostClick(e))return;let i=Pi(e.target);i&&t.seatsPickable()&&t.handleSeatTap(i)}),t.seatLayer.on("mouseover",e=>{let i=Pi(e.target);if(!i)return;let o=t.seat(i);if(!o)return;t.setHoveredId(i);let n=nu(t,i);t.hoverRing.position(t.renderedSeatPoint(o));let r=t.viewMode()==="perspective"?t.perspectiveSeatScale(i):1;t.hoverRing.scale({x:r,y:r}),t.hoverRing.opacity(n==="muted"?iu:Fo),t.hoverRing.dash(n==="muted"?ou:Ti),t.hoverRing.visible(n!=="none"),t.overlayLayer.batchDraw(),t.clusterLabels.syncCursor(n==="full"),t.onHover?.(o,{mark:t.seatMark(i),interaction:"hover"})}),t.seatLayer.on("mouseout",()=>{t.setHoveredId(null),t.hoverRing.visible(!1),t.overlayLayer.batchDraw(),t.clusterLabels.syncCursor(!1),t.onHover?.(null,{mark:null})}),t.stage.on("wheel",e=>{e.evt.preventDefault(),t.releaseSectionFocusDim();let i=t.container.getBoundingClientRect(),o={x:e.evt.clientX-i.left,y:e.evt.clientY-i.top},n=Math.exp(-e.evt.deltaY*.002);t.zoomAbout(t.stage.scaleX()*N(n,.5,2),o,"frame")}),t.stage.on("click tap",e=>{if(t.moved()>Ee||t.isGhostClick(e))return;let i=t.stage.getPointerPosition();if(!i)return;if(!(Pi(e.target)&&t.seatsPickable())){let n=Fa(t.selectionMarkers(),i);if(n){t.focusSeats([n],{animate:!t.reducedMotion()});return}}if(!t.cached()){if(Pi(e.target)&&t.seatsPickable())return;if(t.seatsPickable()){let n=t.focusedSectionId(),r=t.nearestSeatToScreen(i,we),s=r?t.seatSection(r):null;if(r&&(!n||s&&t.sectionMatchesFocus(s))){t.handleSeatTap(r);return}let l=r?null:t.nearestSeatToScreen(i,we,!0),a=l?t.seatSection(l):null;if(l&&(!n||a&&t.sectionMatchesFocus(a))){t.handleSeatTap(l);return}if(n&&t.onBackdropTap&&!t.floorOverview()){let d=t.sectionAt(i);if(d&&d!==n){let h=t.sectionTapAnchor(d,t.screenToWorld(i));t.onSectionTap?t.onSectionTap(d,h):t.focusSection(d,{anchor:h})}else d||t.onBackdropTap();return}if(n)return;let c=t.sectionCount()?t.sectionAt(i):null;if(!c||t.effScale()>=ie||t.sectionFrameScale(c)<=t.stage.scaleX()*1.02)return}}if((t.stacked()||t.floorOverview())&&t.onDeckTap){let n=t.floorOverview()?t.sectionAt(i):null,r=(n?t.objectFloor(n):null)??t.deckFloorAt();if(r){t.onDeckTap(r);return}}if(t.sectionCount()){let n=t.screenToWorld(i),r=t.ownedBadgeAt(n)??t.sectionAt(i);if(r){let s=t.sectionTapAnchor(r,n);t.onSectionTap?t.onSectionTap(r,s):t.focusSection(r,{anchor:s});return}}if(t.clusterLabels.focusCluster(i)||t.clusterLabels.glideTowardTap(i))return;let o=Math.max(Ae*1.2,t.stage.scaleX()*2.5);t.zoomAbout(o,i)})}function Ba(t,e){if((t.stacked()||t.floorOverview())&&t.onDeckTap){let o=t.objectFloor(t.seat(e)?.rowId??"");if(o){t.onDeckTap(o);return}}if(t.effScale()<ie&&t.sectionCount()){let o=t.seatSection(e);if(o){let n=t.focusedSectionId()===o.logicalId,r=t.sectionFrameScale(o.logicalId)>t.stage.scaleX()*1.02;if(!n&&r){let s=t.seat(e),l=s?t.renderedSeatPoint(s):void 0;t.onSectionTap?t.onSectionTap(o.logicalId,l):t.focusSection(o.logicalId,{anchor:l});return}}}if(!(t.isOwnedHold(e)||t.isSelected(e)||t.isSelectable(e))){let o=t.seat(e)??null;o&&(t.onHover?.(o,{mark:t.seatMark(e)??null,interaction:"press",unavailable:!0,...t.hiddenByAccessFilter(e)?{filteredOut:!0}:{}}),t.nudgeSeat(e));return}t.hasSeatMark(e)&&t.onHover?.(t.seat(e)??null,{mark:t.seatMark(e),interaction:"press"}),t.toggleSeat(e)}function nu(t,e){return t.isOwnedHold(e)||t.isSelected(e)||t.isSelectable(e)?"full":t.seatInClosedSection(e)?"none":t.seatStatus(e)==="held"?"muted":"none"}function Oa(t){return!t.focusedSectionId||!t.roaming||t.floorOverview?!1:t.effScale<se}import{Rect as Ku}from"konva/lib/shapes/Rect";import{Path as zu}from"konva/lib/shapes/Path";import{Group as ru}from"konva/lib/Group";import{Line as Da}from"konva/lib/shapes/Line";import{Rect as su}from"konva/lib/shapes/Rect";import{Text as Ha}from"konva/lib/shapes/Text";function Ii(t){let e=t.getClientRect({skipTransform:!0,skipShadow:!0});!Number.isFinite(e.width)||!Number.isFinite(e.height)||(t.offsetX(e.x+e.width/2),t.offsetY(e.y+e.height/2))}var Na=.6;function au(t,e){return t>=ie||e&&t>=ti}function lu(t){return t.effectiveScale<ti?!1:t.focusActive||t.stageWidth<he}function cu(t,e,i){return i&&e>=ti?Math.max(t,or/Math.max(e,1e-4)):t}function du(t){let{authoredFontSize:e,measuredWidth:i,maxWidth:o,effectiveScale:n}=t;if(!(i>o)||!(i>0))return e;let r=K/Math.max(n,1e-4),s=e*o/i;return Math.max(Math.min(yt,r),s)}function Bo(t,e){let i=(e?1:3)*Math.min(1,t/ce);return Math.max(1,t*2-i)}function Ga(t){let e=new Map;for(let n of t){let r=e.get(n.rowId);r?r.push(n):e.set(n.rowId,[n])}let i=[];for(let n of e.values())if(!(n.length<2))for(let r=1;r<n.length;r+=1){let s=Math.hypot(n[r].x-n[r-1].x,n[r].y-n[r-1].y);s>0&&Number.isFinite(s)&&i.push(s)}if(!i.length)return 0;i.sort((n,r)=>n-r);let o=Math.floor(i.length/2);return i.length%2?i[o]:(i[o-1]+i[o])/2}function Wa(t,e){return e>0?Math.min(t,e/2):t}function Oo(t){let e=Math.max(t*2,1e-4);return Math.max(se,In/e)}function It(t){let e=Bo(t,!1),i=Bo(ce,!1),o=e>0?i/e:1;return ie*Math.max(1,o)/Ji(1,!1,K)}function Va(t){return It(t)*Pr}function _o(t,e,i){let o=t.seatLabelContainer(e);i.getParent()!==o&&o.add(i)}function Ka(t){let e=t.exportMode?Math.max(t.effScale(),ie):t.effScale(),i=lu({effectiveScale:e,focusActive:t.focusedSectionId!=null,stageWidth:t.stage.width()}),o=t.exportMode?e:Ji(e,t.labelsWereVisible(),K),n=au(o,i);t.onLabelVisibilityChange(n),t.setSeatLabelRungOpen(n);let r=d=>{let h=d.getClientRect({skipShadow:!0,skipStroke:!0});return h.x>=0&&h.y>=0&&h.x+h.width<=t.stage.width()&&h.y+h.height<=t.stage.height()};for(let[d,h]of t.boothLabelById){let p=t.circleById.get(d);h.visible(pe(h.fontSize(),o)&&!!p?.isVisible()&&t.focusedSeatOpacity(d,p?.getAbsoluteOpacity()??1)>=.5&&r(h))}t.rowLabelGroup.destroyChildren(),t.seatLabelById.clear(),t.seatLabelDrops.clear();let s=new Set,l=new Set,a=0;if(n)for(let d of t.visibleSeatCandidates()){if(d.kind==="booth")continue;let h=t.worldToScreen(d);if(h.x<-20||h.x>t.stage.width()+20||h.y<-20||h.y>t.stage.height()+20||t.accessGlyphById.has(d.id)&&t.accessGlyphShouldShow(d.id))continue;let p=t.circleById.get(d.id);if(!p?.isVisible()){t.seatLabelDrops.set(d.id,"dimmed-or-unavailable");continue}let m=t.statusById.get(d.id)??"free",f=!t.hasSeatMark(d.id)&&(m==="booked"||m==="not_for_sale"||m==="held"&&!t.ownedHold.has(d.id)&&!t.opts.manageMode),y=t.focusedSeatOpacity(d.id,p.getAbsoluteOpacity()),u=f&&!t.focusDims(d.id);if(y<.5&&!u){t.seatLabelDrops.set(d.id,"dimmed-or-unavailable");continue}let g=t.renderedSeatPoint(d),S=t.viewMode==="perspective"?t.perspectiveSeatScale.get(d.id)??1:1;if(f){let P=S*t.statusCueScale(),T=t.statusCueInk(d.id),L=t.statusCuePool.get(d.id);if(L&&L.status===m){let I=L.node;I.position(g),I.scale({x:P,y:P}),I.opacity(y<1?Na:m==="held"?1:Eo);for(let A of I.getChildren())A.stroke(T);if(_o(t,d.id,I),l.add(d.id),++a>=ii)break;continue}L?.node.destroy();let x=new ru({x:g.x,y:g.y,listening:!1});if(x.scale({x:P,y:P}),y<1&&x.opacity(Na),m==="held"?(x.add(new su({x:-4.2,y:-.7,width:8.4,height:6.5,cornerRadius:1.3,stroke:T,strokeWidth:1.25,listening:!1})),x.add(new Da({points:[-2.4,-.8,-2.4,-2.7,-1.2,-4,0,-4.35,1.2,-4,2.4,-2.7,2.4,-.8],stroke:T,strokeWidth:1.2,lineCap:"round",lineJoin:"round",listening:!1}))):(x.opacity(Eo),x.add(new Da({points:[-4.2,4.2,4.2,-4.2],stroke:T,strokeWidth:1.8,lineCap:"round",listening:!1}))),Ii(x),t.statusCuePool.set(d.id,{node:x,status:m}),_o(t,d.id,x),l.add(d.id),++a>=ii)break;continue}let b=cu(Se*t.seatLabelScale(d),e,i),v=$t(d.displayLabel??d.label),k=p?t.seatLabelInk(d,p):t.seatPreferredLabelInk(d),w=t.seatLabelPool.get(d.id);w?(w.position(g),w.text(v),w.fontSize(b),w.fontFamily(t.labelFont()),w.fill(k),w.offset({x:0,y:0}),w.scale({x:1,y:1})):(w=new Ha({x:g.x,y:g.y,text:v,fontSize:b,fontStyle:"600",fontFamily:t.labelFont(),fill:k,listening:!1,perfectDrawEnabled:!1}),t.seatLabelPool.set(d.id,w));let C=Bo(t.seatR,i);if(w.fontSize(du({authoredFontSize:b,measuredWidth:w.width(),maxWidth:C,effectiveScale:e})),w.width()>C+.01){t.seatLabelDrops.set(d.id,"label-overflows-marker");continue}if(!pe(w.fontSize(),e)){t.seatLabelDrops.set(d.id,"below-minimum-size");continue}if(w.offsetX(w.width()/2),w.offsetY(w.height()/2),w.scale({x:S,y:S}),_o(t,d.id,w),!r(w)){t.seatLabelDrops.set(d.id,"outside-viewport");continue}if(s.add(d.id),t.seatLabelById.set(d.id,w),++a>=ii)break}for(let[d,h]of t.seatLabelPool)s.has(d)||(h.destroy(),t.seatLabelPool.delete(d));for(let[d,h]of t.statusCuePool)l.has(d)||(h.node.destroy(),t.statusCuePool.delete(d));let c=new ot;for(let{node:d}of t.freeTextById.values()){if(!d.isVisible())continue;let h=d.getClientRect({relativeTo:t.bgLayer,skipShadow:!0,skipStroke:!0});c.insert({x:h.x-J,y:h.y-J,width:h.width+J*2,height:h.height+J*2})}for(let d of t.rowLabelPlan){let h=t.focusedSectionId!=null&&d.focusKeys?.includes(t.focusedSectionId),p=h?Math.max(d.fontSize,ir/Math.max(e,1e-4)):d.fontSize;if(!h&&!pe(p,o))continue;let m=t.worldToScreen({x:d.x,y:d.y});if(m.x<-40||m.x>t.stage.width()+40||m.y<-40||m.y>t.stage.height()+40)continue;let f=new Ha({x:d.x,y:d.y,text:d.text,fontSize:p,fontStyle:"700",fontFamily:t.labelFont(),fill:d.ink,rotation:d.rotation,opacity:d.opacity,shadowColor:"#05070c",shadowBlur:d.ink.toLowerCase()==="#ffffff"?5:0,shadowOpacity:d.ink.toLowerCase()==="#ffffff"?.8:0,shadowForStrokeEnabled:!1,listening:!1,perfectDrawEnabled:!1});d.pill&&ys(f,d.pill),f.offsetX(f.width()/2),f.offsetY(f.height()/2);let y=t.resolveAutomaticRowLabelPosition(f,d,c);f.position(y),f.setAttr("rowLabel",!0),t.rowLabelGroup.add(f);let u=f.getClientRect({skipShadow:!0,skipStroke:!0}),g=6,S=u.x<g?g-u.x:u.x+u.width>t.stage.width()-g?t.stage.width()-g-u.x-u.width:0,b=u.y<g?g-u.y:u.y+u.height>t.stage.height()-g?t.stage.height()-g-u.y-u.height:0,v=y;if(S||b){let w=t.labelGroup.getAbsoluteTransform(),C=w.point(y);v=w.copy().invert().point({x:C.x+S,y:C.y+b}),f.position(v)}let k=t.rowLabelBox(f,v);if(d.automaticAway&&c.collisionCount(k)>0){f.destroy();continue}c.insert(k)}t.isoT>0&&t.viewMode!=="perspective"&&t.applyUprightLabels(),t.overlayLayer.batchDraw()}function za(t){let e=t.framingViewport(),i=e.width,o=e.height,n=t.perspectiveBounds(),r=t.viewMode()==="perspective"&&n?n:t.bounds();if(t.setFitScale(Math.min(i/r.width,o/r.height)||1),t.portraitFitCrop()&&!t.exportMode()){let l=i/r.width<=o/r.height,a=r.height*t.fitScale();l&&a<.55*o&&t.setFitScale(Math.min(t.fitScale()*1.3,.62*o/r.height))}let s=t.fitScale();if(t.stage.scale({x:s,y:s}),t.stage.position({x:e.x+(i-r.width*s)/2-r.x*s,y:e.y+(o-r.height*s)/2-r.y*s}),t.settleView(),!t.exportMode()){let l=ps(t.stage,[t.bgLayer,t.seatLayer],e,t.effScale()<se?se*.999999*(t.stage.scaleX()/Math.max(t.effScale(),1e-9)):void 0);l>0&&l!==1&&t.setFitScale(t.fitScale()*l),l>0&&(t.afterViewChange(),fs(t.stage,[t.bgLayer,t.seatLayer],e)),t.setFitPose(vi(t.stage))}t.stage.batchDraw()}function Mt(t){let e=.5*t.fitScale();return t.zones().length&&(e=Math.min(e,Ne*.9)),{min:e,max:Math.max(10*t.fitScale(),4,Va(t.markerR()))}}function Xa(t,e,i,o="now"){Vs(t.stage,e,i,Mt(t))&&(o==="frame"?(t.updateSeatGroupVisibility(),hu(t)):t.afterViewChange(),t.stage.batchDraw())}function hu(t){if(t.exportMode()||typeof requestAnimationFrame!="function"){t.afterViewChange();return}t.zoomSettleRaf()||t.setZoomSettleRaf(requestAnimationFrame(()=>{t.setZoomSettleRaf(0),!t.destroyed()&&t.afterViewChange()}))}function Ya(t){t.zoomSettleRaf()&&(cancelAnimationFrame(t.zoomSettleRaf()),t.setZoomSettleRaf(0))}function uu(t,e,i,o){Ks(t.stage,e,Mt(t),i,t.framingViewport(),o),t.settleView(),t.stage.batchDraw()}function Ua(t,e,i){let o=typeof e=="string"?t.sectionBounds(e):e;if(!o)return;if(t.cancelGlide(),i?.animate===!1||t.reducedMotion()){uu(t,o,i?.minScale,i?.maxScale);return}let n=t.framingViewport(),r=n.width,s=n.height,{min:l,max:a}=Mt(t),c=1.12,d=Math.min(r/(o.width*c),s/(o.height*c)),h=i?.minScale??l,p=N(Math.max(d,h),l,Math.max(h,Pt({min:l,max:a},i?.maxScale))),m=n.x+r/2-(o.x+o.width/2)*p,f=n.y+s/2-(o.y+o.height/2)*p,y=t.stage.scaleX(),u=t.stage.x(),g=t.stage.y();if(Math.abs(p-y)<1e-4&&Math.abs(m-u)<.5&&Math.abs(f-g)<.5){t.settleView();return}let S=performance.now(),b=Math.max(180,Math.min(1200,i?.durationMs??t.cameraGlideMs()));t.setGlideInProgress(!0);let v=k=>{if(t.destroyed()){t.setGlideRaf(0),t.setGlideInProgress(!1);return}let w=Math.min(1,(k-S)/b),C=w<.5?4*w*w*w:1-Math.pow(-2*w+2,3)/2,P=y+(p-y)*C;t.stage.scale({x:P,y:P}),t.stage.position({x:u+(m-u)*C,y:g+(f-g)*C}),t.updateSeatGroupVisibility(),t.updateLOD(),t.scheduleViewChange(),t.stage.batchDraw(),w<1?t.setGlideRaf(requestAnimationFrame(v)):(t.setGlideRaf(0),t.setGlideInProgress(!1),t.settleView())};t.setGlideRaf(requestAnimationFrame(v))}import{Text as pu}from"konva/lib/shapes/Text";function $a(t){let e=De,i=new pu({fontSize:Se,fontStyle:"600",fontFamily:t.labelFont(),listening:!1}),o=t.seatR*2-3;for(let n of t.seats){if(n.kind==="booth"){e=Math.min(e,De);continue}let r=Se*t.seatLabelScale(n);i.fontSize(r),i.text($t(n.displayLabel??n.label));let s=i.width()>o?Math.max(yt,r*o/i.width()):r;e=Math.min(e,s)}return i.destroy(),K/Math.max(yt,e)}var Do={top:0,right:0,bottom:0,left:0};function qa(t){let e=i=>typeof i=="number"&&Number.isFinite(i)&&i>0?i:0;return t?{top:e(t.top),right:e(t.right),bottom:e(t.bottom),left:e(t.left)}:{...Do}}var fu=.7;function Za(t,e,i){let{top:o,right:n,bottom:r,left:s}=i,l=(p,m,f)=>{let y=p+m,u=f*fu;if(y<=u||y<=0)return[p,m];let g=u/y;return[p*g,m*g]},[a,c]=l(s,n,t),[d,h]=l(o,r,e);return{x:a,y:d,width:Math.max(1,t-a-c),height:Math.max(1,e-d-h)}}function ja(t){return{x:t.x(),y:t.y(),scale:t.scaleX()}}function Qa(t,e){return!Number.isFinite(e.x)||!Number.isFinite(e.y)||!(e.scale>0)?!1:(t.scale({x:e.scale,y:e.scale}),t.position({x:e.x,y:e.y}),!0)}function Mi(t){return{x:t.x+t.width/2,y:t.y+t.height/2}}function Ja(t,e){let i=e({x:t.x,y:t.y}),o=e({x:t.x+t.width,y:t.y+t.height});return{x:Math.min(i.x,o.x),y:Math.min(i.y,o.y),width:Math.abs(o.x-i.x),height:Math.abs(o.y-i.y)}}function tl(){return typeof navigator<"u"&&navigator.maxTouchPoints>0?ar:sr}function il(t){return Math.max(t*1.05,er,de*1.3)}var mu=56;function ol(t){return mu/(2*Math.max(t,1e-4))}function at(t,e){let i=1/0,o=-1/0,n=1/0,r=-1/0;for(let s of t)i=Math.min(i,s.x),o=Math.max(o,s.x),n=Math.min(n,s.y),r=Math.max(r,s.y);return i-=e,o+=e,n-=e,r+=e,{x:i,y:n,width:Math.max(40,o-i),height:Math.max(40,r-n)}}function nl(t){let{stageWidth:e,stageHeight:i,fullBounds:o,visibleBounds:n,seatPoints:r,minScale:s}=t;if(!r.length)return null;let l=1.12;if(Math.min(e/(o.width*l),i/(o.height*l))>=s)return null;let c=t.tapAnchor??{x:n.x+n.width/2,y:n.y+n.height/2},d=r[0],h=1/0;for(let y of r){let u=(y.x-c.x)**2+(y.y-c.y)**2;u<h&&(d=y,h=u)}let p=e/(s*l),m=i/(s*l),f=at(r,0);return{bounds:{x:el(d.x,p,f.x,f.width),y:el(d.y,m,f.y,f.height),width:p,height:m},minScale:s}}function el(t,e,i,o){return o<=e?i+o/2-e/2:Math.min(Math.max(t-e/2,i),i+o-e)}var Ho=1e6;function gu(){return typeof navigator>"u"?!1:navigator.maxTouchPoints>0&&/AppleWebKit/i.test(navigator.userAgent)}function No(t){let e=t.target;return e instanceof Element?e.closest('button, a, input, select, textarea, [role="button"]')!=null:!1}var Ri=class{constructor(e,i=gu()){this.pointers=new Map;this.pinch=null;this.panLast=null;this.panStart=null;this.panStarted=!1;this.movedPx=0;this.singleTouch=!1;this.lastTapAt=0;this.rect=null;this.onLayoutChanged=()=>{this.rect=null};this.onPointerDown=e=>{this.useWebKitTouchEvents&&e.pointerType==="touch"||(this.rect=null,this.beginPointer(e.pointerId,this.toLocal(e.clientX,e.clientY),e.pointerType,e.button))};this.onPointerMove=e=>{if(this.useWebKitTouchEvents&&e.pointerType==="touch"||!this.pointers.has(e.pointerId))return;e.preventDefault();let i=this.toLocal(e.clientX,e.clientY);this.updatePointer(e.pointerId,i)&&this.applyPointerMove(i)};this.onPointerEnd=e=>{this.useWebKitTouchEvents&&e.pointerType==="touch"||this.endPointer(e.pointerId)};this.onTouchStart=e=>{if(!No(e)){e.preventDefault(),this.rect=null;for(let i=0;i<e.changedTouches.length;i+=1){let o=e.changedTouches.item(i);o&&this.beginPointer(Ho+o.identifier,this.toLocal(o.clientX,o.clientY),"touch",0)}}};this.onTouchMove=e=>{if(No(e))return;e.preventDefault();let i=null;for(let o=0;o<e.changedTouches.length;o+=1){let n=e.changedTouches.item(o);if(!n)continue;let r=this.toLocal(n.clientX,n.clientY);this.updatePointer(Ho+n.identifier,r)&&(i=r)}i&&this.applyPointerMove(i)};this.onTouchEnd=e=>{if(!No(e)){e.preventDefault();for(let i=0;i<e.changedTouches.length;i+=1){let o=e.changedTouches.item(i);o&&this.endPointer(Ho+o.identifier)}}};this.host=e,this.useWebKitTouchEvents=i}get moved(){return this.movedPx}attach(){let{container:e}=this.host;this.rect=null,typeof window<"u"&&(window.addEventListener("scroll",this.onLayoutChanged,{capture:!0,passive:!0}),window.addEventListener("resize",this.onLayoutChanged,{passive:!0}),window.visualViewport?.addEventListener("resize",this.onLayoutChanged),window.visualViewport?.addEventListener("scroll",this.onLayoutChanged)),e.addEventListener("pointerdown",this.onPointerDown,{passive:!1}),e.addEventListener("pointermove",this.onPointerMove,{passive:!1}),e.addEventListener("pointerup",this.onPointerEnd,{passive:!1}),e.addEventListener("pointercancel",this.onPointerEnd,{passive:!1}),this.useWebKitTouchEvents&&(e.addEventListener("touchstart",this.onTouchStart,{passive:!1}),e.addEventListener("touchmove",this.onTouchMove,{passive:!1}),e.addEventListener("touchend",this.onTouchEnd,{passive:!1}),e.addEventListener("touchcancel",this.onTouchEnd,{passive:!1}))}detach(){let{container:e}=this.host;typeof window<"u"&&(window.removeEventListener("scroll",this.onLayoutChanged,{capture:!0}),window.removeEventListener("resize",this.onLayoutChanged),window.visualViewport?.removeEventListener("resize",this.onLayoutChanged),window.visualViewport?.removeEventListener("scroll",this.onLayoutChanged)),e.removeEventListener("pointerdown",this.onPointerDown),e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerup",this.onPointerEnd),e.removeEventListener("pointercancel",this.onPointerEnd),this.useWebKitTouchEvents&&(e.removeEventListener("touchstart",this.onTouchStart),e.removeEventListener("touchmove",this.onTouchMove),e.removeEventListener("touchend",this.onTouchEnd),e.removeEventListener("touchcancel",this.onTouchEnd))}resetPan(){this.panLast=null,this.panStart=null,this.panStarted=!1}isGhostClick(e){return e.type==="tap"?(this.lastTapAt=performance.now(),!1):this.lastTapAt>0&&performance.now()-this.lastTapAt<tr}invalidateRect(){this.rect=null}toLocal(e,i){let o=this.rect;if(!o){let n=this.host.container.getBoundingClientRect();o={left:n.left,top:n.top},this.rect=o}return{x:e-o.left,y:i-o.top}}beginPointer(e,i,o,n){if(this.host.cancelGlide(),this.pointers.set(e,i),this.pointers.size===1)this.movedPx=0,this.singleTouch=o==="touch",this.singleTouch&&this.host.touchProbeStart?.(i),this.pinch=null,this.panStart=i,this.panStarted=!1,this.host.marqueeShouldStart({pointerType:o,button:n})?(this.host.beginMarquee(i),this.panLast=null):this.panLast=i;else if(this.pointers.size===2){this.host.marqueeActive()&&this.host.cancelMarquee(),this.endTouchProbe();let[r,s]=[...this.pointers.values()],l={x:(r.x+s.x)/2,y:(r.y+s.y)/2},a=this.host.stage.scaleX();this.pinch={startDist:Math.hypot(s.x-r.x,s.y-r.y),startScale:a,worldMid:{x:(l.x-this.host.stage.x())/a,y:(l.y-this.host.stage.y())/a}},this.panLast=null,this.panStart=null,this.panStarted=!0,this.movedPx=Ee+1}}updatePointer(e,i){return this.pointers.has(e)?(this.pointers.set(e,i),this.pointers.size===1&&this.panStart?this.movedPx=Math.max(this.movedPx,Math.hypot(i.x-this.panStart.x,i.y-this.panStart.y)):this.pointers.size>=2&&(this.movedPx=Ee+1),!0):!1}applyPointerMove(e){if(this.singleTouch&&this.pointers.size===1&&(this.panStarted||this.movedPx>Ee?this.endTouchProbe():this.host.touchProbeMove?.(e)),this.host.marqueeActive()){this.host.updateMarquee(e);return}if(this.pinch&&this.pointers.size>=2){this.host.releaseSectionFocusDim();let[i,o]=[...this.pointers.values()],n=Math.hypot(o.x-i.x,o.y-i.y);if(this.pinch.startDist<1)return;let r={x:(i.x+o.x)/2,y:(i.y+o.y)/2},{min:s,max:l}=this.host.zoomBounds(),a=N(this.pinch.startScale*(n/this.pinch.startDist),s,l);this.host.stage.scale({x:a,y:a}),this.host.stage.position({x:r.x-this.pinch.worldMid.x*a,y:r.y-this.pinch.worldMid.y*a}),this.host.updateSeatGroupVisibility(),this.host.stage.batchDraw(),this.host.scheduleViewChange()}else if(this.panLast&&this.pointers.size===1){if(!this.panStarted){if(this.movedPx<=Ee)return;this.panStarted=!0,this.host.releaseSectionFocusDim()}this.host.stage.position({x:this.host.stage.x()+(e.x-this.panLast.x),y:this.host.stage.y()+(e.y-this.panLast.y)}),this.panLast=e,this.host.updateSeatGroupVisibility(),this.host.stage.batchDraw(),this.host.scheduleViewChange()}}endPointer(e){if(this.pointers.has(e)){if(this.host.marqueeActive()){this.endTouchProbe(),this.host.finishMarquee(),this.pointers.delete(e),this.pointers.size===0&&(this.panLast=null);return}this.pointers.delete(e),this.pointers.size<2&&(this.pinch=null),this.pointers.size===1&&(this.panLast=[...this.pointers.values()][0],this.panStart=this.panLast,this.panStarted=!0),this.pointers.size===0&&(this.panLast=null,this.panStart=null,this.panStarted=!1,this.endTouchProbe(),this.host.afterViewChange())}}endTouchProbe(){this.singleTouch&&(this.singleTouch=!1,this.host.touchProbeEnd?.())}};import{Circle as yu}from"konva/lib/shapes/Circle";import{Group as bu}from"konva/lib/Group";import{Text as Su}from"konva/lib/shapes/Text";var rl=13,vu=15,wu=.3,ku=.08;function cl(t,e,i){return!!(t&&i!==t||e&&!e.has(i))}function Lu(t,e){return!e||t.available==null?`cap ${t.capacity}`:t.available<=0?_("map.soldOut"):_("map.seatsLeft",{count:t.available})}function Cu(t,e){return e&&t.available!=null&&t.available<=0}function dl(t){for(let e of t.gaById.values()){let i=t.filteredOut(e.categoryKey),o=t.overviewHidden(e),n=Cu(e,t.pickerMode),r=t.pickerMode?e.selected??0:0;e.polygon.opacity(o?0:t.dimmed(e.categoryKey)?He*ku:n?He*wu:He),e.polygon.listening(!t.exportMode&&!o&&!i&&!n),e.polygon.stroke(r>0?t.selectionColor:e.strokeColor),e.polygon.strokeWidth(r>0?3:1.5),xu(t,e,n,r,o,t.dimmed(e.categoryKey))}}function xu(t,e,i,o,n,r){if(e.capacityNode){let s=Lu(e,t.pickerMode);e.capacityNode.text()!==s&&(e.capacityNode.text(s),e.capacityNode.offsetX(e.capacityNode.width()/2)),e.capacityNode.opacity(i?.75:1)}Tu(t,e,n||r),o>0&&!n?Iu(t,e,o):e.chip&&e.chip.visible(!1)}var Go=9,sl=.86;function Tu(t,e,i){let{labelNode:o,capacityNode:n}=e;if(!o&&!n)return;let r=Math.max(t.effScale(),1e-4);if(i){o?.visible(!1),n?.visible(!1);return}if(!t.pickerMode){o?.visible(t.labelLegible(o.fontSize())),n?.visible(t.labelLegible(n.fontSize()));return}let s=Pu(e,r),l=al(o,Xt,s.width*sl,r),a=al(n,Yt,s.width*sl,r),c=l!=null,d=a!=null&&c&&l+a+Go<=s.height;ll(o,c?l:null,e.labelPoint.y-Go/r,r),ll(n,d?a:null,e.labelPoint.y+Go/r,r)}function Pu(t,e){let i=1/0,o=-1/0,n=1/0,r=-1/0;for(let s of t.points)s.x<i&&(i=s.x),s.x>o&&(o=s.x),s.y<n&&(n=s.y),s.y>r&&(r=s.y);return Number.isFinite(i)?{width:(o-i)*e,height:(r-n)*e}:{width:0,height:0}}function al(t,e,i,o){if(!t||!t.text())return null;t.fontSize(e/o);let n=t.width()*o;if(n<=i||n<=0)return e;let r=e*(i/n);return r>=K?r:null}function ll(t,e,i,o){if(t){if(e==null){t.visible(!1);return}t.fontSize(e/o),t.offsetX(t.width()/2),t.offsetY(t.height()/2),t.y(i),t.visible(!0)}}function Iu(t,e,i){if(!e.chip){let o=new bu({x:e.labelPoint.x,y:e.labelPoint.y-rl-16,listening:!1}),n=new yu({radius:rl,fill:t.selectionColor,listening:!1,perfectDrawEnabled:!1}),r=new Su({text:String(i),fontSize:vu,fontStyle:"800",fontFamily:t.labelFont(),fill:"#0b0d12",listening:!1,perfectDrawEnabled:!1});o.add(n),o.add(r),t.bgLayer.add(o),e.chip=o,e.chipText=r}e.chipText&&e.chipText.text()!==String(i)&&e.chipText.text(String(i)),e.chipText&&(e.chipText.offsetX(e.chipText.width()/2),e.chipText.offsetY(e.chipText.height()/2)),e.chip.visible(!0),e.chip.moveToTop()}function hl(t,e){let i=!1;for(let[o,n]of Object.entries(e)){let r=t.get(o);r&&(n.available!==void 0&&r.available!==n.available&&(r.available=n.available,i=!0),n.selected!==void 0&&r.selected!==n.selected&&(r.selected=n.selected,i=!0))}return i}function ul(t){let{width:e,height:i}=t;return!(e>0)||!(i>0)?"hidden":e===t.stageWidth&&i===t.stageHeight?"unchanged":{width:e,height:i}}import{Rect as pl}from"konva/lib/shapes/Rect";import{Text as Mu}from"konva/lib/shapes/Text";function fl(t){let e=t.effScale(),i=t.stage.scaleX(),o={width:t.stage.width(),height:t.stage.height()},n=u=>Math.round(u*100)/100,r=new Map(t.overlayLayer.find(".selection-ring").map(u=>[String(u.getAttr("seatId")??""),String(u.getAttr("ringColor")??t.effSelection)])),s=t.seats.map(u=>{let g=t.circleById.get(u.id),S=t.boothLabelById.get(u.id)??t.seatLabelById.get(u.id),b=t.viewMode==="perspective"?t.perspectiveSeatScale.get(u.id)??1:1,v=(t.viewMode==="perspective"?i:e)*b,k=u.kind==="booth"?De:Se*t.seatLabelScale(u),w=t.viewMode==="perspective"&&u.kind!=="booth"?e*b:v,C=n((S?.fontSize()??k)*w),P=t.worldToScreen(u),T=S?S.width()*i*b:0,L=S?S.height()*(t.viewMode==="perspective"&&u.kind==="booth"?i:e)*b:0,x=P.x-T/2<0||P.x+T/2>o.width||P.y-L/2<0||P.y+L/2>o.height,I=t.focusedSeatOpacity(u.id,g?.getAbsoluteOpacity()??0),A=t.seatSection.get(u.id),R=!!S?.isVisible()&&I>=.5&&!x,E;R||(I<.5?E="dimmed-or-unavailable":C<K?E="below-minimum-size":x?E="outside-viewport":S?E="renderer-hidden":E=t.seatLabelDrops.get(u.id)??(t.seatLabelRungOpen()?"clutter-or-fit":"below-label-rung"));let M=g instanceof pl?g.width()*i*b:t.seatR*2*v,Y=g instanceof pl?g.height()*(t.viewMode==="perspective"?i:e)*b:t.seatR*2*v,G=2*(t.seatR*v+we),$=g?.fill(),re=S?.fill(),O=t.accessGlyphById.get(u.id),W=O?.getAbsoluteScale();return{seatId:u.id,label:u.label,kind:u.kind==="booth"?"booth":"seat",markerShape:u.kind==="booth"?"booth":u.wheelchairSpaceType==="no-seat"?"square":"circle",...u.wheelchairSpaceType?{wheelchairSpaceType:u.wheelchairSpaceType}:{},categoryKey:u.categoryKey,...A?{sectionId:A.id}:{},...A?.zone?{zoneId:A.zone}:{},status:t.statusById.get(u.id)??"free",selected:t.selection.has(u.id),visible:R,renderedFontPx:C,fill:typeof $=="string"?$:"",ink:typeof re=="string"?re:g?t.seatLabelInk(u,g):t.seatPreferredLabelInk(u),...r.has(u.id)?{selectionRingColor:r.get(u.id)}:{},opacity:n(I),...O?{accessibilityMarker:{glyphVisible:O.isVisible(),glyphWidthPx:n(Re*Math.abs(W?.x??0)),emphasizedByFilter:t.accessGlyphFilterEmphasized(u.id)}}:{},pointerTarget:{active:!t.cached&&!t.seatViewportCulled(u.id)&&!!g?.isVisible()&&!!g?.isListening()&&t.isSelectable(u.id),directWidthPx:n(M),directHeightPx:n(Y),effectiveMinimumPx:n(Math.max(Math.min(M,Y),G))},screenCenter:{x:n(P.x),y:n(P.y)},...R?{screenBox:{x:n(P.x-T/2),y:n(P.y-L/2),width:n(T),height:n(L)}}:{},...E?{hiddenReason:E}:{}}}),l=s.filter(u=>u.visible).length,a=(u,g,S,b,v,k,w)=>{let C=tt({x:b.x(),y:b.y()},b.width(),b.height(),b.rotation()),P=k&&k.liftWorld>0?t.isoLiftLocal(k.liftWorld):{x:0,y:0},T=z(C.map(E=>t.worldToScreen({x:E.x+P.x,y:E.y+P.y}))),L=n(b.opacity()),x=b.fill(),I=T.x+T.width<0||T.x>o.width||T.y+T.height<0||T.y>o.height,A=b.isVisible()&&L>.05&&!I,R=k?it({x:b.x(),y:b.y()},b.width(),b.height(),b.rotation(),k.outline,k.holes):void 0;return{id:u,kind:g,role:S,label:b.text(),visible:A,renderedFontPx:n(b.fontSize()*i),...w==null?{}:{sizeFloorPx:w},opacity:L,fill:v,ink:typeof x=="string"?x:"",...R==null?{}:{fitsContainer:R},...A?{screenBox:{x:n(T.x),y:n(T.y),width:n(T.width),height:n(T.height)}}:{}}},c=u=>{let g=u.namePlate.fill();if(u.namePlate.opacity()>.05&&typeof g=="string"&&g)return g;let S=u.blockPoly.fill();return typeof S=="string"?S:u.baseFill},d=u=>{let g=u.blockPoly.fill();return typeof g=="string"?g:u.baseFill},h=[...t.sections.map(u=>a(u.id,"section","name",u.nameLabel,c(u),u)),...t.sections.map(u=>a(`${u.id}:availability`,"section","availability",u.subLabel,c(u),u)),...t.sections.map(u=>a(`${u.id}:number`,"section","number",u.numberLabel,d(u),u,ni(o.width))),...t.zones.flatMap(u=>[a(u.id,"zone","name",u.label,u.background),...u.sub?[a(`${u.id}:price`,"zone","price",u.sub,u.background)]:[]])],p=[...t.gaById].map(([u,g])=>{let S=g.points.map(x=>t.worldToScreen(x)),b=Math.min(...S.map(x=>x.x)),v=Math.min(...S.map(x=>x.y)),k=Math.max(...S.map(x=>x.x)),w=Math.max(...S.map(x=>x.y)),C=k<0||b>o.width||w<0||v>o.height,P=n(g.polygon.opacity()),T=P>=.1&&!C,L=g.polygon.fill();return{areaId:u,label:g.label,capacity:g.capacity,categoryKey:g.categoryKey,...g.sectionId?{sectionId:g.sectionId}:{},visible:T,interactive:g.polygon.listening(),opacity:P,fill:typeof L=="string"?L:"",effectiveBackground:g.effectiveBackground,...T?{screenBox:{x:n(b),y:n(v),width:n(k-b),height:n(w-v)}}:{}}}),m=[...t.freeTextById].map(([u,g])=>{let{node:S,background:b,kind:v}=g,k=t.worldToScreen({x:S.x(),y:S.y()}),w=S.width()*i,C=S.height()*e,P=k.x-S.offsetX()*i,T=k.y-S.offsetY()*e,L=n(S.fontSize()*e),x=P+w<0||P>o.width||T+C<0||T>o.height,I=S.isVisible()&&!x,A=S.fill(),R=n(S.getAbsoluteOpacity()),E;return I||(L<K?E="below-minimum-size":x?E="outside-viewport":E="renderer-hidden"),{objectId:g.objectId??u,kind:v,text:S.text(),visible:I,renderedFontPx:L,ink:typeof A=="string"?A:"",background:b,opacity:R,...I?{screenBox:{x:n(P),y:n(T),width:n(w),height:n(C)}}:{},...E?{hiddenReason:E}:{}}}),f=t.labelGroup.find(u=>u.getAttr("rowLabel")===!0).filter(u=>u instanceof Mu).map(u=>{let g=u.getClientRect({skipShadow:!0,skipStroke:!0}),S=g.x+g.width<0||g.x>o.width||g.y+g.height<0||g.y>o.height,b=u.fill();return{text:u.text(),visible:u.isVisible()&&!S,renderedFontPx:n(u.fontSize()*e),ink:typeof b=="string"?b:"",...S?{}:{screenBox:{x:n(g.x),y:n(g.y),width:n(g.width),height:n(g.height)}}}}),y=t.sections.filter(u=>u.blockPoly.opacity()>.05);return{viewport:o,projection:t.viewMode,...t.viewMode==="perspective"?{perspective:{model:"pinhole-exact-seat-anchors",sectionSurfaceModel:"tangent-plane",exactSeatAnchorCount:t.perspectiveSeatProjected.size,depthSorted:!0}}:{},canvasBackground:t.canvasBackground,effectiveScale:n(e),rung:t.getRung(),minimumVisibleLabelPx:K,totalLabelledBookableUnits:s.length,visibleLabels:l,hiddenLabels:s.length-l,totalBookableUnits:s.length+p.reduce((u,g)=>u+g.capacity,0),selectionRingSeatIds:t.overlayLayer.find(".selection-ring").map(u=>String(u.getAttr("seatId")??"")).filter(Boolean),selectionRingColor:t.effSelection,focusedSectionId:t.focusedSectionId,focusBackdropVisible:!!t.focusBackdrop?.isVisible(),categoryFilterKeys:t.categoryFilter?[...t.categoryFilter].sort():null,overviewStyle:{visibleSectionShells:y.length,categoryPaintedSectionShells:y.filter(u=>{let g=u.blockPoly.fill();return typeof g!="string"||!oo(t.canvasBackground,g)}).length,tintedSectionShells:y.filter(u=>{let g=u.blockPoly.fill();return typeof g=="string"&&Or(t.canvasBackground,g)}).length,visibleCategoryDetailOutlines:t.sections.filter(u=>u.outlinePoly.opacity()>.05).length,visibleSectionRowHints:0,visibleSectionAvailabilityLabels:t.sections.filter(u=>u.subLabel.opacity()>.05).length,visibleSectionGADetails:[...t.gaById.values()].filter(u=>u.sectionId!=null&&u.polygon.opacity()>.05).length},labels:s,gaAreas:p,hierarchyLabels:h,freeTextLabels:m,rowLabels:f}}import{Circle as Ru}from"konva/lib/shapes/Circle";import{Ellipse as Au}from"konva/lib/shapes/Ellipse";import{Line as ml}from"konva/lib/shapes/Line";import{Arrow as Eu}from"konva/lib/shapes/Arrow";import{Path as Fu}from"konva/lib/shapes/Path";import{Rect as Rt}from"konva/lib/shapes/Rect";import{Text as Vo}from"konva/lib/shapes/Text";import{Image as gl}from"konva/lib/shapes/Image";function yl(t,e){if(!e.url||e.visible===!1)return;let i=new window.Image;t.trackAssetImage(i,e.url,"Buyer background image",()=>{let o=i.naturalWidth||4,n=i.naturalHeight||3,r=e.crop??{x:0,y:0,width:1,height:1},s=Math.max(0,Math.min(.99,r.x)),l=Math.max(0,Math.min(.99,r.y)),a={x:s,y:l,width:Math.max(.01,Math.min(1-s,r.width)),height:Math.max(.01,Math.min(1-l,r.height))},c=e.width,d=c*(n*a.height/(o*a.width)),h=new gl({image:i,x:e.center.x,y:e.center.y,offsetX:c/2,offsetY:d/2,width:c,height:d,rotation:e.rotation??0,crop:{x:a.x*o,y:a.y*n,width:a.width*o,height:a.height*n},opacity:e.opacity,listening:!1});t.bgLayer.add(h),h.moveToBottom(),t.bgLayer.batchDraw()})}function bl(t,e){let i=new window.Image,o=new gl({image:i,x:e.x+e.width/2,y:e.y+e.height/2,offsetX:e.width/2,offsetY:e.height/2,width:e.width,height:e.height,rotation:e.rotation??0,opacity:N(e.opacity??1,0,1),listening:!1,perfectDrawEnabled:!1});e.layer==="foreground"?t.fgDecorGroup.add(o):t.bgLayer.add(o),e.role&&t.landmarkBoxes.push(z(tt({x:e.x+e.width/2,y:e.y+e.height/2},e.width,e.height,e.rotation??0))),t.trackAssetImage(i,e.href,`Decor image \u201C${e.label||e.id}\u201D`,()=>{let n=o.getLayer();n&&n.batchDraw()})}function Sl(t,e){if(e.shape==="round")t.bgLayer.add(new Ru({x:e.center.x,y:e.center.y,radius:e.radius??40,fill:"#232c40",stroke:"#2a3348",strokeWidth:1.5,listening:!1}));else{let o=e.width??80,n=e.height??50;t.bgLayer.add(new Rt({x:e.center.x,y:e.center.y,width:o,height:n,offsetX:o/2,offsetY:n/2,rotation:e.rotation,fill:"#232c40",stroke:"#2a3348",strokeWidth:1.5,cornerRadius:4,listening:!1}))}let i=At(t,t.bgLayer,e.displayLabel??e.label,e.center.x,e.center.y,"#cbd5e1",12,!0);t.freeTextById.set(e.id,{node:i,background:"#232c40",kind:"table"})}var _u=8,Bu=6;function vl(t,e){let i=e.background?.color??t.canvasBackground,o=e.color??q(i,t.theme.textColor??_s),n=e.semanticKind==="icon"?Kn(e.iconKey):void 0;if(n){let d=e.fontSize/24,h=new Fu({x:e.position.x,y:e.position.y,data:n,rotation:e.rotation,scaleX:d,scaleY:d,stroke:o,strokeWidth:2,lineCap:"round",lineJoin:"round",fillEnabled:!1,listening:!1,perfectDrawEnabled:!1});t.iconNodeById.set(e.id,{node:h,fontSize:e.fontSize}),t.bgLayer.add(h);return}let r=e.background?.padding??0,s=e.opacity??1,l=_n(e),a=new Vo({x:e.position.x,y:e.position.y,text:e.text,fontSize:e.fontSize,rotation:e.rotation,fontStyle:yo(e.bold,e.italic,"600"),fill:o,fontFamily:e.fontFamily??t.labelFont(),...e.width!=null?{width:e.width}:{},align:e.align??"left",lineHeight:e.lineHeight??1.2,letterSpacing:e.letterSpacing??0,textDecoration:e.underline?"underline":"",padding:r,opacity:s,wrap:"word",listening:!1,perfectDrawEnabled:!1,name:"buyer-free-text"}),c;if(e.background){let d=a.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:!0}),h=Math.max(_u,e.fontSize*.35),p=Math.max(Bu,e.fontSize*.28);c=new Rt({x:e.position.x,y:e.position.y,offsetX:-(d.x-h),offsetY:-(d.y-p),width:d.width+h*2,height:d.height+p*2,rotation:e.rotation,fill:e.background.color,opacity:s*(e.background.opacity??.9),cornerRadius:e.background.cornerRadius??4,listening:!1,perfectDrawEnabled:!1,name:"buyer-text-background"}),t.bgLayer.add(c)}t.freeTextById.set(e.id,{node:a,backdrop:c,background:i,kind:l?"direct-landmark":"free-text"}),t.bgLayer.add(a)}function wl(t,e){let i=e.fill??t.theme.decorFill??Fs,o=e.role==="stage",n=e.role==="reference-focal",r=!!e.role&&!o,s=Fn(e),l=oe(t.canvasBackground),a=n?l.focalFill:i,c=e.kind==="line"||e.kind==="polyline",d=e.stroke?.color??(o?Me(a,.28):n?l.focalStroke:c?"#9aa3b5":void 0),h=e.stroke?.width??(o?1:n||c?2:0),p=e.opacity!=null?N(e.opacity,.1,1):1,m=0,f=0,y=null;if(c&&e.points&&e.points.length>=2){m=e.points.reduce((b,v)=>b+v.x,0)/e.points.length,f=e.points.reduce((b,v)=>b+v.y,0)/e.points.length;let u=zn(e),g=Xn(h),S=new Eu({points:e.points.flatMap(b=>[b.x,b.y]),closed:!1,x:m,y:f,offsetX:m,offsetY:f,rotation:e.rotation??0,stroke:d,fill:d,strokeWidth:h,opacity:p,lineCap:u.lineCap,lineJoin:u.lineJoin,pointerAtBeginning:u.startEnding==="arrow",pointerAtEnding:u.endEnding==="arrow",...g,listening:!1,name:"buyer-shape-open-path"});S.setAttr("shapeObjectId",e.id),t.bgLayer.add(S)}else if(e.kind==="rect"&&e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null){let u=o?{fillLinearGradientStartPoint:{x:0,y:0},fillLinearGradientEndPoint:{x:0,y:e.height},fillLinearGradientColorStops:[0,be(a,.3),1,Me(a,.12)]}:{fill:a};m=e.x+e.width/2,f=e.y+e.height/2,y={x:e.x,y:e.y,width:e.width,height:e.height},t.bgLayer.add(new Rt({x:m,y:f,offsetX:e.width/2,offsetY:e.height/2,rotation:e.rotation??0,width:e.width,height:e.height,...u,stroke:d,strokeWidth:h,cornerRadius:N(e.cornerRadius??4,0,Math.min(e.width,e.height)/2),opacity:p,listening:!1}))}else if(e.kind==="ellipse"&&e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null){m=e.x+e.width/2,f=e.y+e.height/2,y={x:e.x,y:e.y,width:e.width,height:e.height};let u=o?{fillLinearGradientStartPoint:{x:0,y:-e.height/2},fillLinearGradientEndPoint:{x:0,y:e.height/2},fillLinearGradientColorStops:[0,be(a,.3),1,Me(a,.12)]}:{fill:a};t.bgLayer.add(new Au({x:m,y:f,rotation:e.rotation??0,radiusX:e.width/2,radiusY:e.height/2,...u,stroke:d,strokeWidth:h,opacity:p,listening:!1}))}else if(e.kind==="polygon"&&e.points&&e.points.length){let u=e.points.flatMap(b=>[b.x,b.y]),g=z(e.points);m=e.points.reduce((b,v)=>b+v.x,0)/e.points.length,f=e.points.reduce((b,v)=>b+v.y,0)/e.points.length,y=g;let S=o?{fillLinearGradientStartPoint:{x:0,y:g.y},fillLinearGradientEndPoint:{x:0,y:g.y+g.height},fillLinearGradientColorStops:[0,be(a,.3),1,Me(a,.12)]}:{fill:a};t.bgLayer.add(new ml({points:u,closed:!0,x:m,y:f,offsetX:m,offsetY:f,rotation:e.rotation??0,...S,stroke:d,strokeWidth:h,opacity:p,listening:!1}))}y&&e.role&&t.landmarkBoxes.push(y);for(let u of fn(e))t.bgLayer.add(new ml({points:u.points.flatMap(g=>[g.x,g.y]),closed:u.closed,x:m,y:f,offsetX:m,offsetY:f,rotation:e.rotation??0,stroke:u.ink??pn,fill:u.fill,strokeWidth:2,opacity:p*.85,listening:!1,perfectDrawEnabled:!1,name:"buyer-stage-marking"}));if(e.label)if(o){let{node:u,spec:g}=Du(t,m,f,e.label,a,y,e.labelStyle);t.primaryFocalLabels.set(u,g),t.freeTextById.set(e.id,{node:u,background:a,kind:"stage"})}else if(r){let u=n||s,g=At(t,t.bgLayer,e.label,m,f,u?q(a,"#e6e9f0"):"#9aa3b5",u?18:12,!1);u&&t.primaryFocalLabels.set(g,{targetPx:18,trackingRatio:0,ink:String(g.fill()??""),plateInk:String(g.fill()??""),plate:new Rt({width:0,height:0,opacity:0,listening:!1})}),t.freeTextById.set(e.id,{node:g,background:a,kind:"decor"})}else{let u=At(t,t.bgLayer,e.label,m,f,"#cbd5e1",16,!0);t.freeTextById.set(e.id,{node:u,background:a,kind:"decor"})}}var Wo=22,Ou=K,Ai=6;function Du(t,e,i,o,n,r,s){let l=s?.size??Wo,a=s?.color??t.theme.textColor??"#e6e9f0",c=s?.color??q(n,a),d=r?r.x+r.width/2:e,h=r?r.y+r.height/2:i,p=Hu(t.canvasBackground,n),m=new Rt({x:d,y:h,width:0,height:0,cornerRadius:4,fill:p,opacity:0,listening:!1,perfectDrawEnabled:!1});t.bgLayer.add(m);let f=new Vo({x:d,y:h,text:o,fontSize:l,fontStyle:yo(s?.bold??!0,s?.italic,"normal"),letterSpacing:l*(4/Wo),fontFamily:s?.fontFamily??t.labelFont(),fill:c,textDecoration:s?.underline?"underline":"",listening:!1,perfectDrawEnabled:!1});return f.offsetX(f.width()/2),f.offsetY(f.height()/2),t.bgLayer.add(f),{node:f,spec:{targetPx:l,...r?{bounds:r}:{},trackingRatio:4/Wo,ink:c,plateInk:s?.color??q(p,a),plate:m}}}function Hu(t,e){return Q(e,D(t)?"#ffffff":"#000000",.34)}function kl(t,e,i,o){let n=Math.max(i,1e-4),r=e.targetPx/n,s=m=>{t.letterSpacing(m*e.trackingRatio),o(t,m)};s(r);let l=e.bounds;if(!l){e.plate.opacity(0),t.fill(e.ink);return}let a={width:l.width-Ai*2,height:l.height-Ai*2},c=Math.min(1,a.width/Math.max(t.width(),1e-6),a.height/Math.max(t.height(),1e-6));if(c<1&&(r=Math.max(Ou/n,r*c),s(r)),t.width()<=a.width&&t.height()<=a.height){e.plate.opacity(0),t.fill(e.ink);return}let h=t.width()+Ai*2,p=t.height()+Ai;e.plate.size({width:h,height:p}),e.plate.offset({x:h/2,y:p/2}),e.plate.opacity(1),t.fill(e.plateInk)}function Ll(t,e){let i=t.catColor.get(e.categoryKey)??"#6e7bff",o=t.canvasBackground,n=Tn(i,o,He),r=t.theme.textColor??"#e6e9f0",s=q(n,r),l=Xe(e.points,e.holes,{fill:i,opacity:He,stroke:i,strokeWidth:1.5,cornerRadius:e.cornerRadius});l.setAttr("gaId",e.id),l.on("click tap",p=>{t.isGhostClick(p)||t.opts.onGAClick?.(e.id)}),l.on("mouseenter",()=>{t.container.style.cursor="pointer"}),l.on("mouseleave",()=>{t.container.style.cursor="default"}),t.bgLayer.add(l);let a=Gt(e.points,e.holes),c=t.sections.find(p=>te(a,p.outline,p.holes)),d=At(t,t.bgLayer,e.displayLabel??e.label,a.x,a.y-8,s,Xt,!1),h=At(t,t.bgLayer,`cap ${e.capacity}`,a.x,a.y+10,s,Yt,!1);t.freeTextById.set(`${e.id}:label`,{objectId:e.id,node:d,background:n,kind:"ga-label",categoryKey:e.categoryKey}),t.freeTextById.set(`${e.id}:capacity`,{objectId:e.id,node:h,background:n,kind:"ga-capacity",categoryKey:e.categoryKey}),t.gaById.set(e.id,{label:e.displayLabel??e.label,capacity:e.capacity,categoryKey:e.categoryKey,points:e.points,polygon:l,effectiveBackground:n,strokeColor:i,labelPoint:a,labelNode:d,capacityNode:h,...c?{sectionId:c.logicalId}:{}})}function At(t,e,i,o,n,r,s,l){let a=new Vo({x:o,y:n,text:i,fontSize:s,fontStyle:l?"700":"500",fontFamily:t.labelFont(),fill:r,listening:!1,perfectDrawEnabled:!1});return a.offsetX(a.width()/2),a.offsetY(a.height()/2),e.add(a),a}function Cl(t,e){let i=[],o=e.canvasBackground,n=new Map,r=(c,d)=>{let h=n.get(c)??[];h.push(d),n.set(c,h)};for(let c of e.seats){if(c.kind==="booth")continue;let d=c.logicalRowId??c.rowId;r(d,c),d!==c.rowId&&r(c.rowId,c)}let s=c=>c.logicalSeatIndex??Number(c.id.split(":").pop()??0);for(let c of t.objects){if(c.type!=="row")continue;let d=c.segmentedRow?.repeatLabelOnComponents===!0;if(c.segmentedRow&&!d&&c.segmentedRow.componentIndex!==0)continue;let h=d?c.labelPresentation:c.segmentedRow?.labelPresentation??c.labelPresentation;if(h?.visible===!1||h?.positionPreset==="none")continue;let p=c.segmentedRow&&!d?c.segmentedRow.groupId:c.id,m=(n.get(p)??[]).slice().sort((R,E)=>s(R)-s(E));if(!m.length)continue;let f=m[0],y=m[m.length-1],u=h?.labelStyle,g=h?.style==="pill"?Ct(o):null,S=g?g.plate:o,b=fe(S,u?.color,e.theme.rowLabelColor??e.theme.textColor??"#e6e9f0",je),v=u?.size??xn,k=h?.rotation??0,w=e.objectFilteredOut(c)?.15:1,C=m.reduce((R,E)=>R??e.seatSection.get(E.id),void 0),T=c.segmentedRow?.displayLabel??c.displayLabel??ft(c.label,C?.label);if(!T)continue;let L=C?[...new Set([C.id,C.logicalId,C.zone].filter(R=>!!R))]:void 0,x=(R,E,M)=>i.push({text:T,x:R,y:E,rotation:k,fontSize:v,ink:b,opacity:w,...g?{pill:g}:{},...L?.length?{focusKeys:L}:{},...M?{automaticAway:M}:{}});if(h?.position){x(h.position.x,h.position.y);continue}let I=e.seatR+12,A=h?.positionPreset??"start";if(A==="start"||A==="both"){let R=c.rotation*Math.PI/180,E={x:-Math.cos(R),y:-Math.sin(R)};x(f.x+E.x*I,f.y+E.y*I,E)}if(A==="end"||A==="both"){let R=(c.rotation+c.curve)*Math.PI/180,E={x:Math.cos(R),y:Math.sin(R)};x(y.x+E.x*I,y.y+E.y*I,E)}}let l=(e.seatR+12)*2.2,a=[];for(let c of i){let d=a.find(h=>h.text===c.text&&Math.hypot(h.x-c.x,h.y-c.y)<=l);if(d){d.x=(d.x+c.x)/2,d.y=(d.y+c.y)/2;continue}a.push(c)}return a}function Ko(t,e,i=J){let o=t.rotation()*Math.PI/180,n=Math.abs(Math.cos(o)),r=Math.abs(Math.sin(o)),s=(t.width()*n+t.height()*r)/2+i,l=(t.width()*r+t.height()*n)/2+i;return{x:e.x-s,y:e.y-l,width:s*2,height:l*2}}function xl(t,e,i,o){let n={x:e.x,y:e.y},r=e.automaticAway;if(!r)return n;let s={x:-r.y,y:r.x},l=Math.max(7,Math.min(16,e.fontSize*.75)),a=[{x:0,y:0}];for(let p=1;p<=4;p++){let m=l*p;a.push({x:s.x*m,y:s.y*m},{x:-s.x*m,y:-s.y*m},{x:r.x*m,y:r.y*m},{x:(r.x+s.x)*m,y:(r.y+s.y)*m},{x:(r.x-s.x)*m,y:(r.y-s.y)*m})}let c=n,d=1/0,h=1/0;for(let p of a){let m={x:n.x+p.x,y:n.y+p.y},f=Ko(t,m),u=(o?Qt(o,f,{mode:"overlap"}).length:0)+i.collisionCount(f),g=Math.hypot(p.x,p.y);if((u<d||u===d&&g<h)&&(c=m,d=u,h=g),u===0)break}return c}var Ei=class{constructor(){this.generationCount=0;this.promises=[];this.errors=[];this.cancels=new Set}get generation(){return this.generationCount}get failures(){return this.errors}pending(){return this.promises.slice()}track(e,i,o,n,r){let s=this.generationCount;/^https?:\/\//i.test(i)&&(e.crossOrigin="anonymous");let l=new Promise(a=>{let c=!1,d=()=>{c||(c=!0,this.cancels.delete(h),a())},h=()=>{e.onload=null,e.onerror=null;try{e.removeAttribute("src"),e.src=""}catch{}d()};this.cancels.add(h),e.onload=()=>{if(!r.exportMode){s===this.generationCount&&n(),d();return}(typeof e.decode=="function"?e.decode():Promise.resolve()).then(()=>{s===this.generationCount&&n()}).catch(()=>{s===this.generationCount&&this.errors.push(`${o} could not be decoded.`)}).finally(d)},e.onerror=()=>{s===this.generationCount&&this.errors.push(`${o} could not be loaded.`),d()},e.src=i});this.promises.push(l)}cancelAll(){this.generationCount++;for(let e of[...this.cancels])e();this.cancels.clear(),this.promises=[],this.errors=[]}};function Tl(t,e){let i=e,o=i._cache.get("canvas");if(!o)return;let n=[o.scene,o.filter,o.hit].map(r=>r?._canvas).filter(r=>!!r);n.length&&t.Util.releaseCanvas(...n),i._cache.delete("canvas")}function Pl(t,e){let i=0,o=0,n=r=>{i||(i=r),o+=1;let s=r-i;s>=1e3&&(t(Math.round(o*1e3/s)),o=0,i=r),e(requestAnimationFrame(n))};e(requestAnimationFrame(n))}function Nu(t){return t<0?0:t>1?1:t}function Il(t){let e=t.now??(()=>typeof performance<"u"?performance.now():Date.now()),i=t.budgetMs??8,o=t.reducedMotion===!0,n=t.chunks.length>1?Math.min(30,Math.max(0,840/(t.chunks.length-1))):0,r=0,s=!1,l=!1,a=null,c=[],d=typeof globalThis<"u"?globalThis:{},h=()=>{a&&(a.kind==="idle"?d.cancelIdleCallback?.(a.id):a.kind==="frame"?d.cancelAnimationFrame?.(a.id):clearTimeout(a.id),a=null)},p=u=>{if(!c.length&&typeof d.requestIdleCallback=="function"){a={kind:"idle",id:d.requestIdleCallback(()=>{a=null,u()},{timeout:120})};return}if(typeof d.requestAnimationFrame=="function"){a={kind:"frame",id:d.requestAnimationFrame(()=>{a=null,u()})};return}a={kind:"timer",id:setTimeout(()=>{a=null,u()},16)}},m=()=>{l||s||(l=!0,h(),t.done())},f=u=>{for(let g=c.length-1;g>=0;g--){let S=c[g],b=o?1:Nu((u-S.startedAt)/160);t.fade(S.work,b),b>=1&&c.splice(g,1)}return c.length>0},y=()=>{if(s)return;let u=e(),g=u;for(;r<t.chunks.length&&(r===0||e()-g<i);){let b=t.chunks[r++];if(t.build(b.work),t.fade(b.work,o?1:0),o||c.push({work:b.work,startedAt:u+(r-1)*n}),e()-g>=i)break}let S=f(u);t.draw(),r<t.chunks.length||S?p(y):m()};return p(y),{cancel(){if(!l){s=!0,h();for(let u of c)t.fade(u.work,1);c.length=0}},finishNow(){if(!(s||l)){for(;r<t.chunks.length;){let u=t.chunks[r++];t.build(u.work)}for(let u of t.chunks)t.fade(u.work,1);c.length=0,t.draw(),m()}},get done(){return l}}}function Ml(t){let e=new Map,i=[];for(let n of t.seats){let r=t.sectionIdOf(n.id);if(r==null){i.push(n);continue}let s=e.get(r);s?s.push(n):e.set(r,[n])}let o=[...e.entries()].flatMap(([n,r])=>{let s=t.sections.find(l=>l.id===n);return s?[{chunk:{id:n,work:{seats:r,group:s.liftGroupSeat}},distance:Math.hypot(s.centroid.x-t.viewportCentre.x,s.centroid.y-t.viewportCentre.y)}]:[]}).sort((n,r)=>n.distance-r.distance).map(n=>n.chunk);return i.length&&t.looseGroup&&o.push({id:"",work:{seats:i,group:t.looseGroup}}),o}function Et(t){return{th:oi*Math.PI/180*t.isoT,sg:1-(1-St)*t.isoT}}function Rl(t,e){let{th:i,sg:o}=Et(e),n=e.centre,r=t.x-n.x,s=t.y-n.y,l=r*Math.cos(i)-s*Math.sin(i),a=(r*Math.sin(i)+s*Math.cos(i))*o;return{x:n.x+l,y:n.y+a}}function Al(t,e){let{th:i,sg:o}=Et(e),n=e.centre,r=t.x-n.x,l=(t.y-n.y)/o,a=r*Math.cos(i)+l*Math.sin(i),c=-r*Math.sin(i)+l*Math.cos(i);return{x:n.x+a,y:n.y+c}}function El(t,e){let{th:i,sg:o}=Et(e),n=t*e.isoT;return{x:-(n/o)*Math.sin(i),y:-(n/o)*Math.cos(i)}}function zo(t,e,i){let o=Nn(e);t.offset(i),t.position(le(e,i)),t.rotation(o.rotationDeg),t.scale({x:o.scaleX,y:o.scaleY}),t.skewX(o.skewX),t.skewY(0)}function Ft(t){t.position({x:0,y:0}),t.offset({x:0,y:0}),t.scale({x:1,y:1}),t.rotation(0),t.skewX(0),t.skewY(0)}function Fl(t,e){let i=Math.hypot(e.x-t.surfaceFocal.x,e.y-t.surfaceFocal.y),o=Math.max(0,i-t.frontDistanceWorld);return t.liftWorld+o*Math.tan(t.rakeDeg*Math.PI/180)}function _l(t,e,i){return t.perspectiveAffine?le(t.perspectiveAffine,e):le(i,e)}function Ye(t,e){return e?le(e,t):t}function Bl(t,e){let i=0;for(let h of t.seats){let p=Math.max(0,(h.eyeHeightM??ee)-ee);i=Math.max(i,p*qe)}for(let h of t.objects)h.type==="section"&&(i=Math.max(i,Nt(h,{floorBaseHeightM:t.floorBaseHeightMFor(h.id)}).height*qe));let o=On(t.bounds,i),n=Jt(o,o.target),r=Dn(n);e.seatLocal.clear(),e.seatProjected.clear(),e.seatDepth.clear(),e.seatScale.clear();let s=1/0,l=1/0,a=-1/0,c=-1/0;for(let h of t.seats){let p=Math.max(0,(h.eyeHeightM??ee)-ee),m=ve(o,h,p*qe),f={x:m.x,y:m.y};e.seatProjected.set(h.id,f),e.seatLocal.set(h.id,le(r,f)),e.seatDepth.set(h.id,m.depth),e.seatScale.set(h.id,m.scale),s=Math.min(s,m.x),l=Math.min(l,m.y),a=Math.max(a,m.x),c=Math.max(c,m.y)}for(let h of[{x:t.bounds.x,y:t.bounds.y},{x:t.bounds.x+t.bounds.width,y:t.bounds.y},{x:t.bounds.x+t.bounds.width,y:t.bounds.y+t.bounds.height},{x:t.bounds.x,y:t.bounds.y+t.bounds.height}]){let p=ve(o,h,0);s=Math.min(s,p.x),l=Math.min(l,p.y),a=Math.max(a,p.x),c=Math.max(c,p.y)}let d=Math.max(24,t.seatR*3);return{camera:o,baseAffine:n,baseInverse:r,bounds:Number.isFinite(s)?{x:s-d,y:l-d,width:Math.max(1,a-s+d*2),height:Math.max(1,c-l+d*2)}:null}}function Ol(t,e,i){let o=i?[...i].map(n=>t.seatById.get(n)).filter(n=>!!n):e?t.seats:[...t.perspectiveAppliedSeats].map(n=>t.seatById.get(n)).filter(n=>!!n);for(let n of o){if(e&&t.perspectiveAppliedSeats.has(n.id))continue;let r=e?t.perspectiveSeatProjected.get(n.id)??n:n,s=e?t.perspectiveSeatScale.get(n.id)??1:1,l=t.circleById.get(n.id);l?.position(r),l?.scale({x:s,y:s});let a=t.accessRingById.get(n.id);a?.position(r),a?.scale({x:s,y:s});let c=t.accessGlyphById.get(n.id);if(c){let h=t.seatR*1.5/Re;c.position(r),c.scale({x:h*s,y:h*s})}let d=t.boothLabelById.get(n.id);d?.position(r),d?.scale({x:s,y:s}),e&&t.perspectiveAppliedSeats.add(n.id)}e||t.perspectiveAppliedSeats.clear()}function Fi(t,e=!0){let i=e?[t.bgLayer,t.seatLayer,t.overlayLayer]:[t.bgLayer,t.overlayLayer];for(let o of i)o.position({x:0,y:0}),o.offset({x:0,y:0}),o.scale({x:1,y:1}),o.rotation(0),o.skewX(0),o.skewY(0)}function Dl(t,e=!0){for(let i of t.sections()){Ft(i.rootGroupBg),Ft(i.liftGroupBg),e&&Ft(i.liftGroupSeat),i.rootGroupBg.zIndex(i.bgZIndex),e&&i.liftGroupSeat.zIndex(i.seatZIndex);let o=t.labelLiftGroups.get(i.id);o&&e&&Ft(o),i.perspectiveAffine=void 0,i.perspectiveCorrection=void 0,i.perspectiveDepth=void 0}}function Hl(t,e=!0){let i=t.perspectiveCamera(),o=t.perspectiveBaseAffine(),n=t.perspectiveBaseInverse();if(!i||!o||!n)return;let r=t.seats().length>2500&&t.sections().length>0;t.cached()&&!r&&(t.seatLayer.clearCache(),t.seatLayer.listening(!0),t.setCached(!1)),Fi(t,e),Dl(t,e);for(let l of[t.bgLayer,t.overlayLayer])zo(l,o,i.target);t.perspectiveAppliedSeats.clear(),r||t.applyExactSeatAnchors(!0);for(let l of t.sections()){let a=h=>Fl(l,h),c=Jt(i,l.centroid,a),d=Hn(n,c);l.perspectiveAffine=c,l.perspectiveCorrection=d,l.perspectiveDepth=ve(i,l.centroid,a(l.centroid)).depth,zo(l.liftGroupBg,d,l.centroid);for(let h=0;h<l.sideFaces.length;h++){let p=l.outline[h],m=l.outline[(h+1)%l.outline.length],f=Ye(ve(i,p,0),n),y=Ye(ve(i,m,0),n),u=Ye(ve(i,m,a(m)),n),g=Ye(ve(i,p,a(p)),n);l.sideFaces[h].points([f.x,f.y,y.x,y.y,u.x,u.y,g.x,g.y]),l.sideFaces[h].opacity(.9)}}let s=[...t.sections()].sort((l,a)=>(a.perspectiveDepth??0)-(l.perspectiveDepth??0));for(let l of s)l.rootGroupBg.moveToTop(),l.liftGroupSeat.moveToTop();t.unsectionedSeatGroup()?.moveToTop(),t.syncSeatOverlayPositions(),r||t.updateSeatGroupVisibility(),t.bgLayer.batchDraw(),t.seatLayer.batchDraw(),t.overlayLayer.batchDraw()}function Nl(t){if(Dl(t),t.applyExactSeatAnchors(!1),t.isoT()===0)Fi(t);else{let{th:i,sg:o}=Et(t.isoState()),n=Math.cos(i),r=o*Math.sin(i),s=-Math.sin(i),l=o*Math.cos(i),a=Math.sqrt(n*n+r*r),c=n*l-r*s,d=Math.atan2(r,n)*180/Math.PI,h=a,p=c/a,m=(n*s+r*l)/c,f=t.isoCentre();for(let y of[t.bgLayer,t.seatLayer,t.overlayLayer])y.position({x:f.x,y:f.y}),y.offset({x:f.x,y:f.y}),y.rotation(d),y.scaleX(h),y.scaleY(p),y.skewX(m),y.skewY(0)}t.applyUprightLabels(),t.applyElevation(),t.updateSeatGroupVisibility(),t.bgLayer.batchDraw(),t.seatLayer.batchDraw(),t.overlayLayer.batchDraw()}import{Group as Gl}from"konva/lib/Group";import{Line as Gu}from"konva/lib/shapes/Line";import{Rect as Wu}from"konva/lib/shapes/Rect";import{Text as Xo}from"konva/lib/shapes/Text";function Wl(t,e){let i=Gt(e.outline,e.holes),o=oe(t.canvasBackground),n=[],r=new Map,s=0,l=z(e.outline),a=t.seatIndex?Qt(t.seatIndex,l).map(M=>t.seatById.get(M)).filter(M=>!!M):t.seats;for(let M of a)t.seatSection.has(M.id)||te(M,e.outline,e.holes)&&(n.push(M.id),r.set(M.categoryKey,(r.get(M.categoryKey)??0)+1),(t.statusById.get(M.id)??"free")==="free"&&s++);let c=e.color??zt([...r].map(([M,Y])=>({hex:t.catColor.get(M)??"#6e7bff",w:Y})),"#3a4358"),d=un(e.elevation),h=Nt(e,{floorBaseHeightM:t.floorBaseHeightMFor(e.id)}),p=h.height*qe,m=new Gl({listening:!1});t.bgLayer.add(m);let f=new Gl({listening:!1});m.add(f);let y=new st({listening:!0});t.seatLayer.add(y);let u=[];if(p>0){let M=be(t.zoneColor.get(e.zone??"")??c,.42);for(let Y=0;Y<e.outline.length;Y++){let G=new Gu({points:[],closed:!0,fill:M,stroke:B("#000000",.25),strokeWidth:1,opacity:0,listening:!1,perfectDrawEnabled:!1});u.push(G),m.add(G)}}f.moveToTop();let g=f,S=e.color??t.zoneColor.get(e.zone??"")??"#3a4358",b=Xe(e.outline,e.holes,{stroke:B(S,.5),strokeWidth:1,fill:B(S,.08),listening:!1},e.outlinePath);g.add(b);let v=Xe(e.outline,e.holes,{fill:o.sectionFill,stroke:o.sectionStroke,strokeWidth:Ge,opacity:0,listening:!1},e.outlinePath);g.add(v);let k=e.labelPresentation?.labelStyle,w=k?.color,C=o.sectionInk,P=(k?.size??18)/18,T=new Wu({x:e.labelPresentation?.position?.x??i.x,y:e.labelPresentation?.position?.y??i.y,width:0,height:0,opacity:0,listening:!1,perfectDrawEnabled:!1});g.add(T);let L=new Xo({x:e.labelPresentation?.position?.x??i.x,y:e.labelPresentation?.position?.y??i.y,text:e.displayLabel??e.label,rotation:e.labelPresentation?.rotation??0,visible:e.labelPresentation?.visible!==!1,fontSize:18*P,fontStyle:Fe,fontFamily:t.labelFont(),fill:fe(o.sectionFill,w,C),listening:!1,perfectDrawEnabled:!1});L.offsetX(L.width()/2),L.offsetY(L.height()/2),g.add(L);let x=new Xo({x:i.x,y:i.y,text:"",fontSize:12,fontStyle:Fe,fontFamily:t.labelFont(),fill:fe(o.sectionFill,w,C),opacity:0,listening:!1,perfectDrawEnabled:!1});g.add(x);let I=new Xo({x:i.x,y:i.y,text:_("map.seatsLeft",{count:s}),fontSize:12,fontStyle:kr,fontFamily:"JetBrains Mono, ui-monospace, monospace",fill:o.sectionInk,opacity:0,listening:!1,perfectDrawEnabled:!1});I.offsetX(I.width()/2),g.add(I);let A={id:e.id,logicalId:e.logicalSectionId??e.id,label:e.displayLabel??e.label,outline:e.outline,...e.outlinePath?{outlinePath:e.outlinePath}:{},holes:e.holes??[],centroid:i,labelAnchors:Cs(e.outline,e.holes??[],i),memberCategoryKeys:new Set(n.map(M=>t.seatById.get(M)?.categoryKey).filter(Boolean)),shellCategoryColor:t.dominantSellableColor(n),shellFill:o.sectionFill,shellStroke:o.sectionStroke,labelArea:dn(e.outline,e.holes),zone:e.zone,memberIds:n,total:n.length,free:s,baseFill:c,outlineTint:S,outlinePoly:b,blockPoly:v,namePlate:T,nameLabel:L,numberLabel:x,subLabel:I,preferredInk:C,...w?{explicitInk:w}:{},labelScale:P,nameLabelFits:!1,numberLabelFits:!1,subLabelFits:!0,elevation:d,liftWorld:p,rakeDeg:h.rake,surfaceFocal:n.length?{...t.seatById.get(n[0])?.focalPoint??t.isoCentre}:{...t.chartDoc?.focalPoint??t.isoCentre},frontDistanceWorld:0,rootGroupBg:m,bgZIndex:m.zIndex(),seatZIndex:y.zIndex(),liftGroupBg:f,liftGroupSeat:y,sideFaces:u},R=n.map(M=>t.seatById.get(M)).filter(M=>!!M),E=R.length?R:e.outline;return A.frontDistanceWorld=Math.min(...E.map(M=>Math.hypot(M.x-A.surfaceFocal.x,M.y-A.surfaceFocal.y))),A}function Vl(t,e,i){if(!e?.length)return;let o=new Set(e),n=t.seats.filter(h=>!o.has(h.categoryKey)||t.seatInClosedSection(h.id)?!1:(t.statusById.get(h.id)??"free")==="free"||t.ownedHold.has(h.id));if(!n.length)return;let r=ko(n.map(h=>h.id),t.seatSection);r&&t.focusSection(r);let s=Math.max(24,t.seatR*3),l=n.map(h=>t.renderedSeatPoint(h)),a=t.clusterLabels.boundsForSeats(n.map((h,p)=>({...h,...l[p]})),s),c=at(l,s);if(a?.singleBlock&&(!t.hasSections||r!=null)){let h=t.clusterLabels.diveTarget(a.bounds,a.anchor);if(h){t.focusRegion(h,{animate:i?.animate,durationMs:t.cameraGlideMs,minScale:Math.min(t.seatLabelTargetScale(),t.zoomBounds().max),maxScale:lt(t)});return}}let d={x:c.x+c.width/2,y:c.y+c.height/2};wo({stage:t.stage,box:c,bounds:t.zoomBounds(),viewport:t.framingViewport(),centreScreen:t.worldToScreen(d)})||t.focusRegion(c,{animate:i?.animate,durationMs:t.cameraGlideMs})}function lt(t){let e=ol(Math.max(t.seatR,t.markerR));return Math.max(e,It(t.markerR))}function Kl(t,e){let i=e===void 0?t.accessFilter:e;if(!i)return!1;let o=zl(t,i);if(!o.length)return!1;t.clearSectionFocus();let n=Math.max(24,t.seatR*3),r=at(o.map(l=>t.renderedSeatPoint(l)),n),s={x:r.x+r.width/2,y:r.y+r.height/2};return wo({stage:t.stage,box:r,bounds:t.zoomBounds(),viewport:t.framingViewport(),centreScreen:t.worldToScreen(s)})||t.focusRegion(r,{durationMs:t.cameraGlideMs,maxScale:lt(t)}),!0}function zl(t,e){return t.seats.filter(i=>t.seatInClosedSection(i.id)||Te(i,e)!=="match"?!1:(t.statusById.get(i.id)??"free")==="free"||t.ownedHold.has(i.id))}function Xl(t,e,i){let o=i===void 0?t.accessFilter:i;if(!o||!t.sections.some(r=>r.id===e||r.logicalId===e))return!1;let n=t.sectionMembers(e).filter(r=>{if((t.statusById.get(r)??"free")!=="free")return!1;let s=t.seatById.get(r);return s!=null&&Te(s,o)==="match"});return n.length&&Yo(t,n)||t.focusSection(e),!0}function Yl(t,e){let i=e===void 0?t.accessFilter:e;if(!i)return null;let o=zl(t,i);if(!o.length)return null;let n=Math.max(24,t.seatR*3),r=at(o.map(a=>t.renderedSeatPoint(a)),n),s=t.getWorldBounds(),l=s.width>0&&s.height>0&&r.width>=s.width*Tt&&r.height>=s.height*Tt;return{spaces:o.length,sections:$o(t,i),wholeVenue:l}}function Yo(t,e,i){let o=e.map(a=>t.seatById.get(a)).filter(a=>a!=null);if(!o.length)return!1;let n=t.seatPitch>0?t.seatPitch:t.seatR*2,r=at(o.map(a=>t.renderedSeatPoint(a)),Math.max(24,t.seatR*3,n*4)),s=t.getWorldBounds();if(s.width>0&&s.height>0&&r.width>=s.width*Tt&&r.height>=s.height*Tt)return!1;let l=ko(o.map(a=>a.id),t.seatSection);return l&&t.markSectionFocus(l,{x:r.x+r.width/2,y:r.y+r.height/2}),t.focusRegion(r,{animate:i?.animate,durationMs:t.cameraGlideMs,minScale:Math.min(t.seatLabelTargetScale(),t.zoomBounds().max),maxScale:lt(t)}),!0}function Ul(t,e,i=!0,o){let n=t.sectionBounds(e);if(!n)return;let r=t.sectionMembers(e).map(c=>t.seatById.get(c)).filter(c=>c!=null),s=r.filter(c=>(t.statusById.get(c.id)??"free")==="free"||t.ownedHold.has(c.id)),l=(s.length?s:r).map(c=>t.renderedSeatPoint(c)),a=t.narrowSeatDetailFocus(l,n,o);t.focusRegion(a?.bounds??n,{animate:i,minScale:a?.minScale,maxScale:lt(t)})}function Uo(t,e){if(!t.accessFilter)return 0;let i=t.accessFreeBySection.get(e.id);if(i!==void 0)return i;let o=$l(t,e,t.accessFilter);return t.accessFreeBySection.set(e.id,o),o}function $l(t,e,i){return Js(e.memberIds,i,o=>t.statusById.get(o)??"free",o=>t.seatById.get(o))}function $o(t,e){let i=e===void 0?t.accessFilter:e;if(!i)return[];let o=i===t.accessFilter,n=new Map;for(let r of t.sections){if(t.isSectionClosed(r))continue;let s=o?Uo(t,r):$l(t,r,i);if(s<=0)continue;let l=n.get(r.logicalId);l?l.free+=s:n.set(r.logicalId,{id:r.logicalId,label:r.label,free:s})}return[...n.values()]}var Bt=class Bt{constructor(e,i={}){this.seatLabelPool=new Map;this.statusCuePool=new Map;this.labelLiftGroups=new Map;this.seats=[];this.seatById=new Map;this.seatIndex=null;this.chartDoc=null;this.activeFloorId="";this.stacked=!1;this.floorOverview=!1;this.floorLabelStyle="number";this.circleById=new Map;this.glyphMarkers=[];this.seatGlyphDetail=!0;this.boothDims=new Map;this.boothLabelById=new Map;this.seatLabelById=new Map;this.seatLabelDrops=new Map;this.seatLabelRungOpen=!1;this.accessRingById=new Map;this.accessGlyphById=new Map;this.freeTextById=new Map;this.iconNodeById=new Map;this.primaryFocalLabels=new Map;this.gaById=new Map;this.statusById=new Map;this.catColor=new Map;this.catByKey=new Map;this.theme={};this.canvasBackground=bo;this.effSelection=nt;this.colorblind=!1;this.cbHueByKey=new Map;this.rowLabelPlan=[];this.catOrder=[];this.selection=new Set;this.selectionMarkers=new Map;this.momentsCache=null;this.breathCache=null;this.ownedCache=null;this.beaconsCache=null;this.hoverCardCache=null;this.ownedHold=new Set;this.seatMarks=new xi;this.seatPaintCache=null;this.selectionFocusId=null;this.selectionFocusKeep=null;this.hiddenPose=null;this.hoveredId=null;this.focusedId=null;this.accessFilter=null;this.accessFreeBySection=new Map;this.categoryHighlight=null;this.categoryFilter=null;this.commercialLimitedFilter=!1;this.sections=[];this.zones=[];this.landmarkBoxes=[];this.seatSection=new Map;this.unsectionedSeatGroup=null;this.catPrice=new Map;this.dimmedSections=new Set;this.sectionHeat=new Map;this.closedSections=new Set;this.focusedSectionId=null;this.focusMembership=new Map;this.focusMembershipKey=null;this.focusAnchor=null;this.focusRoams=!1;this.focusBackdrop=null;this.focusDimOverlay=null;this.sectionFocusDim=!0;this.cameraGestures=0;this.objectFloor=new Map;this.unsectionedSeatIds=null;this.zoneColor=new Map;this.hasSections=!1;this.hasBoothText=!1;this.isoT=0;this.isoTarget=0;this.isoRaf=0;this.viewMode="flat";this.perspectiveCamera=null;this.perspectiveBaseAffine=null;this.perspectiveBaseInverse=null;this.perspectiveSeatLocal=new Map;this.perspectiveSeatProjected=new Map;this.perspectiveSeatDepth=new Map;this.perspectiveSeatScale=new Map;this.perspectiveAppliedSeats=new Set;this.perspectiveBounds=null;this.isoCentre={x:0,y:0};this.glideRaf=0;this.labelsVisible=!1;this.labelFadeRaf=0;this.glideInProgress=!1;this.destroyed=!1;this.lodScale=0;this.reducedMotion=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;this.cameraGlideMs=tl();this.fitScale=1;this.fitPose="";this.viewportInsets={...Do};this.seatR=ce;this.markerR=ce;this.seatPitch=0;this.bounds={x:0,y:0,width:1,height:1};this.cached=!1;this.dpr=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2);this.assets=new Ei;this.seatReveal=null;this.seatRevealPending=!1;this.progressiveSeatFloor=800;this.rafId=0;this.recacheTimer=null;this.mountCachePending=!1;this.resizeObs=null;this.viewChangeRaf=0;this.zoomSettleRaf=0;this.marquee=null;this.marqueeCur=null;this.onKeyDown=e=>{if(this.opts.manageMode){if((e.metaKey||e.ctrlKey)&&(e.key==="a"||e.key==="A")){e.preventDefault(),this.opts.onMarquee?.(this.selectAllSelectable());return}if(e.key==="Escape"&&this.selection.size){e.preventDefault(),this.clearSelection(),this.opts.onMarquee?.([]);return}}let i=e.key==="ArrowLeft"?{x:-1,y:0}:e.key==="ArrowRight"?{x:1,y:0}:e.key==="ArrowUp"?{x:0,y:-1}:e.key==="ArrowDown"?{x:0,y:1}:null;if(i){e.preventDefault();let o=this.focusedId?this.nearestSeat(this.focusedId,i):this.seats[0]?.id??null;o&&this.focusSeat(o);return}if((e.key==="Enter"||e.key===" ")&&this.focusedId){e.preventDefault(),this.toggleSeat(this.focusedId);let o=this.seatById.get(this.focusedId);o&&this.opts.onFocusSeat?.(o)}};this.cameraHostCache=null;this.projectionHostCache=null;this.seatAnchorContextCache=null;this.interactionHostCache=null;this.container=e,this.opts={maxSelection:10,selectableStatuses:["free"],...i},this.exportMode=i.exportMode===!0,this.loadingReveal=i.loadingReveal??"progressive",this.onSeatsRevealed=i.onSeatsRevealed,this.currency=i.currency;let o=_i.pixelRatio;if(this.exportMode&&(this.dpr=1),_i.pixelRatio=this.dpr,this.stage=new Vu({container:e,width:e.clientWidth||1,height:e.clientHeight||1,draggable:!1}),this.gestures=new Ri(this.pointerHost),this.exportMode||(e.style.touchAction="none",this.gestures.attach(),e.tabIndex<0&&(e.tabIndex=0),e.setAttribute("role","application"),e.getAttribute("aria-label")||e.setAttribute("aria-label",_("map.aria")),e.addEventListener("keydown",this.onKeyDown)),this.bgLayer=new qo({listening:!this.exportMode}),this.seatLayer=new qo({listening:!this.exportMode}),this.overlayLayer=new qo({listening:!1}),this.labelGroup=new _t({listening:!1}),this.overlayLayer.add(this.labelGroup),this.rowLabelGroup=new _t({listening:!1}),this.labelGroup.add(this.rowLabelGroup),this.fgDecorGroup=new _t({listening:!1}),this.overlayLayer.add(this.fgDecorGroup),this.clusterLabels=new Li({labelLayer:this.overlayLayer,stage:this.stage,exportMode:this.exportMode,canvasBackground:()=>this.canvasBackground,labelFont:()=>this.labelFont(),reducedMotion:()=>this.reducedMotion,destroyed:()=>this.destroyed,hasSections:()=>this.hasSections,seats:()=>this.seats,seatR:()=>this.seatR,readableScale:()=>It(this.markerR),pickableScale:()=>Oo(this.markerR),categoryLabel:n=>this.catByKey.get(n)?.label??"",categoryColor:n=>this.categoryDisplayColor(n),categoryPriceLabel:n=>this.categoryPriceLabel(n),categoryFilter:()=>this.categoryFilter,viewMode:()=>this.viewMode,seatsPickable:()=>this.seatsPickable(),screenToWorld:n=>this.screenToWorld(n),zoomBounds:()=>this.zoomBounds(),framingViewport:()=>this.framingViewport(),focusRegion:(n,r)=>this.focusRegion(n,r),cameraGlideMs:()=>this.cameraGlideMs}),this.hoverRing=new ql({radius:ce+2,stroke:"#ffffff",strokeWidth:2,opacity:Fo,listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),this.overlayLayer.add(this.hoverRing),this.focusRing=new ql({radius:ce+3,stroke:"#38bdf8",strokeWidth:2.5,dash:[4,3],opacity:.95,listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),this.overlayLayer.add(this.focusRing),this.stage.add(this.bgLayer,this.seatLayer,this.overlayLayer),this.exportMode&&(_i.pixelRatio=o),!this.exportMode){this.wireInteraction();let n=this.opts.onFps;n&&Pl(n,r=>{this.rafId=r})}!this.exportMode&&typeof ResizeObserver<"u"&&(this.resizeObs=new ResizeObserver(()=>this.handleResize()),this.resizeObs.observe(e))}get moved(){return this.gestures.moved}isGhostClick(e){return this.gestures.isGhostClick(e)}get moments(){return this.momentsCache||(this.momentsCache=new gi({overlayLayer:this.overlayLayer,seatLayer:this.seatLayer,stage:this.stage,seatRadius:()=>this.seatR,canvasBackground:()=>this.canvasBackground,selectionColor:()=>this.effSelection,reducedMotion:()=>this.reducedMotion,isDestroyed:()=>this.destroyed,isCached:()=>this.cached,isExportMode:()=>this.exportMode,labelFont:()=>this.labelFont(),viewMode:()=>this.viewMode,perspectiveSeatScale:e=>this.perspectiveSeatScale.get(e)??1,seat:e=>this.seatById.get(e),seatStatus:e=>this.statusById.get(e)??"free",seatShape:e=>this.circleById.get(e),seatPoint:e=>this.renderedSeatPoint(e),boothDims:e=>this.boothDims.get(e),selectionFocusId:()=>this.selectionFocusId,selectionFocusDims:e=>this.selectionFocusDims(e),categoryColor:e=>this.categoryDisplayColor(e),priceLabel:e=>this.categoryPriceLabel(e.categoryKey),seatClosed:e=>this.seatInClosedSection(e),screenToWorld:e=>this.screenToWorld(e),nearestSeat:(e,i)=>this.nearestSeatToScreen(e,i)})),this.momentsCache}get breath(){return this.breathCache||(this.breathCache=new yi({overlayLayer:this.overlayLayer,canvasBackground:()=>this.canvasBackground,selectionColor:()=>this.effSelection,categoryColor:e=>this.categoryDisplayColor(e),seatCategoryKey:e=>this.seatById.get(e)?.categoryKey??null,isOwnedHold:e=>this.ownedHold.has(e),reducedMotion:()=>this.reducedMotion,isDestroyed:()=>this.destroyed})),this.breathCache}get hoverCard(){return this.hoverCardCache||(this.hoverCardCache=new ki({container:this.container,labelFont:()=>this.labelFont(),canvasBackground:()=>this.canvasBackground,seatsPickable:()=>this.seatsPickable(),sectionAt:e=>this.sectionAt(e),sectionLabel:e=>this.sections.find(i=>i.logicalId===e)?.label??null,sectionMembers:e=>this.sectionMembers(e),hoveredSeatId:()=>this.hoveredId,hostCardOpen:()=>this.opts.hostCardOpen?.()??!1,nearestSeat:e=>this.nearestSeatToScreen(e,we,!0),seat:e=>this.seatById.get(e),seatSectionLabel:e=>this.seatSection.get(e)?.label??null,seatStatus:e=>this.statusById.get(e)??"free",seatClosed:e=>this.seatInClosedSection(e),seatSellable:e=>this.isSelectable(e),categoryOrder:()=>this.catOrder,categoryLabel:e=>this.catByKey.get(e)?.label??"",categoryPrice:e=>this.categoryPriceLabel(e),categoryColor:e=>this.categoryDisplayColor(e),categorySellable:e=>this.catByKey.get(e)?.notForSale!==!0,chartDoc:()=>this.chartDoc})),this.hoverCardCache}get beacons(){return this.beaconsCache||(this.beaconsCache=new Si({overlayLayer:this.overlayLayer,container:this.container,accent:()=>this.effSelection,accentInk:()=>mo(this.effSelection),labelFont:()=>this.labelFont(),stageScale:()=>this.stage.scaleX(),worldToScreen:e=>this.worldToScreen(e),activate:e=>this.activateBeacon(e)})),this.beaconsCache}activateBeacon(e){let i=e.kind==="section"?e.id:this.seatSection.get(e.seatId)?.logicalId??null;if(i){let o=this.sectionTapAnchor(i,this.renderedSeatPoint(this.seatById.get(e.seatId)??{x:0,y:0}));this.opts.onSectionTap?this.opts.onSectionTap(i,o):this.focusSection(i,{anchor:o})}this.focusSeat(e.seatId,{move:!i})}syncBeacons(){if(!this.beaconsCache&&!this.selectionMarkers.size)return;let e=this.beacons;e.sync(cs({rung:this.getRung(),sections:this.sections,zones:this.zones,ownedSeatIds:i=>this.ownedSeatIds(i),sectionName:i=>i.nameLabel.text()||i.logicalId,sectionAnchor:i=>this.ownedAnchor(i),sectionCentre:i=>i.centroid})),this.breath.syncBeacons(e.breathingRings())}ownedSeatIds(e){return e.memberIds.filter(i=>this.selection.has(i)||this.ownedHold.has(i))}ownedAnchor(e){let i=this.ownedSeatIds(e).map(r=>this.seatById.get(r)).filter(r=>r!=null).map(r=>this.renderedSeatPoint(r));if(!i.length)return{x:e.nameLabel.x(),y:e.nameLabel.y()};let o=0,n=0;for(let r of i)o+=r.x,n+=r.y;return{x:o/i.length,y:n/i.length}}get owned(){return this.ownedCache||(this.ownedCache=new wi({overlayLayer:this.overlayLayer,sections:()=>this.sections,ownedPoints:e=>this.ownedSeatPoints(e),sectionColor:e=>e.shellCategoryColor,labelAnchor:e=>this.ownedAnchor(e),stageScale:()=>this.stage.scaleX(),labelFont:()=>this.labelFont()})),this.ownedCache}sectionTapAnchor(e,i){return this.owned.anchorFor(e)??i}ownedSeatPoints(e){let i=[];for(let o of e.memberIds){if(!this.selection.has(o)&&!this.ownedHold.has(o))continue;let n=this.seatById.get(o);n&&i.push(this.renderedSeatPoint(n))}return i}get pointerHost(){return{container:this.container,stage:this.stage,cancelGlide:()=>this.cancelGlide(),releaseSectionFocusDim:()=>this.releaseSectionFocusDim(),updateSeatGroupVisibility:()=>this.updateSeatGroupVisibility(),scheduleViewChange:()=>this.scheduleViewChange(),afterViewChange:()=>this.afterViewChange(),zoomBounds:()=>this.zoomBounds(),marqueeActive:()=>!!this.marquee,marqueeShouldStart:e=>!!(this.opts.manageMode&&this.opts.marqueeSelect&&e.pointerType!=="touch"&&e.button===0&&this.getRung()==="seats"),beginMarquee:e=>this.beginMarquee(e),updateMarquee:e=>this.updateMarquee(e),finishMarquee:()=>this.finishMarquee(),cancelMarquee:()=>this.cancelMarquee(),touchProbeStart:e=>this.showTouchLoupe(e),touchProbeMove:e=>this.showTouchLoupe(e),touchProbeEnd:()=>this.hideTouchLoupe()}}setChart(e,i){if(e!==this.chartDoc&&(this.stacked=!1,this.floorOverview=!1),this.cancelAssetLoads(),this.cancelSeatReveal(),this.chartDoc=e,this.activeFloorId=i?.floorId??Wt(e)[0].id,this.objectFloor.clear(),e.floors&&e.floors.length>1)for(let r of e.floors)for(let s of r.objects)this.objectFloor.set(s.id,r.id),s.type==="section"&&s.logicalSectionId&&this.objectFloor.set(s.logicalSectionId,r.id);let o=this.floorView(e);this.focusedId=null,this.focusRing.visible(!1),this.bgLayer.destroyChildren(),this.clusterLabels.clear(),this.focusDimOverlay?.destroy(),this.focusDimOverlay=null,this.seatLayer.clearCache(),this.seatLayer.listening(!this.exportMode),this.seatLayer.destroyChildren(),this.unsectionedSeatGroup=null,this.labelGroup.destroyChildren(),this.labelLiftGroups.clear(),this.seatLabelPool.clear(),this.statusCuePool.clear(),this.rowLabelGroup=new _t({listening:!1}),this.labelGroup.add(this.rowLabelGroup),this.fgDecorGroup.destroyChildren(),this.circleById.clear(),this.glyphMarkers=[],this.boothDims.clear(),this.boothLabelById.clear(),this.seatLabelById.clear(),this.accessRingById.clear(),this.accessGlyphById.clear(),this.freeTextById.clear(),this.iconNodeById.clear(),this.focusMembership.clear(),this.focusMembershipKey=null,this.unsectionedSeatIds=null,this.primaryFocalLabels.clear(),this.gaById.clear();for(let r of this.selectionMarkers.values())r.destroy();this.selectionMarkers.clear(),this.beaconsCache?.clear(),this.breathCache?.syncBeacons([]),this.breathCache?.sync(this.selectionMarkers),this.ownedHold.clear(),this.seatMarks.clear(),this.selectionFocusId=null,this.selectionFocusKeep=null,this.statusById.clear(),this.accessFreeBySection.clear(),this.seatAnchorContextCache=null,this.selection.clear(),this.seatById.clear(),this.seatIndex=null,this.cached=!1,this.accessFilter=null,this.sections=[],this.zones=[],this.landmarkBoxes=[],this.seatSection.clear(),this.focusedSectionId=null,this.focusBackdrop=null,this.catPrice.clear(),this.zoneColor.clear(),this.lodScale=0,this.hasBoothText=!1,this.isoRaf&&(cancelAnimationFrame(this.isoRaf),this.isoRaf=0),this.isoT=0,this.isoTarget=0,this.viewMode="flat",this.perspectiveCamera=null,this.perspectiveBaseAffine=null,this.perspectiveBaseInverse=null,this.perspectiveSeatLocal.clear(),this.perspectiveSeatProjected.clear(),this.perspectiveSeatDepth.clear(),this.perspectiveSeatScale.clear(),this.perspectiveAppliedSeats.clear(),this.perspectiveBounds=null,this.resetLayerTransforms(),this.hasSections=o.objects.some(r=>r.type==="section");for(let r of e.zones??[])r.color&&this.zoneColor.set(r.id,r.color);this.seatLayer.opacity(1),this.hoverRing.visible(!1),this.hoveredId=null,this.theme=e.theme??{},this.seatR=Gn(this.theme.seatScale)*ce,this.container.style.background="",this.canvasBackground=this.resolveCanvasBackground(),this.container.style.background=this.canvasBackground,this.effSelection=this.resolveSelectionColor(),this.hoverRing.stroke(this.effSelection),this.hoverRing.radius(this.seatR+2),this.catColor.clear(),this.catByKey.clear(),this.catPrice.clear(),this.catOrder=e.categories.map(r=>r.key),this.cbHueByKey.clear(),[...this.catOrder].sort().forEach((r,s)=>{this.cbHueByKey.set(r,ui[s%ui.length])});for(let r of e.categories)this.catColor.set(r.key,r.color),this.catByKey.set(r.key,r),typeof r.price=="number"&&this.catPrice.set(r.key,r.price);for(let r of o.objects)r.type==="booth"&&this.boothDims.set(r.id,{width:r.width,height:r.height,rotation:r.rotation,...r.points&&r.points.length>=3?{points:r.points.map(s=>({x:s.x,y:s.y}))}:{}});this.seats=Ze(o,{floorBaseHeightM:this.stacked||this.floorOverview?0:this.floorBaseHeightMFor()});for(let r of this.seats)this.seatById.set(r.id,r),this.statusById.set(r.id,"free");this.seatIndex=Bn(this.seats,{seatRadius:this.seatR}),this.seatPitch=Ga(this.seats),this.markerR=Wa(this.seatR,this.seatPitch),this.clusterLabels.rebuild(),this.bounds=yn(o,{freeText:"exclude"}),this.isoCentre={x:this.bounds.x+this.bounds.width/2,y:this.bounds.y+this.bounds.height/2},this.buildPerspectiveProjection(o),this.renderBackground(o),this.unsectionedSeatGroup=new _t({listening:!this.exportMode}),this.seatLayer.add(this.unsectionedSeatGroup);let n=this.seatRevealWanted();this.seatRevealPending=n,n||this.renderSeats(),this.buildRowLabelPlan(o),this.overlayLayer.add(this.labelGroup),this.overlayLayer.add(this.fgDecorGroup),this.overlayLayer.add(this.hoverRing),this.overlayLayer.add(this.focusRing),this.mountCachePending=!n,this.zoomToFit(),n&&this.startSeatReveal()}seatRevealWanted(){return this.loadingReveal==="progressive"&&!this.exportMode&&this.sections.length>1&&this.seats.length>=this.progressiveSeatFloor}startSeatReveal(){this.cancelSeatReveal();let e=Ml({seats:this.seats,sections:this.sections,sectionIdOf:i=>this.seatSection.get(i)?.id??null,looseGroup:this.unsectionedSeatGroup,viewportCentre:this.viewportCentreInChartSpace()});this.seatReveal=Il({chunks:e,build:i=>this.renderSeats(i.seats),fade:(i,o)=>i.group.opacity(o),draw:()=>{this.seatLayer.batchDraw()},reducedMotion:this.reducedMotion,done:()=>{this.seatReveal=null,this.seatRevealPending=!1,this.afterViewChange(),this.fitPose&&vi(this.stage)===this.fitPose&&this.zoomToFit(),this.seatLayer.batchDraw(),this.onSeatsRevealed?.()}})}viewportCentreInChartSpace(){let e=this.stage.scaleX()||1;return{x:(this.stage.width()/2-this.stage.x())/e,y:(this.stage.height()/2-this.stage.y())/e}}cancelSeatReveal(e=!1){let i=this.seatReveal;this.seatRevealPending=!1,i&&(this.seatReveal=null,e?i.finishNow():i.cancel(),this.seats.length&&!this.destroyed&&this.updateLabels())}floorView(e){if(!e.floors?.length)return{...e,referenceImage:void 0,backgroundImage:gt(e)};if(this.floorOverview&&e.floors.length>=2)return bn(e,{labelStyle:this.floorLabelStyle});if(this.stacked&&e.floors.length>=2)return{...gn(e),referenceImage:void 0,backgroundImage:gt(e)};let i=e.floors.find(o=>o.id===this.activeFloorId)??e.floors[0];return{...e,objects:i.objects,focalPoint:i.focalPoint,referenceImage:void 0,backgroundImage:gt(i),floors:void 0}}floorBaseHeightMFor(e){let i=this.chartDoc?.floors;if(!i?.length)return 0;let o=this.stacked&&e?this.objectFloor.get(e)??this.activeFloorId:this.activeFloorId;return i.find(n=>n.id===o)?.baseHeightM??0}setStacked(e){!this.chartDoc||e===this.stacked||!(this.chartDoc.floors&&this.chartDoc.floors.length>=2)||(this.stacked=e,e&&(this.floorOverview=!1),this.setChart(this.chartDoc,{floorId:this.activeFloorId}))}isStacked(){return this.stacked}setFloorOverview(e){!this.chartDoc||e===this.floorOverview||!(this.chartDoc.floors&&this.chartDoc.floors.length>=2)||(this.floorOverview=e,e&&(this.stacked=!1),this.setChart(this.chartDoc,{floorId:this.activeFloorId}))}isFloorOverview(){return this.floorOverview}setFloorLabelStyle(e){e===this.floorLabelStyle||!this.chartDoc||(this.floorLabelStyle=e,this.floorOverview&&this.setChart(this.chartDoc,{floorId:this.activeFloorId}))}getFloorLabelStyle(){return this.floorLabelStyle}setActiveFloor(e){!this.chartDoc||e===this.activeFloorId&&!this.floorOverview&&!this.stacked||(this.floorOverview=!1,this.stacked=!1,this.setChart(this.chartDoc,{floorId:e}))}getFloors(){return this.chartDoc?Wt(this.chartDoc).map(e=>({id:e.id,name:e.name})):[]}getActiveFloorId(){return this.activeFloorId}setStatus(e,i){let o=!1,n=this.hasSections?new Set:null;for(let r of e){if(!this.statusById.has(r))continue;let s=this.statusById.get(r);if(s===i)continue;this.statusById.set(r,i);let l=this.circleById.get(r);if(l&&(this.paintSeat(l,r),o=!0),n){let a=this.seatSection.get(r);a&&(this.accessFreeBySection.delete(a.id),s==="free"!=(i==="free")&&(a.free+=i==="free"?1:-1),n.add(a))}}if(n&&n.size){for(let r of n)this.refreshSectionFill(r);this.bgLayer.batchDraw()}o&&(this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>ie&&this.updateLabels())}setSeatCategories(e){let i=!1,o=new Set;for(let[r,s]of Object.entries(e)){let l=this.seatById.get(r);if(!l||!this.catColor.has(s)||l.categoryKey===s)continue;l.categoryKey=s;let a=this.circleById.get(r);a&&(this.paintSeat(a,r),i=!0);let c=this.seatSection.get(r);c&&o.add(c)}if(!i)return;let n=new Map((this.chartDoc?Wt(this.chartDoc):[]).flatMap(r=>r.objects).filter(r=>r.type==="section").map(r=>[r.id,r]));for(let r of o){if(!n.get(r.id)?.color){let l=new Map;for(let a of r.memberIds){let c=this.seatById.get(a)?.categoryKey;c&&l.set(c,(l.get(c)??0)+1)}r.baseFill=zt([...l].map(([a,c])=>({hex:this.catColor.get(a)??"#6e7bff",w:c})),"#3a4358")}r.shellCategoryColor=this.dominantSellableColor(r.memberIds),this.refreshSectionFill(r)}o.size&&this.bgLayer.batchDraw(),this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>ie&&this.updateLabels()}setOwnedHold(e){let i=new Set((e??[]).filter(n=>this.statusById.has(n))),o=new Set([...this.ownedHold,...i]);this.ownedHold=i;for(let n of o){let r=this.circleById.get(n);r&&this.paintSeat(r,n),this.syncSelectionMarker(n)}o.size&&(this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>ie&&this.updateLabels(),this.overlayLayer.batchDraw())}setSelectionFocus(e){let i=e&&this.selection.has(e)?e:null;if(i===this.selectionFocusId)return;let o=this.selectionFocusId;this.selectionFocusId=i,this.selectionFocusKeep=Ra({focusedId:i,seats:this.seats,seatId:s=>s.id,seatPoint:s=>this.renderedSeatPoint(s),sectionOf:s=>this.seatSection.get(s)?.logicalId??null,seatPitch:this.seatPitch,seatRadius:this.seatR});let r=o!=null&&i!=null&&Aa(o,i,s=>this.seatSection.get(s)?.logicalId??null)?[o,i]:this.seats.map(s=>s.id);for(let s of r){let l=this.circleById.get(s);l&&this.paintSeat(l,s)}o&&this.syncSelectionMarker(o),i&&this.syncSelectionMarker(i);for(let[s,l]of this.selectionMarkers)l.opacity(this.selectionFocusDims(s)?.2:1);this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.updateLabels(),this.overlayLayer.batchDraw()}setSeatMarks(e){let i=this.seatMarks.merge(e,this.statusById);for(let o of i){let n=this.circleById.get(o);n&&this.paintSeat(n,o)}i.size&&(this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw())}getSeatMark(e){return this.seatMarks.get(e)}getStatus(e){return this.statusById.get(e)??"free"}getSelection(){let e=[];for(let i of this.selection){let o=this.seatById.get(i);o&&e.push(o)}return e}clearSelection(){let e=[...this.selection];for(let i of e)this.setSelected(i,!1,!0);this.overlayLayer.batchDraw()}setMaxSelection(e){this.opts.maxSelection=Math.max(0,Math.floor(e))}select(e){let i=[];for(let o of e){if(this.selection.has(o)||!this.isSelectable(o))continue;if(this.selection.size>=this.opts.maxSelection){this.opts.onSelectionLimit?.(this.opts.maxSelection);break}this.setSelected(o,!0,!0);let n=this.seatById.get(o);n&&i.push(n)}return i.length&&this.overlayLayer.batchDraw(),i}setManageInteraction(e){this.marquee&&this.cancelMarquee(),this.gestures.resetPan(),this.opts.manageMode=e.manageMode,this.opts.marqueeSelect=e.marqueeSelect,this.opts.selectableStatuses=[...e.selectableStatuses],e.maxSelection!=null&&(this.opts.maxSelection=e.maxSelection);let i=[...this.selection].filter(o=>!this.isSelectable(o));i.length&&this.deselect(i),!e.manageMode&&this.selection.size&&this.clearSelection(),this.clusterLabels.syncCursor(!1),this.overlayLayer.batchDraw()}setSectionHeat(e){this.sectionHeat.clear();for(let[i,o]of Object.entries(e??{}))Number.isFinite(o)&&this.sectionHeat.set(i,Math.max(0,Math.min(1,o)));for(let i of this.sections)this.refreshSectionHeat(i);this.bgLayer.batchDraw()}deselect(e){let i=!1;for(let o of e)this.selection.has(o)&&(this.setSelected(o,!1,!0),i=!0);i&&this.overlayLayer.batchDraw()}selectAllSelectable(){if(!this.opts.manageMode)return[];let e=[];for(let i of this.seats)this.isSelectable(i.id)&&e.push(i.id);return this.selectMany(e)}selectByLabels(e){if(!this.opts.manageMode)return[];let i=new Set(e),o=[];for(let n of this.seats)i.has(n.label)&&this.isSelectable(n.id)&&o.push(n.id);return this.selectMany(o)}setEvidenceSelection(e){return!this.seatById.has(e)||!this.isSelectable(e)?!1:(this.selection.size&&this.clearSelection(),this.setSelected(e,!0),this.overlayLayer.batchDraw(),this.selection.has(e))}getSelectableInSection(e){let i=[],o=new Set;for(let n of this.sections)if(!(n.id!==e&&n.logicalId!==e&&n.zone!==e))for(let r of n.memberIds){if(o.has(r)||(o.add(r),!this.isSelectable(r)))continue;let s=this.seatById.get(r);s&&i.push(s)}return i}selectMany(e){let i=e.filter(n=>!this.selection.has(n));if(!i.length)return this.getSelection();let o=this.selection.size+i.length<=nr;for(let n of i)if(o)this.setSelected(n,!0,!0);else{this.selection.add(n);let r=this.circleById.get(n);r&&this.paintSeat(r,n)}return this.cached||this.seatLayer.batchDraw(),this.overlayLayer.batchDraw(),this.getSelection()}beginMarquee(e){let i=this.screenToWorld(e),o=this.stage.scaleX()||1,n=new Ku({x:i.x,y:i.y,width:0,height:0,stroke:this.effSelection,strokeWidth:1.5/o,dash:[5/o,4/o],fill:"rgba(110,123,255,0.10)",listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});this.overlayLayer.add(n),this.marquee={start:i,rect:n},this.marqueeCur=i,this.overlayLayer.batchDraw()}updateMarquee(e){if(!this.marquee)return;let i=this.screenToWorld(e),{start:o,rect:n}=this.marquee;n.setAttrs({x:Math.min(o.x,i.x),y:Math.min(o.y,i.y),width:Math.abs(i.x-o.x),height:Math.abs(i.y-o.y)}),this.marqueeCur=i,this.overlayLayer.batchDraw()}cancelMarquee(){this.marquee&&(this.marquee.rect.destroy(),this.marquee=null,this.marqueeCur=null,this.overlayLayer.batchDraw())}finishMarquee(){let e=this.marquee;if(this.marquee=null,!e)return;e.rect.destroy(),this.overlayLayer.batchDraw();let i=this.marqueeCur??e.start;this.marqueeCur=null;let o=Math.min(e.start.x,i.x),n=Math.max(e.start.x,i.x),r=Math.min(e.start.y,i.y),s=Math.max(e.start.y,i.y),l=this.stage.scaleX()||1;if((n-o)*l<4&&(s-r)*l<4){this.selection.size&&(this.clearSelection(),this.opts.onMarquee?.([]));return}let a=[];for(let c of this.seats){let d=this.renderedSeatPoint(c);d.x<o||d.x>n||d.y<r||d.y>s||this.isSelectable(c.id)&&a.push(c.id)}this.selectMany(a),this.opts.onMarquee?.(this.getSelection())}flashSeat(e,i="#f43f5e"){let o=this.seatById.get(e);o&&ha(this.flashHost,e,this.renderedSeatPoint(o),i)}flashSection(e,i="#22a06b"){ua(this.flashHost,this.sections.filter(o=>o.id===e||o.zone===e),i)}get flashHost(){return{overlayLayer:this.overlayLayer,seatRadius:()=>this.seatR,reducedMotion:()=>this.reducedMotion,isDestroyed:()=>this.destroyed,viewMode:()=>this.viewMode,perspectiveSeatScale:e=>this.perspectiveSeatScale.get(e)??1,perspectiveLocalPoint:e=>this.perspectiveLocalPoint(e),projectedSectionPoint:(e,i)=>this.projectedSectionPoint(e,i),isoLiftLocal:e=>this.isoLiftLocal(e)}}nearestSeat(e,i){let o=this.seatById.get(e);if(!o)return null;let n=this.viewMode==="perspective"?this.perspectiveSeatProjected.get(o.id)??o:o,r=null,s=1/0;for(let l of this.seats){if(l.id===e)continue;let a=this.viewMode==="perspective"?this.perspectiveSeatProjected.get(l.id)??l:l,c=a.x-n.x,d=a.y-n.y,h=c*i.x+d*i.y;if(h<=.5)continue;let p=Math.abs(c*i.y-d*i.x),m=h+p*2.5;m<s&&(s=m,r=l.id)}return r}focusSeat(e,i){let o=this.seatById.get(e);if(!o)return;this.focusedId=e,this.focusRing.radius(this.seatR+3),this.focusRing.position(this.renderedSeatPoint(o));let n=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e)??1:1;this.focusRing.scale({x:n,y:n}),this.focusRing.visible(!0),i?.move!==!1&&this.ensureVisible(o),this.overlayLayer.batchDraw(),this.opts.onFocusSeat?.(o)}ensureVisible(e){let i=this.stage.width(),o=this.stage.height(),n=Math.max(this.stage.scaleX(),Ae*1.2),r=this.worldToScreen(e),s=70,l=r.x<s||r.x>i-s||r.y<s||r.y>o-s;if(this.stage.scaleX()<n||l){let a=this.renderedSeatPoint(e),c=this.viewMode==="perspective"&&this.perspectiveBaseAffine?le(this.perspectiveBaseAffine,a):this.isoT===0?a:this.isoForward(a);this.stage.scale({x:n,y:n}),this.stage.position({x:i/2-c.x*n,y:o/2-c.y*n}),this.afterViewChange(),this.stage.batchDraw()}}setViewportInsets(e){this.viewportInsets=qa(e),this.refitCurrentView()}getViewportInsets(){return{...this.viewportInsets}}framingViewport(){return Za(this.stage.width(),this.stage.height(),this.viewportInsets)}framingWorldRect(){return Ja(this.framingViewport(),e=>this.screenToWorld(e))}zoomToFit(){za(this.cameraHost)}get cameraHost(){return this.cameraHostCache??={stage:this.stage,bgLayer:this.bgLayer,seatLayer:this.seatLayer,exportMode:()=>this.exportMode,destroyed:()=>this.destroyed,reducedMotion:()=>this.reducedMotion,cameraGlideMs:()=>this.cameraGlideMs,portraitFitCrop:()=>this.opts.portraitFitCrop,viewMode:()=>this.viewMode,zones:()=>this.zones,markerR:()=>this.markerR,bounds:()=>this.bounds,perspectiveBounds:()=>this.perspectiveBounds,fitScale:()=>this.fitScale,setFitScale:e=>{this.fitScale=e},setFitPose:e=>{this.fitPose=e},glideRaf:()=>this.glideRaf,setGlideRaf:e=>{this.glideRaf=e},setGlideInProgress:e=>{this.glideInProgress=e},zoomSettleRaf:()=>this.zoomSettleRaf,setZoomSettleRaf:e=>{this.zoomSettleRaf=e},framingViewport:()=>this.framingViewport(),sectionBounds:e=>this.sectionBounds(e),effScale:()=>this.effScale(),settleView:()=>this.settleView(),afterViewChange:()=>this.afterViewChange(),scheduleViewChange:()=>this.scheduleViewChange(),updateSeatGroupVisibility:()=>this.updateSeatGroupVisibility(),updateLOD:()=>this.updateLOD(),cancelGlide:()=>this.cancelGlide()}}refitCurrentView(){if(this.focusedSectionId&&this.sectionBounds(this.focusedSectionId)){this.focusSectionCamera(this.focusedSectionId,!1,this.focusAnchor);return}if(this.categoryFilter?.size){this.focusCategories([...this.categoryFilter],{animate:!1});return}this.zoomToFit()}getCameraPose(){return ja(this.stage)}setCameraPose(e){this.cancelGlide(),Qa(this.stage,e)&&(this.settleView(),this.stage.batchDraw())}zoomIn(){this.zoomAbout(this.stage.scaleX()*Bt.ZOOM_STEP,Mi(this.framingViewport()))}zoomOut(){this.zoomAbout(this.stage.scaleX()/Bt.ZOOM_STEP,Mi(this.framingViewport()))}zoomOutLevel(){let e=this.focusedSectionId;return e?this.sectionBounds(e)&&this.stage.scaleX()>this.sectionFrameScale(e)*1.05?(this.focusRegion(e,{maxScale:this.diveCeiling()}),"section"):"venue":this.getRung()==="seats"?(this.setRung("sections"),"sections"):(this.cancelGlide(),this.zoomToFit(),"venue")}seatCount(){return this.seats.length}bookableCount(){let e=this.seats.length;for(let i of this.gaById.values())e+=i.capacity;return e}worldToScreen(e){let i=this.stage.scaleX(),o=e.id,n=typeof o=="string"?this.seatById.get(o):void 0;if(this.viewMode==="perspective"&&this.perspectiveBaseAffine){let l=n?this.perspectiveSeatProjected.get(n.id)??le(this.perspectiveBaseAffine,e):le(this.perspectiveBaseAffine,e);return{x:l.x*i+this.stage.x(),y:l.y*i+this.stage.y()}}let r=n?this.renderedSeatPoint(n):e,s=this.isoT===0?r:this.isoForward(r);return{x:s.x*i+this.stage.x(),y:s.y*i+this.stage.y()}}setAccessibleFilter(e){this.setAccessibilityFilter(e?[]:null)}setAccessibilityFilter(e){let i=e===null?null:[...e];if(!this.sameAccessFilter(i)){this.accessFilter=i,this.accessFreeBySection.clear();for(let o of this.sections)this.refreshSectionFill(o);this.lodScale=0,this.updateLOD(),this.updateAccessGlyphs(this.effScale());for(let o of this.seats){let n=this.circleById.get(o.id);n&&this.paintSeat(n,o.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw()}}sameAccessFilter(e){let i=this.accessFilter;return i===null||e===null?i===e:i.length===e.length&&i.every((o,n)=>o===e[n])}setCommercialLimitedFilter(e){if(this.commercialLimitedFilter!==e){this.commercialLimitedFilter=e;for(let i of this.seats){let o=this.circleById.get(i.id);o&&this.paintSeat(o,i.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw()}}setCategoryFilter(e){let i=e===null?null:new Set(e);if(!zs(i,this.categoryFilter)){this.categoryFilter=i,this.lodScale=0,this.updateLOD();for(let o of this.seats){let n=this.circleById.get(o.id);n&&this.paintSeat(n,o.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.applyGAFilterState()}}applyGAFilterState(){this.clusterLabels.applyFilterDim(),this.paintGAStateForView(),this.updateFreeTextVisibility(),this.bgLayer.batchDraw()}paintGAStateForView(){dl({gaById:this.gaById,bgLayer:this.bgLayer,exportMode:this.exportMode,pickerMode:!!this.opts.gaPickerMode,selectionColor:this.effSelection,labelFont:()=>this.labelFont(),filteredOut:e=>!!(this.categoryFilter&&!this.categoryFilter.has(e)),dimmed:e=>cl(this.categoryHighlight,this.categoryFilter,e),overviewHidden:e=>!this.exportMode&&e.sectionId!=null&&this.effScale()<de,effScale:()=>this.effScale(),labelLegible:e=>pe(e,this.effScale())})}setGAStates(e){hl(this.gaById,e)&&this.applyGAFilterState()}setGAState(e,i){this.setGAStates({[e]:i})}get focusFramingContext(){return{stage:this.stage,seats:this.seats,sections:this.sections,hasSections:this.hasSections,seatById:this.seatById,seatSection:this.seatSection,statusById:this.statusById,ownedHold:this.ownedHold,accessFilter:this.accessFilter,accessFreeBySection:this.accessFreeBySection,clusterLabels:this.clusterLabels,seatR:this.seatR,markerR:this.markerR,seatPitch:this.seatPitch,cameraGlideMs:this.cameraGlideMs,seatInClosedSection:e=>this.seatInClosedSection(e),isSectionClosed:e=>this.isSectionClosed(e),renderedSeatPoint:e=>this.renderedSeatPoint(e),sectionMembers:e=>this.sectionMembers(e),sectionBounds:e=>this.sectionBounds(e),seatLabelTargetScale:()=>this.seatLabelTargetScale(),zoomBounds:()=>this.zoomBounds(),framingViewport:()=>this.framingViewport(),worldToScreen:e=>this.worldToScreen(e),getWorldBounds:()=>this.getWorldBounds(),narrowSeatDetailFocus:(e,i,o)=>this.narrowSeatDetailFocus(e,i,o),focusSection:(e,i)=>this.focusSection(e,i),markSectionFocus:(e,i)=>this.markSectionFocus(e,i),clearSectionFocus:()=>this.clearSectionFocus(),focusRegion:(e,i)=>this.focusRegion(e,i)}}focusCategories(e,i){Vl(this.focusFramingContext,e,i)}diveCeiling(){return lt(this.focusFramingContext)}focusAccessibleSeats(e){return Kl(this.focusFramingContext,e)}focusAccessibleSection(e,i){return Xl(this.focusFramingContext,e,i)}accessibleSpread(e){return Yl(this.focusFramingContext,e)}setViewMode(e){if(e==="perspective"){if(this.viewMode===e){this.afterViewChange();return}let l=this.viewMode==="isometric"&&this.isoT>0;this.viewMode=e,this.isoTarget=1,this.isoT=1,this.isoRaf&&(cancelAnimationFrame(this.isoRaf),this.isoRaf=0),this.applyPerspective(l),this.zoomToFit();return}let i=e==="isometric"?1:0,o=this.viewMode==="perspective";if(this.viewMode=e,this.isoTarget=i,this.isoRaf&&(cancelAnimationFrame(this.isoRaf),this.isoRaf=0),o){this.isoT=i,this.applyIso(),this.afterViewChange();return}if(this.reducedMotion){this.isoT=i,this.applyIso(),this.afterViewChange();return}let n=this.isoT;if(n===i){this.applyIso(),this.afterViewChange();return}let r=performance.now(),s=l=>{if(this.destroyed)return;let a=Math.min(1,(l-r)/rr),c=a<.5?4*a*a*a:1-Math.pow(-2*a+2,3)/2;this.isoT=n+(this.isoTarget-n)*c,this.applyIso(),this.scheduleViewChange(),a<1?this.isoRaf=requestAnimationFrame(s):(this.isoT=this.isoTarget,this.isoRaf=0,this.applyIso(),this.afterViewChange())};this.isoRaf=requestAnimationFrame(s)}getViewMode(){return this.viewMode}get isoState(){return{isoT:this.isoT,centre:this.isoCentre}}effScale(){if(this.viewMode==="perspective"&&this.perspectiveBaseAffine){let e=Math.hypot(this.perspectiveBaseAffine.a,this.perspectiveBaseAffine.b),i=Math.hypot(this.perspectiveBaseAffine.c,this.perspectiveBaseAffine.d);return this.stage.scaleX()*Math.min(e,i)}return this.stage.scaleX()*(1-(1-St)*this.isoT)}isoForward(e){return Rl(e,this.isoState)}isoInverse(e){return Al(e,this.isoState)}buildPerspectiveProjection(e){let i=Bl({seats:this.seats,objects:e.objects,bounds:this.bounds,seatR:this.seatR,floorBaseHeightMFor:o=>this.floorBaseHeightMFor(o)},{seatLocal:this.perspectiveSeatLocal,seatProjected:this.perspectiveSeatProjected,seatDepth:this.perspectiveSeatDepth,seatScale:this.perspectiveSeatScale});this.perspectiveCamera=i.camera,this.perspectiveBaseAffine=i.baseAffine,this.perspectiveBaseInverse=i.baseInverse,this.perspectiveBounds=i.bounds}projectedSectionPoint(e,i){return _l(e,i,this.perspectiveBaseAffine)}perspectiveLocalPoint(e){return Ye(e,this.perspectiveBaseInverse)}isoLiftLocal(e){return El(e,this.isoState)}get projectionHost(){return this.projectionHostCache??={bgLayer:this.bgLayer,seatLayer:this.seatLayer,overlayLayer:this.overlayLayer,labelLiftGroups:this.labelLiftGroups,perspectiveAppliedSeats:this.perspectiveAppliedSeats,seats:()=>this.seats,sections:()=>this.sections,unsectionedSeatGroup:()=>this.unsectionedSeatGroup,cached:()=>this.cached,setCached:e=>{this.cached=e},isoT:()=>this.isoT,isoState:()=>this.isoState,isoCentre:()=>this.isoCentre,perspectiveCamera:()=>this.perspectiveCamera,perspectiveBaseAffine:()=>this.perspectiveBaseAffine,perspectiveBaseInverse:()=>this.perspectiveBaseInverse,applyExactSeatAnchors:(e,i)=>this.applyExactSeatAnchors(e,i),applyUprightLabels:()=>this.applyUprightLabels(),applyElevation:()=>this.applyElevation(),syncSeatOverlayPositions:()=>this.syncSeatOverlayPositions(),updateSeatGroupVisibility:()=>this.updateSeatGroupVisibility()}}resetLayerTransforms(e=!0){Fi(this.projectionHost,e)}get seatAnchorContext(){return this.seatAnchorContextCache??={seats:this.seats,seatById:this.seatById,seatR:this.seatR,perspectiveSeatProjected:this.perspectiveSeatProjected,perspectiveSeatScale:this.perspectiveSeatScale,perspectiveAppliedSeats:this.perspectiveAppliedSeats,circleById:this.circleById,accessRingById:this.accessRingById,accessGlyphById:this.accessGlyphById,boothLabelById:this.boothLabelById}}applyExactSeatAnchors(e,i){Ol(this.seatAnchorContext,e,i)}applyPerspective(e=!0){Hl(this.projectionHost,e)}applyIso(){Nl(this.projectionHost)}applyUprightLabels(){let e=oi*this.isoT,i=1/(1-(1-St)*this.isoT),o=this.hasBoothText?[this.bgLayer,this.seatLayer,this.overlayLayer]:[this.bgLayer,this.overlayLayer];for(let n of o){let r=n.find("Text");for(let s of r){let l=s.getAttr("uprightBase");l==null&&(l=s.rotation(),s.setAttr("uprightBase",l)),s.rotation(l-e),s.scaleX(1),s.scaleY(i),s.skewX(0)}}}applyElevation(){let e=this.isoT;for(let i of this.sections){if(i.liftWorld<=0)continue;let o=this.isoLiftLocal(i.liftWorld);i.liftGroupBg?.position(o),i.liftGroupSeat.position(o),this.labelLiftGroups.get(i.id)?.position(o);let n=.9*e;for(let r=0;r<i.sideFaces.length;r++){let s=i.sideFaces[r],l=i.outline[r],a=i.outline[(r+1)%i.outline.length];s.points([l.x,l.y,a.x,a.y,a.x+o.x,a.y+o.y,l.x+o.x,l.y+o.y]),s.opacity(n)}}this.syncSeatOverlayPositions()}destroy(){this.destroyed=!0,this.cancelAssetLoads(),this.cancelSeatReveal(),this.recacheTimer&&(clearTimeout(this.recacheTimer),this.recacheTimer=null),this.rafId&&cancelAnimationFrame(this.rafId),this.isoRaf&&cancelAnimationFrame(this.isoRaf),this.glideRaf&&cancelAnimationFrame(this.glideRaf),this.viewChangeRaf&&cancelAnimationFrame(this.viewChangeRaf),this.zoomSettleRaf&&cancelAnimationFrame(this.zoomSettleRaf),this.breathCache?.destroy(),this.momentsCache?.destroy(),this.beaconsCache?.clear(),this.hoverCardCache?.destroy(),this.recacheTimer&&clearTimeout(this.recacheTimer),this.resizeObs?.disconnect(),this.gestures.detach(),this.clusterLabels.destroy(),this.container.removeEventListener("keydown",this.onKeyDown),this.stage.destroy()}labelFont(){return this.exportMode?this.theme.fontFamily?.toLowerCase().includes("jetbrains")?"JetBrains Mono, monospace":"Inter, sans-serif":this.theme.fontFamily||"Inter, sans-serif"}seatContainer(e){return this.seatSection.get(e)?.liftGroupSeat??this.unsectionedSeatGroup??this.seatLayer}sectionMatchesFocus(e){let i=this.focusedSectionId;return i==null||e.id===i||e.logicalId===i||e.zone===i}selectionFocusDims(e){return this.selectionFocusId?!(this.selectionFocusKeep?.has(e)??e===this.selectionFocusId):!1}focusedSeatOpacity(e,i){if(!this.focusedSectionId||!this.focusDimOverlay)return i;let o=this.seatSection.get(e);return i*(o&&this.sectionMatchesFocus(o)?1:Ce)}sectionScreenBounds(e){return xs({viewMode:this.viewMode,isoT:this.isoT,stageScale:this.stage.scaleX(),stageX:this.stage.x(),stageY:this.stage.y(),projectedSectionPoint:(i,o)=>this.projectedSectionPoint(i,o),isoLiftLocal:i=>this.isoLiftLocal(i),isoForward:i=>this.isoForward(i)},e)}updateSeatGroupVisibility(){let e=this.exportMode||this.effScale()>=de,i=this.viewMode==="perspective"&&this.glideInProgress&&this.seats.length>2500,o=96,n=this.stage.width(),r=this.stage.height();for(let s of this.sections){let l=!0;if(e){let c=this.sectionScreenBounds(s);l=c.x+c.width>=-o&&c.y+c.height>=-o&&c.x<=n+o&&c.y<=r+o,l&&this.viewMode==="perspective"&&!i&&this.applyExactSeatAnchors(!0,s.memberIds)}s.liftGroupSeat.setViewportCulled(!l),this.labelLiftGroups.get(s.id)?.setViewportCulled(!l)}this.unsectionedSeatGroup&&!this.unsectionedSeatGroup.visible()&&this.unsectionedSeatGroup.visible(!0),e&&this.viewMode==="perspective"&&!i&&(this.unsectionedSeatIds||(this.unsectionedSeatIds=this.seats.filter(s=>!this.seatSection.has(s.id)).map(s=>s.id)),this.applyExactSeatAnchors(!0,this.unsectionedSeatIds))}visibleSeatCandidates(){if(!this.sections.length)return this.seats;let e=[];for(let i of this.sections)if(!i.liftGroupSeat.isViewportCulled())for(let o of i.memberIds){let n=this.seatById.get(o);n&&e.push(n)}for(let i of this.seats)this.seatSection.has(i.id)||e.push(i);return e}seatViewportCulled(e){return this.seatSection.get(e)?.liftGroupSeat.isViewportCulled()??!1}renderedSeatPoint(e){if(this.viewMode==="perspective")return this.perspectiveSeatLocal.get(e.id)??e;let i=this.seatSection.get(e.id);if(!i||i.liftWorld<=0||this.isoT===0)return e;let o=this.isoLiftLocal(i.liftWorld);return{x:e.x+o.x,y:e.y+o.y}}seatLabelContainer(e){let i=this.seatSection.get(e);if(!i)return this.labelGroup;let o=this.labelLiftGroups.get(i.id);return o||(o=new st({listening:!1}),o.setViewportCulled(i.liftGroupSeat.isViewportCulled()),o.position(this.viewMode==="perspective"?{x:0,y:0}:this.isoLiftLocal(i.liftWorld)),this.labelGroup.add(o),this.labelLiftGroups.set(i.id,o)),o}syncSeatOverlayPositions(){if(this.hoveredId){let e=this.seatById.get(this.hoveredId);if(e){this.hoverRing.position(this.renderedSeatPoint(e));let i=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e.id)??1:1;this.hoverRing.scale({x:i,y:i})}}if(this.focusedId){let e=this.seatById.get(this.focusedId);if(e){this.focusRing.position(this.renderedSeatPoint(e));let i=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e.id)??1:1;this.focusRing.scale({x:i,y:i})}}for(let[e,i]of this.selectionMarkers){let o=this.seatById.get(e);if(o){i.position(this.renderedSeatPoint(o));let n=this.viewMode==="perspective"?this.perspectiveSeatScale.get(o.id)??1:1;i.scale({x:n,y:n})}}}renderSeats(e=this.seats){Ns({seats:e,seatR:this.seatR,theme:this.theme,seatGlyphDetail:this.seatGlyphDetail,setHasBoothText:()=>{this.hasBoothText=!0},circleById:this.circleById,glyphMarkers:this.glyphMarkers,boothDims:this.boothDims,boothLabelById:this.boothLabelById,accessGlyphById:this.accessGlyphById,accessRingById:this.accessRingById,catByKey:this.catByKey,perspectiveSeatDepth:this.perspectiveSeatDepth,seatContainer:i=>this.seatContainer(i),buildAccessGlyph:(i,o)=>this.buildAccessGlyph(i,o),paintSeat:(i,o)=>this.paintSeat(i,o),labelFont:()=>this.labelFont()})}buildAccessGlyph(e,i){let o=this.seatR*1.5/Re,n=new zu({x:e.x,y:e.y,data:Ut(e.accessibility??[])??"",scaleX:o,scaleY:o,fill:qt(i),listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});return Ii(n),n}updateAccessGlyphs(e){if(this.accessGlyphById.size)for(let[i,o]of this.accessGlyphById){let n=this.viewMode==="perspective"?this.perspectiveSeatScale.get(i)??1:1,r=this.seatR*1.5/Re*n,l=this.accessGlyphFilterEmphasized(i)?Jn:Qn,a=Math.max(r,l/(Re*Math.max(e,.001)));o.scale({x:a,y:a}),o.visible(this.accessGlyphShouldShow(i))}}accessGlyphFilterEmphasized(e){let i=this.seatById.get(e),o=this.accessFilter;return!!i&&o!==null&&!!i.accessibility?.includes("wheelchair")&&(o.length===0||o.includes("wheelchair"))&&xe(i,o)}accessGlyphShouldShow(e){return this.accessGlyphById.has(e)&&this.accessGlyphEligible(e)}accessGlyphEligible(e){let i=this.statusById.get(e)??"free";return!(i==="booked"||i==="held"&&!this.ownedHold.has(e)&&!this.opts.manageMode)}categoryPriceLabel(e){let i=this.catPrice.get(e);return typeof i=="number"?kt(i,this.currency):null}categoryDisplayColor(e){return this.colorblind?this.cbHueByKey.get(e)??ui[0]:this.catColor.get(e)??"#6e7bff"}seatLabelScale(e){return(e.labelStyle?.size??18)/18}seatPreferredLabelInk(e){return e.labelStyle?.color??this.theme.seatLabelColor??ze}seatLabelInk(e,i){let o=i.fill();return fe(typeof o=="string"?o:"",e.labelStyle?.color,this.theme.seatLabelColor??ze,je)}get seatPaintContext(){return this.seatPaintCache||(this.seatPaintCache={seat:e=>this.seatById.get(e),seatStatus:e=>this.statusById.get(e)??"free",isSelected:e=>this.selection.has(e),isOwnedHold:e=>this.ownedHold.has(e),categoryColor:e=>this.categoryDisplayColor(e),boothLabel:e=>this.boothLabelById.get(e),boothWidth:e=>this.boothDims.get(e)?.width,seatLabel:e=>this.seatLabelById.get(e),seatLabelInk:(e,i)=>this.seatLabelInk(e,i),seatMarks:this.seatMarks,seatRadius:()=>this.seatR,canvasBackground:()=>this.canvasBackground,colorblind:()=>this.colorblind,selectionColor:()=>this.effSelection,theme:()=>this.theme,effScale:()=>this.effScale(),seatInClosedSection:e=>this.seatInClosedSection(e),selectionFocusDims:e=>this.selectionFocusDims(e),accessFilter:()=>this.accessFilter,categoryHighlight:()=>this.categoryHighlight,categoryFilter:()=>this.categoryFilter,commercialLimitedFilter:()=>this.commercialLimitedFilter,dimmedSections:()=>this.dimmedSections,closedSections:()=>this.closedSections,seatSection:e=>this.seatSection.get(e),accessGlyph:e=>this.accessGlyphById.get(e),accessGlyphShouldShow:e=>this.accessGlyphShouldShow(e),accessRing:e=>this.accessRingById.get(e)}),this.seatPaintCache}paintSeat(e,i){Ea(this.seatPaintContext,e,i)}seatInClosedSection(e){if(!this.closedSections.size)return!1;let i=this.seatSection.get(e);return!!i&&(this.closedSections.has(i.id)||this.closedSections.has(i.logicalId)||i.zone!=null&&this.closedSections.has(i.zone))}setColorblindSafe(e){if(e!==this.colorblind){this.colorblind=e;for(let i of this.seats){let o=this.circleById.get(i.id);o&&this.paintSeat(o,i.id)}for(let i of this.sections)i.shellCategoryColor=this.dominantSellableColor(i.memberIds),this.refreshSectionFill(i);this.bgLayer.batchDraw(),this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw()}}setDimmedSections(e){let i=new Set(e??[]);if(!(i.size===this.dimmedSections.size&&[...i].every(o=>this.dimmedSections.has(o)))){this.dimmedSections=i;for(let o of this.seats){let n=this.circleById.get(o.id);n&&this.paintSeat(n,o.id)}this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw()}}setClosedSections(e){let i=new Set(e??[]);i.size===this.closedSections.size&&[...i].every(o=>this.closedSections.has(o))||(this.closedSections=i,this.repaintSectionsAndSeats())}focusSection(e,i){this.markSectionFocus(e,i?.anchor??null)&&this.focusSectionCamera(e,!0,i?.anchor)}markSectionFocus(e,i){return this.sections.some(o=>o.id===e||o.logicalId===e)?(this.focusedSectionId=e,this.focusAnchor=i,this.focusRoams=!1,this.sectionFocusDim&&this.drawFocusBackdrop(e),this.bgLayer.batchDraw(),this.overlayLayer.batchDraw(),this.updateLOD(),!0):!1}focusSeats(e,i){return Yo(this.focusFramingContext,e,i)}focusSectionCamera(e,i=!0,o){Ul(this.focusFramingContext,e,i,o)}releaseSectionFocusDim(){this.cameraGestures+=1,this.focusRoams=!0,this.dropFocusDim()}dropFocusDim(){!this.focusBackdrop&&!this.focusDimOverlay||(this.focusBackdrop?.destroy(),this.focusBackdrop=null,this.focusDimOverlay?.destroy(),this.focusDimOverlay=null,this.bgLayer.batchDraw(),this.overlayLayer.batchDraw())}setSectionFocusDim(e){this.sectionFocusDim!==e&&(this.sectionFocusDim=e,e||this.dropFocusDim())}clearSectionFocus(){this.focusedSectionId&&(this.focusedSectionId=null,this.focusAnchor=null,this.focusRoams=!1,this.focusBackdrop&&(this.focusBackdrop.destroy(),this.focusBackdrop=null),this.focusDimOverlay?.destroy(),this.focusDimOverlay=null,this.bgLayer.batchDraw(),this.overlayLayer.batchDraw(),this.updateLOD())}getFocusedSection(){return this.focusedSectionId}seatsRevealed(){return this.focusedSectionId||this.floorOverview?!0:this.effScale()>=se}seatsPickable(){return this.focusedSectionId||this.floorOverview?!0:this.effScale()>=Oo(this.markerR)}drawFocusBackdrop(e){this.focusBackdrop?.destroy(),this.focusBackdrop=null;let i=this.sections.filter(o=>o.id===e||o.logicalId===e);if(this.focusBackdrop=pa(this.focusBackdropHost,i),!!this.focusBackdrop){this.focusDimOverlay?.destroy(),this.focusDimOverlay=fa(this.focusBackdropHost,i);for(let o of this.selectionMarkers.values())o.moveToTop();this.beaconsCache?.raise(),this.hoverRing.moveToTop(),this.focusRing.moveToTop()}}get focusBackdropHost(){return{bgLayer:this.bgLayer,overlayLayer:this.overlayLayer,bounds:this.bounds,canvasBackground:this.canvasBackground,viewMode:this.viewMode,perspectiveLocalPoint:e=>this.perspectiveLocalPoint(e),projectedSectionPoint:(e,i)=>this.projectedSectionPoint(e,i),isoLiftLocal:e=>this.isoLiftLocal(e)}}repaintSectionsAndSeats(){for(let e of this.seats){let i=this.circleById.get(e.id);i&&this.paintSeat(i,e.id)}for(let e of this.sections)this.refreshSectionFill(e);this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.bgLayer.batchDraw()}getVisibleWorldRect(){let e=this.screenToWorld({x:0,y:0}),i=this.screenToWorld({x:this.stage.width(),y:this.stage.height()});return{x:Math.min(e.x,i.x),y:Math.min(e.y,i.y),width:Math.abs(i.x-e.x),height:Math.abs(i.y-e.y)}}getWorldBounds(){let e=1/0,i=1/0,o=-1/0,n=-1/0,r=(s,l)=>{s<e&&(e=s),l<i&&(i=l),s>o&&(o=s),l>n&&(n=l)};for(let s of this.seats)r(s.x,s.y);for(let s of this.sections)for(let l of s.outline)r(l.x,l.y);for(let s of this.gaById.values())for(let l of s.points)r(l.x,l.y);return Number.isFinite(e)?{x:e,y:i,width:Math.max(1,o-e),height:Math.max(1,n-i)}:{x:0,y:0,width:1,height:1}}getMinimapSnapshot(){let e=this.sections.map(i=>{let o=this.isSectionClosed(i)||i.free<=0,n=i.memberIds.some(l=>this.selection.has(l)),r=n||i.memberIds.some(l=>this.ownedHold.has(l)),s=this.focusedSectionId===i.id||this.focusedSectionId===i.logicalId;return{id:i.logicalId,label:i.label,outline:i.outline.map(l=>({...l})),...this.objectFloor.get(i.id)?{floorId:this.objectFloor.get(i.id)}:{},state:n?"selected":o?"inactive":"available",active:s,paint:{fill:i.shellFill,stroke:i.shellStroke},owned:r}});return{sections:e,seats:e.length?[]:this.seats.map(i=>({x:i.x,y:i.y,categoryKey:i.categoryKey,state:this.selection.has(i.id)?"selected":this.statusById.get(i.id)==="free"?"available":"inactive"}))}}panToWorld(e){this.cancelGlide();let i=this.worldToScreen(e);this.stage.position({x:this.stage.x()+this.stage.width()/2-i.x,y:this.stage.y()+this.stage.height()/2-i.y}),this.afterViewChange(),this.stage.batchDraw()}panScreenBy(e,i){if(Math.abs(e.x)<.5&&Math.abs(e.y)<.5)return;this.cancelGlide();let o=this.stage.x(),n=this.stage.y();if(i?.animate===!1||this.reducedMotion||typeof requestAnimationFrame!="function"){this.stage.position({x:o+e.x,y:n+e.y}),this.afterViewChange(),this.stage.batchDraw();return}let r=performance.now(),s=Math.max(180,Math.min(1200,this.cameraGlideMs));this.glideInProgress=!0;let l=a=>{if(this.destroyed){this.glideRaf=0,this.glideInProgress=!1;return}let c=Math.min(1,(a-r)/s),d=c<.5?4*c*c*c:1-Math.pow(-2*c+2,3)/2;if(this.stage.position({x:o+e.x*d,y:n+e.y*d}),this.scheduleViewChange(),this.stage.batchDraw(),c<1){this.glideRaf=requestAnimationFrame(l);return}this.glideRaf=0,this.glideInProgress=!1,this.settleView()};this.glideRaf=requestAnimationFrame(l)}getCameraGestureCount(){return this.cameraGestures}setCategoryHighlight(e){if(this.categoryHighlight!==e){this.categoryHighlight=e;for(let i of this.seats){let o=this.circleById.get(i.id);o&&this.paintSeat(o,i.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.applyGAFilterState()}}renderBackground(e){let i=gt(e);i&&this.renderBackgroundImage(i);for(let o of e.objects)o.type==="decorImage"&&this.renderDecorImage(o);for(let o of e.objects)o.type==="section"&&this.renderSection(o);for(let o of e.objects)o.type==="shape"?this.renderShape(o):o.type==="gaArea"?this.renderGA(o):o.type==="table"?this.renderTable(o):o.type==="text"&&this.renderText(o);this.renderZones(e)}trackAssetImage(e,i,o,n){this.assets.track(e,i,o,n,{exportMode:this.exportMode})}cancelAssetLoads(){this.assets.cancelAll()}renderBackgroundImage(e){yl(this.objectDrawContext,e)}get objectDrawContext(){return{bgLayer:this.bgLayer,fgDecorGroup:this.fgDecorGroup,container:this.container,opts:this.opts,theme:this.theme,canvasBackground:this.canvasBackground,catColor:this.catColor,sections:this.sections,freeTextById:this.freeTextById,gaById:this.gaById,iconNodeById:this.iconNodeById,primaryFocalLabels:this.primaryFocalLabels,landmarkBoxes:this.landmarkBoxes,labelFont:()=>this.labelFont(),trackAssetImage:(e,i,o,n)=>this.trackAssetImage(e,i,o,n),isGhostClick:e=>this.isGhostClick(e)}}renderDecorImage(e){bl(this.objectDrawContext,e)}renderTable(e){Sl(this.objectDrawContext,e)}renderText(e){vl(this.objectDrawContext,e)}renderShape(e){wl(this.objectDrawContext,e)}renderGA(e){Ll(this.objectDrawContext,e)}renderSection(e){let i=Wl(this.sectionBuildContext,e);for(let o of i.memberIds)this.seatSection.set(o,i);this.unsectionedSeatIds=null,this.refreshSectionFill(i),this.refreshSectionHeat(i),this.sections.push(i)}get sectionBuildContext(){return{bgLayer:this.bgLayer,seatLayer:this.seatLayer,canvasBackground:this.canvasBackground,seats:this.seats,seatById:this.seatById,seatSection:this.seatSection,seatIndex:this.seatIndex,statusById:this.statusById,catColor:this.catColor,zoneColor:this.zoneColor,chartDoc:this.chartDoc,isoCentre:this.isoCentre,labelFont:()=>this.labelFont(),floorBaseHeightMFor:e=>this.floorBaseHeightMFor(e),dominantSellableColor:e=>this.dominantSellableColor(e)}}refreshSectionHeat(e){Qs(this.sectionLodPaintContext,e)}refreshSectionFill(e){ta(this.sectionLodPaintContext,e)}isSectionClosed(e){return Co(this.sectionLodPaintContext,e)}dominantSellableColor(e){let i=Er(e,o=>this.seatById.get(o)?.categoryKey,o=>this.catByKey.get(o)?.notForSale===!0);return i?this.categoryDisplayColor(i):null}sectionAccessibleFree(e){return Uo(this.focusFramingContext,e)}accessibleSections(e){return $o(this.focusFramingContext,e)}get sectionLodPaintContext(){return{sections:this.sections,zones:this.zones,sectionHeat:this.sectionHeat,closedSections:this.closedSections,canvasBackground:this.canvasBackground,sectionIsOwned:e=>e.memberIds.some(i=>this.selection.has(i)||this.ownedHold.has(i)),accessFilterActive:this.accessFilter!=null,sectionAccessibleFree:e=>this.sectionAccessibleFree(e),selectionColor:this.effSelection,bgLayer:this.bgLayer,seatLayer:this.seatLayer,stageScaleX:this.stage.scaleX(),stageWidth:this.stage.width(),floorOverview:this.floorOverview,focusedSectionId:this.focusedSectionId,categoryFilter:this.categoryFilter,landmarks:this.landmarkBoxes,hasFocusDimOverlay:!!this.focusDimOverlay,viewMode:this.viewMode,glideInProgress:this.glideInProgress,reducedMotion:this.reducedMotion,isoT:this.isoT,seatCount:this.seats.length,lodScale:this.lodScale,setLodScale:e=>{this.lodScale=e},worldToScreen:e=>this.worldToScreen(e)}}renderZones(e){Ms({bgLayer:this.bgLayer,canvasBackground:this.canvasBackground,catPrice:this.catPrice,currency:this.currency,seatById:this.seatById,sections:this.sections,zones:this.zones,labelFont:()=>this.labelFont()},e)}screenToWorld(e){let i=this.stage.scaleX(),o={x:(e.x-this.stage.x())/i,y:(e.y-this.stage.y())/i};return this.viewMode==="perspective"&&this.perspectiveBaseInverse?le(this.perspectiveBaseInverse,o):this.isoT===0?o:this.isoInverse(o)}sectionAt(e){if(!this.sections.length)return null;let i=this.screenToWorld(e),o=this.sections.find(n=>{if(this.viewMode==="perspective"&&n.perspectiveAffine)return te(i,n.outline.map(s=>this.perspectiveLocalPoint(this.projectedSectionPoint(n,s))),n.holes.map(s=>s.map(l=>this.perspectiveLocalPoint(this.projectedSectionPoint(n,l)))));let r=n.liftWorld>0?this.isoLiftLocal(n.liftWorld):{x:0,y:0};return te({x:i.x-r.x,y:i.y-r.y},n.outline,n.holes)});return o?o.logicalId:null}sectionMembers(e){return[...new Set(this.sections.filter(i=>i.id===e||i.logicalId===e||i.zone===e).flatMap(i=>i.memberIds))]}isSelectable(e){return this.seatInClosedSection(e)||!(this.opts.selectableStatuses??["free"]).includes(this.statusById.get(e)??"free")?!1:!this.hiddenByAccessFilter(e)}filterExcludesSeat(e){let i=this.seatById.get(e);return this.hiddenByAccessFilter(e)||i!=null&&ba({categoryFilter:this.categoryFilter,categoryKey:i.categoryKey,status:this.statusById.get(e)??"free",selected:this.selection.has(e),ownHold:this.ownedHold.has(e)})}hiddenByAccessFilter(e){if(!this.accessFilter||this.selection.has(e))return!1;let i=this.seatById.get(e);return i?Te(i,this.accessFilter)==="other":!1}toggleSeat(e){if(this.ownedHold.has(e)){let i=this.seatById.get(e);i&&this.opts.onDeselect?.(i);return}if(this.selection.has(e)){this.setSelected(e,!1);let i=this.seatById.get(e);i&&this.opts.onDeselect?.(i)}else{if(!this.isSelectable(e))return;if(this.selection.size>=this.opts.maxSelection){this.opts.onSelectionLimit?.(this.opts.maxSelection);return}this.setSelected(e,!0),this.playSeatPickMoment(e);let i=this.seatById.get(e);i&&this.opts.onSelect?.(i)}this.overlayLayer.batchDraw()}resolveCanvasBackground(){let e=this.theme.background?Ui(this.theme.background):null;if(e)return e;if(typeof getComputedStyle=="function"){let i=this.container;for(;i;){let o=Ui(getComputedStyle(i).backgroundColor);if(o)return o;i=i.parentElement}}return bo}resolveSelectionColor(){return this.theme.selectionColor?this.theme.selectionColor:D(this.canvasBackground)?Es:nt}setSelected(e,i,o=!1){let n=this.circleById.get(e);i?this.selection.add(e):(this.selectionFocusId===e&&this.setSelectionFocus(null),this.focusedId===e&&(this.focusedId=null,this.focusRing.visible(!1),this.overlayLayer.batchDraw()),this.selection.delete(e)),n&&(this.paintSeat(n,e),!o&&!this.cached&&this.seatLayer.batchDraw()),this.syncSelectionMarker(e)}syncSelectionMarker(e){this.moments.syncMarker(e,this.selection.has(e)||this.ownedHold.has(e),this.selectionMarkers),this.hasSections&&(this.owned.sync(this.effScale(),this.getRung()),this.syncBeacons()),(this.breathCache||this.selectionMarkers.size)&&this.breath.sync(this.selectionMarkers)}playSeatPickMoment(e){this.moments.play(e)}showTouchLoupe(e){this.moments.showLoupe(e)}hideTouchLoupe(){this.moments.hideLoupe()}sectionBounds(e){return Ps({sections:this.sections,viewMode:this.viewMode,isoT:this.isoT,seatR:this.seatR,bgLayer:this.bgLayer,seatById:this.seatById,freeTextById:this.freeTextById,iconNodeById:this.iconNodeById,rowLabelPlan:this.rowLabelPlan,projectedSectionPoint:(i,o)=>this.projectedSectionPoint(i,o),isoLiftLocal:i=>this.isoLiftLocal(i),isoForward:i=>this.isoForward(i),renderedSeatPoint:i=>this.renderedSeatPoint(i),labelFont:()=>this.labelFont(),resolveAutomaticRowLabelPosition:(i,o,n)=>this.resolveAutomaticRowLabelPosition(i,o,n),rowLabelBox:(i,o)=>this.rowLabelBox(i,o)},e)}sectionFrameScale(e){let i=this.sectionBounds(e);return i?Math.min(rt(this.stage,i,this.zoomBounds(),this.framingViewport()),Pt(this.zoomBounds(),this.diveCeiling())):this.stage.scaleX()}deckFloorAt(){return Ws(this.screenPickingHost)}nearestSeatToScreen(e,i,o=!1){return Gs(this.screenPickingHost,e,i,{includeUnavailable:o})}get screenPickingHost(){return{seats:this.seats,stage:this.stage,seatR:this.seatR,viewMode:this.viewMode,selection:this.selection,objectFloor:this.objectFloor,perspectiveSeatScale:this.perspectiveSeatScale,renderedSeatPoint:e=>this.renderedSeatPoint(e),screenToWorld:e=>this.screenToWorld(e),worldToScreen:e=>this.worldToScreen(e),isSelectable:e=>this.isSelectable(e)}}wireInteraction(){_a(this.interactionHost)}handleSeatTap(e){Ba(this.interactionHost,e)}get interactionHost(){return this.interactionHostCache??={stage:this.stage,seatLayer:this.seatLayer,overlayLayer:this.overlayLayer,hoverRing:this.hoverRing,clusterLabels:this.clusterLabels,container:this.container,attachHoverCard:()=>this.hoverCard.attach(),moved:()=>this.moved,isGhostClick:e=>this.isGhostClick(e),cached:()=>this.cached,reducedMotion:()=>this.reducedMotion,stacked:()=>this.stacked,floorOverview:()=>this.floorOverview,viewMode:()=>this.viewMode,focusedSectionId:()=>this.focusedSectionId,sectionCount:()=>this.sections.length,selectionMarkers:()=>this.selectionMarkers,seat:e=>this.seatById.get(e),seatMark:e=>this.seatMarks.get(e),seatSection:e=>this.seatSection.get(e),objectFloor:e=>this.objectFloor.get(e),perspectiveSeatScale:e=>this.perspectiveSeatScale.get(e)??1,setHoveredId:e=>{this.hoveredId=e},seatsPickable:()=>this.seatsPickable(),handleSeatTap:e=>this.handleSeatTap(e),seatStatus:e=>this.statusById.get(e)??"free",hasSeatMark:e=>this.seatMarks.has(e),isOwnedHold:e=>this.ownedHold.has(e),isSelected:e=>this.selection.has(e),isSelectable:e=>this.isSelectable(e),hiddenByAccessFilter:e=>this.hiddenByAccessFilter(e),seatInClosedSection:e=>this.seatInClosedSection(e),toggleSeat:e=>this.toggleSeat(e),nudgeSeat:e=>this.moments.nudge(e),renderedSeatPoint:e=>this.renderedSeatPoint(e),nearestSeatToScreen:(e,i,o)=>this.nearestSeatToScreen(e,i,o),sectionAt:e=>this.sectionAt(e),sectionMatchesFocus:e=>this.sectionMatchesFocus(e),sectionFrameScale:e=>this.sectionFrameScale(e),sectionTapAnchor:(e,i)=>this.sectionTapAnchor(e,i),ownedBadgeAt:e=>this.owned.badgeAt(e),deckFloorAt:()=>this.deckFloorAt(),screenToWorld:e=>this.screenToWorld(e),effScale:()=>this.effScale(),focusSeats:(e,i)=>this.focusSeats(e,i),focusSection:(e,i)=>this.focusSection(e,i),zoomAbout:(e,i,o)=>this.zoomAbout(e,i,o),releaseSectionFocusDim:()=>this.releaseSectionFocusDim(),onHover:this.opts.onHover,onSectionTap:this.opts.onSectionTap,onBackdropTap:this.opts.onBackdropTap,onDeckTap:this.opts.onDeckTap}}zoomBounds(){return Mt(this.cameraHost)}zoomAbout(e,i,o="now"){Xa(this.cameraHost,e,i,o)}cancelZoomSettle(){Ya(this.cameraHost)}focusRegion(e,i){Ua(this.cameraHost,e,i)}applyLabelVisibility(e){let i=e!==this.labelsVisible;if(this.labelsVisible=e,!i||!e)return;if(this.labelFadeRaf&&(cancelAnimationFrame(this.labelFadeRaf),this.labelFadeRaf=0),this.reducedMotion){this.labelGroup.opacity(1);return}let o=performance.now();this.labelGroup.opacity(0);let n=r=>{if(this.destroyed){this.labelFadeRaf=0;return}let s=Math.min(1,(r-o)/90);this.labelGroup.opacity(s),this.stage.batchDraw(),this.labelFadeRaf=s<1?requestAnimationFrame(n):0};this.labelFadeRaf=requestAnimationFrame(n)}cancelGlide(){this.glideRaf&&(cancelAnimationFrame(this.glideRaf),this.glideRaf=0),this.glideInProgress=!1}getRung(){let e=this.effScale();return e>=de?"seats":this.zones.length&&e<Ne?"zones":"sections"}get renderedQualityContext(){return{stage:this.stage,overlayLayer:this.overlayLayer,labelGroup:this.labelGroup,viewMode:this.viewMode,cached:this.cached,effScale:()=>this.effScale(),getRung:()=>this.getRung(),worldToScreen:e=>this.worldToScreen(e),isoLiftLocal:e=>this.isoLiftLocal(e),seats:this.seats,sections:this.sections,zones:this.zones,seatSection:this.seatSection,statusById:this.statusById,selection:this.selection,circleById:this.circleById,seatLabelById:this.seatLabelById,seatLabelDrops:this.seatLabelDrops,seatLabelRungOpen:()=>this.seatLabelRungOpen,boothLabelById:this.boothLabelById,accessGlyphById:this.accessGlyphById,freeTextById:this.freeTextById,gaById:this.gaById,perspectiveSeatProjected:this.perspectiveSeatProjected,perspectiveSeatScale:this.perspectiveSeatScale,seatR:this.seatR,canvasBackground:this.canvasBackground,effSelection:this.effSelection,categoryFilter:this.categoryFilter,focusedSectionId:this.focusedSectionId,focusBackdrop:this.focusBackdrop,isSelectable:e=>this.isSelectable(e),seatViewportCulled:e=>this.seatViewportCulled(e),focusedSeatOpacity:(e,i)=>this.focusedSeatOpacity(e,i),accessGlyphFilterEmphasized:e=>this.accessGlyphFilterEmphasized(e),seatLabelScale:e=>this.seatLabelScale(e),seatLabelInk:(e,i)=>this.seatLabelInk(e,i),seatPreferredLabelInk:e=>this.seatPreferredLabelInk(e)}}getRenderedQualityEvidence(){return this.cancelSeatReveal(!0),fl(this.renderedQualityContext)}setRung(e){if(e==="zones"){this.cancelGlide(),this.zoomToFit();return}let i=e==="sections"?(ke+de)/2:this.seatRungScale(),o=this.framingViewport(),n=o.width,r=o.height,s=Mi(this.framingWorldRect()),l=s.x,a=s.y;if(e==="sections"&&this.sections.length>0){let p=this.sections.map(u=>{let g=z(u.outline);return{x:g.x+g.width/2,y:g.y+g.height/2}}),m=n/(i*2),f=r/(i*2);if(!p.some(u=>Math.abs(u.x-s.x)<=m&&Math.abs(u.y-s.y)<=f)){let u=p.reduce((g,S)=>{let b=(S.x-s.x)**2+(S.y-s.y)**2;return b<g.distance?{point:S,distance:b}:g},{point:p[0],distance:1/0});l=u.point.x,a=u.point.y}}let c=e==="seats"?this.seats.filter(p=>p.kind!=="booth"):[];if(c.length>0){let p=c[0],m=1/0;for(let f of c){let y=f.x-s.x,u=f.y-s.y,g=y*y+u*u;g<m&&(p=f,m=g)}l=p.x,a=p.y}let d=n/(i*1.12),h=r/(i*1.12);this.focusRegion({x:l-d/2,y:a-h/2,width:d,height:h})}seatRungScale(){return il(this.seatLabelTargetScale())}narrowSeatDetailFocus(e,i,o){let n=this.framingViewport();return nl({stageWidth:n.width,stageHeight:n.height,fullBounds:i,seatPoints:e,visibleBounds:this.framingWorldRect(),minScale:this.seatRungScale(),tapAnchor:o})}seatLabelTargetScale(){return $a({seats:this.seats,seatR:this.seatR,labelFont:()=>this.labelFont(),seatLabelScale:e=>this.seatLabelScale(e)})}releaseFocusOnPullBack(){Oa({focusedSectionId:this.focusedSectionId,roaming:this.focusRoams,floorOverview:this.floorOverview,effScale:this.effScale()})&&(this.clearSectionFocus(),this.opts.onFocusedSectionChange?.(null))}afterViewChange(){this.releaseFocusOnPullBack(),this.retargetRoamingFocus(),this.updateSeatGroupVisibility(),this.updateLOD(),this.updateFreeTextVisibility(),this.updateLabels(),this.scheduleViewChange()}settleView(){this.cancelZoomSettle(),this.viewChangeRaf&&(cancelAnimationFrame(this.viewChangeRaf),this.viewChangeRaf=0),this.afterViewChange()}retargetRoamingFocus(){if(!this.focusRoams||!this.focusedSectionId||this.floorOverview)return;let e=Ts({sections:this.sections.map(i=>({logicalId:i.logicalId,members:i.memberIds.length,bounds:this.sectionScreenBounds(i)})),viewport:{width:this.stage.width(),height:this.stage.height()},current:this.focusedSectionId});!e||e===this.focusedSectionId||(this.focusedSectionId=e,this.focusAnchor=null,this.opts.onFocusedSectionChange?.(e))}scheduleViewChange(){this.exportMode||this.viewChangeRaf||(this.viewChangeRaf=requestAnimationFrame(()=>{this.viewChangeRaf=0,this.opts.onViewChange?.()}))}sizeLabel(e,i,o){e.fontSize(Math.max(1,i)),e.offsetX(e.width()/2),e.offsetY(e.height()/2),e.y(o)}updateLOD(){let e=this.exportMode?Math.max(this.effScale(),Le+.01,ie):this.effScale(),i=Math.max(e,1e-4);for(let[r,s]of this.primaryFocalLabels)kl(r,s,i,(l,a)=>{this.sizeLabel(l,a,l.y())});this.hasSections?(na(this.sectionLodPaintContext,e),this.owned.sync(e,this.getRung()),this.syncBeacons()):(this.clusterLabels.syncForCamera(e)||this.primaryFocalLabels.size)&&this.bgLayer.batchDraw(),this.clusterLabels.syncCursor(this.hoveredId!=null),this.paintGAStateForView(),this.updateAccessGlyphs(e),this.seatGlyphDetail=Hs(this.glyphMarkers,this.seatR,e,this.seatGlyphDetail);let o=!this.exportMode&&e<de;if(this.viewMode==="perspective"&&this.hasSections&&this.seats.length>2500&&o){this.seatLayer.listening(!1);return}if(o&&!this.cached){if(this.mountCachePending){this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>{this.recacheTimer=null,this.cacheSeatLayer()},0);return}this.cacheSeatLayer()}else!o&&(this.cached||!this.seatLayer.listening())&&(this.cached&&this.releaseSeatLayerBitmap(),this.seatLayer.listening(!this.exportMode),this.cached=!1,this.seatLayer.batchDraw())}rebuildSeatCache(){if(this.seatReveal||this.seatRevealPending)return;this.updateSeatGroupVisibility();let e=N(this.stage.scaleX()*this.dpr,.15,2);this.seatLayer.clearCache(),this.seatLayer.cache({pixelRatio:e}),this.seatLayer.listening(!1),this.cached=!0,this.mountCachePending=!1}cacheSeatLayer(){this.destroyed||typeof document>"u"||(this.recacheTimer=null,this.rebuildSeatCache(),this.seatLayer.batchDraw())}releaseSeatLayerBitmap(){Tl(_i,this.seatLayer)}forceDraw(){this.loadingReveal==="plain"&&this.cancelSeatReveal(!0),this.zoomSettleRaf&&(this.cancelZoomSettle(),this.afterViewChange()),this.recacheTimer&&(clearTimeout(this.recacheTimer),this.recacheTimer=null,this.effScale()<de?this.rebuildSeatCache():this.cached&&(this.releaseSeatLayerBitmap(),this.seatLayer.listening(!0),this.cached=!1)),this.bgLayer.draw(),this.seatLayer.draw(),this.overlayLayer.draw()}async ready(){this.cancelSeatReveal(!0);let e=this.assets.generation,i=typeof document<"u"&&"fonts"in document?document.fonts:null;if(await Promise.all([...this.assets.pending(),...i?[i.ready.then(()=>{}),i.load("700 24px Inter").then(()=>{}),i.load('600 12px "JetBrains Mono"').then(()=>{})]:[]]),e!==this.assets.generation)throw new Error("The chart changed while its export assets were loading.");if(this.assets.failures.length)throw new Error(`Export stopped because ${this.assets.failures.join(" ")}`);this.exportMode&&(this.fitExportContent(),this.forceDraw())}exportSceneBounds(){let e=[this.bgLayer,this.seatLayer,this.overlayLayer].map(s=>s.getClientRect({relativeTo:this.stage})).filter(s=>s.width>0&&s.height>0);if(!e.length)return this.bounds;let i=Math.min(...e.map(s=>s.x)),o=Math.min(...e.map(s=>s.y)),n=Math.max(...e.map(s=>s.x+s.width)),r=Math.max(...e.map(s=>s.y+s.height));return{x:i,y:o,width:Math.max(1,n-i),height:Math.max(1,r-o)}}fitExportContent(){if(!this.exportMode)return;let e=this.stage.width(),i=this.stage.height(),o=Math.max(12,Math.min(36,Math.min(e,i)*.025)),n=()=>{let r=this.exportSceneBounds(),s=Math.max(1,e-o*2),l=Math.max(1,i-o*2),a=Math.min(s/r.width,l/r.height)||1;this.fitScale=a,this.stage.scale({x:a,y:a}),this.stage.position({x:(e-r.width*a)/2-r.x*a,y:(i-r.height*a)/2-r.y*a}),this.afterViewChange()};n(),n()}captureCanvas(){if(!this.exportMode)throw new Error("captureCanvas() is available only on a renderer created with exportMode.");this.forceDraw();let e;try{e=this.stage.toCanvas({pixelRatio:1,imageSmoothingEnabled:!0})}catch(n){let r=n instanceof Error?n.message:String(n);throw new Error(`The chart canvas could not be captured. A buyer-visible image may block export. ${r}`)}let i=document.createElement("canvas");i.width=this.stage.width(),i.height=this.stage.height();let o=i.getContext("2d");if(!o)throw new Error("Canvas 2D is unavailable; this browser cannot create an export.");o.fillStyle=this.canvasBackground,o.fillRect(0,0,i.width,i.height);try{o.drawImage(e,0,0)}finally{e.width=1,e.height=1}return i}updateFreeTextVisibility(){let e=this.exportMode?Math.max(this.effScale(),ie):this.effScale();for(let{node:i,backdrop:o,kind:n}of this.freeTextById.values()){if(n==="ga-label"||n==="ga-capacity")continue;let r=n==="free-text"&&this.nodeBelongsToFocusedSection(i),s=n==="direct-landmark";if(s){let a=Number(i.getAttr("directLandmarkBaseFontSize"))||i.fontSize();i.setAttr("directLandmarkBaseFontSize",a),i.fontSize(Math.max(a,K/e))}let l=s||r||pe(i.fontSize(),e);i.visible(l),o?.visible(l)}for(let{node:i,fontSize:o}of this.iconNodeById.values())i.visible(this.nodeBelongsToFocusedSection(i)||pe(o,e))}nodeBelongsToFocusedSection(e){let i=this.focusedSectionId;if(!i)return!1;this.focusMembershipKey!==i&&(this.focusMembership.clear(),this.focusMembershipKey=i);let o=this.focusMembership.get(e);if(o!==void 0)return o;let n=this.sections.filter(s=>s.id===i||s.logicalId===i||s.zone===i),r=!1;if(n.length){let s=e.getClientRect({relativeTo:this.bgLayer,skipShadow:!0}),l={x:s.x+s.width/2,y:s.y+s.height/2};r=n.some(a=>te(l,a.outline,a.holes))}return this.focusMembership.set(e,r),r}buildRowLabelPlan(e){this.rowLabelPlan=Cl(e,{theme:this.theme,canvasBackground:this.canvasBackground,seats:this.seats,seatSection:this.seatSection,seatR:this.seatR,objectFilteredOut:i=>this.objectFilteredOut(i)})}rowLabelBox(e,i,o=J){return Ko(e,i,o)}resolveAutomaticRowLabelPosition(e,i,o){return xl(e,i,o,this.seatIndex)}objectFilteredOut(e){let i=e.categoryKey;return i?!!(this.categoryHighlight&&i!==this.categoryHighlight||this.categoryFilter&&!this.categoryFilter.has(i)):!1}updateLabels(){Ka(this.viewportLabelContext)}get viewportLabelContext(){return{exportMode:this.exportMode,effScale:()=>this.effScale(),labelsWereVisible:()=>this.labelsVisible,onLabelVisibilityChange:e=>this.applyLabelVisibility(e),boothLabelById:this.boothLabelById,circleById:this.circleById,focusedSeatOpacity:(e,i)=>this.focusedSeatOpacity(e,i),labelGroup:this.labelGroup,rowLabelGroup:this.rowLabelGroup,seatLabelPool:this.seatLabelPool,statusCuePool:this.statusCuePool,labelLiftGroups:this.labelLiftGroups,seatLabelById:this.seatLabelById,seatLabelDrops:this.seatLabelDrops,setSeatLabelRungOpen:e=>{this.seatLabelRungOpen=e},visibleSeatCandidates:()=>this.visibleSeatCandidates(),worldToScreen:e=>this.worldToScreen(e),stage:this.stage,accessGlyphById:this.accessGlyphById,accessGlyphShouldShow:e=>this.accessGlyphShouldShow(e),statusById:this.statusById,renderedSeatPoint:e=>this.renderedSeatPoint(e),viewMode:this.viewMode,perspectiveSeatScale:this.perspectiveSeatScale,ownedHold:this.ownedHold,hasSeatMark:e=>this.seatMarks.has(e),filterExcluded:e=>this.filterExcludesSeat(e),focusDims:e=>this.selectionFocusDims(e)||this.focusedSeatOpacity(e,1)<1,statusCueInk:e=>Sa(this.circleById.get(e)?.fill(),this.canvasBackground,this.filterExcludesSeat(e)),statusCueScale:()=>ya(this.markerR),opts:this.opts,seatLabelContainer:e=>this.seatLabelContainer(e),seatLabelScale:e=>this.seatLabelScale(e),labelFont:()=>this.labelFont(),seatLabelInk:(e,i)=>this.seatLabelInk(e,i),seatPreferredLabelInk:e=>this.seatPreferredLabelInk(e),seatR:this.seatR,freeTextById:this.freeTextById,bgLayer:this.bgLayer,rowLabelPlan:this.rowLabelPlan,focusedSectionId:this.focusedSectionId,resolveAutomaticRowLabelPosition:(e,i,o)=>this.resolveAutomaticRowLabelPosition(e,i,o),rowLabelBox:(e,i)=>this.rowLabelBox(e,i),isoT:this.isoT,applyUprightLabels:()=>this.applyUprightLabels(),overlayLayer:this.overlayLayer}}handleResize(){this.gestures.invalidateRect();let e=ul({width:this.container.clientWidth,height:this.container.clientHeight,stageWidth:this.stage.width(),stageHeight:this.stage.height()});if(e==="hidden"){this.hiddenPose??=this.getCameraPose();return}let i=this.hiddenPose;if(this.hiddenPose=null,e==="unchanged"){i&&this.setCameraPose(i);return}this.stage.size(e),i&&this.setCameraPose(i),this.refitCurrentView()}};Bt.ZOOM_STEP=1.4;var Zo=Bt;function Zl(t,e){return new Zo(t,e)}function jl(t,e){t.accessFilter=e===null?null:[...e],t.renderer?.setAccessibilityFilter?.(e);let i=t.renderer?.getFocusedSection?.()??null;i&&t.emitSectionFocus(t.sectionSummary(i))}function jo(t,e){let i=t.renderer;if(!i?.focusAccessibleSeats)return!1;let o=e===void 0?t.accessFilter:e;if(!o)return!1;let n=tc(t,o);n&&t.setFloor(n);let r=i.focusAccessibleSeats(o);return r&&t.emitSectionFocus(null),r}function Ql(t,e){let i=t.renderer;if(!i?.accessibleSpread)return null;let o=e===void 0?t.accessFilter:e;return o?i.accessibleSpread(o):null}function Jl(t,e,i,o){let n=t.renderer;n&&(t.accessFilter&&(i?.accessibleLeft??0)>0&&n.focusAccessibleSection?.(e,t.accessFilter)||(n.focusSection?n.focusSection(e,o?{anchor:o}:void 0):n.focusRegion?.(e)))}function ec(t,e){let i=e===void 0?t.accessFilter:e;if(!i)return null;let o=tc(t,i);o&&t.setFloor(o);let n=t.renderer,r=n?.accessibleSections?.(i)??[];if(!r.length)return null;let s=t.accessStepAt?r.findIndex(a=>a.id===t.accessStepAt):-1,l=r[(s+1)%r.length];return t.accessStepAt=l.id,n?.focusAccessibleSection?.(l.id,i)||n?.focusSection?.(l.id),t.emitSectionFocus(t.sectionSummary(l.id)),{...l,index:r.indexOf(l),total:r.length}}function tc(t,e){let i=t.doc;if(!i?.floors||i.floors.length<2)return null;let o=new Set(e),n=a=>o.size===0?!!a.accessible:!!a.accessibility?.some(c=>o.has(c)),r=a=>a.some(c=>c.type==="row"&&(c.overrides??[]).some(n)),s=t.getActiveFloorId(),l=i.floors.find(a=>a.id===s);return l&&r(l.objects)?null:i.floors.find(a=>r(a.objects))?.id??null}function ic(t,e){return t.accessFilter?Te(e,t.accessFilter)==="other":!1}function oc(t,e){let i=t.renderer;if(!i)return;let o=i.getFocusedSection?.()??null;if(i.clearSectionFocus?.(),e?.length){t.emitSectionFocus(null),t.bandReturnPose||(t.bandReturnPose=i.getCameraPose?.()??null,t.bandReturnSection=t.bandReturnPose?o:null);let r=Xu(t,e);r&&t.setFloor(r),i.focusCategories?i.focusCategories(e):i.zoomToFit();return}let n=t.bandReturnPose!=null;t.bandReturnPose=null,t.bandReturnSection=null,!(t.accessFilter&&jo(t))&&(i.clearSectionFocus?.(),t.emitSectionFocus(null),n&&i.zoomToFit())}function Xu(t,e){let i=t.doc;if(!i?.floors||i.floors.length<2)return null;let o=new Set(e),n=l=>l.some(a=>a.type==="row"&&(o.has(a.categoryKey)||(a.overrides??[]).some(c=>c.categoryKey!=null&&o.has(c.categoryKey)))||a.type==="gaArea"&&o.has(a.categoryKey)),r=t.getActiveFloorId(),s=i.floors.find(l=>l.id===r);return s&&n(s.objects)?null:i.floors.find(l=>n(l.objects))?.id??null}function nc(t,e,i){let o=new Map,n=new Map,r=new Map,s=new Map,l=[],a=new Map(mn(t).map(h=>[h.id,h])),c=Kt(t),d=new Map(c.sections.map(h=>[h.id,h.label]));for(let h of e){o.set(h.label,h.id),n.set(h.label,h),r.set(h.id,h),l.push(h.id);let p=a.get(h.rowId),m=p&&"label"in p&&typeof p.label=="string"?p.label:void 0,f=p?.type==="row"?p.segmentedRow:void 0,y=f?.displayLabel??(p&&"displayLabel"in p&&typeof p.displayLabel=="string"&&p.displayLabel?p.displayLabel:m),u=i.get(h.rowId),g=p?.type==="table"?"table":p?.type==="booth"?"booth":"seat",S=y,b=f?.displayType?.trim()||(p&&"displayType"in p&&typeof p.displayType=="string"&&p.displayType.trim()?p.displayType.trim():void 0),v=h.displayLabel??h.label,k=v.split("-"),w=u||h.kind==="booth"?void 0:y&&v.startsWith(`${y}-`)?v.slice(y.length+1):k[k.length-1]??v;s.set(h.id,{objectId:h.rowId,objectType:g,sectionLabel:d.get(c.objectToSection.get(h.rowId)??""),rowLabel:S,seatNumber:w,...b?{displayType:b,rowType:b}:{}})}return{labelToId:o,labelToSeat:n,seatById:r,seatContext:s,allIds:l}}function rc(t,e={}){let{baseMs:i=1e3,factor:o=2,maxMs:n=1/0,jitter:r=0,random:s=Math.random}=e,l=Math.min(i*o**Math.max(0,t),n);if(r<=0)return l;let a=Math.min(1,r);return l*(1-a+a*s())}function sc(t,e,i){return pt(t).map(o=>{let n=t.categories.find(r=>r.key===o.categoryKey);return{id:o.id,label:o.label,...o.displayLabel?{displayLabel:o.displayLabel}:{},...o.displayType?{displayType:o.displayType}:{},capacity:Math.max(0,Math.floor(o.capacity)),available:Vt(o).filter(r=>i(r)==="free").length,categoryKey:o.categoryKey,tiers:n?.tiers,price:n?.tiers?.[0]?.price??n?.price??0,currency:e}})}function ac(t,e){let i={};for(let o of t)i[o.id]=e?{available:o.available,selected:e.get(o.id)??0}:{available:o.available};return i}function lc(t){let e={};for(let[i,o]of t.seatById)t.groupedTableBySeatId.has(i)||t.closedMembers.has(i)||(t.statusOf(i)??"free")==="free"&&(e[o.categoryKey]=(e[o.categoryKey]??0)+1);for(let i of t.groupedTablesByLabel.values()){if(i.chairs.some(n=>t.closedMembers.has(n.id)))continue;let o=i.chairs[0];o&&(t.statusOf(o.id)??"free")==="free"&&(e[i.categoryKey]=(e[i.categoryKey]??0)+i.maxOccupancy)}for(let i of t.gaAreas??[])e[i.categoryKey]=(e[i.categoryKey]??0)+i.available;return e}function Yu(t){return t.accessibility?.length?t.accessibility:t.accessible?["wheelchair"]:[]}function cc(t,e){let i=new Set,o=new Map;for(let n of t){let r=Yu(n);if(!r.length)continue;let s=e(n.id)==="free";for(let l of r)i.add(l),s&&o.set(l,(o.get(l)??0)+1)}return i.size?ln.filter(n=>i.has(n.key)).map(n=>({key:n.key,count:o.get(n.key)??0})):[]}var c0=5e3,d0={lost:[],holdLapsed:!1,lapsedLabels:[],recoverable:[]};function Uu(t){if(!t.holdActive||t.holdLabels.length===0)return!1;let e=t.now??Date.now();return t.holdExpiresAt!=null&&e>=t.holdExpiresAt+5e3||t.serverHoldActive===!1?!0:!t.holdLabels.some(i=>t.statusOf(i)==="held")}function dc(t){let e=new Set(t.holdLabels),i=t.selection.filter(n=>!e.has(n)&&t.statusOf(n)!=="free");if(!Uu(t))return{lost:i,holdLapsed:!1,lapsedLabels:[],recoverable:[]};let o=[...t.holdLabels];return{lost:i,holdLapsed:!0,lapsedLabels:o,recoverable:o.filter(n=>t.statusOf(n)==="free")}}function h0(t){return t.lost.length>0||t.holdLapsed}function u0(t){return!t.lapsedLabels.length||!t.recoverable.length?"none":t.recoverable.length===t.lapsedLabels.length?"all":"partial"}function hc(t,e,i=Date.now()){return e&&i<t+5e3}function uc(t){if(typeof document>"u"||typeof document.addEventListener!="function")return()=>{};let e=()=>{document.visibilityState==="visible"&&t()};return document.addEventListener("visibilitychange",e),()=>{typeof document.removeEventListener=="function"&&document.removeEventListener("visibilitychange",e)}}function pc(t){if(!t?.zones?.length)return[];let e=new Set(Kt(t).sections.filter(i=>i.seatCount>0&&!!i.zone).map(i=>i.zone));return t.zones.filter(i=>e.has(i.id)).map(i=>({id:i.id,label:i.label}))}function fc(t){let e=t.doc;if(!e?.objects?.length)return null;let i=e.focalPoint??{x:0,y:0},o=Ze(e).filter(s=>!t.groupedObjectIds.has(s.rowId)),n=new Set;for(let s of o)t.heldLabels.has(s.label)||t.tierApplies(s)&&(t.accessFilter&&!xe(s,t.accessFilter)||t.statusOfLabel(s.label)==="free"&&n.add(s.label));let r=$n(o,n,{qty:t.qty,categoryKey:t.categoryKey,zoneId:t.zoneId,focal:i,preferPremium:!0});return r.labels.length!==t.qty?null:r.labels.every(s=>t.isPremium(s))?[...r.labels]:null}var Qo=["background","rowLabelColor","textColor","selectionColor"];function mc(t,e){return!t||!e?!t&&!e:Qo.every(i=>t[i]===e[i])}function ct(t){let e=t??{};return{status:e.status,conflicts:e.conflicts,reason:e.reason}}function Bi(t){return t==="blocked"?"not_for_sale":t==="held"||t==="booked"||t==="free"||t==="not_for_sale"?t:"free"}function gc(t,e,i){let o=Sn(e,i);o==="all"?t.setFloorOverview?.(!0):o&&t.setActiveFloor?.(o)}var Ie=class extends Error{constructor(i){super(i.message);this.status=422;this.name="PickerSelectionError",this.reason=i.code,this.labels=i.labels}};function yc(t,e){return!e||t.eventConfigurationId===e.id&&t.eventConfigurationVersion===e.version?t:{...t,eventConfigurationId:e.id,eventConfigurationVersion:e.version}}var Oi=class{constructor(){this.ref=null;this.pending=null}reset(e){this.ref=e??null,this.pending=null}load(e,i){if(!this.ref||!e.eventConfiguration)return Promise.resolve(null);if(!this.pending){let o=this.ref;this.pending=e.eventConfiguration(i).then(n=>{if(n.reference.id!==o.id||n.reference.version!==o.version||n.configuration.id!==o.id||n.configuration.version!==o.version)throw new Error("seatlayer: Event configuration response did not match the chart reference");return n.configuration})}return this.pending}};async function bc(t,e,i){if(!t.renderer)return null;let n=e??t.getSelection().map(a=>a.label),r=t.hold_?.items??[],s=[...new Set([...r.map(a=>a.label),...n])];if(!s.length)return null;let l=t.ticketIssue(s);if(l)throw new Ie(l);if(t.hold_&&t.holdCovers(s))return t.hold_;try{let a=s.map(d=>{let h=r.find(f=>f.label===d);if(h&&(h.objectType==="ga"||h.quantity!=null||h.tierId!=null))return{label:d,tierId:h.tierId,...h.quantity!=null?{quantity:h.quantity}:{}};let p=t.labelToSeat.get(d),m=p?t.toSeat(p):null;return{label:d,...m?.tierId?{tierId:m.tierId}:{},...t.tableQuantityRequest(m)}}),c=await t.api.hold(t.key,a,i,t.hold_?.holdId);return t.setHold({holdId:c.holdId,labels:s,expiresAt:c.expiresAt,items:c.items}),t.hold_}catch(a){throw t.handle409Conflicts(a),a}}async function Sc(t,e){if(t.closed||!e||!t.api.resume)return null;let i=await t.api.resume(t.key,e);if(t.closed)return null;let o=[...new Set(i.items.map(n=>n.label))];return o.length?(t.setHold({holdId:i.holdId,labels:o,expiresAt:i.expiresAt,items:i.items},"restored"),t.hold_):null}async function vc(t,e){let i=t.hold_;if(!i||!t.api.extend)return null;try{let o=await t.api.extend(t.key,i.holdId,e);return t.hold_?.holdId!==i.holdId||t.setHold({holdId:i.holdId,labels:i.labels,expiresAt:o.expiresAt,items:i.items}),t.hold_}catch{return null}}async function wc(t,e,i,o){let n=t.renderer;if(!n)return null;if(!t.api.book)throw new Error("picker: transport has no book() \u2014 hold-only mode");let r=i??t.getSelection().map(c=>c.label);if(!r.length)return null;let s=t.ticketIssue(r);if(s)throw new Ie(s);let l;try{if(t.hold_&&t.holdCovers(r))l=t.hold_.holdId;else{let c=t.hold_?.holdId,d=await t.api.hold(t.key,r.map(h=>{let p=t.labelToSeat.get(h),m=p?t.toSeat(p):null;return{label:h,...m?.tierId?{tierId:m.tierId}:{},...t.tableQuantityRequest(m)}}),o,c);l=d.holdId,t.setHold({holdId:l,labels:[...r],expiresAt:d.expiresAt,items:d.items})}await t.api.book(t.key,r,l,e)}catch(c){let{status:d,conflicts:h,reason:p}=ct(c);if(t.clearHold(),d===409&&p==="event_closed")t.opts.onSalesClosed?.();else if(d===409&&h?.length){let m=new Set(h.map(u=>u.label)),f=t.idsForLabels(m);f.length&&(n.setStatus(f,"booked"),n.deselect(f),t.resetTableQuantitiesForLabels(m));let y=r.filter(u=>!m.has(u));y.length&&l&&t.api.release(t.key,y,l).catch(()=>{}),t.emitSelectionChange()}else l&&t.api.release(t.key,r,l).catch(()=>{});throw c}let a=t.idsForLabels(r);return a.length&&(n.setStatus(a,"booked"),n.deselect(a)),t.clearHold(),t.resetTableQuantitiesForLabels(r),t.emitSelectionChange(),t.opts.onBook?.(e),r}async function kc(t){let e=t.hold_;if(!e)return!0;try{let o=await t.api.release(t.key,e.labels,e.holdId);if(!t.releaseConfirmed(o,e.labels))return await t.resnapshot(),!1}catch(o){return t.emitError(o),!1}if(t.hold_?.holdId!==e.holdId)return!0;t.clearHold(),t.resetTableQuantitiesForLabels(e.labels);let i=t.idsForLabels(e.labels);return i.length&&(t.renderer?.deselect(i),t.renderer?.setStatus(i,"free")),!0}async function Lc(t,e){let i=t.hold_;if(!i)return!0;let o=e.filter(l=>i.labels.includes(l));if(!o.length)return!0;try{let l=await t.api.release(t.key,o,i.holdId);if(!t.releaseConfirmed(l,o))return await t.resnapshot(),!1}catch(l){return t.emitError(l),!1}if(t.hold_?.holdId!==i.holdId)return!0;let n=i.labels.filter(l=>!o.includes(l)),r=i.items?.filter(l=>!o.includes(l.label));n.length?t.setHold({...i,labels:n,items:r}):t.clearHold(),t.resetTableQuantitiesForLabels(o);let s=t.idsForLabels(o);return s.length&&(t.renderer?.deselect(s),t.renderer?.setStatus(s,"free")),!0}function Cc(t,e){let i=t?.released;return!Array.isArray(i)||e.every(o=>i.includes(o))}function xc(t,e){let i=t.hold_;if(!i||i.labels.length!==e.length||!e.every(r=>i.labels.includes(r)))return!1;let o=new Map((i.items??[]).map(r=>[r.label,r.tierId])),n=new Map((i.items??[]).map(r=>[r.label,r.quantity??1]));return e.every(r=>{let s=t.labelToSeat.get(r),l=s?t.toSeat(s):null,a=l?.tierId??null;return(l?.objectType!=="table"||(l.bookingMode!=="variable"||t.confirmedVariableTables.has(r))&&(!n.has(r)||n.get(r)===l.quantity))&&(!o.has(r)||o.get(r)===a)})}function Tc(t,e){let{status:i,conflicts:o}=ct(e);if(i!==409||!o?.length)return;let n=t.renderer;if(!n)return;let r=t.idsForLabels(o.map(s=>s.label));r.length&&(n.deselect(r),n.setStatus(r,"held"),t.resetTableQuantitiesForLabels(o.map(s=>s.label))),t.emitSelectionChange()}function Pc(t,e,i="created"){for(let r of e.items??[])t.groupedTablesByLabel.has(r.label)&&r.quantity!=null&&(t.tableQuantities.set(r.label,r.quantity),t.groupedTablesByLabel.get(r.label)?.mode==="variable"&&t.confirmedVariableTables.add(r.label));let o={...e,seats:t.seatsForLabels(e.labels)};t.hold_=o,t.renderer?.setOwnedHold?.(t.idsForLabels(o.labels)),t.expiryTimer&&clearTimeout(t.expiryTimer);let n=Math.max(0,o.expiresAt-Date.now());t.expiryTimer=setTimeout(()=>{t.expireActiveHold()},n),i==="restored"?t.opts.onHoldRestored?.(o):t.opts.onHold?.(o)}function Ic(t){t.hold_=null,t.renderer?.setOwnedHold?.(null),t.expiryTimer&&(clearTimeout(t.expiryTimer),t.expiryTimer=null)}async function Mc(t){let e=t.hold_;if(e){try{let i=await t.api.objects(t.key);if(t.hold_?.holdId!==e.holdId)return;t.applySeatsMap(i.seats,i.default??"free")}catch{t.hold_?.holdId===e.holdId&&(t.expiryTimer=setTimeout(()=>{t.expireActiveHold()},2e3));return}if(t.hold_?.holdId===e.holdId){if(hc(e.expiresAt,e.labels.some(i=>t.statusOf(i)==="held"))){t.expiryTimer=setTimeout(()=>{t.expireActiveHold()},1e3);return}t.clearHold(),t.opts.onHoldExpired?.()}}}function Rc(t){if(t!=null&&(!Number.isInteger(t)||t<1))throw new Error("picker: `numberOfPlacesToSelect` must be a positive integer");return t??null}function Ac(t,e,i,o){if(i!=null&&!Array.isArray(i))throw new TypeError("picker: `selectionValidators` must be an array");let n=[],r=0,s=!1,l=!1;for(let c of i??[])if(c?.type==="minimumSelectedPlaces"){if(!Number.isInteger(c.minimum)||Number(c.minimum)<1)throw new TypeError("picker: `minimumSelectedPlaces.minimum` must be a positive integer");r=Math.max(r,Number(c.minimum))}else if(c?.type==="consecutiveSeats")s=!0;else if(c?.type==="noOrphanSeats")l=!0;else throw new TypeError(`picker: unsupported selection validator "${String(c?.type??"")}"`);if(r&&n.push({type:"minimumSelectedPlaces",minimum:r}),s&&n.push({type:"consecutiveSeats"}),l&&n.push({type:"noOrphanSeats"}),t!=null&&r>t)throw new Error("picker: `minimumSelectedPlaces.minimum` cannot exceed `numberOfPlacesToSelect`");let a=Math.max(0,Math.floor(e??t??Math.max(o,r)));if(t!=null&&a<t)throw new Error("picker: `maxSelection` cannot be lower than `numberOfPlacesToSelect`");if(e!=null&&a<r)throw new Error("picker: `maxSelection` cannot be lower than `minimumSelectedPlaces.minimum`");return{validators:n,maxSelection:t??a}}function qu(t){let e=Number(t.slice(t.lastIndexOf(":")+1));return Number.isInteger(e)?e:-1}function Zu(t){if(t.length<=1)return!1;let e=t[0]?.objectId,i=t[0]?.categoryKey;if(!e||t.some(n=>n.objectId!==e||n.categoryKey!==i))return!0;let o=t.map(n=>qu(n.id)).sort((n,r)=>n-r);return o.some((n,r)=>n<0||r>0&&n!==o[r-1]+1)}function Ec(t,e,i,o,n){let r=o.find(a=>a.type==="minimumSelectedPlaces")?.minimum??0,s=i??r,l=[];return i!=null&&e!==i&&l.push("numberOfPlacesToSelect"),r&&e<r&&l.push("minimumSelectedPlaces"),o.some(a=>a.type==="consecutiveSeats")&&Zu(t)&&l.push("consecutiveSeats"),o.some(a=>a.type==="noOrphanSeats")&&n()&&l.push("noOrphanSeats"),{isValid:l.length===0,count:e,required:s,remaining:Math.max(0,s-e),seats:t,violations:l}}function Fc(t){let{id:e,doc:i,seatById:o,groupedTableBySeatId:n}=t,r=i.objects.find(v=>v.type==="section"&&v.id===e);if(!r)return null;let s=t.sectionMembers(e),l=new Map,a=new Map,c=new Set,d=0,h=0;for(let v of s){let k=o.get(v);if(!k)continue;t.matchesAccessFilter&&t.statusOf(v)==="free"&&t.matchesAccessFilter(k)&&(h+=1);let w=n.get(v);if(w){if(c.has(w.label))continue;c.add(w.label),l.set(w.categoryKey,(l.get(w.categoryKey)??0)+w.maxOccupancy),t.statusOf(w.chairs[0]?.id??v)==="free"&&(d+=w.maxOccupancy,a.set(w.categoryKey,(a.get(w.categoryKey)??0)+w.maxOccupancy))}else l.set(k.categoryKey,(l.get(k.categoryKey)??0)+1),t.statusOf(v)==="free"&&(d++,a.set(k.categoryKey,(a.get(k.categoryKey)??0)+1))}let p=[...l.entries()].map(([v,k])=>{let w=i.categories.find(L=>L.key===v),C=w?.tiers?.length?w.tiers.map(L=>L.price):[w?.price??0],P=Math.min(...C),T=Math.max(...C);return{key:v,count:k,label:w?.label??v,color:w?.color??"#6e7bff",price:P,priceMin:P,priceMax:T}}).sort((v,k)=>v.price-k.price),m=p.map(v=>v.priceMin),f=p.map(v=>v.priceMax),y=r.zone?i.zones?.find(v=>v.id===r.zone):void 0,u=v=>{let k=null,w=0;for(let[C,P]of v)(P>w||P===w&&k!=null&&C<k)&&(k=C,w=P);return k},g=u(a)??u(l),b=(g?p.find(v=>v.key===g)?.color:void 0)??y?.color??r.color??"#6e7bff";return{id:e,...g?{dominantCategoryKey:g}:{},...t.matchesAccessFilter?{accessibleLeft:h}:{},label:r.displayLabel??r.label,zoneLabel:y?.label??"",...r.entrance&&r.entrance.trim()?{entrance:r.entrance.trim()}:{},color:b,seatsLeft:d,priceMin:m.length?Math.min(...m):0,priceMax:f.length?Math.max(...f):0,categories:p}}var Di=class{constructor(e={}){this.inFlight=null;this.lastSettledAt=Number.NEGATIVE_INFINITY;this.windowMs=e.windowMs??250,this.now=e.now??(()=>Date.now())}run(e,i=!1){if(!i){if(this.inFlight)return this.inFlight;if(this.now()-this.lastSettledAt<this.windowMs)return Promise.resolve()}let o=e().then(()=>{this.lastSettledAt=this.now()},()=>{}).finally(()=>{this.inFlight===o&&(this.inFlight=null)});return this.inFlight=o,o}markSettled(){this.lastSettledAt=this.now()}reset(){this.inFlight=null,this.lastSettledAt=Number.NEGATIVE_INFINITY}};function _c(t,e){return t?.source==="socket"&&e.source==="http"?t:e}function Bc(t,e){return t?.source==="socket"?t:e?{seats:e.seats,default:e.default,source:"http"}:t}var Ju=10,ep=15e3,Oc=class{constructor(e){this.selectableSeatIds=null;this.lastSelectionValidity=null;this.renderer=null;this.gaSelected=null;this._doc=null;this.eventConfiguration=new Oi;this.hidden=new Set;this.mapTheme=null;this.closedSections=new Set;this.labelToId=new Map;this.labelToSeat=new Map;this.expandedSeats=[];this.seatTiers=new Map;this.seatById=new Map;this.seatContext=new Map;this.allIds=[];this.groupedTablesByObject=new Map;this.groupedTablesByLabel=new Map;this.groupedTableBySeatId=new Map;this.tableQuantities=new Map;this.confirmedVariableTables=new Set;this.groupedSelectionOverhead=0;this.ws=null;this.connectFallback=null;this.realtime=null;this.reconnectTimer=null;this.attempt=0;this.closed=!1;this.detachVisibility=null;this.hold_=null;this.liveStatuses=new Map;this.liveDefault="free";this.currency="USD";this.expiryTimer=null;this.snapshots=new Di;this.accessFilter=null;this.viewportInsets=null;this.accessStepAt=null;this.bandReturnPose=null;this.bandReturnSection=null;this.hintShown=!1;this.lastSnapshotAt=0;this.seatsBuilt=!1;this.pendingSnapshot=null;this.socketVersion=0;this.opts=e,this.api=e.transport,this.key=e.eventKey,this.numberOfPlacesToSelect=Rc(e.numberOfPlacesToSelect);let i=Ac(this.numberOfPlacesToSelect,e.maxSelection,e.selectionValidators,Ju);this.selectionValidators=i.validators,this.maxSelection=i.maxSelection,this.selectableObjectRefs=e.selectableObjects==null?null:[...new Set(e.selectableObjects.filter(o=>typeof o=="string"&&!!o))],this.mapTheme=e.mapTheme??null}get doc(){return this._doc}visibleDoc(){if(!this._doc)return{objects:[]};let e=wn(this._doc,this.hidden);if(!this.mapTheme)return e;let i={...e.theme??{}};for(let o of Qo){let n=this.mapTheme[o];n&&(i[o]=n)}return{...e,theme:i}}setMapTheme(e){return mc(this.mapTheme,e??null)?!1:(this.mapTheme=e??null,this.rebuildPreservingState(),!0)}rebuildPreservingState(){let e=this.renderer;if(!e)return!1;let i=e.getSelection().map(l=>l.id),o=this.getActiveFloorId(),n=e.isFloorOverview?.()??!1,r=e.getFocusedSection?.()??null,s=e.getCameraPose?.();return e.setChart(this.visibleDoc(),o?{floorId:o}:void 0),n&&e.setFloorOverview?.(!0),this.opts.colorblindSafe&&e.setColorblindSafe?.(!0),this.closedSections.size&&e.setClosedSections?.([...this.closedSections]),this.applySeatsMap(Object.fromEntries(this.liveStatuses),this.liveDefault),i.length&&e.select?.(i),r&&e.focusSection?.(r),s&&e.setCameraPose&&e.setCameraPose(s),e.settleView?.(),!0}refreshMapCopy(){this.rebuildPreservingState()&&this.renderer?.forceDraw()}syncHidden(e){let i=e.filter(n=>typeof n=="string");if(i.length===this.hidden.size&&i.every(n=>this.hidden.has(n)))return!1;this.hidden=new Set(i);let o=this.renderer?.isFloorOverview?.()??!1;return this.renderer?.setChart(this.visibleDoc()),o&&this.renderer?.setFloorOverview?.(!0),!0}syncClosed(e){let i=(e??[]).filter(o=>typeof o=="string");return i.length===this.closedSections.size&&i.every(o=>this.closedSections.has(o))?!1:(this.closedSections=new Set(i),this.renderer?.setClosedSections?.(i),!0)}isSectionClosed(e){return this.closedSections.has(e)}currentHold(){return this.hold_}getRenderer(){return this.renderer}seatByLabel(e){return this.labelToSeat.get(e)}getExpandedSeats(){return this.expandedSeats}loadEventConfiguration(){return this.eventConfiguration.load(this.api,this.key)}idForLabel(e){return this.labelToId.get(e)}idsForLabel(e){let i=this.groupedTablesByLabel.get(e);if(i)return i.chairs.map(n=>n.id);let o=this.labelToId.get(e);return o?[o]:[]}idsForLabels(e){return[...new Set([...e].flatMap(i=>this.idsForLabel(i)))]}tableSelection(e){let i=this.groupedTableBySeatId.get(e)??this.groupedTablesByLabel.get(e);return i?this.toTableSeat(i):null}lineItemDisplay(e){if(e.objectType==="ga"){let n=this.visibleDoc(),r=pt(n).find(s=>s.id===e.objectId);return{...r?.displayLabel?{displayLabel:r.displayLabel}:{},...r?.displayType?{displayType:r.displayType}:{}}}if(e.objectType==="table"){let n=this.groupedTablesByLabel.get(e.label);return{...n?.displayLabel&&n.displayLabel!==n.label?{displayLabel:n.displayLabel}:{},...n?.displayType?{displayType:n.displayType}:{}}}let i=this.labelToSeat.get(e.label),o=i?this.seatContext.get(i.id):void 0;return{...i?.displayLabel?{displayLabel:i.displayLabel}:{},...o?.displayType?{displayType:o.displayType}:{}}}async render(e){if(this.renderer)return null;let i=performance.now(),o={},n=L=>Math.round((performance.now()-L)*100)/100;this.closed=!1;let r=performance.now(),s=(async()=>this.api.chart(this.key))().then(L=>({ok:!0,res:L,elapsed:n(r)}),L=>({ok:!1,error:L,elapsed:n(r)})),l=performance.now(),a=(async()=>this.api.objects(this.key))().then(L=>({ok:!0,objects:L,elapsed:n(l)}),()=>({ok:!1,elapsed:n(l)})),c=await s;if(o.loadChart=c.elapsed,!c.ok)return this.emitError(c.error),null;let d=c.res;if(this.closed)return null;this._doc=yc(d.doc,d.event.eventConfiguration),this.eventConfiguration.reset(d.event.eventConfiguration);let h=performance.now();try{let L=qn(d.doc,d.event.inventoryModelVersion===2?2:1);this.groupedTablesByObject=new Map(L.map(x=>[x.objectId,x])),this.groupedTablesByLabel=new Map(L.map(x=>[x.label,x])),this.groupedTableBySeatId=new Map(L.flatMap(x=>x.chairs.map(I=>[I.id,x]))),this.tableQuantities=new Map(L.map(x=>[x.label,x.mode==="whole"?x.capacity:x.minOccupancy])),this.confirmedVariableTables=new Set,this.groupedSelectionOverhead=L.reduce((x,I)=>x+Math.max(0,I.chairs.length-1),0)}catch(L){return this.emitError(L),null}this.expandedSeats=Ze(d.doc,{deriveRestrictedView:d.doc.derivedRestrictedView===!0});let p=nc(d.doc,this.expandedSeats,this.groupedTablesByObject);this.labelToId=p.labelToId,this.labelToSeat=p.labelToSeat,this.seatById=p.seatById,this.seatContext=p.seatContext,this.allIds=p.allIds;for(let L of this.groupedTablesByLabel.values()){let x=L.chairs[0];x&&(this.labelToId.set(L.label,x.id),this.labelToSeat.set(L.label,x))}o.normalizeBuyerModel=n(h);let m=d.event.currency??this.opts.currency;this.currency=m??"USD";let f=performance.now(),y=Zl(e,{maxSelection:this.rendererSelectionCap(),confirmSelection:this.opts.confirmSelection,portraitFitCrop:!1,gaPickerMode:!0,currency:m,...this.opts.loadingReveal?{loadingReveal:this.opts.loadingReveal}:{},onSeatsRevealed:()=>{o.seatsComplete=n(i),this.opts.onSeatsRevealed?.()},onSelect:L=>{this.handleRendererSelect(L)},onDeselect:L=>{this.handleRendererDeselect(L)},onSelectionLimit:this.opts.onSelectionLimit,onHover:(L,x)=>{this.opts.onHover?.(L),this.opts.onSeatHover&&this.opts.onSeatHover(L?this.describeSeat(L,x):null)},onFocusSeat:this.opts.onFocusSeat,onViewChange:this.opts.onViewChange,onGAClick:this.opts.onGAClick,onSectionTap:(L,x)=>this.handleSectionTap(L,x),onBackdropTap:()=>this.overview(),hostCardOpen:()=>this.opts.hostCardOpen?.()??!1,onFocusedSectionChange:L=>this.opts.onSectionFocus?.(L==null||this.isSectionClosed(L)?null:this.sectionSummary(L)),onDeckTap:L=>this.handleDeckTap(L),onFps:this.opts.onFps});if(o.createRenderer=n(f),this.closed)return y.destroy(),null;this.renderer=y,this.viewportInsets&&y.setViewportInsets?.(this.viewportInsets);let u=null,g="free",S=[],b=await a;if(b.ok){let L=b.objects;this.hidden=new Set(L.hidden??[]),S=(L.closed??[]).filter(x=>typeof x=="string"),u=L.seats,g=L.default??"free"}if(o.loadStatuses=b.elapsed,this.closed)return y.destroy(),this.renderer=null,null;let v=performance.now();y.setChart(this.visibleDoc()),gc(y,d.doc,e.clientWidth),this.opts.colorblindSafe&&y.setColorblindSafe?.(!0),o.buildScene=n(v),this.closedSections=new Set(S);let k=performance.now();S.length&&y.setClosedSections?.(S),this.seatsBuilt=!0;let w=this.pendingSnapshot;this.pendingSnapshot=null;let C=Bc(w,u?{seats:u,default:g}:null);C&&this.applySeatsMap(C.seats,C.default,C.source),this.rebuildSelectableSeatIds(),this.opts.selectedObjects?.length?this.select(this.opts.selectedObjects):this.emitSelectionValidity(),this.pushGAState(),o.applyInitialState=n(k);let P=performance.now();y.forceDraw(),o.firstPaint=n(P);let T=performance.now();return b.ok&&this.snapshots.markSettled(),this.attachVisibility(),this.connect(),o.startRealtime=n(T),o.controllerTotal=n(i),{doc:d.doc,salesClosed:!!d.event.salesClosed,eventName:d.event.name,venue:d.event.venue,startsAt:d.event.startsAt,timezone:d.event.timezone??null,currency:m,mode:d.event.mode??"live",locale:d.event.locale??null,posterUrl:d.event.posterUrl??null,chartDelivery:d.chartDelivery,performanceProfile:o}}getSelection(){if(!this.renderer)return[];let e=[],i=new Set;for(let o of this.renderer.getSelection()){let n=this.groupedTableBySeatId.get(o.id);n?i.has(n.label)||(i.add(n.label),e.push(this.toTableSeat(n))):e.push(this.toSeat(o))}return e}seatDetails(e){let i=this.seatById.get(e);return i?this.describeSeat(i):null}clearSelection(){this.renderer?.clearSelection(),this.resetUnheldTableQuantities(),this.emitSelectionChange()}deselect(e){let i=new Set;for(let o of e){let n=this.groupedTableBySeatId.get(o)??this.groupedTablesByLabel.get(o);if(n)n.chairs.forEach(r=>i.add(r.id)),this.hold_?.labels.includes(n.label)||(this.tableQuantities.set(n.label,n.mode==="whole"?n.capacity:n.minOccupancy),n.mode==="variable"&&this.confirmedVariableTables.delete(n.label));else{let r=this.seatById.has(o)?o:this.labelToId.get(o);r&&i.add(r)}}this.renderer?.deselect([...i]),this.emitSelectionChange()}setMaxSelection(e){this.maxSelection=Math.max(0,Math.floor(e)),this.renderer?.setMaxSelection?.(this.rendererSelectionCap())}select(e){let i=new Set(this.getSelection().map(s=>s.label)),o=new Set,n=[];for(let s of e){let l=this.groupedTableBySeatId.get(s)??this.groupedTablesByLabel.get(s);if(l)this.tableTierResolution(l).kind==="invalid"?n.push(l.label):l.chairs.forEach(c=>{this.isSelectableByPolicy(c.id)&&o.add(c.id)});else{let a=this.seatById.has(s)?s:this.labelToId.get(s);if(!a||!this.isSelectableByPolicy(a))continue;let c=this.seatById.get(a);c&&this.seatTierResolution(c).kind==="invalid"?n.push(c.label):o.add(a)}}if(n.length&&this.emitError(new Ie(Zi(n))),!o.size)return[];if(this.renderer?.select?.([...o]),this.selectionGuestCount()>this.maxSelection)return this.renderer?.deselect([...o]),this.opts.onSelectionLimit?.(this.maxSelection),[];let r=this.getSelection().filter(s=>!i.has(s.label));return r.length&&this.emitSelectionChange(),r}selectCategories(e){let i=new Set(e);return this.select([...this.seatById.values()].filter(o=>i.has(o.categoryKey)).map(o=>o.id))}deselectCategories(e){let i=new Set(e);this.deselect(this.getSelection().filter(o=>i.has(o.categoryKey)).map(o=>o.id))}setSelectableObjects(e){this.selectableObjectRefs=e==null?null:[...new Set(e.filter(o=>typeof o=="string"&&!!o))],this.rebuildSelectableSeatIds();let i=this.renderer?.getSelection().filter(o=>!this.isSelectableByPolicy(o.id)).map(o=>o.id)??[];i.length&&this.deselect(i)}getSelectionValidity(e){if(this.numberOfPlacesToSelect==null&&!this.selectionValidators.length)return null;let i=this.getSelection(),o=e??i.reduce((n,r)=>n+(r.quantity??1),0);return Ec(i,o,this.numberOfPlacesToSelect,this.selectionValidators,()=>this.hasOrphanedSelection())}hasOrphanedSelection(){let e=this.renderer;if(!e)return!1;let i=new Set(e.getSelection().map(o=>o.id));return i.size>0&&qi(this.seatById.values(),o=>e.getStatus(o),i).length>0}rebuildSelectableSeatIds(){if(this.selectableObjectRefs==null){this.selectableSeatIds=null;return}let e=new Set;for(let i of this.selectableObjectRefs){let o=this.groupedTableBySeatId.get(i)??this.groupedTablesByLabel.get(i);if(o){o.chairs.forEach(r=>e.add(r.id));continue}let n=this.seatById.has(i)?i:this.labelToId.get(i);n&&e.add(n)}this.selectableSeatIds=e}isSelectableByPolicy(e){return this.selectableSeatIds==null||this.selectableSeatIds.has(e)}setTableQuantity(e,i){let o=this.groupedTablesByLabel.get(e);if(!o)return!1;let n=o.mode==="whole"?o.capacity:Math.floor(i);if(!Number.isInteger(n)||n<o.minOccupancy||n>o.maxOccupancy)return!1;let r=this.tableQuantities.get(e)??o.minOccupancy;return this.tableQuantities.set(e,n),this.selectionGuestCount()>this.maxSelection?(this.tableQuantities.set(e,r),this.opts.onSelectionLimit?.(this.maxSelection),!1):(o.mode==="variable"&&this.confirmedVariableTables.add(e),this.emitSelectionChange(),!0)}async replaceTableQuantity(e,i,o){let n=this.groupedTablesByLabel.get(e),r=this.hold_;if(!n||n.mode!=="variable"||!r?.labels.includes(e))return null;let s=Math.floor(i);if(!Number.isInteger(s)||s<n.minOccupancy||s>n.maxOccupancy)return null;if((r.items??[]).filter(d=>d.label!==e).reduce((d,h)=>d+(h.quantity??1),0)+s>this.maxSelection)return this.opts.onSelectionLimit?.(this.maxSelection),null;let a=(r.items??[]).map(d=>({label:d.label,tierId:d.tierId,quantity:d.label===e?s:d.quantity}));if(!a.some(d=>d.label===e))return null;let c=await this.api.hold(this.key,a,o,r.holdId);return this.tableQuantities.set(e,s),this.setHold({holdId:c.holdId,labels:a.map(d=>d.label),expiresAt:c.expiresAt,items:c.items}),this.hold_}rendererSelectionCap(){return this.maxSelection+this.groupedSelectionOverhead}selectionGuestCount(){return this.getSelection().reduce((e,i)=>e+(i.quantity??1),0)}handleRendererSelect(e){let i=this.groupedTableBySeatId.get(e.id);if(!this.isSelectableByPolicy(e.id)){this.renderer?.deselect(i?i.chairs.map(n=>n.id):[e.id]),this.emitSelectionChange();return}if((i?this.tableTierResolution(i):this.seatTierResolution(e)).kind==="invalid"){this.renderer?.deselect(i?i.chairs.map(n=>n.id):[e.id]),this.emitError(new Ie(Zi([i?.label??e.label]))),this.emitSelectionChange();return}if(i){if(this.selectionGuestCount()>this.maxSelection){this.renderer?.deselect(i.chairs.map(n=>n.id)),this.opts.onSelectionLimit?.(this.maxSelection),this.emitSelectionChange();return}this.renderer?.select?.(i.chairs.map(n=>n.id)),this.opts.onSelect?.(i.chairs[0]??e),this.opts.onTableSelectionRequest?.(this.toTableSeat(i)),this.emitSelectionChange();return}if(this.selectionGuestCount()>this.maxSelection){this.renderer?.deselect([e.id]),this.opts.onSelectionLimit?.(this.maxSelection),this.emitSelectionChange();return}this.opts.onSelect?.(e),this.emitSelectionChange()}handleRendererDeselect(e){let i=this.groupedTableBySeatId.get(e.id),o=i?.label??e.label;if(this.hold_?.labels.includes(o)){this.opts.onDeselect?.(i?{...e,label:o}:e);return}i?(this.renderer?.deselect(i.chairs.map(n=>n.id)),this.hold_?.labels.includes(i.label)||(this.tableQuantities.set(i.label,i.mode==="whole"?i.capacity:i.minOccupancy),i.mode==="variable"&&this.confirmedVariableTables.delete(i.label)),this.opts.onDeselect?.(i.chairs[0]??e)):this.opts.onDeselect?.(e),this.emitSelectionChange()}resetUnheldTableQuantities(){for(let e of this.groupedTablesByLabel.values())this.hold_?.labels.includes(e.label)||(this.tableQuantities.set(e.label,e.mode==="whole"?e.capacity:e.minOccupancy),e.mode==="variable"&&this.confirmedVariableTables.delete(e.label))}resetTableQuantitiesForLabels(e){for(let i of e){let o=this.groupedTablesByLabel.get(i);o&&(this.tableQuantities.set(i,o.mode==="whole"?o.capacity:o.minOccupancy),o.mode==="variable"&&this.confirmedVariableTables.delete(i))}}tableQuantityRequest(e){if(e?.objectType!=="table")return{};if(e.bookingMode==="variable"&&!this.confirmedVariableTables.has(e.label))throw new Error("picker: confirm a variable table guest quantity before holding");return{quantity:e.quantity}}hold(e,i){return bc(this,e,i)}resumeHold(e){return Sc(this,e)}extendHold(e){return vc(this,e)}categoryAvailability(){return lc({seatById:this.seatById,groupedTableBySeatId:this.groupedTableBySeatId,groupedTablesByLabel:this.groupedTablesByLabel,closedMembers:this.closedMemberIds(),statusOf:e=>this.getStatus(e),gaAreas:this.getGAAreas()})}closedMemberIds(){let e=new Set,i=this.renderer;if(!i||!this.closedSections.size)return e;for(let o of this.closedSections)for(let n of i.sectionMembers?.(o)??[])e.add(n);return e}getGAAreas(){let e=this.visibleDoc();return e?sc(e,this.currency,i=>this.statusOf(i)):[]}setGASelection(e){this.gaSelected=e?new Map(e):null,this.pushGAState()}pushGAState(){this.renderer?.setGAStates?.(ac(this.getGAAreas(),this.gaSelected))}async holdGA(e,i,o={}){let n=this.visibleDoc();if(!n||!Number.isFinite(i)||i<1)return null;let r=pt(n).find(d=>d.id===e);if(!r)return null;let s=Vt(r).filter(d=>!this.hold_?.labels.includes(d)&&this.statusOf(d)==="free").slice(0,Math.floor(i));if(s.length!==Math.floor(i))return null;let l=new Map;for(let d of this.hold_?.items??[])l.set(d.label,{label:d.label,tierId:d.tierId,quantity:d.quantity});if(this.hold_&&!this.hold_?.items?.length)for(let d of this.hold_.seats)l.set(d.label,{label:d.label,...d.tierId?{tierId:d.tierId}:{}});for(let d of this.getSelection())l.set(d.label,{label:d.label,...d.tierId?{tierId:d.tierId}:{},...this.tableQuantityRequest(d)});for(let d of s)l.set(d,{label:d,...o.tierId?{tierId:o.tierId}:{}});let a=[...l.values()],c=await this.api.hold(this.key,a,o.ttlMs,this.hold_?.holdId);return this.setHold({holdId:c.holdId,labels:a.map(d=>d.label),expiresAt:c.expiresAt,items:c.items}),this.hold_}hasPremiumSeats(){for(let e of this.labelToSeat.values())if(e.commercial?.premium)return!0;return!1}getBestAvailableZones(){return pc(this.visibleDoc())}pickPremiumBlock(e,i,o){return fc({doc:this.visibleDoc(),qty:e,categoryKey:i,zoneId:o,groupedObjectIds:new Set(this.groupedTablesByObject.keys()),heldLabels:new Set(this.hold_?.labels??[]),accessFilter:this.accessFilter,tierApplies:n=>this.seatTierResolution(n).kind!=="invalid",statusOfLabel:n=>this.getStatus(this.labelToId.get(n)??"")??"free",isPremium:n=>!!this.labelToSeat.get(n)?.commercial?.premium})}async bestAvailable(e,i,o={}){let n=this.renderer;if(!n)return null;if(o.preferPremium){let r=this.pickPremiumBlock(e,i,o.zoneId);if(r){if(this.hold_&&!await this.release())return null;try{let s=r.map(d=>{let h=this.labelToSeat.get(d),p=h?this.toSeat(h):null;return{label:d,...p?.tierId?{tierId:p.tierId}:{}}}),l=await this.api.hold(this.key,s,o.ttlMs);n.clearSelection();let a=this.idsForLabels(r);a.length&&n.setStatus(a,"held"),this.setHold({holdId:l.holdId,labels:[...r],expiresAt:l.expiresAt,items:l.items});let c=r.map(d=>this.labelToSeat.get(d)).filter(d=>!!d).map(d=>this.toSeat(d));return this.opts.onSelectionChange?.(c),this.hold_}catch(s){let{status:l,reason:a}=ct(s);if(l===409&&a==="event_closed")throw this.opts.onSalesClosed?.(),s}}}if(this.hold_&&!await this.release())return null;try{let r=await this.api.bestAvailable(this.key,e,i,o.zoneId,o.ttlMs);n.clearSelection();let s=this.idsForLabels(r.labels);s.length&&n.setStatus(s,"held"),this.setHold({holdId:r.holdId,labels:[...r.labels],expiresAt:r.expiresAt,items:r.items});let l=r.labels.map(a=>this.labelToSeat.get(a)).filter(a=>!!a).map(a=>this.toSeat(a));return this.opts.onSelectionChange?.(l),this.hold_}catch(r){let{status:s,reason:l}=ct(r);throw s===409&&l==="event_closed"&&this.opts.onSalesClosed?.(),r}}book(e,i,o){return wc(this,e,i,o)}release(){return kc(this)}releaseLabels(e){return Lc(this,e)}releaseConfirmed(e,i){return Cc(e,i)}setStatus(e,i){this.renderer?.setStatus(e,i)}getStatus(e){return this.renderer?.getStatus(e)}notForSaleCategorySeatIds(){let e=this.doc;if(!e)return[];let i=new Set(e.categories.filter(n=>n.notForSale).map(n=>n.key));if(!i.size)return[];let o=[];for(let[n,r]of this.seatById)i.has(r.categoryKey)&&o.push(n);return o}flashSeat(e,i){this.renderer?.flashSeat(e,i)}zoomIn(){this.renderer?.zoomIn()}zoomOut(){let e=this.renderer;if(!e?.zoomOutLevel)return void e?.zoomOut();let i=!!e.getFocusedSection?.();e.zoomOutLevel()==="venue"&&i&&this.overview()}zoomToFit(){this.renderer?.zoomToFit()}refitCurrentView(){this.renderer?.refitCurrentView?this.renderer.refitCurrentView():this.renderer?.zoomToFit()}setViewportInsets(e){this.viewportInsets=e?{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}:null,this.renderer?.setViewportInsets?.(this.viewportInsets)}getViewportInsets(){return this.renderer?.getViewportInsets?.()??this.viewportInsets??{top:0,right:0,bottom:0,left:0}}worldToScreen(e){return this.renderer?.worldToScreen(e)??{x:0,y:0}}setSelectionFocus(e){this.renderer?.setSelectionFocus?.(e)}setAccessibilityFilter(e){jl(this.pickerFocusContext,e)}getAccessibilityFilter(){return this.accessFilter?[...this.accessFilter]:null}get pickerFocusContext(){let e=this;return{renderer:e.renderer,doc:e._doc,get accessFilter(){return e.accessFilter},set accessFilter(i){e.accessFilter=i},get accessStepAt(){return e.accessStepAt},set accessStepAt(i){e.accessStepAt=i},get bandReturnPose(){return e.bandReturnPose},set bandReturnPose(i){e.bandReturnPose=i},get bandReturnSection(){return e.bandReturnSection},set bandReturnSection(i){e.bandReturnSection=i},getActiveFloorId:()=>e.getActiveFloorId(),setFloor:i=>e.setFloor(i),sectionSummary:i=>e.sectionSummary(i),emitSectionFocus:i=>{e.opts.onSectionFocus?.(i)}}}focusAccessibilityFilter(e){return jo(this.pickerFocusContext,e)}accessibilitySpread(e){return Ql(this.pickerFocusContext,e)}focusNextAccessibleSection(e){return ec(this.pickerFocusContext,e)}accessibilityFilterDims(e){return ic(this.pickerFocusContext,e)}setCommercialLimitedFilter(e){this.renderer?.setCommercialLimitedFilter?.(e)}getFloors(){return this.renderer?.getFloors?.()??[]}getActiveFloorId(){return this.renderer?.getActiveFloorId?.()??""}setFloor(e){let i=this.renderer;!i?.setActiveFloor||e===i.getActiveFloorId?.()&&!i.isFloorOverview?.()||(i.setFloorOverview?.(!1),i.setStacked?.(!1),i.setActiveFloor(e),this.resnapshot(),this.emitSelectionChange())}setStacked(e){let i=this.renderer;!i?.setStacked||e===i.isStacked?.()||(i.setStacked(e),this.resnapshot())}isMultiFloor(){return(this._doc?.floors?.length??0)>1}setFloorOverview(e){let i=this.renderer;!i?.setFloorOverview||e===i.isFloorOverview?.()||(i.setFloorOverview(e),this.resnapshot(),this.emitSelectionChange())}isFloorOverview(){return this.renderer?.isFloorOverview?.()??!1}handleDeckTap(e){let i=this.renderer;i&&(i.setViewMode?.("flat"),i.setFloorOverview?.(!1),i.setStacked?.(!1),i.setActiveFloor?.(e),this.resnapshot(),this.emitSelectionChange(),this.opts.onDeckTap?.(e))}setViewMode(e){this.renderer?.setViewMode?.(e)}getViewMode(){return this.renderer?.getViewMode?.()??"flat"}getRung(){return this.renderer?.getRung?.()??"seats"}getFocusedSection(){return this.renderer?.getFocusedSection?.()??null}seatsRevealed(){let e=this.renderer;return e?.seatsRevealed?e.seatsRevealed():this.getRung()==="seats"||!!this.getFocusedSection()}setRung(e){if(e==="zones"){this.overview();return}this.renderer?.setRung?.(e)}setCategoryFilter(e){this.renderer?.setCategoryFilter?.(e)}focusCategoryFilter(e){oc(this.pickerFocusContext,e)}getViewport(){let e=this.renderer;return!e?.getVisibleWorldRect||!e.getWorldBounds?null:{visible:e.getVisibleWorldRect(),bounds:e.getWorldBounds()}}getMinimapSnapshot(){return this.renderer?.getMinimapSnapshot?.()??{sections:[],seats:[]}}panToWorld(e){this.renderer?.panToWorld?.(e)}clearSectionFocus(){this.renderer?.clearSectionFocus?.(),this.opts.onSectionFocus?.(null)}getRenderedQualityEvidence(){return this.renderer?.getRenderedQualityEvidence()??null}focusSection(e,i){this.handleSectionTap(e,i)}focusSeats(e,i){let o=this.renderer;if(!o?.focusSeats?.(e,i))return!1;let n=o.getFocusedSection?.()??null;return this.opts.onSectionFocus?.(n?this.sectionSummary(n):null),!0}getSectionSeatCount(e){return this.renderer?.sectionMembers?.(e)?.length??0}overview(){this.renderer?.clearSectionFocus?.(),this.renderer?.zoomToFit(),this.opts.onSectionFocus?.(null)}handleSectionTap(e,i){if(!this.renderer)return;let o=this.isSectionClosed(e)?null:this.sectionSummary(e);Jl(this.pickerFocusContext,e,o,i),this.opts.onSectionFocus?.(o)}sectionSummary(e){return!this.renderer||!this._doc?null:Fc({id:e,doc:this._doc,sectionMembers:i=>this.renderer?.sectionMembers?.(i)??[],statusOf:i=>this.renderer?.getStatus(i)??"free",seatById:this.seatById,groupedTableBySeatId:this.groupedTableBySeatId,...this.accessFilter?{matchesAccessFilter:i=>xe(i,this.accessFilter)}:{}})}clearConnectFallback(){this.connectFallback&&(clearTimeout(this.connectFallback),this.connectFallback=null)}destroy(){if(this.closed=!0,this.seatsBuilt=!1,this.pendingSnapshot=null,this.clearConnectFallback(),this.detachVisibility?.(),this.detachVisibility=null,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.expiryTimer&&(clearTimeout(this.expiryTimer),this.expiryTimer=null),this.realtime){try{this.realtime.stop()}catch{}this.realtime=null}if(this.ws){try{this.ws.close()}catch{}this.ws=null}this.renderer?.destroy(),this.renderer=null}toSeat(e){let i=this.groupedTableBySeatId.get(e.id);if(i)return this.toTableSeat(i);let o=e.commercial?{commercial:e.commercial}:void 0,n=e.displayLabel?{displayLabel:e.displayLabel}:void 0,r=e.accessibility?.length?{accessibility:e.accessibility}:void 0,s=e.wheelchairSpaceType?{wheelchairSpaceType:e.wheelchairSpaceType}:void 0,l=this.seatContext.get(e.id),a=this.tiersForSeat(e),c=this.seatTierResolution(e);if(c.kind!=="resolved"||!a)return{id:e.id,label:e.label,...n,...l,categoryKey:e.categoryKey,price:this.priceFor(e.categoryKey),currency:this.currency,...o,...r,...s};let d=c.tier;return{id:e.id,label:e.label,...n,...l,categoryKey:e.categoryKey,price:d.price,currency:this.currency,tiers:a,tierId:d.id,...o,...r,...s}}toTableSeat(e){let i=e.chairs[0],o=this.tiersFor(e.categoryKey)?.filter(s=>ei(this._doc,this.tableTierSeat(e),s.id).kind==="resolved"),n=this.tableTierResolution(e),r=n.kind==="resolved"?n.tier:void 0;return{id:i?.id??e.objectId,label:e.label,displayLabel:e.displayLabel??e.label,...e.displayType?{displayType:e.displayType,rowType:e.displayType}:{},objectId:e.objectId,sectionLabel:i?this.seatContext.get(i.id)?.sectionLabel:void 0,rowLabel:e.displayLabel??e.label,categoryKey:e.categoryKey,price:r?.price??this.priceFor(e.categoryKey),currency:this.currency,...o?{tiers:o,tierId:r?.id}:{},objectType:"table",bookingMode:e.mode,quantity:this.tableQuantities.get(e.label)??(e.mode==="whole"?e.capacity:e.minOccupancy),capacity:e.capacity,minOccupancy:e.minOccupancy,maxOccupancy:e.maxOccupancy,physicalSeatIds:e.chairs.map(s=>s.id)}}describeSeat(e,i){let o=this._doc?.categories.find(n=>n.key===e.categoryKey);return{...this.toSeat(e),categoryLabel:o?.label??e.categoryKey,categoryColor:o?.color??"#6e7bff",status:this.renderer?.getStatus(e.id)??"free",mark:this.renderer?.getSeatMark?.(e.id)??null,...i?.interaction?{interaction:i.interaction}:{},...i?.unavailable?{unavailable:!0}:{},...i?.filteredOut?{filteredOut:!0}:{},currency:this.currency,...this.seatContext.get(e.id)}}priceFor(e){return this._doc?.categories.find(i=>i.key===e)?.price??0}tiersFor(e){let i=this._doc?.categories.find(o=>o.key===e)?.tiers;return i&&i.length?i:void 0}tiersForSeat(e){if(!this._doc)return;let i=Yn(this._doc,e);return i.length?i:void 0}seatTierResolution(e){return this._doc?ei(this._doc,e,this.seatTiers.get(e.id)):{kind:"none"}}tableTierSeat(e){return{label:e.label,categoryKey:e.categoryKey,accessibility:e.chairs.flatMap(i=>i.accessibility??[])}}tableTierResolution(e){if(!this._doc)return{kind:"none"};let i=e.chairs[0]?.id??"";return ei(this._doc,this.tableTierSeat(e),this.seatTiers.get(i))}setSeatTier(e,i){let o=this.seatById.get(e);if(!o)return;let n=this.tiersForSeat(o);if(n){if(i==null)this.seatTiers.delete(e);else if(n.some(r=>r.id===i))this.seatTiers.set(e,i);else return;this.emitSelectionChange(),this.hold_&&(this.hold_={...this.hold_,seats:this.seatsForLabels(this.hold_.labels)})}}seatsForLabels(e){let i=[];for(let o of e){let n=this.labelToSeat.get(o);n&&i.push(this.toSeat(n))}return i}emitSelectionChange(){let e=this.getSelection();this.opts.onSelectionChange?.(e),this.emitSelectionValidity(),this.emitOrphanHint()}emitSelectionValidity(){let e=this.getSelectionValidity();e&&(this.opts.onSelectionValidityChange?.(e),e.isValid?this.lastSelectionValidity!==!0&&this.opts.onSelectionValid?.(e.seats):this.lastSelectionValidity!==!1&&this.opts.onSelectionInvalid?.(e),this.lastSelectionValidity=e.isValid)}ticketIssue(e){if(!this._doc)return null;let i=e?this.seatsForLabels(e):this.getSelection();return Un(this._doc,i.map(o=>({label:o.label,...o.tierId?{tierId:o.tierId}:{}})))}emitOrphanHint(){if(!this.opts.onHint)return;let e=this.renderer;if(!e)return;let i=this.ticketIssue();if(i){this.hintShown=!0,this.opts.onHint(i.code==="companion_pair_required"?_("picker.companionPairRequired"):"That ticket choice is not available for the selected seat.");return}let o=this.selectionValidators.some(s=>s.type==="noOrphanSeats"),n=new Set(e.getSelection().map(s=>s.id));(o&&n.size?qi(this.seatById.values(),s=>e.getStatus(s),n):[]).length>0?(this.hintShown=!0,this.opts.onHint(_("picker.orphanHint"))):this.hintShown&&(this.hintShown=!1,this.opts.onHint(null))}setColorblindSafe(e){this.renderer?.setColorblindSafe?.(e)}emitError(e){this.opts.onError?this.opts.onError(e):console.error("[picker]",e)}holdCovers(e){return xc(this,e)}handle409Conflicts(e){Tc(this,e)}setHold(e,i="created"){Pc(this,e,i)}clearHold(){Ic(this)}expireActiveHold(){return Mc(this)}applySeatsMap(e,i="free",o="http"){o==="socket"&&(this.socketVersion+=1);let n=this.renderer;if(!n||!this.seatsBuilt){this.pendingSnapshot=_c(this.pendingSnapshot,{seats:e,default:i,source:o});return}let r=this.seatsMapDiffers(e,i);this.lastSnapshotAt=Date.now(),this.liveStatuses=new Map(Object.entries(e)),this.liveDefault=i;let s=Bi(i);this.allIds.length&&n.setStatus(this.allIds,s),n.setOwnedHold?.(this.idsForLabels(this.hold_?.labels??[]));let l={free:[],held:[],booked:[],not_for_sale:[]};for(let[c,d]of Object.entries(e))l[Bi(d)].push(...this.idsForLabel(c));["free","held","booked","not_for_sale"].forEach(c=>{c!==s&&l[c].length&&n.setStatus(l[c],c)});let a=this.notForSaleCategorySeatIds();a.length&&n.setStatus(a,"not_for_sale"),this.clearBookedHoldIfSettled(),this.opts.onStatusChange?.({changed:r})}snapshotIsFresh(e=5e3){return this.lastSnapshotAt>0&&Date.now()-this.lastSnapshotAt<e}statusOf(e){return this.liveStatuses.get(e)??this.liveDefault}clearBookedHoldIfSettled(){let e=this.hold_;e?.labels.every(i=>this.statusOf(i)==="booked")&&(this.clearHold(),this.resetTableQuantitiesForLabels(e.labels))}resnapshot(e=!1){return this.snapshots.run(async()=>{let i=this.socketVersion,o=await this.api.objects(this.key);this.socketVersion===i&&this.applySeatsMap(o.seats,o.default??"free","http")},e)}resync(e){return e?.reason==="connect"&&this.snapshotIsFresh()?Promise.resolve():this.resnapshot()}applyProjection(e){this.applySeatsMap(e.exceptions,e.default,"socket")}refresh(){return this.resnapshot(!0)}async refreshAvailability(){await this.resnapshot();let e=this.hold_,i=dc({selection:this.getSelection().map(o=>o.label),holdLabels:e?.labels??[],holdActive:!!e,holdExpiresAt:e?.expiresAt??null,statusOf:o=>this.statusOf(o)});if(i.lost.length&&this.deselect(i.lost),i.holdLapsed){this.clearHold(),this.resetTableQuantitiesForLabels(i.lapsedLabels);let o=this.idsForLabels(i.lapsedLabels);o.length&&this.renderer?.deselect(o),this.opts.onHoldExpired?.()}return this.opts.onAvailabilityRefresh?.(i),i}getAccessNeeds(){return cc(this.seatById.values(),e=>this.getStatus(e)??"free")}attachVisibility(){this.detachVisibility||(this.detachVisibility=uc(()=>{this.closed||this.refreshAvailability().then(()=>{this.closed||this.renderer?.forceDraw()})}))}realtimeSink(){return{applyStatuses:e=>this.applyStatusChanges(e),applyProjection:e=>this.applyProjection(e),resync:e=>this.resync(e),onSections:(e,i)=>{let o=this.syncHidden(e),n=this.syncClosed(i);o&&this.resnapshot(),(o||n)&&this.opts.onStatusChange?.({changed:!0})}}}seatsMapDiffers(e,i){if(this.lastSnapshotAt===0||i!==this.liveDefault)return!0;let o=Object.entries(e);if(o.length!==this.liveStatuses.size)return!0;for(let[n,r]of o)if(this.liveStatuses.get(n)!==r)return!0;return!1}applyStatusChanges(e){this.socketVersion+=1;let i=this.renderer;if(!i)return;let o=e.some(n=>this.liveStatuses.get(n.label)!==n.status);for(let n of e){this.liveStatuses.set(n.label,n.status);let r=this.idsForLabel(n.label);if(!r.length)continue;let s=Bi(n.status);this.opts.flashOnLiveChange&&s!=="free"&&r.some(l=>i.getStatus(l)==="free")&&!this.hold_?.labels.includes(n.label)&&r.forEach(l=>i.flashSeat(l,s==="held"?"#f4b740":"#f43f5e")),i.setStatus(r,s)}this.opts.keepLiveWhileHidden&&typeof document<"u"&&document.visibilityState==="hidden"&&i.forceDraw(),this.pushGAState(),this.clearBookedHoldIfSettled(),this.opts.onStatusChange?.({changed:o})}connect(){if(this.closed)return;let e=this.api.socketUrl(this.key);if(!e)return;if(!this.realtime&&this.api.createRealtime){let o=null;try{o=this.api.createRealtime(this.key,this.realtimeSink())}catch{o=null}if(o){this.realtime=o,o.start();return}}if(this.realtime)return;let i;try{let o=this.api.socketProtocols?.(this.key);i=o&&o.length?new WebSocket(e,o):new WebSocket(e)}catch{this.scheduleReconnect();return}this.ws=i,i.onopen=()=>{if(this.attempt=0,!this.snapshotIsFresh()){this.resnapshot();return}this.clearConnectFallback(),this.connectFallback=setTimeout(()=>{this.connectFallback=null,this.resnapshot()},2500)},i.onmessage=o=>{this.clearConnectFallback();let n;try{n=JSON.parse(typeof o.data=="string"?o.data:"")}catch{return}if(!this.renderer||!n||typeof n!="object")return;let s=n;Array.isArray(s.hidden)&&this.syncHidden(s.hidden)&&(this.resnapshot(),this.opts.onStatusChange?.({changed:!0})),Array.isArray(s.closed)&&this.syncClosed(s.closed)&&this.opts.onStatusChange?.({changed:!0}),s.type!=="hidden"&&(s.seats&&typeof s.seats=="object"?this.applySeatsMap(s.seats):Array.isArray(s.changes)&&this.applyStatusChanges(s.changes))},i.onclose=()=>{this.ws===i&&(this.ws=null),this.scheduleReconnect()},i.onerror=()=>{try{i.close()}catch{}}}scheduleReconnect(){if(this.closed||this.reconnectTimer)return;let e=Math.min(this.attempt++,5),i=rc(e,{baseMs:1e3,maxMs:ep,jitter:1});this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},i)}};var tp=5,ip=-1.1,Jo=35;function en(t,e){let i=t-ee,o=Math.atan2(tp-i,e)*180/Math.PI,n=Math.atan2(ip-i,e)*180/Math.PI;return n<-Jo&&(o+=-Jo-n,n=-Jo),{topPitch:o,basePitch:n}}var Z=2048,ge=1024,Dt=hn,F=Math.PI*2,op=ge/180,ht=t=>(t+180)/360*Z,U=t=>(90-t)/180*ge;function Wc(t){let e=2166136261;for(let i=0;i<t.length;i++)e^=t.charCodeAt(i),e=Math.imul(e,16777619);return e>>>0}function Vc(t){let e=t>>>0;return()=>{e|=0,e=e+1831565813|0;let i=Math.imul(e^e>>>15,1|e);return i=i+Math.imul(i^i>>>7,61|i)^i,((i^i>>>14)>>>0)/4294967296}}var Hi=96,nn=360/Hi,np=.6,tn=[17,23,42];function on(t,e,i=1){let o=Math.max(0,Math.min(.58,e)),n=Math.round(t[0]+(tn[0]-t[0])*o),r=Math.round(t[1]+(tn[1]-t[1])*o),s=Math.round(t[2]+(tn[2]-t[2])*o);return`rgba(${n},${r},${s},${i})`}function Dc(t,e,i){return[Math.round(t[0]+(e[0]-t[0])*i),Math.round(t[1]+(e[1]-t[1])*i),Math.round(t[2]+(e[2]-t[2])*i)]}function ne(t,e,i){let o=(1-Math.abs(2*i-1))*e,n=(t%360+360)%360/60,r=o*(1-Math.abs(n%2-1)),s=0,l=0,a=0;n<1?[s,l,a]=[o,r,0]:n<2?[s,l,a]=[r,o,0]:n<3?[s,l,a]=[0,o,r]:n<4?[s,l,a]=[0,r,o]:n<5?[s,l,a]=[r,0,o]:[s,l,a]=[o,0,r];let c=i-o/2;return[Math.round((s+c)*255),Math.round((l+c)*255),Math.round((a+c)*255)]}var Hc=new Map;function Nc(t){if(!t)return null;let e=Hc.get(t);if(e)return e;let i=2166136261;for(let r=0;r<t.length;r++)i^=t.charCodeAt(r),i=Math.imul(i,16777619);let o=(i>>>0)%360,n=ne(o,.3,.42);return Hc.set(t,n),n}function rp(t,e,i,o){let n=new Array(Hi).fill(null),r=0,s=t.sectionId;for(let l of e){if(l.id===t.id)continue;let a=l.sectionId;if(!a||s&&a===s)continue;let c=l.x-t.x,d=l.y-t.y,h=Math.hypot(c,d)*Dt;if(h<1.5||h>95)continue;let p=l.eyeHeightM??ee,m=p-o;Math.abs(m)>r&&(r=Math.abs(m));let f=Math.atan2(m,h)*180/Math.PI,y=Math.atan2(p-ee-o,h)*180/Math.PI,g=((Math.atan2(c,-d)-i)*180/Math.PI+540)%360-180,S=Math.min(Hi-1,Math.max(0,Math.floor((g+180)/nn))),b=f>34&&h<16,v=n[S];v?(f>v.top&&(v.top=f),y<v.base&&(v.base=y),h<v.nearM&&(v.nearM=h,v.tint=Nc(l.categoryKey)),v.overhead=v.overhead||b):n[S]={top:f,base:y,nearM:h,overhead:b,tint:Nc(l.categoryKey)}}return{bins:n,maxDelta:r}}function sp(t,e,i,o){for(let n=0;n<Hi;n++){let r=e[n];if(!r)continue;let s=-180+n*nn,l=i(s),a=i(s+nn);if(!(a>l))continue;let c=Math.min(72,r.top),d=Math.min(r.base,-4),h=o(c),p=o(d);if(p<=h)continue;let m=r.nearM/95,f=r.tint,y=f?Dc([44,54,80],f,.34):[44,54,80],u=f?Dc([24,30,48],f,.28):[24,30,48],g=t.createLinearGradient(0,h,0,p);g.addColorStop(0,on(y,m)),g.addColorStop(.24,on(u,m)),g.addColorStop(1,on([10,13,22],m)),t.fillStyle=g,t.fillRect(l,h,a-l+1,p-h),t.fillStyle=`rgba(150,165,205,${.35*(1-m*.55)})`,t.fillRect(l,h,a-l+1,1.5);let b=Math.min(p,o(0))-h;if(b>8){let k=1-m*.4;for(let w=1;w<6;w++){let C=h+b*w/6;t.fillStyle=`rgba(0,0,0,${.16*k})`,t.fillRect(l,C,a-l+1,1.5),t.fillStyle=`rgba(120,134,170,${.1*k})`,t.fillRect(l,C+1.5,a-l+1,1.2)}}if(r.overhead){let v=o(Math.min(86,c+12)),k=t.createLinearGradient(0,v,0,h);k.addColorStop(0,"rgba(3,4,8,0.9)"),k.addColorStop(1,"rgba(3,4,8,0)"),t.fillStyle=k,t.fillRect(l,v,a-l+1,h-v),t.fillStyle="rgba(120,130,160,0.14)",t.fillRect(l,h-1.5,a-l+1,1.5)}}}function ap(t,e,i){let n=new Array(72).fill(!1),r=new Array(72).fill(1/0),s=new Set,l=0;for(let g of i){l++,g.sectionId&&s.add(g.sectionId);let S=g.x-e.x,b=g.y-e.y,v=Math.hypot(S,b)*Dt;if(v<.5)continue;let k=Math.atan2(S,-b),w=Math.floor((k+Math.PI)/F*72);w<0?w=0:w>=72&&(w=71),n[w]=!0,v<r[w]&&(r[w]=v)}let a=0,c=[];for(let g=0;g<72;g++)n[g]&&(a++,c.push(r[g]));let d=a/72*360;c.sort((g,S)=>g-S);let h=c.length?c[c.length>>1]:0,p=c.length?c[Math.floor(c.length*.15)]??h:0,m=c.length?c[Math.floor(c.length*.85)]??h:0,f=p>.5?m/p:1,y=Wc(`${l}|${[...s].sort().join(",")}|${Math.round(e.x)},${Math.round(e.y)}`),u;return d>=300&&h>11&&f>1.35?u="sport":d>=285?u="arena":u="proscenium",{mode:u,seed:y,voidRadiusM:h,aspect:f}}var lp=5;function cp(t,e,i){switch(i){case 1:t.beginPath(),t.ellipse(0,-e*.14,e*1.16,e*1.16,0,0,F),t.fill();break;case 2:t.beginPath(),t.ellipse(0,-e*1.02,e*.42,e*.42,0,0,F),t.fill(),t.beginPath(),t.ellipse(0,-e*.2,e*.98,e*1.02,0,0,F),t.fill();break;case 3:t.beginPath(),t.ellipse(0,-e*.36,e*1.04,e*.6,0,Math.PI,F),t.fill(),t.beginPath(),t.ellipse(0,-e*.52,e*1.22,e*.24,0,0,F),t.fill();break;case 4:t.beginPath(),t.ellipse(-e*.66,e*.5,e*.5,e*1.35,0,0,F),t.fill(),t.beginPath(),t.ellipse(e*.66,e*.5,e*.5,e*1.35,0,0,F),t.fill(),t.beginPath(),t.ellipse(0,-e*.08,e*1.06,e*1.08,0,0,F),t.fill();break;default:break}}function dp(t,e,i,o,n){let r=o*.44,s=o*n.shoulderK,l=o*.66,a=o*1.68,c=o*5.4,d=`rgba(${n.clothing[0]},${n.clothing[1]},${n.clothing[2]},${n.alpha})`,h=`rgba(${n.tone[0]},${n.tone[1]},${n.tone[2]},${n.alpha})`;t.save(),t.translate(e,i);let p=n.lean*o;t.fillStyle=d,t.beginPath(),t.moveTo(-r,l),t.quadraticCurveTo(-r*1.18,a-p-o*.6,-s,a-p),t.quadraticCurveTo(-s*1.05,a+o*1.2,-s*.94,c),t.lineTo(s*.94,c),t.quadraticCurveTo(s*1.05,a+o*1.2,s,a+p),t.quadraticCurveTo(r*1.18,a+p-o*.6,r,l),t.closePath(),t.fill(),t.fillStyle=h,t.fillRect(-r*.82,o*.5,r*1.64,o*.9),t.save(),t.rotate(n.tilt),t.translate(n.turn*o,0),t.fillStyle=h,o>=18?(t.beginPath(),t.moveTo(-o*.9,-o*.15),t.quadraticCurveTo(-o*.96,-o*1.12,0,-o*1.06),t.quadraticCurveTo(o*.96,-o*1.12,o*.9,-o*.15),t.quadraticCurveTo(o*.86,o*.55,o*.36,o*.98),t.quadraticCurveTo(0,o*1.14,-o*.36,o*.98),t.quadraticCurveTo(-o*.86,o*.55,-o*.9,-o*.15),t.closePath(),t.fill(),o>=22&&(t.beginPath(),t.ellipse(-o*.9,o*.18,o*.13,o*.22,0,0,F),t.ellipse(o*.9,o*.18,o*.13,o*.22,0,0,F),t.fill())):(t.beginPath(),t.ellipse(0,0,o*.9,o*1.06,0,0,F),t.fill()),cp(t,o,n.hair),n.rim>.01&&(t.strokeStyle=`rgba(245,205,150,${(.5*n.rim).toFixed(3)})`,t.lineWidth=Math.max(1,o*.14),t.beginPath(),t.ellipse(0,-o*.06,o*.86,o*1,0,Math.PI*1.12,Math.PI*1.9),t.stroke()),t.restore(),n.rim>.01&&(t.strokeStyle=`rgba(240,200,150,${(.28*n.rim).toFixed(3)})`,t.lineWidth=Math.max(1,o*.12),t.beginPath(),t.moveTo(-s*.8,a-o*.05),t.quadraticCurveTo(-r,a-o*.75,0,a-o*.82),t.quadraticCurveTo(r,a-o*.75,s*.8,a-o*.05),t.stroke()),t.restore()}function hp(t,e,i,o,n,r,s){t.fillStyle=`rgba(${n[0]},${n[1]},${n[2]},${s})`,t.beginPath(),t.moveTo(e-o*1.72,i+o*4),t.quadraticCurveTo(e-o*1.78,i+o*1.55,e-o*.46,i+o*1.02),t.lineTo(e-o*.4,i+o*.62),t.lineTo(e+o*.4,i+o*.62),t.lineTo(e+o*.46,i+o*1.02),t.quadraticCurveTo(e+o*1.78,i+o*1.55,e+o*1.72,i+o*4),t.closePath(),t.fill(),t.fillStyle=`rgba(${r[0]},${r[1]},${r[2]},${s})`,t.beginPath(),t.ellipse(e,i,o*.9,o*1.05,0,0,F),t.fill()}function sn(t,e,i,o,n){let r=o*.1,s=i-o*.9,l=i-o*.74,a=i-o*.46,c=o*.13,d=o*.09,h=`rgba(${n.tone[0]},${n.tone[1]},${n.tone[2]},${n.alpha})`,p=t.createRadialGradient(e,i,1,e,i,o*.24);p.addColorStop(0,"rgba(0,0,0,0.4)"),p.addColorStop(1,"rgba(0,0,0,0)"),t.save(),t.scale(1,.28),t.fillStyle=p,t.beginPath(),t.ellipse(e,i/.28,o*.24,o*.24,0,0,F),t.fill(),t.restore(),t.fillStyle=h,t.beginPath(),t.moveTo(e-d,a),t.lineTo(e-d*.7,i),t.lineTo(e-d*.1,i),t.lineTo(e-d*.1,a+o*.02),t.lineTo(e+d*.1,a+o*.02),t.lineTo(e+d*.1,i),t.lineTo(e+d*.7,i),t.lineTo(e+d,a),t.closePath(),t.fill(),t.beginPath(),t.moveTo(e-c,l),t.quadraticCurveTo(e-c*.9,a-o*.12,e-d,a),t.lineTo(e+d,a),t.quadraticCurveTo(e+c*.9,a-o*.12,e+c,l),t.quadraticCurveTo(e,l-o*.05,e-c,l),t.closePath(),t.fill(),t.lineCap="round",t.lineJoin="round",t.strokeStyle=h,t.lineWidth=o*.055;let m=l+o*.02;n.pose===1?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e-c*1.5,i-o*1.02),t.moveTo(e+c*.8,m),t.lineTo(e+c*1.5,i-o*1.02),t.stroke()):n.pose===2?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e+d*1.4,a-o*.02),t.moveTo(e+c*.8,m),t.lineTo(e-d*.4,a-o*.06),t.stroke(),t.fillStyle=h,t.beginPath(),t.ellipse(e+d*1.5,a-o*.04,o*.07,o*.09,-.5,0,F),t.fill()):n.pose===3?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e-c*.2,s+r*.6),t.moveTo(e+c*.8,m),t.lineTo(e+c*1.1,a),t.stroke(),t.lineWidth=o*.02,t.beginPath(),t.moveTo(e-c*.2,s+r*.9),t.lineTo(e-c*.2,i-o*.02),t.stroke()):(t.beginPath(),t.moveTo(e-c*.85,m),t.lineTo(e-c*.95,a+o*.02),t.moveTo(e+c*.85,m),t.lineTo(e+c*.95,a+o*.02),t.stroke()),t.fillStyle=h,t.fillRect(e-r*.34,s+r*.6,r*.68,r*.9),t.beginPath(),t.ellipse(e,s,r*.86,r*1.05,0,0,F),t.fill(),n.rimStrength>.01&&(t.strokeStyle=`rgba(${n.rim[0]},${n.rim[1]},${n.rim[2]},${(.6*n.rimStrength).toFixed(3)})`,t.lineWidth=Math.max(1,o*.02),t.beginPath(),t.moveTo(e-c,l),t.lineTo(e-r*.6,s+r*.4),t.moveTo(e-r*.7,s),t.ellipse(e,s,r*.84,r*1.02,0,Math.PI*1.05,Math.PI*1.55),t.stroke())}function Ni(t,e,i,o,n,r,s,l,a){t.save(),t.globalCompositeOperation="lighter";let c=t.createLinearGradient(0,i,0,n);c.addColorStop(0,`rgba(${l},${a})`),c.addColorStop(.5,`rgba(${l},${(a*.4).toFixed(3)})`),c.addColorStop(1,`rgba(${l},0)`),t.fillStyle=c,t.beginPath(),t.moveTo(e-r,i),t.lineTo(o-s,n),t.lineTo(o+s,n),t.lineTo(e+r,i),t.closePath(),t.fill(),t.restore()}function an(t,e,i,o,n){let r=t.createRadialGradient(e,i,0,e,i,o*3);r.addColorStop(0,`rgba(${n},0.9)`),r.addColorStop(.4,`rgba(${n},0.35)`),r.addColorStop(1,`rgba(${n},0)`),t.fillStyle=r,t.beginPath(),t.arc(e,i,o*3,0,F),t.fill(),t.fillStyle=`rgba(${n},1)`,t.beginPath(),t.arc(e,i,o,0,F),t.fill()}function aw(t,e,i){let o=document.createElement("canvas");o.width=Z,o.height=ge;let n=o.getContext("2d"),r=e.x-t.x,s=e.y-t.y,l=Math.hypot(r,s),a=Math.max(2,l*Dt),c=t.eyeHeightM??ee,d=ap(t,e,i),h=Vc(d.seed),p=210+h()*150,m=ne(220+(h()-.5)*60,.55,.82),f=`${m[0]},${m[1]},${m[2]}`,y=n.createLinearGradient(0,0,0,ge);y.addColorStop(0,"#080b12"),y.addColorStop(.42,"#12182c"),y.addColorStop(.5,"#1c2440"),y.addColorStop(.56,"#151b2c"),y.addColorStop(.78,"#171e30"),y.addColorStop(1,"#131829"),n.fillStyle=y,n.fillRect(0,0,Z,ge);let u=n.createLinearGradient(0,U(-6),0,ge);u.addColorStop(0,"rgba(30, 37, 56, 0)"),u.addColorStop(.55,"rgba(30, 37, 56, 0.22)"),u.addColorStop(1,"rgba(22, 28, 44, 0.12)"),n.fillStyle=u,n.fillRect(0,U(-6),Z,ge-U(-6));let g=Math.atan2(r,-s),S=rp(t,i,g,c),b=S.maxDelta>=np;b&&sp(n,S.bins,ht,U);let v=Math.max(.3,Math.min(1,1-(a-6)/60)),k=en(c,a),w=Math.min(80,Math.atan2(4,a)*180/Math.PI),C=Math.min(45,k.topPitch),P=k.basePitch;d.mode==="sport"?fp(n,a,c,d,v,p,f,h):d.mode==="arena"?pp(n,a,c,d,v,f,h):up(n,w,C,P,v,p,f,h);let T=d.mode==="sport"?34:24+Math.floor(h()*8);n.fillStyle=`rgba(${f},0.8)`;for(let x=0;x<T;x++){let I=(x+.5)/T*Z,A=U(d.mode==="sport"?58:54+x*7%3*6);n.beginPath(),n.arc(I,A,d.mode==="sport"?2.6:3.2,0,F),n.fill()}mp(n,t,i,e,g,c,r,s,b,d);let L=n.createLinearGradient(0,0,0,ge);return L.addColorStop(0,"rgba(0,0,0,0.85)"),L.addColorStop(.12,"rgba(0,0,0,0)"),L.addColorStop(.9,"rgba(0,0,0,0)"),L.addColorStop(1,"rgba(0,0,0,0.55)"),n.fillStyle=L,n.fillRect(0,0,Z,ge),{url:o.toDataURL("image/jpeg",.82),distanceM:Math.round(a)}}function up(t,e,i,o,n,r,s,l){let a=ht(-e),c=ht(e),d=U(i),h=U(o),p=c-a,m=h-d,f=U(Math.min(50,i+10)),y=p*(1.1+(1-n)*.5),u=t.createRadialGradient(Z/2,(d+h)/2,8,Z/2,(d+h)/2,y);u.addColorStop(0,"rgba(255, 214, 150, 0.34)"),u.addColorStop(.28,"rgba(150, 150, 230, 0.3)"),u.addColorStop(.6,"rgba(99, 102, 241, 0.12)"),u.addColorStop(1,"rgba(99, 102, 241, 0)"),t.fillStyle=u,t.fillRect(a-p*.6,d-m*1.2,p*2.2,m*3.4);let g=ne(r,.62,.55),S=ne(r+40,.7,.5),b=ne(r+70,.78,.52);t.save(),t.beginPath(),t.rect(a,d,p,m),t.clip();let v=t.createLinearGradient(0,d,0,h);v.addColorStop(0,`rgb(${g[0]},${g[1]},${g[2]})`),v.addColorStop(.5,`rgb(${S[0]},${S[1]},${S[2]})`),v.addColorStop(1,`rgb(${b[0]},${b[1]},${b[2]})`),t.globalAlpha=.8,t.fillStyle=v,t.fillRect(a,d,p,m),t.globalAlpha=1;let k=t.createRadialGradient(Z/2,(d+h)/2,p*.12,Z/2,(d+h)/2,p*.62);k.addColorStop(0,"rgba(6,8,14,0)"),k.addColorStop(.7,"rgba(6,8,14,0.15)"),k.addColorStop(1,"rgba(5,6,11,0.92)"),t.fillStyle=k,t.fillRect(a,d,p,m),t.restore();let w=3+Math.floor(l()*3),C=m*.46,P=h-m*.08;for(let M=0;M<w;M++){let Y=(M+1)/(w+1),G=a+p*(.22+Y*.56+(l()-.5)*.06);sn(t,G,P,C*(.9+l()*.24),{tone:[8,10,16],alpha:.9,pose:Math.floor(l()*4),rim:ne(r+20,.5,.7),rimStrength:.7})}t.fillStyle="#05070d",t.fillRect(a-p*.5,f,p*.5,h-f),t.fillRect(c,f,p*.5,h-f);let T=p*.055+3,L=T*1.35;t.fillStyle="#03050a",t.beginPath(),t.moveTo(a,h),t.lineTo(a-T,h),t.lineTo(a-L,f),t.lineTo(a+p*.012,f),t.closePath(),t.fill(),t.beginPath(),t.moveTo(c,h),t.lineTo(c+T,h),t.lineTo(c+L,f),t.lineTo(c-p*.012,f),t.closePath(),t.fill(),t.fillRect(a-L,f,p+L*2,(h-f)*.12);let x=m*.14,I=f+(h-f)*.12;t.fillStyle="rgba(4,6,12,0.96)";let A=7;t.beginPath(),t.moveTo(a-L,I);for(let M=0;M<=A;M++){let Y=a-L+(p+L*2)*M/A;t.quadraticCurveTo(Y-(p+L*2)/A/2,I+x,Y,I)}t.lineTo(c+L,I),t.lineTo(c+L,f),t.lineTo(a-L,f),t.closePath(),t.fill(),t.fillStyle=`rgba(${s},0.12)`,t.fillRect(a-1.5,I,1.5,h-I),t.fillRect(c,I,1.5,h-I),t.fillStyle="#0b0f18",t.fillRect(a-T,h-m*.05,p+T*2,m*.05+3);let R=t.createLinearGradient(0,h-m*.05,0,h+m*.12);R.addColorStop(0,`rgba(255,206,140,${(.5*n).toFixed(3)})`),R.addColorStop(1,"rgba(255,206,140,0)"),t.fillStyle=R,t.fillRect(a-T,h-m*.05,p+T*2,m*.2);let E=3+Math.floor(l()*2);for(let M=0;M<E;M++){let Y=(M+1)/(E+1),G=a+p*(Y+(l()-.5)*.08),$=U(Math.min(62,i+26)),re=(l()-.5)*p*.16;Ni(t,G,$,G+re,h,4,p*.09,s,.16*(.7+n*.5)),an(t,G,$,2.4,s)}}function pp(t,e,i,o,n,r,s){let l=Math.min(e*.6,Math.max(3,o.voidRadiusM)),a=Math.min(55,Math.atan2(l,e)*180/Math.PI),c=Z/2,d=1.2,h=Math.max(e*.45,e-l),p=e+l,m=Math.atan2(d-i,h)*180/Math.PI,f=Math.atan2(d-i,p)*180/Math.PI,y=Math.atan2(-i,h)*180/Math.PI,u=U(m),g=U(f),S=U(y),b=ht(a)-c,v=Math.max(6,(u-g)/2),k=(u+g)/2,w=t.createRadialGradient(c,S,4,c,S,b*2.6);w.addColorStop(0,`rgba(255,206,150,${(.2*n).toFixed(3)})`),w.addColorStop(.5,"rgba(150,140,190,0.08)"),w.addColorStop(1,"rgba(40,44,60,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=w,t.fillRect(c-b*2.6,g-v,b*5.2,S-g+v+40),t.restore(),t.fillStyle="#0c1019",t.beginPath(),t.moveTo(c-b,k),t.ellipse(c,k,b,v,0,Math.PI,0,!1),t.lineTo(c+b,S),t.ellipse(c,S,b,v,0,0,Math.PI,!1),t.closePath(),t.fill();let C=t.createLinearGradient(0,k,0,S);C.addColorStop(0,`rgba(${r},0.14)`),C.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=C,t.fillRect(c-b,k,b*2,S-k);let P=[[{u:-.24,v:.4,lead:!0,pose:3},{u:.34,v:-.04,pose:2},{u:-.52,v:-.38,pose:0}],[{u:.2,v:.34,lead:!0,pose:3},{u:-.3,v:-.08,pose:2}],[{u:-.1,v:.28,lead:!0,pose:1},{u:.44,v:-.2,pose:2},{u:-.46,v:-.14,pose:2},{u:.08,v:-.46,pose:0}]],T=P[Math.floor(s()*P.length)],L=s()<.5?-1:1,x=H=>c+H.u*L*b*.84,I=H=>k+H.v*v*.8,A=T.find(H=>H.lead)??T[0],R=x(A),E=t.createLinearGradient(0,k-v,0,k+v);E.addColorStop(0,"#3d4a72"),E.addColorStop(1,"#232b47"),t.fillStyle=E,t.beginPath(),t.ellipse(c,k,b,v,0,0,F),t.fill();let M=t.createRadialGradient(R,k,2,R,k,b);M.addColorStop(0,`rgba(255,214,160,${(.5*n).toFixed(3)})`),M.addColorStop(1,"rgba(255,214,160,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=M,t.beginPath(),t.ellipse(c,k,b,v,0,0,F),t.fill(),t.restore(),t.strokeStyle=`rgba(${r},0.7)`,t.lineWidth=2,t.beginPath(),t.ellipse(c,k,b,v,0,0,F),t.stroke();let Y=Math.max(24,(S-g)*1.3),G=T.length>=3?3:2;for(let H=0;H<G;H++){let ye=(-.62+H*.52+(s()-.5)*.12)*-L,Oe=c+ye*b*.7,ut=k-v*(.45+s()*.18),$e=b*(.07+s()*.04),Xi=Y*(.26+s()*.12);t.fillStyle="#0a0e18",t.fillRect(Oe-$e/2,ut-Xi,$e,Xi),t.fillStyle=`rgba(${r},0.3)`,t.fillRect(Oe-$e/2,ut-Xi,$e,1.5)}if(T.length>=3){let H=c-A.u*L*b*.4;t.fillStyle="#0b0f1a",t.beginPath(),t.ellipse(H,k-v*.34,b*.08,v*.1,0,0,F),t.fill(),t.strokeStyle=`rgba(${r},0.35)`,t.lineWidth=1,t.stroke()}for(let H of[...T].sort((ye,Oe)=>ye.v-Oe.v)){let ye=.82+(H.v+1)*.14;sn(t,x(H),I(H),Y*ye*(H.lead?1.06:.92),{tone:[18,21,34],alpha:.95,pose:H.pose,rim:ne(40,.72,.8),rimStrength:H.lead?1.4:.9})}let $=U(Math.min(60,f+34)),re=v*1.1+6;t.strokeStyle="rgba(60,68,92,0.85)",t.lineWidth=3,t.beginPath(),t.ellipse(c,$,b*1.15,re,0,0,F),t.stroke();let O=4+Math.floor(s()*3);for(let H=0;H<O;H++){let ye=H/O*F,Oe=c+Math.cos(ye)*b*1.15,ut=$+Math.sin(ye)*re;if(Math.sin(ye)>-.2){let $e=c+(s()-.5)*b*.8;Ni(t,Oe,ut,$e,k,3,b*.32,r,.2*(.7+n*.4))}an(t,Oe,ut,3,r)}let W=U(Math.min(52,f+24)),V=Math.max(60,b*.4),j=Math.max(24,V*.34);t.strokeStyle="rgba(70,78,102,0.6)",t.lineWidth=1.5,t.beginPath(),t.moveTo(c-V*.3,W-j/2),t.lineTo(c-V*.16,W-j*2.2),t.moveTo(c+V*.3,W-j/2),t.lineTo(c+V*.16,W-j*2.2),t.stroke(),t.fillStyle="#0d1220",t.fillRect(c-V/2,W-j/2,V,j);let Wi=t.createLinearGradient(0,W-j*.3,0,W+j*.42);Wi.addColorStop(0,`rgba(${r},0.5)`),Wi.addColorStop(1,"rgba(255,214,160,0.32)"),t.fillStyle=Wi,t.fillRect(c-V*.42,W-j*.3,V*.84,j*.72),t.fillStyle="rgba(255,214,160,0.55)",t.fillRect(c-V/2,W+j/2-2,V,2);let Vi=t.createRadialGradient(c,W,4,c,W,V*1.1);Vi.addColorStop(0,`rgba(${r},0.2)`),Vi.addColorStop(1,"rgba(0,0,0,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=Vi,t.fillRect(c-V*1.1,W-V*.8,V*2.2,V*1.6);let Ki=t.createRadialGradient(c,($+k)/2,6,c,($+k)/2,b*1.5);Ki.addColorStop(0,`rgba(${r},${(.1*(.6+n*.5)).toFixed(3)})`),Ki.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=Ki,t.fillRect(c-b*1.5,$-40,b*3,k-$+80),t.restore();let zc=c+Math.sign(R-c||1)*b*.5;Ni(t,zc,$-re*.4,R,I(A),2.5,b*.16,"255,224,178",.42*(.7+n*.4));let zi=t.createRadialGradient(R,I(A),1,R,I(A),b*.2);zi.addColorStop(0,`rgba(255,228,185,${(.4*n).toFixed(3)})`),zi.addColorStop(1,"rgba(255,228,185,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=zi,t.beginPath(),t.ellipse(R,I(A),b*.2,v*.24,0,0,F),t.fill(),t.restore()}function fp(t,e,i,o,n,r,s,l){let a=Z/2,c=Math.max(10,o.voidRadiusM),d=Math.max(2,e-c),h=e+c,p=Math.min(78,Math.atan2(c*1.15,e)*180/Math.PI),m=Math.atan2(-i,d)*180/Math.PI,f=Math.atan2(-i,h)*180/Math.PI,y=U(m),u=U(f),g=ht(p)-a,S=(y+u)/2,b=Math.max(10,(y-u)/2),v=t.createRadialGradient(a,S,4,a,S,g);v.addColorStop(0,"#e8f0fb"),v.addColorStop(.7,"#b9c9e2"),v.addColorStop(1,"#8fa3c4"),t.save(),t.beginPath(),t.ellipse(a,S,g,b,0,0,F),t.clip(),t.fillStyle=v,t.fillRect(a-g,S-b,g*2,b*2),t.strokeStyle="rgba(90,120,170,0.5)",t.lineWidth=3,t.beginPath(),t.moveTo(a,S-b),t.lineTo(a,S+b),t.moveTo(a-g*.5,S-b),t.lineTo(a-g*.5,S+b),t.moveTo(a+g*.5,S-b),t.lineTo(a+g*.5,S+b),t.stroke(),t.strokeStyle="rgba(180,90,110,0.45)",t.beginPath(),t.ellipse(a,S,b*.9,b*.5,0,0,F),t.stroke(),t.restore(),t.strokeStyle="rgba(210,225,245,0.6)",t.lineWidth=2.5,t.beginPath(),t.ellipse(a,S,g,b,0,0,F),t.stroke(),t.fillStyle="rgba(20,26,40,0.8)";for(let x=0;x<5;x++){let I=a+(l()-.5)*g*1.4,A=S+(l()-.5)*b*1.1,R=Math.max(2,b*.06);t.beginPath(),t.ellipse(I,A,R*.6,R,0,0,F),t.fill()}let k=t.createRadialGradient(a,S,4,a,S,g*1.4);k.addColorStop(0,"rgba(200,220,255,0.12)"),k.addColorStop(1,"rgba(200,220,255,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=k,t.fillRect(a-g*1.4,u-b,g*2.8,y-u+b*2),t.restore();let w=U(Math.min(66,f+60)),C=Math.max(80,g*.7),P=C*.5,T=t.createRadialGradient(a,w,4,a,w,C*1.6);T.addColorStop(0,`rgba(${s},0.3)`),T.addColorStop(1,`rgba(${s},0)`),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=T,t.fillRect(a-C*1.6,w-C*1.2,C*3.2,C*2.4),t.restore(),t.fillStyle="#080b12",t.beginPath(),t.moveTo(a-C/2,w-P/2),t.lineTo(a+C/2,w-P/2),t.lineTo(a+C*.6,w),t.lineTo(a+C/2,w+P/2),t.lineTo(a-C/2,w+P/2),t.lineTo(a-C*.6,w),t.closePath(),t.fill();let L=r;for(let x=0;x<3;x++){let I=ne(L+x*30,.5,.5);t.fillStyle=`rgba(${I[0]},${I[1]},${I[2]},0.75)`;let A=C*.26;t.fillRect(a-C*.42+x*(A+C*.06),w-P*.32,A,P*.64)}t.fillStyle=`rgba(${s},0.9)`;for(let x=0;x<8;x++){let I=a-C*.6+C*1.2*x/7;t.beginPath(),t.arc(I,w+P*.62,2.4,0,F),t.fill()}}function mp(t,e,i,o,n,r,s,l,a,c){let d=e.sectionId,h=!1,p=[];for(let y of i){if(y.id===e.id)continue;let u=y.x-e.x,g=y.y-e.y,S=Math.hypot(u,g)*Dt;if(d&&y.sectionId===d&&S<3&&u*s+g*l>0&&(h=!0),S<.3||S>32)continue;let v=((Math.atan2(u,-g)-n)*180/Math.PI+540)%360-180,k=a?(y.eyeHeightM??ee)-r:0,w=Math.atan2(k-.28,S)*180/Math.PI;if(w>10&&S>5)continue;let C=0;for(let L=0;L<y.id.length;L++)C=C*31+y.id.charCodeAt(L)&65535;let P=.9+(C&15)/40,T=Math.min(78,Math.atan2(.16,S)*180/Math.PI*op*P);T<1.2||p.push({hx:ht(v),hy:U(w),r:T,d:S,hash:C})}p.sort((y,u)=>u.d-y.d);let m=[];{let y=[...p].sort((S,b)=>S.hy-b.hy),u=[],g=()=>{if(!u.length)return;let S=u.reduce((k,w)=>k+w.d,0)/u.length,b=u.reduce((k,w)=>k+w.hy,0)/u.length,v=u.reduce((k,w)=>k+w.r,0)/u.length;m.push({figs:u.sort((k,w)=>w.d-k.d),d:S,hy:b,r:v}),u=[]};for(let S of y){let b=u[u.length-1];b&&Math.abs(S.hy-b.hy)>Math.max(5,(b.r+S.r)/2*1.7)&&g(),u.push(S)}g()}m.sort((y,u)=>u.d-y.d);let f=[[22,26,40],[28,27,42],[24,31,46],[31,30,47],[20,24,36]];for(let y of m){if(y.figs.length>=3&&y.r>=1.6&&y.r<26){let u=[],g=[...y.figs].sort((v,k)=>v.hx-k.hx),S=[];for(let v of g){let k=S[S.length-1];k&&v.hx-k.hx>Math.max(14,v.r*7)&&(S.length>=3&&u.push(S),S=[]),S.push(v)}S.length>=3&&u.push(S);let b=Math.min(.42,.5*(1-y.d/42));if(b>.05){t.fillStyle=`rgba(15, 19, 31, ${b.toFixed(3)})`;for(let v of u){let k=v[0].hx-y.r*1.6,w=v[v.length-1].hx+y.r*1.6;t.beginPath(),t.roundRect(k,y.hy+y.r*.8,w-k,y.r*2.4,y.r*.8),t.fill()}}}for(let u of y.figs){let g=u.d<12?.95:u.d<17?Math.max(.66,.95-(u.d-12)/18):Math.max(.3,.68-(u.d-17)/34),S=Math.round((1-Math.min(1,u.d/16))*10),b=[14+(u.hash>>4&6)+S,17+(u.hash>>4&6)+S,25+(u.hash>>4&6)+S],v=f[u.hash%f.length],k=[v[0]+S,v[1]+S,v[2]+S];if(u.r>=13){let w=u.d<9?.16*(1-u.d/9)+(c.mode==="proscenium"?.06:0):0;dp(t,u.hx,u.hy,u.r,{tone:b,clothing:k,alpha:g,tilt:((u.hash>>2&7)-3.5)*.018,shoulderK:1.72+(u.hash>>5&7)/22,hair:u.hash%lp,rim:w,turn:((u.hash>>8&7)-3.5)*.034,lean:((u.hash>>10&3)-1.5)*.09})}else u.r>=5.5?hp(t,u.hx,u.hy,u.r,k,b,g):(t.fillStyle=`rgba(${b[0]},${b[1]},${b[2]},${g.toFixed(3)})`,t.beginPath(),t.arc(u.hx,u.hy,u.r,0,F),t.fill(),t.beginPath(),t.ellipse(u.hx,u.hy+u.r*1.4,u.r*1.85,u.r*.95,0,Math.PI,0,!0),t.fill())}}if(h){let y=U(-34);t.fillStyle="rgba(6, 8, 14, 0.92)",t.fillRect(0,y,Z,ge-y),t.fillStyle="rgba(24, 30, 46, 0.9)";let u=16;for(let g=0;g<u;g++){let S=(g+.5)/u*Z;t.beginPath(),t.ellipse(S,y+6,Z/u*.42,22,0,Math.PI,0,!0),t.fill()}}}var ae=480,dt=270,rn=50,Ue=30,Gc=t=>(t+rn)/(2*rn)*ae,Ot=t=>(Ue-t)/(2*Ue)*dt;function lw(t,e,i){let o=document.createElement("canvas");o.width=ae,o.height=dt;let n=o.getContext("2d"),r=e.x-t.x,s=e.y-t.y,l=Math.max(2,Math.hypot(r,s)*Dt),a=Vc(Wc(`${t.id}|${Math.round(e.x)},${Math.round(e.y)}`)),c=210+a()*150,d=ne(220+(a()-.5)*60,.55,.82),h=`${d[0]},${d[1]},${d[2]}`,p=n.createLinearGradient(0,0,0,dt);p.addColorStop(0,"#080b12"),p.addColorStop(.44,"#151c32"),p.addColorStop(.5,"#1d2644"),p.addColorStop(.58,"#161c2e"),p.addColorStop(1,"#131829"),n.fillStyle=p,n.fillRect(0,0,ae,dt);let m=t.eyeHeightM??ee,f=en(m,l),y=Math.min(rn-2,Math.atan2(4,l)*180/Math.PI),u=Math.min(Ue-2,f.topPitch),g=Math.max(-Ue+2,f.basePitch),S=Gc(-y),b=Gc(y),v=Ot(u),k=Ot(g),w=b-S,C=k-v,P=Math.max(.35,Math.min(1,1-(l-6)/60)),T=Ot(Math.min(Ue-1,u+8)),L=n.createRadialGradient(ae/2,(v+k)/2,4,ae/2,(v+k)/2,w*1.15);L.addColorStop(0,"rgba(255,214,150,0.34)"),L.addColorStop(.28,"rgba(150,150,230,0.3)"),L.addColorStop(.6,"rgba(99,102,241,0.12)"),L.addColorStop(1,"rgba(99,102,241,0)"),n.fillStyle=L,n.fillRect(S-w*.6,v-C*1.2,w*2.2,C*3.4);let x=ne(c,.62,.55),I=ne(c+40,.7,.5),A=ne(c+70,.78,.52);n.save(),n.beginPath(),n.rect(S,v,w,C),n.clip();let R=n.createLinearGradient(0,v,0,k);R.addColorStop(0,`rgb(${x[0]},${x[1]},${x[2]})`),R.addColorStop(.5,`rgb(${I[0]},${I[1]},${I[2]})`),R.addColorStop(1,`rgb(${A[0]},${A[1]},${A[2]})`),n.globalAlpha=.8,n.fillStyle=R,n.fillRect(S,v,w,C),n.globalAlpha=1;let E=n.createRadialGradient(ae/2,(v+k)/2,w*.12,ae/2,(v+k)/2,w*.6);E.addColorStop(0,"rgba(6,8,14,0)"),E.addColorStop(.7,"rgba(6,8,14,0.15)"),E.addColorStop(1,"rgba(5,6,11,0.9)"),n.fillStyle=E,n.fillRect(S,v,w,C),n.restore();let M=3,Y=k-C*.08;for(let O=0;O<M;O++){let W=(O+1)/(M+1);sn(n,S+w*(.24+W*.52),Y,C*.46*(.9+a()*.24),{tone:[8,10,16],alpha:.9,pose:Math.floor(a()*4),rim:ne(c+20,.5,.7),rimStrength:.7})}n.fillStyle="#05070d",n.fillRect(S-w*.5,T,w*.5,k-T),n.fillRect(b,T,w*.5,k-T);let G=w*.05+2,$=G*1.35;n.fillStyle="#03050a",n.beginPath(),n.moveTo(S,k),n.lineTo(S-G,k),n.lineTo(S-$,T),n.lineTo(S+w*.012,T),n.closePath(),n.fill(),n.beginPath(),n.moveTo(b,k),n.lineTo(b+G,k),n.lineTo(b+$,T),n.lineTo(b-w*.012,T),n.closePath(),n.fill(),n.fillRect(S-$,T,w+$*2,(k-T)*.13),n.fillStyle=`rgba(${h},0.12)`,n.fillRect(S-1.2,T,1.2,k-T),n.fillRect(b,T,1.2,k-T),n.fillStyle="#0b0f18",n.fillRect(S-G,k-C*.05,w+G*2,C*.05+2);let re=n.createLinearGradient(0,k-C*.05,0,k+C*.14);re.addColorStop(0,`rgba(255,206,140,${(.5*P).toFixed(3)})`),re.addColorStop(1,"rgba(255,206,140,0)"),n.fillStyle=re,n.fillRect(S-G,k-C*.05,w+G*2,C*.22);for(let O=0;O<3;O++){let W=(O+1)/4,V=S+w*W,j=Ot(Math.min(Ue-1,u+20));Ni(n,V,j,V+(a()-.5)*w*.14,k,3,w*.09,h,.17*P),an(n,V,j,1.8,h)}n.fillStyle=`rgba(${h},0.75)`;for(let O=0;O<8;O++)n.beginPath(),n.arc((O+.5)/8*ae,Ot(Ue-4-O%2*3),2.2,0,F),n.fill();n.fillStyle="rgba(10,13,20,0.9)",n.fillRect(0,dt-26,ae,26),n.fillStyle="rgba(30,37,54,0.9)";for(let O=0;O<9;O++){let W=O*(ae/9)+ae/18;n.beginPath(),n.ellipse(W,dt-22,ae/9*.4,15,0,Math.PI,0,!0),n.fill()}return{url:o.toDataURL("image/jpeg",.8),distanceM:Math.round(l)}}var Kc=new Set(["en"]),Gi=new Map;async function gp(t){if(typeof __SEATLAYER_CDN__<"u"&&__SEATLAYER_CDN__)return(await import(Zn(`i18n/${t}.mjs`))).default??null;let{LOADERS:e}=await import("./localeLoaders-42CYOXB5.js"),i=e[t];return i?await i():null}async function uw(t,e){let i=Qr(t,e);if(i==="en"||Kc.has(i))return Je(i),i;if(!jr.includes(i))return Je("en"),"en";try{let o=Gi.get(i);o||(o=gp(i),Gi.set(i,o));let n=await o;return Gi.delete(i),n?(Je(i,n),Kc.add(i),i):(Je("en"),"en")}catch{return Gi.delete(i),Je("en"),"en"}}export{vp as ACCESSIBILITY_RING_COLOR,ln as ACCESSIBILITY_TYPES,nf as AUTOMATIC_ROUND_TABLE_RADIUS_MAX,of as AUTOMATIC_ROUND_TABLE_RADIUS_MIN,bp as CHART_STORAGE_KEY,Pf as CURRENCY_CHOICES,Tf as DEFAULT_CURRENCY,d0 as EMPTY_AVAILABILITY_REFRESH,Ip as EVENT_CONFIGURATION_EXPORT_SCHEMA,Pp as EVENT_CONFIGURATION_SCHEMA,Qp as FLOOR_STACK_GAP_RATIO,tf as FLOOR_STACK_MIN_SURFACE_PX,c0 as HOLD_CLOCK_SKEW_MS,ji as LABEL_FADE_MS,Cp as LABEL_STYLE_MAX_SIZE,Lp as LABEL_STYLE_MIN_SIZE,yf as LEGIBILITY_HYSTERESIS_PX,Bf as LOCALE_NAMES,af as MAX_EVENT_INVENTORY,sf as MAX_GA_CAPACITY,In as MIN_POINTER_TARGET_PX,Oc as PickerController,Ie as PickerSelectionError,mf as RENDERED_QUALITY_REPORT_VERSION,wp as SEAT_COMMERCIAL_MARKS,yp as STAGE_LABEL_STYLE_MAX_SIZE,Sd as SUPPORTED_LOCALES,xp as SURROUNDINGS_SHAPE_ROLES,Zo as SeatmapRenderer,Dp as TABLE_SEAT_OFFSET,Op as TIER_HEIGHT_M,jr as TRANSLATED_LOCALES,vn as UNGROUPED_ID,cc as accessNeedsFor,Sp as accessibilityMeta,Ht as accessibilityRingColor,mn as allObjects,wn as applyHidden,uc as attachVisibilityCatchUp,rf as automaticRoundTableRadius,Fp as canTransitionEventConfiguration,Ap as canonicalEventConfigurationJson,yn as chartBounds,ft as compactRowLabel,Kt as computeSections,Zl as createRenderer,jn as crossesThreshold,yd as currencyExponent,Mf as currencySymbol,Yp as expandBooth,Ze as expandChart,Wp as expandRow,Gp as expandRowSlots,Xp as expandTable,Kp as expandTableSlots,Zp as floorObjects,Jp as floorStackPlacements,Wt as floorsOf,Gf as formatDate,If as formatMinor,kt as formatMoney,bd as fromMinorUnits,pt as gaAreasOf,df as gaInventorySegments,lf as gaUnitLabel,Vt as gaUnitLabels,aw as generateSeatPanorama,lw as generateSeatThumb,Of as getLocale,hf as growJoinedGAInventory,ff as hiddenObjectIds,Uu as holdHasLapsed,u0 as holdRecoveryShape,Ji as hysteresisScale,Sn as initialFloorMode,Ep as inspectEventConfigurationCompatibility,gf as inspectRenderedQualityEvidence,uf as isGaUnitLabel,Hf as isLocaleLoaded,pf as isSectionHidden,Tp as layerOf,bn as layoutFloorStack,uw as loadLocale,Df as localeDirection,ef as mainFloorId,Bp as migrateLegacyEventConfigurations,$p as objectCenter,qp as owningSectionForObject,Rp as parseEventConfigurationExport,Mp as parseEventConfigurationVersion,Up as pointInPolygon,te as pointInPolygonWithHoles,Gt as polygonLabelPoint,dc as reconcileAvailability,h0 as refreshChangedSomething,Qi as renderedPx,_p as resolveEventConfigurationRollback,Qr as resolveLocale,Np as rowInventoryCount,Hp as rowSeatPositions,kp as seatCommercialMeta,Nt as sectionGeometry,Je as setLocale,Zr as setMoneyLocale,Nf as setStringOverrides,hc as shouldWaitForHoldExpiry,gn as stackFloors,_ as t,es as tCount,zp as tableInventoryCount,Vp as tableSeatCountsBySide,jp as translateObject,cf as validGAInventorySegments,bf as zoomTowardPoint};