@seatlayer/core 0.54.0 → 0.56.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 (61) hide show
  1. package/dist/{categoryInventory-B4xo7hE2.d.ts → categoryInventory-BwarniiK.d.ts} +1 -1
  2. package/dist/{categoryInventory-lRtu3VjD.d.cts → categoryInventory-D3qPwfKz.d.cts} +1 -1
  3. package/dist/chunk-6XJN4REG.js +1 -0
  4. package/dist/{chunk-3QLFGEQY.js → chunk-DNGP2HDT.js} +1 -1
  5. package/dist/{chunk-QUKWJQLR.js → chunk-HHM3PB66.js} +1 -1
  6. package/dist/{chunk-EYROIZGQ.js → chunk-PXWKSYCK.js} +1 -1
  7. package/dist/chunk-VI2CLV3Y.js +1 -0
  8. package/dist/core/chart-ops/index.cjs +1 -1
  9. package/dist/core/chart-ops/index.d.cts +4 -4
  10. package/dist/core/chart-ops/index.d.ts +4 -4
  11. package/dist/core/chart-ops/index.js +1 -1
  12. package/dist/core/inventory/index.cjs +1 -1
  13. package/dist/core/inventory/index.d.cts +4 -4
  14. package/dist/core/inventory/index.d.ts +4 -4
  15. package/dist/core/inventory/index.js +1 -1
  16. package/dist/core/layout/index.d.cts +4 -4
  17. package/dist/core/layout/index.d.ts +4 -4
  18. package/dist/core/quality/index.cjs +1 -1
  19. package/dist/core/quality/index.d.cts +3 -3
  20. package/dist/core/quality/index.d.ts +3 -3
  21. package/dist/core/quality/index.js +1 -1
  22. package/dist/core/render-assets/index.cjs +1 -1
  23. package/dist/core/render-assets/index.d.cts +1 -1
  24. package/dist/core/render-assets/index.d.ts +1 -1
  25. package/dist/core/render-assets/index.js +1 -1
  26. package/dist/core/seatConfidence.d.cts +1 -1
  27. package/dist/core/seatConfidence.d.ts +1 -1
  28. package/dist/core/sections/index.d.cts +5 -5
  29. package/dist/core/sections/index.d.ts +5 -5
  30. package/dist/{de-75NWRKC5.js → de-WPX4D3SY.js} +1 -1
  31. package/dist/{es-BM7EJ7PW.js → es-6KAJQVVX.js} +1 -1
  32. package/dist/{fr-HPXQHIB4.js → fr-5DTMRBN5.js} +1 -1
  33. package/dist/index.cjs +1 -1
  34. package/dist/index.d.cts +57 -12
  35. package/dist/index.d.ts +57 -12
  36. package/dist/index.js +1 -1
  37. package/dist/{labeling-w8bl86cb.d.ts → labeling-BmCzW50y.d.ts} +1 -1
  38. package/dist/{labeling-CsPt1mC_.d.cts → labeling-VfJBEOn0.d.cts} +1 -1
  39. package/dist/{layout-B5UYbwnv.d.ts → layout-ClQkmixY.d.ts} +3 -3
  40. package/dist/{layout-YFmuxw_M.d.cts → layout-Dlv5bIf2.d.cts} +3 -3
  41. package/dist/{renderedQuality-DbZM034G.d.ts → renderedQuality-B3jgdgPO.d.ts} +1 -1
  42. package/dist/{renderedQuality-CugJarFp.d.cts → renderedQuality-bDkUOyBL.d.cts} +1 -1
  43. package/dist/{renderer-IBi9YKWR.d.ts → renderer-B_g-W_QB.d.ts} +4 -1
  44. package/dist/{renderer-DhUHFtsI.d.cts → renderer-DySMcKAR.d.cts} +4 -1
  45. package/dist/{sections-mLOZrGrI.d.ts → sections-DIzgtDjF.d.ts} +1 -1
  46. package/dist/{sections-B7cDF0Nq.d.cts → sections-Dna1nZgR.d.cts} +1 -1
  47. package/dist/{segmentedRowModel-CGoH684F.d.cts → segmentedRowModel-BNXEUeHp.d.cts} +1 -1
  48. package/dist/{segmentedRowModel-BPTnJ7Tz.d.ts → segmentedRowModel-COXw4GCh.d.ts} +1 -1
  49. package/dist/{ticketRestrictions-BwAebpSK.d.cts → ticketRestrictions-CzchbX_o.d.cts} +2 -2
  50. package/dist/{ticketRestrictions-ChHJwvTq.d.ts → ticketRestrictions-DaYOCpEw.d.ts} +2 -2
  51. package/dist/{types-COfJorq_.d.cts → types-DTSG6_Hq.d.cts} +5 -4
  52. package/dist/{types-COfJorq_.d.ts → types-DTSG6_Hq.d.ts} +5 -4
  53. package/dist/view3d/crossfade/panorama.d.cts +1 -1
  54. package/dist/view3d/crossfade/panorama.d.ts +1 -1
  55. package/dist/view3d/index.cjs +27 -27
  56. package/dist/view3d/index.d.cts +109 -3
  57. package/dist/view3d/index.d.ts +109 -3
  58. package/dist/view3d/index.js +27 -27
  59. package/package.json +1 -1
  60. package/dist/chunk-6LIPQU4G.js +0 -1
  61. package/dist/chunk-DDE7IOFT.js +0 -1
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var vi=Object.defineProperty;var fs=Object.getOwnPropertyDescriptor;var ms=Object.getOwnPropertyNames;var bs=Object.prototype.hasOwnProperty;var ki=(t,e,i)=>()=>{if(i)throw i[0];try{return t&&(e=t(t=0)),e}catch(n){throw i=[n],n}};var Pt=(t,e)=>{for(var i in e)vi(t,i,{get:e[i],enumerable:!0})},gs=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ms(e))!bs.call(t,r)&&r!==i&&vi(t,r,{get:()=>e[r],enumerable:!(n=fs(e,r))||n.enumerable});return t};var ys=t=>gs(vi({},"__esModule",{value:!0}),t);var ss={};Pt(ss,{es:()=>Ll});var Ll,as=ki(()=>{"use strict";Ll={"common.cancel":"Cancelar","common.close":"Cerrar","common.done":"Listo","common.copied":"\u2713 Copiado","picker.holdExpired":"Tu retenci\xF3n expir\xF3 \u2014 los asientos fueron liberados. Elige de nuevo.","picker.poweredBy":"Con la tecnolog\xEDa de SeatLayer","picker.testMode":"MODO DE PRUEBA","picker.orphanHint":"Esto deja un asiento aislado \u2014 considera desplazarte un asiento.","picker.companionRequiresWheelchair":"Requiere la plaza accesible contigua","picker.companionPairRequired":"Selecciona la plaza accesible contigua con cada entrada de acompa\xF1ante.","map.aria":"Mapa de asientos. Usa las flechas para moverte entre asientos, Intro para seleccionar.","map.seatsLeft":"{count} LIBRES","map.soldOut":"AGOTADO","map.statusHeld":"En espera","map.statusTaken":"Ocupado","map.fromPrice":"DESDE {price}","picker.floor":"Piso","picker.zoomLevel":"Nivel de zoom","picker.rungTip.zones":"Vista general \u2014 grupos de secciones como Grada norte o VIP","picker.rungTip.sections":"Bloques de secci\xF3n \u2014 las secciones agotadas y casi llenas se aten\xFAan para ver la disponibilidad de un vistazo","picker.rungTip.seats":"Asientos individuales \u2014 los bloques se convierten en puntos","picker.rungLabel.zones":"ZONAS","picker.rungLabel.sections":"SECCIONES","picker.rungLabel.seats":"ASIENTOS","picker.sectionSummaryAria":"Resumen de secci\xF3n {label}","picker.closeSectionSummary":"Cerrar resumen de secci\xF3n","picker.seatsLeftInSection.one":"{count} asiento disponible","picker.seatsLeftInSection.other":"{count} asientos disponibles","picker.overview":"Descripci\xF3n general","picker.entrance":"Entrada","picker.tapSeatHint":"Toca cualquier asiento para ver su vista","picker.ticketTierFor":"Categor\xEDa de entrada para {label}","picker.viewFromSeat":"Vista desde el asiento {label}","picker.real360":"REAL 360\xB0","picker.preview":"VISTA PREVIA","picker.sightline":"\u2248 {m} m al escenario","picker.panorama360":"Foto de 360\xB0 del lugar","picker.illustrationCaption":"ilustraci\xF3n \xB7 \u2248 {m} m del escenario","picker.restrictedView":"Visibilidad restringida","picker.obstructedView":"Visibilidad obstruida","picker.premiumSeat":"Asiento premium","picker.hideLimitedView":"Ocultar asientos con visibilidad limitada","picker.bestSeatsPremium":"Mejores asientos","picker.premiumFallbackNote":"No hay un bloque premium de {count}: mostrando los mejores disponibles","picker.loading3d":"Creando el recinto en 3D\u2026","picker.unavailable3d":"No se pudo iniciar la vista 3D. El mapa de asientos sigue disponible.","picker.jumpToSection":"Ir a una secci\xF3n","picker.salesClosedPill":"Las ventas est\xE1n cerradas","picker.salesClosedCopy":"La venta de entradas para este evento ha finalizado.","picker.salesClosedCta":"Venta cerrada","picker.salesClosedToast":"Las ventas de este evento est\xE1n cerradas.","picker.holdReassurance":"Tuyos durante {time} \u2014 a\xFAn no se te cobrar\xE1 nada.","picker.securingSeats":"Asegurando tus asientos\u2026","picker.openingCheckout":"Abriendo el pago seguro\u2026","picker.peekSecured":"\u2713 {count} asegurados \xB7 {total} \u2014 a\xFAn no se te cobrar\xE1 nada","picker.priceHint":"Los colores del plano son tipos de entrada \u2014 toca uno abajo para ver solo esos asientos.","picker.findTogetherInstead":"Buscar asientos juntos en su lugar","picker.keepMyPicks":"Mantener mi selecci\xF3n","picker.accessExpiredBody":"Vuelve a iniciar sesi\xF3n o recarga la p\xE1gina para seguir viendo estos asientos. Lo que ya tengas retenido seguir\xE1 siendo tuyo.","picker.accessExpiredTitle":"Tu sesi\xF3n de acceso ha finalizado","picker.accessInvalidBody":"A\xFAn puedes reservar todo lo que aparezca como disponible. Contacta a quien te envi\xF3 este enlace para acceder al resto.","picker.accessInvalidTitle":"No pudimos verificar tu acceso","picker.accessPausedBody":"El organizador ha pausado esta selecci\xF3n. Int\xE9ntalo de nuevo en unos minutos.","picker.accessPausedTitle":"Estos asientos est\xE1n retenidos en este momento","picker.accessRetry":"Intentar de nuevo","picker.accessRevokedBody":"Pide a quien te envi\xF3 aqu\xED un nuevo enlace para seguir reservando estos asientos.","picker.accessRevokedTitle":"Este enlace de acceso ya no est\xE1 activo","picker.accessiblePhysicalSeat":"Asiento f\xEDsico accesible","picker.addTime":"A\xF1adir tiempo","picker.addingEllipsis":"A\xF1adiendo\u2026","picker.allLevels":"Todos los niveles","picker.allPlacesBookedTogether":"Los {count} lugares se reservan juntos como una mesa exclusiva.","picker.allPrices":"Todos los precios","picker.allSeats":"Todos los asientos","picker.allSetTitle":"Todo listo","picker.anyTicketType":"Cualquier tipo de entrada","picker.anyVenueZone":"Cualquier zona del recinto","picker.areas":"Zonas","picker.available":"Disponible","picker.backToMap":"Volver al mapa","picker.backToVenue":"Volver al recinto","picker.bestSeatsStar":"\u2726 Mejores asientos","picker.booth":"Palco","picker.capacityGuests":"{count} invitados","picker.change":"Cambiar","picker.chartDerivedModel":"Modelo derivado del plano","picker.chartDerivedSeatEye":"3D en vivo \xB7 vista desde el asiento derivada del plano \xB7 no verificada","picker.checkConnection":"Comprueba tu conexi\xF3n e int\xE9ntalo de nuevo.","picker.checkoutCouldNotBeOpened":"No se pudo abrir el pago. Tus asientos siguen retenidos \u2014 int\xE9ntalo de nuevo.","picker.chooseAnotherToCompare":"Elige otro asiento para comparar.","picker.chooseGuestsCopy":"Elige cu\xE1ntos invitados se sentar\xE1n juntos. Esta mesa est\xE1 reservada en exclusiva para tu grupo.","picker.chooseMinMaxGuests":"Elige entre {min} y {max} invitados","picker.clearSavedSeatComparison":"Borrar comparaci\xF3n de asientos guardada","picker.close":"Cerrar","picker.closeSeatStatus":"Cerrar estado del asiento","picker.closestGroupChosenInstantly":"El grupo disponible m\xE1s cercano, elegido al instante.","picker.collapseTicketPanel":"Contraer el panel de entradas","picker.compareCount":"Comparar {count}","picker.compareWithSaved":"Comparar con el guardado","picker.confirmOrCancelSeat":"Confirma o cancela este asiento","picker.confirmSeatLabel":"Confirmar asiento {label}","picker.confirmYourTable":"Confirma tu mesa","picker.confirmedAndOnWay":"confirmados. Una confirmaci\xF3n est\xE1 en camino.","picker.continue":"Continuar","picker.continueToCheckout":"Continuar al pago","picker.couldNotAddMoreTime":"No se pudo a\xF1adir m\xE1s tiempo \u2014 dir\xEDgete al pago ahora.","picker.couldNotFindSeatsTogether":"No pudimos encontrar {count} asientos juntos. Prueba con menos asientos u otro tipo de entrada.","picker.couldNotReleaseTickets":"No se pudieron liberar tus entradas. Tu retenci\xF3n no ha cambiado.","picker.couldNotRemoveLabel":"No se pudo quitar {label}. Tu retenci\xF3n no ha cambiado.","picker.currentOffer":"Oferta actual","picker.currentTicketOffer":"Oferta de entradas actual","picker.dragToLookAround":"Arrastra para mirar alrededor \xB7 despl\xE1zate para hacer zoom","picker.emptyWheelchairSpace":"Espacio vac\xEDo para silla de ruedas","picker.exitFullScreen":"Salir de pantalla completa","picker.fewer":"Menos","picker.fewerGuests":"Menos invitados","picker.fewerSeats":"Menos asientos","picker.filterAndFocusByPrice":"Filtrar y enfocar asientos por precio","picker.filters":"Filtros","picker.findBestSeatsCount.one":"Buscar {count} mejor asiento","picker.findBestSeatsCount.other":"Buscar {count} mejores asientos","picker.findBestSeatsTogether":"Buscar los mejores asientos juntos","picker.findNewSeats":"Buscar nuevos asientos","picker.findingBestSeats":"Buscando los mejores asientos\u2026","picker.findingEllipsis":"Buscando\u2026","picker.fitToScreen":"Ajustar a la pantalla","picker.flat2dMap":"Mapa plano 2D","picker.flexiblePartyTypeWord":"Grupo flexible \xB7 {typeWord}","picker.fullScreen":"Pantalla completa","picker.generalAdmission":"Entrada general","picker.guestCountCouldNotBeSecured":"No se pudo asegurar ese n\xFAmero de invitados. Tu retenci\xF3n de mesa actual no ha cambiado.","picker.guestCountNoLongerAvailable":"Ese n\xFAmero de invitados ya no est\xE1 disponible. Tu retenci\xF3n actual no ha cambiado.","picker.guests":"Invitados","picker.guestsCount":"{count} invitados","picker.guestsCountEdit":"{count} invitados \xB7 Editar","picker.held":"Retenido","picker.heldForYou":"Retenido para ti","picker.heldSeatExplanation":"Otro comprador est\xE1 reteniendo este asiento. Puede volver a estar disponible.","picker.heldTicketsReleased":"Se liberaron las entradas retenidas. Elige tus nuevos asientos.","picker.heldTicketsRestored":"Tus entradas retenidas se han restaurado.","picker.hidePanel":"Ocultar panel","picker.hideTicketPanel":"Ocultar el panel de entradas","picker.holdSeatsAndCheckout":"Retener asientos y pagar","picker.howOfferWorks":"C\xF3mo funciona la oferta \xAB{name}\xBB","picker.interactive3dVenueView":"Vista 3D interactiva del recinto","picker.keepMine":"Mantener los m\xEDos","picker.labelNoLongerAvailable":"{label} ya no est\xE1 disponible.","picker.labelRemoved":"{label} eliminado.","picker.labelRemovedFromHold":"{label} eliminado de tu retenci\xF3n.","picker.labelRestored":"{label} restaurado.","picker.labelsNoLongerAvailable.one":"{labels} ya no est\xE1 disponible. Elige otro asiento.","picker.labelsNoLongerAvailable.other":"{labels} ya no est\xE1n disponibles. Elige otro grupo.","picker.leftCount.one":"quedan {count}","picker.leftCount.other":"quedan {count}","picker.levelNumber":"Nivel {number}","picker.levels":"Niveles","picker.liveAvailability":"Disponibilidad en vivo \u2014 los asientos se actualizan en tiempo real","picker.loadingSeatMap":"Cargando el mapa de asientos\u2026","picker.lookAroundLive3d":"Mirar alrededor en 3D en vivo","picker.manualTicketsRemovedNote":"Tus entradas seleccionadas manualmente solo se eliminar\xE1n una vez que se asegure un nuevo grupo.","picker.map":"Mapa","picker.mapDidNotLoad":"El mapa de asientos no se pudo cargar","picker.maxTicketsForOrder":"Puedes seleccionar hasta {count} entradas para este pedido.","picker.minToMaxGuests":"De {min} a {max} invitados","picker.more":"M\xE1s","picker.moreGuests":"M\xE1s invitados","picker.moreSeats":"M\xE1s asientos","picker.moreSelectedCount":"{count} m\xE1s seleccionados","picker.moreTimeAdded":"Se a\xF1adi\xF3 m\xE1s tiempo \u2014 tus asientos siguen retenidos.","picker.noAccessibilityMetadata":"No hay informaci\xF3n de accesibilidad disponible","picker.noAuthoredRestriction":"Sin restricci\xF3n indicada por el organizador","picker.noSeatsSelected":"Ning\xFAn asiento seleccionado","picker.notChargedYet":"A\xFAn no se te cobrar\xE1 nada.","picker.notForSale":"No est\xE1 a la venta","picker.notForSaleExplanation":"Este asiento no est\xE1 incluido en la venta actual.","picker.numberOfGuests":"N\xFAmero de invitados","picker.offerDetailActive":"Este precio se aplica autom\xE1ticamente a los asientos elegibles. Las entradas en carritos activos reducen temporalmente la cantidad disponible; las retenciones liberadas o vencidas la devuelven. Cuando la oferta termine, se aplicar\xE1 la siguiente oferta coincidente o el precio normal de la entrada.","picker.offerDetailUpcoming":"Las entradas est\xE1n disponibles ahora a su precio normal. Esta oferta programada se aplicar\xE1 autom\xE1ticamente a los asientos elegibles cuando comience.","picker.offerRemainingAvailable":"{count} disponibles","picker.offerStarts":"comienza {time}","picker.offerUntil":"hasta {time}","picker.oneSeatSaved":"1 asiento guardado","picker.oneSeatSavedChooseAnother":"Un asiento guardado; elige otro para comparar","picker.openAuthored360":"Abrir vista 360\xB0 del recinto","picker.openComparison":"Abrir comparaci\xF3n","picker.openComparisonOfSeats":"Abrir comparaci\xF3n de {count} asientos","picker.openTicketPanel":"Abrir el panel de entradas","picker.peekFromPrice":"Desde {price}","picker.peekTicketsTotal.one":"{count} entrada \xB7 {total}","picker.peekTicketsTotal.other":"{count} entradas \xB7 {total}","picker.perGuestPrice":"{price} por invitado","picker.pickYourSeats":"Elige tus asientos","picker.preferredTicketType":"Tipo de entrada preferido","picker.preferredVenueZone":"Zona del recinto preferida","picker.priceNotSupplied":"Precio no indicado","picker.releaseHeldTickets":"Liberar entradas retenidas y elegir otros asientos","picker.releasingEllipsis":"Liberando\u2026","picker.removeHeldTicketLabel":"Quitar entrada retenida {label}","picker.removeSeatLabel":"Quitar {label}","picker.removeTicketsUntilOrFewer":"Quita entradas hasta que tu pedido tenga {count} o menos.","picker.replaceCurrentChoices":"\xBFReemplazar tu selecci\xF3n actual?","picker.review":"Revisar","picker.row":"Fila","picker.rowLabel":"Fila {label}","picker.saveToCompare":"Guardar para comparar","picker.savedForComparison":"Guardado para comparar","picker.savedSeatComparison":"Comparaci\xF3n de asientos guardada","picker.scheduledOffer":"Oferta programada","picker.seat":"Asiento","picker.seatCount.one":"{count} asiento","picker.seatCount.other":"{count} asientos","picker.seatJustTakenByAnother":"El asiento {label} acaba de ser tomado por otro comprador.","picker.seatLabel":"Asiento {label}","picker.seatNoLongerAvailable":"Ese asiento ya no est\xE1 disponible.","picker.seatNoLongerYours":"Algunos asientos ya no est\xE1n disponibles para ti. Se han eliminado de tu pedido.","picker.seatNumberLower":"asiento {label}","picker.seatSalesClosedForEvent":"La venta de asientos para este evento ha finalizado.","picker.seatSelection":"Selecci\xF3n de asientos","picker.seatStatusLegend":"Leyenda del estado de los asientos","picker.seatTaken":"Otro comprador tom\xF3 un asiento que hab\xEDas elegido. Se ha eliminado de tu pedido.","picker.seatsHeldForNeedMoreTime":"Tus asientos est\xE1n retenidos durante <b>{time}</b>. \xBFNecesitas m\xE1s tiempo?","picker.seatsJustTaken":"Se acaban de ocupar uno o m\xE1s asientos. Vuelve a elegir.","picker.seatsJustTakenInCategory.one":"{count} asiento reci\xE9n ocupado en {label} \xB7 quedan {left}","picker.seatsJustTakenInCategory.other":"{count} asientos reci\xE9n ocupados en {label} \xB7 quedan {left}","picker.seatsNoLongerAvailableTryAnother":"Esos asientos ya no est\xE1n disponibles. Prueba otra cantidad o tipo de entrada.","picker.seatsSecured":"Asientos asegurados","picker.seatsSelectedCount.one":"{count} seleccionado","picker.seatsSelectedCount.other":"{count} seleccionados","picker.section":"Secci\xF3n","picker.secureMore":"Asegurar m\xE1s","picker.secureMoreAndCheckout":"Asegurar {count} m\xE1s y pagar","picker.securedCount":"{count} asegurados","picker.seeItIn3d":"Verlo en 3D","picker.select":"Seleccionar","picker.selectSeats":"Seleccionar asientos","picker.selectTable":"Seleccionar mesa","picker.selectWholeTable":"Seleccionar mesa completa","picker.selected":"Seleccionado","picker.selectingEllipsis":"Seleccionando\u2026","picker.showAllSeats":"Mostrar todos los asientos","picker.showAllTicketTypes":"Mostrar los {count} tipos de entrada","picker.showFewer":"Mostrar menos","picker.showLabelSeatsOnMap":"Mostrar los asientos de {label} en el mapa","picker.showTicketPanel":"Mostrar el panel de entradas","picker.sold":"Vendido","picker.soldOutCopy":"No hay asientos reservados disponibles actualmente para este evento.","picker.soldOutEyebrow":"Este evento","picker.soldOutTitle":"Agotado","picker.soldSeatExplanation":"Este asiento ya ha sido reservado.","picker.statusAvailable":"disponible","picker.statusOnHold":"en espera","picker.statusTaken2":"ocupado","picker.table":"Mesa","picker.tableCapacity":"Capacidad de la mesa","picker.tableUpdatedForGuests":"{label} actualizado para {count} invitados.","picker.temporarilyHeld":"Retenido temporalmente","picker.ticketPrices":"Precios de entradas","picker.ticketTypeSoldOut":"Ese tipo de entrada est\xE1 agotado. Prueba con otro tipo de entrada.","picker.tickets":"Entradas","picker.ticketsCount.one":"{count} entrada","picker.ticketsCount.other":"{count} entradas","picker.toggleColorblindColors":"Alternar colores para dalt\xF3nicos","picker.total":"Total","picker.trayHintTapOrBest":"Toca un asiento en el mapa, o deja que elijamos los mejores disponibles por ti.","picker.trayHintTapOrStanding":"Toca un asiento en el mapa \u2014 o consigue entradas de pie abajo.","picker.undo":"Deshacer","picker.upcomingTicketOffer":"Pr\xF3xima oferta de entradas","picker.updateTable":"Actualizar mesa","picker.updatingEllipsis":"Actualizando\u2026","picker.venueView":"Vista del recinto","picker.viewFromHere":"Vista desde aqu\xED","picker.viewFromThisSeat":"Vista desde este asiento","picker.wholeTypeWord":"{typeWord} completo","picker.willChooseClosestGroup":"Elegiremos el grupo disponible m\xE1s cercano por ti.","picker.willFindSeatsTogether":"Buscaremos {count} asientos juntos.","picker.yourSeats":"Tus asientos","picker.zoomIn":"Acercar","picker.zoomOut":"Alejar","picker.closeVenueNav":"Cerrar","picker.levelsAndAreas":"Niveles y zonas"}});var ls={};Pt(ls,{de:()=>Cl});var Cl,cs=ki(()=>{"use strict";Cl={"common.cancel":"Abbrechen","common.close":"Schlie\xDFen","common.done":"Fertig","common.copied":"\u2713 Kopiert","picker.holdExpired":"Ihre Reservierung ist abgelaufen \u2014 die Pl\xE4tze wurden freigegeben. Bitte erneut ausw\xE4hlen.","picker.poweredBy":"Bereitgestellt von SeatLayer","picker.testMode":"TESTMODUS","picker.orphanHint":"Dadurch bleibt ein einzelner Platz \xFCbrig \u2014 r\xFCcken Sie ggf. einen Platz weiter.","picker.companionRequiresWheelchair":"Benachbarter Rollstuhlplatz erforderlich","picker.companionPairRequired":"W\xE4hlen Sie zu jedem Begleitticket den benachbarten Rollstuhlplatz aus.","map.aria":"Sitzplan. Mit Pfeiltasten zwischen Pl\xE4tzen navigieren, Eingabe zum Ausw\xE4hlen.","map.seatsLeft":"{count} FREI","map.soldOut":"AUSVERKAUFT","map.statusHeld":"Reserviert","map.statusTaken":"Vergeben","map.fromPrice":"AB {price}","picker.floor":"Etage","picker.zoomLevel":"Zoomstufe","picker.rungTip.zones":"\xDCbersicht \u2014 Bereichsgruppen wie Nordtrib\xFCne oder VIP","picker.rungTip.sections":"Bereichs-Bl\xF6cke \u2014 ausverkaufte und fast volle Bereiche werden abgedunkelt, um die Verf\xFCgbarkeit auf einen Blick zu zeigen","picker.rungTip.seats":"Einzelne Pl\xE4tze \u2014 Bl\xF6cke l\xF6sen sich zu Punkten auf","picker.rungLabel.zones":"ZONEN","picker.rungLabel.sections":"BEREICHE","picker.rungLabel.seats":"PL\xC4TZE","picker.sectionSummaryAria":"Bereichszusammenfassung {label}","picker.closeSectionSummary":"Bereichszusammenfassung schlie\xDFen","picker.seatsLeftInSection.one":"{count} Platz verf\xFCgbar","picker.seatsLeftInSection.other":"{count} Pl\xE4tze verf\xFCgbar","picker.overview":"\xDCbersicht","picker.entrance":"Eingang","picker.tapSeatHint":"Tippen Sie auf einen Platz, um die Ansicht zu pr\xFCfen","picker.ticketTierFor":"Ticketklasse f\xFCr {label}","picker.viewFromSeat":"Ansicht von Platz {label}","picker.real360":"REAL 360\xB0","picker.preview":"VORSCHAU","picker.sightline":"\u2248 {m} m zur B\xFChne","picker.panorama360":"360\xB0-Veranstaltungsfotos","picker.illustrationCaption":"Illustration \xB7 \u2248 {m} m von der B\xFChne","picker.restrictedView":"Eingeschr\xE4nkte Sicht","picker.obstructedView":"Sichtbehinderung","picker.premiumSeat":"Premium-Platz","picker.hideLimitedView":"Pl\xE4tze mit eingeschr\xE4nkter Sicht ausblenden","picker.bestSeatsPremium":"Beste Pl\xE4tze","picker.premiumFallbackNote":"Kein Premium-Block mit {count} Pl\xE4tzen \u2014 beste verf\xFCgbare werden angezeigt","picker.loading3d":"3D-Veranstaltungsort wird aufgebaut\u2026","picker.unavailable3d":"3D konnte nicht gestartet werden. Der Sitzplan bleibt verf\xFCgbar.","picker.jumpToSection":"Zum Bereich springen","picker.salesClosedPill":"Der Verkauf ist beendet","picker.salesClosedCopy":"Der Ticketverkauf f\xFCr diese Veranstaltung ist beendet.","picker.salesClosedCta":"Verkauf beendet","picker.salesClosedToast":"Der Verkauf f\xFCr diese Veranstaltung ist beendet.","picker.holdReassurance":"F\xFCr {time} reserviert \u2014 noch wird nichts abgebucht.","picker.securingSeats":"Ihre Pl\xE4tze werden gesichert\u2026","picker.openingCheckout":"Sicherer Checkout wird ge\xF6ffnet\u2026","picker.peekSecured":"\u2713 {count} gesichert \xB7 {total} \u2014 noch wird nichts abgebucht","picker.priceHint":"Die Farben auf dem Plan sind Ticketkategorien \u2014 tippen Sie eine an, um nur diese Pl\xE4tze zu sehen.","picker.findTogetherInstead":"Stattdessen Pl\xE4tze nebeneinander finden","picker.keepMyPicks":"Meine Auswahl behalten","picker.accessExpiredBody":"Melden Sie sich erneut an oder laden Sie die Seite neu, um diese Pl\xE4tze weiter durchzusehen. Bereits gehaltene Pl\xE4tze bleiben Ihnen erhalten.","picker.accessExpiredTitle":"Ihre Zugangssitzung ist beendet","picker.accessInvalidBody":"Sie k\xF6nnen weiterhin alles buchen, was als verf\xFCgbar angezeigt wird. Wenden Sie sich f\xFCr Zugang zum Rest an die Person, die Ihnen den Link geschickt hat.","picker.accessInvalidTitle":"Ihr Zugang konnte nicht best\xE4tigt werden","picker.accessPausedBody":"Der Veranstalter hat diese Auswahl pausiert. Versuchen Sie es in ein paar Minuten erneut.","picker.accessPausedTitle":"Diese Pl\xE4tze sind gerade reserviert","picker.accessRetry":"Erneut versuchen","picker.accessRevokedBody":"Bitten Sie die Person, die Ihnen diesen Link geschickt hat, um einen neuen, um weiter buchen zu k\xF6nnen.","picker.accessRevokedTitle":"Dieser Zugangslink ist nicht mehr aktiv","picker.accessiblePhysicalSeat":"Barrierefreier fester Sitzplatz","picker.addTime":"Zeit hinzuf\xFCgen","picker.addingEllipsis":"Wird hinzugef\xFCgt\u2026","picker.allLevels":"Alle Ebenen","picker.allPlacesBookedTogether":"Alle {count} Pl\xE4tze werden gemeinsam als ein exklusiver Tisch gebucht.","picker.allPrices":"Alle Preise","picker.allSeats":"Alle Pl\xE4tze","picker.allSetTitle":"Alles bereit","picker.anyTicketType":"Beliebige Ticketart","picker.anyVenueZone":"Beliebiger Bereich","picker.areas":"Bereiche","picker.available":"Verf\xFCgbar","picker.backToMap":"Zur\xFCck zur Karte","picker.backToVenue":"Zur\xFCck zur \xDCbersicht","picker.bestSeatsStar":"\u2726 Beste Pl\xE4tze","picker.booth":"Loge","picker.capacityGuests":"{count} G\xE4ste","picker.change":"\xC4ndern","picker.chartDerivedModel":"Aus dem Plan abgeleitetes Modell","picker.chartDerivedSeatEye":"Live-3D \xB7 aus dem Plan abgeleitete Sitzperspektive \xB7 nicht vermessen","picker.checkConnection":"Bitte \xFCberpr\xFCfen Sie Ihre Verbindung und versuchen Sie es erneut.","picker.checkoutCouldNotBeOpened":"Der Checkout konnte nicht ge\xF6ffnet werden. Ihre Pl\xE4tze sind weiterhin reserviert \u2014 bitte versuchen Sie es erneut.","picker.chooseAnotherToCompare":"W\xE4hlen Sie einen weiteren Platz zum Vergleichen.","picker.chooseGuestsCopy":"W\xE4hlen Sie, wie viele G\xE4ste zusammensitzen. Dieser Tisch ist exklusiv f\xFCr Ihre Gruppe reserviert.","picker.chooseMinMaxGuests":"W\xE4hlen Sie {min}\u2013{max} G\xE4ste","picker.clearSavedSeatComparison":"Gespeicherten Sitzvergleich l\xF6schen","picker.close":"Schlie\xDFen","picker.closeSeatStatus":"Sitzstatus schlie\xDFen","picker.closestGroupChosenInstantly":"N\xE4chstgelegene verf\xFCgbare Gruppe, sofort ausgew\xE4hlt.","picker.collapseTicketPanel":"Ticketbereich einklappen","picker.compareCount":"{count} vergleichen","picker.compareWithSaved":"Mit Gespeichertem vergleichen","picker.confirmOrCancelSeat":"Diesen Platz best\xE4tigen oder abbrechen","picker.confirmSeatLabel":"Platz {label} best\xE4tigen","picker.confirmYourTable":"Ihren Tisch best\xE4tigen","picker.confirmedAndOnWay":"best\xE4tigt. Eine Best\xE4tigung ist unterwegs.","picker.continue":"Weiter","picker.continueToCheckout":"Weiter zum Checkout","picker.couldNotAddMoreTime":"Zus\xE4tzliche Zeit konnte nicht hinzugef\xFCgt werden \u2014 bitte jetzt zum Checkout gehen.","picker.couldNotFindSeatsTogether":"Wir konnten keine {count} zusammenh\xE4ngenden Pl\xE4tze finden. Versuchen Sie es mit weniger Pl\xE4tzen oder einer anderen Ticketart.","picker.couldNotReleaseTickets":"Ihre Tickets konnten nicht freigegeben werden. Ihre Reservierung bleibt unver\xE4ndert.","picker.couldNotRemoveLabel":"{label} konnte nicht entfernt werden. Ihre Reservierung bleibt unver\xE4ndert.","picker.currentOffer":"Aktuelles Angebot","picker.currentTicketOffer":"Aktuelles Ticketangebot","picker.dragToLookAround":"Ziehen zum Umsehen \xB7 Scrollen zum Zoomen","picker.emptyWheelchairSpace":"Leerer Rollstuhlplatz","picker.exitFullScreen":"Vollbild verlassen","picker.fewer":"Weniger","picker.fewerGuests":"Weniger G\xE4ste","picker.fewerSeats":"Weniger Pl\xE4tze","picker.filterAndFocusByPrice":"Pl\xE4tze nach Preis filtern und fokussieren","picker.filters":"Filter","picker.findBestSeatsCount.one":"{count} besten Platz finden","picker.findBestSeatsCount.other":"{count} beste Pl\xE4tze finden","picker.findBestSeatsTogether":"Die besten Pl\xE4tze zusammen finden","picker.findNewSeats":"Neue Pl\xE4tze finden","picker.findingBestSeats":"Beste Pl\xE4tze werden gesucht\u2026","picker.findingEllipsis":"Wird gesucht\u2026","picker.fitToScreen":"An Bildschirm anpassen","picker.flat2dMap":"Flache 2D-Karte","picker.flexiblePartyTypeWord":"Flexible Gruppe \xB7 {typeWord}","picker.fullScreen":"Vollbild","picker.generalAdmission":"Stehplatz","picker.guestCountCouldNotBeSecured":"Diese G\xE4steanzahl konnte nicht gesichert werden. Ihre aktuelle Tischreservierung bleibt unver\xE4ndert.","picker.guestCountNoLongerAvailable":"Diese G\xE4steanzahl ist nicht mehr verf\xFCgbar. Ihre aktuelle Reservierung bleibt unver\xE4ndert.","picker.guests":"G\xE4ste","picker.guestsCount":"{count} G\xE4ste","picker.guestsCountEdit":"{count} G\xE4ste \xB7 Bearbeiten","picker.held":"Reserviert","picker.heldForYou":"F\xFCr Sie reserviert","picker.heldSeatExplanation":"Ein anderer K\xE4ufer h\xE4lt diesen Platz gerade. Er k\xF6nnte wieder verf\xFCgbar werden.","picker.heldTicketsReleased":"Reservierte Tickets wurden freigegeben. W\xE4hlen Sie neue Pl\xE4tze.","picker.heldTicketsRestored":"Ihre reservierten Tickets wurden wiederhergestellt.","picker.hidePanel":"Bereich ausblenden","picker.hideTicketPanel":"Ticketbereich ausblenden","picker.holdSeatsAndCheckout":"Pl\xE4tze reservieren & zum Checkout","picker.howOfferWorks":"So funktioniert das Angebot \u201E{name}\u201C","picker.interactive3dVenueView":"Interaktive 3D-Ansicht des Veranstaltungsorts","picker.keepMine":"Meine behalten","picker.labelNoLongerAvailable":"{label} ist nicht mehr verf\xFCgbar.","picker.labelRemoved":"{label} entfernt.","picker.labelRemovedFromHold":"{label} aus Ihrer Reservierung entfernt.","picker.labelRestored":"{label} wiederhergestellt.","picker.labelsNoLongerAvailable.one":"{labels} ist nicht mehr verf\xFCgbar. W\xE4hlen Sie einen anderen Platz.","picker.labelsNoLongerAvailable.other":"{labels} sind nicht mehr verf\xFCgbar. W\xE4hlen Sie eine andere Gruppe.","picker.leftCount.one":"noch {count}","picker.leftCount.other":"noch {count}","picker.levelNumber":"Ebene {number}","picker.levels":"Ebenen","picker.liveAvailability":"Live-Verf\xFCgbarkeit \u2014 Pl\xE4tze aktualisieren sich in Echtzeit","picker.loadingSeatMap":"Sitzplan wird geladen\u2026","picker.lookAroundLive3d":"In Live-3D umsehen","picker.manualTicketsRemovedNote":"Ihre manuell gew\xE4hlten Tickets werden erst entfernt, nachdem eine neue Gruppe gesichert wurde.","picker.map":"Karte","picker.mapDidNotLoad":"Der Sitzplan konnte nicht geladen werden","picker.maxTicketsForOrder":"Sie k\xF6nnen f\xFCr diese Bestellung bis zu {count} Tickets ausw\xE4hlen.","picker.minToMaxGuests":"{min} bis {max} G\xE4ste","picker.more":"Mehr","picker.moreGuests":"Mehr G\xE4ste","picker.moreSeats":"Mehr Pl\xE4tze","picker.moreSelectedCount":"{count} weitere ausgew\xE4hlt","picker.moreTimeAdded":"Zus\xE4tzliche Zeit hinzugef\xFCgt \u2014 Ihre Pl\xE4tze sind weiterhin reserviert.","picker.noAccessibilityMetadata":"Keine Barrierefreiheits-Angaben vorhanden","picker.noAuthoredRestriction":"Keine vom Veranstalter angegebene Einschr\xE4nkung","picker.noSeatsSelected":"Keine Pl\xE4tze ausgew\xE4hlt","picker.notChargedYet":"Es wird noch nichts abgebucht.","picker.notForSale":"Nicht verk\xE4uflich","picker.notForSaleExplanation":"Dieser Platz ist im aktuellen Verkauf nicht enthalten.","picker.numberOfGuests":"Anzahl der G\xE4ste","picker.offerDetailActive":"Dieser Preis gilt automatisch f\xFCr berechtigte Pl\xE4tze. Tickets in aktiven Warenk\xF6rben verringern vor\xFCbergehend die verf\xFCgbare Menge; freigegebene oder abgelaufene Reservierungen geben sie zur\xFCck. Wenn das Angebot endet, greift das n\xE4chste passende Angebot oder der regul\xE4re Ticketpreis.","picker.offerDetailUpcoming":"Tickets sind derzeit zum regul\xE4ren Preis erh\xE4ltlich. Dieses geplante Angebot gilt automatisch f\xFCr berechtigte Pl\xE4tze, sobald es beginnt.","picker.offerRemainingAvailable":"{count} verf\xFCgbar","picker.offerStarts":"beginnt {time}","picker.offerUntil":"bis {time}","picker.oneSeatSaved":"1 Platz gespeichert","picker.oneSeatSavedChooseAnother":"Ein Platz gespeichert; w\xE4hlen Sie einen weiteren zum Vergleichen","picker.openAuthored360":"360\xB0-Ansicht des Veranstaltungsorts \xF6ffnen","picker.openComparison":"Vergleich \xF6ffnen","picker.openComparisonOfSeats":"Vergleich von {count} Pl\xE4tzen \xF6ffnen","picker.openTicketPanel":"Ticketbereich \xF6ffnen","picker.peekFromPrice":"Ab {price}","picker.peekTicketsTotal.one":"{count} Ticket \xB7 {total}","picker.peekTicketsTotal.other":"{count} Tickets \xB7 {total}","picker.perGuestPrice":"{price} pro Gast","picker.pickYourSeats":"W\xE4hlen Sie Ihre Pl\xE4tze","picker.preferredTicketType":"Bevorzugte Ticketart","picker.preferredVenueZone":"Bevorzugter Bereich","picker.priceNotSupplied":"Preis nicht angegeben","picker.releaseHeldTickets":"Reservierte Tickets freigeben und andere Pl\xE4tze w\xE4hlen","picker.releasingEllipsis":"Wird freigegeben\u2026","picker.removeHeldTicketLabel":"Reserviertes Ticket {label} entfernen","picker.removeSeatLabel":"{label} entfernen","picker.removeTicketsUntilOrFewer":"Entfernen Sie Tickets, bis Ihre Bestellung {count} oder weniger enth\xE4lt.","picker.replaceCurrentChoices":"Ihre aktuelle Auswahl ersetzen?","picker.review":"\xDCberpr\xFCfen","picker.row":"Reihe","picker.rowLabel":"Reihe {label}","picker.saveToCompare":"Zum Vergleich speichern","picker.savedForComparison":"Zum Vergleich gespeichert","picker.savedSeatComparison":"Gespeicherter Sitzvergleich","picker.scheduledOffer":"Geplantes Angebot","picker.seat":"Platz","picker.seatCount.one":"{count} Platz","picker.seatCount.other":"{count} Pl\xE4tze","picker.seatJustTakenByAnother":"Platz {label} wurde gerade von einem anderen K\xE4ufer \xFCbernommen.","picker.seatLabel":"Platz {label}","picker.seatNoLongerAvailable":"Dieser Platz ist nicht mehr verf\xFCgbar.","picker.seatNoLongerYours":"Einige Pl\xE4tze sind f\xFCr Sie nicht mehr verf\xFCgbar. Sie wurden aus Ihrer Bestellung entfernt.","picker.seatNumberLower":"Platz {label}","picker.seatSalesClosedForEvent":"Der Ticketverkauf f\xFCr diese Veranstaltung ist beendet.","picker.seatSelection":"Sitzplatzauswahl","picker.seatStatusLegend":"Legende zum Sitzstatus","picker.seatTaken":"Ein anderer K\xE4ufer hat einen von Ihnen gew\xE4hlten Platz \xFCbernommen. Er wurde aus Ihrer Bestellung entfernt.","picker.seatsHeldForNeedMoreTime":"Ihre Pl\xE4tze sind f\xFCr <b>{time}</b> reserviert. Mehr Zeit ben\xF6tigt?","picker.seatsJustTaken":"Ein oder mehrere Pl\xE4tze wurden gerade vergeben. Bitte w\xE4hlen Sie erneut.","picker.seatsJustTakenInCategory.one":"{count} Platz gerade vergeben in {label} \xB7 noch {left}","picker.seatsJustTakenInCategory.other":"{count} Pl\xE4tze gerade vergeben in {label} \xB7 noch {left}","picker.seatsNoLongerAvailableTryAnother":"Diese Pl\xE4tze sind nicht mehr verf\xFCgbar. Versuchen Sie eine andere Anzahl oder Ticketart.","picker.seatsSecured":"Pl\xE4tze gesichert","picker.seatsSelectedCount.one":"{count} ausgew\xE4hlt","picker.seatsSelectedCount.other":"{count} ausgew\xE4hlt","picker.section":"Bereich","picker.secureMore":"Mehr sichern","picker.secureMoreAndCheckout":"{count} weitere sichern & zum Checkout","picker.securedCount":"{count} gesichert","picker.seeItIn3d":"In 3D ansehen","picker.select":"Ausw\xE4hlen","picker.selectSeats":"Pl\xE4tze ausw\xE4hlen","picker.selectTable":"Tisch ausw\xE4hlen","picker.selectWholeTable":"Ganzen Tisch ausw\xE4hlen","picker.selected":"Ausgew\xE4hlt","picker.selectingEllipsis":"Wird ausgew\xE4hlt\u2026","picker.showAllSeats":"Alle Pl\xE4tze anzeigen","picker.showAllTicketTypes":"Alle {count} Ticketarten anzeigen","picker.showFewer":"Weniger anzeigen","picker.showLabelSeatsOnMap":"{label}-Pl\xE4tze auf der Karte anzeigen","picker.showTicketPanel":"Ticketbereich anzeigen","picker.sold":"Verkauft","picker.soldOutCopy":"F\xFCr diese Veranstaltung sind derzeit keine reservierten Pl\xE4tze verf\xFCgbar.","picker.soldOutEyebrow":"Diese Veranstaltung","picker.soldOutTitle":"Ausverkauft","picker.soldSeatExplanation":"Dieser Platz wurde bereits gebucht.","picker.statusAvailable":"verf\xFCgbar","picker.statusOnHold":"reserviert","picker.statusTaken2":"vergeben","picker.table":"Tisch","picker.tableCapacity":"Tischkapazit\xE4t","picker.tableUpdatedForGuests":"{label} auf {count} G\xE4ste aktualisiert.","picker.temporarilyHeld":"Vor\xFCbergehend reserviert","picker.ticketPrices":"Ticketpreise","picker.ticketTypeSoldOut":"Diese Ticketart ist ausverkauft. Versuchen Sie eine andere Ticketart.","picker.tickets":"Tickets","picker.ticketsCount.one":"{count} Ticket","picker.ticketsCount.other":"{count} Tickets","picker.toggleColorblindColors":"Farbenblindenfreundliche Farben umschalten","picker.total":"Gesamt","picker.trayHintTapOrBest":"Tippen Sie auf einen Platz in der Karte, oder lassen Sie uns die besten verf\xFCgbaren f\xFCr Sie w\xE4hlen.","picker.trayHintTapOrStanding":"Tippen Sie auf einen Platz in der Karte \u2014 oder holen Sie sich unten Stehplatztickets.","picker.undo":"R\xFCckg\xE4ngig","picker.upcomingTicketOffer":"Bevorstehendes Ticketangebot","picker.updateTable":"Tisch aktualisieren","picker.updatingEllipsis":"Wird aktualisiert\u2026","picker.venueView":"Ansicht des Veranstaltungsorts","picker.viewFromHere":"Ansicht von hier","picker.viewFromThisSeat":"Ansicht von diesem Platz","picker.wholeTypeWord":"Ganzer {typeWord}","picker.willChooseClosestGroup":"Wir w\xE4hlen die n\xE4chstgelegene verf\xFCgbare Gruppe f\xFCr Sie.","picker.willFindSeatsTogether":"Wir finden {count} Pl\xE4tze zusammen f\xFCr Sie.","picker.yourSeats":"Ihre Pl\xE4tze","picker.zoomIn":"Vergr\xF6\xDFern","picker.zoomOut":"Verkleinern","picker.closeVenueNav":"Schlie\xDFen","picker.levelsAndAreas":"Ebenen & Bereiche"}});var ds={};Pt(ds,{fr:()=>Ml});var Ml,us=ki(()=>{"use strict";Ml={"common.cancel":"Annuler","common.close":"Fermer","common.done":"Termin\xE9","common.copied":"\u2713 Copi\xE9","picker.holdExpired":"Votre r\xE9servation a expir\xE9 \u2014 les si\xE8ges ont \xE9t\xE9 lib\xE9r\xE9s. S\xE9lectionnez \xE0 nouveau.","picker.poweredBy":"Propuls\xE9 par SeatLayer","picker.testMode":"MODE TEST","picker.orphanHint":"Cela laisse un si\xE8ge isol\xE9 \u2014 pensez \xE0 vous d\xE9caler d'un si\xE8ge.","picker.companionRequiresWheelchair":"N\xE9cessite la place fauteuil roulant adjacente","picker.companionPairRequired":"S\xE9lectionnez la place fauteuil roulant adjacente avec chaque billet accompagnateur.","map.aria":"Plan de salle. Utilisez les fl\xE8ches pour naviguer entre les si\xE8ges, Entr\xE9e pour s\xE9lectionner.","map.seatsLeft":"{count} LIBRES","map.soldOut":"COMPLET","map.statusHeld":"En attente","map.statusTaken":"Pris","map.fromPrice":"D\xC8S {price}","picker.floor":"\xC9tage","picker.zoomLevel":"Niveau de zoom","picker.rungTip.zones":"Vue g\xE9n\xE9rale \u2014 groupes de sections comme Tribune nord ou VIP","picker.rungTip.sections":"Blocs de sections \u2014 les sections compl\xE8tes ou presque pleines sont estomp\xE9es pour voir la disponibilit\xE9 en un coup d\u2019\u0153il","picker.rungTip.seats":"Si\xE8ges individuels \u2014 les blocs se transforment en points","picker.rungLabel.zones":"ZONES","picker.rungLabel.sections":"SECTIONS","picker.rungLabel.seats":"SI\xC8GES","picker.sectionSummaryAria":"R\xE9sum\xE9 de la section {label}","picker.closeSectionSummary":"Fermer le r\xE9sum\xE9 de la section","picker.seatsLeftInSection.one":"{count} si\xE8ge restant","picker.seatsLeftInSection.other":"{count} si\xE8ges restants","picker.overview":"Vue d'ensemble","picker.entrance":"Entr\xE9e","picker.tapSeatHint":"Appuyez sur un si\xE8ge pour v\xE9rifier sa vue","picker.ticketTierFor":"Cat\xE9gorie de billet pour {label}","picker.viewFromSeat":"Vue depuis le si\xE8ge {label}","picker.real360":"VRAI 360\xB0","picker.preview":"APER\xC7U","picker.sightline":"\u2248 {m} m de la sc\xE8ne","picker.panorama360":"Photo panoramique 360\xB0 du lieu","picker.illustrationCaption":"illustration \xB7 \u2248 {m} m de la sc\xE8ne","picker.restrictedView":"Visibilit\xE9 r\xE9duite","picker.obstructedView":"Vue obstru\xE9e","picker.premiumSeat":"Place premium","picker.hideLimitedView":"Masquer les places \xE0 visibilit\xE9 r\xE9duite","picker.bestSeatsPremium":"Meilleures places","picker.premiumFallbackNote":"Aucun bloc premium de {count} \u2014 affichage des meilleures places disponibles","picker.loading3d":"Cr\xE9ation de la salle en 3D\u2026","picker.unavailable3d":"La 3D n\u2019a pas pu d\xE9marrer. Le plan des si\xE8ges reste disponible.","picker.jumpToSection":"Acc\xE9der \xE0 une section","picker.salesClosedPill":"Les ventes sont closes","picker.salesClosedCopy":"La vente de billets pour cet \xE9v\xE9nement est termin\xE9e.","picker.salesClosedCta":"Ventes closes","picker.salesClosedToast":"Les ventes sont closes pour cet \xE9v\xE9nement.","picker.holdReassurance":"\xC0 vous pendant {time} \u2014 vous ne serez pas encore d\xE9bit\xE9.","picker.securingSeats":"R\xE9servation de vos places\u2026","picker.openingCheckout":"Ouverture du paiement s\xE9curis\xE9\u2026","picker.peekSecured":"\u2713 {count} r\xE9serv\xE9es \xB7 {total} \u2014 vous ne serez pas encore d\xE9bit\xE9","picker.priceHint":"Les couleurs du plan correspondent aux types de billets \u2014 touchez-en un ci-dessous pour ne voir que ces places.","picker.findTogetherInstead":"Trouver plut\xF4t des places c\xF4te \xE0 c\xF4te","picker.keepMyPicks":"Garder ma s\xE9lection","picker.accessExpiredBody":"Reconnectez-vous ou rechargez la page pour continuer \xE0 consulter ces places. Ce que vous avez d\xE9j\xE0 r\xE9serv\xE9 reste \xE0 vous.","picker.accessExpiredTitle":"Votre session d\u2019acc\xE8s a pris fin","picker.accessInvalidBody":"Vous pouvez toujours r\xE9server tout ce qui est indiqu\xE9 comme disponible. Contactez la personne qui vous a envoy\xE9 ce lien pour acc\xE9der au reste.","picker.accessInvalidTitle":"Nous n\u2019avons pas pu v\xE9rifier votre acc\xE8s","picker.accessPausedBody":"L\u2019organisateur a mis cette s\xE9lection en pause. R\xE9essayez dans quelques minutes.","picker.accessPausedTitle":"Ces places sont actuellement en attente","picker.accessRetry":"R\xE9essayer","picker.accessRevokedBody":"Demandez \xE0 la personne qui vous a envoy\xE9 ce lien de vous en fournir un nouveau pour continuer \xE0 r\xE9server ces places.","picker.accessRevokedTitle":"Ce lien d\u2019acc\xE8s n\u2019est plus actif","picker.accessiblePhysicalSeat":"Si\xE8ge physique accessible","picker.addTime":"Ajouter du temps","picker.addingEllipsis":"Ajout en cours\u2026","picker.allLevels":"Tous les niveaux","picker.allPlacesBookedTogether":"Les {count} places sont r\xE9serv\xE9es ensemble comme une table exclusive.","picker.allPrices":"Tous les prix","picker.allSeats":"Toutes les places","picker.allSetTitle":"Tout est pr\xEAt","picker.anyTicketType":"Tout type de billet","picker.anyVenueZone":"Toute zone du lieu","picker.areas":"Zones","picker.available":"Disponible","picker.backToMap":"Retour au plan","picker.backToVenue":"Retour au lieu","picker.bestSeatsStar":"\u2726 Meilleures places","picker.booth":"Loge","picker.capacityGuests":"{count} invit\xE9s","picker.change":"Modifier","picker.chartDerivedModel":"Mod\xE8le d\xE9riv\xE9 du plan","picker.chartDerivedSeatEye":"3D en direct \xB7 point de vue d\xE9riv\xE9 du plan \xB7 non v\xE9rifi\xE9","picker.checkConnection":"V\xE9rifiez votre connexion et r\xE9essayez.","picker.checkoutCouldNotBeOpened":"Le paiement n\u2019a pas pu s\u2019ouvrir. Vos places sont toujours r\xE9serv\xE9es \u2014 veuillez r\xE9essayer.","picker.chooseAnotherToCompare":"Choisissez une autre place \xE0 comparer.","picker.chooseGuestsCopy":"Choisissez combien d\u2019invit\xE9s seront assis ensemble. Cette table est r\xE9serv\xE9e exclusivement \xE0 votre groupe.","picker.chooseMinMaxGuests":"Choisissez de {min} \xE0 {max} invit\xE9s","picker.clearSavedSeatComparison":"Effacer la comparaison de places enregistr\xE9e","picker.close":"Fermer","picker.closeSeatStatus":"Fermer le statut de la place","picker.closestGroupChosenInstantly":"Groupe disponible le plus proche, choisi instantan\xE9ment.","picker.collapseTicketPanel":"R\xE9duire le panneau des billets","picker.compareCount":"Comparer {count}","picker.compareWithSaved":"Comparer avec l\u2019enregistr\xE9e","picker.confirmOrCancelSeat":"Confirmer ou annuler cette place","picker.confirmSeatLabel":"Confirmer la place {label}","picker.confirmYourTable":"Confirmez votre table","picker.confirmedAndOnWay":"confirm\xE9s. Une confirmation arrive.","picker.continue":"Continuer","picker.continueToCheckout":"Continuer vers le paiement","picker.couldNotAddMoreTime":"Impossible d\u2019ajouter du temps \u2014 veuillez passer au paiement maintenant.","picker.couldNotFindSeatsTogether":"Nous n\u2019avons pas trouv\xE9 {count} places ensemble. Essayez avec moins de places ou un autre type de billet.","picker.couldNotReleaseTickets":"Impossible de lib\xE9rer vos billets. Votre r\xE9servation reste inchang\xE9e.","picker.couldNotRemoveLabel":"Impossible de retirer {label}. Votre r\xE9servation reste inchang\xE9e.","picker.currentOffer":"Offre actuelle","picker.currentTicketOffer":"Offre de billets actuelle","picker.dragToLookAround":"Faites glisser pour regarder autour \xB7 d\xE9filez pour zoomer","picker.emptyWheelchairSpace":"Emplacement vide pour fauteuil roulant","picker.exitFullScreen":"Quitter le plein \xE9cran","picker.fewer":"Moins","picker.fewerGuests":"Moins d\u2019invit\xE9s","picker.fewerSeats":"Moins de places","picker.filterAndFocusByPrice":"Filtrer et cibler les places par prix","picker.filters":"Filtres","picker.findBestSeatsCount.one":"Trouver {count} meilleure place","picker.findBestSeatsCount.other":"Trouver {count} meilleures places","picker.findBestSeatsTogether":"Trouver les meilleures places ensemble","picker.findNewSeats":"Trouver de nouvelles places","picker.findingBestSeats":"Recherche des meilleures places\u2026","picker.findingEllipsis":"Recherche\u2026","picker.fitToScreen":"Ajuster \xE0 l\u2019\xE9cran","picker.flat2dMap":"Plan 2D \xE0 plat","picker.flexiblePartyTypeWord":"Groupe flexible \xB7 {typeWord}","picker.fullScreen":"Plein \xE9cran","picker.generalAdmission":"Entr\xE9e g\xE9n\xE9rale","picker.guestCountCouldNotBeSecured":"Ce nombre d\u2019invit\xE9s n\u2019a pas pu \xEAtre s\xE9curis\xE9. Votre r\xE9servation de table actuelle reste inchang\xE9e.","picker.guestCountNoLongerAvailable":"Ce nombre d\u2019invit\xE9s n\u2019est plus disponible. Votre r\xE9servation actuelle reste inchang\xE9e.","picker.guests":"Invit\xE9s","picker.guestsCount":"{count} invit\xE9s","picker.guestsCountEdit":"{count} invit\xE9s \xB7 Modifier","picker.held":"R\xE9serv\xE9","picker.heldForYou":"R\xE9serv\xE9 pour vous","picker.heldSeatExplanation":"Un autre acheteur retient cette place actuellement. Elle pourrait redevenir disponible.","picker.heldTicketsReleased":"Les billets r\xE9serv\xE9s ont \xE9t\xE9 lib\xE9r\xE9s. Choisissez vos nouvelles places.","picker.heldTicketsRestored":"Vos billets r\xE9serv\xE9s ont \xE9t\xE9 restaur\xE9s.","picker.hidePanel":"Masquer le panneau","picker.hideTicketPanel":"Masquer le panneau des billets","picker.holdSeatsAndCheckout":"R\xE9server les places et payer","picker.howOfferWorks":"Comment fonctionne l\u2019offre \xAB {name} \xBB","picker.interactive3dVenueView":"Vue 3D interactive du lieu","picker.keepMine":"Garder les miennes","picker.labelNoLongerAvailable":"{label} n\u2019est plus disponible.","picker.labelRemoved":"{label} retir\xE9.","picker.labelRemovedFromHold":"{label} retir\xE9 de votre r\xE9servation.","picker.labelRestored":"{label} restaur\xE9.","picker.labelsNoLongerAvailable.one":"{labels} n\u2019est plus disponible. Choisissez une autre place.","picker.labelsNoLongerAvailable.other":"{labels} ne sont plus disponibles. Choisissez un autre groupe.","picker.leftCount.one":"{count} restante","picker.leftCount.other":"{count} restantes","picker.levelNumber":"Niveau {number}","picker.levels":"Niveaux","picker.liveAvailability":"Disponibilit\xE9 en direct \u2014 les places se mettent \xE0 jour en temps r\xE9el","picker.loadingSeatMap":"Chargement du plan de salle\u2026","picker.lookAroundLive3d":"Regarder autour en 3D en direct","picker.manualTicketsRemovedNote":"Vos billets s\xE9lectionn\xE9s manuellement ne seront retir\xE9s qu\u2019apr\xE8s qu\u2019un nouveau groupe soit s\xE9curis\xE9.","picker.map":"Plan","picker.mapDidNotLoad":"Le plan de salle n\u2019a pas pu se charger","picker.maxTicketsForOrder":"Vous pouvez s\xE9lectionner jusqu\u2019\xE0 {count} billets pour cette commande.","picker.minToMaxGuests":"De {min} \xE0 {max} invit\xE9s","picker.more":"Plus","picker.moreGuests":"Plus d\u2019invit\xE9s","picker.moreSeats":"Plus de places","picker.moreSelectedCount":"{count} de plus s\xE9lectionn\xE9es","picker.moreTimeAdded":"Du temps suppl\xE9mentaire a \xE9t\xE9 ajout\xE9 \u2014 vos places restent r\xE9serv\xE9es.","picker.noAccessibilityMetadata":"Aucune information d\u2019accessibilit\xE9 fournie","picker.noAuthoredRestriction":"Aucune restriction indiqu\xE9e par l\u2019organisateur","picker.noSeatsSelected":"Aucune place s\xE9lectionn\xE9e","picker.notChargedYet":"Vous ne serez pas encore d\xE9bit\xE9.","picker.notForSale":"Non disponible \xE0 la vente","picker.notForSaleExplanation":"Cette place n\u2019est pas incluse dans la vente en cours.","picker.numberOfGuests":"Nombre d\u2019invit\xE9s","picker.offerDetailActive":"Ce prix s\u2019applique automatiquement aux places \xE9ligibles. Les billets dans les paniers actifs r\xE9duisent temporairement la quantit\xE9 disponible ; les r\xE9servations lib\xE9r\xE9es ou expir\xE9es la restituent. Lorsque l\u2019offre se termine, l\u2019offre correspondante suivante ou le prix normal du billet prend le relais.","picker.offerDetailUpcoming":"Les billets sont disponibles maintenant \xE0 leur prix normal. Cette offre programm\xE9e s\u2019appliquera automatiquement aux places \xE9ligibles d\xE8s son d\xE9marrage.","picker.offerRemainingAvailable":"{count} disponibles","picker.offerStarts":"d\xE9bute {time}","picker.offerUntil":"jusqu\u2019\xE0 {time}","picker.oneSeatSaved":"1 place enregistr\xE9e","picker.oneSeatSavedChooseAnother":"Une place enregistr\xE9e ; choisissez-en une autre \xE0 comparer","picker.openAuthored360":"Ouvrir la vue 360\xB0 du lieu","picker.openComparison":"Ouvrir la comparaison","picker.openComparisonOfSeats":"Ouvrir la comparaison de {count} places","picker.openTicketPanel":"Ouvrir le panneau des billets","picker.peekFromPrice":"D\xE8s {price}","picker.peekTicketsTotal.one":"{count} billet \xB7 {total}","picker.peekTicketsTotal.other":"{count} billets \xB7 {total}","picker.perGuestPrice":"{price} par invit\xE9","picker.pickYourSeats":"Choisissez vos places","picker.preferredTicketType":"Type de billet pr\xE9f\xE9r\xE9","picker.preferredVenueZone":"Zone du lieu pr\xE9f\xE9r\xE9e","picker.priceNotSupplied":"Prix non fourni","picker.releaseHeldTickets":"Lib\xE9rer les billets r\xE9serv\xE9s et choisir d\u2019autres places","picker.releasingEllipsis":"Lib\xE9ration en cours\u2026","picker.removeHeldTicketLabel":"Retirer le billet r\xE9serv\xE9 {label}","picker.removeSeatLabel":"Retirer {label}","picker.removeTicketsUntilOrFewer":"Retirez des billets jusqu\u2019\xE0 ce que votre commande en contienne {count} ou moins.","picker.replaceCurrentChoices":"Remplacer votre s\xE9lection actuelle ?","picker.review":"V\xE9rifier","picker.row":"Rang\xE9e","picker.rowLabel":"Rang\xE9e {label}","picker.saveToCompare":"Enregistrer pour comparer","picker.savedForComparison":"Enregistr\xE9 pour comparaison","picker.savedSeatComparison":"Comparaison de places enregistr\xE9e","picker.scheduledOffer":"Offre programm\xE9e","picker.seat":"Place","picker.seatCount.one":"{count} place","picker.seatCount.other":"{count} places","picker.seatJustTakenByAnother":"La place {label} vient d\u2019\xEAtre prise par un autre acheteur.","picker.seatLabel":"Place {label}","picker.seatNoLongerAvailable":"Cette place n\u2019est plus disponible.","picker.seatNoLongerYours":"Certaines places ne vous sont plus disponibles. Elles ont \xE9t\xE9 retir\xE9es de votre commande.","picker.seatNumberLower":"place {label}","picker.seatSalesClosedForEvent":"La vente de places pour cet \xE9v\xE9nement est termin\xE9e.","picker.seatSelection":"S\xE9lection des places","picker.seatStatusLegend":"L\xE9gende du statut des places","picker.seatTaken":"Un autre acheteur a pris une place que vous aviez choisie. Elle a \xE9t\xE9 retir\xE9e de votre commande.","picker.seatsHeldForNeedMoreTime":"Vos places sont r\xE9serv\xE9es pendant <b>{time}</b>. Besoin de plus de temps ?","picker.seatsJustTaken":"Une ou plusieurs places viennent d\u2019\xEAtre prises. Veuillez choisir \xE0 nouveau.","picker.seatsJustTakenInCategory.one":"{count} place tout juste prise dans {label} \xB7 {left} restante","picker.seatsJustTakenInCategory.other":"{count} places tout juste prises dans {label} \xB7 {left} restantes","picker.seatsNoLongerAvailableTryAnother":"Ces places ne sont plus disponibles. Essayez une autre quantit\xE9 ou un autre type de billet.","picker.seatsSecured":"Places s\xE9curis\xE9es","picker.seatsSelectedCount.one":"{count} s\xE9lectionn\xE9e","picker.seatsSelectedCount.other":"{count} s\xE9lectionn\xE9es","picker.section":"Section","picker.secureMore":"S\xE9curiser plus","picker.secureMoreAndCheckout":"S\xE9curiser {count} de plus et payer","picker.securedCount":"{count} s\xE9curis\xE9es","picker.seeItIn3d":"Voir en 3D","picker.select":"S\xE9lectionner","picker.selectSeats":"S\xE9lectionner des places","picker.selectTable":"S\xE9lectionner la table","picker.selectWholeTable":"S\xE9lectionner la table enti\xE8re","picker.selected":"S\xE9lectionn\xE9e","picker.selectingEllipsis":"S\xE9lection en cours\u2026","picker.showAllSeats":"Afficher toutes les places","picker.showAllTicketTypes":"Afficher les {count} types de billets","picker.showFewer":"Afficher moins","picker.showLabelSeatsOnMap":"Afficher les places {label} sur le plan","picker.showTicketPanel":"Afficher le panneau des billets","picker.sold":"Vendu","picker.soldOutCopy":"Aucune place r\xE9serv\xE9e n\u2019est actuellement disponible pour cet \xE9v\xE9nement.","picker.soldOutEyebrow":"Cet \xE9v\xE9nement","picker.soldOutTitle":"Complet","picker.soldSeatExplanation":"Cette place a d\xE9j\xE0 \xE9t\xE9 r\xE9serv\xE9e.","picker.statusAvailable":"disponible","picker.statusOnHold":"en attente","picker.statusTaken2":"prise","picker.table":"Table","picker.tableCapacity":"Capacit\xE9 de la table","picker.tableUpdatedForGuests":"{label} mise \xE0 jour pour {count} invit\xE9s.","picker.temporarilyHeld":"Temporairement r\xE9serv\xE9","picker.ticketPrices":"Prix des billets","picker.ticketTypeSoldOut":"Ce type de billet est \xE9puis\xE9. Essayez un autre type de billet.","picker.tickets":"Billets","picker.ticketsCount.one":"{count} billet","picker.ticketsCount.other":"{count} billets","picker.toggleColorblindColors":"Activer/d\xE9sactiver les couleurs adapt\xE9es au daltonisme","picker.total":"Total","picker.trayHintTapOrBest":"Touchez une place sur le plan, ou laissez-nous choisir les meilleures disponibles pour vous.","picker.trayHintTapOrStanding":"Touchez une place sur le plan \u2014 ou prenez des billets debout ci-dessous.","picker.undo":"Annuler","picker.upcomingTicketOffer":"Offre de billets \xE0 venir","picker.updateTable":"Mettre \xE0 jour la table","picker.updatingEllipsis":"Mise \xE0 jour en cours\u2026","picker.venueView":"Vue du lieu","picker.viewFromHere":"Vue depuis ici","picker.viewFromThisSeat":"Vue depuis cette place","picker.wholeTypeWord":"{typeWord} entier","picker.willChooseClosestGroup":"Nous choisirons le groupe disponible le plus proche pour vous.","picker.willFindSeatsTogether":"Nous trouverons {count} places ensemble.","picker.yourSeats":"Vos places","picker.zoomIn":"Zoomer","picker.zoomOut":"D\xE9zoomer","picker.closeVenueNav":"Fermer","picker.levelsAndAreas":"Niveaux et zones"}});var El={};Pt(El,{ACCESSIBILITY_RING_COLOR:()=>In,ACCESSIBILITY_TYPES:()=>wn,CHART_STORAGE_KEY:()=>Ss,CURRENCY_CHOICES:()=>xa,DEFAULT_CURRENCY:()=>wc,LABEL_STYLE_MAX_SIZE:()=>Ts,LABEL_STYLE_MIN_SIZE:()=>Is,MAX_EVENT_INVENTORY:()=>ia,MAX_GA_CAPACITY:()=>_t,PickerController:()=>fn,PickerSelectionError:()=>ke,RENDERED_QUALITY_REPORT_VERSION:()=>br,SEAT_COMMERCIAL_MARKS:()=>Tn,SUPPORTED_LOCALES:()=>Rr,SURROUNDINGS_SHAPE_ROLES:()=>Ln,SeatmapRenderer:()=>di,TIER_HEIGHT_M:()=>Pi,UNGROUPED_ID:()=>Dt,accessibilityMeta:()=>ks,accessibilityRingColor:()=>Rt,allObjects:()=>ae,applyHidden:()=>Ni,chartBounds:()=>Ft,computeSections:()=>lt,createRenderer:()=>cn,currencyExponent:()=>Mr,currencySymbol:()=>Ia,expandBooth:()=>Bt,expandChart:()=>me,expandRow:()=>rt,expandRowSlots:()=>Zn,expandTable:()=>ze,expandTableSlots:()=>Fi,floorObjects:()=>ta,floorOverviewTranslations:()=>er,floorsOf:()=>st,formatDate:()=>Ma,formatMinor:()=>wa,formatMoney:()=>Yt,fromMinorUnits:()=>Pr,gaAreasOf:()=>at,gaInventorySegments:()=>Gi,gaUnitLabel:()=>ir,gaUnitLabels:()=>Ge,generateSeatPanorama:()=>vl,generateSeatThumb:()=>Tl,getLocale:()=>Ta,growJoinedGAInventory:()=>na,hiddenObjectIds:()=>or,inspectRenderedQualityEvidence:()=>fa,isGaUnitLabel:()=>ra,isSectionHidden:()=>rr,layerOf:()=>Cs,layoutFloorOverview:()=>zi,loadLocale:()=>Rl,objectCenter:()=>Jn,owningSectionForObject:()=>Ot,pointInPolygon:()=>Bi,pointInPolygonWithHoles:()=>Y,polygonLabelPoint:()=>ot,resolveLocale:()=>qi,rowInventoryCount:()=>Zs,rowSeatPositions:()=>Oi,seatCommercialMeta:()=>ws,sectionGeometry:()=>xe,setLocale:()=>pt,setMoneyLocale:()=>Yi,setStringOverrides:()=>La,stackFloors:()=>Di,t:()=>oe,tCount:()=>Ca,tableInventoryCount:()=>Qs,tableSeatCountsBySide:()=>Qn,translateObject:()=>_i,validGAInventorySegments:()=>nr});module.exports=ys(El);var Ss="seatmap.chart";var wn=[{key:"wheelchair",label:"Wheelchair space",short:"Wheelchair",icon:"\u267F"},{key:"companion",label:"Companion seat",short:"Companion",icon:"\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}"},{key:"semi-ambulatory",label:"Semi-ambulatory (limited mobility)",short:"Limited mobility",icon:"\u{1F9AF}"},{key:"hearing",label:"Assistive listening",short:"Hearing",icon:"\u{1F9BB}"},{key:"cart",label:"CART live-caption view",short:"CART captions",icon:"CC"},{key:"sign-language",label:"Sign-language view",short:"Sign language",icon:"\u{1F91F}"},{key:"plus-size",label:"Plus-size seat",short:"Plus-size",icon:"\u{1F4BA}"},{key:"lift-armrest",label:"Lift-up armrest",short:"Lift armrest",icon:"\u2195\uFE0F"}],vs=new Map(wn.map(t=>[t.key,t]));function ks(t){return vs.get(t)}var In={wheelchair:"#3b82f6",companion:"#8b5cf6","semi-ambulatory":"#0ea5e9",hearing:"#14b8a6",cart:"#7c3aed","sign-language":"#f59e0b","plus-size":"#ec4899","lift-armrest":"#22c55e"};function Rt(t){let e=t?.[0];return e&&In[e]||"#3b82f6"}var Tn=[{key:"obstructedView",label:"Obstructed view",short:"Obstructed",icon:"\u26D4"},{key:"restrictedView",label:"Restricted view",short:"Restricted",icon:"\u{1F441}"},{key:"premium",label:"Premium seat",short:"Premium",icon:"\u2605"}],xs=new Map(Tn.map(t=>[t.key,t]));function ws(t){return xs.get(t)}var Is=8,Ts=24,Ln=["reference-focal","bar","entrance","exit","restroom","screen","sound","concession","coat","wall","rail","suite","obstruction"],Ls=new Set(Ln);function Cs(t){switch(t.type){case"row":case"table":case"gaArea":case"booth":case"section":return"interactive";case"decorImage":return t.layer==="foreground"?"foreground":"background";case"shape":return t.role&&Ls.has(t.role)?"surroundings":"background";case"text":return"background";default:return"interactive"}}var Cn=t=>Math.max(1,t.fontSize*.6+(t.letterSpacing??0));function Ms(t,e){let i=t.text.split(/\r?\n/);if(!t.width)return Math.max(1,i.length);let n=Math.max(1,Math.floor(e/Cn(t))),r=0;for(let o of i){if(!o.length){r+=1;continue}let s=0;for(let a of o.split(/\s+/)){let l=a.length;s&&s+1+l<=n?s+=1+l:(r+=Math.max(1,Math.ceil(l/n)),s=l%n)}}return Math.max(1,r)}function Mn(t){let e=t.background?.padding??0,i=t.text.split(/\r?\n/),n=Math.max(1,...i.map(a=>a.length))*Cn(t),r=t.width??n+e*2,o=Math.max(1,r-e*2),s=Ms(t,o);return{width:r,height:s*t.fontSize*(t.lineHeight??1.2)+e*2,lineCount:s,padding:e}}function Pn(t,e){let i=1-e,n=i*i*i,r=3*i*i*e,o=3*i*e*e,s=e*e*e;return{x:n*t.start.x+r*t.control1.x+o*t.control2.x+s*t.end.x,y:n*t.start.y+r*t.control1.y+o*t.control2.y+s*t.end.y}}function Rn(t,e,i=192){if(!Number.isInteger(e)||e<1)throw new Error("Path point count must be a positive integer");if(e===1)return[Pn(t,.5)];let n=Array.from({length:i+1},(l,c)=>Pn(t,c/i)),r=new Float64Array(n.length);for(let l=1;l<n.length;l+=1){let c=n[l].x-n[l-1].x,d=n[l].y-n[l-1].y;r[l]=r[l-1]+Math.hypot(c,d)}let o=r[r.length-1];if(o<=1e-9)return Array.from({length:e},()=>({...t.start}));let s=[],a=1;for(let l=0;l<e;l+=1){let c=o*l/(e-1);for(;a<r.length-1&&r[a]<c;)a+=1;let d=r[a-1],h=r[a],u=h===d?0:(c-d)/(h-d);s.push({x:n[a-1].x+(n[a].x-n[a-1].x)*u,y:n[a-1].y+(n[a].y-n[a-1].y)*u})}return s}function Ps(t,e,i){let n=i.x-e.x,r=i.y-e.y,o=n*n+r*r,s=o?Math.max(0,Math.min(1,((t.x-e.x)*n+(t.y-e.y)*r)/o)):0;return Math.hypot(t.x-(e.x+s*n),t.y-(e.y+s*r))}function wi(t,e){let i=1/0;for(let n of e)if(!(n.length<2))for(let r=0,o=n.length-1;r<n.length;o=r++){let s=Ps(t,n[o],n[r]);s<i&&(i=s)}return i}function En(t,e){let i=!1;for(let n=0,r=e.length-1;n<e.length;r=n++){let o=e[n].x,s=e[n].y,a=e[r].x,l=e[r].y;s>t.y!=l>t.y&&t.x<(a-o)*(t.y-s)/(l-s)+o&&(i=!i)}return i}function Rs(t,e,i){let n=En(t,e)&&!i.some(o=>En(t,o)),r=wi(t,[e,...i]);return n?r:-r}function Oe(t,e,i,n,r){let o=Rs({x:t,y:e},n,r);return{x:t,y:e,h:i,d:o,max:o+i*Math.SQRT2}}var xi=class{constructor(){this.items=[]}get size(){return this.items.length}push(e){let i=this.items;i.push(e);let n=i.length-1;for(;n>0;){let r=n-1>>1;if(i[r].max>=i[n].max)break;[i[r],i[n]]=[i[n],i[r]],n=r}}pop(){let e=this.items,i=e[0],n=e.pop();if(e.length&&n){e[0]=n;let r=0;for(;;){let o=r*2+1,s=o+1,a=r;if(o<e.length&&e[o].max>e[a].max&&(a=o),s<e.length&&e[s].max>e[a].max&&(a=s),a===r)break;[e[a],e[r]]=[e[r],e[a]],r=a}}return i}};function An(t){if(t.length<3)return 0;let e=0;for(let i=0,n=t.length-1;i<t.length;n=i++)e+=(t[n].x+t[i].x)*(t[n].y-t[i].y);return Math.abs(e)/2}function Bn(t,e){return Math.max(0,An(t)-(e??[]).reduce((i,n)=>i+An(n),0))}function On(t,e){let i=e??[];if(!t.length)return{point:{x:0,y:0},radius:0};if(t.length<3){let f=t.reduce((g,v)=>g+v.x,0)/t.length,p=t.reduce((g,v)=>g+v.y,0)/t.length;return{point:{x:f,y:p},radius:0}}let n=1/0,r=1/0,o=-1/0,s=-1/0;for(let f of t)f.x<n&&(n=f.x),f.y<r&&(r=f.y),f.x>o&&(o=f.x),f.y>s&&(s=f.y);let a=o-n,l=s-r,c=Math.min(a,l);if(!(c>0))return{point:{x:(n+o)/2,y:(r+s)/2},radius:0};let d=Math.max(a,l)/150,h=new xi,u=c/2;for(let f=n;f<o;f+=c)for(let p=r;p<s;p+=c)h.push(Oe(f+u,p+u,u,t,i));let m=Oe(n+a/2,r+l/2,0,t,i),b=0;for(;h.size;){let f=h.pop();if(!f)break;f.d>m.d&&(m=f),!(f.max-m.d<=d)&&(b>=4e3||(b+=1,u=f.h/2,h.push(Oe(f.x-u,f.y-u,u,t,i)),h.push(Oe(f.x+u,f.y-u,u,t,i)),h.push(Oe(f.x-u,f.y+u,u,t,i)),h.push(Oe(f.x+u,f.y+u,u,t,i))))}return{point:{x:m.x,y:m.y},radius:Math.max(0,m.d)}}function V(t,e,i){return Math.max(e,Math.min(i,t))}function fe(t,e,i){return t<e?e:t>i?i:t}var Hl=Math.PI*2;function Fn(t,e,i){return Es(t,r=>({x:r.x+e,y:r.y+i}))}function Es(t,e,i=1,n=!1){return{...t,start:e(t.start),segments:t.segments.map(r=>r.kind==="line"?{...r,end:e(r.end)}:r.kind==="arc"?{...r,center:e(r.center),radius:r.radius*Math.abs(i),clockwise:n?!r.clockwise:r.clockwise,end:e(r.end)}:{...r,control1:e(r.control1),control2:e(r.control2),end:e(r.end)})}}var Vl=4/3;function _n(t){let e=new Map,i=new Map;for(let n of t){if(n.type!=="row"||!n.segmentedRow)continue;let r=i.get(n.segmentedRow.groupId)??[];r.push(n),i.set(n.segmentedRow.groupId,r)}for(let[n,r]of i){let o=r.slice().sort((u,m)=>u.segmentedRow.componentIndex-m.segmentedRow.componentIndex),s=o[0]?.segmentedRow?.componentCount??0,a=o[0]?.segmentedRow;if(!a||!(s>=2&&o.length===s&&a?.boundaryBefore==="start"&&o.every((u,m)=>u.segmentedRow?.kind==="segmented-row-v1"&&u.segmentedRow.groupId===n&&u.segmentedRow.componentCount===s&&u.segmentedRow.componentIndex===m&&u.segmentedRow.repeatLabelOnComponents===a.repeatLabelOnComponents&&(m===0?u.segmentedRow.boundaryBefore==="start":u.segmentedRow.boundaryBefore!=="start")&&u.segmentedRow.displayLabel===a.displayLabel)))continue;let c=o.reduce((u,m)=>u+m.seatCount,0),d=0,h=0;for(let u of o)u.segmentedRow.boundaryBefore==="break"&&(d+=1),e.set(u.id,{groupId:n,adjacencyOffset:d,displayOffset:h,displayLabel:a.displayLabel,totalSeats:c,canonical:o[0],viewFromSeatUrl:a.viewFromSeatUrl,viewFromSeatMeta:a.viewFromSeatMeta,confidenceEvidence:a.confidenceEvidence}),d+=u.seatCount,h+=u.seatCount}return e}var As="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var Bs="abcdefghijklmnopqrstuvwxyz";function Os(t,e){let i=e.length,n=t+1,r="";for(;n>0;){n-=1;let o=n%i;r=e[o]+r,n=Math.floor(n/i)}return r}function Ii(t,e=!1){let i=e?Bs:As;return Os(Math.max(0,Math.floor(t)-1),i)}var Fs=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];function Dn(t){if(!Number.isFinite(t)||t<=0)return String(t);let e=Math.floor(t),i="";for(let[n,r]of Fs)for(;e>=n;)i+=r,e-=n;return i}function _s(t){let e=new Array(t);return Array.from({length:t},(i,n)=>n).sort((i,n)=>Math.abs(2*i-(t-1))-Math.abs(2*n-(t-1))||i-n).forEach((i,n)=>e[i]=n),e}function Ti(t,e){let i=t.seatLabelStart??1,n=t.seatNumbering?.direction??"ltr",r=t.seatNumbering?.step??1,o=t.seatNumbering?.scheme??"decimal",s=t.seatNumbering?.prefix??"",a=t.seatNumbering?.endAt,l=t.seatCount;if(o==="updown"||o==="updown-descending"){let m=Math.ceil(l/2),b=o==="updown"?e<m?i+2*e:i-1+2*(l-e):e<m?i+2*(m-1-e):i+1+2*(e-m);return`${s}${b}`}let c=o==="odd"||o==="even"?2:r,d=a!=null&&Number.isFinite(a)?a-(l-1)*c:i,h=n==="center"?_s(l)[e]:n==="rtl"?l-1-e:e,u;switch(o){case"odd":{let m=d%2===1?d:d+1;u=String(m+h*2);break}case"even":{let m=d%2===0?d:d+1;u=String(m+h*2);break}case"roman":u=Dn(d+h*r);break;case"letters-upper":u=Ii(d+h*r,!1);break;case"letters-lower":u=Ii(d+h*r,!0);break;default:u=String(d+h*r);break}return`${s}${u}`}function Ds(t){return{...t.canonical,seatCount:t.totalSeats,label:t.displayLabel,displayLabel:t.displayLabel}}function zn(t,e,i){return i?.label??`${t.label}-${Ti(t,e)}`}function Li(t,e,i,n){if(n?.displayLabel)return n.displayLabel;if(!i)return`${t.displayLabel??t.label}-${Ti(t,e)}`;let r=Ds(i),o=i.displayOffset+e;return`${i.displayLabel}-${Ti(r,o)}`}var Fe=.02291666666666667,_e=1/Fe,zs=58,Pi=zs*Fe,Gn=0,Hn=3,Nn=0,Ci=120,Gs=0,Ns=45,Hs=7,j=1.2;function Mi(t,e,i,n){return Number.isFinite(t)?Math.max(e,Math.min(i,t)):n}function Vn(t){return Number.isFinite(t)?Math.max(Gn,Math.min(Hn,Math.round(t))):Gn}function Vs(t){return!Number.isFinite(t)||!Number.isInteger(t)||t<0?0:t<=Hs?t:Hn}function xe(t,e={}){let i=Mi(e.floorBaseHeightM,Nn,Ci,0),n=Math.min(Ci,i+Vs(t.elevation)*Pi),r=t.height===void 0?n:Mi(t.height,Nn,Ci,n),o=Mi(t.rake,Gs,Ns,0);return{height:r,rake:o}}function Wn(t){let e=t.length;return e<=3?[...t]:[t[Math.floor(e*.25)],t[Math.floor(e*.5)],t[Math.floor(e*.75)]]}function jn(t,e,i){if(!t.length)return 1/0;if(t.length===1)return Math.hypot(e-t[0].x,i-t[0].y);let n=1/0;for(let r=0;r+1<t.length;r++){let o=t[r],s=t[r+1],a=s.x-o.x,l=s.y-o.y,c=a*a+l*l,d=c>1e-12?((e-o.x)*a+(i-o.y)*l)/c:0;d<0?d=0:d>1&&(d=1);let h=Math.hypot(e-(o.x+d*a),i-(o.y+d*l));h<n&&(n=h)}return n}function Ws(t){let e=0,i=0;for(let o of t)e+=o.x,i+=o.y;let n=t.length||1;e/=n,i/=n;let r=0;for(let o of t){let s=Math.hypot(o.x-e,o.y-i);s>r&&(r=s)}return{cx:e,cy:i,r}}function Kn(t,e){return Math.hypot(t.cx-e.cx,t.cy-e.cy)-t.r-e.r}function Ri(t,e){let i=1/0;for(let n of Wn(t)){let r=jn(e,n.x,n.y);r<i&&(i=r)}for(let n of Wn(e)){let r=jn(t,n.x,n.y);r<i&&(i=r)}return i}function js(t,e){if(t.length<3)return{pts:t,seatIndices:e};let i=0,n=0;for(let d of t)i+=d.x,n+=d.y;i/=t.length,n/=t.length;let r=-1,o=t[0];for(let d of t){let h=Math.hypot(d.x-i,d.y-n);h>r&&(r=h,o=d)}let s=o.x-i,a=o.y-n,l=Math.hypot(s,a);l>1e-9?(s/=l,a/=l):(s=1,a=0);let c=t.map((d,h)=>({p:d,i:h,t:(d.x-i)*s+(d.y-n)*a})).sort((d,h)=>d.t-h.t);return{pts:c.map(d=>d.p),seatIndices:c.map(d=>e[d.i])}}function Ks(t){let e=t.length;if(e<3)return null;let i=0,n=0;for(let v of t)i+=v.x,n+=v.y;i/=e,n/=e;let r=0,o=0,s=0,a=0,l=0,c=0,d=0;for(let v of t){let y=v.x-i,x=v.y-n;r+=y*y,s+=x*x,o+=y*x,a+=y*y*y,l+=x*x*x,c+=y*x*x,d+=x*y*y}let h=r*s-o*o;if(Math.abs(h)<1e-9)return null;let u=(a+c)/2,m=(l+d)/2,b=(u*s-m*o)/h,f=(m*r-u*o)/h,p=b+i,g=f+n;return!Number.isFinite(p)||!Number.isFinite(g)?null:{cx:p,cy:g}}var Us=.15;function Xs(t){if(t.length<2)return null;let e=t.map(v=>{let y=0,x=0;for(let I of v.pts)y+=I.x,x+=I.y;return{x:y/v.pts.length,y:x/v.pts.length}}),i=0,n=0;for(let v of e)i+=v.x,n+=v.y;i/=e.length,n/=e.length;let r=0,o=0,s=0;for(let v of e){let y=v.x-i,x=v.y-n;r+=y*y,o+=y*x,s+=x*x}let a=r+s,l=r*s-o*o,c=a/2+Math.sqrt(Math.max(0,a*a/4-l)),d,h;Math.abs(o)>1e-12?(d=c-s,h=o):r>=s?(d=1,h=0):(d=0,h=1);let u=Math.hypot(d,h);if(!(u>1e-12))return null;d/=u,h/=u;let m=1/0,b=-1/0,f=[];for(let v of t){let y=1/0,x=-1/0;for(let I of v.pts){let k=I.x*d+I.y*h;k<y&&(y=k),k>x&&(x=k),k<m&&(m=k),k>b&&(b=k)}f.push(x-y)}let p=b-m;return p>1e-9?(f.sort((v,y)=>v-y),f[Math.min(f.length-1,Math.floor(f.length*.9))]/p<=Ys?{x:d,y:h}:null):null}var Ys=.35;function Un(t,e,i,n){let r=new Map;for(let p of i){let g=e[p],v=g.rowId||`__seat-${p}`,y=r.get(v);y||(y={pts:[],idx:[]},r.set(v,y)),y.pts.push({x:g.x,y:g.y}),y.idx.push(p)}if(!r.size)return{sectionId:t,rows:[],blockCount:0};let o=[];for(let[p,g]of r){let v=js(g.pts,g.idx),y=0;for(let x of v.pts)y+=Math.hypot(x.x-n.x,x.y-n.y);o.push({id:p,pts:v.pts,seatIndices:v.seatIndices,blockId:-1,ordinal:0,blockDepth:0,focalDistance:y/v.pts.length})}let s=o.map(p=>Ws(p.pts)),a=[];for(let p=0;p<o.length;p++){let g=1/0;for(let v=0;v<o.length;v++){if(p===v||Kn(s[p],s[v])>=g)continue;let y=Ri(o[p].pts,o[v].pts);y<g&&(g=y)}Number.isFinite(g)&&a.push(g)}a.sort((p,g)=>p-g);let l=a.length?a[Math.floor(a.length/2)]:1,c=Math.max(l*1.8,1e-6),d=o.map(()=>[]);for(let p=0;p<o.length;p++)for(let g=p+1;g<o.length;g++)Kn(s[p],s[g])>c||Ri(o[p].pts,o[g].pts)<=c&&(d[p].push(g),d[g].push(p));let h=0;for(let p=0;p<o.length;p++){if(o[p].blockId!==-1)continue;let g=h++,v=[p];for(o[p].blockId=g;v.length;){let y=v.pop();for(let x of d[y])o[x].blockId===-1&&(o[x].blockId=g,v.push(x))}}let u=new Map;for(let p of o){let g=u.get(p.blockId)??[];g.push(p),u.set(p.blockId,g)}let m=[];for(let p of o){if(p.pts.length<4)continue;let g=Ks(p.pts);g&&(!Number.isFinite(g.cx)||!Number.isFinite(g.cy)||m.push({x:g.cx,y:g.cy}))}let b=m.length>=2?(()=>{let p=m.map(y=>y.x).sort((y,x)=>y-x),g=m.map(y=>y.y).sort((y,x)=>y-x),v=Math.floor(m.length/2);return{cx:p[v],cy:g[v]}})():null;if(b){let p=k=>Math.hypot(k.x-b.cx,k.y-b.cy),g=1/0,v=-1/0,y=[];for(let k of o){let w=1/0,M=-1/0;for(let C of k.pts){let L=p(C);L<w&&(w=L),L>M&&(M=L)}y.push(M-w),w<g&&(g=w),M>v&&(v=M)}let x=v-g;y.sort((k,w)=>k-w);let I=y[Math.min(y.length-1,Math.floor(y.length*.9))];if(x>1e-9&&I/x<=Us){let k=o.map(S=>{let T=0;for(let E of S.pts)T+=p(E);return{row:S,radius:T/S.pts.length}}),w=1/0;for(let S of k)S.radius<w&&(w=S.radius);k.sort((S,T)=>S.radius-T.radius);let M=-1,C=-1/0,L=x/Math.max(1,k.length)*.5,R=[];for(let S of k)S.radius-C>L&&(M++,C=S.radius),S.row.ordinal=M,S.row.blockDepth=S.radius-w,R.push(S.row);return{sectionId:t,rows:R,blockCount:h}}}let f=[];for(let[,p]of u){let g=Xs(p);if(g){let v=x=>{let I=0;for(let k of x.pts)I+=k.x*g.x+k.y*g.y;return I/x.pts.length};p.sort((x,I)=>v(x)-v(I));let y=0;for(let x=0;x<p.length;x++)x>0&&(y+=Ri(p[x-1].pts,p[x].pts)),p[x].ordinal=x,p[x].blockDepth=y,f.push(p[x])}else{let v=1/0;for(let y of p)y.focalDistance<v&&(v=y.focalDistance);p.sort((y,x)=>y.focalDistance-x.focalDistance);for(let y=0;y<p.length;y++)p[y].ordinal=y,p[y].blockDepth=Math.max(0,p[y].focalDistance-v),f.push(p[y])}}return{sectionId:t,rows:f,blockCount:h}}function $n(t){return t?t.accessibility&&t.accessibility.length?t.wheelchairSpaceType&&!t.accessibility.includes("wheelchair")?["wheelchair",...t.accessibility]:t.accessibility:t.wheelchairSpaceType?["wheelchair"]:t.accessible?["wheelchair"]:[]:[]}var At=Math.PI/180,qs=9,De=16;function Ai(t,e,i,n){let r=i*At,o=Math.cos(r),s=Math.sin(r);return{x:n.x+t*o-e*s,y:n.y+t*s+e*o}}function Oi(t){let{seatCount:e,seatSpacing:i,curve:n,rotation:r,origin:o}=t,s=[];if(t.path)return Rn(t.path,e);if(e<=1)return e===1&&s.push({x:o.x,y:o.y}),s;if(n===0){for(let c=0;c<e;c++)s.push(Ai(c*i,0,r,o));return s}let a=n/(e-1)*At,l=i/(2*Math.sin(Math.abs(a)/2));for(let c=0;c<e;c++){let d=c*a,h=l*Math.sin(d),u=-l+l*Math.cos(d);s.push(Ai(h,u,r,o))}return s}function $s(t){let e=new Map;if(t.overrides)for(let i of t.overrides)e.set(i.index,i);return e}function Zs(t){let e=new Set((t.overrides??[]).filter(i=>i.skip&&Number.isInteger(i.index)&&i.index>=0&&i.index<t.seatCount).map(i=>i.index));return Math.max(0,t.seatCount-e.size)}function Zn(t,e){let i=$s(t);return Oi(t).map((n,r)=>{let o=i.get(r),s=$n(o),a=zn(t,r,o),l={...t.commercial,...o?.commercial};return{index:r,x:n.x+(o?.dx??0),y:n.y+(o?.dy??0),label:a,displayLabel:Li(t,r,e,o),categoryKey:o?.categoryKey??t.categoryKey,skipped:!!o?.skip,accessible:s.length>0,accessibility:s,wheelchairSpaceType:o?.wheelchairSpaceType,commercial:Object.values(l).some(c=>c!==void 0&&c!==!1&&c!=="")?l:void 0,viewUrl:o?.viewFromSeatUrl??t.viewFromSeatUrl,viewMeta:o?.viewFromSeatUrl?o.viewFromSeatMeta:t.viewFromSeatMeta,labelStyle:o?.labelStyle}})}function rt(t){let e=[];for(let i of Zn(t))i.skipped||e.push({id:`${t.id}:${i.index}`,label:i.label,displayLabel:i.displayLabel===i.label?void 0:i.displayLabel,x:i.x,y:i.y,rowId:t.id,categoryKey:i.categoryKey,accessible:i.accessible||void 0,accessibility:i.accessibility.length?i.accessibility:void 0,wheelchairSpaceType:i.wheelchairSpaceType,commercial:i.commercial,viewUrl:i.viewUrl,viewMeta:i.viewMeta,labelStyle:i.labelStyle});return e}function Qn(t){if(t.seatCountsBySide)return{...t.seatCountsBySide};let e=t.sides&&t.sides.length?t.sides:["top","bottom"],i=["top","bottom","left","right"].filter(o=>e.includes(o)),n={top:0,bottom:0,left:0,right:0};if(!i.length)return n;let r=Math.max(0,Math.round(t.seatCount));for(let o=0;o<r;o++)n[i[o%i.length]]+=1;return n}function Fi(t){let e=[],i=Math.max(0,Math.round(t.seatCount));if(i===0)return e;let n=new Map((t.overrides??[]).map(d=>[d.index,d])),r=(d,h,u,m)=>{let b=n.get(d),f=$n(b),p=b?.label??`${t.label}-${d+1}`,g=t.displayLabel??t.label;return{index:d,label:p,displayLabel:b?.displayLabel??`${g}-${d+1}`,x:h+(b?.dx??0),y:u+(b?.dy??0),categoryKey:b?.categoryKey??t.categoryKey,skipped:!!b?.skip,accessible:f.length>0,accessibility:f,wheelchairSpaceType:b?.wheelchairSpaceType,commercial:b?.commercial,viewUrl:b?.viewFromSeatUrl,viewMeta:b?.viewFromSeatUrl?b.viewFromSeatMeta:void 0,labelStyle:b?.labelStyle,...m?{side:m}:{}}};if(t.shape==="round"){let d=(t.radius??40)+De,h=t.rotation*At,u=Math.max(0,Math.min(360,t.seatArc??360));if(u>=360||i===1){for(let p=0;p<i;p++){let g=h+p/i*2*Math.PI;e.push(r(p,t.center.x+d*Math.cos(g),t.center.y+d*Math.sin(g)))}return e}let m=u*At,b=(2*Math.PI-m)/2,f=h+b;for(let p=0;p<i;p++){let g=f+p/(i-1)*m;e.push(r(p,t.center.x+d*Math.cos(g),t.center.y+d*Math.sin(g)))}return e}let o=t.width??80,s=t.height??50,a=Qn(t),l=["top","bottom","left","right"],c=0;for(let d of l){let h=a[d];for(let u=0;u<h;u++){let m,b;d==="top"?(m=-o/2+(u+.5)*o/h,b=-s/2-De):d==="bottom"?(m=-o/2+(u+.5)*o/h,b=s/2+De):d==="left"?(m=-o/2-De,b=-s/2+(u+.5)*s/h):(m=o/2+De,b=-s/2+(u+.5)*s/h);let f=Ai(m,b,t.rotation,t.center);e.push(r(c++,f.x,f.y,d))}}return e}function Qs(t){return t.bookAsWhole||t.variableOccupancy?Math.max(0,Math.round(t.seatCount)):Fi(t).filter(e=>!e.skipped).length}function ze(t){return Fi(t).filter(e=>!e.skipped).map(e=>({id:`${t.id}:${e.index}`,label:e.label,...e.displayLabel!==e.label?{displayLabel:e.displayLabel}:{},x:e.x,y:e.y,rowId:t.id,categoryKey:e.categoryKey,...e.accessible?{accessible:!0}:{},...e.accessibility.length?{accessibility:e.accessibility}:{},...e.wheelchairSpaceType?{wheelchairSpaceType:e.wheelchairSpaceType}:{},...e.commercial?{commercial:e.commercial}:{},...e.viewUrl?{viewUrl:e.viewUrl}:{},...e.viewUrl&&e.viewMeta?{viewMeta:e.viewMeta}:{},...e.labelStyle?{labelStyle:e.labelStyle}:{}}))}function Bt(t){return[{id:`${t.id}:0`,label:t.label,...t.displayLabel&&t.displayLabel!==t.label?{displayLabel:t.displayLabel}:{},x:t.center.x,y:t.center.y,rowId:t.id,categoryKey:t.categoryKey,kind:"booth"}]}function Bi(t,e){let i=!1;for(let n=0,r=e.length-1;n<e.length;r=n++){let o=e[n].x,s=e[n].y,a=e[r].x,l=e[r].y;s>t.y!=l>t.y&&t.x<(a-o)*(t.y-s)/(l-s)+o&&(i=!i)}return i}function Js(t,e){return e.some((i,n)=>{let r=e[(n+1)%e.length],o=(t.y-i.y)*(r.x-i.x)-(t.x-i.x)*(r.y-i.y);if(Math.abs(o)>1e-7)return!1;let s=(t.x-i.x)*(r.x-i.x)+(t.y-i.y)*(r.y-i.y),a=(r.x-i.x)**2+(r.y-i.y)**2;return s>=-1e-7&&s<=a+1e-7})}function Y(t,e,i){return Bi(t,e)&&!(i??[]).some(n=>Bi(t,n)||Js(t,n))}function ot(t,e){return On(t,e).point}function Ei(t){if(!t.length)return{x:0,y:0};let e=0,i=0;for(let n of t)e+=n.x,i+=n.y;return{x:e/t.length,y:i/t.length}}function Jn(t){switch(t.type){case"row":{let e=rt(t);if(!e.length)return{x:t.origin.x,y:t.origin.y};let i=0,n=0;for(let r of e)i+=r.x,n+=r.y;return{x:i/e.length,y:n/e.length}}case"table":case"booth":return{x:t.center.x,y:t.center.y};case"gaArea":return Ei(t.points);case"section":return Ei(t.outline);case"text":return{x:t.position.x,y:t.position.y};case"shape":return t.points&&t.points.length?Ei(t.points):t.x!=null&&t.y!=null&&t.width!=null&&t.height!=null?{x:t.x+t.width/2,y:t.y+t.height/2}:{x:t.x??0,y:t.y??0};case"decorImage":return{x:t.x+t.width/2,y:t.y+t.height/2}}}function Xn(t,e){return t.length===e.length&&t.every((i,n)=>i.x===e[n].x&&i.y===e[n].y)}function ea(t,e){if(t.type!=="gaArea"||!Xn(t.points,e.outline))return!1;let i=t.holes??[],n=e.holes??[];return i.length===n.length&&i.every((r,o)=>Xn(r,n[o]))}function Ot(t,e){let i=t.filter(s=>s.type==="section"),n="referenceInventorySource"in e?e.referenceInventorySource?.logicalSectionId:void 0,r=Jn(e);return(n?i.find(s=>(s.logicalSectionId??s.id)===n&&(ea(e,s)||Y(r,s.outline,s.holes))):void 0)??i.find(s=>Y(r,s.outline,s.holes))}function st(t){return t.floors&&t.floors.length?t.floors:[{id:"floor-0",name:"Main",objects:t.objects,focalPoint:t.focalPoint,referenceImage:t.referenceImage,backgroundImage:t.backgroundImage}]}function ta(t,e){let i=st(t);return(e?i.find(n=>n.id===e):i[0])?.objects??[]}function ae(t){return t.floors&&t.floors.length?t.floors.flatMap(e=>e.objects):t.objects}function _i(t,e,i){let n=o=>({x:o.x+e,y:o.y+i}),r=o=>o.map(n);switch(t.type){case"row":return{...t,origin:n(t.origin)};case"table":case"booth":return{...t,center:n(t.center)};case"gaArea":return{...t,points:r(t.points),...t.holes?{holes:t.holes.map(r)}:{}};case"section":return{...t,outline:r(t.outline),...t.outlinePath?{outlinePath:Fn(t.outlinePath,e,i)}:{},...t.holes?{holes:t.holes.map(r)}:{}};case"text":return{...t,position:n(t.position)};case"shape":return{...t,...t.points?{points:r(t.points)}:{},...t.x!=null?{x:t.x+e}:{},...t.y!=null?{y:t.y+i}:{}};case"decorImage":return{...t,x:t.x+e,y:t.y+i}}}function Di(t,e=900){if(!t.floors||t.floors.length<2)return t;let i=[];return t.floors.forEach((n,r)=>{let o=-r*e;for(let s of n.objects)i.push(o===0?s:_i(s,0,o))}),{...t,objects:i,floors:void 0}}function zi(t){let e=t.floors;if(!e||e.length<2)return t;let i=er(t),n=[];return e.forEach((r,o)=>{let{x:s,y:a}=i[o];for(let l of r.objects)n.push(_i(l,s,a))}),{...t,objects:n,floors:void 0,referenceImage:void 0,backgroundImage:void 0}}function er(t){let e=t.floors;if(!e?.length)return[{x:0,y:0}];if(e.length<2)return e.map(()=>({x:0,y:0}));let i=e.map(u=>Ft({...t,objects:u.objects,floors:void 0,focalPoint:u.focalPoint,referenceImage:void 0,backgroundImage:void 0})),n=Math.max(1,...i.map(u=>Math.max(u.width,u.height))),r=Math.max(64,Math.min(240,n*.08)),o=16/10,s=null;for(let u=1;u<=e.length;u+=1){let m=Math.ceil(e.length/u),b=new Array(u).fill(0),f=new Array(m).fill(0);i.forEach((x,I)=>{let k=I%u,w=Math.floor(I/u);b[k]=Math.max(b[k],x.width),f[w]=Math.max(f[w],x.height)});let p=b.reduce((x,I)=>x+I,0)+r*(u-1),g=f.reduce((x,I)=>x+I,0)+r*(m-1),v=u*m-e.length,y=Math.abs(Math.log(p/Math.max(1,g)/o))+v*.04;(!s||y<s.score)&&(s={columns:u,columnWidths:b,rowHeights:f,score:y})}let{columns:a,columnWidths:l,rowHeights:c}=s,d=[],h=[];return l.reduce((u,m,b)=>(d[b]=u,u+m+r),0),c.reduce((u,m,b)=>(h[b]=u,u+m+r),0),e.map((u,m)=>{let b=i[m],f=m%a,p=Math.floor(m/a),g=d[f]+(l[f]-b.width)/2,v=h[p]+(c[p]-b.height)/2;return{x:g-b.x,y:v-b.y}})}function Yn(t,e,i,n,r,o){let s=[],a=_n(t),l=h=>!h?.eventConfigurationId||h.eventConfigurationId===n,c=h=>!!h&&(!h.eventConfigurationId||h.eventConfigurationId===n),d=(h,u)=>c(h)?{...h,coverage:u}:void 0;for(let h of t){let u=[];if(h.type==="row"?u=rt(h):h.type==="table"?u=ze(h):h.type==="booth"&&(u=Bt(h)),!u.length)continue;for(let g of u)g.viewUrl&&!l(g.viewMeta)&&(g.viewUrl=void 0,g.viewMeta=void 0);if(h.type==="row"){let g=a.get(h.id);if(g){let v=new Map((h.overrides??[]).map(y=>[y.index,y]));for(let y of u){let x=Number(y.id.slice(y.id.lastIndexOf(":")+1));if(!Number.isInteger(x))continue;y.logicalRowId=g.groupId,y.logicalSeatIndex=g.adjacencyOffset+x,v.get(x)?.displayLabel||(y.displayLabel=Li(h,x,g)),!y.viewUrl&&g.viewFromSeatUrl&&l(g.viewFromSeatMeta)&&(y.viewUrl=g.viewFromSeatUrl,y.viewMeta=g.viewFromSeatMeta);let I=v.get(x)?.confidenceEvidence;y.confidenceEvidence=d(I,"exact-seat")??d(h.confidenceEvidence,"row-representative")??d(g.confidenceEvidence,"row-representative")}}}let m=Ot(t,h),b=m?.viewFromSeatUrl,p=(m?.zone?e?.find(g=>g.id===m.zone):void 0)?.focalPoint??i;for(let g of u){if(!g.confidenceEvidence){let v=Number(g.id.slice(g.id.lastIndexOf(":")+1)),y=(h.type==="row"||h.type==="table")&&Number.isInteger(v)?h.overrides?.find(x=>x.index===v)?.confidenceEvidence:void 0;g.confidenceEvidence=d(y,"exact-seat")??(h.type==="row"?d(h.confidenceEvidence,"row-representative"):void 0)}g.confidenceEvidence??=d(m?.confidenceEvidence,"section-representative")??(o?d(o.evidence,o.coverage):void 0),!g.viewUrl&&b&&l(m?.viewFromSeatMeta)&&(g.viewUrl=b,g.viewMeta=m?.viewFromSeatMeta),!g.viewUrl&&r&&l(r.meta)&&(g.viewUrl=r.url,g.viewMeta=r.meta),m&&(g.sectionId=m.logicalSectionId??m.id),m?.zone&&(g.zoneId=m.zone),p&&(g.focalPoint={...p})}s.push(...u)}return s}function me(t,e={}){if(t.floors?.length){let n=[];for(let r of t.floors){let o=r.focalPoint??t.focalPoint,s=r.viewFromSeatUrl?{url:r.viewFromSeatUrl,meta:r.viewFromSeatMeta}:t.viewFromSeatUrl?{url:t.viewFromSeatUrl,meta:t.viewFromSeatMeta}:void 0,a=r.confidenceEvidence?{evidence:r.confidenceEvidence,coverage:"floor-representative"}:t.confidenceEvidence?{evidence:t.confidenceEvidence,coverage:"venue-representative"}:void 0,l=Yn(r.objects,t.zones,o,t.eventConfigurationId,s,a);e.resolveEyeHeights!==!1&&qn(r.objects,r.focalPoint??t.focalPoint,r.baseHeightM??0,l),n.push(...l)}return n}let i=Yn(t.objects,t.zones,t.focalPoint,t.eventConfigurationId,t.viewFromSeatUrl?{url:t.viewFromSeatUrl,meta:t.viewFromSeatMeta}:void 0,t.confidenceEvidence?{evidence:t.confidenceEvidence,coverage:"venue-representative"}:void 0);return e.resolveEyeHeights!==!1&&qn(t.objects,t.focalPoint,e.floorBaseHeightM??0,i),i}function qn(t,e,i,n){let r=t.filter(d=>d.type==="section"),o=i>0||r.some(d=>d.height!==void 0||d.rake!==void 0||(d.elevation??0)>0);if(!r.length||!o||!e){for(let d of n)d.eyeHeightM=i+j;return}let s=new Array(n.length),a=new Map,l=new Map;for(let d=0;d<n.length;d++){let h=n[d],u=r.find(b=>Y({x:h.x,y:h.y},b.outline,b.holes))??null;if(s[d]=u,!u)continue;a.has(u.id)||a.set(u.id,xe(u,{floorBaseHeightM:i}));let m=l.get(u.id);m?m.push(d):l.set(u.id,[d])}let c=new Array(n.length).fill(void 0);for(let[d,h]of l){let u=a.get(d);if(!u)continue;let m=u.rake>0?Math.tan(u.rake*Math.PI/180):0,b=Un(d,n,h,e);for(let f of b.rows){let p=f.blockDepth*Fe*m,g=u.height+p;for(let v of f.seatIndices)c[v]=g}}for(let d=0;d<n.length;d++){let h=n[d],u=s[d];if(!u){h.eyeHeightM=i+j;continue}let m=a.get(u.id);h.eyeHeightM=(c[d]??m.height)+j}}var Et=40;function Ft(t){let e=1/0,i=1/0,n=-1/0,r=-1/0,o=(s,a)=>{s<e&&(e=s),a<i&&(i=a),s>n&&(n=s),a>r&&(r=a)};for(let s of ae(t))if(s.type==="row"){let a=new Map((s.overrides??[]).map(l=>[l.index,l]));Oi(s).forEach((l,c)=>{let d=a.get(c);d?.skip||o(l.x+(d?.dx??0),l.y+(d?.dy??0))})}else if(s.type==="gaArea")for(let a of s.points)o(a.x,a.y);else if(s.type==="section")for(let a of s.outline)o(a.x,a.y);else if(s.type==="decorImage")o(s.x,s.y),o(s.x+s.width,s.y+s.height);else if(s.type==="shape")if(s.points&&s.points.length)for(let a of s.points)o(a.x,a.y);else s.x!=null&&s.y!=null&&s.width!=null&&s.height!=null&&(o(s.x,s.y),o(s.x+s.width,s.y+s.height));else if(s.type==="table"){let a=De+qs,l=s.shape==="round"?(s.radius??40)+a:Math.max((s.width??80)/2,(s.height??50)/2)+a;o(s.center.x-l,s.center.y-l),o(s.center.x+l,s.center.y+l)}else if(s.type==="booth"){let a=Math.max(s.width,s.height)/2;o(s.center.x-a,s.center.y-a),o(s.center.x+a,s.center.y+a)}else if(s.type==="text"){let a=Mn(s);o(s.position.x,s.position.y),o(s.position.x+a.width,s.position.y+a.height)}for(let s of[t.referenceImage,t.backgroundImage]){if(!s)continue;let{center:a,width:l}=s,c=l*3/4;o(a.x-l/2,a.y-c/2),o(a.x+l/2,a.y+c/2)}if(!isFinite(e)){let s=t.focalPoint??{x:0,y:0};return{x:s.x-200,y:s.y-200,width:400,height:400}}return{x:e-Et,y:i-Et,width:n-e+Et*2,height:r-i+Et*2}}var tr="__sl_ga__",_t=1e5,ia=1e5;function ir(t,e){return`${tr}${encodeURIComponent(t)}__${e+1}`}function nr(t){let e=t.inventorySegments;if(e===void 0)return!0;if(!Array.isArray(e)||e.length<1||e.length>256)return!1;let i=0,n=new Map;for(let r of e){if(!r||typeof r.sourceAreaId!="string"||!r.sourceAreaId.trim()||r.sourceAreaId.length>160||!Number.isInteger(r.startIndex)||r.startIndex<0||!Number.isInteger(r.count)||r.count<1||r.startIndex+r.count>_t||(i+=r.count,i>_t))return!1;let o=n.get(r.sourceAreaId)??[],s=r.startIndex+r.count;if(o.some(a=>r.startIndex<a.end&&s>a.start))return!1;o.push({start:r.startIndex,end:s}),n.set(r.sourceAreaId,o)}return i===t.capacity}function Gi(t){let e=Math.min(_t,Math.max(0,Math.floor(t.capacity)));return t.inventorySegments===void 0?e?[{sourceAreaId:t.id,startIndex:0,count:e}]:[]:nr(t)?t.inventorySegments.map(i=>({...i})):[]}function Ge(t){return Gi(t).flatMap(e=>Array.from({length:e.count},(i,n)=>ir(e.sourceAreaId,e.startIndex+n)))}function na(t,e){if(t.inventorySegments===void 0||e===t.capacity)return t.inventorySegments;if(e<t.capacity)return;let i=Gi(t);if(!i.length)return;let n=e-t.capacity;if(!n)return i;let o=i.filter(a=>a.sourceAreaId===t.id).reduce((a,l)=>Math.max(a,l.startIndex+l.count),0),s=i[i.length-1];if(s?.sourceAreaId===t.id&&s.startIndex+s.count===o)s.count+=n;else{if(i.length>=256)return;i.push({sourceAreaId:t.id,startIndex:o,count:n})}return i}function at(t){return ae(t).filter(e=>e.type==="gaArea")}function ra(t){return t.startsWith(tr)}var Dt="__ungrouped__";function oa(t){return t.type==="row"?rt(t).map(e=>e.label):t.type==="table"?ze(t).map(e=>e.label):t.type==="booth"?Bt(t).map(e=>e.label):t.type==="gaArea"?Ge(t):[]}function sa(t){return t.type==="row"||t.type==="table"||t.type==="booth"||t.type==="gaArea"}function lt(t){let e=ae(t),i=e.filter(s=>s.type==="section"),n=new Map;for(let s of i){let a=s.logicalSectionId??s.id;n.get(a)||n.set(a,{id:a,label:s.displayLabel||s.label||"Section",zone:s.zone,seatCount:0,objectIds:[],seatLabels:[]})}let r={id:Dt,label:"Other seats",seatCount:0,objectIds:[],seatLabels:[]},o=new Map;for(let s of e){if(!sa(s))continue;let a=oa(s);if(a.length===0)continue;let l=Ot(e,s),c=l?n.get(l.logicalSectionId??l.id):r;c.seatCount+=a.length,c.objectIds.push(s.id),c.seatLabels.push(...a),o.set(s.id,c.id)}return{sections:[...n.values()],ungrouped:r.objectIds.length?r:null,objectToSection:o}}function rr(t,e){return e.has(t.id)||!!t.logicalSectionId&&e.has(t.logicalSectionId)||!!t.zone&&e.has(t.zone)}function or(t,e){let i=new Set;if(!e.size)return i;let{sections:n,ungrouped:r,objectToSection:o}=lt(t),s=new Set,a=new Map(n.map(c=>[c.id,c.zone]));for(let c of n){let d=a.get(c.id);(e.has(c.id)||d&&e.has(d))&&s.add(c.id)}let l=!!r&&e.has(Dt);for(let[c,d]of o)(s.has(d)||l&&d===Dt)&&i.add(c);return i}function Ni(t,e){if(!e.size)return t;let i=or(t,e),n=e instanceof Set?e:new Set(e),r=s=>!(i.has(s.id)||s.type==="section"&&rr(s,n));if(t.floors&&t.floors.length){let s=!1,a=t.floors.map(l=>{let c=l.objects.filter(r);return c.length!==l.objects.length&&(s=!0),c.length===l.objects.length?l:{...l,objects:c}});return s?{...t,floors:a,objects:a[0].objects}:t}let o=t.objects.filter(r);return o.length===t.objects.length?t:{...t,objects:o}}var sr=/^#?([\da-f]{3}|[\da-f]{6})$/i,aa=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\d.]+))?\s*\)$/i;function Z(t){let e=sr.exec((t??"").trim());if(!e)return null;let i=e[1].length===3?e[1].split("").map(r=>r+r).join(""):e[1],n=parseInt(i,16);return[n>>16&255,n>>8&255,n&255]}function la({r:t,g:e,b:i}){let n=r=>Math.max(0,Math.min(255,Math.round(r))).toString(16).padStart(2,"0");return`#${n(t)}${n(e)}${n(i)}`}function ct(t,e,i){return la({r:t,g:e,b:i})}function Wi(t){let e=t.trim(),i=sr.exec(e);if(i&&e.startsWith("#"))return`#${(i[1].length===3?i[1].split("").map(s=>s+s).join(""):i[1]).toLowerCase()}`;let n=aa.exec(e);if(!n||n[4]!=null&&Number(n[4])<.999)return null;let r=[Number(n[1]),Number(n[2]),Number(n[3])];return r.some(o=>!Number.isInteger(o)||o<0||o>255)?null:`#${r.map(o=>o.toString(16).padStart(2,"0")).join("")}`}function Hi(t){let e=t/255;return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Vi(t){return .2126*Hi(t[0])+.7152*Hi(t[1])+.0722*Hi(t[2])}function ar(t,e){let i=Z(t),n=Z(e);if(!i||!n)return null;let r=Vi(i),o=Vi(n);return(Math.max(r,o)+.05)/(Math.min(r,o)+.05)}function ca(t){let e=t.trim();if(e.startsWith("#")){let n=Z(e);return n?(.2126*n[0]+.7152*n[1]+.0722*n[2])/255:NaN}let i=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/.exec(e);return i?(.2126*+i[1]+.7152*+i[2]+.0722*+i[3])/255:NaN}function dt(t,e=.6){let i=ca(t);return!Number.isNaN(i)&&i>e}function we(t,e){let i=Z(t);return i?ct(...i.map(n=>n+(255-n)*e)):t}function be(t,e){let i=Z(t);return i?ct(...i.map(n=>n*(1-e))):t}function zt(t,e,i){let n=Z(t),r=Z(e);return!n||!r?t:ct(n[0]+(r[0]-n[0])*i,n[1]+(r[1]-n[1])*i,n[2]+(r[2]-n[2])*i)}function lr(t,e){let i=0,n=0,r=0,o=0;for(let s of t){let a=Z(s.hex);!a||s.w<=0||(i+=a[0]*s.w,n+=a[1]*s.w,r+=a[2]*s.w,o+=s.w)}return o>0?ct(i/o,n/o,r/o):e}function cr(t,e){let i=Z(t);if(!i)return t;let n=.2126*i[0]+.7152*i[1]+.0722*i[2];return ct(...i.map(r=>r+(n-r)*e))}function da(t,e){let i=Z(t);return i?`rgba(${i[0]},${i[1]},${i[2]},${e})`:t}var le=da;var ge=7,Ne=10,dr=15,ur=11,He=.85,Q=12,ua=4.5;var Gt="#000000",Nt="#ffffff";function Ie(t,e){return t*e>=Q}var ce=24,hr={wheelchair:"M7.8 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM8 7L10.5 7L10.5 15L8 15ZM8 12.5L18 12.5L18 15L8 15ZM16 15L18 15L18 18L16 18ZM5.5 16a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0zM8 16a3 3 0 1 1 6 0a3 3 0 1 1 -6 0z",companion:"M5.5 6.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM4.5 18.5L6 11.5L11 11.5L12.5 18.5ZM12.5 7.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM11.5 19L13 12.5L18 12.5L19.5 19Z","semi-ambulatory":"M8.3 3.8a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM9 6.2L12 6.6L11 13.5L8.6 13L9 6.2ZM8.6 13L11 13L9.5 21L7 21ZM10.4 13L12.6 13L13.6 21L11.2 21ZM11.2 7.2L14 8L14.6 9.6L11.9 8.9ZM14.4 6.8L15.9 6.8L16.4 21L14.8 21Z",hearing:"M15.5 3.5C9 2.2 5.5 6 5.5 11.5C5.5 16 8 19.5 10.5 21C13.2 22.6 16.4 20.8 15.4 18C14.8 16.4 12.9 16.1 13 14C13.1 11.9 15.8 11.4 15.8 8.5C15.8 5.4 13 4 15.5 3.5Z",cart:"M5.5 6L18.5 6a2.5 2.5 0 0 1 2.5 2.5L21 15.5a2.5 2.5 0 0 1 -2.5 2.5L11 18L7 20.5L7.5 18L5.5 18a2.5 2.5 0 0 1 -2.5 -2.5L3 8.5a2.5 2.5 0 0 1 2.5 -2.5zM6.5 11L17.5 11L17.5 12.6L6.5 12.6zM6.5 14L17.5 14L17.5 15.6L6.5 15.6z","sign-language":"M7 11L17 11L17 18a2 2 0 0 1 -2 2L9 20a2 2 0 0 1 -2 -2zM7.6 5L9.4 5L9.4 12L7.6 12zM9.9 3.5L11.7 3.5L11.7 12L9.9 12zM12.3 3.5L14.1 3.5L14.1 12L12.3 12zM14.6 5L16.4 5L16.4 12L14.6 12zM7.2 12.5L5 10.2L6.4 8.9L8.6 11.2Z","plus-size":"M9.4 4.3a2.6 2.6 0 1 0 5.2 0a2.6 2.6 0 1 0 -5.2 0zM5 20L4 13C4 10.5 7 9.5 12 9.5C17 9.5 20 10.5 20 13L19 20Z","lift-armrest":"M5 6L8 6L8 19L5 19zM5 16L18 16L18 19L5 19zM8 12L17 12L17 14.5L8 14.5zM14 7L16 7L16 12L14 12zM12 7L18 7L15 3Z"},pc=hr.wheelchair;function ji(t){if(!t?.length)return null;let e=t.includes("wheelchair")?"wheelchair":t[0];return hr[e]??null}function Ht(t){return/-(\d{1,5})$/.exec(t)?.[1]??t}var K=ar;function pr(t,e,i){let n=Z(t),r=Z(e);if(!n||!r)return e;let o=Math.max(0,Math.min(1,i));return`#${n.map((a,l)=>Math.round(a*o+r[l]*(1-o))).map(a=>a.toString(16).padStart(2,"0")).join("")}`}var Vt=3;function J(t,e,i=ua){let n=K(e,t);if(n!=null&&n>=i)return e;let r=K(Gt,t)??0,o=K(Nt,t)??0;return r===0&&o===0?e:r>=o?Gt:Nt}var ha=3;function Ki(t){let e=K("#ffffff",t);if(e!=null&&e>=ha)return"#ffffff";let i=K(Gt,t)??0,n=K(Nt,t)??0;return i===0&&n===0?"#ffffff":i>=n?Gt:Nt}var br=3,Ve=4.5,Wt=3,fr=24,pa=20;function Ui(t){return t.filter(e=>e.visible&&!!e.screenBox)}function We(t,e){return t.x<e.x+e.width&&t.x+t.width>e.x&&t.y<e.y+e.height&&t.y+t.height>e.y}function ye(t){return t.length?Math.round(Math.min(...t)*100)/100:null}function A(t,e,i){return i.length?{code:t,message:e,count:i.length,samples:i.slice(0,pa)}:null}function jt(t,e,i){return{primaryId:t.seatId,primaryLabel:t.label,...e==null?{}:{measured:Math.round(e*100)/100},...i==null?{}:{minimum:i}}}function Xi(t,e,i){return{primaryId:t.id,primaryLabel:t.label,...e==null?{}:{measured:Math.round(e*100)/100},...i==null?{}:{minimum:i}}}function mr(t,e,i){return{primaryId:t.objectId,primaryLabel:t.text,...e==null?{}:{measured:Math.round(e*100)/100},...i==null?{}:{minimum:i}}}function je(t,e,i,n){return{primaryId:t,primaryLabel:e,secondaryId:i,secondaryLabel:n}}function fa(t,e="overview",i=null){let n=Ui(t.labels),r=Ui(t.hierarchyLabels),o=Ui(t.freeTextLabels),s=t.gaAreas.filter(S=>S.visible),a=n.map(S=>K(S.ink,S.fill)??0),l=r.map(S=>K(S.ink,S.fill)??0),c=o.map(S=>K(S.ink,S.background)??0),d=s.map(S=>K(S.effectiveBackground,t.canvasBackground)??0),h=i?t.labels.filter(S=>S.categoryKey===i):t.labels,u=i?t.gaAreas.filter(S=>S.categoryKey===i):t.gaAreas,m=h.filter(S=>S.selected),b=h.filter(S=>S.status==="held"),f=h.filter(S=>S.status==="booked"),p=h.filter(S=>S.pointerTarget.active),g=new Set([...t.labels.filter(S=>S.visible&&(S.opacity>.25||S.selected||S.status!=="free")).map(S=>S.categoryKey),...t.gaAreas.filter(S=>S.visible&&S.opacity>.1).map(S=>S.categoryKey)]),v=m.length?ye(m.flatMap(S=>[K(t.selectionRingColor,t.canvasBackground)??0,K(t.selectionRingColor,S.fill)??0])):null,y=[],x=(S,T)=>Array.from({length:S},(E,O)=>({primaryId:`overview:${O+1}`,primaryLabel:T}));if(e==="overview"&&t.rung==="sections"&&(y.push(A("overview-section-category-paint","Section overview shells must use the neutral hierarchy palette, not category paint",x(t.overviewStyle.categoryPaintedSectionShells,"category-painted section shell"))),y.push(A("overview-category-detail-visible","Category-tinted section detail must wait until section focus or seat zoom",x(t.overviewStyle.visibleCategoryDetailOutlines,"category detail outline"))),y.push(A("overview-row-hints-visible","Row and seat patterns must not clutter the section overview",x(t.overviewStyle.visibleSectionRowHints,"section row hint"))),y.push(A("overview-availability-clutter","Live availability counts belong in focused detail, not on section overview shells",x(t.overviewStyle.visibleSectionAvailabilityLabels,"section availability label"))),y.push(A("overview-ga-detail-visible","Section-contained standing paint belongs in focused detail, not on section overview shells",x(t.overviewStyle.visibleSectionGADetails,"section-contained GA detail")))),y.push(A("bookable-label-undersized","Visible bookable labels must meet the rendered small-text size floor",n.filter(S=>S.renderedFontPx<t.minimumVisibleLabelPx).map(S=>jt(S,S.renderedFontPx,t.minimumVisibleLabelPx)))),e==="interaction"){let S=h.length>0,T=u.length>0,E=S||T,O=u.filter(P=>P.visible),F=new Set([...h.flatMap(P=>P.sectionId?[P.sectionId]:[]),...u.flatMap(P=>P.sectionId?[P.sectionId]:[])]),W=new Set([...t.labels.map(P=>P.categoryKey),...t.gaAreas.map(P=>P.categoryKey)]),D=P=>P.screenCenter.x>=0&&P.screenCenter.x<=t.viewport.width&&P.screenCenter.y>=0&&P.screenCenter.y<=t.viewport.height;y.push(A("detail-rung-missing","Interaction evidence with bookable inventory must render the seat-detail rung",E&&t.rung!=="seats"?[{primaryId:"renderer",primaryLabel:t.rung}]:[])),y.push(A("detail-inventory-not-visible","Interaction evidence must frame at least one real bookable unit",E&&!h.some(D)&&!O.length?[{primaryId:"renderer",primaryLabel:"no target inventory in viewport"}]:[])),y.push(A("pointer-target-inactive","Interaction evidence must expose a live production pointer target",S&&!p.some(D)||!S&&T&&!O.some(P=>P.interactive)?[{primaryId:"renderer",primaryLabel:"no active pointer target in viewport"}]:[])),y.push(A("pointer-target-undersized","Every active production pointer target must reach at least 24 CSS pixels",p.filter(P=>D(P)&&P.pointerTarget.effectiveMinimumPx<fr).map(P=>jt(P,P.pointerTarget.effectiveMinimumPx,fr)))),y.push(A("selected-state-missing","Interaction evidence must paint a selected unit and its renderer-owned ring",S&&(!m.length||!m.some(P=>t.selectionRingSeatIds.includes(P.seatId)))?[{primaryId:"renderer",primaryLabel:"selected state"}]:[])),y.push(A("selected-state-contrast-low","The selected-state ring must maintain 3:1 graphical contrast with the canvas",m.length&&(v??0)<Wt?[{primaryId:m[0].seatId,primaryLabel:m[0].label,measured:Math.round((v??0)*100)/100,minimum:Wt}]:[])),y.push(A("held-state-missing","Interaction evidence must paint a held state when the floor has at least two status-managed units",h.length>=2&&!b.length?[{primaryId:"renderer",primaryLabel:"held state"}]:[])),y.push(A("booked-state-missing","Interaction evidence must paint a taken state when the floor has at least three status-managed units",h.length>=3&&!f.length?[{primaryId:"renderer",primaryLabel:"booked state"}]:[]));let N=new Set(b.map(P=>`${P.fill.toLowerCase()}:${P.opacity}`)),X=new Set(f.map(P=>`${P.fill.toLowerCase()}:${P.opacity}`));y.push(A("status-state-indistinct","Held and taken evidence must resolve to distinct renderer paint",b.length&&f.length&&[...N].some(P=>X.has(P))?[{primaryId:b[0].seatId,primaryLabel:b[0].label,secondaryId:f[0].seatId,secondaryLabel:f[0].label}]:[])),y.push(A("section-focus-missing","Interaction evidence must exercise section focus and its backdrop when section membership exists",F.size&&(!t.focusedSectionId||!t.focusBackdropVisible)?[{primaryId:"renderer",primaryLabel:"section focus"}]:[])),y.push(A("category-filter-missing","Interaction evidence must exercise a category filter when multiple categories exist",W.size>=2&&(!t.categoryFilterKeys||!t.categoryFilterKeys.length)?[{primaryId:"renderer",primaryLabel:"category filter"}]:[]));let _=t.labels.filter(P=>P.status==="free"&&!P.selected&&t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(P.categoryKey)),z=t.gaAreas.filter(P=>t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(P.categoryKey));y.push(A("category-filter-ineffective","The active category filter must visibly dim excluded free inventory",(_.length||z.length)&&!_.some(P=>P.opacity<=.25)&&!z.some(P=>P.opacity<=.1)?[..._.map(P=>jt(P,P.opacity)),...z.map(P=>({primaryId:P.areaId,primaryLabel:P.label,measured:P.opacity}))]:[])),y.push(A("target-category-not-visible","A category-specific interaction scene must visibly paint its exact target category",i&&!g.has(i)?[{primaryId:i,primaryLabel:i}]:[])),y.push(A("target-category-filter-mismatch","A category-specific interaction scene must bind its filter to only the exact target category",i&&(t.categoryFilterKeys?.length!==1||t.categoryFilterKeys[0]!==i)?[{primaryId:i,primaryLabel:i}]:[]))}y.push(A("bookable-label-contrast-low","Visible bookable labels must meet 4.5:1 contrast against their actual paint",n.flatMap(S=>{let T=K(S.ink,S.fill)??0;return T<Ve?[jt(S,T,Ve)]:[]})));let I=[];for(let S=0;S<n.length;S+=1)for(let T=0;T<S;T+=1)We(n[S].screenBox,n[T].screenBox)&&I.push(je(n[T].seatId,n[T].label,n[S].seatId,n[S].label));y.push(A("bookable-label-collision","Visible bookable labels must not overlap",I)),y.push(A("hierarchy-label-undersized","Visible section and zone labels must meet the rendered small-text size floor",r.filter(S=>S.renderedFontPx<Q).map(S=>Xi(S,S.renderedFontPx,Q)))),y.push(A("hierarchy-label-contrast-low","Visible section and zone labels must meet 4.5:1 contrast against their backing paint",r.flatMap(S=>{let T=K(S.ink,S.fill)??0;return T<Ve?[Xi(S,T,Ve)]:[]}))),y.push(A("hierarchy-label-outside-section","Visible section labels must remain inside the filled section surface and outside holes",r.filter(S=>S.kind==="section"&&S.fitsContainer===!1).map(S=>Xi(S))));let k=[];for(let S=0;S<r.length;S+=1)for(let T=0;T<S;T+=1)We(r[S].screenBox,r[T].screenBox)&&k.push(je(r[T].id,r[T].label,r[S].id,r[S].label));y.push(A("hierarchy-label-collision","Visible hierarchy labels must not overlap each other",k));let w=[];for(let S of r)for(let T of n)We(S.screenBox,T.screenBox)&&w.push(je(S.id,S.label,T.seatId,T.label));y.push(A("hierarchy-bookable-collision","Visible hierarchy labels must not overlap bookable labels",w)),y.push(A("free-text-undersized","Visible chart text must meet the rendered small-text size floor",o.filter(S=>S.renderedFontPx<t.minimumVisibleLabelPx).map(S=>mr(S,S.renderedFontPx,t.minimumVisibleLabelPx)))),y.push(A("free-text-contrast-low","Visible chart text must meet 4.5:1 contrast against its measured background",o.flatMap(S=>{let T=K(S.ink,S.background)??0;return T<Ve?[mr(S,T,Ve)]:[]})));let M=[];for(let S=0;S<o.length;S+=1)for(let T=0;T<S;T+=1)We(o[S].screenBox,o[T].screenBox)&&M.push(je(o[T].objectId,o[T].text,o[S].objectId,o[S].text));y.push(A("free-text-collision","Visible chart text labels must not overlap each other",M));let C=[];for(let S of o)for(let T of n)We(S.screenBox,T.screenBox)&&C.push(je(S.objectId,S.text,T.seatId,T.label));y.push(A("free-text-bookable-collision","Visible chart text must not overlap bookable labels",C));let L=[];for(let S of o)for(let T of r)We(S.screenBox,T.screenBox)&&L.push(je(S.objectId,S.text,T.id,T.label));y.push(A("free-text-hierarchy-collision","Visible chart text must not overlap hierarchy labels",L)),y.push(A("ga-contrast-low","Visible GA surfaces must maintain 3:1 graphical contrast with the canvas",s.flatMap(S=>{let T=K(S.effectiveBackground,t.canvasBackground)??0;return T<Wt?[{primaryId:S.areaId,primaryLabel:S.label,measured:Math.round(T*100)/100,minimum:Wt}]:[]})));let R=y.filter(S=>!!S);return{version:br,passed:R.length===0,state:e,targetCategoryKey:i,resolvedRules:["rendered-overview-label-size","rendered-overview-label-contrast","rendered-overview-label-collision","rendered-overview-hierarchy-containment","rendered-overview-section-first-style","rendered-overview-ga-contrast",...e==="interaction"?["rendered-detail-inventory","rendered-pointer-target","rendered-selected-held-taken-states","rendered-section-focus","rendered-category-filter"]:[]],viewport:t.viewport,canvasBackground:t.canvasBackground,effectiveScale:t.effectiveScale,rung:t.rung,inventory:{totalBookableUnits:t.totalBookableUnits,totalLabelledBookableUnits:t.totalLabelledBookableUnits,visibleBookableLabels:n.length,hiddenBookableLabels:t.hiddenLabels,visibleHierarchyLabels:r.length,visibleFreeTextLabels:o.length,visibleGAAreas:s.length},overviewStyle:t.overviewStyle,composition:{hierarchy:t.hierarchyLabels.filter(S=>S.role==="name").map(S=>({id:S.id,kind:S.kind,label:S.label,visible:S.visible})).sort((S,T)=>S.kind.localeCompare(T.kind)||S.id.localeCompare(T.id)),labelledObjects:t.freeTextLabels.map(S=>({objectId:S.objectId,kind:S.kind,text:S.text,visible:S.visible})).sort((S,T)=>S.objectId.localeCompare(T.objectId)||S.kind.localeCompare(T.kind)),gaAreas:t.gaAreas.map(S=>({areaId:S.areaId,label:S.label,categoryKey:S.categoryKey,...S.sectionId?{sectionId:S.sectionId}:{},visible:S.visible})).sort((S,T)=>S.areaId.localeCompare(T.areaId)),bookableSectionIds:[...new Set(t.labels.flatMap(S=>S.sectionId?[S.sectionId]:[]))].sort(),categoryKeys:[...new Set([...t.labels.map(S=>S.categoryKey),...t.gaAreas.map(S=>S.categoryKey)])].sort(),activeCategoryKeys:[...g].sort()},metrics:{minimumRenderedBookableLabelPx:ye(n.map(S=>S.renderedFontPx)),minimumBookableLabelContrast:ye(a),minimumRenderedHierarchyLabelPx:ye(r.map(S=>S.renderedFontPx)),minimumHierarchyLabelContrast:ye(l),minimumRenderedFreeTextPx:ye(o.map(S=>S.renderedFontPx)),minimumFreeTextContrast:ye(c),minimumGAContrast:ye(d),minimumEffectivePointerTargetPx:ye(p.map(S=>S.pointerTarget.effectiveMinimumPx)),selectedRingContrast:v==null?null:Math.round(v*100)/100},interaction:{applicable:{detail:h.length>0||u.length>0,pointer:h.length>0||u.length>0,held:h.length>=2,booked:h.length>=3,sectionFocus:h.some(S=>!!S.sectionId)||u.some(S=>!!S.sectionId),categoryFilter:new Set([...t.labels.map(S=>S.categoryKey),...t.gaAreas.map(S=>S.categoryKey)]).size>=2},selectedUnits:m.length,heldUnits:b.length,bookedUnits:f.length,activePointerTargets:p.length,focusedSectionId:t.focusedSectionId,focusBackdropVisible:t.focusBackdropVisible,categoryFilterKeys:t.categoryFilterKeys},findings:R}}var It=require("konva/lib/Core"),Ho=require("konva/lib/Stage"),ci=require("konva/lib/Layer"),Le=require("konva/lib/Group"),ve=require("konva/lib/shapes/Circle"),Ee=require("konva/lib/shapes/Rect"),Qe=require("konva/lib/shapes/Line"),Ce=require("konva/lib/shapes/Text"),Vo=require("konva/lib/shapes/Path"),Wo=require("konva/lib/shapes/Image"),jo=require("konva/lib/Shape");function ma(t){let e=0;for(let i=0,n=t.length;i<n;i+=1){let r=t[i],o=t[(i+1)%n];e+=r.x*o.y-o.x*r.y}return e/2}function ut(t){return ma(t)*2}function Ke(t){let e=t.backgroundImage;return e?.url&&!e.assetId?e:void 0}var ba=9;function ga(t){if(t.kind==="circle")return{hx:t.r,hy:t.r};let e=t.width/2,i=t.height/2,n=t.rotation??0;if(!n)return{hx:e,hy:i};let r=n*Math.PI/180,o=Math.abs(Math.cos(r)),s=Math.abs(Math.sin(r));return{hx:e*o+i*s,hy:e*s+i*o}}function ya(t,e,i,n,r){if(t.shape.kind==="circle"){let b=Math.min(Math.max(t.seat.x,e),n),f=Math.min(Math.max(t.seat.y,i),r),p=t.seat.x-b,g=t.seat.y-f;return p*p+g*g<=t.shape.r*t.shape.r}let o=t.shape.rotation??0;if(!o)return t.seat.x-t.hx<=n&&t.seat.x+t.hx>=e&&t.seat.y-t.hy<=r&&t.seat.y+t.hy>=i;let s=o*Math.PI/180,a=Math.cos(s),l=Math.sin(s),c=t.shape.width/2,d=t.shape.height/2,h=[[-c,-d],[c,-d],[c,d],[-c,d]].map(([b,f])=>[t.seat.x+b*a-f*l,t.seat.y+b*l+f*a]),u=[[e,i],[n,i],[n,r],[e,r]],m=[[1,0],[0,1],[a,l],[-l,a]];for(let[b,f]of m){let p=1/0,g=-1/0;for(let[x,I]of h){let k=x*b+I*f;k<p&&(p=k),k>g&&(g=k)}let v=1/0,y=-1/0;for(let[x,I]of u){let k=x*b+I*f;k<v&&(v=k),k>y&&(y=k)}if(g<v||y<p)return!1}return!0}function gr(t,e={}){let i=e.seatRadius??ba,n=t.length,r=new Array(n),o=1/0,s=1/0,a=-1/0,l=-1/0,c=0;for(let k=0;k<n;k++){let w=t[k],M=e.shapeOf?.(w)??{kind:"circle",r:i},{hx:C,hy:L}=ga(M);r[k]={seat:w,shape:M,hx:C,hy:L},w.x-C<o&&(o=w.x-C),w.y-L<s&&(s=w.y-L),w.x+C>a&&(a=w.x+C),w.y+L>l&&(l=w.y+L),C>c&&(c=C),L>c&&(c=L)}n===0&&(o=0,s=0,a=0,l=0);let d=c>0?c*4:1,h=Math.max(a-o,0),u=Math.max(l-s,0),m=Math.max(64,e.maxCells??n*4),b=d,f=Math.max(1,Math.ceil(h/b)||1),p=Math.max(1,Math.ceil(u/b)||1);for(;f*p>m&&(f>1||p>1);)b*=2,f=Math.max(1,Math.ceil(h/b)||1),p=Math.max(1,Math.ceil(u/b)||1);let g=f*p,v=new Int32Array(g+1),y=0;for(let k=0;k<n;k++){let w=r[k],M=fe(Math.floor((w.seat.x-w.hx-o)/b),0,f-1),C=fe(Math.floor((w.seat.x+w.hx-o)/b),0,f-1),L=fe(Math.floor((w.seat.y-w.hy-s)/b),0,p-1),R=fe(Math.floor((w.seat.y+w.hy-s)/b),0,p-1);for(let S=L;S<=R;S++)for(let T=M;T<=C;T++)v[S*f+T+1]++,y++}for(let k=0;k<g;k++)v[k+1]+=v[k];let x=new Int32Array(y),I=v.slice(0,g);for(let k=0;k<n;k++){let w=r[k],M=fe(Math.floor((w.seat.x-w.hx-o)/b),0,f-1),C=fe(Math.floor((w.seat.x+w.hx-o)/b),0,f-1),L=fe(Math.floor((w.seat.y-w.hy-s)/b),0,p-1),R=fe(Math.floor((w.seat.y+w.hy-s)/b),0,p-1);for(let S=L;S<=R;S++)for(let T=M;T<=C;T++){let E=S*f+T;x[I[E]++]=k}}return{seats:t,entries:r,minX:o,minY:s,cell:b,cols:f,rows:p,cellStart:v,items:x,stamp:new Int32Array(n),epoch:0}}function Kt(t,e,i={}){let n=Math.min(e.x,e.x+e.width),r=Math.max(e.x,e.x+e.width),o=Math.min(e.y,e.y+e.height),s=Math.max(e.y,e.y+e.height),a=i.mode??"center",{cols:l,rows:c,cell:d,minX:h,minY:u,cellStart:m,items:b,entries:f}=t,p=Math.max(0,Math.floor((n-h)/d)),g=Math.min(l-1,Math.floor((r-h)/d)),v=Math.max(0,Math.floor((o-u)/d)),y=Math.min(c-1,Math.floor((s-u)/d));if(p>g||v>y)return[];let x=[],I=t.stamp,k=++t.epoch;for(let w=v;w<=y;w++){let M=w*l;for(let C=p;C<=g;C++){let L=M+C,R=m[L+1];for(let S=m[L];S<R;S++){let T=b[S];if(I[T]===k)continue;I[T]=k;let E=f[T];if(i.filter&&!i.filter(E.seat.id,E.seat))continue;(a==="center"?E.seat.x>=n&&E.seat.x<=r&&E.seat.y>=o&&E.seat.y<=s:ya(E,n,o,r,s))&&x.push(T)}}}return x.sort((w,M)=>w-M),x.map(w=>f[w].seat.id)}function yr(t,e=0){let i=Math.max(1,t.width,t.height),n={x:t.x+t.width/2,y:t.y+t.height/2},r=i*1.55,o=Math.max(i*.82,Math.max(0,e)+i*.45);return{target:n,distance:r,height:o,focalLength:Math.hypot(r,o),yawRad:-8*Math.PI/180}}function ie(t,e,i=0){let n=e.x-t.target.x,r=e.y-t.target.y,o=Math.cos(t.yawRad),s=Math.sin(t.yawRad),a=n*o-r*s,c=n*s+r*o-t.distance,d=i-t.height,h=Math.hypot(t.distance,t.height),u=(-t.distance*c-t.height*d)/h,m=(-t.height*c+t.distance*d)/h,b=Math.max(h*.08,u),f=t.focalLength/b;return{x:t.target.x+a*f,y:t.target.y-m*f,depth:b,scale:f}}function re(t,e){return{x:t.a*e.x+t.c*e.y+t.e,y:t.b*e.x+t.d*e.y+t.f}}function Sr(t){let e=t.a*t.d-t.b*t.c;if(!Number.isFinite(e)||Math.abs(e)<1e-9)throw new Error("perspective projection produced a singular affine");let i=t.d/e,n=-t.b/e,r=-t.c/e,o=t.a/e;return{a:i,b:n,c:r,d:o,e:-(i*t.e+r*t.f),f:-(n*t.e+o*t.f)}}function vr(t,e){return{a:t.a*e.a+t.c*e.b,b:t.b*e.a+t.d*e.b,c:t.a*e.c+t.c*e.d,d:t.b*e.c+t.d*e.d,e:t.a*e.e+t.c*e.f+t.e,f:t.b*e.e+t.d*e.f+t.f}}function Ut(t,e,i=()=>0){let n=ie(t,e,i(e)),r={x:e.x+1,y:e.y},o={x:e.x,y:e.y+1},s=ie(t,r,i(r)),a=ie(t,o,i(o)),l=s.x-n.x,c=s.y-n.y,d=a.x-n.x,h=a.y-n.y;return{a:l,b:c,c:d,d:h,e:n.x-l*e.x-d*e.y,f:n.y-c*e.x-h*e.y}}function kr(t){let e=Math.hypot(t.a,t.b),i=t.a*t.d-t.b*t.c;return{rotationDeg:Math.atan2(t.b,t.a)*180/Math.PI,scaleX:e,scaleY:i/Math.max(e,1e-9),skewX:(t.a*t.c+t.b*t.d)/Math.max(i,1e-9)}}var wr;function Ir(t){wr=t}function Sa(t){return typeof t=="number"?t:t instanceof Date?t.getTime():Date.parse(t)}var xr=new Map;function va(t,e){let i=t??wr,n=`${i??""}|${JSON.stringify(e)}`,r=xr.get(n);return r||(r=new Intl.DateTimeFormat(i,e),xr.set(n,r)),r}var ka={dateStyle:"medium",timeStyle:"short"};function Tr(t,e={}){let{locale:i,...n}=e,r=Sa(t);if(!Number.isFinite(r))return"";let o=Object.keys(n).length?n:ka;return va(i,o).format(r)}var wc="USD",xa=["USD","EUR","GBP","CAD","AUD","INR","AED","SGD","JPY","CHF","SEK","NZD","ZAR","MXN","BRL"],Cr;function Yi(t){Cr=t}var Lr=new Map;function Xt(t,e,i,n){let r=n??Cr,o=`${r??""}|${t}|${e??"auto"}|${i??"auto"}`,s=Lr.get(o);return s||(s=new Intl.NumberFormat(r,{style:"currency",currency:t,minimumFractionDigits:e,maximumFractionDigits:i}),Lr.set(o,s)),s}function Yt(t,e="USD",i,n){if(typeof i=="object"){let o=i;try{return Xt(e,o.minimumFractionDigits,o.maximumFractionDigits,o.locale).format(t)}catch(s){if(o.fallback)return o.fallback(t,e);throw s}}let r=i??(Number.isInteger(t)?0:void 0);return Xt(e,r,r,n).format(t)}function Mr(t="USD"){try{return Xt(t,void 0,void 0).resolvedOptions().maximumFractionDigits??2}catch{return 2}}function Pr(t,e="USD"){return t/10**Mr(e)}function wa(t,e="USD",i){return Yt(Pr(t,e),e,void 0,i)}function Ia(t="USD"){return Xt(t,0,0).formatToParts(0).find(i=>i.type==="currency")?.value??t}var ht={"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.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.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.overview":"Overview","picker.entrance":"Entrance","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":"Sign in again, or reload the page, to keep browsing these seats. Anything you are already holding stays yours.","picker.accessExpiredTitle":"Your access session has ended","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":"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.addTime":"Add time","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.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.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.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.minToMaxGuests":"{min} to {max} guests","picker.more":"More","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.viewFromHere":"View from here","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"};var Rr=["en","es","de","fr"],Ue={en:ht},qt={},de="en";function qi(t,e){for(let i of[t,e,typeof navigator<"u"?navigator.language:null]){if(!i)continue;let n=i.toLowerCase().split("-")[0];if(Rr.includes(n))return n}return"en"}function Ta(){return de}function pt(t,e){e&&(Ue[t]={...Ue[t],...e}),de=Ue[t]?t:"en",Yi(de),Ir(de),typeof document<"u"&&(document.documentElement.lang=de)}function La(t){qt=t}var Er=/\{(\w+)\}/g;function oe(t,e){let i=qt[t]??Ue[de]?.[t]??ht[t]??t;return e?i.replace(Er,(n,r)=>String(e[r]??`{${r}}`)):i}function Ca(t,e,i){let n=new Intl.PluralRules(de).select(e);return(qt[`${t}.${n}`]??Ue[de]?.[`${t}.${n}`]??ht[`${t}.${n}`]??qt[`${t}.other`]??Ue[de]?.[`${t}.other`]??ht[`${t}.other`]??t).replace(Er,(s,a)=>String({count:e,...i}[a]??`{${a}}`))}function Ma(t,e){return Tr(t,{...e??{dateStyle:"medium",timeStyle:"short"},locale:de})}var ft=9,Pe=.9,se=.55*Pe,Se=Q/ge,mt=4,$t=14,Ar=10,Br=14,Te=.45*Pe,Xe=.9*Pe,Or=Math.max(Pe*1.1,Xe),Re=8,Fr=700,ee=2,_r=Q,bt=64,Ye=.55*Te,$i=700,Dr=2500,Zt=-11.5,gt=.58,zr=320,Qt=650,Gr=1,Jt=1,Nr=20,Zi=12,Hr=[.85,.72,.62],ei=18,Vr=12,Wr=.1;var Pa="#e5e7eb",Ra="#c7cbd1",Ea="#595f69",Aa="#d1d5db",Ba="#b8bdc4",Oa="#273142",Fa="#526078",_a="#f1f5f9",Da="#374151",za="#64748b",Qi="#111827",jr="#6b7280",ti="#374151",Kr="#4b5563",Ur="#4b5563",Xr=.4,yt=.16,Yr="rgba(244,246,248,0.06)",ii=["#E69F00","#56B4E9","#009E73","#F0E442","#0072B2","#D55E00","#CC79A7"];function ue(t){return dt(t)?{sectionFill:Pa,sectionStroke:Ra,sectionInk:Ea,focalFill:Aa,focalStroke:Ba}:{sectionFill:Oa,sectionStroke:Fa,sectionInk:_a,focalFill:Da,focalStroke:za}}function qe(t,e){let i=t.sectionFill,n=cr(be(i,.2),.85);switch(e){case"closed":return be(i,.12);case"sold-out":return n;case"nearly-gone":return zt(i,n,.4);default:return i}}function Ga(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 $e=class{constructor(){this.cells=new Map}insert(e){for(let i of this.keys(e)){let n=this.cells.get(i);n?n.push(e):this.cells.set(i,[e])}}collisionCount(e){let i=new Set,n=0;for(let r of this.keys(e))for(let o of this.cells.get(r)??[])i.has(o)||(i.add(o),Ga(e,o)&&n++);return n}keys(e){let i=Math.floor(e.x/bt),n=Math.floor((e.x+Math.max(0,e.width))/bt),r=Math.floor(e.y/bt),o=Math.floor((e.y+Math.max(0,e.height))/bt),s=[];for(let a=r;a<=o;a++)for(let l=i;l<=n;l++)s.push(`${l}:${a}`);return s}};function Na(t){let e=1/0,i=1/0,n=-1/0,r=-1/0,o=!1;for(let s of t)!Number.isFinite(s.x)||!Number.isFinite(s.y)||(o=!0,s.x<e&&(e=s.x),s.y<i&&(i=s.y),s.x>n&&(n=s.x),s.y>r&&(r=s.y));return o?{minX:e,minY:i,maxX:n,maxY:r}:null}function qr(t){let e=Na(t);return e?Ha(e):null}function Ha(t){return{x:t.minX,y:t.minY,width:t.maxX-t.minX,height:t.maxY-t.minY}}function U(t){let e=qr(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 ni(t,e,i,n){let r=n*Math.PI/180,o=Math.cos(r),s=Math.sin(r);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(a=>({x:t.x+a.x*o-a.y*s,y:t.y+a.x*s+a.y*o}))}function ri(t,e,i,n,r,o){let s=n*Math.PI/180,a=Math.cos(s),l=Math.sin(s);for(let c=0;c<=4;c++)for(let d=0;d<=6;d++){let h=e*(d/6-.5),u=i*(c/4-.5),m={x:t.x+h*a-u*l,y:t.y+h*l+u*a};if(!Y(m,r,o))return!1}return!0}function $r(t,e,i){let n=U(t),r=[i];for(let s=1;s<12;s+=1)for(let a=1;a<12;a+=1){let l={x:n.x+n.width*a/12,y:n.y+n.height*s/12};Y(l,t,e)&&r.push(l)}let o=[t,...e];return r.map(s=>({point:s,room:wi(s,o)})).sort((s,a)=>a.room-s.room).map(s=>s.point).filter((s,a,l)=>a===l.findIndex(c=>Math.abs(c.x-s.x)<1e-6&&Math.abs(c.y-s.y)<1e-6))}var Zr=require("konva/lib/Group"),Qr=require("konva/lib/Shape");function Va(t,e,i){let n=e.length,r={x:(e[n-1].x+e[0].x)/2,y:(e[n-1].y+e[0].y)/2};t.moveTo(r.x,r.y);for(let o=0;o<n;o+=1){let s=e[o],a=e[(o+1)%n],l=e[(o-1+n)%n],c=Math.min(Math.hypot(s.x-l.x,s.y-l.y)/2,Math.hypot(a.x-s.x,a.y-s.y)/2);t.arcTo(s.x,s.y,a.x,a.y,Math.max(0,Math.min(i,c)))}t.closePath()}function Ze(t,e,i,n){let r=ut(t)>0,o=i.cornerRadius&&i.cornerRadius>0?i.cornerRadius:0;return new Qr.Shape({...i,sceneFunc(s,a){s.beginPath();let l=d=>{if(d.length){if(o>0&&d.length>=3)return Va(s,d,o);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()}};n?(d=>{s.moveTo(d.start.x,d.start.y);let h=d.start;for(let u of d.segments)u.kind==="line"?s.lineTo(u.end.x,u.end.y):u.kind==="arc"?s.arc(u.center.x,u.center.y,u.radius,Math.atan2(h.y-u.center.y,h.x-u.center.x),Math.atan2(u.end.y-u.center.y,u.end.x-u.center.x),!u.clockwise):s.bezierCurveTo(u.control1.x,u.control1.y,u.control2.x,u.control2.y,u.end.x,u.end.y),h=u.end;s.closePath()})(n):l(t);for(let d of e??[]){let h=ut(d)>0;l(h===r?[...d].reverse():d)}s.fillStrokeShape(a)},perfectDrawEnabled:!1})}var St=class extends Zr.Group{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)}};var oi=class{constructor(e){this.pointers=new Map;this.pinch=null;this.panLast=null;this.panStart=null;this.panStarted=!1;this.movedPx=0;this.lastTapAt=0;this.onPointerDown=e=>{this.host.cancelGlide();let i=this.toLocal(e);if(this.pointers.set(e.pointerId,i),this.pointers.size===1)this.movedPx=0,this.pinch=null,this.panStart=i,this.panStarted=!1,this.host.marqueeShouldStart(e)?(this.host.beginMarquee(i),this.panLast=null):this.panLast=i;else if(this.pointers.size===2){this.host.marqueeActive()&&this.host.cancelMarquee();let[n,r]=[...this.pointers.values()],o={x:(n.x+r.x)/2,y:(n.y+r.y)/2},s=this.host.stage.scaleX();this.pinch={startDist:Math.hypot(r.x-n.x,r.y-n.y),startScale:s,worldMid:{x:(o.x-this.host.stage.x())/s,y:(o.y-this.host.stage.y())/s}},this.panLast=null,this.panStart=null,this.panStarted=!0,this.movedPx=Re+1}};this.onPointerMove=e=>{if(!this.pointers.has(e.pointerId))return;e.preventDefault();let i=this.toLocal(e);if(this.pointers.set(e.pointerId,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=Re+1),this.host.marqueeActive()){this.host.updateMarquee(i);return}if(this.pinch&&this.pointers.size>=2){this.host.releaseSectionFocusDim();let[n,r]=[...this.pointers.values()],o=Math.hypot(r.x-n.x,r.y-n.y);if(this.pinch.startDist<1)return;let s={x:(n.x+r.x)/2,y:(n.y+r.y)/2},{min:a,max:l}=this.host.zoomBounds(),c=V(this.pinch.startScale*(o/this.pinch.startDist),a,l);this.host.stage.scale({x:c,y:c}),this.host.stage.position({x:s.x-this.pinch.worldMid.x*c,y:s.y-this.pinch.worldMid.y*c}),this.host.updateSeatGroupVisibility(),this.host.stage.batchDraw(),this.host.scheduleViewChange()}else if(this.panLast&&this.pointers.size===1){if(!this.panStarted){if(this.movedPx<=Re)return;this.panStarted=!0,this.host.releaseSectionFocusDim()}this.host.stage.position({x:this.host.stage.x()+(i.x-this.panLast.x),y:this.host.stage.y()+(i.y-this.panLast.y)}),this.panLast=i,this.host.updateSeatGroupVisibility(),this.host.stage.batchDraw(),this.host.scheduleViewChange()}};this.onPointerEnd=e=>{if(this.host.marqueeActive()){this.host.finishMarquee(),this.pointers.delete(e.pointerId),this.pointers.size===0&&(this.panLast=null);return}this.pointers.delete(e.pointerId),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.host.afterViewChange())};this.host=e}get moved(){return this.movedPx}attach(){let{container:e}=this.host;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})}detach(){let{container:e}=this.host;e.removeEventListener("pointerdown",this.onPointerDown),e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerup",this.onPointerEnd),e.removeEventListener("pointercancel",this.onPointerEnd)}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<Fr}toLocal(e){let i=this.host.container.getBoundingClientRect();return{x:e.clientX-i.left,y:e.clientY-i.top}}};var Ji=require("konva/lib/shapes/Rect"),Jr=require("konva/lib/shapes/Text");function eo(t){let e=t.effScale(),i=t.stage.scaleX(),n={width:t.stage.width(),height:t.stage.height()},r=f=>Math.round(f*100)/100,o=t.seats.map(f=>{let p=t.circleById.get(f.id),g=t.boothLabelById.get(f.id)??t.seatLabelById.get(f.id),v=t.viewMode==="perspective"?t.perspectiveSeatScale.get(f.id)??1:1,y=(t.viewMode==="perspective"?i:e)*v,x=f.kind==="booth"?Ne:ge*t.seatLabelScale(f),I=t.viewMode==="perspective"&&f.kind!=="booth"?e*v:y,k=r((g?.fontSize()??x)*I),w=t.worldToScreen(f),M=w.x<0||w.x>n.width||w.y<0||w.y>n.height,C=t.focusedSeatOpacity(f.id,p?.getAbsoluteOpacity()??0),L=t.seatSection.get(f.id),R=!!g?.isVisible()&&C>=.5&&!M,S;R||(C<.5?S="dimmed-or-unavailable":k<Q?S="below-minimum-size":M?S="outside-viewport":g?S="renderer-hidden":S="clutter-or-fit");let T=g?g.width()*i*v:0,E=g?g.height()*(t.viewMode==="perspective"&&f.kind==="booth"?i:e)*v:0,O=p instanceof Ji.Rect?p.width()*i*v:t.seatR*2*y,F=p instanceof Ji.Rect?p.height()*(t.viewMode==="perspective"?i:e)*v:t.seatR*2*y,W=2*(t.seatR*y+$t),D=p?.fill(),N=g?.fill(),X=t.accessGlyphById.get(f.id),_=X?.getAbsoluteScale();return{seatId:f.id,label:f.label,kind:f.kind==="booth"?"booth":"seat",markerShape:f.kind==="booth"?"booth":f.wheelchairSpaceType==="no-seat"?"square":"circle",...f.wheelchairSpaceType?{wheelchairSpaceType:f.wheelchairSpaceType}:{},categoryKey:f.categoryKey,...L?{sectionId:L.id}:{},...L?.zone?{zoneId:L.zone}:{},status:t.statusById.get(f.id)??"free",selected:t.selection.has(f.id),visible:R,renderedFontPx:k,fill:typeof D=="string"?D:"",ink:typeof N=="string"?N:p?t.seatLabelInk(f,p):t.seatPreferredLabelInk(f),opacity:r(C),...X?{accessibilityMarker:{glyphVisible:X.isVisible(),glyphWidthPx:r(ce*Math.abs(_?.x??0)),emphasizedByFilter:t.accessGlyphFilterEmphasized(f.id)}}:{},pointerTarget:{active:!t.cached&&!t.seatViewportCulled(f.id)&&!!p?.isVisible()&&!!p?.isListening()&&t.isSelectable(f.id),directWidthPx:r(O),directHeightPx:r(F),effectiveMinimumPx:r(Math.max(Math.min(O,F),W))},screenCenter:{x:r(w.x),y:r(w.y)},...R?{screenBox:{x:r(w.x-T/2),y:r(w.y-E/2),width:r(T),height:r(E)}}:{},...S?{hiddenReason:S}:{}}}),s=o.filter(f=>f.visible).length,a=(f,p,g,v,y,x)=>{let I=ni({x:v.x(),y:v.y()},v.width(),v.height(),v.rotation()),k=x&&x.liftWorld>0?t.isoLiftLocal(x.liftWorld):{x:0,y:0},w=U(I.map(T=>t.worldToScreen({x:T.x+k.x,y:T.y+k.y}))),M=r(v.opacity()),C=v.fill(),L=w.x+w.width<0||w.x>n.width||w.y+w.height<0||w.y>n.height,R=v.isVisible()&&M>.05&&!L,S=x?ri({x:v.x(),y:v.y()},v.width(),v.height(),v.rotation(),x.outline,x.holes):void 0;return{id:f,kind:p,role:g,label:v.text(),visible:R,renderedFontPx:r(v.fontSize()*i),opacity:M,fill:y,ink:typeof C=="string"?C:"",...S==null?{}:{fitsContainer:S},...R?{screenBox:{x:r(w.x),y:r(w.y),width:r(w.width),height:r(w.height)}}:{}}},l=[...t.sections.map(f=>{let p=f.blockPoly.fill();return a(f.id,"section","name",f.nameLabel,typeof p=="string"?p:f.baseFill,f)}),...t.sections.map(f=>{let p=f.blockPoly.fill();return a(`${f.id}:availability`,"section","availability",f.subLabel,typeof p=="string"?p:f.baseFill,f)}),...t.zones.flatMap(f=>[a(f.id,"zone","name",f.label,f.background),...f.sub?[a(`${f.id}:price`,"zone","price",f.sub,f.background)]:[]])],c=[...t.gaById].map(([f,p])=>{let g=p.points.map(L=>t.worldToScreen(L)),v=Math.min(...g.map(L=>L.x)),y=Math.min(...g.map(L=>L.y)),x=Math.max(...g.map(L=>L.x)),I=Math.max(...g.map(L=>L.y)),k=x<0||v>n.width||I<0||y>n.height,w=r(p.polygon.opacity()),M=w>=.1&&!k,C=p.polygon.fill();return{areaId:f,label:p.label,capacity:p.capacity,categoryKey:p.categoryKey,...p.sectionId?{sectionId:p.sectionId}:{},visible:M,interactive:p.polygon.listening(),opacity:w,fill:typeof C=="string"?C:"",effectiveBackground:p.effectiveBackground,...M?{screenBox:{x:r(v),y:r(y),width:r(x-v),height:r(I-y)}}:{}}}),d=[...t.freeTextById].map(([f,p])=>{let{node:g,background:v,kind:y}=p,x=t.worldToScreen({x:g.x(),y:g.y()}),I=g.width()*i,k=g.height()*e,w=x.x-g.offsetX()*i,M=x.y-g.offsetY()*e,C=r(g.fontSize()*e),L=w+I<0||w>n.width||M+k<0||M>n.height,R=g.isVisible()&&!L,S=g.fill(),T=r(g.getAbsoluteOpacity()),E;return R||(C<Q?E="below-minimum-size":L?E="outside-viewport":E="renderer-hidden"),{objectId:p.objectId??f,kind:y,text:g.text(),visible:R,renderedFontPx:C,ink:typeof S=="string"?S:"",background:v,opacity:T,...R?{screenBox:{x:r(w),y:r(M),width:r(I),height:r(k)}}:{},...E?{hiddenReason:E}:{}}}),h=t.labelGroup.find(f=>f.getAttr("rowLabel")===!0).filter(f=>f instanceof Jr.Text).map(f=>{let p=f.getClientRect({skipShadow:!0,skipStroke:!0}),g=p.x+p.width<0||p.x>n.width||p.y+p.height<0||p.y>n.height,v=f.fill();return{text:f.text(),visible:f.isVisible()&&!g,renderedFontPx:r(f.fontSize()*e),ink:typeof v=="string"?v:"",...g?{}:{screenBox:{x:r(p.x),y:r(p.y),width:r(p.width),height:r(p.height)}}}}),u=ue(t.canvasBackground),m=new Set(["normal","nearly-gone","sold-out","closed"].map(f=>qe(u,f).toLowerCase())),b=t.sections.filter(f=>f.blockPoly.opacity()>.05);return{viewport:n,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:r(e),rung:t.getRung(),minimumVisibleLabelPx:Q,totalLabelledBookableUnits:o.length,visibleLabels:s,hiddenLabels:o.length-s,totalBookableUnits:o.length+c.reduce((f,p)=>f+p.capacity,0),selectionRingSeatIds:t.overlayLayer.find(".selection-ring").map(f=>String(f.getAttr("seatId")??"")).filter(Boolean),selectionRingColor:t.effSelection,focusedSectionId:t.focusedSectionId,focusBackdropVisible:!!t.focusBackdrop?.isVisible(),categoryFilterKeys:t.categoryFilter?[...t.categoryFilter].sort():null,overviewStyle:{visibleSectionShells:b.length,categoryPaintedSectionShells:b.filter(f=>{let p=f.blockPoly.fill();return typeof p!="string"||!m.has(p.toLowerCase())}).length,visibleCategoryDetailOutlines:t.sections.filter(f=>f.outlinePoly.opacity()>.05).length,visibleSectionRowHints:0,visibleSectionAvailabilityLabels:t.sections.filter(f=>f.subLabel.opacity()>.05).length,visibleSectionGADetails:[...t.gaById.values()].filter(f=>f.sectionId!=null&&f.polygon.opacity()>.05).length},labels:o,gaAreas:c,hierarchyLabels:l,freeTextLabels:d,rowLabels:h}}var ho=require("konva/lib/shapes/Circle"),po=require("konva/lib/shapes/Ellipse"),fo=require("konva/lib/shapes/Line"),mo=require("konva/lib/shapes/Arrow"),bo=require("konva/lib/shapes/Path"),ai=require("konva/lib/shapes/Rect"),li=require("konva/lib/shapes/Text"),go=require("konva/lib/shapes/Image");var to="M13 4.6a1.6 1.6 0 1 0-3.2 0 1.6 1.6 0 0 0 3.2 0 M11 6.5V13h5l2.4 6 M15 16.4A5 5 0 1 1 9 11.3",io=[{key:"restroom-men",label:"Men's restroom",group:"facilities",path:"M16 7a4 4 0 1 0-8 0 4 4 0 0 0 8 0 M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"},{key:"restroom-women",label:"Women's restroom",group:"facilities",path:"M15 5a3 3 0 1 0-6 0 3 3 0 0 0 6 0 M12 8l-4 10h8l-4-10 M10 18v4 M14 18v4"},{key:"restroom-accessible",label:"Accessible restroom",group:"facilities",path:to},{key:"first-aid",label:"First aid",group:"facilities",path:"M5 4h14a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Z M12 8v8 M8 12h8"},{key:"coat-check",label:"Coat check",group:"facilities",path:"M12 6a2 2 0 0 1 0-4 2 2 0 0 1 1.6 3.2L21 13H3l8.4-7.8 M3 13h18"},{key:"atm",label:"ATM / cash",group:"facilities",path:"M2 6h20v12H2V6Z M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0 M6 9h.01 M18 15h.01"},{key:"info",label:"Info point",group:"facilities",path:"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18 M12 11v5 M12 8h.01"},{key:"lost-found",label:"Lost & found",group:"facilities",path:"M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14 M16 16l5 5 M9 8.5a2 2 0 1 1 3 1.7c-.8.5-1 .8-1 1.8 M11 15h.01"},{key:"restrooms",label:"Restrooms",group:"facilities",path:"M6 3h12a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M12 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4 M9 18v-3.5a3 3 0 0 1 6 0V18"},{key:"charging",label:"Charging point",group:"facilities",path:"M3 8h13v8H3V8Z M16 10h3v4h-3 M9.6 9l-2 3.5h2.5l-1.5 3"},{key:"smoking",label:"Smoking area",group:"facilities",path:"M2 15h13v3H2v-3Z M18 16h2 M19 8c0 1 1 1.5 1 2.5S19 12 19 13"},{key:"no-smoking",label:"No smoking",group:"facilities",path:"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18 M5.6 5.6l12.8 12.8 M7 13h6v2H7v-2Z"},{key:"food",label:"Food",group:"food-drink",path:"M7 3v6a2 2 0 0 0 4 0V3 M9 11v10 M17 3c-1.6 1-2.2 3-2.2 6 0 2 .9 3.2 2.2 3.6V21"},{key:"bar",label:"Bar",group:"food-drink",path:"M4 5h16l-8 8-8-8Z M12 13v6 M8 20h8"},{key:"coffee",label:"Caf\xE9 / coffee",group:"food-drink",path:"M4 8h13v4a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5V8Z M17 9h2a2 2 0 0 1 0 4h-2 M8 2v2 M11 2v2 M4 21h14"},{key:"water",label:"Water / drinks",group:"food-drink",path:"M12 22a7 7 0 0 1-7-7c0-5 7-12 7-12s7 7 7 12a7 7 0 0 1-7 7Z"},{key:"merch",label:"Merch / shop",group:"food-drink",path:"M6 8h12l-1 12H7L6 8Z M9 8V6a3 3 0 0 1 6 0v2"},{key:"screen",label:"Screen",group:"facilities",path:"M3 4h18v12H3V4Z M9 20h6 M12 16v4 M10 8l4 2-4 2V8Z"},{key:"sound-booth",label:"Sound booth",group:"facilities",path:"M6 4v16 M6 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4 M12 4v16 M12 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4 M18 4v16 M18 12a2 2 0 1 0 0 4 2 2 0 0 0 0-4"},{key:"entrance",label:"Entrance",group:"navigation",path:"M14 3h5a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-5 M3 12h11 M10 8l4 4-4 4"},{key:"exit",label:"Exit",group:"navigation",path:"M10 3H5a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h5 M14 12h7 M17 8l4 4-4 4"},{key:"emergency-exit",label:"Emergency exit",group:"navigation",path:"M14 4.6a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0 M12.5 8l-3.5 2 1.6 3.6-2 4.4 M12.5 10l3.5 1.5 M9 10.5l-3.5 1 M15 12h6 M18 9l3 3-3 3"},{key:"stairs",label:"Stairs",group:"navigation",path:"M3 20v-4h4v-4h4v-4h4V4h5"},{key:"elevator",label:"Elevator",group:"navigation",path:"M5 3h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M8 11l1.5-2 1.5 2 M8 14l1.5 2 1.5-2 M15 8v8"},{key:"parking",label:"Parking",group:"navigation",path:"M5 3h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M9 17V7h4a3 3 0 0 1 0 6H9"},{key:"wheelchair",label:"Wheelchair access",group:"accessibility",path:to},{key:"hearing",label:"Hearing assistance",group:"accessibility",path:"M8 20a4 4 0 0 1-2-3c0-1 .5-2 .5-3a4.5 4.5 0 1 1 9 0c0 1.4-1 2-2 2.4-1.2.5-1.5 1-1.5 2.2 M17 6a5 5 0 0 1 1 6 M19.5 4a8 8 0 0 1 1.2 9"}];var Wa=new Map(io.map(t=>[t.key,t]));function ja(t){return t?Wa.get(t):void 0}function no(t){return ja(t)?.path}var Zc=io.map(t=>t.key);var Ka="round",Ua="round",ro="none";function oo(t){return{lineCap:t.lineCap??Ka,lineJoin:t.lineJoin??Ua,startEnding:t.startEnding??ro,endEnding:t.endEnding??ro}}function so(t){return{pointerLength:Math.min(48,Math.max(8,t*3)),pointerWidth:Math.min(40,Math.max(8,t*2.25))}}function en(t,e){return e.length===0?!!t.accessible:!!t.accessibility?.some(i=>e.includes(i))}var si="#0b1220",vt="#ffffff",ao="#0b1220",lo="#232c40",co="#8b93a7";function uo(t,e,i="normal"){let n=t?"bold":i;return e?`italic ${n}`.trim():n}var tn="#0e1117";function yo(t,e){let i=new window.Image,n=new go.Image({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:V(e.opacity??1,0,1),listening:!1,perfectDrawEnabled:!1});e.layer==="foreground"?t.fgDecorGroup.add(n):t.bgLayer.add(n),t.trackAssetImage(i,e.href,`Decor image \u201C${e.label||e.id}\u201D`,()=>{let r=n.getLayer();r&&r.batchDraw()})}function So(t,e){if(e.shape==="round")t.bgLayer.add(new ho.Circle({x:e.center.x,y:e.center.y,radius:e.radius??40,fill:"#232c40",stroke:"#2a3348",strokeWidth:1.5,listening:!1}));else{let n=e.width??80,r=e.height??50;t.bgLayer.add(new ai.Rect({x:e.center.x,y:e.center.y,width:n,height:r,offsetX:n/2,offsetY:r/2,rotation:e.rotation,fill:"#232c40",stroke:"#2a3348",strokeWidth:1.5,cornerRadius:4,listening:!1}))}let i=kt(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"})}function vo(t,e){let i=e.background?.color??t.canvasBackground,n=e.color??t.theme.textColor??co,r=e.semanticKind==="icon"?no(e.iconKey):void 0;if(r){let c=e.fontSize/24,d=new bo.Path({x:e.position.x,y:e.position.y,data:r,rotation:e.rotation,scaleX:c,scaleY:c,stroke:J(i,n),strokeWidth:2,lineCap:"round",lineJoin:"round",fillEnabled:!1,listening:!1,perfectDrawEnabled:!1});t.iconNodeById.set(e.id,{node:d,fontSize:e.fontSize}),t.bgLayer.add(d);return}let o=e.background?.padding??0,s=e.opacity??1,a=new li.Text({x:e.position.x,y:e.position.y,text:e.text,fontSize:e.fontSize,rotation:e.rotation,fontStyle:uo(e.bold,e.italic,"600"),fill:J(i,n),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:o,opacity:s,wrap:"word",listening:!1,perfectDrawEnabled:!1,name:"buyer-free-text"}),l;e.background&&(l=new ai.Rect({x:e.position.x,y:e.position.y,width:a.width(),height:a.height(),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(l)),t.freeTextById.set(e.id,{node:a,backdrop:l,background:i,kind:"free-text"}),t.bgLayer.add(a)}function ko(t,e){let i=e.fill??t.theme.decorFill??lo,n=e.role==="stage",r=e.role==="reference-focal",o=!!e.role&&!n,s=ue(t.canvasBackground),a=r?s.focalFill:i,l=e.kind==="line"||e.kind==="polyline",c=e.stroke?.color??(n?we(a,.28):r?s.focalStroke:l?"#9aa3b5":void 0),d=e.stroke?.width??(n?1:r||l?2:0),h=e.opacity!=null?V(e.opacity,.1,1):1,u=0,m=0;if(l&&e.points&&e.points.length>=2){u=e.points.reduce((g,v)=>g+v.x,0)/e.points.length,m=e.points.reduce((g,v)=>g+v.y,0)/e.points.length;let b=oo(e),f=so(d),p=new mo.Arrow({points:e.points.flatMap(g=>[g.x,g.y]),closed:!1,x:u,y:m,offsetX:u,offsetY:m,rotation:e.rotation??0,stroke:c,fill:c,strokeWidth:d,opacity:h,lineCap:b.lineCap,lineJoin:b.lineJoin,pointerAtBeginning:b.startEnding==="arrow",pointerAtEnding:b.endEnding==="arrow",...f,listening:!1,name:"buyer-shape-open-path"});p.setAttr("shapeObjectId",e.id),t.bgLayer.add(p)}else if(e.kind==="rect"&&e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null){let b=n?{fillLinearGradientStartPoint:{x:0,y:0},fillLinearGradientEndPoint:{x:0,y:e.height},fillLinearGradientColorStops:[0,be(a,.3),1,we(a,.12)]}:{fill:a};u=e.x+e.width/2,m=e.y+e.height/2,t.bgLayer.add(new ai.Rect({x:u,y:m,offsetX:e.width/2,offsetY:e.height/2,rotation:e.rotation??0,width:e.width,height:e.height,...b,stroke:c,strokeWidth:d,cornerRadius:V(e.cornerRadius??4,0,Math.min(e.width,e.height)/2),opacity:h,listening:!1}))}else if(e.kind==="ellipse"&&e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null){u=e.x+e.width/2,m=e.y+e.height/2;let b=n?{fillLinearGradientStartPoint:{x:0,y:-e.height/2},fillLinearGradientEndPoint:{x:0,y:e.height/2},fillLinearGradientColorStops:[0,be(a,.3),1,we(a,.12)]}:{fill:a};t.bgLayer.add(new po.Ellipse({x:u,y:m,rotation:e.rotation??0,radiusX:e.width/2,radiusY:e.height/2,...b,stroke:c,strokeWidth:d,opacity:h,listening:!1}))}else if(e.kind==="polygon"&&e.points&&e.points.length){let b=e.points.flatMap(g=>[g.x,g.y]),f=U(e.points);u=e.points.reduce((g,v)=>g+v.x,0)/e.points.length,m=e.points.reduce((g,v)=>g+v.y,0)/e.points.length;let p=n?{fillLinearGradientStartPoint:{x:0,y:f.y},fillLinearGradientEndPoint:{x:0,y:f.y+f.height},fillLinearGradientColorStops:[0,be(a,.3),1,we(a,.12)]}:{fill:a};t.bgLayer.add(new fo.Line({points:b,closed:!0,x:u,y:m,offsetX:u,offsetY:m,rotation:e.rotation??0,...p,stroke:c,strokeWidth:d,opacity:h,listening:!1}))}if(e.label)if(n){let b=qa(t,u,m,e.label,a);t.primaryFocalLabels.set(b,22),t.freeTextById.set(e.id,{node:b,background:a,kind:"stage"})}else if(o){let b=kt(t,t.bgLayer,e.label,u,m,r?J(a,"#e6e9f0"):"#9aa3b5",r?18:12,!1);r&&t.primaryFocalLabels.set(b,18),t.freeTextById.set(e.id,{node:b,background:a,kind:"decor"})}else{let b=kt(t,t.bgLayer,e.label,u,m,"#cbd5e1",16,!0);t.freeTextById.set(e.id,{node:b,background:a,kind:"decor"})}}function qa(t,e,i,n,r){let o=J(r,"#e6e9f0"),s=new li.Text({x:e,y:i,text:n.toUpperCase(),fontSize:22,fontStyle:"700",letterSpacing:4,fontFamily:t.labelFont(),fill:o,listening:!1,perfectDrawEnabled:!1});return s.offsetX(s.width()/2),s.offsetY(s.height()/2),t.bgLayer.add(s),s}function xo(t,e){let i=t.catColor.get(e.categoryKey)??"#6e7bff",n=t.canvasBackground,r=pr(i,n,He),o=t.theme.textColor??"#e6e9f0",s=J(r,o),a=Ze(e.points,e.holes,{fill:i,opacity:He,stroke:i,strokeWidth:1.5,cornerRadius:e.cornerRadius});a.setAttr("gaId",e.id),a.on("click tap",u=>{t.isGhostClick(u)||t.opts.onGAClick?.(e.id)}),a.on("mouseenter",()=>{t.container.style.cursor="pointer"}),a.on("mouseleave",()=>{t.container.style.cursor="default"}),t.bgLayer.add(a);let l=ot(e.points,e.holes),c=t.sections.find(u=>Y(l,u.outline,u.holes)),d=kt(t,t.bgLayer,e.displayLabel??e.label,l.x,l.y-8,s,dr,!1),h=kt(t,t.bgLayer,`cap ${e.capacity}`,l.x,l.y+10,s,ur,!1);t.freeTextById.set(`${e.id}:label`,{objectId:e.id,node:d,background:r,kind:"ga-label",categoryKey:e.categoryKey}),t.freeTextById.set(`${e.id}:capacity`,{objectId:e.id,node:h,background:r,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:a,effectiveBackground:r,...c?{sectionId:c.logicalId}:{}})}function kt(t,e,i,n,r,o,s,a){let l=new li.Text({x:n,y:r,text:i,fontSize:s,fontStyle:a?"700":"500",fontFamily:t.labelFont(),fill:o,listening:!1,perfectDrawEnabled:!1});return l.offsetX(l.width()/2),l.offsetY(l.height()/2),e.add(l),l}function wo(t,e){let i=[],n=e.theme.background??"#0e1117",r=new Map,o=(c,d)=>{let h=r.get(c)??[];h.push(d),r.set(c,h)};for(let c of e.seats){if(c.kind==="booth")continue;let d=c.logicalRowId??c.rowId;o(d,c),d!==c.rowId&&o(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 u=c.segmentedRow&&!d?c.segmentedRow.groupId:c.id,m=(r.get(u)??[]).slice().sort((R,S)=>s(R)-s(S));if(!m.length)continue;let b=m[0],f=m[m.length-1],p=h?.labelStyle,g=J(n,p?.color??e.theme.rowLabelColor??e.theme.textColor??"#e6e9f0",Vt),v=p?.size??12,y=h?.rotation??0,x=c.segmentedRow?.displayLabel??c.displayLabel??c.label,I=e.objectFilteredOut(c)?.15:1,k=e.seatSection.get(b.id),w=k?[...new Set([k.id,k.logicalId,k.zone].filter(R=>!!R))]:void 0,M=(R,S,T)=>i.push({text:x,x:R,y:S,rotation:y,fontSize:v,ink:g,opacity:I,...w?.length?{focusKeys:w}:{},...T?{automaticAway:T}:{}});if(h?.position){M(h.position.x,h.position.y);continue}let C=e.seatR+12,L=h?.positionPreset??"start";if(L==="start"||L==="both"){let R=c.rotation*Math.PI/180,S={x:-Math.cos(R),y:-Math.sin(R)};M(b.x+S.x*C,b.y+S.y*C,S)}if(L==="end"||L==="both"){let R=(c.rotation+c.curve)*Math.PI/180,S={x:Math.cos(R),y:Math.sin(R)};M(f.x+S.x*C,f.y+S.y*C,S)}}let a=(e.seatR+12)*2.2,l=[];for(let c of i){let d=l.find(h=>h.text===c.text&&Math.hypot(h.x-c.x,h.y-c.y)<=a);if(d){d.x=(d.x+c.x)/2,d.y=(d.y+c.y)/2;continue}l.push(c)}return l}function nn(t,e,i=ee){let n=t.rotation()*Math.PI/180,r=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),s=(t.width()*r+t.height()*o)/2+i,a=(t.width()*o+t.height()*r)/2+i;return{x:e.x-s,y:e.y-a,width:s*2,height:a*2}}function Io(t,e,i,n){let r={x:e.x,y:e.y},o=e.automaticAway;if(!o)return r;let s={x:-o.y,y:o.x},a=Math.max(7,Math.min(16,e.fontSize*.75)),l=[{x:0,y:0}];for(let u=1;u<=4;u++){let m=a*u;l.push({x:s.x*m,y:s.y*m},{x:-s.x*m,y:-s.y*m},{x:o.x*m,y:o.y*m},{x:(o.x+s.x)*m,y:(o.y+s.y)*m},{x:(o.x-s.x)*m,y:(o.y-s.y)*m})}let c=r,d=1/0,h=1/0;for(let u of l){let m={x:r.x+u.x,y:r.y+u.y},b=nn(t,m),p=(n?Kt(n,b,{mode:"overlap"}).length:0)+i.collisionCount(b),g=Math.hypot(u.x,u.y);if((p<d||p===d&&g<h)&&(c=m,d=p,h=g),p===0)break}return c}function To(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(le(e.outlineTint,.5)),e.outlinePoly.fill(le(e.outlineTint,.08)),e.outlinePoly.strokeWidth(1.75),e.outlinePoly.shadowOpacity(0);return}let n=zt("#f4b740","#ef4444",i);e.outlinePoly.stroke(le(n,.72+i*.25)),e.outlinePoly.fill(le(n,.08+i*.13)),e.outlinePoly.strokeWidth(2+i*3.5),e.outlinePoly.shadowColor(n),e.outlinePoly.shadowBlur(4+i*12),e.outlinePoly.shadowOpacity(.25+i*.45)}function rn(t,e){return t.closedSections.has(e.id)||t.closedSections.has(e.logicalId)||e.zone!=null&&t.closedSections.has(e.zone)}function on(t,e){return rn(t,e)?"closed":e.total<=0?"normal":e.free<=0?"sold-out":e.free<=e.total*Wr?"nearly-gone":"normal"}function Lo(t,e){let i=on(t,e);e.blockPoly.fill(qe(ue(t.canvasBackground),i)),e.subLabel.text(i==="sold-out"?oe("map.soldOut"):oe("map.seatsLeft",{count:e.free})),e.subLabel.offsetX(e.subLabel.width()/2)}function Co(t,e){let i,n;t.reducedMotion?(i=e<=Te?1:0,n=e<=Ye?1:0):(i=V((Xe-e)/(Xe-Te),0,1),n=V((Te-e)/(Te-Ye),0,1)),(t.floorOverview||t.focusedSectionId)&&(i=0,n=0);let r=!t.floorOverview&&!t.focusedSectionId&&e<se;r&&(i=1),t.zones.length||(n=0);let o=t.viewMode==="perspective"&&t.glideInProgress&&t.seatCount>2500;t.seatLayer.opacity(r||o?0:1-i);let s=t.stageScaleX,a=!t.glideInProgress&&(t.lodScale===0||Math.abs(e-t.lodScale)/(t.lodScale||1)>.08);a&&t.setLodScale(e);let l=t.focusedSectionId,c=ue(t.canvasBackground),d=V((i-.2)/.8,0,1);for(let u of t.sections){let m=t.hasFocusDimOverlay?1:l&&u.id!==l&&u.logicalId!==l&&u.zone!==l?yt:1;u.outlinePoly.opacity(r?0:(1-i)*m),u.blockPoly.opacity(Gr*i*m),u.blockPoly.stroke(c.sectionStroke),u.blockPoly.strokeWidth(Jt/Math.max(s,1e-4));let b=u.blockPoly.fill(),f=J(typeof b=="string"?b:u.baseFill,u.preferredInk);u.nameLabel.fill(f),u.subLabel.fill(f),a&&d>.01&&Qa(t,u,s),u.nameLabel.opacity(u.nameLabelFits?d*(1-n)*m:0),u.subLabel.opacity(0)}let h=n*(1-t.isoT);for(let u of t.zones)u.back.opacity(h),u.label.opacity(h),u.sub&&u.sub.opacity(h),a&&Ja(t,u,s);if(!t.glideInProgress&&(d>.01||h>.01)){Za(t,s),$a(t.sections);for(let u of t.zones){let m=u.label.opacity();u.back.opacity(m),u.sub&&u.sub.opacity(m)}}t.bgLayer.batchDraw()}function $a(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 n=i.filter(r=>r.nameLabel.opacity()>.05).sort((r,o)=>{let s=U(r.outline),a=U(o.outline);return a.width*a.height-s.width*s.height});for(let r of n.slice(1))r.nameLabel.opacity(0)}}function Za(t,e){let n=[],r=a=>{let l=t.worldToScreen({x:a.x(),y:a.y()}),c=U(ni({x:0,y:0},a.width()*e,a.height()*e,a.rotation()));return{x:l.x-c.width/2,y:l.y-c.height/2,w:c.width,h:c.height}};for(let a of t.zones){if(a.label.opacity()<=.05)continue;let l=t.worldToScreen(a.anchor),c=a.back.width()*e,d=a.back.height()*e;n.push({node:a.label,tier:0,section:!1,box:{x:l.x-c/2,y:l.y-d/2,w:c,h:d}})}for(let a of t.sections)a.nameLabel.opacity()>.05&&n.push({node:a.nameLabel,tier:1,section:!0,area:a.labelArea,box:r(a.nameLabel)});if(n.length<2)return;n.sort((a,l)=>a.tier-l.tier||(l.area??0)-(a.area??0)||a.box.y-l.box.y||a.box.x-l.box.x);let o=[],s=a=>o.some(l=>a.x<l.x+l.w+4&&l.x<a.x+a.w+4&&a.y<l.y+l.h+4&&l.y<a.y+a.h+4);for(let a of n){if(!s(a.box)){o.push(a.box);continue}let l=!1;if(a.section){let c=a.node.fontSize(),d=a.node.y();for(let h of Hr){let u=c*h;if(u*e<Zi)break;xt(a.node,u,d);let m=r(a.node);if(!s(m)){o.push(m),l=!0;break}}l||xt(a.node,c,d)}l||a.node.opacity(0)}}function xt(t,e,i){t.fontSize(Math.max(1,e)),t.offsetX(t.width()/2),t.offsetY(t.height()/2),t.y(i)}function Qa(t,e,i){e.subLabelFits=!1;let n=Math.min(1,Math.max(.66,t.stageWidth/900)),r=Nr*e.labelScale*n,o=Math.min(Zi*e.labelScale,r);for(let s=r;s>=o;s-=1)for(let a of[0,-90]){e.nameLabel.rotation(a),xt(e.nameLabel,s/i,e.nameLabel.y());for(let l of e.labelAnchors){e.nameLabel.position(l);let c=8/i;if(ri(l,e.nameLabel.width()+c,e.nameLabel.height()+c,a,e.outline,e.holes)){e.nameLabelFits=!0;return}}}e.nameLabel.position(e.centroid),e.nameLabel.rotation(0),e.nameLabelFits=!1}function Ja(t,e,i){let n=Math.min(1,Math.max(.66,t.stageWidth/900)),r=10*n/i,o=6*n/i,s=e.sub?3*n/i:0;xt(e.label,ei*n/i,e.anchor.y),e.sub&&xt(e.sub,Vr*n/i,e.anchor.y);let a=Math.max(e.label.width(),e.sub?.width()??0)+r*2,l=e.label.height()+(e.sub?s+e.sub.height():0)+o*2;e.label.y(e.anchor.y-(e.sub?(s+e.sub.height())/2:0)),e.sub&&e.sub.y(e.anchor.y+(e.label.height()+s)/2),e.back.position(e.anchor),e.back.size({width:a,height:l}),e.back.offset({x:a/2,y:l/2}),e.back.cornerRadius(7*n/i),e.back.strokeWidth(1/i);let c=e.back.getAbsolutePosition(),d=62+l*i/2;if(c.y<d){let h=(d-c.y)/i;e.label.y(e.label.y()+h),e.sub&&e.sub.y(e.sub.y()+h),e.back.y(e.back.y()+h)}}var Mo=require("konva/lib/Group"),sn=require("konva/lib/shapes/Line"),Po=require("konva/lib/shapes/Rect"),an=require("konva/lib/shapes/Text");function Ro(t){let e=t.exportMode?Math.max(t.effScale(),Se):t.effScale(),i=e>=Se;for(let[o,s]of t.boothLabelById){let a=t.circleById.get(o);s.visible(Ie(s.fontSize(),e)&&!!a?.isVisible()&&t.focusedSeatOpacity(o,a?.getAbsoluteOpacity()??1)>=.5)}t.labelGroup.destroyChildren(),t.labelLiftGroups.clear(),t.seatLabelById.clear();let n=0;if(i)for(let o of t.visibleSeatCandidates()){if(o.kind==="booth")continue;let s=t.worldToScreen(o);if(s.x<-20||s.x>t.stage.width()+20||s.y<-20||s.y>t.stage.height()+20||t.accessGlyphById.has(o.id)&&t.accessGlyphShouldShow(o.id))continue;let a=t.circleById.get(o.id);if(!a?.isVisible()||t.focusedSeatOpacity(o.id,a.getAbsoluteOpacity())<.5)continue;let l=t.statusById.get(o.id)??"free",c=t.renderedSeatPoint(o),d=t.viewMode==="perspective"?t.perspectiveSeatScale.get(o.id)??1:1;if(l==="booked"||l==="held"&&!t.ownedHold.has(o.id)&&!t.opts.manageMode){let f=new Mo.Group({x:c.x,y:c.y,listening:!1});if(f.scale({x:d,y:d}),l==="held"?(f.add(new Po.Rect({x:-4.2,y:-.7,width:8.4,height:6.5,cornerRadius:1.3,stroke:"#ffffff",strokeWidth:1.25,listening:!1})),f.add(new sn.Line({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:"#ffffff",strokeWidth:1.2,lineCap:"round",lineJoin:"round",listening:!1}))):f.add(new sn.Line({points:[-4.2,4.2,4.2,-4.2],stroke:"#ffffff",strokeWidth:1.8,lineCap:"round",listening:!1})),t.seatLabelContainer(o.id).add(f),++n>=$i)break;continue}let u=ge*t.seatLabelScale(o),m=new an.Text({x:c.x,y:c.y,text:Ht(o.displayLabel??o.label),fontSize:u,fontStyle:"600",fontFamily:t.labelFont(),fill:a?t.seatLabelInk(o,a):t.seatPreferredLabelInk(o),listening:!1,perfectDrawEnabled:!1}),b=t.seatR*2-3;if(m.width()>b&&m.fontSize(Math.max(mt,u*b/m.width())),m.width()>b+.01){m.destroy();continue}if(!Ie(m.fontSize(),e)){m.destroy();continue}if(m.offsetX(m.width()/2),m.offsetY(m.height()/2),m.scale({x:d,y:d}),t.seatLabelContainer(o.id).add(m),t.seatLabelById.set(o.id,m),++n>=$i)break}let r=new $e;for(let{node:o}of t.freeTextById.values()){if(!o.isVisible())continue;let s=o.getClientRect({relativeTo:t.bgLayer,skipShadow:!0,skipStroke:!0});r.insert({x:s.x-ee,y:s.y-ee,width:s.width+ee*2,height:s.height+ee*2})}for(let o of t.rowLabelPlan){let s=t.focusedSectionId!=null&&o.focusKeys?.includes(t.focusedSectionId),a=s?Math.max(o.fontSize,_r/Math.max(e,1e-4)):o.fontSize;if(!s&&!Ie(a,e))continue;let l=t.worldToScreen({x:o.x,y:o.y});if(l.x<-40||l.x>t.stage.width()+40||l.y<-40||l.y>t.stage.height()+40)continue;let c=new an.Text({x:o.x,y:o.y,text:o.text,fontSize:a,fontStyle:"700",fontFamily:t.labelFont(),fill:o.ink,rotation:o.rotation,opacity:o.opacity,shadowColor:"#05070c",shadowBlur:o.ink.toLowerCase()==="#ffffff"?5:0,shadowOpacity:o.ink.toLowerCase()==="#ffffff"?.8:0,shadowForStrokeEnabled:!1,listening:!1,perfectDrawEnabled:!1});c.offsetX(c.width()/2),c.offsetY(c.height()/2);let d=t.resolveAutomaticRowLabelPosition(c,o,r);c.position(d),c.setAttr("rowLabel",!0),r.insert(t.rowLabelBox(c,d)),t.labelGroup.add(c)}t.isoT>0&&t.viewMode!=="perspective"&&t.applyUprightLabels(),t.overlayLayer.batchDraw()}function wt(t){return{th:Zt*Math.PI/180*t.isoT,sg:1-(1-gt)*t.isoT}}function Eo(t,e){let{th:i,sg:n}=wt(e),r=e.centre,o=t.x-r.x,s=t.y-r.y,a=o*Math.cos(i)-s*Math.sin(i),l=(o*Math.sin(i)+s*Math.cos(i))*n;return{x:r.x+a,y:r.y+l}}function Ao(t,e){let{th:i,sg:n}=wt(e),r=e.centre,o=t.x-r.x,a=(t.y-r.y)/n,l=o*Math.cos(i)+a*Math.sin(i),c=-o*Math.sin(i)+a*Math.cos(i);return{x:r.x+l,y:r.y+c}}function Bo(t,e){let{th:i,sg:n}=wt(e),r=t*e.isoT;return{x:-(r/n)*Math.sin(i),y:-(r/n)*Math.cos(i)}}function Oo(t,e,i){let n=kr(e);t.offset(i),t.position(re(e,i)),t.rotation(n.rotationDeg),t.scale({x:n.scaleX,y:n.scaleY}),t.skewX(n.skewX),t.skewY(0)}function Fo(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 _o(t,e){let i=Math.hypot(e.x-t.surfaceFocal.x,e.y-t.surfaceFocal.y),n=Math.max(0,i-t.frontDistanceWorld);return t.liftWorld+n*Math.tan(t.rakeDeg*Math.PI/180)}function Do(t,e,i){return t.perspectiveAffine?re(t.perspectiveAffine,e):re(i,e)}function zo(t,e){return e?re(e,t):t}function Go(t,e){let i=0;for(let h of t.seats){let u=Math.max(0,(h.eyeHeightM??j)-j);i=Math.max(i,u*_e)}for(let h of t.objects)h.type==="section"&&(i=Math.max(i,xe(h,{floorBaseHeightM:t.floorBaseHeightMFor(h.id)}).height*_e));let n=yr(t.bounds,i),r=Ut(n,n.target),o=Sr(r);e.seatLocal.clear(),e.seatProjected.clear(),e.seatDepth.clear(),e.seatScale.clear();let s=1/0,a=1/0,l=-1/0,c=-1/0;for(let h of t.seats){let u=Math.max(0,(h.eyeHeightM??j)-j),m=ie(n,h,u*_e),b={x:m.x,y:m.y};e.seatProjected.set(h.id,b),e.seatLocal.set(h.id,re(o,b)),e.seatDepth.set(h.id,m.depth),e.seatScale.set(h.id,m.scale),s=Math.min(s,m.x),a=Math.min(a,m.y),l=Math.max(l,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 u=ie(n,h,0);s=Math.min(s,u.x),a=Math.min(a,u.y),l=Math.max(l,u.x),c=Math.max(c,u.y)}let d=Math.max(24,t.seatR*3);return{camera:n,baseAffine:r,baseInverse:o,bounds:Number.isFinite(s)?{x:s-d,y:a-d,width:Math.max(1,l-s+d*2),height:Math.max(1,c-a+d*2)}:null}}function No(t,e,i){let n=i?[...i].map(r=>t.seatById.get(r)).filter(r=>!!r):e?t.seats:[...t.perspectiveAppliedSeats].map(r=>t.seatById.get(r)).filter(r=>!!r);for(let r of n){if(e&&t.perspectiveAppliedSeats.has(r.id))continue;let o=e?t.perspectiveSeatProjected.get(r.id)??r:r,s=e?t.perspectiveSeatScale.get(r.id)??1:1,a=t.circleById.get(r.id);a?.position(o),a?.scale({x:s,y:s});let l=t.accessRingById.get(r.id);l?.position(o),l?.scale({x:s,y:s});let c=t.accessGlyphById.get(r.id);if(c){let h=t.seatR*1.5/ce;c.position(o),c.scale({x:h*s,y:h*s})}let d=t.boothLabelById.get(r.id);d?.position(o),d?.scale({x:s,y:s}),e&&t.perspectiveAppliedSeats.add(r.id)}e||t.perspectiveAppliedSeats.clear()}function ln(t){return t?.getAttr?.("seatId")??void 0}var Tt=class Tt{constructor(e,i={}){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.circleById=new Map;this.boothDims=new Map;this.boothLabelById=new Map;this.seatLabelById=new Map;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.theme={};this.canvasBackground=tn;this.effSelection=vt;this.colorblind=!1;this.cbHueByKey=new Map;this.rowLabelPlan=[];this.catOrder=[];this.selection=new Set;this.selectionMarkers=new Map;this.ownedHold=new Set;this.selectionFocusId=null;this.hoveredId=null;this.focusedId=null;this.accessFilter=null;this.categoryHighlight=null;this.categoryFilter=null;this.commercialLimitedFilter=!1;this.sections=[];this.zones=[];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.focusBackdrop=null;this.focusDimOverlay=null;this.objectFloor=new Map;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.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.fitScale=1;this.seatR=ft;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.rafId=0;this.frames=0;this.lastFpsAt=0;this.recacheTimer=null;this.resizeObs=null;this.viewChangeRaf=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 n=this.focusedId?this.nearestSeat(this.focusedId,i):this.seats[0]?.id??null;n&&this.focusSeat(n);return}if((e.key==="Enter"||e.key===" ")&&this.focusedId){e.preventDefault(),this.toggleSeat(this.focusedId);let n=this.seatById.get(this.focusedId);n&&this.opts.onFocusSeat?.(n)}};this.container=e,this.opts={maxSelection:10,selectableStatuses:["free"],...i},this.exportMode=i.exportMode===!0,this.currency=i.currency;let n=It.Konva.pixelRatio;this.exportMode&&(this.dpr=1),It.Konva.pixelRatio=this.dpr,this.stage=new Ho.Stage({container:e,width:e.clientWidth||1,height:e.clientHeight||1,draggable:!1}),this.gestures=new oi(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",oe("map.aria")),e.addEventListener("keydown",this.onKeyDown)),this.bgLayer=new ci.Layer({listening:!this.exportMode}),this.seatLayer=new ci.Layer({listening:!this.exportMode}),this.overlayLayer=new ci.Layer({listening:!1}),this.labelGroup=new Le.Group({listening:!1}),this.overlayLayer.add(this.labelGroup),this.fgDecorGroup=new Le.Group({listening:!1}),this.overlayLayer.add(this.fgDecorGroup),this.hoverRing=new ve.Circle({radius:ft+2,stroke:"#ffffff",strokeWidth:2,opacity:.85,listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),this.overlayLayer.add(this.hoverRing),this.focusRing=new ve.Circle({radius:ft+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&&(It.Konva.pixelRatio=n),this.exportMode||(this.wireInteraction(),this.startFpsLoop()),!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 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()}}setChart(e,i){if(e!==this.chartDoc&&(this.stacked=!1,this.floorOverview=!1),this.cancelAssetLoads(),this.chartDoc=e,this.activeFloorId=i?.floorId??st(e)[0].id,this.objectFloor.clear(),e.floors&&e.floors.length>1)for(let r of e.floors)for(let o of r.objects)this.objectFloor.set(o.id,r.id),o.type==="section"&&o.logicalSectionId&&this.objectFloor.set(o.logicalSectionId,r.id);let n=this.floorView(e);this.focusedId=null,this.focusRing.visible(!1),this.bgLayer.destroyChildren(),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.fgDecorGroup.destroyChildren(),this.circleById.clear(),this.boothDims.clear(),this.boothLabelById.clear(),this.seatLabelById.clear(),this.accessRingById.clear(),this.accessGlyphById.clear(),this.freeTextById.clear(),this.iconNodeById.clear(),this.primaryFocalLabels.clear(),this.gaById.clear();for(let r of this.selectionMarkers.values())r.destroy();this.selectionMarkers.clear(),this.ownedHold.clear(),this.selectionFocusId=null,this.statusById.clear(),this.selection.clear(),this.seatById.clear(),this.seatIndex=null,this.cached=!1,this.accessFilter=null,this.sections=[],this.zones=[],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=n.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=V(this.theme.seatScale??1,.7,1.6)*ft,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.catPrice.clear(),this.catOrder=e.categories.map(r=>r.key),this.cbHueByKey.clear(),[...this.catOrder].sort().forEach((r,o)=>{this.cbHueByKey.set(r,ii[o%ii.length])});for(let r of e.categories)this.catColor.set(r.key,r.color),typeof r.price=="number"&&this.catPrice.set(r.key,r.price);for(let r of n.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(o=>({x:o.x,y:o.y}))}:{}});this.seats=me(n,{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=gr(this.seats,{seatRadius:this.seatR}),this.bounds=Ft(n),this.isoCentre={x:this.bounds.x+this.bounds.width/2,y:this.bounds.y+this.bounds.height/2},this.buildPerspectiveProjection(n),this.renderBackground(n),this.unsectionedSeatGroup=new Le.Group({listening:!this.exportMode}),this.seatLayer.add(this.unsectionedSeatGroup),this.renderSeats(),this.buildRowLabelPlan(n),this.overlayLayer.add(this.labelGroup),this.overlayLayer.add(this.fgDecorGroup),this.overlayLayer.add(this.hoverRing),this.overlayLayer.add(this.focusRing),this.zoomToFit()}floorView(e){if(!e.floors||!e.floors.length)return{...e,referenceImage:void 0,backgroundImage:Ke(e)};if(this.floorOverview&&e.floors.length>=2)return{...zi(e),referenceImage:void 0,backgroundImage:Ke(e)};if(this.stacked&&e.floors.length>=2)return{...Di(e),referenceImage:void 0,backgroundImage:Ke(e)};let i=e.floors.find(n=>n.id===this.activeFloorId)??e.floors[0];return{...e,objects:i.objects,focalPoint:i.focalPoint,referenceImage:void 0,backgroundImage:Ke(i),floors:void 0}}floorBaseHeightMFor(e){let i=this.chartDoc?.floors;if(!i?.length)return 0;let n=this.stacked&&e?this.objectFloor.get(e)??this.activeFloorId:this.activeFloorId;return i.find(r=>r.id===n)?.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}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?st(this.chartDoc).map(e=>({id:e.id,name:e.name})):[]}getActiveFloorId(){return this.activeFloorId}setStatus(e,i){let n=!1,r=this.hasSections?new Set:null;for(let o of e){if(!this.statusById.has(o))continue;let s=this.statusById.get(o);this.statusById.set(o,i);let a=this.circleById.get(o);if(a&&(this.paintSeat(a,o),n=!0),r){let l=this.seatSection.get(o);l&&(s==="free"!=(i==="free")&&(l.free+=i==="free"?1:-1),r.add(l))}}if(r&&r.size){for(let o of r)this.refreshSectionFill(o);this.bgLayer.batchDraw()}n&&(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(r=>this.statusById.has(r))),n=new Set([...this.ownedHold,...i]);this.ownedHold=i;for(let r of n){let o=this.circleById.get(r);o&&this.paintSeat(o,r),this.syncSelectionMarker(r)}n.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 n=this.selectionFocusId;this.selectionFocusId=i;for(let r of this.seats){let o=this.circleById.get(r.id);o&&this.paintSeat(o,r.id)}n&&this.syncSelectionMarker(n),i&&this.syncSelectionMarker(i);for(let[r,o]of this.selectionMarkers)o.opacity(!i||r===i?1:.2);this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.overlayLayer.batchDraw()}getStatus(e){return this.statusById.get(e)??"free"}getSelection(){let e=[];for(let i of this.selection){let n=this.seatById.get(i);n&&e.push(n)}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 n of e){if(this.selection.has(n)||!this.isSelectable(n))continue;if(this.selection.size>=this.opts.maxSelection){this.opts.onSelectionLimit?.(this.opts.maxSelection);break}this.setSelected(n,!0,!0);let r=this.seatById.get(n);r&&i.push(r)}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(n=>!this.isSelectable(n));i.length&&this.deselect(i),!e.manageMode&&this.selection.size&&this.clearSelection(),this.container.style.cursor="default",this.overlayLayer.batchDraw()}setSectionHeat(e){this.sectionHeat.clear();for(let[i,n]of Object.entries(e??{}))Number.isFinite(n)&&this.sectionHeat.set(i,Math.max(0,Math.min(1,n)));for(let i of this.sections)this.refreshSectionHeat(i);this.bgLayer.batchDraw()}deselect(e){let i=!1;for(let n of e)this.selection.has(n)&&(this.setSelected(n,!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),n=[];for(let r of this.seats)i.has(r.label)&&this.isSelectable(r.id)&&n.push(r.id);return this.selectMany(n)}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=[],n=new Set;for(let r of this.sections)if(!(r.id!==e&&r.logicalId!==e&&r.zone!==e))for(let o of r.memberIds){if(n.has(o)||(n.add(o),!this.isSelectable(o)))continue;let s=this.seatById.get(o);s&&i.push(s)}return i}selectMany(e){let i=e.filter(r=>!this.selection.has(r));if(!i.length)return this.getSelection();let n=this.selection.size+i.length<=Dr;for(let r of i)if(n)this.setSelected(r,!0,!0);else{this.selection.add(r);let o=this.circleById.get(r);o&&this.paintSeat(o,r)}return this.cached||this.seatLayer.batchDraw(),this.overlayLayer.batchDraw(),this.getSelection()}beginMarquee(e){let i=this.screenToWorld(e),n=this.stage.scaleX()||1,r=new Ee.Rect({x:i.x,y:i.y,width:0,height:0,stroke:this.effSelection,strokeWidth:1.5/n,dash:[5/n,4/n],fill:"rgba(110,123,255,0.10)",listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});this.overlayLayer.add(r),this.marquee={start:i,rect:r},this.marqueeCur=i,this.overlayLayer.batchDraw()}updateMarquee(e){if(!this.marquee)return;let i=this.screenToWorld(e),{start:n,rect:r}=this.marquee;r.setAttrs({x:Math.min(n.x,i.x),y:Math.min(n.y,i.y),width:Math.abs(i.x-n.x),height:Math.abs(i.y-n.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 n=Math.min(e.start.x,i.x),r=Math.max(e.start.x,i.x),o=Math.min(e.start.y,i.y),s=Math.max(e.start.y,i.y),a=this.stage.scaleX()||1;if((r-n)*a<4&&(s-o)*a<4){this.selection.size&&(this.clearSelection(),this.opts.onMarquee?.([]));return}let l=[];for(let c of this.seats){let d=this.renderedSeatPoint(c);d.x<n||d.x>r||d.y<o||d.y>s||this.isSelectable(c.id)&&l.push(c.id)}this.selectMany(l),this.opts.onMarquee?.(this.getSelection())}flashSeat(e,i="#f43f5e"){let n=this.seatById.get(e);if(!n)return;let r=this.renderedSeatPoint(n),o=new ve.Circle({x:r.x,y:r.y,radius:this.seatR,stroke:i,strokeWidth:3,opacity:.9,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),s=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e)??1:1;o.scale({x:s,y:s}),this.overlayLayer.add(o);let a=performance.now(),l=620,c=d=>{if(!o.getLayer())return;let h=Math.min(1,(d-a)/l);o.radius(this.seatR*(1+h*1.8)),o.opacity(.9*(1-h)),this.overlayLayer.batchDraw(),h<1?requestAnimationFrame(c):(o.destroy(),this.overlayLayer.batchDraw())};requestAnimationFrame(c)}flashSection(e,i="#22a06b"){let n=this.sections.filter(r=>r.id===e||r.zone===e);if(n.length)for(let r of n){let o=this.viewMode==="perspective"&&r.perspectiveAffine?r.outline.map(u=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,u))):r.outline.map(u=>{let m=r.liftWorld>0?this.isoLiftLocal(r.liftWorld):{x:0,y:0};return{x:u.x+m.x,y:u.y+m.y}}),s=o.reduce((u,m)=>({x:u.x+m.x,y:u.y+m.y}),{x:0,y:0});s.x/=o.length,s.y/=o.length;let a=new Qe.Line({x:s.x,y:s.y,points:o.flatMap(u=>[u.x-s.x,u.y-s.y]),closed:!0,stroke:i,strokeWidth:3,strokeScaleEnabled:!1,opacity:.92,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!0,shadowColor:i,shadowBlur:14,shadowOpacity:.7});this.overlayLayer.add(a),this.overlayLayer.batchDraw();let l=()=>{a.getLayer()&&(a.destroy(),this.overlayLayer.batchDraw())};if(this.reducedMotion||typeof document<"u"&&document.hidden){setTimeout(l,520);continue}let c=performance.now(),d=820,h=u=>{if(this.destroyed||!a.getLayer())return;let m=Math.min(1,(u-c)/d),f=1+(1-Math.pow(1-m,3))*.04;a.scale({x:f,y:f}),a.opacity(.92*(1-m)),this.overlayLayer.batchDraw(),m<1?requestAnimationFrame(h):l()};requestAnimationFrame(h)}}nearestSeat(e,i){let n=this.seatById.get(e);if(!n)return null;let r=this.viewMode==="perspective"?this.perspectiveSeatProjected.get(n.id)??n:n,o=null,s=1/0;for(let a of this.seats){if(a.id===e)continue;let l=this.viewMode==="perspective"?this.perspectiveSeatProjected.get(a.id)??a:a,c=l.x-r.x,d=l.y-r.y,h=c*i.x+d*i.y;if(h<=.5)continue;let u=Math.abs(c*i.y-d*i.x),m=h+u*2.5;m<s&&(s=m,o=a.id)}return o}focusSeat(e){let i=this.seatById.get(e);if(!i)return;this.focusedId=e,this.focusRing.radius(this.seatR+3),this.focusRing.position(this.renderedSeatPoint(i));let n=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e)??1:1;this.focusRing.scale({x:n,y:n}),this.focusRing.visible(!0),this.ensureVisible(i),this.overlayLayer.batchDraw(),this.opts.onFocusSeat?.(i)}ensureVisible(e){let i=this.stage.width(),n=this.stage.height(),r=Math.max(this.stage.scaleX(),Pe*1.2),o=this.worldToScreen(e),s=70,a=o.x<s||o.x>i-s||o.y<s||o.y>n-s;if(this.stage.scaleX()<r||a){let l=this.renderedSeatPoint(e),c=this.viewMode==="perspective"&&this.perspectiveBaseAffine?re(this.perspectiveBaseAffine,l):this.isoT===0?l:this.isoForward(l);this.stage.scale({x:r,y:r}),this.stage.position({x:i/2-c.x*r,y:n/2-c.y*r}),this.afterViewChange(),this.stage.batchDraw()}}zoomToFit(){let e=this.stage.width(),i=this.stage.height(),n=this.viewMode==="perspective"&&this.perspectiveBounds?this.perspectiveBounds:this.bounds;if(this.fitScale=Math.min(e/n.width,i/n.height)||1,this.opts.portraitFitCrop&&!this.exportMode){let o=e/n.width<=i/n.height,s=n.height*this.fitScale;o&&s<.55*i&&(this.fitScale=Math.min(this.fitScale*1.3,.62*i/n.height))}let r=this.fitScale;this.stage.scale({x:r,y:r}),this.stage.position({x:(e-n.width*r)/2-n.x*r,y:(i-n.height*r)/2-n.y*r}),this.afterViewChange(),this.stage.batchDraw()}refitCurrentView(){if(this.focusedSectionId&&this.sectionBounds(this.focusedSectionId)){this.focusRegion(this.focusedSectionId,{animate:!1});return}this.zoomToFit()}zoomIn(){let e={x:this.stage.width()/2,y:this.stage.height()/2};this.zoomAbout(this.stage.scaleX()*Tt.ZOOM_STEP,e)}zoomOut(){let e={x:this.stage.width()/2,y:this.stage.height()/2};this.zoomAbout(this.stage.scaleX()/Tt.ZOOM_STEP,e)}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(),n=e.id,r=typeof n=="string"?this.seatById.get(n):void 0;if(this.viewMode==="perspective"&&this.perspectiveBaseAffine){let a=r?this.perspectiveSeatProjected.get(r.id)??re(this.perspectiveBaseAffine,e):re(this.perspectiveBaseAffine,e);return{x:a.x*i+this.stage.x(),y:a.y*i+this.stage.y()}}let o=r?this.renderedSeatPoint(r):e,s=this.isoT===0?o:this.isoForward(o);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.updateAccessGlyphs(this.effScale());for(let n of this.seats){let r=this.circleById.get(n.id);r&&this.paintSeat(r,n.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((n,r)=>n===e[r])}setCommercialLimitedFilter(e){if(this.commercialLimitedFilter!==e){this.commercialLimitedFilter=e;for(let i of this.seats){let n=this.circleById.get(i.id);n&&this.paintSeat(n,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(!(i===null&&this.categoryFilter===null||i!==null&&this.categoryFilter!==null&&i.size===this.categoryFilter.size&&[...i].every(r=>this.categoryFilter.has(r)))){this.categoryFilter=i;for(let r of this.seats){let o=this.circleById.get(r.id);o&&this.paintSeat(o,r.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.applyGAFilterState()}}gaCategoryDimmed(e){return!!(this.categoryHighlight&&e!==this.categoryHighlight||this.categoryFilter&&!this.categoryFilter.has(e))}applyGAFilterState(){this.paintGAStateForView(),this.updateFreeTextVisibility(),this.bgLayer.batchDraw()}paintGAStateForView(){for(let e of this.gaById.values()){let i=!!(this.categoryFilter&&!this.categoryFilter.has(e.categoryKey)),n=!this.exportMode&&e.sectionId!=null&&this.effScale()<se;e.polygon.opacity(n?0:this.gaCategoryDimmed(e.categoryKey)?He*.08:He),e.polygon.listening(!this.exportMode&&!n&&!i)}}focusCategories(e){if(!e?.length){this.focusRegion(this.bounds,{durationMs:Qt});return}let i=new Set(e),n=this.seats.filter(c=>!i.has(c.categoryKey)||this.seatInClosedSection(c.id)?!1:(this.statusById.get(c.id)??"free")==="free"||this.ownedHold.has(c.id));if(!n.length)return;let r=1/0,o=-1/0,s=1/0,a=-1/0;for(let c of n){let d=this.renderedSeatPoint(c);r=Math.min(r,d.x),o=Math.max(o,d.x),s=Math.min(s,d.y),a=Math.max(a,d.y)}let l=Math.max(24,this.seatR*3);r-=l,o+=l,s-=l,a+=l,this.focusRegion({x:r,y:s,width:Math.max(40,o-r),height:Math.max(40,a-s)},{durationMs:Qt})}setViewMode(e){if(e==="perspective"){if(this.viewMode===e){this.afterViewChange();return}let a=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(a),this.zoomToFit();return}let i=e==="isometric"?1:0,n=this.viewMode==="perspective";if(this.viewMode=e,this.isoTarget=i,this.isoRaf&&(cancelAnimationFrame(this.isoRaf),this.isoRaf=0),n){this.isoT=i,this.applyIso(),this.afterViewChange();return}if(this.reducedMotion){this.isoT=i,this.applyIso(),this.afterViewChange();return}let r=this.isoT;if(r===i){this.applyIso(),this.afterViewChange();return}let o=performance.now(),s=a=>{if(this.destroyed)return;let l=Math.min(1,(a-o)/zr),c=l<.5?4*l*l*l:1-Math.pow(-2*l+2,3)/2;this.isoT=r+(this.isoTarget-r)*c,this.applyIso(),this.scheduleViewChange(),l<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}}isoParams(){return wt(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-gt)*this.isoT)}isoForward(e){return Eo(e,this.isoState)}isoInverse(e){return Ao(e,this.isoState)}buildPerspectiveProjection(e){let i=Go({seats:this.seats,objects:e.objects,bounds:this.bounds,seatR:this.seatR,floorBaseHeightMFor:n=>this.floorBaseHeightMFor(n)},{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,n){Oo(e,i,n)}resetContainerTransform(e){Fo(e)}sectionSurfaceHeight(e,i){return _o(e,i)}projectedSectionPoint(e,i){return Do(e,i,this.perspectiveBaseAffine)}perspectiveLocalPoint(e){return zo(e,this.perspectiveBaseInverse)}isoLiftLocal(e){return Bo(e,this.isoState)}resetLayerTransforms(e=!0){let i=e?[this.bgLayer,this.seatLayer,this.overlayLayer]:[this.bgLayer,this.overlayLayer];for(let n of i)n.position({x:0,y:0}),n.offset({x:0,y:0}),n.scale({x:1,y:1}),n.rotation(0),n.skewX(0),n.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 n=this.labelLiftGroups.get(i.id);n&&e&&this.resetContainerTransform(n),i.perspectiveAffine=void 0,i.perspectiveCorrection=void 0,i.perspectiveDepth=void 0}}get seatAnchorContext(){return{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){No(this.seatAnchorContext,e,i)}applyPerspective(e=!0){let i=this.perspectiveCamera,n=this.perspectiveBaseAffine,r=this.perspectiveBaseInverse;if(!i||!n||!r)return;let o=this.seats.length>2500&&this.sections.length>0;this.cached&&!o&&(this.seatLayer.clearCache(),this.seatLayer.listening(!0),this.cached=!1),this.resetLayerTransforms(e),this.resetSectionProjection(e);for(let a of[this.bgLayer,this.overlayLayer])this.setContainerAffine(a,n,i.target);this.perspectiveAppliedSeats.clear(),o||this.applyExactSeatAnchors(!0);for(let a of this.sections){let l=h=>this.sectionSurfaceHeight(a,h),c=Ut(i,a.centroid,l),d=vr(r,c);a.perspectiveAffine=c,a.perspectiveCorrection=d,a.perspectiveDepth=ie(i,a.centroid,l(a.centroid)).depth,this.setContainerAffine(a.liftGroupBg,d,a.centroid);for(let h=0;h<a.sideFaces.length;h++){let u=a.outline[h],m=a.outline[(h+1)%a.outline.length],b=this.perspectiveLocalPoint(ie(i,u,0)),f=this.perspectiveLocalPoint(ie(i,m,0)),p=this.perspectiveLocalPoint(ie(i,m,l(m))),g=this.perspectiveLocalPoint(ie(i,u,l(u)));a.sideFaces[h].points([b.x,b.y,f.x,f.y,p.x,p.y,g.x,g.y]),a.sideFaces[h].opacity(.9)}}let s=[...this.sections].sort((a,l)=>(l.perspectiveDepth??0)-(a.perspectiveDepth??0));for(let a of s)a.rootGroupBg.moveToTop(),a.liftGroupSeat.moveToTop();this.unsectionedSeatGroup?.moveToTop(),this.syncSeatOverlayPositions(),o||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:n}=this.isoParams(),r=Math.cos(i),o=n*Math.sin(i),s=-Math.sin(i),a=n*Math.cos(i),l=Math.sqrt(r*r+o*o),c=r*a-o*s,d=Math.atan2(o,r)*180/Math.PI,h=l,u=c/l,m=(r*s+o*a)/c,b=this.isoCentre;for(let f of[this.bgLayer,this.seatLayer,this.overlayLayer])f.position({x:b.x,y:b.y}),f.offset({x:b.x,y:b.y}),f.rotation(d),f.scaleX(h),f.scaleY(u),f.skewX(m),f.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-gt)*this.isoT),n=this.hasBoothText?[this.bgLayer,this.seatLayer,this.overlayLayer]:[this.bgLayer,this.overlayLayer];for(let r of n){let o=r.find("Text");for(let s of o){let a=s.getAttr("uprightBase");a==null&&(a=s.rotation(),s.setAttr("uprightBase",a)),s.rotation(a-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 n=this.isoLiftLocal(i.liftWorld);i.liftGroupBg?.position(n),i.liftGroupSeat.position(n),this.labelLiftGroups.get(i.id)?.position(n);let r=.9*e;for(let o=0;o<i.sideFaces.length;o++){let s=i.sideFaces[o],a=i.outline[o],l=i.outline[(o+1)%i.outline.length];s.points([a.x,a.y,l.x,l.y,l.x+n.x,l.y+n.y,a.x+n.x,a.y+n.y]),s.opacity(r)}}this.syncSeatOverlayPositions()}destroy(){this.destroyed=!0,this.cancelAssetLoads(),this.rafId&&cancelAnimationFrame(this.rafId),this.isoRaf&&cancelAnimationFrame(this.isoRaf),this.glideRaf&&cancelAnimationFrame(this.glideRaf),this.viewChangeRaf&&cancelAnimationFrame(this.viewChangeRaf),this.recacheTimer&&clearTimeout(this.recacheTimer),this.resizeObs?.disconnect(),this.gestures.detach(),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}focusedSeatOpacity(e,i){if(!this.focusedSectionId)return i;let n=this.seatSection.get(e);return i*(n&&this.sectionMatchesFocus(n)?1:yt)}sectionScreenBounds(e){if(this.viewMode==="perspective"&&e.perspectiveAffine){let s=this.stage.scaleX(),a=this.stage.x(),l=this.stage.y();return U(e.outline.map(c=>{let d=this.projectedSectionPoint(e,c);return{x:d.x*s+a,y:d.y*s+l}}))}let i=e.liftWorld>0?this.isoLiftLocal(e.liftWorld):{x:0,y:0},n=this.stage.scaleX(),r=this.stage.x(),o=this.stage.y();return U(e.outline.map(s=>{let a={x:s.x+i.x,y:s.y+i.y},l=this.isoT===0?a:this.isoForward(a);return{x:l.x*n+r,y:l.y*n+o}}))}updateSeatGroupVisibility(){let e=this.exportMode||this.effScale()>=se,i=this.viewMode==="perspective"&&this.glideInProgress&&this.seats.length>2500,n=96,r=this.stage.width(),o=this.stage.height();for(let s of this.sections){let a=!0;if(e){let c=this.sectionScreenBounds(s);a=c.x+c.width>=-n&&c.y+c.height>=-n&&c.x<=r+n&&c.y<=o+n,a&&this.viewMode==="perspective"&&!i&&this.applyExactSeatAnchors(!0,s.memberIds)}s.liftGroupSeat.setViewportCulled(!a),this.labelLiftGroups.get(s.id)?.setViewportCulled(!a)}this.unsectionedSeatGroup&&!this.unsectionedSeatGroup.visible()&&this.unsectionedSeatGroup.visible(!0),e&&this.viewMode==="perspective"&&!i&&this.applyExactSeatAnchors(!0,this.seats.filter(s=>!this.seatSection.has(s.id)).map(s=>s.id))}visibleSeatCandidates(){if(!this.sections.length)return this.seats;let e=[];for(let i of this.sections)if(!i.liftGroupSeat.isViewportCulled())for(let n of i.memberIds){let r=this.seatById.get(n);r&&e.push(r)}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 n=this.isoLiftLocal(i.liftWorld);return{x:e.x+n.x,y:e.y+n.y}}seatLabelContainer(e){let i=this.seatSection.get(e);if(!i)return this.labelGroup;let n=this.labelLiftGroups.get(i.id);return n||(n=new St({listening:!1}),n.setViewportCulled(i.liftGroupSeat.isViewportCulled()),n.position(this.viewMode==="perspective"?{x:0,y:0}:this.isoLiftLocal(i.liftWorld)),this.labelGroup.add(n),this.labelLiftGroups.set(i.id,n)),n}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 n=this.seatById.get(e);if(n){i.position(this.renderedSeatPoint(n));let r=this.viewMode==="perspective"?this.perspectiveSeatScale.get(n.id)??1:1;i.scale({x:r,y:r})}}}renderSeats(){let e=[...this.seats].sort((i,n)=>(this.perspectiveSeatDepth.get(n.id)??0)-(this.perspectiveSeatDepth.get(i.id)??0));for(let i of e){if(i.kind==="booth"){this.renderBoothUnit(i);continue}let n=this.seatContainer(i.id),r=i.wheelchairSpaceType==="no-seat"?new Ee.Rect({x:i.x,y:i.y,width:this.seatR*2,height:this.seatR*2,offsetX:this.seatR,offsetY:this.seatR,cornerRadius:2,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}):new ve.Circle({x:i.x,y:i.y,radius:this.seatR,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0});if(r.setAttr("seatId",i.id),this.circleById.set(i.id,r),this.paintSeat(r,i.id),n.add(r),i.accessible){if(i.wheelchairSpaceType!=="no-seat"){let o=new ve.Circle({x:i.x,y:i.y,radius:this.seatR+1.5,stroke:Rt(i.accessibility),strokeWidth:2.5,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});this.accessRingById.set(i.id,o),n.add(o)}if(i.accessibility?.includes("wheelchair")&&ji(i.accessibility)){let o=this.buildAccessGlyph(i,typeof r.fill()=="string"?r.fill():"");this.accessGlyphById.set(i.id,o),n.add(o)}}}}renderBoothUnit(e){let i=this.seatContainer(e.id),n=this.boothDims.get(e.rowId)??{width:40,height:30,rotation:0},r=e.x,o=e.y,s;n.points&&n.points.length>=3?(s=new Qe.Line({x:e.x,y:e.y,points:n.points.flatMap(l=>[l.x,l.y]),closed:!0,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}),r=e.x+n.points.reduce((l,c)=>l+c.x,0)/n.points.length,o=e.y+n.points.reduce((l,c)=>l+c.y,0)/n.points.length):s=new Ee.Rect({x:e.x,y:e.y,width:n.width,height:n.height,offsetX:n.width/2,offsetY:n.height/2,rotation:n.rotation,cornerRadius:4,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}),s.setAttr("seatId",e.id),this.circleById.set(e.id,s),i.add(s);let a=new Ce.Text({x:r,y:o,text:e.displayLabel??e.label,fontSize:Ne,fontStyle:"600",fontFamily:this.labelFont(),fill:this.theme.seatLabelColor??si,listening:!1,perfectDrawEnabled:!1});a.offsetX(a.width()/2),a.offsetY(a.height()/2),a.visible(!1),this.hasBoothText=!0,this.boothLabelById.set(e.id,a),i.add(a),this.paintSeat(s,e.id)}buildAccessGlyph(e,i){let n=this.seatR*1.5/ce;return new Vo.Path({x:e.x,y:e.y,data:ji(e.accessibility??[])??"",offsetX:ce/2,offsetY:ce/2,scaleX:n,scaleY:n,fill:Ki(i),listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1})}updateAccessGlyphs(e){if(this.accessGlyphById.size)for(let[i,n]of this.accessGlyphById){let r=this.viewMode==="perspective"?this.perspectiveSeatScale.get(i)??1:1,o=this.seatR*1.5/ce*r,a=this.accessGlyphFilterEmphasized(i)?Br:Ar,l=Math.max(o,a/(ce*Math.max(e,.001)));n.scale({x:l,y:l}),n.visible(this.accessGlyphShouldShow(i))}}accessGlyphFilterEmphasized(e){let i=this.seatById.get(e),n=this.accessFilter;return!!i&&n!==null&&!!i.accessibility?.includes("wheelchair")&&(n.length===0||n.includes("wheelchair"))&&en(i,n)}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)}seatBaseColor(e){return this.colorblind?this.cbHueByKey.get(e)??ii[0]:this.catColor.get(e)??"#6e7bff"}seatLabelScale(e){return(e.labelStyle?.size??18)/18}seatPreferredLabelInk(e){return e.labelStyle?.color??this.theme.seatLabelColor??si}seatLabelInk(e,i){let n=i.fill();return J(typeof n=="string"?n:"",this.seatPreferredLabelInk(e),Vt)}paintSeat(e,i){let n=this.seatById.get(i),r=this.statusById.get(i)??"free",o=this.selection.has(i),s=this.seatBaseColor(n.categoryKey),a=this.boothLabelById.get(i);switch(e.dash([]),e.strokeWidth(0),e.stroke(""),e.opacity(1),r){case"free":e.fill(o&&this.effSelection===vt?we(s,.28):s);break;case"held":this.ownedHold.has(i)?(e.fill(we(s,this.effSelection===vt?.24:.1)),e.stroke(this.effSelection),e.strokeWidth(3)):e.fill(jr);break;case"booked":this.colorblind?(e.fill("rgba(0,0,0,0)"),e.stroke(ti),e.strokeWidth(1.5),e.opacity(.9)):(e.fill(ti),e.opacity(.45));break;case"not_for_sale":e.fill(ti),e.stroke(Kr),e.strokeWidth(1),e.dash([2,2]);break}if(n.wheelchairSpaceType==="no-seat"&&r==="free"&&(e.stroke(Rt(n.accessibility)),e.strokeWidth(o?3:2),e.dash([3,2])),a&&(a.text(r==="booked"?"SOLD":r==="held"?"HELD":n.label),a.fontSize(r==="free"?10:Math.min(10,Math.max(6,this.boothDims.get(n.rowId)?.width??40)/6)),a.fontStyle(r==="free"?"600":"800"),a.fill(r==="free"?this.theme.seatLabelColor??si:"#ffffff"),a.offsetX(a.width()/2),a.offsetY(a.height()/2)),this.accessFilter&&r==="free"&&!o&&!en(n,this.accessFilter)&&e.opacity(.25),this.categoryHighlight&&r==="free"&&!o&&n.categoryKey!==this.categoryHighlight&&e.opacity(.25),this.categoryFilter&&r==="free"&&!o&&!this.categoryFilter.has(n.categoryKey)&&e.opacity(.22),this.commercialLimitedFilter&&r==="free"&&!o&&(n.commercial?.restrictedView||n.commercial?.obstructedView)&&e.opacity(.22),this.dimmedSections.size){let d=this.seatSection.get(i);d&&(this.dimmedSections.has(d.id)||this.dimmedSections.has(d.logicalId)||d.zone!=null&&this.dimmedSections.has(d.zone))&&e.opacity(.18)}this.closedSections.size&&this.seatInClosedSection(i)&&(e.fill(Ur),e.stroke(""),e.strokeWidth(0),e.dash([]),e.opacity(Xr)),this.selectionFocusId&&i!==this.selectionFocusId&&e.opacity(Math.min(e.opacity(),.16));let l=this.boothLabelById.get(i)??this.seatLabelById.get(i);l&&(l.fill(this.seatLabelInk(n,e)),l.visible(Ie(l.fontSize(),this.effScale())&&e.opacity()>=.5));let c=this.accessGlyphById.get(i);if(c){let d=e.fill();c.fill(Ki(typeof d=="string"?d:"")),c.opacity(e.opacity()),c.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 n=this.circleById.get(i.id);n&&this.paintSeat(n,i.id)}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(n=>this.dimmedSections.has(n)))){this.dimmedSections=i;for(let n of this.seats){let r=this.circleById.get(n.id);r&&this.paintSeat(r,n.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(n=>this.closedSections.has(n))||(this.closedSections=i,this.repaintSectionsAndSeats())}focusSection(e){this.sections.some(i=>i.id===e||i.logicalId===e)&&(this.focusedSectionId=e,this.drawFocusBackdrop(e),this.bgLayer.batchDraw(),this.overlayLayer.batchDraw(),this.updateLOD(),this.focusRegion(e))}releaseSectionFocusDim(){!this.focusBackdrop&&!this.focusDimOverlay||(this.focusBackdrop?.destroy(),this.focusBackdrop=null,this.focusDimOverlay?.destroy(),this.focusDimOverlay=null,this.bgLayer.batchDraw(),this.overlayLayer.batchDraw())}clearSectionFocus(){this.focusedSectionId&&(this.focusedSectionId=null,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}drawFocusBackdrop(e){this.focusBackdrop&&(this.focusBackdrop.destroy(),this.focusBackdrop=null);let i=this.sections.filter(r=>r.id===e||r.logicalId===e);if(!i.length)return;let n=new Le.Group({listening:!1});for(let r of i){let o=this.viewMode==="perspective"&&r.perspectiveAffine,s=o?r.outline.map(l=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,l))):r.outline,a=o?r.holes.map(l=>l.map(c=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,c)))):r.holes;n.add(Ze(s,a,{fill:Yr,stroke:le("#ffffff",.1),strokeWidth:1,listening:!1},o?void 0:r.outlinePath))}this.bgLayer.add(n),n.moveToTop(),this.focusBackdrop=n,this.drawFocusDimOverlay(i)}drawFocusDimOverlay(e){this.focusDimOverlay?.destroy();let n=Math.max(this.bounds.width,this.bounds.height,1)*4+1e3,r=[{x:this.bounds.x-n,y:this.bounds.y-n},{x:this.bounds.x+this.bounds.width+n,y:this.bounds.y-n},{x:this.bounds.x+this.bounds.width+n,y:this.bounds.y+this.bounds.height+n},{x:this.bounds.x-n,y:this.bounds.y+this.bounds.height+n}],o=new jo.Shape({fill:this.canvasBackground,opacity:1-yt,listening:!1,perfectDrawEnabled:!1,sceneFunc:(s,a)=>{let l=c=>{if(c.length){s.moveTo(c[0].x,c[0].y);for(let d=1;d<c.length;d++)s.lineTo(c[d].x,c[d].y);s.closePath()}};s.beginPath(),l(r);for(let c of e){let d=this.viewMode==="perspective"&&c.perspectiveAffine?c.outline.map(h=>this.perspectiveLocalPoint(this.projectedSectionPoint(c,h))):c.outline.map(h=>{let u=c.liftWorld>0?this.isoLiftLocal(c.liftWorld):{x:0,y:0};return{x:h.x+u.x,y:h.y+u.y}});l(ut(d)>0?[...d].reverse():d)}s.fillStrokeShape(a)}});this.overlayLayer.add(o),o.moveToTop();for(let s of this.selectionMarkers.values())s.moveToTop();this.hoverRing.moveToTop(),this.focusRing.moveToTop(),this.focusDimOverlay=o}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)e.blockPoly.fill(this.sectionBlockFill(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,n=-1/0,r=-1/0,o=(s,a)=>{s<e&&(e=s),a<i&&(i=a),s>n&&(n=s),a>r&&(r=a)};for(let s of this.seats)o(s.x,s.y);for(let s of this.sections)for(let a of s.outline)o(a.x,a.y);for(let s of this.gaById.values())for(let a of s.points)o(a.x,a.y);return Number.isFinite(e)?{x:e,y:i,width:Math.max(1,n-e),height:Math.max(1,r-i)}:{x:0,y:0,width:1,height:1}}getMinimapSnapshot(){let e=this.sections.map(i=>{let n=this.isSectionClosed(i)||i.free<=0,r=i.memberIds.some(s=>this.selection.has(s)),o=this.focusedSectionId===i.id||this.focusedSectionId===i.logicalId;return{id:i.logicalId,label:i.label,outline:i.outline.map(s=>({...s})),...this.objectFloor.get(i.id)?{floorId:this.objectFloor.get(i.id)}:{},state:r?"selected":n?"inactive":"available",active:o}});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()}setCategoryHighlight(e){if(this.categoryHighlight!==e){this.categoryHighlight=e;for(let i of this.seats){let n=this.circleById.get(i.id);n&&this.paintSeat(n,i.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.applyGAFilterState()}}renderBackground(e){let i=Ke(e);i&&this.renderBackgroundImage(i);for(let n of e.objects)n.type==="decorImage"&&this.renderDecorImage(n);for(let n of e.objects)n.type==="section"&&this.renderSection(n);this.renderZones(e);for(let n of e.objects)n.type==="shape"?this.renderShape(n):n.type==="gaArea"?this.renderGA(n):n.type==="table"?this.renderTable(n):n.type==="text"&&this.renderText(n)}trackAssetImage(e,i,n,r){let o=this.assetGeneration;/^https?:\/\//i.test(i)&&(e.crossOrigin="anonymous");let s=new Promise(a=>{let l=!1,c=()=>{l||(l=!0,this.assetCancels.delete(d),a())},d=()=>{e.onload=null,e.onerror=null;try{e.removeAttribute("src"),e.src=""}catch{}c()};this.assetCancels.add(d),e.onload=()=>{if(!this.exportMode){o===this.assetGeneration&&r(),c();return}(typeof e.decode=="function"?e.decode():Promise.resolve()).then(()=>{o===this.assetGeneration&&r()}).catch(()=>{o===this.assetGeneration&&this.assetErrors.push(`${n} could not be decoded.`)}).finally(c)},e.onerror=()=>{o===this.assetGeneration&&this.assetErrors.push(`${n} could not be loaded.`),c()},e.src=i});this.assetPromises.push(s)}cancelAssetLoads(){this.assetGeneration++;for(let e of[...this.assetCancels])e();this.assetCancels.clear(),this.assetPromises=[],this.assetErrors=[]}renderBackgroundImage(e){if(!e.url||e.visible===!1)return;let i=new window.Image;this.trackAssetImage(i,e.url,"Buyer background image",()=>{let n=i.naturalWidth||4,r=i.naturalHeight||3,o=e.crop??{x:0,y:0,width:1,height:1},s=Math.max(0,Math.min(.99,o.x)),a=Math.max(0,Math.min(.99,o.y)),l={x:s,y:a,width:Math.max(.01,Math.min(1-s,o.width)),height:Math.max(.01,Math.min(1-a,o.height))},c=e.width,d=c*(r*l.height/(n*l.width)),h=new Wo.Image({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:l.x*n,y:l.y*r,width:l.width*n,height:l.height*r},opacity:e.opacity,listening:!1});this.bgLayer.add(h),h.moveToBottom(),this.bgLayer.batchDraw()})}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,labelFont:()=>this.labelFont(),trackAssetImage:(e,i,n,r)=>this.trackAssetImage(e,i,n,r),isGhostClick:e=>this.isGhostClick(e)}}renderDecorImage(e){yo(this.objectDrawContext,e)}renderTable(e){So(this.objectDrawContext,e)}renderText(e){vo(this.objectDrawContext,e)}renderShape(e){ko(this.objectDrawContext,e)}renderGA(e){xo(this.objectDrawContext,e)}renderSection(e){let i=ot(e.outline,e.holes),n=ue(this.canvasBackground),r=[],o=new Map,s=0,a=U(e.outline),l=this.seatIndex?Kt(this.seatIndex,a).map(T=>this.seatById.get(T)).filter(T=>!!T):this.seats;for(let T of l)this.seatSection.has(T.id)||Y(T,e.outline,e.holes)&&(r.push(T.id),o.set(T.categoryKey,(o.get(T.categoryKey)??0)+1),(this.statusById.get(T.id)??"free")==="free"&&s++);let c=e.color??lr([...o].map(([T,E])=>({hex:this.catColor.get(T)??"#6e7bff",w:E})),"#3a4358"),d=Vn(e.elevation),h=xe(e,{floorBaseHeightM:this.floorBaseHeightMFor(e.id)}),u=h.height*_e,m=new Le.Group({listening:!1});this.bgLayer.add(m);let b=new Le.Group({listening:!1});m.add(b);let f=new St({listening:!0});this.seatLayer.add(f);let p=[];if(u>0){let T=be(this.zoneColor.get(e.zone??"")??c,.42);for(let E=0;E<e.outline.length;E++){let O=new Qe.Line({points:[],closed:!0,fill:T,stroke:le("#000000",.25),strokeWidth:1,opacity:0,listening:!1,perfectDrawEnabled:!1});p.push(O),m.add(O)}}b.moveToTop();let g=b,v=e.color??this.zoneColor.get(e.zone??"")??"#3a4358",y=Ze(e.outline,e.holes,{stroke:le(v,.5),strokeWidth:1,fill:le(v,.08),listening:!1},e.outlinePath);g.add(y);let x=Ze(e.outline,e.holes,{fill:n.sectionFill,stroke:n.sectionStroke,strokeWidth:Jt,opacity:0,listening:!1},e.outlinePath);g.add(x);let I=e.labelPresentation?.labelStyle,k=I?.color??n.sectionInk,w=(I?.size??18)/18,M=new Ce.Text({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:22*w,fontStyle:"700",fontFamily:this.labelFont(),fill:J(n.sectionFill,k),listening:!1,perfectDrawEnabled:!1});M.offsetX(M.width()/2),M.offsetY(M.height()/2),g.add(M);let C=new Ce.Text({x:i.x,y:i.y,text:oe("map.seatsLeft",{count:s}),fontSize:12,fontStyle:"700",fontFamily:"JetBrains Mono, ui-monospace, monospace",fill:n.sectionInk,opacity:0,listening:!1,perfectDrawEnabled:!1});C.offsetX(C.width()/2),g.add(C);let L={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:$r(e.outline,e.holes??[],i),labelArea:Bn(e.outline,e.holes),zone:e.zone,memberIds:r,total:r.length,free:s,baseFill:c,outlineTint:v,outlinePoly:y,blockPoly:x,nameLabel:M,subLabel:C,preferredInk:k,labelScale:w,nameLabelFits:!0,subLabelFits:!0,elevation:d,liftWorld:u,rakeDeg:h.rake,surfaceFocal:r.length?{...this.seatById.get(r[0])?.focalPoint??this.isoCentre}:{...this.chartDoc?.focalPoint??this.isoCentre},frontDistanceWorld:0,rootGroupBg:m,bgZIndex:m.zIndex(),seatZIndex:f.zIndex(),liftGroupBg:b,liftGroupSeat:f,sideFaces:p},R=r.map(T=>this.seatById.get(T)).filter(T=>!!T),S=R.length?R:e.outline;L.frontDistanceWorld=Math.min(...S.map(T=>Math.hypot(T.x-L.surfaceFocal.x,T.y-L.surfaceFocal.y)));for(let T of r)this.seatSection.set(T,L);this.refreshSectionFill(L),this.refreshSectionHeat(L),this.sections.push(L)}refreshSectionHeat(e){To(this.sectionLodPaintContext,e)}refreshSectionFill(e){Lo(this.sectionLodPaintContext,e)}isSectionClosed(e){return rn(this.sectionLodPaintContext,e)}sectionAvailabilityState(e){return on(this.sectionLodPaintContext,e)}sectionBlockFill(e){return qe(ue(this.canvasBackground),this.sectionAvailabilityState(e))}get sectionLodPaintContext(){return{sections:this.sections,zones:this.zones,sectionHeat:this.sectionHeat,closedSections:this.closedSections,canvasBackground:this.canvasBackground,bgLayer:this.bgLayer,seatLayer:this.seatLayer,stageScaleX:this.stage.scaleX(),stageWidth:this.stage.width(),floorOverview:this.floorOverview,focusedSectionId:this.focusedSectionId,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){if(!e.zones?.length||!this.sections.length)return;let i=new Map;for(let n of this.sections)n.zone&&(i.get(n.zone)??i.set(n.zone,[]).get(n.zone)).push(n);for(let n of e.zones){let r=i.get(n.id);if(!r||!r.length)continue;let o=r[0];for(let u of r)u.centroid.y<o.centroid.y&&(o=u);let s=o.centroid.x,a=o.centroid.y,l=1/0;for(let u of r)for(let m of u.memberIds){let b=this.seatById.get(m),f=b&&this.catPrice.get(b.categoryKey);typeof f=="number"&&f<l&&(l=f)}let c=new Ee.Rect({x:s,y:a,width:1,height:1,offsetX:.5,offsetY:.5,cornerRadius:1,fill:Qi,stroke:n.color??o.outlineTint,strokeWidth:1,opacity:0,listening:!1,perfectDrawEnabled:!1});this.bgLayer.add(c);let d=new Ce.Text({x:s,y:a,text:n.label.toUpperCase(),fontSize:ei,fontStyle:"800",letterSpacing:.5,fontFamily:this.labelFont(),fill:"#f4f6fb",opacity:0,listening:!1,perfectDrawEnabled:!1});d.offsetX(d.width()/2),d.offsetY(d.height()/2),this.bgLayer.add(d);let h=null;isFinite(l)&&(h=new Ce.Text({x:s,y:a,text:oe("map.fromPrice",{price:Yt(l,this.currency)}),fontSize:14,fontStyle:"600",fontFamily:"JetBrains Mono, ui-monospace, monospace",fill:"#cbd5e1",opacity:0,listening:!1,perfectDrawEnabled:!1}),h.offsetX(h.width()/2),this.bgLayer.add(h)),this.zones.push({id:n.id,anchor:{x:s,y:a},back:c,background:Qi,label:d,sub:h})}}screenToWorld(e){let i=this.stage.scaleX(),n={x:(e.x-this.stage.x())/i,y:(e.y-this.stage.y())/i};return this.viewMode==="perspective"&&this.perspectiveBaseInverse?re(this.perspectiveBaseInverse,n):this.isoT===0?n:this.isoInverse(n)}sectionAt(e){if(!this.sections.length)return null;let i=this.screenToWorld(e),n=this.sections.find(r=>{if(this.viewMode==="perspective"&&r.perspectiveAffine)return Y(i,r.outline.map(s=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,s))),r.holes.map(s=>s.map(a=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,a)))));let o=r.liftWorld>0?this.isoLiftLocal(r.liftWorld):{x:0,y:0};return Y({x:i.x-o.x,y:i.y-o.y},r.outline,r.holes)});return n?n.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)?!1:(this.opts.selectableStatuses??["free"]).includes(this.statusById.get(e)??"free")}toggleSeat(e){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);let i=this.seatById.get(e);i&&this.opts.onSelect?.(i)}this.overlayLayer.batchDraw()}resolveCanvasBackground(){let e=this.theme.background?Wi(this.theme.background):null;if(e)return e;if(typeof getComputedStyle=="function"){let i=this.container;for(;i;){let n=Wi(getComputedStyle(i).backgroundColor);if(n)return n;i=i.parentElement}}return tn}resolveSelectionColor(){return this.theme.selectionColor?this.theme.selectionColor:dt(this.canvasBackground)?ao:vt}setSelected(e,i,n=!1){let r=this.circleById.get(e);i?this.selection.add(e):(this.selectionFocusId===e&&this.setSelectionFocus(null),this.selection.delete(e)),this.syncSelectionMarker(e),r&&(this.paintSeat(r,e),!n&&!this.cached&&this.seatLayer.batchDraw())}syncSelectionMarker(e){if(this.selectionMarkers.get(e)?.destroy(),this.selectionMarkers.delete(e),!this.selection.has(e)&&!this.ownedHold.has(e))return;let i=this.seatById.get(e);if(!i)return;let n=this.selectionFocusId===e,r=this.boothDims.get(i.rowId),o=this.renderedSeatPoint(i),s=new Le.Group({name:"selection-ring",x:o.x,y:o.y,rotation:r?.rotation??0,listening:!1,perfectDrawEnabled:!1,opacity:this.selectionFocusId&&!n?.2:1});if(this.viewMode==="perspective"){let l=this.perspectiveSeatScale.get(e)??1;s.scale({x:l,y:l})}s.setAttr("seatId",e);let a={stroke:this.effSelection,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1};if(r)if(s.add(new Ee.Rect({...a,width:r.width,height:r.height,offsetX:r.width/2,offsetY:r.height/2,cornerRadius:4,strokeWidth:n?4:3})),n)s.add(new Ee.Rect({...a,width:r.width+10,height:r.height+10,offsetX:(r.width+10)/2,offsetY:(r.height+10)/2,cornerRadius:7,strokeWidth:2,opacity:.55}));else{let l=Math.max(0,r.width/2-14),c=-Math.max(0,r.height/2-14);s.add(new ve.Circle({x:l,y:c,radius:10,fill:this.effSelection,listening:!1})),s.add(new Qe.Line({x:l,y:c,points:[-4.5,0,-1,3.5,5.5,-4.5],stroke:dt(this.effSelection)?"#0b1220":"#ffffff",strokeWidth:2.4,lineCap:"round",lineJoin:"round",listening:!1}))}else s.add(new ve.Circle({...a,radius:Math.max(1,this.seatR-1.25),strokeWidth:Math.min(2.5,Math.max(1.8,this.seatR*.22))})),n?s.add(new ve.Circle({...a,radius:this.seatR+2,strokeWidth:2,opacity:.55})):s.add(new Qe.Line({points:[-this.seatR*.52,0,-this.seatR*.12,this.seatR*.4,this.seatR*.6,-this.seatR*.46],stroke:"#ffffff",strokeWidth:Math.max(2.6,this.seatR*.34),lineCap:"round",lineJoin:"round",shadowColor:"#0b1220",shadowBlur:1.5,shadowOpacity:.55,listening:!1}));this.selectionMarkers.set(e,s),this.overlayLayer.add(s)}sectionBounds(e){let i=this.sections.filter(b=>b.id===e||b.logicalId===e),n=i.map(b=>{if(this.viewMode==="perspective"&&b.perspectiveAffine)return U(b.outline.map(g=>this.projectedSectionPoint(b,g)));let f=b.liftWorld>0?this.isoLiftLocal(b.liftWorld):{x:0,y:0},p=b.outline.map(g=>{let v={x:g.x+f.x,y:g.y+f.y};return this.isoT===0?v:this.isoForward(v)});return U(p)});if(!n.length)return null;let r=Math.min(...n.map(b=>b.x)),o=Math.min(...n.map(b=>b.y)),s=Math.max(...n.map(b=>b.x+b.width)),a=Math.max(...n.map(b=>b.y+b.height)),l=new Set(i.flatMap(b=>b.memberIds));for(let b of l){let f=this.seatById.get(b);if(!f)continue;let p=this.renderedSeatPoint(f);r=Math.min(r,p.x-this.seatR),o=Math.min(o,p.y-this.seatR),s=Math.max(s,p.x+this.seatR),a=Math.max(a,p.y+this.seatR)}let c=b=>{[b.x,b.y,b.width,b.height].every(Number.isFinite)&&(r=Math.min(r,b.x),o=Math.min(o,b.y),s=Math.max(s,b.x+b.width),a=Math.max(a,b.y+b.height))},d=b=>{let f={x:b.x+b.width/2,y:b.y+b.height/2};return i.some(p=>Y(f,p.outline,p.holes))};for(let{node:b,backdrop:f}of this.freeTextById.values()){let p=b.getClientRect({relativeTo:this.bgLayer,skipShadow:!0});d(p)&&(c(p),f&&c(f.getClientRect({relativeTo:this.bgLayer,skipShadow:!0})))}for(let{node:b}of this.iconNodeById.values()){let f=b.getClientRect({relativeTo:this.bgLayer,skipShadow:!0});d(f)&&c(f)}let h=new $e;for(let{node:b}of this.freeTextById.values()){let f=b.getClientRect({relativeTo:this.bgLayer,skipShadow:!0,skipStroke:!0});h.insert({x:f.x-ee,y:f.y-ee,width:f.width+ee*2,height:f.height+ee*2})}for(let b of this.rowLabelPlan){let f=b.focusKeys?.some(y=>y===e||i.some(x=>y===x.id||y===x.logicalId||y===x.zone))??!1,p=new Ce.Text({text:b.text,fontSize:b.fontSize,fontStyle:"700",fontFamily:this.labelFont(),rotation:b.rotation,listening:!1});p.offsetX(p.width()/2),p.offsetY(p.height()/2);let g=this.resolveAutomaticRowLabelPosition(p,b,h),v=this.rowLabelBox(p,g);f&&c(v),h.insert(v),p.destroy()}let u=Math.max(s-r,a-o),m=Math.max(this.seatR*2,Math.min(24,u*.025));return{x:r-m,y:o-m,width:Math.max(1,s-r+m*2),height:Math.max(1,a-o+m*2)}}sectionFrameScale(e){let i=this.sectionBounds(e);if(!i)return this.stage.scaleX();let n=this.stage.width(),r=this.stage.height(),{min:o,max:s}=this.zoomBounds(),a=1.12;if(i.width<=0||i.height<=0)return this.stage.scaleX();let l=Math.min(n/(i.width*a),r/(i.height*a));return V(l,o,s)}handleSeatTap(e){if((this.stacked||this.floorOverview)&&this.opts.onDeckTap){let i=this.objectFloor.get(this.seatById.get(e)?.rowId??"");if(i){this.opts.onDeckTap(i);return}}if(this.effScale()<Se&&this.sections.length){let i=this.seatSection.get(e);if(i){let n=this.focusedSectionId===i.logicalId,r=this.sectionFrameScale(i.logicalId)>this.stage.scaleX()*1.02;if(!n&&r){this.opts.onSectionTap?this.opts.onSectionTap(i.logicalId):this.focusSection(i.logicalId);return}}}this.toggleSeat(e)}nearestSeatToScreen(e,i){let n=null,r=1/0,o=this.stage.scaleX()||1;for(let s of this.seats){if(!this.selection.has(s.id)&&!this.isSelectable(s.id))continue;let a=this.worldToScreen(s),l=this.viewMode==="perspective"?this.perspectiveSeatScale.get(s.id)??1:1,c=this.seatR*o*l+i,d=Math.hypot(a.x-e.x,a.y-e.y);d<=c&&d<r&&(r=d,n=s.id)}return n}wireInteraction(){this.seatLayer.on("click tap",e=>{if(this.moved>Re||this.isGhostClick(e))return;let i=ln(e.target);i&&this.handleSeatTap(i)}),this.seatLayer.on("mouseover",e=>{let i=ln(e.target);if(!i)return;let n=this.seatById.get(i);if(!n)return;this.hoveredId=i,this.hoverRing.position(this.renderedSeatPoint(n));let r=this.viewMode==="perspective"?this.perspectiveSeatScale.get(i)??1:1;this.hoverRing.scale({x:r,y:r}),this.hoverRing.visible(!0),this.overlayLayer.batchDraw(),this.container.style.cursor="pointer",this.opts.onHover?.(n)}),this.seatLayer.on("mouseout",()=>{this.hoveredId=null,this.hoverRing.visible(!1),this.overlayLayer.batchDraw(),this.container.style.cursor="default",this.opts.onHover?.(null)}),this.stage.on("wheel",e=>{e.evt.preventDefault(),this.releaseSectionFocusDim();let i=this.container.getBoundingClientRect(),n={x:e.evt.clientX-i.left,y:e.evt.clientY-i.top},r=Math.exp(-e.evt.deltaY*.002);this.zoomAbout(this.stage.scaleX()*V(r,.5,2),n)}),this.stage.on("click tap",e=>{if(this.moved>Re||this.isGhostClick(e))return;let i=this.stage.getPointerPosition();if(!i)return;if(!this.cached){if(ln(e.target))return;let r=this.nearestSeatToScreen(i,$t);r&&this.handleSeatTap(r);return}if((this.stacked||this.floorOverview)&&this.opts.onDeckTap){let r=this.floorOverview?this.sectionAt(i):null,o=(r?this.objectFloor.get(r):null)??this.deckFloorAt();if(o){this.opts.onDeckTap(o);return}}if(this.sections.length){let r=this.sectionAt(i);if(r){this.opts.onSectionTap?this.opts.onSectionTap(r):this.focusRegion(r);return}}let n=Math.max(Pe*1.2,this.stage.scaleX()*2.5);this.zoomAbout(n,i)})}deckFloorAt(){if(!this.objectFloor.size)return null;let e=this.stage.getPointerPosition();if(!e)return null;let i=this.screenToWorld(e),n=null,r=1/0;for(let o of this.seats){let s=this.renderedSeatPoint(o),a=s.x-i.x,l=s.y-i.y,c=a*a+l*l;c<r&&(r=c,n=o.rowId)}return n?this.objectFloor.get(n)??null:null}zoomBounds(){let e=.5*this.fitScale;return this.zones.length&&(e=Math.min(e,Ye*.9)),{min:e,max:Math.max(10*this.fitScale,4)}}zoomAbout(e,i){let{min:n,max:r}=this.zoomBounds(),o=V(e,n,r),s=this.stage.scaleX();if(o===s)return;let a=(i.x-this.stage.x())/s,l=(i.y-this.stage.y())/s;this.stage.scale({x:o,y:o}),this.stage.position({x:i.x-a*o,y:i.y-l*o}),this.afterViewChange(),this.stage.batchDraw()}zoomToBounds(e,i){let n=this.stage.width(),r=this.stage.height(),{min:o,max:s}=this.zoomBounds(),a=1.12,l=Math.min(n/(e.width*a),r/(e.height*a)),c=V(Math.max(l,i??o),o,s);this.stage.scale({x:c,y:c}),this.stage.position({x:n/2-(e.x+e.width/2)*c,y:r/2-(e.y+e.height/2)*c}),this.afterViewChange(),this.stage.batchDraw()}focusRegion(e,i){let n=typeof e=="string"?this.sectionBounds(e):e;if(!n)return;if(this.cancelGlide(),i?.animate===!1||this.reducedMotion){this.zoomToBounds(n,i?.minScale);return}let r=this.stage.width(),o=this.stage.height(),{min:s,max:a}=this.zoomBounds(),l=1.12,c=Math.min(r/(n.width*l),o/(n.height*l)),d=V(Math.max(c,i?.minScale??s),s,a),h=r/2-(n.x+n.width/2)*d,u=o/2-(n.y+n.height/2)*d,m=this.stage.scaleX(),b=this.stage.x(),f=this.stage.y();if(Math.abs(d-m)<1e-4&&Math.abs(h-b)<.5&&Math.abs(u-f)<.5){this.afterViewChange();return}let p=performance.now(),g=Math.max(180,Math.min(1200,i?.durationMs??Qt));this.glideInProgress=!0;let v=y=>{if(this.destroyed){this.glideRaf=0,this.glideInProgress=!1;return}let x=Math.min(1,(y-p)/g),I=x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2,k=m+(d-m)*I;this.stage.scale({x:k,y:k}),this.stage.position({x:b+(h-b)*I,y:f+(u-f)*I}),this.updateSeatGroupVisibility(),this.updateLOD(),this.scheduleViewChange(),this.stage.batchDraw(),x<1?this.glideRaf=requestAnimationFrame(v):(this.glideRaf=0,this.glideInProgress=!1,this.afterViewChange())};this.glideRaf=requestAnimationFrame(v)}cancelGlide(){this.glideRaf&&(cancelAnimationFrame(this.glideRaf),this.glideRaf=0),this.glideInProgress=!1}getRung(){let e=this.effScale();return e>=se?"seats":this.zones.length&&e<Ye?"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,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 eo(this.renderedQualityContext)}setRung(e){if(e==="zones"){this.cancelGlide(),this.zoomToFit();return}let i=e==="sections"?(Te+se)/2:Math.max(this.seatLabelTargetScale()*1.05,Or,se*1.3),n=this.stage.width(),r=this.stage.height(),o=this.getVisibleWorldRect(),s={x:o.x+o.width/2,y:o.y+o.height/2},a=s.x,l=s.y;if(e==="sections"&&this.sections.length>0){let u=this.sections.map(p=>{let g=U(p.outline);return{x:g.x+g.width/2,y:g.y+g.height/2}}),m=n/(i*2),b=r/(i*2);if(!u.some(p=>Math.abs(p.x-s.x)<=m&&Math.abs(p.y-s.y)<=b)){let p=u.reduce((g,v)=>{let y=(v.x-s.x)**2+(v.y-s.y)**2;return y<g.distance?{point:v,distance:y}:g},{point:u[0],distance:1/0});a=p.point.x,l=p.point.y}}let c=e==="seats"?this.seats.filter(u=>u.kind!=="booth"):[];if(c.length>0){let u=c[0],m=1/0;for(let b of c){let f=b.x-s.x,p=b.y-s.y,g=f*f+p*p;g<m&&(u=b,m=g)}a=u.x,l=u.y}let d=n/(i*1.12),h=r/(i*1.12);this.focusRegion({x:a-d/2,y:l-h/2,width:d,height:h})}seatLabelTargetScale(){let e=Ne,i=new Ce.Text({fontSize:ge,fontStyle:"600",fontFamily:this.labelFont(),listening:!1}),n=this.seatR*2-3;for(let r of this.seats){if(r.kind==="booth"){e=Math.min(e,Ne);continue}let o=ge*this.seatLabelScale(r);i.fontSize(o),i.text(Ht(r.displayLabel??r.label));let s=i.width()>n?Math.max(mt,o*n/i.width()):o;e=Math.min(e,s)}return i.destroy(),Q/Math.max(mt,e)}afterViewChange(){this.updateSeatGroupVisibility(),this.updateLOD(),this.updateFreeTextVisibility(),this.updateLabels(),this.scheduleViewChange()}scheduleViewChange(){this.exportMode||this.viewChangeRaf||(this.viewChangeRaf=requestAnimationFrame(()=>{this.viewChangeRaf=0,this.opts.onViewChange?.()}))}sizeLabel(e,i,n){e.fontSize(Math.max(1,i)),e.offsetX(e.width()/2),e.offsetY(e.height()/2),e.y(n)}updateLOD(){let e=this.exportMode?Math.max(this.effScale(),Xe+.01,Se):this.effScale(),i=Math.max(e,1e-4);for(let[o,s]of this.primaryFocalLabels)this.sizeLabel(o,s/i,o.y());this.hasSections?Co(this.sectionLodPaintContext,e):this.primaryFocalLabels.size&&this.bgLayer.batchDraw(),this.paintGAStateForView(),this.updateAccessGlyphs(e);let n=!this.exportMode&&e<se;if(this.viewMode==="perspective"&&this.hasSections&&this.seats.length>2500&&n){this.seatLayer.listening(!1);return}n&&!this.cached?this.cacheSeatLayer():!n&&(this.cached||!this.seatLayer.listening())&&(this.cached&&this.releaseSeatLayerBitmap(),this.seatLayer.listening(!this.exportMode),this.cached=!1,this.seatLayer.batchDraw())}rebuildSeatCache(){this.updateSeatGroupVisibility();let e=V(this.stage.scaleX()*this.dpr,.15,2);this.seatLayer.clearCache(),this.seatLayer.cache({pixelRatio:e}),this.seatLayer.listening(!1),this.cached=!0}cacheSeatLayer(){this.rebuildSeatCache(),this.seatLayer.batchDraw()}releaseSeatLayerBitmap(){let e=this.seatLayer,i=e._cache.get("canvas");i&&(It.Konva.Util.releaseCanvas(i.scene._canvas,i.filter._canvas,i.hit._canvas),e._cache.delete("canvas"))}forceDraw(){this.recacheTimer&&(clearTimeout(this.recacheTimer),this.recacheTimer=null,this.effScale()<se?this.rebuildSeatCache():this.cached&&(this.releaseSeatLayerBitmap(),this.seatLayer.listening(!0),this.cached=!1)),this.bgLayer.draw(),this.seatLayer.draw(),this.overlayLayer.draw()}async ready(){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(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)),n=Math.min(...e.map(s=>s.y)),r=Math.max(...e.map(s=>s.x+s.width)),o=Math.max(...e.map(s=>s.y+s.height));return{x:i,y:n,width:Math.max(1,r-i),height:Math.max(1,o-n)}}fitExportContent(){if(!this.exportMode)return;let e=this.stage.width(),i=this.stage.height(),n=Math.max(12,Math.min(36,Math.min(e,i)*.025)),r=()=>{let o=this.exportSceneBounds(),s=Math.max(1,e-n*2),a=Math.max(1,i-n*2),l=Math.min(s/o.width,a/o.height)||1;this.fitScale=l,this.stage.scale({x:l,y:l}),this.stage.position({x:(e-o.width*l)/2-o.x*l,y:(i-o.height*l)/2-o.y*l}),this.afterViewChange()};r(),r()}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(r){let o=r instanceof Error?r.message:String(r);throw new Error(`The chart canvas could not be captured. A buyer-visible image may block export. ${o}`)}let i=document.createElement("canvas");i.width=this.stage.width(),i.height=this.stage.height();let n=i.getContext("2d");if(!n)throw new Error("Canvas 2D is unavailable; this browser cannot create an export.");n.fillStyle=this.canvasBackground,n.fillRect(0,0,i.width,i.height);try{n.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{objectId:i,node:n,backdrop:r,categoryKey:o,kind:s}of this.freeTextById.values()){let a=o!=null&&(s==="ga-label"||s==="ga-capacity")&&this.gaCategoryDimmed(o),l=i!=null&&(s==="ga-label"||s==="ga-capacity")&&this.gaById.get(i)?.sectionId!=null&&e<se,c=s==="free-text"&&this.nodeBelongsToFocusedSection(n),d=!a&&!l&&(c||Ie(n.fontSize(),e));n.visible(d),r?.visible(d)}for(let{node:i,fontSize:n}of this.iconNodeById.values())i.visible(this.nodeBelongsToFocusedSection(i)||Ie(n,e))}nodeBelongsToFocusedSection(e){let i=this.focusedSectionId;if(!i)return!1;let n=this.sections.filter(s=>s.id===i||s.logicalId===i||s.zone===i);if(!n.length)return!1;let r=e.getClientRect({relativeTo:this.bgLayer,skipShadow:!0}),o={x:r.x+r.width/2,y:r.y+r.height/2};return n.some(s=>Y(o,s.outline,s.holes))}buildRowLabelPlan(e){this.rowLabelPlan=wo(e,{theme:this.theme,seats:this.seats,seatSection:this.seatSection,seatR:this.seatR,objectFilteredOut:i=>this.objectFilteredOut(i)})}rowLabelBox(e,i,n=ee){return nn(e,i,n)}resolveAutomaticRowLabelPosition(e,i,n){return Io(e,i,n,this.seatIndex)}objectFilteredOut(e){let i=e.categoryKey;return i?!!(this.categoryHighlight&&i!==this.categoryHighlight||this.categoryFilter&&!this.categoryFilter.has(i)):!1}updateLabels(){Ro(this.viewportLabelContext)}get viewportLabelContext(){return{exportMode:this.exportMode,effScale:()=>this.effScale(),boothLabelById:this.boothLabelById,circleById:this.circleById,focusedSeatOpacity:(e,i)=>this.focusedSeatOpacity(e,i),labelGroup:this.labelGroup,labelLiftGroups:this.labelLiftGroups,seatLabelById:this.seatLabelById,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,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,n)=>this.resolveAutomaticRowLabelPosition(e,i,n),rowLabelBox:(e,i)=>this.rowLabelBox(e,i),isoT:this.isoT,applyUprightLabels:()=>this.applyUprightLabels(),overlayLayer:this.overlayLayer}}handleResize(){let e=this.container.clientWidth||1,i=this.container.clientHeight||1;e===this.stage.width()&&i===this.stage.height()||(this.stage.size({width:e,height:i}),this.refitCurrentView())}startFpsLoop(){let e=i=>{this.lastFpsAt||(this.lastFpsAt=i),this.frames++;let n=i-this.lastFpsAt;n>=1e3&&(this.opts.onFps?.(Math.round(this.frames*1e3/n)),this.frames=0,this.lastFpsAt=i),this.rafId=requestAnimationFrame(e)};this.rafId=requestAnimationFrame(e)}};Tt.ZOOM_STEP=1.4;var di=Tt;function cn(t,e){return new di(t,e)}function Je(t){let e=Number(t.slice(t.lastIndexOf(":")+1));return Number.isFinite(e)?e:-1}function Ko(t,e,i){let n=new Map;for(let s of t){if(s.kind==="booth")continue;let a=n.get(s.rowId);a?a.push(s):n.set(s.rowId,[s])}let r=s=>i.has(s.id)||e(s.id)!=="free",o=[];for(let s of n.values())if(!(s.length<3)){s.sort((a,l)=>Je(a.id)-Je(l.id));for(let a=1;a<s.length-1;a++){let l=s[a];if(r(l))continue;let c=s[a-1],d=s[a+1];Je(l.id)-Je(c.id)!==1||Je(d.id)-Je(l.id)!==1||!r(c)||!r(d)||!i.has(c.id)&&!i.has(d.id)||o.push(l)}}return o}function Uo(t,e={}){let{baseMs:i=1e3,factor:n=2,maxMs:r=1/0,jitter:o=0,random:s=Math.random}=e,a=Math.min(i*n**Math.max(0,t),r);if(o<=0)return a;let l=Math.min(1,o);return a*(1-l+l*s())}function dn(t,e){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let i=t.id.lastIndexOf(":");if(i<0)return e;let n=Number(t.id.slice(i+1));return Number.isFinite(n)?n:e}function Xo(t,e){let i=t.x-e.x,n=t.y-e.y;return i*i+n*n}function el(t){let e=0,i=0;for(let n of t)e+=n.x,i+=n.y;return{x:e/t.length,y:i/t.length}}function tl(t,e){return t.find(i=>i.focalPoint)?.focalPoint??e}function un(t){return t.commercial?.premium===!0}function Yo(t,e,i){let n=Math.floor(i.qty);if(!Number.isFinite(n)||n<=0)return{labels:[],reason:"sold_out"};let{categoryKey:r,zoneId:o,focal:s,preferPremium:a}=i,l=new Map,c=[];if(t.forEach((m,b)=>{let f=e.has(m.label)&&(!r||m.categoryKey===r)&&(!o||m.zoneId===o),p=m.logicalRowId??m.rowId,g=l.get(p);g||(g=[],l.set(p,g)),g.push({seat:m,index:dn(m,b),elig:f}),f&&c.push(m)}),c.length===0)return{labels:[],reason:"sold_out"};let d=null,h=m=>{if(!d)return!0;if(a&&m.nonPremium!==d.nonPremium)return m.nonPremium<d.nonPremium;if(m.orphan!==d.orphan)return m.orphan<d.orphan;if(m.d2!==d.d2)return m.d2<d.d2;let b=m.rowId.localeCompare(d.rowId);return b!==0?b<0:m.startIndex<d.startIndex};for(let[m,b]of l){let f=[...b].sort((g,v)=>g.index-v.index),p=0;for(;p<f.length;){if(!f[p].elig){p++;continue}let g=p;for(;g<f.length&&f[g].elig&&(g===p||f[g].index===f[g-1].index+1);)g++;let v=g-p;for(let y=0;y+n<=v;y++){let x=y,I=v-(y+n),k=x===1||I===1?1:0,w=f.slice(p+y,p+y+n).map(C=>C.seat),M={labels:w.map(C=>C.label),seats:w,rowId:m,startIndex:f[p+y].index,orphan:k,nonPremium:a?w.reduce((C,L)=>C+(un(L)?0:1),0):0,d2:Xo(el(w),tl(w,s))};h(M)&&(d=M)}p=g}}return d?{labels:d.labels}:c.length<n?{labels:[],reason:"not_enough_together"}:{labels:c.map((m,b)=>({seat:m,i:b,d2:Xo(m,m.focalPoint??s)})).sort((m,b)=>{if(a){let p=un(m.seat)?0:1,g=un(b.seat)?0:1;if(p!==g)return p-g}if(m.d2!==b.d2)return m.d2-b.d2;let f=(m.seat.logicalRowId??m.seat.rowId).localeCompare(b.seat.logicalRowId??b.seat.rowId);return f!==0?f:dn(m.seat,m.i)-dn(b.seat,b.i)}).slice(0,n).map(m=>m.seat.label)}}function ui(t){return{code:"ticket_option_not_applicable",labels:t,message:"That ticket choice is not available for the selected seat."}}function hn(t,e){let i=t.applicability;return i?!(i.seatLabels?.length&&!i.seatLabels.includes(e.label)||i.accessibility?.length&&!i.accessibility.some(n=>e.accessibility?.includes(n))):!0}function $o(t,e){return(t.categories.find(i=>i.key===e.categoryKey)?.tiers??[]).filter(i=>hn(i,e))}function et(t,e,i){let n=t.categories.find(o=>o.key===e.categoryKey)?.tiers;if(!n?.length)return{kind:"none"};let r=i==null?n.find(o=>hn(o,e)):n.find(o=>o.id===i&&hn(o,e));return r?{kind:"resolved",tier:r}:{kind:"invalid"}}function il(t,e){return(t.logicalRowId??t.rowId)===(e.logicalRowId??e.rowId)}function qo(t){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let e=t.id.slice(t.id.lastIndexOf(":")+1),i=Number(e);return Number.isInteger(i)?i:void 0}function nl(t,e){if(!il(t,e))return!1;let i=qo(t),n=qo(e);return i!=null&&n!=null&&Math.abs(i-n)===1}function rl(t,e){if(!e.length)return null;let i=new Map(me(t,{resolveEyeHeights:!1}).map(s=>[s.label,s])),n=e.flatMap(s=>{let a=i.get(s.label);return a?[{selection:s,seat:a}]:[]}),r=n.map(({seat:s})=>s).filter(s=>s.accessibility?.includes("wheelchair")),o=[];for(let{selection:s,seat:a}of n){let l=et(t,a,s.tierId),c=l.kind==="resolved"?l.tier:void 0;(a.accessibility?.includes("companion")||c?.restriction==="companion")&&!r.some(h=>h.id!==a.id&&nl(a,h))&&o.push(a.label)}return o.length?{code:"companion_pair_required",labels:o,message:"Select the adjacent wheelchair place with each companion ticket."}:null}function Zo(t,e){if(!e.length)return null;let i=new Map(me(t,{resolveEyeHeights:!1}).map(s=>[s.label,s])),n=new Set(t.categories.filter(s=>s.notForSale).map(s=>s.key)),r=[],o=[];for(let s of e){let a=i.get(s.label);if(!a)continue;if(n.has(a.categoryKey)){r.push(a.label);continue}et(t,a,s.tierId).kind==="invalid"&&o.push(a.label)}return r.length?{code:"not_for_sale",labels:r,message:"These seats are not for sale."}:o.length?ui(o):rl(t,e)}var Lt=class extends Error{constructor(i,n){super(n);this.objectId=i;this.name="GroupedTableProjectionError"}};function ol(t){let e=t.minOccupancy,i=t.maxOccupancy;if(!Number.isInteger(e)||!Number.isInteger(i)||e<1||i<e||i>t.seatCount)throw new Lt(t.id,`Table "${t.label}" has invalid variable-occupancy bounds`);return{min:e,max:i}}function Qo(t,e){if(e!==2)return[];let i=[];for(let n of ae(t)){if(n.type!=="table"||!n.bookAsWhole&&!n.variableOccupancy)continue;if(n.bookAsWhole&&n.variableOccupancy)throw new Lt(n.id,`Table "${n.label}" cannot be whole-table and variable-occupancy inventory`);if(!Number.isInteger(n.seatCount)||n.seatCount<1||!n.label.trim())throw new Lt(n.id,"Grouped tables require a label and at least one chair");let r=n.variableOccupancy?"variable":"whole",o=r==="variable"?ol(n):{min:n.seatCount,max:n.seatCount};i.push({objectId:n.id,label:n.label,...n.displayLabel?{displayLabel:n.displayLabel}:{},...n.displayType?{displayType:n.displayType}:{},categoryKey:n.categoryKey,mode:r,capacity:n.seatCount,minOccupancy:o.min,maxOccupancy:o.max,chairs:ze(n)})}return i}var ke=class extends Error{constructor(i){super(i.message);this.status=422;this.name="PickerSelectionError",this.reason=i.code,this.labels=i.labels}};var sl=10,al=15e3,Jo=["background","rowLabelColor","textColor","selectionColor"];function ll(t,e){return!t||!e?!t&&!e:Jo.every(i=>t[i]===e[i])}function hi(t){let e=t??{};return{status:e.status,conflicts:e.conflicts,reason:e.reason}}function pn(t){return t==="blocked"?"not_for_sale":t==="held"||t==="booked"||t==="free"||t==="not_for_sale"?t:"free"}var fn=class{constructor(e){this.renderer=null;this._doc=null;this.hidden=new Set;this.mapTheme=null;this.closedSections=new Set;this.labelToId=new Map;this.labelToSeat=new Map;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.realtime=null;this.reconnectTimer=null;this.attempt=0;this.closed=!1;this.onVisibilityChange=null;this.hold_=null;this.liveStatuses=new Map;this.liveDefault="free";this.currency="USD";this.expiryTimer=null;this.hintShown=!1;this.opts=e,this.api=e.transport,this.key=e.eventKey,this.maxSelection=e.maxSelection??sl,this.mapTheme=e.mapTheme??null}get doc(){return this._doc}visibleDoc(){if(!this._doc)return{objects:[]};let e=Ni(this._doc,this.hidden);if(!this.mapTheme)return e;let i={...e.theme??{}};for(let n of Jo){let r=this.mapTheme[n];r&&(i[n]=r)}return{...e,theme:i}}setMapTheme(e){if(ll(this.mapTheme,e??null))return!1;this.mapTheme=e??null;let i=this.renderer;if(!i)return!0;let n=i.getSelection().map(s=>s.id),r=this.getActiveFloorId(),o=i.isFloorOverview?.()??!1;return i.setChart(this.visibleDoc(),r?{floorId:r}:void 0),o&&i.setFloorOverview?.(!0),this.opts.colorblindSafe&&i.setColorblindSafe?.(!0),this.closedSections.size&&i.setClosedSections?.([...this.closedSections]),this.applySeatsMap(Object.fromEntries(this.liveStatuses),this.liveDefault),n.length&&i.select?.(n),!0}syncHidden(e){let i=e.filter(r=>typeof r=="string");if(i.length===this.hidden.size&&i.every(r=>this.hidden.has(r)))return!1;this.hidden=new Set(i);let n=this.renderer?.isFloorOverview?.()??!1;return this.renderer?.setChart(this.visibleDoc()),n&&this.renderer?.setFloorOverview?.(!0),!0}syncClosed(e){let i=(e??[]).filter(n=>typeof n=="string");return i.length===this.closedSections.size&&i.every(n=>this.closedSections.has(n))?!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)}idForLabel(e){return this.labelToId.get(e)}idsForLabel(e){let i=this.groupedTablesByLabel.get(e);if(i)return i.chairs.map(r=>r.id);let n=this.labelToId.get(e);return n?[n]:[]}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 r=this.visibleDoc(),o=at(r).find(s=>s.id===e.objectId);return{...o?.displayLabel?{displayLabel:o.displayLabel}:{},...o?.displayType?{displayType:o.displayType}:{}}}if(e.objectType==="table"){let r=this.groupedTablesByLabel.get(e.label);return{...r?.displayLabel&&r.displayLabel!==r.label?{displayLabel:r.displayLabel}:{},...r?.displayType?{displayType:r.displayType}:{}}}let i=this.labelToSeat.get(e.label),n=i?this.seatContext.get(i.id):void 0;return{...i?.displayLabel?{displayLabel:i.displayLabel}:{},...n?.displayType?{displayType:n.displayType}:{}}}async render(e){if(this.renderer)return null;let i=performance.now(),n={},r=k=>Math.round((performance.now()-k)*100)/100;this.closed=!1;let o,s=performance.now();try{o=await this.api.chart(this.key)}catch(k){return this.emitError(k),null}if(n.loadChart=r(s),this.closed)return null;this._doc=o.doc;let a=performance.now();try{let k=Qo(o.doc,o.event.inventoryModelVersion===2?2:1);this.groupedTablesByObject=new Map(k.map(w=>[w.objectId,w])),this.groupedTablesByLabel=new Map(k.map(w=>[w.label,w])),this.groupedTableBySeatId=new Map(k.flatMap(w=>w.chairs.map(M=>[M.id,w]))),this.tableQuantities=new Map(k.map(w=>[w.label,w.mode==="whole"?w.capacity:w.minOccupancy])),this.confirmedVariableTables=new Set,this.groupedSelectionOverhead=k.reduce((w,M)=>w+Math.max(0,M.chairs.length-1),0)}catch(k){return this.emitError(k),null}this.labelToId=new Map,this.labelToSeat=new Map,this.seatById=new Map,this.seatContext=new Map,this.allIds=[];let l=new Map(ae(o.doc).map(k=>[k.id,k])),c=lt(o.doc),d=new Map([...c.sections,...c.ungrouped?[c.ungrouped]:[]].map(k=>[k.id,k.label]));for(let k of me(o.doc)){this.labelToId.set(k.label,k.id),this.labelToSeat.set(k.label,k),this.seatById.set(k.id,k),this.allIds.push(k.id);let w=l.get(k.rowId),M=w&&"label"in w&&typeof w.label=="string"?w.label:void 0,C=w?.type==="row"?w.segmentedRow:void 0,L=C?.displayLabel??(w&&"displayLabel"in w&&typeof w.displayLabel=="string"&&w.displayLabel?w.displayLabel:M),R=this.groupedTablesByObject.get(k.rowId),S=w?.type==="table"?"table":w?.type==="booth"?"booth":"seat",T=L,E=C?.displayType?.trim()||(w&&"displayType"in w&&typeof w.displayType=="string"&&w.displayType.trim()?w.displayType.trim():void 0),O=k.displayLabel??k.label,F=O.split("-"),W=R||k.kind==="booth"?void 0:L&&O.startsWith(`${L}-`)?O.slice(L.length+1):F[F.length-1]??O;this.seatContext.set(k.id,{objectId:k.rowId,objectType:S,sectionLabel:d.get(c.objectToSection.get(k.rowId)??""),rowLabel:T,seatNumber:W,...E?{displayType:E,rowType:E}:{}})}for(let k of this.groupedTablesByLabel.values()){let w=k.chairs[0];w&&(this.labelToId.set(k.label,w.id),this.labelToSeat.set(k.label,w))}n.normalizeBuyerModel=r(a);let h=o.event.currency??this.opts.currency;this.currency=h??"USD";let u=performance.now(),m=cn(e,{maxSelection:this.rendererSelectionCap(),confirmSelection:this.opts.confirmSelection,portraitFitCrop:!0,currency:h,onSelect:k=>{this.handleRendererSelect(k)},onDeselect:k=>{this.handleRendererDeselect(k)},onSelectionLimit:this.opts.onSelectionLimit,onHover:k=>{this.opts.onHover?.(k),this.opts.onSeatHover&&this.opts.onSeatHover(k?this.describeSeat(k):null)},onFocusSeat:this.opts.onFocusSeat,onViewChange:this.opts.onViewChange,onGAClick:this.opts.onGAClick,onSectionTap:k=>this.handleSectionTap(k),onDeckTap:k=>this.handleDeckTap(k),onFps:this.opts.onFps});if(n.createRenderer=r(u),this.closed)return m.destroy(),null;this.renderer=m;let b=null,f="free",p=[],g=performance.now();try{let k=await this.api.objects(this.key);this.hidden=new Set(k.hidden??[]),p=(k.closed??[]).filter(w=>typeof w=="string"),b=k.seats,f=k.default??"free"}catch{}if(n.loadStatuses=r(g),this.closed)return m.destroy(),this.renderer=null,null;let v=performance.now();m.setChart(this.visibleDoc()),(o.doc.floors?.length??0)>1&&m.setFloorOverview?.(!0),this.opts.colorblindSafe&&m.setColorblindSafe?.(!0),n.buildScene=r(v),this.closedSections=new Set(p);let y=performance.now();p.length&&m.setClosedSections?.(p),b&&this.applySeatsMap(b,f),n.applyInitialState=r(y);let x=performance.now();m.forceDraw(),n.firstPaint=r(x);let I=performance.now();return this.attachVisibilityListener(),this.connect(),n.startRealtime=r(I),n.controllerTotal=r(i),{doc:o.doc,salesClosed:!!o.event.salesClosed,eventName:o.event.name,venue:o.event.venue,startsAt:o.event.startsAt,timezone:o.event.timezone??null,currency:h,mode:o.event.mode??"live",posterUrl:o.event.posterUrl??null,performanceProfile:n}}getSelection(){if(!this.renderer)return[];let e=[],i=new Set;for(let n of this.renderer.getSelection()){let r=this.groupedTableBySeatId.get(n.id);r?i.has(r.label)||(i.add(r.label),e.push(this.toTableSeat(r))):e.push(this.toSeat(n))}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 n of e){let r=this.groupedTableBySeatId.get(n)??this.groupedTablesByLabel.get(n);r?(r.chairs.forEach(o=>i.add(o.id)),this.hold_?.labels.includes(r.label)||(this.tableQuantities.set(r.label,r.mode==="whole"?r.capacity:r.minOccupancy),r.mode==="variable"&&this.confirmedVariableTables.delete(r.label))):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(s=>s.label)),n=new Set,r=[];for(let s of e){let a=this.groupedTableBySeatId.get(s)??this.groupedTablesByLabel.get(s);if(a)this.tableTierResolution(a).kind==="invalid"?r.push(a.label):a.chairs.forEach(c=>n.add(c.id));else{let l=this.seatById.get(s);l&&this.seatTierResolution(l).kind==="invalid"?r.push(l.label):n.add(s)}}if(r.length&&this.emitError(new ke(ui(r))),!n.size)return[];if(this.renderer?.select?.([...n]),this.selectionGuestCount()>this.maxSelection)return this.renderer?.deselect([...n]),this.opts.onSelectionLimit?.(this.maxSelection),[];let o=this.getSelection().filter(s=>!i.has(s.label));return o.length&&this.emitSelectionChange(),o}setTableQuantity(e,i){let n=this.groupedTablesByLabel.get(e);if(!n)return!1;let r=n.mode==="whole"?n.capacity:Math.floor(i);if(!Number.isInteger(r)||r<n.minOccupancy||r>n.maxOccupancy)return!1;let o=this.tableQuantities.get(e)??n.minOccupancy;return this.tableQuantities.set(e,r),this.selectionGuestCount()>this.maxSelection?(this.tableQuantities.set(e,o),this.opts.onSelectionLimit?.(this.maxSelection),!1):(n.mode==="variable"&&this.confirmedVariableTables.add(e),this.emitSelectionChange(),!0)}async replaceTableQuantity(e,i,n){let r=this.groupedTablesByLabel.get(e),o=this.hold_;if(!r||r.mode!=="variable"||!o?.labels.includes(e))return null;let s=Math.floor(i);if(!Number.isInteger(s)||s<r.minOccupancy||s>r.maxOccupancy)return null;if((o.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 l=(o.items??[]).map(d=>({label:d.label,tierId:d.tierId,quantity:d.label===e?s:d.quantity}));if(!l.some(d=>d.label===e))return null;let c=await this.api.hold(this.key,l,n,o.holdId);return this.tableQuantities.set(e,s),this.setHold({holdId:c.holdId,labels:l.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((i?this.tableTierResolution(i):this.seatTierResolution(e)).kind==="invalid"){this.renderer?.deselect(i?i.chairs.map(r=>r.id):[e.id]),this.emitError(new ke(ui([i?.label??e.label]))),this.emitSelectionChange();return}if(i){if(this.selectionGuestCount()>this.maxSelection){this.renderer?.deselect(i.chairs.map(r=>r.id)),this.opts.onSelectionLimit?.(this.maxSelection),this.emitSelectionChange();return}this.renderer?.select?.(i.chairs.map(r=>r.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);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 n=this.groupedTablesByLabel.get(i);n&&(this.tableQuantities.set(i,n.mode==="whole"?n.capacity:n.minOccupancy),n.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 r=e??this.getSelection().map(l=>l.label),o=(this.hold_?.items??[]).filter(l=>l.objectType==="ga"),s=[...new Set([...o.map(l=>l.label),...r])];if(!s.length)return null;let a=this.ticketIssue(s);if(a)throw new ke(a);if(this.hold_&&this.holdCovers(s))return this.hold_;try{let l=s.map(d=>{let h=o.find(b=>b.label===d);if(h)return{label:d,tierId:h.tierId,quantity:h.quantity};let u=this.labelToSeat.get(d),m=u?this.toSeat(u):null;return{label:d,...m?.tierId?{tierId:m.tierId}:{},...this.tableQuantityRequest(m)}}),c=await this.api.hold(this.key,l,i,this.hold_?.holdId);return this.setHold({holdId:c.holdId,labels:s,expiresAt:c.expiresAt,items:c.items}),this.hold_}catch(l){throw this.handle409Conflicts(l),l}}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 n=[...new Set(i.items.map(r=>r.label))];return n.length?(this.setHold({holdId:i.holdId,labels:n,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 n=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:n.expiresAt,items:i.items}),this.hold_)}catch{return null}}categoryAvailability(){let e={},i=this.closedMemberIds();for(let[n,r]of this.seatById)this.groupedTableBySeatId.has(n)||i.has(n)||(this.getStatus(n)??"free")==="free"&&(e[r.categoryKey]=(e[r.categoryKey]??0)+1);for(let n of this.groupedTablesByLabel.values()){if(n.chairs.some(o=>i.has(o.id)))continue;let r=n.chairs[0];r&&(this.getStatus(r.id)??"free")==="free"&&(e[n.categoryKey]=(e[n.categoryKey]??0)+n.maxOccupancy)}return e}closedMemberIds(){let e=new Set,i=this.renderer;if(!i||!this.closedSections.size)return e;for(let n of this.closedSections)for(let r of i.sectionMembers?.(n)??[])e.add(r);return e}getGAAreas(){let e=this.visibleDoc();return e?at(e).map(i=>{let n=e.categories.find(r=>r.key===i.categoryKey);return{id:i.id,label:i.label,...i.displayLabel?{displayLabel:i.displayLabel}:{},...i.displayType?{displayType:i.displayType}:{},capacity:Math.max(0,Math.floor(i.capacity)),available:Ge(i).filter(r=>this.statusOf(r)==="free").length,categoryKey:i.categoryKey,tiers:n?.tiers,price:n?.tiers?.[0]?.price??n?.price??0,currency:this.currency}}):[]}async holdGA(e,i,n={}){let r=this.visibleDoc();if(!r||!Number.isFinite(i)||i<1)return null;let o=at(r).find(d=>d.id===e);if(!o)return null;let s=Ge(o).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 a=new Map;for(let d of this.hold_?.items??[])a.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)a.set(d.label,{label:d.label,...d.tierId?{tierId:d.tierId}:{}});for(let d of this.getSelection())a.set(d.label,{label:d.label,...d.tierId?{tierId:d.tierId}:{},...this.tableQuantityRequest(d)});for(let d of s)a.set(d,{label:d,...n.tierId?{tierId:n.tierId}:{}});let l=[...a.values()],c=await this.api.hold(this.key,l,n.ttlMs,this.hold_?.holdId);return this.setHold({holdId:c.holdId,labels:l.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(){let e=this.visibleDoc();if(!e?.zones?.length)return[];let i=new Set(lt(e).sections.filter(n=>n.seatCount>0&&!!n.zone).map(n=>n.zone));return e.zones.filter(n=>i.has(n.id)).map(n=>({id:n.id,label:n.label}))}pickPremiumBlock(e,i,n){let r=this.visibleDoc();if(!r?.objects?.length)return null;let o=r.focalPoint??{x:0,y:0},s=new Set(this.groupedTablesByObject.keys()),a=me(r).filter(u=>!s.has(u.rowId)),l=new Set(this.hold_?.labels??[]),c=new Set;for(let u of a){if(l.has(u.label)||this.seatTierResolution(u).kind==="invalid")continue;let m=this.labelToId.get(u.label);((m?this.getStatus(m):void 0)??"free")==="free"&&c.add(u.label)}let d=Yo(a,c,{qty:e,categoryKey:i,zoneId:n,focal:o,preferPremium:!0});return d.labels.length!==e?null:d.labels.every(u=>this.labelToSeat.get(u)?.commercial?.premium)?[...d.labels]:null}async bestAvailable(e,i,n={}){let r=this.renderer;if(!r)return null;if(n.preferPremium){let o=this.pickPremiumBlock(e,i,n.zoneId);if(o){if(this.hold_&&!await this.release())return null;try{let s=o.map(d=>{let h=this.labelToSeat.get(d),u=h?this.toSeat(h):null;return{label:d,...u?.tierId?{tierId:u.tierId}:{}}}),a=await this.api.hold(this.key,s,n.ttlMs);r.clearSelection();let l=this.idsForLabels(o);l.length&&r.setStatus(l,"held"),this.setHold({holdId:a.holdId,labels:[...o],expiresAt:a.expiresAt,items:a.items});let c=o.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:a,reason:l}=hi(s);if(a===409&&l==="event_closed")throw this.opts.onSalesClosed?.(),s}}}if(this.hold_&&!await this.release())return null;try{let o=await this.api.bestAvailable(this.key,e,i,n.zoneId,n.ttlMs);r.clearSelection();let s=this.idsForLabels(o.labels);s.length&&r.setStatus(s,"held"),this.setHold({holdId:o.holdId,labels:[...o.labels],expiresAt:o.expiresAt,items:o.items});let a=o.labels.map(l=>this.labelToSeat.get(l)).filter(l=>!!l).map(l=>this.toSeat(l));return this.opts.onSelectionChange?.(a),this.hold_}catch(o){let{status:s,reason:a}=hi(o);throw s===409&&a==="event_closed"&&this.opts.onSalesClosed?.(),o}}async book(e,i,n){let r=this.renderer;if(!r)return null;if(!this.api.book)throw new Error("picker: transport has no book() \u2014 hold-only mode");let o=i??this.getSelection().map(c=>c.label);if(!o.length)return null;let s=this.ticketIssue(o);if(s)throw new ke(s);let a;try{if(this.hold_&&this.holdCovers(o))a=this.hold_.holdId;else{let c=this.hold_?.holdId,d=await this.api.hold(this.key,o.map(h=>{let u=this.labelToSeat.get(h),m=u?this.toSeat(u):null;return{label:h,...m?.tierId?{tierId:m.tierId}:{},...this.tableQuantityRequest(m)}}),n,c);a=d.holdId,this.setHold({holdId:a,labels:[...o],expiresAt:d.expiresAt,items:d.items})}await this.api.book(this.key,o,a,e)}catch(c){let{status:d,conflicts:h,reason:u}=hi(c);if(this.clearHold(),d===409&&u==="event_closed")this.opts.onSalesClosed?.();else if(d===409&&h?.length){let m=new Set(h.map(p=>p.label)),b=this.idsForLabels(m);b.length&&(r.setStatus(b,"booked"),r.deselect(b),this.resetTableQuantitiesForLabels(m));let f=o.filter(p=>!m.has(p));f.length&&a&&this.api.release(this.key,f,a).catch(()=>{}),this.emitSelectionChange()}else a&&this.api.release(this.key,o,a).catch(()=>{});throw c}let l=this.idsForLabels(o);return l.length&&(r.setStatus(l,"booked"),r.deselect(l)),this.clearHold(),this.resetTableQuantitiesForLabels(o),this.emitSelectionChange(),this.opts.onBook?.(e),o}async release(){let e=this.hold_;if(!e)return!0;try{let n=await this.api.release(this.key,e.labels,e.holdId);if(!this.releaseConfirmed(n,e.labels))return await this.resnapshot(),!1}catch(n){return this.emitError(n),!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 n=e.filter(a=>i.labels.includes(a));if(!n.length)return!0;try{let a=await this.api.release(this.key,n,i.holdId);if(!this.releaseConfirmed(a,n))return await this.resnapshot(),!1}catch(a){return this.emitError(a),!1}if(this.hold_?.holdId!==i.holdId)return!0;let r=i.labels.filter(a=>!n.includes(a)),o=i.items?.filter(a=>!n.includes(a.label));r.length?this.setHold({...i,labels:r,items:o}):this.clearHold(),this.resetTableQuantitiesForLabels(n);let s=this.idsForLabels(n);return s.length&&(this.renderer?.deselect(s),this.renderer?.setStatus(s,"free")),!0}releaseConfirmed(e,i){let n=e?.released;return!Array.isArray(n)||i.every(r=>n.includes(r))}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(r=>r.notForSale).map(r=>r.key));if(!i.size)return[];let n=[];for(let[r,o]of this.seatById)i.has(o.categoryKey)&&n.push(r);return n}flashSeat(e,i){this.renderer?.flashSeat(e,i)}zoomIn(){this.renderer?.zoomIn()}zoomOut(){this.renderer?.zoomOut()}zoomToFit(){this.renderer?.zoomToFit()}refitCurrentView(){this.renderer?.refitCurrentView?this.renderer.refitCurrentView():this.renderer?.zoomToFit()}worldToScreen(e){return this.renderer?.worldToScreen(e)??{x:0,y:0}}setSelectionFocus(e){this.renderer?.setSelectionFocus?.(e)}setAccessibilityFilter(e){this.renderer?.setAccessibilityFilter?.(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"}setRung(e){if(e==="zones"){this.overview();return}this.renderer?.setRung?.(e)}setCategoryFilter(e){this.renderer?.setCategoryFilter?.(e)}focusCategoryFilter(e){let i=this.renderer;if(i){if(i.clearSectionFocus?.(),this.opts.onSectionFocus?.(null),e?.length){let n=this.floorForCategories(e);n&&this.setFloor(n)}i.focusCategories?i.focusCategories(e):i.zoomToFit()}}floorForCategories(e){let i=this._doc;if(!i?.floors||i.floors.length<2)return null;let n=new Set(e),r=a=>a.some(l=>l.type==="row"&&(n.has(l.categoryKey)||(l.overrides??[]).some(c=>c.categoryKey!=null&&n.has(c.categoryKey)))||l.type==="gaArea"&&n.has(l.categoryKey)),o=this.getActiveFloorId(),s=i.floors.find(a=>a.id===o);return s&&r(s.objects)?null:i.floors.find(a=>r(a.objects))?.id??null}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){this.handleSectionTap(e)}getSectionSeatCount(e){return this.renderer?.sectionMembers?.(e)?.length??0}overview(){this.renderer?.clearSectionFocus?.(),this.renderer?.zoomToFit(),this.opts.onSectionFocus?.(null)}handleSectionTap(e){let i=this.renderer;if(i){if(i.focusSection?i.focusSection(e):i.focusRegion?.(e),this.isSectionClosed(e)){this.opts.onSectionFocus?.(null);return}this.opts.onSectionFocus?.(this.sectionSummary(e))}}sectionSummary(e){let i=this.renderer,n=this._doc;if(!i||!n)return null;let r=n.objects.find(b=>b.type==="section"&&b.id===e);if(!r)return null;let o=i.sectionMembers?.(e)??[],s=new Map,a=new Set,l=0;for(let b of o){let f=this.seatById.get(b);if(!f)continue;let p=this.groupedTableBySeatId.get(b);if(p){if(a.has(p.label))continue;a.add(p.label),s.set(p.categoryKey,(s.get(p.categoryKey)??0)+p.maxOccupancy),i.getStatus(p.chairs[0]?.id??b)==="free"&&(l+=p.maxOccupancy)}else s.set(f.categoryKey,(s.get(f.categoryKey)??0)+1),i.getStatus(b)==="free"&&l++}let c=[...s.entries()].map(([b,f])=>{let p=n.categories.find(x=>x.key===b),g=p?.tiers?.length?p.tiers.map(x=>x.price):[p?.price??0],v=Math.min(...g),y=Math.max(...g);return{key:b,count:f,label:p?.label??b,color:p?.color??"#6e7bff",price:v,priceMin:v,priceMax:y}}).sort((b,f)=>b.price-f.price),d=c.map(b=>b.priceMin),h=c.map(b=>b.priceMax),u=r.zone?n.zones?.find(b=>b.id===r.zone):void 0,m=r.color??u?.color??c[0]?.color??"#6e7bff";return{id:e,label:r.displayLabel??r.label,zoneLabel:u?.label??"",...r.entrance&&r.entrance.trim()?{entrance:r.entrance.trim()}:{},color:m,seatsLeft:l,priceMin:d.length?Math.min(...d):0,priceMax:h.length?Math.max(...h):0,categories:c}}destroy(){if(this.closed=!0,this.detachVisibilityListener(),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 n=e.commercial?{commercial:e.commercial}:void 0,r=e.displayLabel?{displayLabel:e.displayLabel}:void 0,o=e.accessibility?.length?{accessibility:e.accessibility}:void 0,s=e.wheelchairSpaceType?{wheelchairSpaceType:e.wheelchairSpaceType}:void 0,a=this.seatContext.get(e.id),l=this.tiersForSeat(e),c=this.seatTierResolution(e);if(c.kind!=="resolved"||!l)return{id:e.id,label:e.label,...r,...a,categoryKey:e.categoryKey,price:this.priceFor(e.categoryKey),currency:this.currency,...n,...o,...s};let d=c.tier;return{id:e.id,label:e.label,...r,...a,categoryKey:e.categoryKey,price:d.price,currency:this.currency,tiers:l,tierId:d.id,...n,...o,...s}}toTableSeat(e){let i=e.chairs[0],n=this.tiersFor(e.categoryKey)?.filter(s=>et(this._doc,this.tableTierSeat(e),s.id).kind==="resolved"),r=this.tableTierResolution(e),o=r.kind==="resolved"?r.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:o?.price??this.priceFor(e.categoryKey),currency:this.currency,...n?{tiers:n,tierId:o?.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){let i=this._doc?.categories.find(n=>n.key===e.categoryKey);return{...this.toSeat(e),categoryLabel:i?.label??e.categoryKey,categoryColor:i?.color??"#6e7bff",status:this.renderer?.getStatus(e.id)??"free",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(n=>n.key===e)?.tiers;return i&&i.length?i:void 0}tiersForSeat(e){if(!this._doc)return;let i=$o(this._doc,e);return i.length?i:void 0}seatTierResolution(e){return this._doc?et(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 et(this._doc,this.tableTierSeat(e),this.seatTiers.get(i))}setSeatTier(e,i){let n=this.seatById.get(e);if(!n)return;let r=this.tiersForSeat(n);if(r){if(i==null)this.seatTiers.delete(e);else if(r.some(o=>o.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 n of e){let r=this.labelToSeat.get(n);r&&i.push(this.toSeat(r))}return i}emitSelectionChange(){this.opts.onSelectionChange?.(this.getSelection()),this.emitOrphanHint()}ticketIssue(e){if(!this._doc)return null;let i=e?this.seatsForLabels(e):this.getSelection();return Zo(this._doc,i.map(n=>({label:n.label,...n.tierId?{tierId:n.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"?oe("picker.companionPairRequired"):"That ticket choice is not available for the selected seat.");return}let n=new Set(e.getSelection().map(o=>o.id));(n.size?Ko(this.seatById.values(),o=>e.getStatus(o),n):[]).length>0?(this.hintShown=!0,this.opts.onHint(oe("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(o=>i.labels.includes(o)))return!1;let n=new Map((i.items??[]).map(o=>[o.label,o.tierId])),r=new Map((i.items??[]).map(o=>[o.label,o.quantity??1]));return e.every(o=>{let s=this.labelToSeat.get(o),a=s?this.toSeat(s):null,l=a?.tierId??null;return(a?.objectType!=="table"||(a.bookingMode!=="variable"||this.confirmedVariableTables.has(o))&&(!r.has(o)||r.get(o)===a.quantity))&&(!n.has(o)||n.get(o)===l)})}handle409Conflicts(e){let{status:i,conflicts:n}=hi(e);if(i!==409||!n?.length)return;let r=this.renderer;if(!r)return;let o=this.idsForLabels(n.map(s=>s.label));o.length&&(r.deselect(o),r.setStatus(o,"held"),this.resetTableQuantitiesForLabels(n.map(s=>s.label))),this.emitSelectionChange()}setHold(e,i="created"){for(let o of e.items??[])this.groupedTablesByLabel.has(o.label)&&o.quantity!=null&&(this.tableQuantities.set(o.label,o.quantity),this.groupedTablesByLabel.get(o.label)?.mode==="variable"&&this.confirmedVariableTables.add(o.label));let n={...e,seats:this.seatsForLabels(e.labels)};this.hold_=n,this.renderer?.setOwnedHold?.(this.idsForLabels(n.labels)),this.expiryTimer&&clearTimeout(this.expiryTimer);let r=Math.max(0,n.expiresAt-Date.now());this.expiryTimer=setTimeout(()=>{this.expireActiveHold()},r),i==="restored"?this.opts.onHoldRestored?.(n):this.opts.onHold?.(n)}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(e.labels.some(i=>this.statusOf(i)==="held")){this.expiryTimer=setTimeout(()=>{this.expireActiveHold()},1e3);return}this.clearHold(),this.opts.onHoldExpired?.()}}}applySeatsMap(e,i="free"){let n=this.renderer;if(!n)return;this.liveStatuses=new Map(Object.entries(e)),this.liveDefault=i;let r=pn(i);this.allIds.length&&n.setStatus(this.allIds,r),n.setOwnedHold?.(this.idsForLabels(this.hold_?.labels??[]));let o={free:[],held:[],booked:[],not_for_sale:[]};for(let[a,l]of Object.entries(e))o[pn(l)].push(...this.idsForLabel(a));["free","held","booked","not_for_sale"].forEach(a=>{a!==r&&o[a].length&&n.setStatus(o[a],a)});let s=this.notForSaleCategorySeatIds();s.length&&n.setStatus(s,"not_for_sale"),this.clearBookedHoldIfSettled(),this.opts.onStatusChange?.()}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))}async resnapshot(){try{let e=await this.api.objects(this.key);this.applySeatsMap(e.seats,e.default??"free")}catch{}}async refresh(){await this.resnapshot()}attachVisibilityListener(){if(this.onVisibilityChange||typeof document>"u"||typeof document.addEventListener!="function")return;let e=()=>{this.closed||document.visibilityState==="visible"&&this.resnapshot().then(()=>{this.closed||this.renderer?.forceDraw()})};this.onVisibilityChange=e,document.addEventListener("visibilitychange",e)}detachVisibilityListener(){this.onVisibilityChange&&(typeof document<"u"&&typeof document.removeEventListener=="function"&&document.removeEventListener("visibilitychange",this.onVisibilityChange),this.onVisibilityChange=null)}realtimeSink(){return{applyStatuses:e=>this.applyStatusChanges(e),applyProjection:e=>this.applySeatsMap(e.exceptions,e.default),resync:()=>this.resnapshot(),onSections:(e,i)=>{let n=this.syncHidden(e),r=this.syncClosed(i);n&&this.resnapshot(),(n||r)&&this.opts.onStatusChange?.()}}}applyStatusChanges(e){let i=this.renderer;if(i){for(let n of e){this.liveStatuses.set(n.label,n.status);let r=this.idsForLabel(n.label);if(!r.length)continue;let o=pn(n.status);this.opts.flashOnLiveChange&&o!=="free"&&r.some(s=>i.getStatus(s)==="free")&&!this.hold_?.labels.includes(n.label)&&r.forEach(s=>i.flashSeat(s,o==="held"?"#f4b740":"#f43f5e")),i.setStatus(r,o)}this.opts.keepLiveWhileHidden&&typeof document<"u"&&document.visibilityState==="hidden"&&i.forceDraw(),this.clearBookedHoldIfSettled(),this.opts.onStatusChange?.()}}connect(){if(this.closed)return;let e=this.api.socketUrl(this.key);if(!e)return;if(!this.realtime&&this.api.createRealtime){let n=null;try{n=this.api.createRealtime(this.key,this.realtimeSink())}catch{n=null}if(n){this.realtime=n,n.start();return}}if(this.realtime)return;let i;try{let n=this.api.socketProtocols?.(this.key);i=n&&n.length?new WebSocket(e,n):new WebSocket(e)}catch{this.scheduleReconnect();return}this.ws=i,i.onopen=()=>{this.attempt=0,this.resnapshot()},i.onmessage=n=>{let r;try{r=JSON.parse(typeof n.data=="string"?n.data:"")}catch{return}if(!this.renderer||!r||typeof r!="object")return;let s=r;Array.isArray(s.hidden)&&this.syncHidden(s.hidden)&&(this.resnapshot(),this.opts.onStatusChange?.()),Array.isArray(s.closed)&&this.syncClosed(s.closed)&&this.opts.onStatusChange?.(),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=Uo(e,{baseMs:1e3,maxMs:al,jitter:1});this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},i)}};var cl=5,dl=-1.1,mn=35;function bn(t,e){let i=t-j,n=Math.atan2(cl-i,e)*180/Math.PI,r=Math.atan2(dl-i,e)*180/Math.PI;return r<-mn&&(n+=-mn-r,r=-mn),{topPitch:n,basePitch:r}}var q=2048,he=1024,Mt=Fe,B=Math.PI*2,ul=he/180,it=t=>(t+180)/360*q,H=t=>(90-t)/180*he;function rs(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 os(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 pi=96,Sn=360/pi,hl=.6,gn=[17,23,42];function yn(t,e,i=1){let n=Math.max(0,Math.min(.58,e)),r=Math.round(t[0]+(gn[0]-t[0])*n),o=Math.round(t[1]+(gn[1]-t[1])*n),s=Math.round(t[2]+(gn[2]-t[2])*n);return`rgba(${r},${o},${s},${i})`}function es(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 te(t,e,i){let n=(1-Math.abs(2*i-1))*e,r=(t%360+360)%360/60,o=n*(1-Math.abs(r%2-1)),s=0,a=0,l=0;r<1?[s,a,l]=[n,o,0]:r<2?[s,a,l]=[o,n,0]:r<3?[s,a,l]=[0,n,o]:r<4?[s,a,l]=[0,o,n]:r<5?[s,a,l]=[o,0,n]:[s,a,l]=[n,0,o];let c=i-n/2;return[Math.round((s+c)*255),Math.round((a+c)*255),Math.round((l+c)*255)]}var ts=new Map;function is(t){if(!t)return null;let e=ts.get(t);if(e)return e;let i=2166136261;for(let o=0;o<t.length;o++)i^=t.charCodeAt(o),i=Math.imul(i,16777619);let n=(i>>>0)%360,r=te(n,.3,.42);return ts.set(t,r),r}function pl(t,e,i,n){let r=new Array(pi).fill(null),o=0,s=t.sectionId;for(let a of e){if(a.id===t.id)continue;let l=a.sectionId;if(!l||s&&l===s)continue;let c=a.x-t.x,d=a.y-t.y,h=Math.hypot(c,d)*Mt;if(h<1.5||h>95)continue;let u=a.eyeHeightM??j,m=u-n;Math.abs(m)>o&&(o=Math.abs(m));let b=Math.atan2(m,h)*180/Math.PI,f=Math.atan2(u-j-n,h)*180/Math.PI,g=((Math.atan2(c,-d)-i)*180/Math.PI+540)%360-180,v=Math.min(pi-1,Math.max(0,Math.floor((g+180)/Sn))),y=b>34&&h<16,x=r[v];x?(b>x.top&&(x.top=b),f<x.base&&(x.base=f),h<x.nearM&&(x.nearM=h,x.tint=is(a.categoryKey)),x.overhead=x.overhead||y):r[v]={top:b,base:f,nearM:h,overhead:y,tint:is(a.categoryKey)}}return{bins:r,maxDelta:o}}function fl(t,e,i,n){for(let r=0;r<pi;r++){let o=e[r];if(!o)continue;let s=-180+r*Sn,a=i(s),l=i(s+Sn);if(!(l>a))continue;let c=Math.min(72,o.top),d=Math.min(o.base,-4),h=n(c),u=n(d);if(u<=h)continue;let m=o.nearM/95,b=o.tint,f=b?es([44,54,80],b,.34):[44,54,80],p=b?es([24,30,48],b,.28):[24,30,48],g=t.createLinearGradient(0,h,0,u);g.addColorStop(0,yn(f,m)),g.addColorStop(.24,yn(p,m)),g.addColorStop(1,yn([10,13,22],m)),t.fillStyle=g,t.fillRect(a,h,l-a+1,u-h),t.fillStyle=`rgba(150,165,205,${.35*(1-m*.55)})`,t.fillRect(a,h,l-a+1,1.5);let y=Math.min(u,n(0))-h;if(y>8){let I=1-m*.4;for(let k=1;k<6;k++){let w=h+y*k/6;t.fillStyle=`rgba(0,0,0,${.16*I})`,t.fillRect(a,w,l-a+1,1.5),t.fillStyle=`rgba(120,134,170,${.1*I})`,t.fillRect(a,w+1.5,l-a+1,1.2)}}if(o.overhead){let x=n(Math.min(86,c+12)),I=t.createLinearGradient(0,x,0,h);I.addColorStop(0,"rgba(3,4,8,0.9)"),I.addColorStop(1,"rgba(3,4,8,0)"),t.fillStyle=I,t.fillRect(a,x,l-a+1,h-x),t.fillStyle="rgba(120,130,160,0.14)",t.fillRect(a,h-1.5,l-a+1,1.5)}}}function ml(t,e,i){let r=new Array(72).fill(!1),o=new Array(72).fill(1/0),s=new Set,a=0;for(let g of i){a++,g.sectionId&&s.add(g.sectionId);let v=g.x-e.x,y=g.y-e.y,x=Math.hypot(v,y)*Mt;if(x<.5)continue;let I=Math.atan2(v,-y),k=Math.floor((I+Math.PI)/B*72);k<0?k=0:k>=72&&(k=71),r[k]=!0,x<o[k]&&(o[k]=x)}let l=0,c=[];for(let g=0;g<72;g++)r[g]&&(l++,c.push(o[g]));let d=l/72*360;c.sort((g,v)=>g-v);let h=c.length?c[c.length>>1]:0,u=c.length?c[Math.floor(c.length*.15)]??h:0,m=c.length?c[Math.floor(c.length*.85)]??h:0,b=u>.5?m/u:1,f=rs(`${a}|${[...s].sort().join(",")}|${Math.round(e.x)},${Math.round(e.y)}`),p;return d>=300&&h>11&&b>1.35?p="sport":d>=285?p="arena":p="proscenium",{mode:p,seed:f,voidRadiusM:h,aspect:b}}var bl=5;function gl(t,e,i){switch(i){case 1:t.beginPath(),t.ellipse(0,-e*.14,e*1.16,e*1.16,0,0,B),t.fill();break;case 2:t.beginPath(),t.ellipse(0,-e*1.02,e*.42,e*.42,0,0,B),t.fill(),t.beginPath(),t.ellipse(0,-e*.2,e*.98,e*1.02,0,0,B),t.fill();break;case 3:t.beginPath(),t.ellipse(0,-e*.36,e*1.04,e*.6,0,Math.PI,B),t.fill(),t.beginPath(),t.ellipse(0,-e*.52,e*1.22,e*.24,0,0,B),t.fill();break;case 4:t.beginPath(),t.ellipse(-e*.66,e*.5,e*.5,e*1.35,0,0,B),t.fill(),t.beginPath(),t.ellipse(e*.66,e*.5,e*.5,e*1.35,0,0,B),t.fill(),t.beginPath(),t.ellipse(0,-e*.08,e*1.06,e*1.08,0,0,B),t.fill();break;default:break}}function yl(t,e,i,n,r){let o=n*.44,s=n*r.shoulderK,a=n*.66,l=n*1.68,c=n*5.4,d=`rgba(${r.clothing[0]},${r.clothing[1]},${r.clothing[2]},${r.alpha})`,h=`rgba(${r.tone[0]},${r.tone[1]},${r.tone[2]},${r.alpha})`;t.save(),t.translate(e,i);let u=r.lean*n;t.fillStyle=d,t.beginPath(),t.moveTo(-o,a),t.quadraticCurveTo(-o*1.18,l-u-n*.6,-s,l-u),t.quadraticCurveTo(-s*1.05,l+n*1.2,-s*.94,c),t.lineTo(s*.94,c),t.quadraticCurveTo(s*1.05,l+n*1.2,s,l+u),t.quadraticCurveTo(o*1.18,l+u-n*.6,o,a),t.closePath(),t.fill(),t.fillStyle=h,t.fillRect(-o*.82,n*.5,o*1.64,n*.9),t.save(),t.rotate(r.tilt),t.translate(r.turn*n,0),t.fillStyle=h,n>=18?(t.beginPath(),t.moveTo(-n*.9,-n*.15),t.quadraticCurveTo(-n*.96,-n*1.12,0,-n*1.06),t.quadraticCurveTo(n*.96,-n*1.12,n*.9,-n*.15),t.quadraticCurveTo(n*.86,n*.55,n*.36,n*.98),t.quadraticCurveTo(0,n*1.14,-n*.36,n*.98),t.quadraticCurveTo(-n*.86,n*.55,-n*.9,-n*.15),t.closePath(),t.fill(),n>=22&&(t.beginPath(),t.ellipse(-n*.9,n*.18,n*.13,n*.22,0,0,B),t.ellipse(n*.9,n*.18,n*.13,n*.22,0,0,B),t.fill())):(t.beginPath(),t.ellipse(0,0,n*.9,n*1.06,0,0,B),t.fill()),gl(t,n,r.hair),r.rim>.01&&(t.strokeStyle=`rgba(245,205,150,${(.5*r.rim).toFixed(3)})`,t.lineWidth=Math.max(1,n*.14),t.beginPath(),t.ellipse(0,-n*.06,n*.86,n*1,0,Math.PI*1.12,Math.PI*1.9),t.stroke()),t.restore(),r.rim>.01&&(t.strokeStyle=`rgba(240,200,150,${(.28*r.rim).toFixed(3)})`,t.lineWidth=Math.max(1,n*.12),t.beginPath(),t.moveTo(-s*.8,l-n*.05),t.quadraticCurveTo(-o,l-n*.75,0,l-n*.82),t.quadraticCurveTo(o,l-n*.75,s*.8,l-n*.05),t.stroke()),t.restore()}function Sl(t,e,i,n,r,o,s){t.fillStyle=`rgba(${r[0]},${r[1]},${r[2]},${s})`,t.beginPath(),t.moveTo(e-n*1.72,i+n*4),t.quadraticCurveTo(e-n*1.78,i+n*1.55,e-n*.46,i+n*1.02),t.lineTo(e-n*.4,i+n*.62),t.lineTo(e+n*.4,i+n*.62),t.lineTo(e+n*.46,i+n*1.02),t.quadraticCurveTo(e+n*1.78,i+n*1.55,e+n*1.72,i+n*4),t.closePath(),t.fill(),t.fillStyle=`rgba(${o[0]},${o[1]},${o[2]},${s})`,t.beginPath(),t.ellipse(e,i,n*.9,n*1.05,0,0,B),t.fill()}function kn(t,e,i,n,r){let o=n*.1,s=i-n*.9,a=i-n*.74,l=i-n*.46,c=n*.13,d=n*.09,h=`rgba(${r.tone[0]},${r.tone[1]},${r.tone[2]},${r.alpha})`,u=t.createRadialGradient(e,i,1,e,i,n*.24);u.addColorStop(0,"rgba(0,0,0,0.4)"),u.addColorStop(1,"rgba(0,0,0,0)"),t.save(),t.scale(1,.28),t.fillStyle=u,t.beginPath(),t.ellipse(e,i/.28,n*.24,n*.24,0,0,B),t.fill(),t.restore(),t.fillStyle=h,t.beginPath(),t.moveTo(e-d,l),t.lineTo(e-d*.7,i),t.lineTo(e-d*.1,i),t.lineTo(e-d*.1,l+n*.02),t.lineTo(e+d*.1,l+n*.02),t.lineTo(e+d*.1,i),t.lineTo(e+d*.7,i),t.lineTo(e+d,l),t.closePath(),t.fill(),t.beginPath(),t.moveTo(e-c,a),t.quadraticCurveTo(e-c*.9,l-n*.12,e-d,l),t.lineTo(e+d,l),t.quadraticCurveTo(e+c*.9,l-n*.12,e+c,a),t.quadraticCurveTo(e,a-n*.05,e-c,a),t.closePath(),t.fill(),t.lineCap="round",t.lineJoin="round",t.strokeStyle=h,t.lineWidth=n*.055;let m=a+n*.02;r.pose===1?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e-c*1.5,i-n*1.02),t.moveTo(e+c*.8,m),t.lineTo(e+c*1.5,i-n*1.02),t.stroke()):r.pose===2?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e+d*1.4,l-n*.02),t.moveTo(e+c*.8,m),t.lineTo(e-d*.4,l-n*.06),t.stroke(),t.fillStyle=h,t.beginPath(),t.ellipse(e+d*1.5,l-n*.04,n*.07,n*.09,-.5,0,B),t.fill()):r.pose===3?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e-c*.2,s+o*.6),t.moveTo(e+c*.8,m),t.lineTo(e+c*1.1,l),t.stroke(),t.lineWidth=n*.02,t.beginPath(),t.moveTo(e-c*.2,s+o*.9),t.lineTo(e-c*.2,i-n*.02),t.stroke()):(t.beginPath(),t.moveTo(e-c*.85,m),t.lineTo(e-c*.95,l+n*.02),t.moveTo(e+c*.85,m),t.lineTo(e+c*.95,l+n*.02),t.stroke()),t.fillStyle=h,t.fillRect(e-o*.34,s+o*.6,o*.68,o*.9),t.beginPath(),t.ellipse(e,s,o*.86,o*1.05,0,0,B),t.fill(),r.rimStrength>.01&&(t.strokeStyle=`rgba(${r.rim[0]},${r.rim[1]},${r.rim[2]},${(.6*r.rimStrength).toFixed(3)})`,t.lineWidth=Math.max(1,n*.02),t.beginPath(),t.moveTo(e-c,a),t.lineTo(e-o*.6,s+o*.4),t.moveTo(e-o*.7,s),t.ellipse(e,s,o*.84,o*1.02,0,Math.PI*1.05,Math.PI*1.55),t.stroke())}function fi(t,e,i,n,r,o,s,a,l){t.save(),t.globalCompositeOperation="lighter";let c=t.createLinearGradient(0,i,0,r);c.addColorStop(0,`rgba(${a},${l})`),c.addColorStop(.5,`rgba(${a},${(l*.4).toFixed(3)})`),c.addColorStop(1,`rgba(${a},0)`),t.fillStyle=c,t.beginPath(),t.moveTo(e-o,i),t.lineTo(n-s,r),t.lineTo(n+s,r),t.lineTo(e+o,i),t.closePath(),t.fill(),t.restore()}function xn(t,e,i,n,r){let o=t.createRadialGradient(e,i,0,e,i,n*3);o.addColorStop(0,`rgba(${r},0.9)`),o.addColorStop(.4,`rgba(${r},0.35)`),o.addColorStop(1,`rgba(${r},0)`),t.fillStyle=o,t.beginPath(),t.arc(e,i,n*3,0,B),t.fill(),t.fillStyle=`rgba(${r},1)`,t.beginPath(),t.arc(e,i,n,0,B),t.fill()}function vl(t,e,i){let n=document.createElement("canvas");n.width=q,n.height=he;let r=n.getContext("2d"),o=e.x-t.x,s=e.y-t.y,a=Math.hypot(o,s),l=Math.max(2,a*Mt),c=t.eyeHeightM??j,d=ml(t,e,i),h=os(d.seed),u=210+h()*150,m=te(220+(h()-.5)*60,.55,.82),b=`${m[0]},${m[1]},${m[2]}`,f=r.createLinearGradient(0,0,0,he);f.addColorStop(0,"#080b12"),f.addColorStop(.42,"#12182c"),f.addColorStop(.5,"#1c2440"),f.addColorStop(.56,"#151b2c"),f.addColorStop(.78,"#171e30"),f.addColorStop(1,"#131829"),r.fillStyle=f,r.fillRect(0,0,q,he);let p=r.createLinearGradient(0,H(-6),0,he);p.addColorStop(0,"rgba(30, 37, 56, 0)"),p.addColorStop(.55,"rgba(30, 37, 56, 0.22)"),p.addColorStop(1,"rgba(22, 28, 44, 0.12)"),r.fillStyle=p,r.fillRect(0,H(-6),q,he-H(-6));let g=Math.atan2(o,-s),v=pl(t,i,g,c),y=v.maxDelta>=hl;y&&fl(r,v.bins,it,H);let x=Math.max(.3,Math.min(1,1-(l-6)/60)),I=bn(c,l),k=Math.min(80,Math.atan2(4,l)*180/Math.PI),w=Math.min(45,I.topPitch),M=I.basePitch;d.mode==="sport"?wl(r,l,c,d,x,u,b,h):d.mode==="arena"?xl(r,l,c,d,x,b,h):kl(r,k,w,M,x,u,b,h);let C=d.mode==="sport"?34:24+Math.floor(h()*8);r.fillStyle=`rgba(${b},0.8)`;for(let R=0;R<C;R++){let S=(R+.5)/C*q,T=H(d.mode==="sport"?58:54+R*7%3*6);r.beginPath(),r.arc(S,T,d.mode==="sport"?2.6:3.2,0,B),r.fill()}Il(r,t,i,e,g,c,o,s,y,d);let L=r.createLinearGradient(0,0,0,he);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)"),r.fillStyle=L,r.fillRect(0,0,q,he),{url:n.toDataURL("image/jpeg",.82),distanceM:Math.round(l)}}function kl(t,e,i,n,r,o,s,a){let l=it(-e),c=it(e),d=H(i),h=H(n),u=c-l,m=h-d,b=H(Math.min(50,i+10)),f=u*(1.1+(1-r)*.5),p=t.createRadialGradient(q/2,(d+h)/2,8,q/2,(d+h)/2,f);p.addColorStop(0,"rgba(255, 214, 150, 0.34)"),p.addColorStop(.28,"rgba(150, 150, 230, 0.3)"),p.addColorStop(.6,"rgba(99, 102, 241, 0.12)"),p.addColorStop(1,"rgba(99, 102, 241, 0)"),t.fillStyle=p,t.fillRect(l-u*.6,d-m*1.2,u*2.2,m*3.4);let g=te(o,.62,.55),v=te(o+40,.7,.5),y=te(o+70,.78,.52);t.save(),t.beginPath(),t.rect(l,d,u,m),t.clip();let x=t.createLinearGradient(0,d,0,h);x.addColorStop(0,`rgb(${g[0]},${g[1]},${g[2]})`),x.addColorStop(.5,`rgb(${v[0]},${v[1]},${v[2]})`),x.addColorStop(1,`rgb(${y[0]},${y[1]},${y[2]})`),t.globalAlpha=.8,t.fillStyle=x,t.fillRect(l,d,u,m),t.globalAlpha=1;let I=t.createRadialGradient(q/2,(d+h)/2,u*.12,q/2,(d+h)/2,u*.62);I.addColorStop(0,"rgba(6,8,14,0)"),I.addColorStop(.7,"rgba(6,8,14,0.15)"),I.addColorStop(1,"rgba(5,6,11,0.92)"),t.fillStyle=I,t.fillRect(l,d,u,m),t.restore();let k=3+Math.floor(a()*3),w=m*.46,M=h-m*.08;for(let F=0;F<k;F++){let W=(F+1)/(k+1),D=l+u*(.22+W*.56+(a()-.5)*.06);kn(t,D,M,w*(.9+a()*.24),{tone:[8,10,16],alpha:.9,pose:Math.floor(a()*4),rim:te(o+20,.5,.7),rimStrength:.7})}t.fillStyle="#05070d",t.fillRect(l-u*.5,b,u*.5,h-b),t.fillRect(c,b,u*.5,h-b);let C=u*.055+3,L=C*1.35;t.fillStyle="#03050a",t.beginPath(),t.moveTo(l,h),t.lineTo(l-C,h),t.lineTo(l-L,b),t.lineTo(l+u*.012,b),t.closePath(),t.fill(),t.beginPath(),t.moveTo(c,h),t.lineTo(c+C,h),t.lineTo(c+L,b),t.lineTo(c-u*.012,b),t.closePath(),t.fill(),t.fillRect(l-L,b,u+L*2,(h-b)*.12);let R=m*.14,S=b+(h-b)*.12;t.fillStyle="rgba(4,6,12,0.96)";let T=7;t.beginPath(),t.moveTo(l-L,S);for(let F=0;F<=T;F++){let W=l-L+(u+L*2)*F/T;t.quadraticCurveTo(W-(u+L*2)/T/2,S+R,W,S)}t.lineTo(c+L,S),t.lineTo(c+L,b),t.lineTo(l-L,b),t.closePath(),t.fill(),t.fillStyle=`rgba(${s},0.12)`,t.fillRect(l-1.5,S,1.5,h-S),t.fillRect(c,S,1.5,h-S),t.fillStyle="#0b0f18",t.fillRect(l-C,h-m*.05,u+C*2,m*.05+3);let E=t.createLinearGradient(0,h-m*.05,0,h+m*.12);E.addColorStop(0,`rgba(255,206,140,${(.5*r).toFixed(3)})`),E.addColorStop(1,"rgba(255,206,140,0)"),t.fillStyle=E,t.fillRect(l-C,h-m*.05,u+C*2,m*.2);let O=3+Math.floor(a()*2);for(let F=0;F<O;F++){let W=(F+1)/(O+1),D=l+u*(W+(a()-.5)*.08),N=H(Math.min(62,i+26)),X=(a()-.5)*u*.16;fi(t,D,N,D+X,h,4,u*.09,s,.16*(.7+r*.5)),xn(t,D,N,2.4,s)}}function xl(t,e,i,n,r,o,s){let a=Math.min(e*.6,Math.max(3,n.voidRadiusM)),l=Math.min(55,Math.atan2(a,e)*180/Math.PI),c=q/2,d=1.2,h=Math.max(e*.45,e-a),u=e+a,m=Math.atan2(d-i,h)*180/Math.PI,b=Math.atan2(d-i,u)*180/Math.PI,f=Math.atan2(-i,h)*180/Math.PI,p=H(m),g=H(b),v=H(f),y=it(l)-c,x=Math.max(6,(p-g)/2),I=(p+g)/2,k=t.createRadialGradient(c,v,4,c,v,y*2.6);k.addColorStop(0,`rgba(255,206,150,${(.2*r).toFixed(3)})`),k.addColorStop(.5,"rgba(150,140,190,0.08)"),k.addColorStop(1,"rgba(40,44,60,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=k,t.fillRect(c-y*2.6,g-x,y*5.2,v-g+x+40),t.restore(),t.fillStyle="#0c1019",t.beginPath(),t.moveTo(c-y,I),t.ellipse(c,I,y,x,0,Math.PI,0,!1),t.lineTo(c+y,v),t.ellipse(c,v,y,x,0,0,Math.PI,!1),t.closePath(),t.fill();let w=t.createLinearGradient(0,I,0,v);w.addColorStop(0,`rgba(${o},0.14)`),w.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=w,t.fillRect(c-y,I,y*2,v-I);let M=[[{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}]],C=M[Math.floor(s()*M.length)],L=s()<.5?-1:1,R=G=>c+G.u*L*y*.84,S=G=>I+G.v*x*.8,T=C.find(G=>G.lead)??C[0],E=R(T),O=t.createLinearGradient(0,I-x,0,I+x);O.addColorStop(0,"#3d4a72"),O.addColorStop(1,"#232b47"),t.fillStyle=O,t.beginPath(),t.ellipse(c,I,y,x,0,0,B),t.fill();let F=t.createRadialGradient(E,I,2,E,I,y);F.addColorStop(0,`rgba(255,214,160,${(.5*r).toFixed(3)})`),F.addColorStop(1,"rgba(255,214,160,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=F,t.beginPath(),t.ellipse(c,I,y,x,0,0,B),t.fill(),t.restore(),t.strokeStyle=`rgba(${o},0.7)`,t.lineWidth=2,t.beginPath(),t.ellipse(c,I,y,x,0,0,B),t.stroke();let W=Math.max(24,(v-g)*1.3),D=C.length>=3?3:2;for(let G=0;G<D;G++){let pe=(-.62+G*.52+(s()-.5)*.12)*-L,Me=c+pe*y*.7,nt=I-x*(.45+s()*.18),Be=y*(.07+s()*.04),Si=W*(.26+s()*.12);t.fillStyle="#0a0e18",t.fillRect(Me-Be/2,nt-Si,Be,Si),t.fillStyle=`rgba(${o},0.3)`,t.fillRect(Me-Be/2,nt-Si,Be,1.5)}if(C.length>=3){let G=c-T.u*L*y*.4;t.fillStyle="#0b0f1a",t.beginPath(),t.ellipse(G,I-x*.34,y*.08,x*.1,0,0,B),t.fill(),t.strokeStyle=`rgba(${o},0.35)`,t.lineWidth=1,t.stroke()}for(let G of[...C].sort((pe,Me)=>pe.v-Me.v)){let pe=.82+(G.v+1)*.14;kn(t,R(G),S(G),W*pe*(G.lead?1.06:.92),{tone:[18,21,34],alpha:.95,pose:G.pose,rim:te(40,.72,.8),rimStrength:G.lead?1.4:.9})}let N=H(Math.min(60,b+34)),X=x*1.1+6;t.strokeStyle="rgba(60,68,92,0.85)",t.lineWidth=3,t.beginPath(),t.ellipse(c,N,y*1.15,X,0,0,B),t.stroke();let _=4+Math.floor(s()*3);for(let G=0;G<_;G++){let pe=G/_*B,Me=c+Math.cos(pe)*y*1.15,nt=N+Math.sin(pe)*X;if(Math.sin(pe)>-.2){let Be=c+(s()-.5)*y*.8;fi(t,Me,nt,Be,I,3,y*.32,o,.2*(.7+r*.4))}xn(t,Me,nt,3,o)}let z=H(Math.min(52,b+24)),P=Math.max(60,y*.4),$=Math.max(24,P*.34);t.strokeStyle="rgba(70,78,102,0.6)",t.lineWidth=1.5,t.beginPath(),t.moveTo(c-P*.3,z-$/2),t.lineTo(c-P*.16,z-$*2.2),t.moveTo(c+P*.3,z-$/2),t.lineTo(c+P*.16,z-$*2.2),t.stroke(),t.fillStyle="#0d1220",t.fillRect(c-P/2,z-$/2,P,$);let mi=t.createLinearGradient(0,z-$*.3,0,z+$*.42);mi.addColorStop(0,`rgba(${o},0.5)`),mi.addColorStop(1,"rgba(255,214,160,0.32)"),t.fillStyle=mi,t.fillRect(c-P*.42,z-$*.3,P*.84,$*.72),t.fillStyle="rgba(255,214,160,0.55)",t.fillRect(c-P/2,z+$/2-2,P,2);let bi=t.createRadialGradient(c,z,4,c,z,P*1.1);bi.addColorStop(0,`rgba(${o},0.2)`),bi.addColorStop(1,"rgba(0,0,0,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=bi,t.fillRect(c-P*1.1,z-P*.8,P*2.2,P*1.6);let gi=t.createRadialGradient(c,(N+I)/2,6,c,(N+I)/2,y*1.5);gi.addColorStop(0,`rgba(${o},${(.1*(.6+r*.5)).toFixed(3)})`),gi.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=gi,t.fillRect(c-y*1.5,N-40,y*3,I-N+80),t.restore();let ps=c+Math.sign(E-c||1)*y*.5;fi(t,ps,N-X*.4,E,S(T),2.5,y*.16,"255,224,178",.42*(.7+r*.4));let yi=t.createRadialGradient(E,S(T),1,E,S(T),y*.2);yi.addColorStop(0,`rgba(255,228,185,${(.4*r).toFixed(3)})`),yi.addColorStop(1,"rgba(255,228,185,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=yi,t.beginPath(),t.ellipse(E,S(T),y*.2,x*.24,0,0,B),t.fill(),t.restore()}function wl(t,e,i,n,r,o,s,a){let l=q/2,c=Math.max(10,n.voidRadiusM),d=Math.max(2,e-c),h=e+c,u=Math.min(78,Math.atan2(c*1.15,e)*180/Math.PI),m=Math.atan2(-i,d)*180/Math.PI,b=Math.atan2(-i,h)*180/Math.PI,f=H(m),p=H(b),g=it(u)-l,v=(f+p)/2,y=Math.max(10,(f-p)/2),x=t.createRadialGradient(l,v,4,l,v,g);x.addColorStop(0,"#e8f0fb"),x.addColorStop(.7,"#b9c9e2"),x.addColorStop(1,"#8fa3c4"),t.save(),t.beginPath(),t.ellipse(l,v,g,y,0,0,B),t.clip(),t.fillStyle=x,t.fillRect(l-g,v-y,g*2,y*2),t.strokeStyle="rgba(90,120,170,0.5)",t.lineWidth=3,t.beginPath(),t.moveTo(l,v-y),t.lineTo(l,v+y),t.moveTo(l-g*.5,v-y),t.lineTo(l-g*.5,v+y),t.moveTo(l+g*.5,v-y),t.lineTo(l+g*.5,v+y),t.stroke(),t.strokeStyle="rgba(180,90,110,0.45)",t.beginPath(),t.ellipse(l,v,y*.9,y*.5,0,0,B),t.stroke(),t.restore(),t.strokeStyle="rgba(210,225,245,0.6)",t.lineWidth=2.5,t.beginPath(),t.ellipse(l,v,g,y,0,0,B),t.stroke(),t.fillStyle="rgba(20,26,40,0.8)";for(let R=0;R<5;R++){let S=l+(a()-.5)*g*1.4,T=v+(a()-.5)*y*1.1,E=Math.max(2,y*.06);t.beginPath(),t.ellipse(S,T,E*.6,E,0,0,B),t.fill()}let I=t.createRadialGradient(l,v,4,l,v,g*1.4);I.addColorStop(0,"rgba(200,220,255,0.12)"),I.addColorStop(1,"rgba(200,220,255,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=I,t.fillRect(l-g*1.4,p-y,g*2.8,f-p+y*2),t.restore();let k=H(Math.min(66,b+60)),w=Math.max(80,g*.7),M=w*.5,C=t.createRadialGradient(l,k,4,l,k,w*1.6);C.addColorStop(0,`rgba(${s},0.3)`),C.addColorStop(1,`rgba(${s},0)`),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=C,t.fillRect(l-w*1.6,k-w*1.2,w*3.2,w*2.4),t.restore(),t.fillStyle="#080b12",t.beginPath(),t.moveTo(l-w/2,k-M/2),t.lineTo(l+w/2,k-M/2),t.lineTo(l+w*.6,k),t.lineTo(l+w/2,k+M/2),t.lineTo(l-w/2,k+M/2),t.lineTo(l-w*.6,k),t.closePath(),t.fill();let L=o;for(let R=0;R<3;R++){let S=te(L+R*30,.5,.5);t.fillStyle=`rgba(${S[0]},${S[1]},${S[2]},0.75)`;let T=w*.26;t.fillRect(l-w*.42+R*(T+w*.06),k-M*.32,T,M*.64)}t.fillStyle=`rgba(${s},0.9)`;for(let R=0;R<8;R++){let S=l-w*.6+w*1.2*R/7;t.beginPath(),t.arc(S,k+M*.62,2.4,0,B),t.fill()}}function Il(t,e,i,n,r,o,s,a,l,c){let d=e.sectionId,h=!1,u=[];for(let f of i){if(f.id===e.id)continue;let p=f.x-e.x,g=f.y-e.y,v=Math.hypot(p,g)*Mt;if(d&&f.sectionId===d&&v<3&&p*s+g*a>0&&(h=!0),v<.3||v>32)continue;let x=((Math.atan2(p,-g)-r)*180/Math.PI+540)%360-180,I=l?(f.eyeHeightM??j)-o:0,k=Math.atan2(I-.28,v)*180/Math.PI;if(k>10&&v>5)continue;let w=0;for(let L=0;L<f.id.length;L++)w=w*31+f.id.charCodeAt(L)&65535;let M=.9+(w&15)/40,C=Math.min(78,Math.atan2(.16,v)*180/Math.PI*ul*M);C<1.2||u.push({hx:it(x),hy:H(k),r:C,d:v,hash:w})}u.sort((f,p)=>p.d-f.d);let m=[];{let f=[...u].sort((v,y)=>v.hy-y.hy),p=[],g=()=>{if(!p.length)return;let v=p.reduce((I,k)=>I+k.d,0)/p.length,y=p.reduce((I,k)=>I+k.hy,0)/p.length,x=p.reduce((I,k)=>I+k.r,0)/p.length;m.push({figs:p.sort((I,k)=>k.d-I.d),d:v,hy:y,r:x}),p=[]};for(let v of f){let y=p[p.length-1];y&&Math.abs(v.hy-y.hy)>Math.max(5,(y.r+v.r)/2*1.7)&&g(),p.push(v)}g()}m.sort((f,p)=>p.d-f.d);let b=[[22,26,40],[28,27,42],[24,31,46],[31,30,47],[20,24,36]];for(let f of m){if(f.figs.length>=3&&f.r>=1.6&&f.r<26){let p=[],g=[...f.figs].sort((x,I)=>x.hx-I.hx),v=[];for(let x of g){let I=v[v.length-1];I&&x.hx-I.hx>Math.max(14,x.r*7)&&(v.length>=3&&p.push(v),v=[]),v.push(x)}v.length>=3&&p.push(v);let y=Math.min(.42,.5*(1-f.d/42));if(y>.05){t.fillStyle=`rgba(15, 19, 31, ${y.toFixed(3)})`;for(let x of p){let I=x[0].hx-f.r*1.6,k=x[x.length-1].hx+f.r*1.6;t.beginPath(),t.roundRect(I,f.hy+f.r*.8,k-I,f.r*2.4,f.r*.8),t.fill()}}}for(let p of f.figs){let g=p.d<12?.95:p.d<17?Math.max(.66,.95-(p.d-12)/18):Math.max(.3,.68-(p.d-17)/34),v=Math.round((1-Math.min(1,p.d/16))*10),y=[14+(p.hash>>4&6)+v,17+(p.hash>>4&6)+v,25+(p.hash>>4&6)+v],x=b[p.hash%b.length],I=[x[0]+v,x[1]+v,x[2]+v];if(p.r>=13){let k=p.d<9?.16*(1-p.d/9)+(c.mode==="proscenium"?.06:0):0;yl(t,p.hx,p.hy,p.r,{tone:y,clothing:I,alpha:g,tilt:((p.hash>>2&7)-3.5)*.018,shoulderK:1.72+(p.hash>>5&7)/22,hair:p.hash%bl,rim:k,turn:((p.hash>>8&7)-3.5)*.034,lean:((p.hash>>10&3)-1.5)*.09})}else p.r>=5.5?Sl(t,p.hx,p.hy,p.r,I,y,g):(t.fillStyle=`rgba(${y[0]},${y[1]},${y[2]},${g.toFixed(3)})`,t.beginPath(),t.arc(p.hx,p.hy,p.r,0,B),t.fill(),t.beginPath(),t.ellipse(p.hx,p.hy+p.r*1.4,p.r*1.85,p.r*.95,0,Math.PI,0,!0),t.fill())}}if(h){let f=H(-34);t.fillStyle="rgba(6, 8, 14, 0.92)",t.fillRect(0,f,q,he-f),t.fillStyle="rgba(24, 30, 46, 0.9)";let p=16;for(let g=0;g<p;g++){let v=(g+.5)/p*q;t.beginPath(),t.ellipse(v,f+6,q/p*.42,22,0,Math.PI,0,!0),t.fill()}}}var ne=480,tt=270,vn=50,Ae=30,ns=t=>(t+vn)/(2*vn)*ne,Ct=t=>(Ae-t)/(2*Ae)*tt;function Tl(t,e,i){let n=document.createElement("canvas");n.width=ne,n.height=tt;let r=n.getContext("2d"),o=e.x-t.x,s=e.y-t.y,a=Math.max(2,Math.hypot(o,s)*Mt),l=os(rs(`${t.id}|${Math.round(e.x)},${Math.round(e.y)}`)),c=210+l()*150,d=te(220+(l()-.5)*60,.55,.82),h=`${d[0]},${d[1]},${d[2]}`,u=r.createLinearGradient(0,0,0,tt);u.addColorStop(0,"#080b12"),u.addColorStop(.44,"#151c32"),u.addColorStop(.5,"#1d2644"),u.addColorStop(.58,"#161c2e"),u.addColorStop(1,"#131829"),r.fillStyle=u,r.fillRect(0,0,ne,tt);let m=t.eyeHeightM??j,b=bn(m,a),f=Math.min(vn-2,Math.atan2(4,a)*180/Math.PI),p=Math.min(Ae-2,b.topPitch),g=Math.max(-Ae+2,b.basePitch),v=ns(-f),y=ns(f),x=Ct(p),I=Ct(g),k=y-v,w=I-x,M=Math.max(.35,Math.min(1,1-(a-6)/60)),C=Ct(Math.min(Ae-1,p+8)),L=r.createRadialGradient(ne/2,(x+I)/2,4,ne/2,(x+I)/2,k*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)"),r.fillStyle=L,r.fillRect(v-k*.6,x-w*1.2,k*2.2,w*3.4);let R=te(c,.62,.55),S=te(c+40,.7,.5),T=te(c+70,.78,.52);r.save(),r.beginPath(),r.rect(v,x,k,w),r.clip();let E=r.createLinearGradient(0,x,0,I);E.addColorStop(0,`rgb(${R[0]},${R[1]},${R[2]})`),E.addColorStop(.5,`rgb(${S[0]},${S[1]},${S[2]})`),E.addColorStop(1,`rgb(${T[0]},${T[1]},${T[2]})`),r.globalAlpha=.8,r.fillStyle=E,r.fillRect(v,x,k,w),r.globalAlpha=1;let O=r.createRadialGradient(ne/2,(x+I)/2,k*.12,ne/2,(x+I)/2,k*.6);O.addColorStop(0,"rgba(6,8,14,0)"),O.addColorStop(.7,"rgba(6,8,14,0.15)"),O.addColorStop(1,"rgba(5,6,11,0.9)"),r.fillStyle=O,r.fillRect(v,x,k,w),r.restore();let F=3,W=I-w*.08;for(let _=0;_<F;_++){let z=(_+1)/(F+1);kn(r,v+k*(.24+z*.52),W,w*.46*(.9+l()*.24),{tone:[8,10,16],alpha:.9,pose:Math.floor(l()*4),rim:te(c+20,.5,.7),rimStrength:.7})}r.fillStyle="#05070d",r.fillRect(v-k*.5,C,k*.5,I-C),r.fillRect(y,C,k*.5,I-C);let D=k*.05+2,N=D*1.35;r.fillStyle="#03050a",r.beginPath(),r.moveTo(v,I),r.lineTo(v-D,I),r.lineTo(v-N,C),r.lineTo(v+k*.012,C),r.closePath(),r.fill(),r.beginPath(),r.moveTo(y,I),r.lineTo(y+D,I),r.lineTo(y+N,C),r.lineTo(y-k*.012,C),r.closePath(),r.fill(),r.fillRect(v-N,C,k+N*2,(I-C)*.13),r.fillStyle=`rgba(${h},0.12)`,r.fillRect(v-1.2,C,1.2,I-C),r.fillRect(y,C,1.2,I-C),r.fillStyle="#0b0f18",r.fillRect(v-D,I-w*.05,k+D*2,w*.05+2);let X=r.createLinearGradient(0,I-w*.05,0,I+w*.14);X.addColorStop(0,`rgba(255,206,140,${(.5*M).toFixed(3)})`),X.addColorStop(1,"rgba(255,206,140,0)"),r.fillStyle=X,r.fillRect(v-D,I-w*.05,k+D*2,w*.22);for(let _=0;_<3;_++){let z=(_+1)/4,P=v+k*z,$=Ct(Math.min(Ae-1,p+20));fi(r,P,$,P+(l()-.5)*k*.14,I,3,k*.09,h,.17*M),xn(r,P,$,1.8,h)}r.fillStyle=`rgba(${h},0.75)`;for(let _=0;_<8;_++)r.beginPath(),r.arc((_+.5)/8*ne,Ct(Ae-4-_%2*3),2.2,0,B),r.fill();r.fillStyle="rgba(10,13,20,0.9)",r.fillRect(0,tt-26,ne,26),r.fillStyle="rgba(30,37,54,0.9)";for(let _=0;_<9;_++){let z=_*(ne/9)+ne/18;r.beginPath(),r.ellipse(z,tt-22,ne/9*.4,15,0,Math.PI,0,!0),r.fill()}return{url:n.toDataURL("image/jpeg",.8),distanceM:Math.round(a)}}var Pl={es:()=>Promise.resolve().then(()=>(as(),ss)).then(t=>({default:t.es})),de:()=>Promise.resolve().then(()=>(cs(),ls)).then(t=>({default:t.de})),fr:()=>Promise.resolve().then(()=>(us(),ds)).then(t=>({default:t.fr}))},hs=new Set(["en"]);async function Rl(t){let e=qi(t);if(e==="en"||hs.has(e))return pt(e),e;try{let i=await Pl[e]();return pt(e,i.default),hs.add(e),e}catch{return pt("en"),"en"}}0&&(module.exports={ACCESSIBILITY_RING_COLOR,ACCESSIBILITY_TYPES,CHART_STORAGE_KEY,CURRENCY_CHOICES,DEFAULT_CURRENCY,LABEL_STYLE_MAX_SIZE,LABEL_STYLE_MIN_SIZE,MAX_EVENT_INVENTORY,MAX_GA_CAPACITY,PickerController,PickerSelectionError,RENDERED_QUALITY_REPORT_VERSION,SEAT_COMMERCIAL_MARKS,SUPPORTED_LOCALES,SURROUNDINGS_SHAPE_ROLES,SeatmapRenderer,TIER_HEIGHT_M,UNGROUPED_ID,accessibilityMeta,accessibilityRingColor,allObjects,applyHidden,chartBounds,computeSections,createRenderer,currencyExponent,currencySymbol,expandBooth,expandChart,expandRow,expandRowSlots,expandTable,expandTableSlots,floorObjects,floorOverviewTranslations,floorsOf,formatDate,formatMinor,formatMoney,fromMinorUnits,gaAreasOf,gaInventorySegments,gaUnitLabel,gaUnitLabels,generateSeatPanorama,generateSeatThumb,getLocale,growJoinedGAInventory,hiddenObjectIds,inspectRenderedQualityEvidence,isGaUnitLabel,isSectionHidden,layerOf,layoutFloorOverview,loadLocale,objectCenter,owningSectionForObject,pointInPolygon,pointInPolygonWithHoles,polygonLabelPoint,resolveLocale,rowInventoryCount,rowSeatPositions,seatCommercialMeta,sectionGeometry,setLocale,setMoneyLocale,setStringOverrides,stackFloors,t,tCount,tableInventoryCount,tableSeatCountsBySide,translateObject,validGAInventorySegments});
1
+ "use strict";var vi=Object.defineProperty;var fs=Object.getOwnPropertyDescriptor;var ms=Object.getOwnPropertyNames;var bs=Object.prototype.hasOwnProperty;var ki=(t,e,i)=>()=>{if(i)throw i[0];try{return t&&(e=t(t=0)),e}catch(n){throw i=[n],n}};var Rt=(t,e)=>{for(var i in e)vi(t,i,{get:e[i],enumerable:!0})},gs=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ms(e))!bs.call(t,r)&&r!==i&&vi(t,r,{get:()=>e[r],enumerable:!(n=fs(e,r))||n.enumerable});return t};var ys=t=>gs(vi({},"__esModule",{value:!0}),t);var ss={};Rt(ss,{es:()=>Tl});var Tl,as=ki(()=>{"use strict";Tl={"common.cancel":"Cancelar","common.close":"Cerrar","common.done":"Listo","common.copied":"\u2713 Copiado","picker.holdExpired":"Tu retenci\xF3n expir\xF3 \u2014 los asientos fueron liberados. Elige de nuevo.","picker.poweredBy":"Con la tecnolog\xEDa de SeatLayer","picker.testMode":"MODO DE PRUEBA","picker.orphanHint":"Esto deja un asiento aislado \u2014 considera desplazarte un asiento.","picker.companionRequiresWheelchair":"Requiere la plaza accesible contigua","picker.companionPairRequired":"Selecciona la plaza accesible contigua con cada entrada de acompa\xF1ante.","map.aria":"Mapa de asientos. Usa las flechas para moverte entre asientos, Intro para seleccionar.","map.seatsLeft":"{count} LIBRES","map.soldOut":"AGOTADO","map.statusHeld":"En espera","map.statusTaken":"Ocupado","map.fromPrice":"DESDE {price}","picker.floor":"Piso","picker.zoomLevel":"Nivel de zoom","picker.rungTip.zones":"Vista general \u2014 grupos de secciones como Grada norte o VIP","picker.rungTip.sections":"Bloques de secci\xF3n \u2014 las secciones agotadas y casi llenas se aten\xFAan para ver la disponibilidad de un vistazo","picker.rungTip.seats":"Asientos individuales \u2014 los bloques se convierten en puntos","picker.rungLabel.zones":"ZONAS","picker.rungLabel.sections":"SECCIONES","picker.rungLabel.seats":"ASIENTOS","picker.sectionSummaryAria":"Resumen de secci\xF3n {label}","picker.closeSectionSummary":"Cerrar resumen de secci\xF3n","picker.seatsLeftInSection.one":"{count} asiento disponible","picker.seatsLeftInSection.other":"{count} asientos disponibles","picker.overview":"Descripci\xF3n general","picker.entrance":"Entrada","picker.tapSeatHint":"Toca cualquier asiento para ver su vista","picker.ticketTierFor":"Categor\xEDa de entrada para {label}","picker.viewFromSeat":"Vista desde el asiento {label}","picker.real360":"REAL 360\xB0","picker.preview":"VISTA PREVIA","picker.sightline":"\u2248 {m} m al escenario","picker.panorama360":"Foto de 360\xB0 del lugar","picker.illustrationCaption":"ilustraci\xF3n \xB7 \u2248 {m} m del escenario","picker.restrictedView":"Visibilidad restringida","picker.obstructedView":"Visibilidad obstruida","picker.premiumSeat":"Asiento premium","picker.hideLimitedView":"Ocultar asientos con visibilidad limitada","picker.bestSeatsPremium":"Mejores asientos","picker.premiumFallbackNote":"No hay un bloque premium de {count}: mostrando los mejores disponibles","picker.loading3d":"Creando el recinto en 3D\u2026","picker.unavailable3d":"No se pudo iniciar la vista 3D. El mapa de asientos sigue disponible.","picker.jumpToSection":"Ir a una secci\xF3n","picker.salesClosedPill":"Las ventas est\xE1n cerradas","picker.salesClosedCopy":"La venta de entradas para este evento ha finalizado.","picker.salesClosedCta":"Venta cerrada","picker.salesClosedToast":"Las ventas de este evento est\xE1n cerradas.","picker.holdReassurance":"Tuyos durante {time} \u2014 a\xFAn no se te cobrar\xE1 nada.","picker.securingSeats":"Asegurando tus asientos\u2026","picker.openingCheckout":"Abriendo el pago seguro\u2026","picker.peekSecured":"\u2713 {count} asegurados \xB7 {total} \u2014 a\xFAn no se te cobrar\xE1 nada","picker.priceHint":"Los colores del plano son tipos de entrada \u2014 toca uno abajo para ver solo esos asientos.","picker.findTogetherInstead":"Buscar asientos juntos en su lugar","picker.keepMyPicks":"Mantener mi selecci\xF3n","picker.accessExpiredBody":"Vuelve a iniciar sesi\xF3n o recarga la p\xE1gina para seguir viendo estos asientos. Lo que ya tengas retenido seguir\xE1 siendo tuyo.","picker.accessExpiredTitle":"Tu sesi\xF3n de acceso ha finalizado","picker.accessInvalidBody":"A\xFAn puedes reservar todo lo que aparezca como disponible. Contacta a quien te envi\xF3 este enlace para acceder al resto.","picker.accessInvalidTitle":"No pudimos verificar tu acceso","picker.accessPausedBody":"El organizador ha pausado esta selecci\xF3n. Int\xE9ntalo de nuevo en unos minutos.","picker.accessPausedTitle":"Estos asientos est\xE1n retenidos en este momento","picker.accessRetry":"Intentar de nuevo","picker.accessRevokedBody":"Pide a quien te envi\xF3 aqu\xED un nuevo enlace para seguir reservando estos asientos.","picker.accessRevokedTitle":"Este enlace de acceso ya no est\xE1 activo","picker.accessiblePhysicalSeat":"Asiento f\xEDsico accesible","picker.addTime":"A\xF1adir tiempo","picker.addingEllipsis":"A\xF1adiendo\u2026","picker.allLevels":"Todos los niveles","picker.allPlacesBookedTogether":"Los {count} lugares se reservan juntos como una mesa exclusiva.","picker.allPrices":"Todos los precios","picker.allSeats":"Todos los asientos","picker.allSetTitle":"Todo listo","picker.anyTicketType":"Cualquier tipo de entrada","picker.anyVenueZone":"Cualquier zona del recinto","picker.areas":"Zonas","picker.available":"Disponible","picker.backToMap":"Volver al mapa","picker.backToVenue":"Volver al recinto","picker.bestSeatsStar":"\u2726 Mejores asientos","picker.booth":"Palco","picker.capacityGuests":"{count} invitados","picker.change":"Cambiar","picker.chartDerivedModel":"Modelo derivado del plano","picker.chartDerivedSeatEye":"3D en vivo \xB7 vista desde el asiento derivada del plano \xB7 no verificada","picker.checkConnection":"Comprueba tu conexi\xF3n e int\xE9ntalo de nuevo.","picker.checkoutCouldNotBeOpened":"No se pudo abrir el pago. Tus asientos siguen retenidos \u2014 int\xE9ntalo de nuevo.","picker.chooseAnotherToCompare":"Elige otro asiento para comparar.","picker.chooseGuestsCopy":"Elige cu\xE1ntos invitados se sentar\xE1n juntos. Esta mesa est\xE1 reservada en exclusiva para tu grupo.","picker.chooseMinMaxGuests":"Elige entre {min} y {max} invitados","picker.clearSavedSeatComparison":"Borrar comparaci\xF3n de asientos guardada","picker.close":"Cerrar","picker.closeSeatStatus":"Cerrar estado del asiento","picker.closestGroupChosenInstantly":"El grupo disponible m\xE1s cercano, elegido al instante.","picker.collapseTicketPanel":"Contraer el panel de entradas","picker.compareCount":"Comparar {count}","picker.compareWithSaved":"Comparar con el guardado","picker.confirmOrCancelSeat":"Confirma o cancela este asiento","picker.confirmSeatLabel":"Confirmar asiento {label}","picker.confirmYourTable":"Confirma tu mesa","picker.confirmedAndOnWay":"confirmados. Una confirmaci\xF3n est\xE1 en camino.","picker.continue":"Continuar","picker.continueToCheckout":"Continuar al pago","picker.couldNotAddMoreTime":"No se pudo a\xF1adir m\xE1s tiempo \u2014 dir\xEDgete al pago ahora.","picker.couldNotFindSeatsTogether":"No pudimos encontrar {count} asientos juntos. Prueba con menos asientos u otro tipo de entrada.","picker.couldNotReleaseTickets":"No se pudieron liberar tus entradas. Tu retenci\xF3n no ha cambiado.","picker.couldNotRemoveLabel":"No se pudo quitar {label}. Tu retenci\xF3n no ha cambiado.","picker.currentOffer":"Oferta actual","picker.currentTicketOffer":"Oferta de entradas actual","picker.dragToLookAround":"Arrastra para mirar alrededor \xB7 despl\xE1zate para hacer zoom","picker.emptyWheelchairSpace":"Espacio vac\xEDo para silla de ruedas","picker.exitFullScreen":"Salir de pantalla completa","picker.fewer":"Menos","picker.fewerGuests":"Menos invitados","picker.fewerSeats":"Menos asientos","picker.filterAndFocusByPrice":"Filtrar y enfocar asientos por precio","picker.filters":"Filtros","picker.findBestSeatsCount.one":"Buscar {count} mejor asiento","picker.findBestSeatsCount.other":"Buscar {count} mejores asientos","picker.findBestSeatsTogether":"Buscar los mejores asientos juntos","picker.findNewSeats":"Buscar nuevos asientos","picker.findingBestSeats":"Buscando los mejores asientos\u2026","picker.findingEllipsis":"Buscando\u2026","picker.fitToScreen":"Ajustar a la pantalla","picker.flat2dMap":"Mapa plano 2D","picker.flexiblePartyTypeWord":"Grupo flexible \xB7 {typeWord}","picker.fullScreen":"Pantalla completa","picker.generalAdmission":"Entrada general","picker.guestCountCouldNotBeSecured":"No se pudo asegurar ese n\xFAmero de invitados. Tu retenci\xF3n de mesa actual no ha cambiado.","picker.guestCountNoLongerAvailable":"Ese n\xFAmero de invitados ya no est\xE1 disponible. Tu retenci\xF3n actual no ha cambiado.","picker.guests":"Invitados","picker.guestsCount":"{count} invitados","picker.guestsCountEdit":"{count} invitados \xB7 Editar","picker.held":"Retenido","picker.heldForYou":"Retenido para ti","picker.heldSeatExplanation":"Otro comprador est\xE1 reteniendo este asiento. Puede volver a estar disponible.","picker.heldTicketsReleased":"Se liberaron las entradas retenidas. Elige tus nuevos asientos.","picker.heldTicketsRestored":"Tus entradas retenidas se han restaurado.","picker.hidePanel":"Ocultar panel","picker.hideTicketPanel":"Ocultar el panel de entradas","picker.holdSeatsAndCheckout":"Retener asientos y pagar","picker.howOfferWorks":"C\xF3mo funciona la oferta \xAB{name}\xBB","picker.interactive3dVenueView":"Vista 3D interactiva del recinto","picker.keepMine":"Mantener los m\xEDos","picker.labelNoLongerAvailable":"{label} ya no est\xE1 disponible.","picker.labelRemoved":"{label} eliminado.","picker.labelRemovedFromHold":"{label} eliminado de tu retenci\xF3n.","picker.labelRestored":"{label} restaurado.","picker.labelsNoLongerAvailable.one":"{labels} ya no est\xE1 disponible. Elige otro asiento.","picker.labelsNoLongerAvailable.other":"{labels} ya no est\xE1n disponibles. Elige otro grupo.","picker.leftCount.one":"quedan {count}","picker.leftCount.other":"quedan {count}","picker.levelNumber":"Nivel {number}","picker.levels":"Niveles","picker.liveAvailability":"Disponibilidad en vivo \u2014 los asientos se actualizan en tiempo real","picker.loadingSeatMap":"Cargando el mapa de asientos\u2026","picker.lookAroundLive3d":"Mirar alrededor en 3D en vivo","picker.manualTicketsRemovedNote":"Tus entradas seleccionadas manualmente solo se eliminar\xE1n una vez que se asegure un nuevo grupo.","picker.map":"Mapa","picker.mapDidNotLoad":"El mapa de asientos no se pudo cargar","picker.maxTicketsForOrder":"Puedes seleccionar hasta {count} entradas para este pedido.","picker.selectExactMore":"Selecciona {count} m\xE1s","picker.selectExactCount":"Selecciona exactamente {count} entradas","picker.minToMaxGuests":"De {min} a {max} invitados","picker.more":"M\xE1s","picker.moreGuests":"M\xE1s invitados","picker.moreSeats":"M\xE1s asientos","picker.moreSelectedCount":"{count} m\xE1s seleccionados","picker.moreTimeAdded":"Se a\xF1adi\xF3 m\xE1s tiempo \u2014 tus asientos siguen retenidos.","picker.noAccessibilityMetadata":"No hay informaci\xF3n de accesibilidad disponible","picker.noAuthoredRestriction":"Sin restricci\xF3n indicada por el organizador","picker.noSeatsSelected":"Ning\xFAn asiento seleccionado","picker.notChargedYet":"A\xFAn no se te cobrar\xE1 nada.","picker.notForSale":"No est\xE1 a la venta","picker.notForSaleExplanation":"Este asiento no est\xE1 incluido en la venta actual.","picker.numberOfGuests":"N\xFAmero de invitados","picker.offerDetailActive":"Este precio se aplica autom\xE1ticamente a los asientos elegibles. Las entradas en carritos activos reducen temporalmente la cantidad disponible; las retenciones liberadas o vencidas la devuelven. Cuando la oferta termine, se aplicar\xE1 la siguiente oferta coincidente o el precio normal de la entrada.","picker.offerDetailUpcoming":"Las entradas est\xE1n disponibles ahora a su precio normal. Esta oferta programada se aplicar\xE1 autom\xE1ticamente a los asientos elegibles cuando comience.","picker.offerRemainingAvailable":"{count} disponibles","picker.offerStarts":"comienza {time}","picker.offerUntil":"hasta {time}","picker.oneSeatSaved":"1 asiento guardado","picker.oneSeatSavedChooseAnother":"Un asiento guardado; elige otro para comparar","picker.openAuthored360":"Abrir vista 360\xB0 del recinto","picker.openComparison":"Abrir comparaci\xF3n","picker.openComparisonOfSeats":"Abrir comparaci\xF3n de {count} asientos","picker.openTicketPanel":"Abrir el panel de entradas","picker.peekFromPrice":"Desde {price}","picker.peekTicketsTotal.one":"{count} entrada \xB7 {total}","picker.peekTicketsTotal.other":"{count} entradas \xB7 {total}","picker.perGuestPrice":"{price} por invitado","picker.pickYourSeats":"Elige tus asientos","picker.preferredTicketType":"Tipo de entrada preferido","picker.preferredVenueZone":"Zona del recinto preferida","picker.priceNotSupplied":"Precio no indicado","picker.releaseHeldTickets":"Liberar entradas retenidas y elegir otros asientos","picker.releasingEllipsis":"Liberando\u2026","picker.removeHeldTicketLabel":"Quitar entrada retenida {label}","picker.removeSeatLabel":"Quitar {label}","picker.removeTicketsUntilOrFewer":"Quita entradas hasta que tu pedido tenga {count} o menos.","picker.replaceCurrentChoices":"\xBFReemplazar tu selecci\xF3n actual?","picker.review":"Revisar","picker.row":"Fila","picker.rowLabel":"Fila {label}","picker.saveToCompare":"Guardar para comparar","picker.savedForComparison":"Guardado para comparar","picker.savedSeatComparison":"Comparaci\xF3n de asientos guardada","picker.scheduledOffer":"Oferta programada","picker.seat":"Asiento","picker.seatCount.one":"{count} asiento","picker.seatCount.other":"{count} asientos","picker.seatJustTakenByAnother":"El asiento {label} acaba de ser tomado por otro comprador.","picker.seatLabel":"Asiento {label}","picker.seatNoLongerAvailable":"Ese asiento ya no est\xE1 disponible.","picker.seatNoLongerYours":"Algunos asientos ya no est\xE1n disponibles para ti. Se han eliminado de tu pedido.","picker.seatNumberLower":"asiento {label}","picker.seatSalesClosedForEvent":"La venta de asientos para este evento ha finalizado.","picker.seatSelection":"Selecci\xF3n de asientos","picker.seatStatusLegend":"Leyenda del estado de los asientos","picker.seatTaken":"Otro comprador tom\xF3 un asiento que hab\xEDas elegido. Se ha eliminado de tu pedido.","picker.seatsHeldForNeedMoreTime":"Tus asientos est\xE1n retenidos durante <b>{time}</b>. \xBFNecesitas m\xE1s tiempo?","picker.seatsJustTaken":"Se acaban de ocupar uno o m\xE1s asientos. Vuelve a elegir.","picker.seatsJustTakenInCategory.one":"{count} asiento reci\xE9n ocupado en {label} \xB7 quedan {left}","picker.seatsJustTakenInCategory.other":"{count} asientos reci\xE9n ocupados en {label} \xB7 quedan {left}","picker.seatsNoLongerAvailableTryAnother":"Esos asientos ya no est\xE1n disponibles. Prueba otra cantidad o tipo de entrada.","picker.seatsSecured":"Asientos asegurados","picker.seatsSelectedCount.one":"{count} seleccionado","picker.seatsSelectedCount.other":"{count} seleccionados","picker.section":"Secci\xF3n","picker.secureMore":"Asegurar m\xE1s","picker.secureMoreAndCheckout":"Asegurar {count} m\xE1s y pagar","picker.securedCount":"{count} asegurados","picker.seeItIn3d":"Verlo en 3D","picker.select":"Seleccionar","picker.selectSeats":"Seleccionar asientos","picker.selectTable":"Seleccionar mesa","picker.selectWholeTable":"Seleccionar mesa completa","picker.selected":"Seleccionado","picker.selectingEllipsis":"Seleccionando\u2026","picker.showAllSeats":"Mostrar todos los asientos","picker.showAllTicketTypes":"Mostrar los {count} tipos de entrada","picker.showFewer":"Mostrar menos","picker.showLabelSeatsOnMap":"Mostrar los asientos de {label} en el mapa","picker.showTicketPanel":"Mostrar el panel de entradas","picker.sold":"Vendido","picker.soldOutCopy":"No hay asientos reservados disponibles actualmente para este evento.","picker.soldOutEyebrow":"Este evento","picker.soldOutTitle":"Agotado","picker.soldSeatExplanation":"Este asiento ya ha sido reservado.","picker.statusAvailable":"disponible","picker.statusOnHold":"en espera","picker.statusTaken2":"ocupado","picker.table":"Mesa","picker.tableCapacity":"Capacidad de la mesa","picker.tableUpdatedForGuests":"{label} actualizado para {count} invitados.","picker.temporarilyHeld":"Retenido temporalmente","picker.ticketPrices":"Precios de entradas","picker.ticketTypeSoldOut":"Ese tipo de entrada est\xE1 agotado. Prueba con otro tipo de entrada.","picker.tickets":"Entradas","picker.ticketsCount.one":"{count} entrada","picker.ticketsCount.other":"{count} entradas","picker.toggleColorblindColors":"Alternar colores para dalt\xF3nicos","picker.total":"Total","picker.trayHintTapOrBest":"Toca un asiento en el mapa, o deja que elijamos los mejores disponibles por ti.","picker.trayHintTapOrStanding":"Toca un asiento en el mapa \u2014 o consigue entradas de pie abajo.","picker.undo":"Deshacer","picker.upcomingTicketOffer":"Pr\xF3xima oferta de entradas","picker.updateTable":"Actualizar mesa","picker.updatingEllipsis":"Actualizando\u2026","picker.venueView":"Vista del recinto","picker.viewFromHere":"Vista desde aqu\xED","picker.viewFromThisSeat":"Vista desde este asiento","picker.wholeTypeWord":"{typeWord} completo","picker.willChooseClosestGroup":"Elegiremos el grupo disponible m\xE1s cercano por ti.","picker.willFindSeatsTogether":"Buscaremos {count} asientos juntos.","picker.yourSeats":"Tus asientos","picker.zoomIn":"Acercar","picker.zoomOut":"Alejar","picker.closeVenueNav":"Cerrar","picker.levelsAndAreas":"Niveles y zonas"}});var ls={};Rt(ls,{de:()=>Cl});var Cl,cs=ki(()=>{"use strict";Cl={"common.cancel":"Abbrechen","common.close":"Schlie\xDFen","common.done":"Fertig","common.copied":"\u2713 Kopiert","picker.holdExpired":"Ihre Reservierung ist abgelaufen \u2014 die Pl\xE4tze wurden freigegeben. Bitte erneut ausw\xE4hlen.","picker.poweredBy":"Bereitgestellt von SeatLayer","picker.testMode":"TESTMODUS","picker.orphanHint":"Dadurch bleibt ein einzelner Platz \xFCbrig \u2014 r\xFCcken Sie ggf. einen Platz weiter.","picker.companionRequiresWheelchair":"Benachbarter Rollstuhlplatz erforderlich","picker.companionPairRequired":"W\xE4hlen Sie zu jedem Begleitticket den benachbarten Rollstuhlplatz aus.","map.aria":"Sitzplan. Mit Pfeiltasten zwischen Pl\xE4tzen navigieren, Eingabe zum Ausw\xE4hlen.","map.seatsLeft":"{count} FREI","map.soldOut":"AUSVERKAUFT","map.statusHeld":"Reserviert","map.statusTaken":"Vergeben","map.fromPrice":"AB {price}","picker.floor":"Etage","picker.zoomLevel":"Zoomstufe","picker.rungTip.zones":"\xDCbersicht \u2014 Bereichsgruppen wie Nordtrib\xFCne oder VIP","picker.rungTip.sections":"Bereichs-Bl\xF6cke \u2014 ausverkaufte und fast volle Bereiche werden abgedunkelt, um die Verf\xFCgbarkeit auf einen Blick zu zeigen","picker.rungTip.seats":"Einzelne Pl\xE4tze \u2014 Bl\xF6cke l\xF6sen sich zu Punkten auf","picker.rungLabel.zones":"ZONEN","picker.rungLabel.sections":"BEREICHE","picker.rungLabel.seats":"PL\xC4TZE","picker.sectionSummaryAria":"Bereichszusammenfassung {label}","picker.closeSectionSummary":"Bereichszusammenfassung schlie\xDFen","picker.seatsLeftInSection.one":"{count} Platz verf\xFCgbar","picker.seatsLeftInSection.other":"{count} Pl\xE4tze verf\xFCgbar","picker.overview":"\xDCbersicht","picker.entrance":"Eingang","picker.tapSeatHint":"Tippen Sie auf einen Platz, um die Ansicht zu pr\xFCfen","picker.ticketTierFor":"Ticketklasse f\xFCr {label}","picker.viewFromSeat":"Ansicht von Platz {label}","picker.real360":"REAL 360\xB0","picker.preview":"VORSCHAU","picker.sightline":"\u2248 {m} m zur B\xFChne","picker.panorama360":"360\xB0-Veranstaltungsfotos","picker.illustrationCaption":"Illustration \xB7 \u2248 {m} m von der B\xFChne","picker.restrictedView":"Eingeschr\xE4nkte Sicht","picker.obstructedView":"Sichtbehinderung","picker.premiumSeat":"Premium-Platz","picker.hideLimitedView":"Pl\xE4tze mit eingeschr\xE4nkter Sicht ausblenden","picker.bestSeatsPremium":"Beste Pl\xE4tze","picker.premiumFallbackNote":"Kein Premium-Block mit {count} Pl\xE4tzen \u2014 beste verf\xFCgbare werden angezeigt","picker.loading3d":"3D-Veranstaltungsort wird aufgebaut\u2026","picker.unavailable3d":"3D konnte nicht gestartet werden. Der Sitzplan bleibt verf\xFCgbar.","picker.jumpToSection":"Zum Bereich springen","picker.salesClosedPill":"Der Verkauf ist beendet","picker.salesClosedCopy":"Der Ticketverkauf f\xFCr diese Veranstaltung ist beendet.","picker.salesClosedCta":"Verkauf beendet","picker.salesClosedToast":"Der Verkauf f\xFCr diese Veranstaltung ist beendet.","picker.holdReassurance":"F\xFCr {time} reserviert \u2014 noch wird nichts abgebucht.","picker.securingSeats":"Ihre Pl\xE4tze werden gesichert\u2026","picker.openingCheckout":"Sicherer Checkout wird ge\xF6ffnet\u2026","picker.peekSecured":"\u2713 {count} gesichert \xB7 {total} \u2014 noch wird nichts abgebucht","picker.priceHint":"Die Farben auf dem Plan sind Ticketkategorien \u2014 tippen Sie eine an, um nur diese Pl\xE4tze zu sehen.","picker.findTogetherInstead":"Stattdessen Pl\xE4tze nebeneinander finden","picker.keepMyPicks":"Meine Auswahl behalten","picker.accessExpiredBody":"Melden Sie sich erneut an oder laden Sie die Seite neu, um diese Pl\xE4tze weiter durchzusehen. Bereits gehaltene Pl\xE4tze bleiben Ihnen erhalten.","picker.accessExpiredTitle":"Ihre Zugangssitzung ist beendet","picker.accessInvalidBody":"Sie k\xF6nnen weiterhin alles buchen, was als verf\xFCgbar angezeigt wird. Wenden Sie sich f\xFCr Zugang zum Rest an die Person, die Ihnen den Link geschickt hat.","picker.accessInvalidTitle":"Ihr Zugang konnte nicht best\xE4tigt werden","picker.accessPausedBody":"Der Veranstalter hat diese Auswahl pausiert. Versuchen Sie es in ein paar Minuten erneut.","picker.accessPausedTitle":"Diese Pl\xE4tze sind gerade reserviert","picker.accessRetry":"Erneut versuchen","picker.accessRevokedBody":"Bitten Sie die Person, die Ihnen diesen Link geschickt hat, um einen neuen, um weiter buchen zu k\xF6nnen.","picker.accessRevokedTitle":"Dieser Zugangslink ist nicht mehr aktiv","picker.accessiblePhysicalSeat":"Barrierefreier fester Sitzplatz","picker.addTime":"Zeit hinzuf\xFCgen","picker.addingEllipsis":"Wird hinzugef\xFCgt\u2026","picker.allLevels":"Alle Ebenen","picker.allPlacesBookedTogether":"Alle {count} Pl\xE4tze werden gemeinsam als ein exklusiver Tisch gebucht.","picker.allPrices":"Alle Preise","picker.allSeats":"Alle Pl\xE4tze","picker.allSetTitle":"Alles bereit","picker.anyTicketType":"Beliebige Ticketart","picker.anyVenueZone":"Beliebiger Bereich","picker.areas":"Bereiche","picker.available":"Verf\xFCgbar","picker.backToMap":"Zur\xFCck zur Karte","picker.backToVenue":"Zur\xFCck zur \xDCbersicht","picker.bestSeatsStar":"\u2726 Beste Pl\xE4tze","picker.booth":"Loge","picker.capacityGuests":"{count} G\xE4ste","picker.change":"\xC4ndern","picker.chartDerivedModel":"Aus dem Plan abgeleitetes Modell","picker.chartDerivedSeatEye":"Live-3D \xB7 aus dem Plan abgeleitete Sitzperspektive \xB7 nicht vermessen","picker.checkConnection":"Bitte \xFCberpr\xFCfen Sie Ihre Verbindung und versuchen Sie es erneut.","picker.checkoutCouldNotBeOpened":"Der Checkout konnte nicht ge\xF6ffnet werden. Ihre Pl\xE4tze sind weiterhin reserviert \u2014 bitte versuchen Sie es erneut.","picker.chooseAnotherToCompare":"W\xE4hlen Sie einen weiteren Platz zum Vergleichen.","picker.chooseGuestsCopy":"W\xE4hlen Sie, wie viele G\xE4ste zusammensitzen. Dieser Tisch ist exklusiv f\xFCr Ihre Gruppe reserviert.","picker.chooseMinMaxGuests":"W\xE4hlen Sie {min}\u2013{max} G\xE4ste","picker.clearSavedSeatComparison":"Gespeicherten Sitzvergleich l\xF6schen","picker.close":"Schlie\xDFen","picker.closeSeatStatus":"Sitzstatus schlie\xDFen","picker.closestGroupChosenInstantly":"N\xE4chstgelegene verf\xFCgbare Gruppe, sofort ausgew\xE4hlt.","picker.collapseTicketPanel":"Ticketbereich einklappen","picker.compareCount":"{count} vergleichen","picker.compareWithSaved":"Mit Gespeichertem vergleichen","picker.confirmOrCancelSeat":"Diesen Platz best\xE4tigen oder abbrechen","picker.confirmSeatLabel":"Platz {label} best\xE4tigen","picker.confirmYourTable":"Ihren Tisch best\xE4tigen","picker.confirmedAndOnWay":"best\xE4tigt. Eine Best\xE4tigung ist unterwegs.","picker.continue":"Weiter","picker.continueToCheckout":"Weiter zum Checkout","picker.couldNotAddMoreTime":"Zus\xE4tzliche Zeit konnte nicht hinzugef\xFCgt werden \u2014 bitte jetzt zum Checkout gehen.","picker.couldNotFindSeatsTogether":"Wir konnten keine {count} zusammenh\xE4ngenden Pl\xE4tze finden. Versuchen Sie es mit weniger Pl\xE4tzen oder einer anderen Ticketart.","picker.couldNotReleaseTickets":"Ihre Tickets konnten nicht freigegeben werden. Ihre Reservierung bleibt unver\xE4ndert.","picker.couldNotRemoveLabel":"{label} konnte nicht entfernt werden. Ihre Reservierung bleibt unver\xE4ndert.","picker.currentOffer":"Aktuelles Angebot","picker.currentTicketOffer":"Aktuelles Ticketangebot","picker.dragToLookAround":"Ziehen zum Umsehen \xB7 Scrollen zum Zoomen","picker.emptyWheelchairSpace":"Leerer Rollstuhlplatz","picker.exitFullScreen":"Vollbild verlassen","picker.fewer":"Weniger","picker.fewerGuests":"Weniger G\xE4ste","picker.fewerSeats":"Weniger Pl\xE4tze","picker.filterAndFocusByPrice":"Pl\xE4tze nach Preis filtern und fokussieren","picker.filters":"Filter","picker.findBestSeatsCount.one":"{count} besten Platz finden","picker.findBestSeatsCount.other":"{count} beste Pl\xE4tze finden","picker.findBestSeatsTogether":"Die besten Pl\xE4tze zusammen finden","picker.findNewSeats":"Neue Pl\xE4tze finden","picker.findingBestSeats":"Beste Pl\xE4tze werden gesucht\u2026","picker.findingEllipsis":"Wird gesucht\u2026","picker.fitToScreen":"An Bildschirm anpassen","picker.flat2dMap":"Flache 2D-Karte","picker.flexiblePartyTypeWord":"Flexible Gruppe \xB7 {typeWord}","picker.fullScreen":"Vollbild","picker.generalAdmission":"Stehplatz","picker.guestCountCouldNotBeSecured":"Diese G\xE4steanzahl konnte nicht gesichert werden. Ihre aktuelle Tischreservierung bleibt unver\xE4ndert.","picker.guestCountNoLongerAvailable":"Diese G\xE4steanzahl ist nicht mehr verf\xFCgbar. Ihre aktuelle Reservierung bleibt unver\xE4ndert.","picker.guests":"G\xE4ste","picker.guestsCount":"{count} G\xE4ste","picker.guestsCountEdit":"{count} G\xE4ste \xB7 Bearbeiten","picker.held":"Reserviert","picker.heldForYou":"F\xFCr Sie reserviert","picker.heldSeatExplanation":"Ein anderer K\xE4ufer h\xE4lt diesen Platz gerade. Er k\xF6nnte wieder verf\xFCgbar werden.","picker.heldTicketsReleased":"Reservierte Tickets wurden freigegeben. W\xE4hlen Sie neue Pl\xE4tze.","picker.heldTicketsRestored":"Ihre reservierten Tickets wurden wiederhergestellt.","picker.hidePanel":"Bereich ausblenden","picker.hideTicketPanel":"Ticketbereich ausblenden","picker.holdSeatsAndCheckout":"Pl\xE4tze reservieren & zum Checkout","picker.howOfferWorks":"So funktioniert das Angebot \u201E{name}\u201C","picker.interactive3dVenueView":"Interaktive 3D-Ansicht des Veranstaltungsorts","picker.keepMine":"Meine behalten","picker.labelNoLongerAvailable":"{label} ist nicht mehr verf\xFCgbar.","picker.labelRemoved":"{label} entfernt.","picker.labelRemovedFromHold":"{label} aus Ihrer Reservierung entfernt.","picker.labelRestored":"{label} wiederhergestellt.","picker.labelsNoLongerAvailable.one":"{labels} ist nicht mehr verf\xFCgbar. W\xE4hlen Sie einen anderen Platz.","picker.labelsNoLongerAvailable.other":"{labels} sind nicht mehr verf\xFCgbar. W\xE4hlen Sie eine andere Gruppe.","picker.leftCount.one":"noch {count}","picker.leftCount.other":"noch {count}","picker.levelNumber":"Ebene {number}","picker.levels":"Ebenen","picker.liveAvailability":"Live-Verf\xFCgbarkeit \u2014 Pl\xE4tze aktualisieren sich in Echtzeit","picker.loadingSeatMap":"Sitzplan wird geladen\u2026","picker.lookAroundLive3d":"In Live-3D umsehen","picker.manualTicketsRemovedNote":"Ihre manuell gew\xE4hlten Tickets werden erst entfernt, nachdem eine neue Gruppe gesichert wurde.","picker.map":"Karte","picker.mapDidNotLoad":"Der Sitzplan konnte nicht geladen werden","picker.maxTicketsForOrder":"Sie k\xF6nnen f\xFCr diese Bestellung bis zu {count} Tickets ausw\xE4hlen.","picker.selectExactMore":"Noch {count} ausw\xE4hlen","picker.selectExactCount":"Genau {count} Tickets ausw\xE4hlen","picker.minToMaxGuests":"{min} bis {max} G\xE4ste","picker.more":"Mehr","picker.moreGuests":"Mehr G\xE4ste","picker.moreSeats":"Mehr Pl\xE4tze","picker.moreSelectedCount":"{count} weitere ausgew\xE4hlt","picker.moreTimeAdded":"Zus\xE4tzliche Zeit hinzugef\xFCgt \u2014 Ihre Pl\xE4tze sind weiterhin reserviert.","picker.noAccessibilityMetadata":"Keine Barrierefreiheits-Angaben vorhanden","picker.noAuthoredRestriction":"Keine vom Veranstalter angegebene Einschr\xE4nkung","picker.noSeatsSelected":"Keine Pl\xE4tze ausgew\xE4hlt","picker.notChargedYet":"Es wird noch nichts abgebucht.","picker.notForSale":"Nicht verk\xE4uflich","picker.notForSaleExplanation":"Dieser Platz ist im aktuellen Verkauf nicht enthalten.","picker.numberOfGuests":"Anzahl der G\xE4ste","picker.offerDetailActive":"Dieser Preis gilt automatisch f\xFCr berechtigte Pl\xE4tze. Tickets in aktiven Warenk\xF6rben verringern vor\xFCbergehend die verf\xFCgbare Menge; freigegebene oder abgelaufene Reservierungen geben sie zur\xFCck. Wenn das Angebot endet, greift das n\xE4chste passende Angebot oder der regul\xE4re Ticketpreis.","picker.offerDetailUpcoming":"Tickets sind derzeit zum regul\xE4ren Preis erh\xE4ltlich. Dieses geplante Angebot gilt automatisch f\xFCr berechtigte Pl\xE4tze, sobald es beginnt.","picker.offerRemainingAvailable":"{count} verf\xFCgbar","picker.offerStarts":"beginnt {time}","picker.offerUntil":"bis {time}","picker.oneSeatSaved":"1 Platz gespeichert","picker.oneSeatSavedChooseAnother":"Ein Platz gespeichert; w\xE4hlen Sie einen weiteren zum Vergleichen","picker.openAuthored360":"360\xB0-Ansicht des Veranstaltungsorts \xF6ffnen","picker.openComparison":"Vergleich \xF6ffnen","picker.openComparisonOfSeats":"Vergleich von {count} Pl\xE4tzen \xF6ffnen","picker.openTicketPanel":"Ticketbereich \xF6ffnen","picker.peekFromPrice":"Ab {price}","picker.peekTicketsTotal.one":"{count} Ticket \xB7 {total}","picker.peekTicketsTotal.other":"{count} Tickets \xB7 {total}","picker.perGuestPrice":"{price} pro Gast","picker.pickYourSeats":"W\xE4hlen Sie Ihre Pl\xE4tze","picker.preferredTicketType":"Bevorzugte Ticketart","picker.preferredVenueZone":"Bevorzugter Bereich","picker.priceNotSupplied":"Preis nicht angegeben","picker.releaseHeldTickets":"Reservierte Tickets freigeben und andere Pl\xE4tze w\xE4hlen","picker.releasingEllipsis":"Wird freigegeben\u2026","picker.removeHeldTicketLabel":"Reserviertes Ticket {label} entfernen","picker.removeSeatLabel":"{label} entfernen","picker.removeTicketsUntilOrFewer":"Entfernen Sie Tickets, bis Ihre Bestellung {count} oder weniger enth\xE4lt.","picker.replaceCurrentChoices":"Ihre aktuelle Auswahl ersetzen?","picker.review":"\xDCberpr\xFCfen","picker.row":"Reihe","picker.rowLabel":"Reihe {label}","picker.saveToCompare":"Zum Vergleich speichern","picker.savedForComparison":"Zum Vergleich gespeichert","picker.savedSeatComparison":"Gespeicherter Sitzvergleich","picker.scheduledOffer":"Geplantes Angebot","picker.seat":"Platz","picker.seatCount.one":"{count} Platz","picker.seatCount.other":"{count} Pl\xE4tze","picker.seatJustTakenByAnother":"Platz {label} wurde gerade von einem anderen K\xE4ufer \xFCbernommen.","picker.seatLabel":"Platz {label}","picker.seatNoLongerAvailable":"Dieser Platz ist nicht mehr verf\xFCgbar.","picker.seatNoLongerYours":"Einige Pl\xE4tze sind f\xFCr Sie nicht mehr verf\xFCgbar. Sie wurden aus Ihrer Bestellung entfernt.","picker.seatNumberLower":"Platz {label}","picker.seatSalesClosedForEvent":"Der Ticketverkauf f\xFCr diese Veranstaltung ist beendet.","picker.seatSelection":"Sitzplatzauswahl","picker.seatStatusLegend":"Legende zum Sitzstatus","picker.seatTaken":"Ein anderer K\xE4ufer hat einen von Ihnen gew\xE4hlten Platz \xFCbernommen. Er wurde aus Ihrer Bestellung entfernt.","picker.seatsHeldForNeedMoreTime":"Ihre Pl\xE4tze sind f\xFCr <b>{time}</b> reserviert. Mehr Zeit ben\xF6tigt?","picker.seatsJustTaken":"Ein oder mehrere Pl\xE4tze wurden gerade vergeben. Bitte w\xE4hlen Sie erneut.","picker.seatsJustTakenInCategory.one":"{count} Platz gerade vergeben in {label} \xB7 noch {left}","picker.seatsJustTakenInCategory.other":"{count} Pl\xE4tze gerade vergeben in {label} \xB7 noch {left}","picker.seatsNoLongerAvailableTryAnother":"Diese Pl\xE4tze sind nicht mehr verf\xFCgbar. Versuchen Sie eine andere Anzahl oder Ticketart.","picker.seatsSecured":"Pl\xE4tze gesichert","picker.seatsSelectedCount.one":"{count} ausgew\xE4hlt","picker.seatsSelectedCount.other":"{count} ausgew\xE4hlt","picker.section":"Bereich","picker.secureMore":"Mehr sichern","picker.secureMoreAndCheckout":"{count} weitere sichern & zum Checkout","picker.securedCount":"{count} gesichert","picker.seeItIn3d":"In 3D ansehen","picker.select":"Ausw\xE4hlen","picker.selectSeats":"Pl\xE4tze ausw\xE4hlen","picker.selectTable":"Tisch ausw\xE4hlen","picker.selectWholeTable":"Ganzen Tisch ausw\xE4hlen","picker.selected":"Ausgew\xE4hlt","picker.selectingEllipsis":"Wird ausgew\xE4hlt\u2026","picker.showAllSeats":"Alle Pl\xE4tze anzeigen","picker.showAllTicketTypes":"Alle {count} Ticketarten anzeigen","picker.showFewer":"Weniger anzeigen","picker.showLabelSeatsOnMap":"{label}-Pl\xE4tze auf der Karte anzeigen","picker.showTicketPanel":"Ticketbereich anzeigen","picker.sold":"Verkauft","picker.soldOutCopy":"F\xFCr diese Veranstaltung sind derzeit keine reservierten Pl\xE4tze verf\xFCgbar.","picker.soldOutEyebrow":"Diese Veranstaltung","picker.soldOutTitle":"Ausverkauft","picker.soldSeatExplanation":"Dieser Platz wurde bereits gebucht.","picker.statusAvailable":"verf\xFCgbar","picker.statusOnHold":"reserviert","picker.statusTaken2":"vergeben","picker.table":"Tisch","picker.tableCapacity":"Tischkapazit\xE4t","picker.tableUpdatedForGuests":"{label} auf {count} G\xE4ste aktualisiert.","picker.temporarilyHeld":"Vor\xFCbergehend reserviert","picker.ticketPrices":"Ticketpreise","picker.ticketTypeSoldOut":"Diese Ticketart ist ausverkauft. Versuchen Sie eine andere Ticketart.","picker.tickets":"Tickets","picker.ticketsCount.one":"{count} Ticket","picker.ticketsCount.other":"{count} Tickets","picker.toggleColorblindColors":"Farbenblindenfreundliche Farben umschalten","picker.total":"Gesamt","picker.trayHintTapOrBest":"Tippen Sie auf einen Platz in der Karte, oder lassen Sie uns die besten verf\xFCgbaren f\xFCr Sie w\xE4hlen.","picker.trayHintTapOrStanding":"Tippen Sie auf einen Platz in der Karte \u2014 oder holen Sie sich unten Stehplatztickets.","picker.undo":"R\xFCckg\xE4ngig","picker.upcomingTicketOffer":"Bevorstehendes Ticketangebot","picker.updateTable":"Tisch aktualisieren","picker.updatingEllipsis":"Wird aktualisiert\u2026","picker.venueView":"Ansicht des Veranstaltungsorts","picker.viewFromHere":"Ansicht von hier","picker.viewFromThisSeat":"Ansicht von diesem Platz","picker.wholeTypeWord":"Ganzer {typeWord}","picker.willChooseClosestGroup":"Wir w\xE4hlen die n\xE4chstgelegene verf\xFCgbare Gruppe f\xFCr Sie.","picker.willFindSeatsTogether":"Wir finden {count} Pl\xE4tze zusammen f\xFCr Sie.","picker.yourSeats":"Ihre Pl\xE4tze","picker.zoomIn":"Vergr\xF6\xDFern","picker.zoomOut":"Verkleinern","picker.closeVenueNav":"Schlie\xDFen","picker.levelsAndAreas":"Ebenen & Bereiche"}});var ds={};Rt(ds,{fr:()=>Ml});var Ml,us=ki(()=>{"use strict";Ml={"common.cancel":"Annuler","common.close":"Fermer","common.done":"Termin\xE9","common.copied":"\u2713 Copi\xE9","picker.holdExpired":"Votre r\xE9servation a expir\xE9 \u2014 les si\xE8ges ont \xE9t\xE9 lib\xE9r\xE9s. S\xE9lectionnez \xE0 nouveau.","picker.poweredBy":"Propuls\xE9 par SeatLayer","picker.testMode":"MODE TEST","picker.orphanHint":"Cela laisse un si\xE8ge isol\xE9 \u2014 pensez \xE0 vous d\xE9caler d'un si\xE8ge.","picker.companionRequiresWheelchair":"N\xE9cessite la place fauteuil roulant adjacente","picker.companionPairRequired":"S\xE9lectionnez la place fauteuil roulant adjacente avec chaque billet accompagnateur.","map.aria":"Plan de salle. Utilisez les fl\xE8ches pour naviguer entre les si\xE8ges, Entr\xE9e pour s\xE9lectionner.","map.seatsLeft":"{count} LIBRES","map.soldOut":"COMPLET","map.statusHeld":"En attente","map.statusTaken":"Pris","map.fromPrice":"D\xC8S {price}","picker.floor":"\xC9tage","picker.zoomLevel":"Niveau de zoom","picker.rungTip.zones":"Vue g\xE9n\xE9rale \u2014 groupes de sections comme Tribune nord ou VIP","picker.rungTip.sections":"Blocs de sections \u2014 les sections compl\xE8tes ou presque pleines sont estomp\xE9es pour voir la disponibilit\xE9 en un coup d\u2019\u0153il","picker.rungTip.seats":"Si\xE8ges individuels \u2014 les blocs se transforment en points","picker.rungLabel.zones":"ZONES","picker.rungLabel.sections":"SECTIONS","picker.rungLabel.seats":"SI\xC8GES","picker.sectionSummaryAria":"R\xE9sum\xE9 de la section {label}","picker.closeSectionSummary":"Fermer le r\xE9sum\xE9 de la section","picker.seatsLeftInSection.one":"{count} si\xE8ge restant","picker.seatsLeftInSection.other":"{count} si\xE8ges restants","picker.overview":"Vue d'ensemble","picker.entrance":"Entr\xE9e","picker.tapSeatHint":"Appuyez sur un si\xE8ge pour v\xE9rifier sa vue","picker.ticketTierFor":"Cat\xE9gorie de billet pour {label}","picker.viewFromSeat":"Vue depuis le si\xE8ge {label}","picker.real360":"VRAI 360\xB0","picker.preview":"APER\xC7U","picker.sightline":"\u2248 {m} m de la sc\xE8ne","picker.panorama360":"Photo panoramique 360\xB0 du lieu","picker.illustrationCaption":"illustration \xB7 \u2248 {m} m de la sc\xE8ne","picker.restrictedView":"Visibilit\xE9 r\xE9duite","picker.obstructedView":"Vue obstru\xE9e","picker.premiumSeat":"Place premium","picker.hideLimitedView":"Masquer les places \xE0 visibilit\xE9 r\xE9duite","picker.bestSeatsPremium":"Meilleures places","picker.premiumFallbackNote":"Aucun bloc premium de {count} \u2014 affichage des meilleures places disponibles","picker.loading3d":"Cr\xE9ation de la salle en 3D\u2026","picker.unavailable3d":"La 3D n\u2019a pas pu d\xE9marrer. Le plan des si\xE8ges reste disponible.","picker.jumpToSection":"Acc\xE9der \xE0 une section","picker.salesClosedPill":"Les ventes sont closes","picker.salesClosedCopy":"La vente de billets pour cet \xE9v\xE9nement est termin\xE9e.","picker.salesClosedCta":"Ventes closes","picker.salesClosedToast":"Les ventes sont closes pour cet \xE9v\xE9nement.","picker.holdReassurance":"\xC0 vous pendant {time} \u2014 vous ne serez pas encore d\xE9bit\xE9.","picker.securingSeats":"R\xE9servation de vos places\u2026","picker.openingCheckout":"Ouverture du paiement s\xE9curis\xE9\u2026","picker.peekSecured":"\u2713 {count} r\xE9serv\xE9es \xB7 {total} \u2014 vous ne serez pas encore d\xE9bit\xE9","picker.priceHint":"Les couleurs du plan correspondent aux types de billets \u2014 touchez-en un ci-dessous pour ne voir que ces places.","picker.findTogetherInstead":"Trouver plut\xF4t des places c\xF4te \xE0 c\xF4te","picker.keepMyPicks":"Garder ma s\xE9lection","picker.accessExpiredBody":"Reconnectez-vous ou rechargez la page pour continuer \xE0 consulter ces places. Ce que vous avez d\xE9j\xE0 r\xE9serv\xE9 reste \xE0 vous.","picker.accessExpiredTitle":"Votre session d\u2019acc\xE8s a pris fin","picker.accessInvalidBody":"Vous pouvez toujours r\xE9server tout ce qui est indiqu\xE9 comme disponible. Contactez la personne qui vous a envoy\xE9 ce lien pour acc\xE9der au reste.","picker.accessInvalidTitle":"Nous n\u2019avons pas pu v\xE9rifier votre acc\xE8s","picker.accessPausedBody":"L\u2019organisateur a mis cette s\xE9lection en pause. R\xE9essayez dans quelques minutes.","picker.accessPausedTitle":"Ces places sont actuellement en attente","picker.accessRetry":"R\xE9essayer","picker.accessRevokedBody":"Demandez \xE0 la personne qui vous a envoy\xE9 ce lien de vous en fournir un nouveau pour continuer \xE0 r\xE9server ces places.","picker.accessRevokedTitle":"Ce lien d\u2019acc\xE8s n\u2019est plus actif","picker.accessiblePhysicalSeat":"Si\xE8ge physique accessible","picker.addTime":"Ajouter du temps","picker.addingEllipsis":"Ajout en cours\u2026","picker.allLevels":"Tous les niveaux","picker.allPlacesBookedTogether":"Les {count} places sont r\xE9serv\xE9es ensemble comme une table exclusive.","picker.allPrices":"Tous les prix","picker.allSeats":"Toutes les places","picker.allSetTitle":"Tout est pr\xEAt","picker.anyTicketType":"Tout type de billet","picker.anyVenueZone":"Toute zone du lieu","picker.areas":"Zones","picker.available":"Disponible","picker.backToMap":"Retour au plan","picker.backToVenue":"Retour au lieu","picker.bestSeatsStar":"\u2726 Meilleures places","picker.booth":"Loge","picker.capacityGuests":"{count} invit\xE9s","picker.change":"Modifier","picker.chartDerivedModel":"Mod\xE8le d\xE9riv\xE9 du plan","picker.chartDerivedSeatEye":"3D en direct \xB7 point de vue d\xE9riv\xE9 du plan \xB7 non v\xE9rifi\xE9","picker.checkConnection":"V\xE9rifiez votre connexion et r\xE9essayez.","picker.checkoutCouldNotBeOpened":"Le paiement n\u2019a pas pu s\u2019ouvrir. Vos places sont toujours r\xE9serv\xE9es \u2014 veuillez r\xE9essayer.","picker.chooseAnotherToCompare":"Choisissez une autre place \xE0 comparer.","picker.chooseGuestsCopy":"Choisissez combien d\u2019invit\xE9s seront assis ensemble. Cette table est r\xE9serv\xE9e exclusivement \xE0 votre groupe.","picker.chooseMinMaxGuests":"Choisissez de {min} \xE0 {max} invit\xE9s","picker.clearSavedSeatComparison":"Effacer la comparaison de places enregistr\xE9e","picker.close":"Fermer","picker.closeSeatStatus":"Fermer le statut de la place","picker.closestGroupChosenInstantly":"Groupe disponible le plus proche, choisi instantan\xE9ment.","picker.collapseTicketPanel":"R\xE9duire le panneau des billets","picker.compareCount":"Comparer {count}","picker.compareWithSaved":"Comparer avec l\u2019enregistr\xE9e","picker.confirmOrCancelSeat":"Confirmer ou annuler cette place","picker.confirmSeatLabel":"Confirmer la place {label}","picker.confirmYourTable":"Confirmez votre table","picker.confirmedAndOnWay":"confirm\xE9s. Une confirmation arrive.","picker.continue":"Continuer","picker.continueToCheckout":"Continuer vers le paiement","picker.couldNotAddMoreTime":"Impossible d\u2019ajouter du temps \u2014 veuillez passer au paiement maintenant.","picker.couldNotFindSeatsTogether":"Nous n\u2019avons pas trouv\xE9 {count} places ensemble. Essayez avec moins de places ou un autre type de billet.","picker.couldNotReleaseTickets":"Impossible de lib\xE9rer vos billets. Votre r\xE9servation reste inchang\xE9e.","picker.couldNotRemoveLabel":"Impossible de retirer {label}. Votre r\xE9servation reste inchang\xE9e.","picker.currentOffer":"Offre actuelle","picker.currentTicketOffer":"Offre de billets actuelle","picker.dragToLookAround":"Faites glisser pour regarder autour \xB7 d\xE9filez pour zoomer","picker.emptyWheelchairSpace":"Emplacement vide pour fauteuil roulant","picker.exitFullScreen":"Quitter le plein \xE9cran","picker.fewer":"Moins","picker.fewerGuests":"Moins d\u2019invit\xE9s","picker.fewerSeats":"Moins de places","picker.filterAndFocusByPrice":"Filtrer et cibler les places par prix","picker.filters":"Filtres","picker.findBestSeatsCount.one":"Trouver {count} meilleure place","picker.findBestSeatsCount.other":"Trouver {count} meilleures places","picker.findBestSeatsTogether":"Trouver les meilleures places ensemble","picker.findNewSeats":"Trouver de nouvelles places","picker.findingBestSeats":"Recherche des meilleures places\u2026","picker.findingEllipsis":"Recherche\u2026","picker.fitToScreen":"Ajuster \xE0 l\u2019\xE9cran","picker.flat2dMap":"Plan 2D \xE0 plat","picker.flexiblePartyTypeWord":"Groupe flexible \xB7 {typeWord}","picker.fullScreen":"Plein \xE9cran","picker.generalAdmission":"Entr\xE9e g\xE9n\xE9rale","picker.guestCountCouldNotBeSecured":"Ce nombre d\u2019invit\xE9s n\u2019a pas pu \xEAtre s\xE9curis\xE9. Votre r\xE9servation de table actuelle reste inchang\xE9e.","picker.guestCountNoLongerAvailable":"Ce nombre d\u2019invit\xE9s n\u2019est plus disponible. Votre r\xE9servation actuelle reste inchang\xE9e.","picker.guests":"Invit\xE9s","picker.guestsCount":"{count} invit\xE9s","picker.guestsCountEdit":"{count} invit\xE9s \xB7 Modifier","picker.held":"R\xE9serv\xE9","picker.heldForYou":"R\xE9serv\xE9 pour vous","picker.heldSeatExplanation":"Un autre acheteur retient cette place actuellement. Elle pourrait redevenir disponible.","picker.heldTicketsReleased":"Les billets r\xE9serv\xE9s ont \xE9t\xE9 lib\xE9r\xE9s. Choisissez vos nouvelles places.","picker.heldTicketsRestored":"Vos billets r\xE9serv\xE9s ont \xE9t\xE9 restaur\xE9s.","picker.hidePanel":"Masquer le panneau","picker.hideTicketPanel":"Masquer le panneau des billets","picker.holdSeatsAndCheckout":"R\xE9server les places et payer","picker.howOfferWorks":"Comment fonctionne l\u2019offre \xAB {name} \xBB","picker.interactive3dVenueView":"Vue 3D interactive du lieu","picker.keepMine":"Garder les miennes","picker.labelNoLongerAvailable":"{label} n\u2019est plus disponible.","picker.labelRemoved":"{label} retir\xE9.","picker.labelRemovedFromHold":"{label} retir\xE9 de votre r\xE9servation.","picker.labelRestored":"{label} restaur\xE9.","picker.labelsNoLongerAvailable.one":"{labels} n\u2019est plus disponible. Choisissez une autre place.","picker.labelsNoLongerAvailable.other":"{labels} ne sont plus disponibles. Choisissez un autre groupe.","picker.leftCount.one":"{count} restante","picker.leftCount.other":"{count} restantes","picker.levelNumber":"Niveau {number}","picker.levels":"Niveaux","picker.liveAvailability":"Disponibilit\xE9 en direct \u2014 les places se mettent \xE0 jour en temps r\xE9el","picker.loadingSeatMap":"Chargement du plan de salle\u2026","picker.lookAroundLive3d":"Regarder autour en 3D en direct","picker.manualTicketsRemovedNote":"Vos billets s\xE9lectionn\xE9s manuellement ne seront retir\xE9s qu\u2019apr\xE8s qu\u2019un nouveau groupe soit s\xE9curis\xE9.","picker.map":"Plan","picker.mapDidNotLoad":"Le plan de salle n\u2019a pas pu se charger","picker.maxTicketsForOrder":"Vous pouvez s\xE9lectionner jusqu\u2019\xE0 {count} billets pour cette commande.","picker.selectExactMore":"S\xE9lectionnez-en encore {count}","picker.selectExactCount":"S\xE9lectionnez exactement {count} billets","picker.minToMaxGuests":"De {min} \xE0 {max} invit\xE9s","picker.more":"Plus","picker.moreGuests":"Plus d\u2019invit\xE9s","picker.moreSeats":"Plus de places","picker.moreSelectedCount":"{count} de plus s\xE9lectionn\xE9es","picker.moreTimeAdded":"Du temps suppl\xE9mentaire a \xE9t\xE9 ajout\xE9 \u2014 vos places restent r\xE9serv\xE9es.","picker.noAccessibilityMetadata":"Aucune information d\u2019accessibilit\xE9 fournie","picker.noAuthoredRestriction":"Aucune restriction indiqu\xE9e par l\u2019organisateur","picker.noSeatsSelected":"Aucune place s\xE9lectionn\xE9e","picker.notChargedYet":"Vous ne serez pas encore d\xE9bit\xE9.","picker.notForSale":"Non disponible \xE0 la vente","picker.notForSaleExplanation":"Cette place n\u2019est pas incluse dans la vente en cours.","picker.numberOfGuests":"Nombre d\u2019invit\xE9s","picker.offerDetailActive":"Ce prix s\u2019applique automatiquement aux places \xE9ligibles. Les billets dans les paniers actifs r\xE9duisent temporairement la quantit\xE9 disponible ; les r\xE9servations lib\xE9r\xE9es ou expir\xE9es la restituent. Lorsque l\u2019offre se termine, l\u2019offre correspondante suivante ou le prix normal du billet prend le relais.","picker.offerDetailUpcoming":"Les billets sont disponibles maintenant \xE0 leur prix normal. Cette offre programm\xE9e s\u2019appliquera automatiquement aux places \xE9ligibles d\xE8s son d\xE9marrage.","picker.offerRemainingAvailable":"{count} disponibles","picker.offerStarts":"d\xE9bute {time}","picker.offerUntil":"jusqu\u2019\xE0 {time}","picker.oneSeatSaved":"1 place enregistr\xE9e","picker.oneSeatSavedChooseAnother":"Une place enregistr\xE9e ; choisissez-en une autre \xE0 comparer","picker.openAuthored360":"Ouvrir la vue 360\xB0 du lieu","picker.openComparison":"Ouvrir la comparaison","picker.openComparisonOfSeats":"Ouvrir la comparaison de {count} places","picker.openTicketPanel":"Ouvrir le panneau des billets","picker.peekFromPrice":"D\xE8s {price}","picker.peekTicketsTotal.one":"{count} billet \xB7 {total}","picker.peekTicketsTotal.other":"{count} billets \xB7 {total}","picker.perGuestPrice":"{price} par invit\xE9","picker.pickYourSeats":"Choisissez vos places","picker.preferredTicketType":"Type de billet pr\xE9f\xE9r\xE9","picker.preferredVenueZone":"Zone du lieu pr\xE9f\xE9r\xE9e","picker.priceNotSupplied":"Prix non fourni","picker.releaseHeldTickets":"Lib\xE9rer les billets r\xE9serv\xE9s et choisir d\u2019autres places","picker.releasingEllipsis":"Lib\xE9ration en cours\u2026","picker.removeHeldTicketLabel":"Retirer le billet r\xE9serv\xE9 {label}","picker.removeSeatLabel":"Retirer {label}","picker.removeTicketsUntilOrFewer":"Retirez des billets jusqu\u2019\xE0 ce que votre commande en contienne {count} ou moins.","picker.replaceCurrentChoices":"Remplacer votre s\xE9lection actuelle ?","picker.review":"V\xE9rifier","picker.row":"Rang\xE9e","picker.rowLabel":"Rang\xE9e {label}","picker.saveToCompare":"Enregistrer pour comparer","picker.savedForComparison":"Enregistr\xE9 pour comparaison","picker.savedSeatComparison":"Comparaison de places enregistr\xE9e","picker.scheduledOffer":"Offre programm\xE9e","picker.seat":"Place","picker.seatCount.one":"{count} place","picker.seatCount.other":"{count} places","picker.seatJustTakenByAnother":"La place {label} vient d\u2019\xEAtre prise par un autre acheteur.","picker.seatLabel":"Place {label}","picker.seatNoLongerAvailable":"Cette place n\u2019est plus disponible.","picker.seatNoLongerYours":"Certaines places ne vous sont plus disponibles. Elles ont \xE9t\xE9 retir\xE9es de votre commande.","picker.seatNumberLower":"place {label}","picker.seatSalesClosedForEvent":"La vente de places pour cet \xE9v\xE9nement est termin\xE9e.","picker.seatSelection":"S\xE9lection des places","picker.seatStatusLegend":"L\xE9gende du statut des places","picker.seatTaken":"Un autre acheteur a pris une place que vous aviez choisie. Elle a \xE9t\xE9 retir\xE9e de votre commande.","picker.seatsHeldForNeedMoreTime":"Vos places sont r\xE9serv\xE9es pendant <b>{time}</b>. Besoin de plus de temps ?","picker.seatsJustTaken":"Une ou plusieurs places viennent d\u2019\xEAtre prises. Veuillez choisir \xE0 nouveau.","picker.seatsJustTakenInCategory.one":"{count} place tout juste prise dans {label} \xB7 {left} restante","picker.seatsJustTakenInCategory.other":"{count} places tout juste prises dans {label} \xB7 {left} restantes","picker.seatsNoLongerAvailableTryAnother":"Ces places ne sont plus disponibles. Essayez une autre quantit\xE9 ou un autre type de billet.","picker.seatsSecured":"Places s\xE9curis\xE9es","picker.seatsSelectedCount.one":"{count} s\xE9lectionn\xE9e","picker.seatsSelectedCount.other":"{count} s\xE9lectionn\xE9es","picker.section":"Section","picker.secureMore":"S\xE9curiser plus","picker.secureMoreAndCheckout":"S\xE9curiser {count} de plus et payer","picker.securedCount":"{count} s\xE9curis\xE9es","picker.seeItIn3d":"Voir en 3D","picker.select":"S\xE9lectionner","picker.selectSeats":"S\xE9lectionner des places","picker.selectTable":"S\xE9lectionner la table","picker.selectWholeTable":"S\xE9lectionner la table enti\xE8re","picker.selected":"S\xE9lectionn\xE9e","picker.selectingEllipsis":"S\xE9lection en cours\u2026","picker.showAllSeats":"Afficher toutes les places","picker.showAllTicketTypes":"Afficher les {count} types de billets","picker.showFewer":"Afficher moins","picker.showLabelSeatsOnMap":"Afficher les places {label} sur le plan","picker.showTicketPanel":"Afficher le panneau des billets","picker.sold":"Vendu","picker.soldOutCopy":"Aucune place r\xE9serv\xE9e n\u2019est actuellement disponible pour cet \xE9v\xE9nement.","picker.soldOutEyebrow":"Cet \xE9v\xE9nement","picker.soldOutTitle":"Complet","picker.soldSeatExplanation":"Cette place a d\xE9j\xE0 \xE9t\xE9 r\xE9serv\xE9e.","picker.statusAvailable":"disponible","picker.statusOnHold":"en attente","picker.statusTaken2":"prise","picker.table":"Table","picker.tableCapacity":"Capacit\xE9 de la table","picker.tableUpdatedForGuests":"{label} mise \xE0 jour pour {count} invit\xE9s.","picker.temporarilyHeld":"Temporairement r\xE9serv\xE9","picker.ticketPrices":"Prix des billets","picker.ticketTypeSoldOut":"Ce type de billet est \xE9puis\xE9. Essayez un autre type de billet.","picker.tickets":"Billets","picker.ticketsCount.one":"{count} billet","picker.ticketsCount.other":"{count} billets","picker.toggleColorblindColors":"Activer/d\xE9sactiver les couleurs adapt\xE9es au daltonisme","picker.total":"Total","picker.trayHintTapOrBest":"Touchez une place sur le plan, ou laissez-nous choisir les meilleures disponibles pour vous.","picker.trayHintTapOrStanding":"Touchez une place sur le plan \u2014 ou prenez des billets debout ci-dessous.","picker.undo":"Annuler","picker.upcomingTicketOffer":"Offre de billets \xE0 venir","picker.updateTable":"Mettre \xE0 jour la table","picker.updatingEllipsis":"Mise \xE0 jour en cours\u2026","picker.venueView":"Vue du lieu","picker.viewFromHere":"Vue depuis ici","picker.viewFromThisSeat":"Vue depuis cette place","picker.wholeTypeWord":"{typeWord} entier","picker.willChooseClosestGroup":"Nous choisirons le groupe disponible le plus proche pour vous.","picker.willFindSeatsTogether":"Nous trouverons {count} places ensemble.","picker.yourSeats":"Vos places","picker.zoomIn":"Zoomer","picker.zoomOut":"D\xE9zoomer","picker.closeVenueNav":"Fermer","picker.levelsAndAreas":"Niveaux et zones"}});var El={};Rt(El,{ACCESSIBILITY_RING_COLOR:()=>Ln,ACCESSIBILITY_TYPES:()=>In,CHART_STORAGE_KEY:()=>Ss,CURRENCY_CHOICES:()=>xa,DEFAULT_CURRENCY:()=>wc,LABEL_STYLE_MAX_SIZE:()=>Ls,LABEL_STYLE_MIN_SIZE:()=>Is,MAX_EVENT_INVENTORY:()=>ia,MAX_GA_CAPACITY:()=>_t,PickerController:()=>mn,PickerSelectionError:()=>ke,RENDERED_QUALITY_REPORT_VERSION:()=>br,SEAT_COMMERCIAL_MARKS:()=>Tn,SUPPORTED_LOCALES:()=>Rr,SURROUNDINGS_SHAPE_ROLES:()=>Cn,SeatmapRenderer:()=>di,TIER_HEIGHT_M:()=>Pi,UNGROUPED_ID:()=>He,accessibilityMeta:()=>ks,accessibilityRingColor:()=>Et,allObjects:()=>ae,applyHidden:()=>Ni,chartBounds:()=>Dt,computeSections:()=>ct,createRenderer:()=>dn,currencyExponent:()=>Mr,currencySymbol:()=>Ia,expandBooth:()=>Ot,expandChart:()=>be,expandRow:()=>st,expandRowSlots:()=>Qn,expandTable:()=>ze,expandTableSlots:()=>Fi,floorObjects:()=>ta,floorOverviewTranslations:()=>tr,floorsOf:()=>Ge,formatDate:()=>Ma,formatMinor:()=>wa,formatMoney:()=>Yt,fromMinorUnits:()=>Pr,gaAreasOf:()=>lt,gaInventorySegments:()=>Gi,gaUnitLabel:()=>nr,gaUnitLabels:()=>Ne,generateSeatPanorama:()=>vl,generateSeatThumb:()=>Ll,getLocale:()=>La,growJoinedGAInventory:()=>na,hiddenObjectIds:()=>sr,inspectRenderedQualityEvidence:()=>fa,isGaUnitLabel:()=>ra,isSectionHidden:()=>or,layerOf:()=>Cs,layoutFloorOverview:()=>zi,loadLocale:()=>Rl,objectCenter:()=>er,owningSectionForObject:()=>Ft,pointInPolygon:()=>Bi,pointInPolygonWithHoles:()=>Y,polygonLabelPoint:()=>at,resolveLocale:()=>$i,rowInventoryCount:()=>Zs,rowSeatPositions:()=>Oi,seatCommercialMeta:()=>ws,sectionGeometry:()=>xe,setLocale:()=>ft,setMoneyLocale:()=>qi,setStringOverrides:()=>Ta,stackFloors:()=>_i,t:()=>oe,tCount:()=>Ca,tableInventoryCount:()=>Qs,tableSeatCountsBySide:()=>Jn,translateObject:()=>Di,validGAInventorySegments:()=>rr});module.exports=ys(El);var Ss="seatmap.chart";var In=[{key:"wheelchair",label:"Wheelchair space",short:"Wheelchair",icon:"\u267F"},{key:"companion",label:"Companion seat",short:"Companion",icon:"\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}"},{key:"semi-ambulatory",label:"Semi-ambulatory (limited mobility)",short:"Limited mobility",icon:"\u{1F9AF}"},{key:"designated-aisle",label:"Designated aisle / transfer seat",short:"Aisle transfer",icon:"AS"},{key:"step-free",label:"Step-free accessible seat",short:"Step-free",icon:"SF"},{key:"hearing",label:"Assistive listening",short:"Hearing",icon:"\u{1F9BB}"},{key:"cart",label:"CART live-caption view",short:"CART captions",icon:"CC"},{key:"sign-language",label:"Sign-language view",short:"Sign language",icon:"\u{1F91F}"},{key:"low-vision",label:"Blind / low-vision viewing",short:"Low vision",icon:"LV"},{key:"sensory-friendly",label:"Quiet / sensory-friendly seating",short:"Sensory-friendly",icon:"QS"},{key:"plus-size",label:"Plus-size seat",short:"Plus-size",icon:"\u{1F4BA}"},{key:"lift-armrest",label:"Lift-up armrest",short:"Lift armrest",icon:"\u2195\uFE0F"}],vs=new Map(In.map(t=>[t.key,t]));function ks(t){return vs.get(t)}var Ln={wheelchair:"#3b82f6",companion:"#8b5cf6","semi-ambulatory":"#0ea5e9","designated-aisle":"#0284c7","step-free":"#16a34a",hearing:"#14b8a6",cart:"#7c3aed","sign-language":"#f59e0b","low-vision":"#d97706","sensory-friendly":"#6366f1","plus-size":"#ec4899","lift-armrest":"#22c55e"};function Et(t){let e=t?.[0];return e&&Ln[e]||"#3b82f6"}var Tn=[{key:"obstructedView",label:"Obstructed view",short:"Obstructed",icon:"\u26D4"},{key:"restrictedView",label:"Restricted view",short:"Restricted",icon:"\u{1F441}"},{key:"premium",label:"Premium seat",short:"Premium",icon:"\u2605"}],xs=new Map(Tn.map(t=>[t.key,t]));function ws(t){return xs.get(t)}var Is=8,Ls=24,Cn=["reference-focal","bar","entrance","exit","restroom","screen","sound","concession","coat","wall","rail","suite","obstruction"],Ts=new Set(Cn);function Cs(t){switch(t.type){case"row":case"table":case"gaArea":case"booth":case"section":return"interactive";case"decorImage":return t.layer==="foreground"?"foreground":"background";case"shape":return t.role&&Ts.has(t.role)?"surroundings":"background";case"text":return"background";default:return"interactive"}}var Mn=t=>Math.max(1,t.fontSize*.6+(t.letterSpacing??0));function Ms(t,e){let i=t.text.split(/\r?\n/);if(!t.width)return Math.max(1,i.length);let n=Math.max(1,Math.floor(e/Mn(t))),r=0;for(let o of i){if(!o.length){r+=1;continue}let s=0;for(let a of o.split(/\s+/)){let l=a.length;s&&s+1+l<=n?s+=1+l:(r+=Math.max(1,Math.ceil(l/n)),s=l%n)}}return Math.max(1,r)}function Pn(t){let e=t.background?.padding??0,i=t.text.split(/\r?\n/),n=Math.max(1,...i.map(a=>a.length))*Mn(t),r=t.width??n+e*2,o=Math.max(1,r-e*2),s=Ms(t,o);return{width:r,height:s*t.fontSize*(t.lineHeight??1.2)+e*2,lineCount:s,padding:e}}function Rn(t,e){let i=1-e,n=i*i*i,r=3*i*i*e,o=3*i*e*e,s=e*e*e;return{x:n*t.start.x+r*t.control1.x+o*t.control2.x+s*t.end.x,y:n*t.start.y+r*t.control1.y+o*t.control2.y+s*t.end.y}}function En(t,e,i=192){if(!Number.isInteger(e)||e<1)throw new Error("Path point count must be a positive integer");if(e===1)return[Rn(t,.5)];let n=Array.from({length:i+1},(l,c)=>Rn(t,c/i)),r=new Float64Array(n.length);for(let l=1;l<n.length;l+=1){let c=n[l].x-n[l-1].x,d=n[l].y-n[l-1].y;r[l]=r[l-1]+Math.hypot(c,d)}let o=r[r.length-1];if(o<=1e-9)return Array.from({length:e},()=>({...t.start}));let s=[],a=1;for(let l=0;l<e;l+=1){let c=o*l/(e-1);for(;a<r.length-1&&r[a]<c;)a+=1;let d=r[a-1],h=r[a],u=h===d?0:(c-d)/(h-d);s.push({x:n[a-1].x+(n[a].x-n[a-1].x)*u,y:n[a-1].y+(n[a].y-n[a-1].y)*u})}return s}function Ps(t,e,i){let n=i.x-e.x,r=i.y-e.y,o=n*n+r*r,s=o?Math.max(0,Math.min(1,((t.x-e.x)*n+(t.y-e.y)*r)/o)):0;return Math.hypot(t.x-(e.x+s*n),t.y-(e.y+s*r))}function wi(t,e){let i=1/0;for(let n of e)if(!(n.length<2))for(let r=0,o=n.length-1;r<n.length;o=r++){let s=Ps(t,n[o],n[r]);s<i&&(i=s)}return i}function An(t,e){let i=!1;for(let n=0,r=e.length-1;n<e.length;r=n++){let o=e[n].x,s=e[n].y,a=e[r].x,l=e[r].y;s>t.y!=l>t.y&&t.x<(a-o)*(t.y-s)/(l-s)+o&&(i=!i)}return i}function Rs(t,e,i){let n=An(t,e)&&!i.some(o=>An(t,o)),r=wi(t,[e,...i]);return n?r:-r}function Oe(t,e,i,n,r){let o=Rs({x:t,y:e},n,r);return{x:t,y:e,h:i,d:o,max:o+i*Math.SQRT2}}var xi=class{constructor(){this.items=[]}get size(){return this.items.length}push(e){let i=this.items;i.push(e);let n=i.length-1;for(;n>0;){let r=n-1>>1;if(i[r].max>=i[n].max)break;[i[r],i[n]]=[i[n],i[r]],n=r}}pop(){let e=this.items,i=e[0],n=e.pop();if(e.length&&n){e[0]=n;let r=0;for(;;){let o=r*2+1,s=o+1,a=r;if(o<e.length&&e[o].max>e[a].max&&(a=o),s<e.length&&e[s].max>e[a].max&&(a=s),a===r)break;[e[a],e[r]]=[e[r],e[a]],r=a}}return i}};function Bn(t){if(t.length<3)return 0;let e=0;for(let i=0,n=t.length-1;i<t.length;n=i++)e+=(t[n].x+t[i].x)*(t[n].y-t[i].y);return Math.abs(e)/2}function On(t,e){return Math.max(0,Bn(t)-(e??[]).reduce((i,n)=>i+Bn(n),0))}function Fn(t,e){let i=e??[];if(!t.length)return{point:{x:0,y:0},radius:0};if(t.length<3){let f=t.reduce((g,v)=>g+v.x,0)/t.length,p=t.reduce((g,v)=>g+v.y,0)/t.length;return{point:{x:f,y:p},radius:0}}let n=1/0,r=1/0,o=-1/0,s=-1/0;for(let f of t)f.x<n&&(n=f.x),f.y<r&&(r=f.y),f.x>o&&(o=f.x),f.y>s&&(s=f.y);let a=o-n,l=s-r,c=Math.min(a,l);if(!(c>0))return{point:{x:(n+o)/2,y:(r+s)/2},radius:0};let d=Math.max(a,l)/150,h=new xi,u=c/2;for(let f=n;f<o;f+=c)for(let p=r;p<s;p+=c)h.push(Oe(f+u,p+u,u,t,i));let m=Oe(n+a/2,r+l/2,0,t,i),b=0;for(;h.size;){let f=h.pop();if(!f)break;f.d>m.d&&(m=f),!(f.max-m.d<=d)&&(b>=4e3||(b+=1,u=f.h/2,h.push(Oe(f.x-u,f.y-u,u,t,i)),h.push(Oe(f.x+u,f.y-u,u,t,i)),h.push(Oe(f.x-u,f.y+u,u,t,i)),h.push(Oe(f.x+u,f.y+u,u,t,i))))}return{point:{x:m.x,y:m.y},radius:Math.max(0,m.d)}}function V(t,e,i){return Math.max(e,Math.min(i,t))}function me(t,e,i){return t<e?e:t>i?i:t}var Hl=Math.PI*2;function Dn(t,e,i){return Es(t,r=>({x:r.x+e,y:r.y+i}))}function Es(t,e,i=1,n=!1){return{...t,start:e(t.start),segments:t.segments.map(r=>r.kind==="line"?{...r,end:e(r.end)}:r.kind==="arc"?{...r,center:e(r.center),radius:r.radius*Math.abs(i),clockwise:n?!r.clockwise:r.clockwise,end:e(r.end)}:{...r,control1:e(r.control1),control2:e(r.control2),end:e(r.end)})}}var Vl=4/3;function _n(t){let e=new Map,i=new Map;for(let n of t){if(n.type!=="row"||!n.segmentedRow)continue;let r=i.get(n.segmentedRow.groupId)??[];r.push(n),i.set(n.segmentedRow.groupId,r)}for(let[n,r]of i){let o=r.slice().sort((u,m)=>u.segmentedRow.componentIndex-m.segmentedRow.componentIndex),s=o[0]?.segmentedRow?.componentCount??0,a=o[0]?.segmentedRow;if(!a||!(s>=2&&o.length===s&&a?.boundaryBefore==="start"&&o.every((u,m)=>u.segmentedRow?.kind==="segmented-row-v1"&&u.segmentedRow.groupId===n&&u.segmentedRow.componentCount===s&&u.segmentedRow.componentIndex===m&&u.segmentedRow.repeatLabelOnComponents===a.repeatLabelOnComponents&&(m===0?u.segmentedRow.boundaryBefore==="start":u.segmentedRow.boundaryBefore!=="start")&&u.segmentedRow.displayLabel===a.displayLabel)))continue;let c=o.reduce((u,m)=>u+m.seatCount,0),d=0,h=0;for(let u of o)u.segmentedRow.boundaryBefore==="break"&&(d+=1),e.set(u.id,{groupId:n,adjacencyOffset:d,displayOffset:h,displayLabel:a.displayLabel,totalSeats:c,canonical:o[0],viewFromSeatUrl:a.viewFromSeatUrl,viewFromSeatMeta:a.viewFromSeatMeta,confidenceEvidence:a.confidenceEvidence}),d+=u.seatCount,h+=u.seatCount}return e}var As="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var Bs="abcdefghijklmnopqrstuvwxyz";function Os(t,e){let i=e.length,n=t+1,r="";for(;n>0;){n-=1;let o=n%i;r=e[o]+r,n=Math.floor(n/i)}return r}function Ii(t,e=!1){let i=e?Bs:As;return Os(Math.max(0,Math.floor(t)-1),i)}var Fs=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];function zn(t){if(!Number.isFinite(t)||t<=0)return String(t);let e=Math.floor(t),i="";for(let[n,r]of Fs)for(;e>=n;)i+=r,e-=n;return i}function Ds(t){let e=new Array(t);return Array.from({length:t},(i,n)=>n).sort((i,n)=>Math.abs(2*i-(t-1))-Math.abs(2*n-(t-1))||i-n).forEach((i,n)=>e[i]=n),e}function Li(t,e){let i=t.seatLabelStart??1,n=t.seatNumbering?.direction??"ltr",r=t.seatNumbering?.step??1,o=t.seatNumbering?.scheme??"decimal",s=t.seatNumbering?.prefix??"",a=t.seatNumbering?.endAt,l=t.seatCount;if(o==="updown"||o==="updown-descending"){let m=Math.ceil(l/2),b=o==="updown"?e<m?i+2*e:i-1+2*(l-e):e<m?i+2*(m-1-e):i+1+2*(e-m);return`${s}${b}`}let c=o==="odd"||o==="even"?2:r,d=a!=null&&Number.isFinite(a)?a-(l-1)*c:i,h=n==="center"?Ds(l)[e]:n==="rtl"?l-1-e:e,u;switch(o){case"odd":{let m=d%2===1?d:d+1;u=String(m+h*2);break}case"even":{let m=d%2===0?d:d+1;u=String(m+h*2);break}case"roman":u=zn(d+h*r);break;case"letters-upper":u=Ii(d+h*r,!1);break;case"letters-lower":u=Ii(d+h*r,!0);break;default:u=String(d+h*r);break}return`${s}${u}`}function _s(t){return{...t.canonical,seatCount:t.totalSeats,label:t.displayLabel,displayLabel:t.displayLabel}}function Gn(t,e,i){return i?.label??`${t.label}-${Li(t,e)}`}function Ti(t,e,i,n){if(n?.displayLabel)return n.displayLabel;if(!i)return`${t.displayLabel??t.label}-${Li(t,e)}`;let r=_s(i),o=i.displayOffset+e;return`${i.displayLabel}-${Li(r,o)}`}var Fe=.02291666666666667,De=1/Fe,zs=58,Pi=zs*Fe,Nn=0,Vn=3,Hn=0,Ci=120,Gs=0,Ns=45,Hs=7,j=1.2;function Mi(t,e,i,n){return Number.isFinite(t)?Math.max(e,Math.min(i,t)):n}function Wn(t){return Number.isFinite(t)?Math.max(Nn,Math.min(Vn,Math.round(t))):Nn}function Vs(t){return!Number.isFinite(t)||!Number.isInteger(t)||t<0?0:t<=Hs?t:Vn}function xe(t,e={}){let i=Mi(e.floorBaseHeightM,Hn,Ci,0),n=Math.min(Ci,i+Vs(t.elevation)*Pi),r=t.height===void 0?n:Mi(t.height,Hn,Ci,n),o=Mi(t.rake,Gs,Ns,0);return{height:r,rake:o}}function jn(t){let e=t.length;return e<=3?[...t]:[t[Math.floor(e*.25)],t[Math.floor(e*.5)],t[Math.floor(e*.75)]]}function Kn(t,e,i){if(!t.length)return 1/0;if(t.length===1)return Math.hypot(e-t[0].x,i-t[0].y);let n=1/0;for(let r=0;r+1<t.length;r++){let o=t[r],s=t[r+1],a=s.x-o.x,l=s.y-o.y,c=a*a+l*l,d=c>1e-12?((e-o.x)*a+(i-o.y)*l)/c:0;d<0?d=0:d>1&&(d=1);let h=Math.hypot(e-(o.x+d*a),i-(o.y+d*l));h<n&&(n=h)}return n}function Ws(t){let e=0,i=0;for(let o of t)e+=o.x,i+=o.y;let n=t.length||1;e/=n,i/=n;let r=0;for(let o of t){let s=Math.hypot(o.x-e,o.y-i);s>r&&(r=s)}return{cx:e,cy:i,r}}function Un(t,e){return Math.hypot(t.cx-e.cx,t.cy-e.cy)-t.r-e.r}function Ri(t,e){let i=1/0;for(let n of jn(t)){let r=Kn(e,n.x,n.y);r<i&&(i=r)}for(let n of jn(e)){let r=Kn(t,n.x,n.y);r<i&&(i=r)}return i}function js(t,e){if(t.length<3)return{pts:t,seatIndices:e};let i=0,n=0;for(let d of t)i+=d.x,n+=d.y;i/=t.length,n/=t.length;let r=-1,o=t[0];for(let d of t){let h=Math.hypot(d.x-i,d.y-n);h>r&&(r=h,o=d)}let s=o.x-i,a=o.y-n,l=Math.hypot(s,a);l>1e-9?(s/=l,a/=l):(s=1,a=0);let c=t.map((d,h)=>({p:d,i:h,t:(d.x-i)*s+(d.y-n)*a})).sort((d,h)=>d.t-h.t);return{pts:c.map(d=>d.p),seatIndices:c.map(d=>e[d.i])}}function Ks(t){let e=t.length;if(e<3)return null;let i=0,n=0;for(let v of t)i+=v.x,n+=v.y;i/=e,n/=e;let r=0,o=0,s=0,a=0,l=0,c=0,d=0;for(let v of t){let y=v.x-i,x=v.y-n;r+=y*y,s+=x*x,o+=y*x,a+=y*y*y,l+=x*x*x,c+=y*x*x,d+=x*y*y}let h=r*s-o*o;if(Math.abs(h)<1e-9)return null;let u=(a+c)/2,m=(l+d)/2,b=(u*s-m*o)/h,f=(m*r-u*o)/h,p=b+i,g=f+n;return!Number.isFinite(p)||!Number.isFinite(g)?null:{cx:p,cy:g}}var Us=.15;function Xs(t){if(t.length<2)return null;let e=t.map(v=>{let y=0,x=0;for(let I of v.pts)y+=I.x,x+=I.y;return{x:y/v.pts.length,y:x/v.pts.length}}),i=0,n=0;for(let v of e)i+=v.x,n+=v.y;i/=e.length,n/=e.length;let r=0,o=0,s=0;for(let v of e){let y=v.x-i,x=v.y-n;r+=y*y,o+=y*x,s+=x*x}let a=r+s,l=r*s-o*o,c=a/2+Math.sqrt(Math.max(0,a*a/4-l)),d,h;Math.abs(o)>1e-12?(d=c-s,h=o):r>=s?(d=1,h=0):(d=0,h=1);let u=Math.hypot(d,h);if(!(u>1e-12))return null;d/=u,h/=u;let m=1/0,b=-1/0,f=[];for(let v of t){let y=1/0,x=-1/0;for(let I of v.pts){let k=I.x*d+I.y*h;k<y&&(y=k),k>x&&(x=k),k<m&&(m=k),k>b&&(b=k)}f.push(x-y)}let p=b-m;return p>1e-9?(f.sort((v,y)=>v-y),f[Math.min(f.length-1,Math.floor(f.length*.9))]/p<=Ys?{x:d,y:h}:null):null}var Ys=.35;function Xn(t,e,i,n){let r=new Map;for(let p of i){let g=e[p],v=g.rowId||`__seat-${p}`,y=r.get(v);y||(y={pts:[],idx:[]},r.set(v,y)),y.pts.push({x:g.x,y:g.y}),y.idx.push(p)}if(!r.size)return{sectionId:t,rows:[],blockCount:0};let o=[];for(let[p,g]of r){let v=js(g.pts,g.idx),y=0;for(let x of v.pts)y+=Math.hypot(x.x-n.x,x.y-n.y);o.push({id:p,pts:v.pts,seatIndices:v.seatIndices,blockId:-1,ordinal:0,blockDepth:0,focalDistance:y/v.pts.length})}let s=o.map(p=>Ws(p.pts)),a=[];for(let p=0;p<o.length;p++){let g=1/0;for(let v=0;v<o.length;v++){if(p===v||Un(s[p],s[v])>=g)continue;let y=Ri(o[p].pts,o[v].pts);y<g&&(g=y)}Number.isFinite(g)&&a.push(g)}a.sort((p,g)=>p-g);let l=a.length?a[Math.floor(a.length/2)]:1,c=Math.max(l*1.8,1e-6),d=o.map(()=>[]);for(let p=0;p<o.length;p++)for(let g=p+1;g<o.length;g++)Un(s[p],s[g])>c||Ri(o[p].pts,o[g].pts)<=c&&(d[p].push(g),d[g].push(p));let h=0;for(let p=0;p<o.length;p++){if(o[p].blockId!==-1)continue;let g=h++,v=[p];for(o[p].blockId=g;v.length;){let y=v.pop();for(let x of d[y])o[x].blockId===-1&&(o[x].blockId=g,v.push(x))}}let u=new Map;for(let p of o){let g=u.get(p.blockId)??[];g.push(p),u.set(p.blockId,g)}let m=[];for(let p of o){if(p.pts.length<4)continue;let g=Ks(p.pts);g&&(!Number.isFinite(g.cx)||!Number.isFinite(g.cy)||m.push({x:g.cx,y:g.cy}))}let b=m.length>=2?(()=>{let p=m.map(y=>y.x).sort((y,x)=>y-x),g=m.map(y=>y.y).sort((y,x)=>y-x),v=Math.floor(m.length/2);return{cx:p[v],cy:g[v]}})():null;if(b){let p=k=>Math.hypot(k.x-b.cx,k.y-b.cy),g=1/0,v=-1/0,y=[];for(let k of o){let w=1/0,M=-1/0;for(let C of k.pts){let T=p(C);T<w&&(w=T),T>M&&(M=T)}y.push(M-w),w<g&&(g=w),M>v&&(v=M)}let x=v-g;y.sort((k,w)=>k-w);let I=y[Math.min(y.length-1,Math.floor(y.length*.9))];if(x>1e-9&&I/x<=Us){let k=o.map(S=>{let L=0;for(let E of S.pts)L+=p(E);return{row:S,radius:L/S.pts.length}}),w=1/0;for(let S of k)S.radius<w&&(w=S.radius);k.sort((S,L)=>S.radius-L.radius);let M=-1,C=-1/0,T=x/Math.max(1,k.length)*.5,R=[];for(let S of k)S.radius-C>T&&(M++,C=S.radius),S.row.ordinal=M,S.row.blockDepth=S.radius-w,R.push(S.row);return{sectionId:t,rows:R,blockCount:h}}}let f=[];for(let[,p]of u){let g=Xs(p);if(g){let v=x=>{let I=0;for(let k of x.pts)I+=k.x*g.x+k.y*g.y;return I/x.pts.length};p.sort((x,I)=>v(x)-v(I));let y=0;for(let x=0;x<p.length;x++)x>0&&(y+=Ri(p[x-1].pts,p[x].pts)),p[x].ordinal=x,p[x].blockDepth=y,f.push(p[x])}else{let v=1/0;for(let y of p)y.focalDistance<v&&(v=y.focalDistance);p.sort((y,x)=>y.focalDistance-x.focalDistance);for(let y=0;y<p.length;y++)p[y].ordinal=y,p[y].blockDepth=Math.max(0,p[y].focalDistance-v),f.push(p[y])}}return{sectionId:t,rows:f,blockCount:h}}function Zn(t){return t?t.accessibility&&t.accessibility.length?t.wheelchairSpaceType&&!t.accessibility.includes("wheelchair")?["wheelchair",...t.accessibility]:t.accessibility:t.wheelchairSpaceType?["wheelchair"]:t.accessible?["wheelchair"]:[]:[]}var Bt=Math.PI/180,qs=9,_e=16;function Ai(t,e,i,n){let r=i*Bt,o=Math.cos(r),s=Math.sin(r);return{x:n.x+t*o-e*s,y:n.y+t*s+e*o}}function Oi(t){let{seatCount:e,seatSpacing:i,curve:n,rotation:r,origin:o}=t,s=[];if(t.path)return En(t.path,e);if(e<=1)return e===1&&s.push({x:o.x,y:o.y}),s;if(n===0){for(let c=0;c<e;c++)s.push(Ai(c*i,0,r,o));return s}let a=n/(e-1)*Bt,l=i/(2*Math.sin(Math.abs(a)/2));for(let c=0;c<e;c++){let d=c*a,h=l*Math.sin(d),u=-l+l*Math.cos(d);s.push(Ai(h,u,r,o))}return s}function $s(t){let e=new Map;if(t.overrides)for(let i of t.overrides)e.set(i.index,i);return e}function Zs(t){let e=new Set((t.overrides??[]).filter(i=>i.skip&&Number.isInteger(i.index)&&i.index>=0&&i.index<t.seatCount).map(i=>i.index));return Math.max(0,t.seatCount-e.size)}function Qn(t,e){let i=$s(t);return Oi(t).map((n,r)=>{let o=i.get(r),s=Zn(o),a=Gn(t,r,o),l={...t.commercial,...o?.commercial};return{index:r,x:n.x+(o?.dx??0),y:n.y+(o?.dy??0),label:a,displayLabel:Ti(t,r,e,o),categoryKey:o?.categoryKey??t.categoryKey,skipped:!!o?.skip,accessible:s.length>0,accessibility:s,wheelchairSpaceType:o?.wheelchairSpaceType,commercial:Object.values(l).some(c=>c!==void 0&&c!==!1&&c!=="")?l:void 0,viewUrl:o?.viewFromSeatUrl??t.viewFromSeatUrl,viewMeta:o?.viewFromSeatUrl?o.viewFromSeatMeta:t.viewFromSeatMeta,labelStyle:o?.labelStyle}})}function st(t){let e=[];for(let i of Qn(t))i.skipped||e.push({id:`${t.id}:${i.index}`,label:i.label,displayLabel:i.displayLabel===i.label?void 0:i.displayLabel,x:i.x,y:i.y,rowId:t.id,categoryKey:i.categoryKey,accessible:i.accessible||void 0,accessibility:i.accessibility.length?i.accessibility:void 0,wheelchairSpaceType:i.wheelchairSpaceType,commercial:i.commercial,viewUrl:i.viewUrl,viewMeta:i.viewMeta,labelStyle:i.labelStyle});return e}function Jn(t){if(t.seatCountsBySide)return{...t.seatCountsBySide};let e=t.sides&&t.sides.length?t.sides:["top","bottom"],i=["top","bottom","left","right"].filter(o=>e.includes(o)),n={top:0,bottom:0,left:0,right:0};if(!i.length)return n;let r=Math.max(0,Math.round(t.seatCount));for(let o=0;o<r;o++)n[i[o%i.length]]+=1;return n}function Fi(t){let e=[],i=Math.max(0,Math.round(t.seatCount));if(i===0)return e;let n=new Map((t.overrides??[]).map(d=>[d.index,d])),r=(d,h,u,m)=>{let b=n.get(d),f=Zn(b),p=b?.label??`${t.label}-${d+1}`,g=t.displayLabel??t.label;return{index:d,label:p,displayLabel:b?.displayLabel??`${g}-${d+1}`,x:h+(b?.dx??0),y:u+(b?.dy??0),categoryKey:b?.categoryKey??t.categoryKey,skipped:!!b?.skip,accessible:f.length>0,accessibility:f,wheelchairSpaceType:b?.wheelchairSpaceType,commercial:b?.commercial,viewUrl:b?.viewFromSeatUrl,viewMeta:b?.viewFromSeatUrl?b.viewFromSeatMeta:void 0,labelStyle:b?.labelStyle,...m?{side:m}:{}}};if(t.shape==="round"){let d=(t.radius??40)+_e,h=t.rotation*Bt,u=Math.max(0,Math.min(360,t.seatArc??360));if(u>=360||i===1){for(let p=0;p<i;p++){let g=h+p/i*2*Math.PI;e.push(r(p,t.center.x+d*Math.cos(g),t.center.y+d*Math.sin(g)))}return e}let m=u*Bt,b=(2*Math.PI-m)/2,f=h+b;for(let p=0;p<i;p++){let g=f+p/(i-1)*m;e.push(r(p,t.center.x+d*Math.cos(g),t.center.y+d*Math.sin(g)))}return e}let o=t.width??80,s=t.height??50,a=Jn(t),l=["top","bottom","left","right"],c=0;for(let d of l){let h=a[d];for(let u=0;u<h;u++){let m,b;d==="top"?(m=-o/2+(u+.5)*o/h,b=-s/2-_e):d==="bottom"?(m=-o/2+(u+.5)*o/h,b=s/2+_e):d==="left"?(m=-o/2-_e,b=-s/2+(u+.5)*s/h):(m=o/2+_e,b=-s/2+(u+.5)*s/h);let f=Ai(m,b,t.rotation,t.center);e.push(r(c++,f.x,f.y,d))}}return e}function Qs(t){return t.bookAsWhole||t.variableOccupancy?Math.max(0,Math.round(t.seatCount)):Fi(t).filter(e=>!e.skipped).length}function ze(t){return Fi(t).filter(e=>!e.skipped).map(e=>({id:`${t.id}:${e.index}`,label:e.label,...e.displayLabel!==e.label?{displayLabel:e.displayLabel}:{},x:e.x,y:e.y,rowId:t.id,categoryKey:e.categoryKey,...e.accessible?{accessible:!0}:{},...e.accessibility.length?{accessibility:e.accessibility}:{},...e.wheelchairSpaceType?{wheelchairSpaceType:e.wheelchairSpaceType}:{},...e.commercial?{commercial:e.commercial}:{},...e.viewUrl?{viewUrl:e.viewUrl}:{},...e.viewUrl&&e.viewMeta?{viewMeta:e.viewMeta}:{},...e.labelStyle?{labelStyle:e.labelStyle}:{}}))}function Ot(t){return[{id:`${t.id}:0`,label:t.label,...t.displayLabel&&t.displayLabel!==t.label?{displayLabel:t.displayLabel}:{},x:t.center.x,y:t.center.y,rowId:t.id,categoryKey:t.categoryKey,kind:"booth"}]}function Bi(t,e){let i=!1;for(let n=0,r=e.length-1;n<e.length;r=n++){let o=e[n].x,s=e[n].y,a=e[r].x,l=e[r].y;s>t.y!=l>t.y&&t.x<(a-o)*(t.y-s)/(l-s)+o&&(i=!i)}return i}function Js(t,e){return e.some((i,n)=>{let r=e[(n+1)%e.length],o=(t.y-i.y)*(r.x-i.x)-(t.x-i.x)*(r.y-i.y);if(Math.abs(o)>1e-7)return!1;let s=(t.x-i.x)*(r.x-i.x)+(t.y-i.y)*(r.y-i.y),a=(r.x-i.x)**2+(r.y-i.y)**2;return s>=-1e-7&&s<=a+1e-7})}function Y(t,e,i){return Bi(t,e)&&!(i??[]).some(n=>Bi(t,n)||Js(t,n))}function at(t,e){return Fn(t,e).point}function Ei(t){if(!t.length)return{x:0,y:0};let e=0,i=0;for(let n of t)e+=n.x,i+=n.y;return{x:e/t.length,y:i/t.length}}function er(t){switch(t.type){case"row":{let e=st(t);if(!e.length)return{x:t.origin.x,y:t.origin.y};let i=0,n=0;for(let r of e)i+=r.x,n+=r.y;return{x:i/e.length,y:n/e.length}}case"table":case"booth":return{x:t.center.x,y:t.center.y};case"gaArea":return Ei(t.points);case"section":return Ei(t.outline);case"text":return{x:t.position.x,y:t.position.y};case"shape":return t.points&&t.points.length?Ei(t.points):t.x!=null&&t.y!=null&&t.width!=null&&t.height!=null?{x:t.x+t.width/2,y:t.y+t.height/2}:{x:t.x??0,y:t.y??0};case"decorImage":return{x:t.x+t.width/2,y:t.y+t.height/2}}}function Yn(t,e){return t.length===e.length&&t.every((i,n)=>i.x===e[n].x&&i.y===e[n].y)}function ea(t,e){if(t.type!=="gaArea"||!Yn(t.points,e.outline))return!1;let i=t.holes??[],n=e.holes??[];return i.length===n.length&&i.every((r,o)=>Yn(r,n[o]))}function Ft(t,e){let i=t.filter(s=>s.type==="section"),n="referenceInventorySource"in e?e.referenceInventorySource?.logicalSectionId:void 0,r=er(e);return(n?i.find(s=>(s.logicalSectionId??s.id)===n&&(ea(e,s)||Y(r,s.outline,s.holes))):void 0)??i.find(s=>Y(r,s.outline,s.holes))}function Ge(t){return t.floors&&t.floors.length?t.floors:[{id:"floor-0",name:"Main",objects:t.objects,focalPoint:t.focalPoint,referenceImage:t.referenceImage,backgroundImage:t.backgroundImage}]}function ta(t,e){let i=Ge(t);return(e?i.find(n=>n.id===e):i[0])?.objects??[]}function ae(t){return t.floors&&t.floors.length?t.floors.flatMap(e=>e.objects):t.objects}function Di(t,e,i){let n=o=>({x:o.x+e,y:o.y+i}),r=o=>o.map(n);switch(t.type){case"row":return{...t,origin:n(t.origin)};case"table":case"booth":return{...t,center:n(t.center)};case"gaArea":return{...t,points:r(t.points),...t.holes?{holes:t.holes.map(r)}:{}};case"section":return{...t,outline:r(t.outline),...t.outlinePath?{outlinePath:Dn(t.outlinePath,e,i)}:{},...t.holes?{holes:t.holes.map(r)}:{}};case"text":return{...t,position:n(t.position)};case"shape":return{...t,...t.points?{points:r(t.points)}:{},...t.x!=null?{x:t.x+e}:{},...t.y!=null?{y:t.y+i}:{}};case"decorImage":return{...t,x:t.x+e,y:t.y+i}}}function _i(t,e=900){if(!t.floors||t.floors.length<2)return t;let i=[];return t.floors.forEach((n,r)=>{let o=-r*e;for(let s of n.objects)i.push(o===0?s:Di(s,0,o))}),{...t,objects:i,floors:void 0}}function zi(t){let e=t.floors;if(!e||e.length<2)return t;let i=tr(t),n=[];return e.forEach((r,o)=>{let{x:s,y:a}=i[o];for(let l of r.objects)n.push(Di(l,s,a))}),{...t,objects:n,floors:void 0,referenceImage:void 0,backgroundImage:void 0}}function tr(t){let e=t.floors;if(!e?.length)return[{x:0,y:0}];if(e.length<2)return e.map(()=>({x:0,y:0}));let i=e.map(u=>Dt({...t,objects:u.objects,floors:void 0,focalPoint:u.focalPoint,referenceImage:void 0,backgroundImage:void 0})),n=Math.max(1,...i.map(u=>Math.max(u.width,u.height))),r=Math.max(64,Math.min(240,n*.08)),o=16/10,s=null;for(let u=1;u<=e.length;u+=1){let m=Math.ceil(e.length/u),b=new Array(u).fill(0),f=new Array(m).fill(0);i.forEach((x,I)=>{let k=I%u,w=Math.floor(I/u);b[k]=Math.max(b[k],x.width),f[w]=Math.max(f[w],x.height)});let p=b.reduce((x,I)=>x+I,0)+r*(u-1),g=f.reduce((x,I)=>x+I,0)+r*(m-1),v=u*m-e.length,y=Math.abs(Math.log(p/Math.max(1,g)/o))+v*.04;(!s||y<s.score)&&(s={columns:u,columnWidths:b,rowHeights:f,score:y})}let{columns:a,columnWidths:l,rowHeights:c}=s,d=[],h=[];return l.reduce((u,m,b)=>(d[b]=u,u+m+r),0),c.reduce((u,m,b)=>(h[b]=u,u+m+r),0),e.map((u,m)=>{let b=i[m],f=m%a,p=Math.floor(m/a),g=d[f]+(l[f]-b.width)/2,v=h[p]+(c[p]-b.height)/2;return{x:g-b.x,y:v-b.y}})}function qn(t,e,i,n,r,o){let s=[],a=_n(t),l=h=>!h?.eventConfigurationId||h.eventConfigurationId===n,c=h=>!!h&&(!h.eventConfigurationId||h.eventConfigurationId===n),d=(h,u)=>c(h)?{...h,coverage:u}:void 0;for(let h of t){let u=[];if(h.type==="row"?u=st(h):h.type==="table"?u=ze(h):h.type==="booth"&&(u=Ot(h)),!u.length)continue;for(let g of u)g.viewUrl&&!l(g.viewMeta)&&(g.viewUrl=void 0,g.viewMeta=void 0);if(h.type==="row"){let g=a.get(h.id);if(g){let v=new Map((h.overrides??[]).map(y=>[y.index,y]));for(let y of u){let x=Number(y.id.slice(y.id.lastIndexOf(":")+1));if(!Number.isInteger(x))continue;y.logicalRowId=g.groupId,y.logicalSeatIndex=g.adjacencyOffset+x,v.get(x)?.displayLabel||(y.displayLabel=Ti(h,x,g)),!y.viewUrl&&g.viewFromSeatUrl&&l(g.viewFromSeatMeta)&&(y.viewUrl=g.viewFromSeatUrl,y.viewMeta=g.viewFromSeatMeta);let I=v.get(x)?.confidenceEvidence;y.confidenceEvidence=d(I,"exact-seat")??d(h.confidenceEvidence,"row-representative")??d(g.confidenceEvidence,"row-representative")}}}let m=Ft(t,h),b=m?.viewFromSeatUrl,p=(m?.zone?e?.find(g=>g.id===m.zone):void 0)?.focalPoint??i;for(let g of u){if(!g.confidenceEvidence){let v=Number(g.id.slice(g.id.lastIndexOf(":")+1)),y=(h.type==="row"||h.type==="table")&&Number.isInteger(v)?h.overrides?.find(x=>x.index===v)?.confidenceEvidence:void 0;g.confidenceEvidence=d(y,"exact-seat")??(h.type==="row"?d(h.confidenceEvidence,"row-representative"):void 0)}g.confidenceEvidence??=d(m?.confidenceEvidence,"section-representative")??(o?d(o.evidence,o.coverage):void 0),!g.viewUrl&&b&&l(m?.viewFromSeatMeta)&&(g.viewUrl=b,g.viewMeta=m?.viewFromSeatMeta),!g.viewUrl&&r&&l(r.meta)&&(g.viewUrl=r.url,g.viewMeta=r.meta),m&&(g.sectionId=m.logicalSectionId??m.id),m?.zone&&(g.zoneId=m.zone),p&&(g.focalPoint={...p})}s.push(...u)}return s}function be(t,e={}){if(t.floors?.length){let n=[];for(let r of t.floors){let o=r.focalPoint??t.focalPoint,s=r.viewFromSeatUrl?{url:r.viewFromSeatUrl,meta:r.viewFromSeatMeta}:t.viewFromSeatUrl?{url:t.viewFromSeatUrl,meta:t.viewFromSeatMeta}:void 0,a=r.confidenceEvidence?{evidence:r.confidenceEvidence,coverage:"floor-representative"}:t.confidenceEvidence?{evidence:t.confidenceEvidence,coverage:"venue-representative"}:void 0,l=qn(r.objects,t.zones,o,t.eventConfigurationId,s,a);e.resolveEyeHeights!==!1&&$n(r.objects,r.focalPoint??t.focalPoint,r.baseHeightM??0,l),n.push(...l)}return n}let i=qn(t.objects,t.zones,t.focalPoint,t.eventConfigurationId,t.viewFromSeatUrl?{url:t.viewFromSeatUrl,meta:t.viewFromSeatMeta}:void 0,t.confidenceEvidence?{evidence:t.confidenceEvidence,coverage:"venue-representative"}:void 0);return e.resolveEyeHeights!==!1&&$n(t.objects,t.focalPoint,e.floorBaseHeightM??0,i),i}function $n(t,e,i,n){let r=t.filter(d=>d.type==="section"),o=i>0||r.some(d=>d.height!==void 0||d.rake!==void 0||(d.elevation??0)>0);if(!r.length||!o||!e){for(let d of n)d.eyeHeightM=i+j;return}let s=new Array(n.length),a=new Map,l=new Map;for(let d=0;d<n.length;d++){let h=n[d],u=r.find(b=>Y({x:h.x,y:h.y},b.outline,b.holes))??null;if(s[d]=u,!u)continue;a.has(u.id)||a.set(u.id,xe(u,{floorBaseHeightM:i}));let m=l.get(u.id);m?m.push(d):l.set(u.id,[d])}let c=new Array(n.length).fill(void 0);for(let[d,h]of l){let u=a.get(d);if(!u)continue;let m=u.rake>0?Math.tan(u.rake*Math.PI/180):0,b=Xn(d,n,h,e);for(let f of b.rows){let p=f.blockDepth*Fe*m,g=u.height+p;for(let v of f.seatIndices)c[v]=g}}for(let d=0;d<n.length;d++){let h=n[d],u=s[d];if(!u){h.eyeHeightM=i+j;continue}let m=a.get(u.id);h.eyeHeightM=(c[d]??m.height)+j}}var At=40;function Dt(t){let e=1/0,i=1/0,n=-1/0,r=-1/0,o=(s,a)=>{s<e&&(e=s),a<i&&(i=a),s>n&&(n=s),a>r&&(r=a)};for(let s of ae(t))if(s.type==="row"){let a=new Map((s.overrides??[]).map(l=>[l.index,l]));Oi(s).forEach((l,c)=>{let d=a.get(c);d?.skip||o(l.x+(d?.dx??0),l.y+(d?.dy??0))})}else if(s.type==="gaArea")for(let a of s.points)o(a.x,a.y);else if(s.type==="section")for(let a of s.outline)o(a.x,a.y);else if(s.type==="decorImage")o(s.x,s.y),o(s.x+s.width,s.y+s.height);else if(s.type==="shape")if(s.points&&s.points.length)for(let a of s.points)o(a.x,a.y);else s.x!=null&&s.y!=null&&s.width!=null&&s.height!=null&&(o(s.x,s.y),o(s.x+s.width,s.y+s.height));else if(s.type==="table"){let a=_e+qs,l=s.shape==="round"?(s.radius??40)+a:Math.max((s.width??80)/2,(s.height??50)/2)+a;o(s.center.x-l,s.center.y-l),o(s.center.x+l,s.center.y+l)}else if(s.type==="booth"){let a=Math.max(s.width,s.height)/2;o(s.center.x-a,s.center.y-a),o(s.center.x+a,s.center.y+a)}else if(s.type==="text"){let a=Pn(s);o(s.position.x,s.position.y),o(s.position.x+a.width,s.position.y+a.height)}for(let s of[t.referenceImage,t.backgroundImage]){if(!s)continue;let{center:a,width:l}=s,c=l*3/4;o(a.x-l/2,a.y-c/2),o(a.x+l/2,a.y+c/2)}if(!isFinite(e)){let s=t.focalPoint??{x:0,y:0};return{x:s.x-200,y:s.y-200,width:400,height:400}}return{x:e-At,y:i-At,width:n-e+At*2,height:r-i+At*2}}var ir="__sl_ga__",_t=1e5,ia=1e5;function nr(t,e){return`${ir}${encodeURIComponent(t)}__${e+1}`}function rr(t){let e=t.inventorySegments;if(e===void 0)return!0;if(!Array.isArray(e)||e.length<1||e.length>256)return!1;let i=0,n=new Map;for(let r of e){if(!r||typeof r.sourceAreaId!="string"||!r.sourceAreaId.trim()||r.sourceAreaId.length>160||!Number.isInteger(r.startIndex)||r.startIndex<0||!Number.isInteger(r.count)||r.count<1||r.startIndex+r.count>_t||(i+=r.count,i>_t))return!1;let o=n.get(r.sourceAreaId)??[],s=r.startIndex+r.count;if(o.some(a=>r.startIndex<a.end&&s>a.start))return!1;o.push({start:r.startIndex,end:s}),n.set(r.sourceAreaId,o)}return i===t.capacity}function Gi(t){let e=Math.min(_t,Math.max(0,Math.floor(t.capacity)));return t.inventorySegments===void 0?e?[{sourceAreaId:t.id,startIndex:0,count:e}]:[]:rr(t)?t.inventorySegments.map(i=>({...i})):[]}function Ne(t){return Gi(t).flatMap(e=>Array.from({length:e.count},(i,n)=>nr(e.sourceAreaId,e.startIndex+n)))}function na(t,e){if(t.inventorySegments===void 0||e===t.capacity)return t.inventorySegments;if(e<t.capacity)return;let i=Gi(t);if(!i.length)return;let n=e-t.capacity;if(!n)return i;let o=i.filter(a=>a.sourceAreaId===t.id).reduce((a,l)=>Math.max(a,l.startIndex+l.count),0),s=i[i.length-1];if(s?.sourceAreaId===t.id&&s.startIndex+s.count===o)s.count+=n;else{if(i.length>=256)return;i.push({sourceAreaId:t.id,startIndex:o,count:n})}return i}function lt(t){return ae(t).filter(e=>e.type==="gaArea")}function ra(t){return t.startsWith(ir)}var He="__ungrouped__";function oa(t){return t.type==="row"?st(t).map(e=>e.label):t.type==="table"?ze(t).map(e=>e.label):t.type==="booth"?Ot(t).map(e=>e.label):t.type==="gaArea"?Ne(t):[]}function sa(t){return t.type==="row"||t.type==="table"||t.type==="booth"||t.type==="gaArea"}function ct(t){let e=ae(t),i=e.filter(s=>s.type==="section"),n=new Map;for(let s of i){let a=s.logicalSectionId??s.id;n.get(a)||n.set(a,{id:a,label:s.displayLabel||s.label||"Section",zone:s.zone,seatCount:0,objectIds:[],seatLabels:[]})}let r={id:He,label:"Other seats",seatCount:0,objectIds:[],seatLabels:[]},o=new Map;for(let s of e){if(!sa(s))continue;let a=oa(s);if(a.length===0)continue;let l=Ft(e,s),c=l?n.get(l.logicalSectionId??l.id):r;c.seatCount+=a.length,c.objectIds.push(s.id),c.seatLabels.push(...a),o.set(s.id,c.id)}return{sections:[...n.values()],ungrouped:r.objectIds.length?r:null,objectToSection:o}}function or(t,e){return e.has(t.id)||!!t.logicalSectionId&&e.has(t.logicalSectionId)||!!t.zone&&e.has(t.zone)}function sr(t,e){let i=new Set;if(!e.size)return i;let{sections:n,ungrouped:r,objectToSection:o}=ct(t),s=new Set,a=new Map(n.map(c=>[c.id,c.zone]));for(let c of n){let d=a.get(c.id);(e.has(c.id)||d&&e.has(d))&&s.add(c.id)}let l=!!r&&e.has(He);for(let[c,d]of o)(s.has(d)||l&&d===He)&&i.add(c);return i}function Ni(t,e){if(!e.size)return t;let i=sr(t,e),n=e instanceof Set?e:new Set(e),r=s=>!(i.has(s.id)||s.type==="section"&&or(s,n));if(t.floors&&t.floors.length){let s=!1,a=t.floors.map(l=>{let c=l.objects.filter(r);return c.length!==l.objects.length&&(s=!0),c.length===l.objects.length?l:{...l,objects:c}});return s?{...t,floors:a,objects:a[0].objects}:t}let o=t.objects.filter(r);return o.length===t.objects.length?t:{...t,objects:o}}var ar=/^#?([\da-f]{3}|[\da-f]{6})$/i,aa=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\d.]+))?\s*\)$/i;function Z(t){let e=ar.exec((t??"").trim());if(!e)return null;let i=e[1].length===3?e[1].split("").map(r=>r+r).join(""):e[1],n=parseInt(i,16);return[n>>16&255,n>>8&255,n&255]}function la({r:t,g:e,b:i}){let n=r=>Math.max(0,Math.min(255,Math.round(r))).toString(16).padStart(2,"0");return`#${n(t)}${n(e)}${n(i)}`}function dt(t,e,i){return la({r:t,g:e,b:i})}function Wi(t){let e=t.trim(),i=ar.exec(e);if(i&&e.startsWith("#"))return`#${(i[1].length===3?i[1].split("").map(s=>s+s).join(""):i[1]).toLowerCase()}`;let n=aa.exec(e);if(!n||n[4]!=null&&Number(n[4])<.999)return null;let r=[Number(n[1]),Number(n[2]),Number(n[3])];return r.some(o=>!Number.isInteger(o)||o<0||o>255)?null:`#${r.map(o=>o.toString(16).padStart(2,"0")).join("")}`}function Hi(t){let e=t/255;return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Vi(t){return .2126*Hi(t[0])+.7152*Hi(t[1])+.0722*Hi(t[2])}function lr(t,e){let i=Z(t),n=Z(e);if(!i||!n)return null;let r=Vi(i),o=Vi(n);return(Math.max(r,o)+.05)/(Math.min(r,o)+.05)}function ca(t){let e=t.trim();if(e.startsWith("#")){let n=Z(e);return n?(.2126*n[0]+.7152*n[1]+.0722*n[2])/255:NaN}let i=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/.exec(e);return i?(.2126*+i[1]+.7152*+i[2]+.0722*+i[3])/255:NaN}function ut(t,e=.6){let i=ca(t);return!Number.isNaN(i)&&i>e}function we(t,e){let i=Z(t);return i?dt(...i.map(n=>n+(255-n)*e)):t}function ge(t,e){let i=Z(t);return i?dt(...i.map(n=>n*(1-e))):t}function zt(t,e,i){let n=Z(t),r=Z(e);return!n||!r?t:dt(n[0]+(r[0]-n[0])*i,n[1]+(r[1]-n[1])*i,n[2]+(r[2]-n[2])*i)}function ji(t,e){let i=0,n=0,r=0,o=0;for(let s of t){let a=Z(s.hex);!a||s.w<=0||(i+=a[0]*s.w,n+=a[1]*s.w,r+=a[2]*s.w,o+=s.w)}return o>0?dt(i/o,n/o,r/o):e}function cr(t,e){let i=Z(t);if(!i)return t;let n=.2126*i[0]+.7152*i[1]+.0722*i[2];return dt(...i.map(r=>r+(n-r)*e))}function da(t,e){let i=Z(t);return i?`rgba(${i[0]},${i[1]},${i[2]},${e})`:t}var le=da;var ye=7,Ve=10,dr=15,ur=11,We=.85,Q=12,ua=4.5;var Gt="#000000",Nt="#ffffff";function Ie(t,e){return t*e>=Q}var ce=24,hr={wheelchair:"M7.8 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM8 7L10.5 7L10.5 15L8 15ZM8 12.5L18 12.5L18 15L8 15ZM16 15L18 15L18 18L16 18ZM5.5 16a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0zM8 16a3 3 0 1 1 6 0a3 3 0 1 1 -6 0z",companion:"M5.5 6.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM4.5 18.5L6 11.5L11 11.5L12.5 18.5ZM12.5 7.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM11.5 19L13 12.5L18 12.5L19.5 19Z","semi-ambulatory":"M8.3 3.8a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM9 6.2L12 6.6L11 13.5L8.6 13L9 6.2ZM8.6 13L11 13L9.5 21L7 21ZM10.4 13L12.6 13L13.6 21L11.2 21ZM11.2 7.2L14 8L14.6 9.6L11.9 8.9ZM14.4 6.8L15.9 6.8L16.4 21L14.8 21Z","designated-aisle":"M3 5L6 5L6 14L3 14ZM3 12L13 12L13 15L3 15ZM5 15L7 15L7 20L5 20ZM11 15L13 15L13 20L11 20ZM13 7L20 7L17 4L19 4L23 8.5L19 13L17 13L20 10L13 10Z","step-free":"M4 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM4.4 7L7.5 7L7.5 13L11 15L9.5 17L5 14L4.4 7ZM2 19L8 19L17 10L22 10L22 13L18 13L10 21L2 21Z",hearing:"M15.5 3.5C9 2.2 5.5 6 5.5 11.5C5.5 16 8 19.5 10.5 21C13.2 22.6 16.4 20.8 15.4 18C14.8 16.4 12.9 16.1 13 14C13.1 11.9 15.8 11.4 15.8 8.5C15.8 5.4 13 4 15.5 3.5Z",cart:"M5.5 6L18.5 6a2.5 2.5 0 0 1 2.5 2.5L21 15.5a2.5 2.5 0 0 1 -2.5 2.5L11 18L7 20.5L7.5 18L5.5 18a2.5 2.5 0 0 1 -2.5 -2.5L3 8.5a2.5 2.5 0 0 1 2.5 -2.5zM6.5 11L17.5 11L17.5 12.6L6.5 12.6zM6.5 14L17.5 14L17.5 15.6L6.5 15.6z","sign-language":"M7 11L17 11L17 18a2 2 0 0 1 -2 2L9 20a2 2 0 0 1 -2 -2zM7.6 5L9.4 5L9.4 12L7.6 12zM9.9 3.5L11.7 3.5L11.7 12L9.9 12zM12.3 3.5L14.1 3.5L14.1 12L12.3 12zM14.6 5L16.4 5L16.4 12L14.6 12zM7.2 12.5L5 10.2L6.4 8.9L8.6 11.2Z","low-vision":"M2.5 12C6 6 18 6 21.5 12C18 18 6 18 2.5 12ZM9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM17.5 3L19 3L19 6L17.5 6ZM19 4L22 4L22 5.5L19 5.5Z","sensory-friendly":"M4 11C4 5 7 2.5 12 2.5S20 5 20 11L17 11C17 7 15.5 5.5 12 5.5S7 7 7 11ZM3 10L8 10L8 19L5 19a2 2 0 0 1 -2 -2ZM16 10L21 10L21 17a2 2 0 0 1 -2 2L16 19ZM9 12L15 12L15 14L9 14ZM10 16L14 16L14 18L10 18Z","plus-size":"M9.4 4.3a2.6 2.6 0 1 0 5.2 0a2.6 2.6 0 1 0 -5.2 0zM5 20L4 13C4 10.5 7 9.5 12 9.5C17 9.5 20 10.5 20 13L19 20Z","lift-armrest":"M5 6L8 6L8 19L5 19zM5 16L18 16L18 19L5 19zM8 12L17 12L17 14.5L8 14.5zM14 7L16 7L16 12L14 12zM12 7L18 7L15 3Z"},pc=hr.wheelchair;function Ki(t){if(!t?.length)return null;let e=t.includes("wheelchair")?"wheelchair":t[0];return hr[e]??null}function Ht(t){return/-(\d{1,5})$/.exec(t)?.[1]??t}var K=lr;function pr(t,e,i){let n=Z(t),r=Z(e);if(!n||!r)return e;let o=Math.max(0,Math.min(1,i));return`#${n.map((a,l)=>Math.round(a*o+r[l]*(1-o))).map(a=>a.toString(16).padStart(2,"0")).join("")}`}var Vt=3;function J(t,e,i=ua){let n=K(e,t);if(n!=null&&n>=i)return e;let r=K(Gt,t)??0,o=K(Nt,t)??0;return r===0&&o===0?e:r>=o?Gt:Nt}var ha=3;function Ui(t){let e=K("#ffffff",t);if(e!=null&&e>=ha)return"#ffffff";let i=K(Gt,t)??0,n=K(Nt,t)??0;return i===0&&n===0?"#ffffff":i>=n?Gt:Nt}var br=3,je=4.5,Wt=3,fr=24,pa=20;function Xi(t){return t.filter(e=>e.visible&&!!e.screenBox)}function Ke(t,e){return t.x<e.x+e.width&&t.x+t.width>e.x&&t.y<e.y+e.height&&t.y+t.height>e.y}function Se(t){return t.length?Math.round(Math.min(...t)*100)/100:null}function A(t,e,i){return i.length?{code:t,message:e,count:i.length,samples:i.slice(0,pa)}:null}function jt(t,e,i){return{primaryId:t.seatId,primaryLabel:t.label,...e==null?{}:{measured:Math.round(e*100)/100},...i==null?{}:{minimum:i}}}function Yi(t,e,i){return{primaryId:t.id,primaryLabel:t.label,...e==null?{}:{measured:Math.round(e*100)/100},...i==null?{}:{minimum:i}}}function mr(t,e,i){return{primaryId:t.objectId,primaryLabel:t.text,...e==null?{}:{measured:Math.round(e*100)/100},...i==null?{}:{minimum:i}}}function Ue(t,e,i,n){return{primaryId:t,primaryLabel:e,secondaryId:i,secondaryLabel:n}}function fa(t,e="overview",i=null){let n=Xi(t.labels),r=Xi(t.hierarchyLabels),o=Xi(t.freeTextLabels),s=t.gaAreas.filter(S=>S.visible),a=n.map(S=>K(S.ink,S.fill)??0),l=r.map(S=>K(S.ink,S.fill)??0),c=o.map(S=>K(S.ink,S.background)??0),d=s.map(S=>K(S.effectiveBackground,t.canvasBackground)??0),h=i?t.labels.filter(S=>S.categoryKey===i):t.labels,u=i?t.gaAreas.filter(S=>S.categoryKey===i):t.gaAreas,m=h.filter(S=>S.selected),b=h.filter(S=>S.status==="held"),f=h.filter(S=>S.status==="booked"),p=h.filter(S=>S.pointerTarget.active),g=new Set([...t.labels.filter(S=>S.visible&&(S.opacity>.25||S.selected||S.status!=="free")).map(S=>S.categoryKey),...t.gaAreas.filter(S=>S.visible&&S.opacity>.1).map(S=>S.categoryKey)]),v=m.length?Se(m.flatMap(S=>[K(t.selectionRingColor,t.canvasBackground)??0,K(t.selectionRingColor,S.fill)??0])):null,y=[],x=(S,L)=>Array.from({length:S},(E,O)=>({primaryId:`overview:${O+1}`,primaryLabel:L}));if(e==="overview"&&t.rung==="sections"&&(y.push(A("overview-section-category-paint","Section overview shells must use the neutral hierarchy palette, not category paint",x(t.overviewStyle.categoryPaintedSectionShells,"category-painted section shell"))),y.push(A("overview-category-detail-visible","Category-tinted section detail must wait until section focus or seat zoom",x(t.overviewStyle.visibleCategoryDetailOutlines,"category detail outline"))),y.push(A("overview-row-hints-visible","Row and seat patterns must not clutter the section overview",x(t.overviewStyle.visibleSectionRowHints,"section row hint"))),y.push(A("overview-availability-clutter","Live availability counts belong in focused detail, not on section overview shells",x(t.overviewStyle.visibleSectionAvailabilityLabels,"section availability label"))),y.push(A("overview-ga-detail-visible","Section-contained standing paint belongs in focused detail, not on section overview shells",x(t.overviewStyle.visibleSectionGADetails,"section-contained GA detail")))),y.push(A("bookable-label-undersized","Visible bookable labels must meet the rendered small-text size floor",n.filter(S=>S.renderedFontPx<t.minimumVisibleLabelPx).map(S=>jt(S,S.renderedFontPx,t.minimumVisibleLabelPx)))),e==="interaction"){let S=h.length>0,L=u.length>0,E=S||L,O=u.filter(P=>P.visible),F=new Set([...h.flatMap(P=>P.sectionId?[P.sectionId]:[]),...u.flatMap(P=>P.sectionId?[P.sectionId]:[])]),W=new Set([...t.labels.map(P=>P.categoryKey),...t.gaAreas.map(P=>P.categoryKey)]),_=P=>P.screenCenter.x>=0&&P.screenCenter.x<=t.viewport.width&&P.screenCenter.y>=0&&P.screenCenter.y<=t.viewport.height;y.push(A("detail-rung-missing","Interaction evidence with bookable inventory must render the seat-detail rung",E&&t.rung!=="seats"?[{primaryId:"renderer",primaryLabel:t.rung}]:[])),y.push(A("detail-inventory-not-visible","Interaction evidence must frame at least one real bookable unit",E&&!h.some(_)&&!O.length?[{primaryId:"renderer",primaryLabel:"no target inventory in viewport"}]:[])),y.push(A("pointer-target-inactive","Interaction evidence must expose a live production pointer target",S&&!p.some(_)||!S&&L&&!O.some(P=>P.interactive)?[{primaryId:"renderer",primaryLabel:"no active pointer target in viewport"}]:[])),y.push(A("pointer-target-undersized","Every active production pointer target must reach at least 24 CSS pixels",p.filter(P=>_(P)&&P.pointerTarget.effectiveMinimumPx<fr).map(P=>jt(P,P.pointerTarget.effectiveMinimumPx,fr)))),y.push(A("selected-state-missing","Interaction evidence must paint a selected unit and its renderer-owned ring",S&&(!m.length||!m.some(P=>t.selectionRingSeatIds.includes(P.seatId)))?[{primaryId:"renderer",primaryLabel:"selected state"}]:[])),y.push(A("selected-state-contrast-low","The selected-state ring must maintain 3:1 graphical contrast with the canvas",m.length&&(v??0)<Wt?[{primaryId:m[0].seatId,primaryLabel:m[0].label,measured:Math.round((v??0)*100)/100,minimum:Wt}]:[])),y.push(A("held-state-missing","Interaction evidence must paint a held state when the floor has at least two status-managed units",h.length>=2&&!b.length?[{primaryId:"renderer",primaryLabel:"held state"}]:[])),y.push(A("booked-state-missing","Interaction evidence must paint a taken state when the floor has at least three status-managed units",h.length>=3&&!f.length?[{primaryId:"renderer",primaryLabel:"booked state"}]:[]));let N=new Set(b.map(P=>`${P.fill.toLowerCase()}:${P.opacity}`)),X=new Set(f.map(P=>`${P.fill.toLowerCase()}:${P.opacity}`));y.push(A("status-state-indistinct","Held and taken evidence must resolve to distinct renderer paint",b.length&&f.length&&[...N].some(P=>X.has(P))?[{primaryId:b[0].seatId,primaryLabel:b[0].label,secondaryId:f[0].seatId,secondaryLabel:f[0].label}]:[])),y.push(A("section-focus-missing","Interaction evidence must exercise section focus and its backdrop when section membership exists",F.size&&(!t.focusedSectionId||!t.focusBackdropVisible)?[{primaryId:"renderer",primaryLabel:"section focus"}]:[])),y.push(A("category-filter-missing","Interaction evidence must exercise a category filter when multiple categories exist",W.size>=2&&(!t.categoryFilterKeys||!t.categoryFilterKeys.length)?[{primaryId:"renderer",primaryLabel:"category filter"}]:[]));let D=t.labels.filter(P=>P.status==="free"&&!P.selected&&t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(P.categoryKey)),z=t.gaAreas.filter(P=>t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(P.categoryKey));y.push(A("category-filter-ineffective","The active category filter must visibly dim excluded free inventory",(D.length||z.length)&&!D.some(P=>P.opacity<=.25)&&!z.some(P=>P.opacity<=.1)?[...D.map(P=>jt(P,P.opacity)),...z.map(P=>({primaryId:P.areaId,primaryLabel:P.label,measured:P.opacity}))]:[])),y.push(A("target-category-not-visible","A category-specific interaction scene must visibly paint its exact target category",i&&!g.has(i)?[{primaryId:i,primaryLabel:i}]:[])),y.push(A("target-category-filter-mismatch","A category-specific interaction scene must bind its filter to only the exact target category",i&&(t.categoryFilterKeys?.length!==1||t.categoryFilterKeys[0]!==i)?[{primaryId:i,primaryLabel:i}]:[]))}y.push(A("bookable-label-contrast-low","Visible bookable labels must meet 4.5:1 contrast against their actual paint",n.flatMap(S=>{let L=K(S.ink,S.fill)??0;return L<je?[jt(S,L,je)]:[]})));let I=[];for(let S=0;S<n.length;S+=1)for(let L=0;L<S;L+=1)Ke(n[S].screenBox,n[L].screenBox)&&I.push(Ue(n[L].seatId,n[L].label,n[S].seatId,n[S].label));y.push(A("bookable-label-collision","Visible bookable labels must not overlap",I)),y.push(A("hierarchy-label-undersized","Visible section and zone labels must meet the rendered small-text size floor",r.filter(S=>S.renderedFontPx<Q).map(S=>Yi(S,S.renderedFontPx,Q)))),y.push(A("hierarchy-label-contrast-low","Visible section and zone labels must meet 4.5:1 contrast against their backing paint",r.flatMap(S=>{let L=K(S.ink,S.fill)??0;return L<je?[Yi(S,L,je)]:[]}))),y.push(A("hierarchy-label-outside-section","Visible section labels must remain inside the filled section surface and outside holes",r.filter(S=>S.kind==="section"&&S.fitsContainer===!1).map(S=>Yi(S))));let k=[];for(let S=0;S<r.length;S+=1)for(let L=0;L<S;L+=1)Ke(r[S].screenBox,r[L].screenBox)&&k.push(Ue(r[L].id,r[L].label,r[S].id,r[S].label));y.push(A("hierarchy-label-collision","Visible hierarchy labels must not overlap each other",k));let w=[];for(let S of r)for(let L of n)Ke(S.screenBox,L.screenBox)&&w.push(Ue(S.id,S.label,L.seatId,L.label));y.push(A("hierarchy-bookable-collision","Visible hierarchy labels must not overlap bookable labels",w)),y.push(A("free-text-undersized","Visible chart text must meet the rendered small-text size floor",o.filter(S=>S.renderedFontPx<t.minimumVisibleLabelPx).map(S=>mr(S,S.renderedFontPx,t.minimumVisibleLabelPx)))),y.push(A("free-text-contrast-low","Visible chart text must meet 4.5:1 contrast against its measured background",o.flatMap(S=>{let L=K(S.ink,S.background)??0;return L<je?[mr(S,L,je)]:[]})));let M=[];for(let S=0;S<o.length;S+=1)for(let L=0;L<S;L+=1)Ke(o[S].screenBox,o[L].screenBox)&&M.push(Ue(o[L].objectId,o[L].text,o[S].objectId,o[S].text));y.push(A("free-text-collision","Visible chart text labels must not overlap each other",M));let C=[];for(let S of o)for(let L of n)Ke(S.screenBox,L.screenBox)&&C.push(Ue(S.objectId,S.text,L.seatId,L.label));y.push(A("free-text-bookable-collision","Visible chart text must not overlap bookable labels",C));let T=[];for(let S of o)for(let L of r)Ke(S.screenBox,L.screenBox)&&T.push(Ue(S.objectId,S.text,L.id,L.label));y.push(A("free-text-hierarchy-collision","Visible chart text must not overlap hierarchy labels",T)),y.push(A("ga-contrast-low","Visible GA surfaces must maintain 3:1 graphical contrast with the canvas",s.flatMap(S=>{let L=K(S.effectiveBackground,t.canvasBackground)??0;return L<Wt?[{primaryId:S.areaId,primaryLabel:S.label,measured:Math.round(L*100)/100,minimum:Wt}]:[]})));let R=y.filter(S=>!!S);return{version:br,passed:R.length===0,state:e,targetCategoryKey:i,resolvedRules:["rendered-overview-label-size","rendered-overview-label-contrast","rendered-overview-label-collision","rendered-overview-hierarchy-containment","rendered-overview-section-first-style","rendered-overview-ga-contrast",...e==="interaction"?["rendered-detail-inventory","rendered-pointer-target","rendered-selected-held-taken-states","rendered-section-focus","rendered-category-filter"]:[]],viewport:t.viewport,canvasBackground:t.canvasBackground,effectiveScale:t.effectiveScale,rung:t.rung,inventory:{totalBookableUnits:t.totalBookableUnits,totalLabelledBookableUnits:t.totalLabelledBookableUnits,visibleBookableLabels:n.length,hiddenBookableLabels:t.hiddenLabels,visibleHierarchyLabels:r.length,visibleFreeTextLabels:o.length,visibleGAAreas:s.length},overviewStyle:t.overviewStyle,composition:{hierarchy:t.hierarchyLabels.filter(S=>S.role==="name").map(S=>({id:S.id,kind:S.kind,label:S.label,visible:S.visible})).sort((S,L)=>S.kind.localeCompare(L.kind)||S.id.localeCompare(L.id)),labelledObjects:t.freeTextLabels.map(S=>({objectId:S.objectId,kind:S.kind,text:S.text,visible:S.visible})).sort((S,L)=>S.objectId.localeCompare(L.objectId)||S.kind.localeCompare(L.kind)),gaAreas:t.gaAreas.map(S=>({areaId:S.areaId,label:S.label,categoryKey:S.categoryKey,...S.sectionId?{sectionId:S.sectionId}:{},visible:S.visible})).sort((S,L)=>S.areaId.localeCompare(L.areaId)),bookableSectionIds:[...new Set(t.labels.flatMap(S=>S.sectionId?[S.sectionId]:[]))].sort(),categoryKeys:[...new Set([...t.labels.map(S=>S.categoryKey),...t.gaAreas.map(S=>S.categoryKey)])].sort(),activeCategoryKeys:[...g].sort()},metrics:{minimumRenderedBookableLabelPx:Se(n.map(S=>S.renderedFontPx)),minimumBookableLabelContrast:Se(a),minimumRenderedHierarchyLabelPx:Se(r.map(S=>S.renderedFontPx)),minimumHierarchyLabelContrast:Se(l),minimumRenderedFreeTextPx:Se(o.map(S=>S.renderedFontPx)),minimumFreeTextContrast:Se(c),minimumGAContrast:Se(d),minimumEffectivePointerTargetPx:Se(p.map(S=>S.pointerTarget.effectiveMinimumPx)),selectedRingContrast:v==null?null:Math.round(v*100)/100},interaction:{applicable:{detail:h.length>0||u.length>0,pointer:h.length>0||u.length>0,held:h.length>=2,booked:h.length>=3,sectionFocus:h.some(S=>!!S.sectionId)||u.some(S=>!!S.sectionId),categoryFilter:new Set([...t.labels.map(S=>S.categoryKey),...t.gaAreas.map(S=>S.categoryKey)]).size>=2},selectedUnits:m.length,heldUnits:b.length,bookedUnits:f.length,activePointerTargets:p.length,focusedSectionId:t.focusedSectionId,focusBackdropVisible:t.focusBackdropVisible,categoryFilterKeys:t.categoryFilterKeys},findings:R}}var Lt=require("konva/lib/Core"),Ho=require("konva/lib/Stage"),ci=require("konva/lib/Layer"),Te=require("konva/lib/Group"),ve=require("konva/lib/shapes/Circle"),Ee=require("konva/lib/shapes/Rect"),et=require("konva/lib/shapes/Line"),Ce=require("konva/lib/shapes/Text"),Vo=require("konva/lib/shapes/Path"),Wo=require("konva/lib/shapes/Image"),jo=require("konva/lib/Shape");function ma(t){let e=0;for(let i=0,n=t.length;i<n;i+=1){let r=t[i],o=t[(i+1)%n];e+=r.x*o.y-o.x*r.y}return e/2}function ht(t){return ma(t)*2}function Xe(t){let e=t.backgroundImage;return e?.url&&!e.assetId?e:void 0}var ba=9;function ga(t){if(t.kind==="circle")return{hx:t.r,hy:t.r};let e=t.width/2,i=t.height/2,n=t.rotation??0;if(!n)return{hx:e,hy:i};let r=n*Math.PI/180,o=Math.abs(Math.cos(r)),s=Math.abs(Math.sin(r));return{hx:e*o+i*s,hy:e*s+i*o}}function ya(t,e,i,n,r){if(t.shape.kind==="circle"){let b=Math.min(Math.max(t.seat.x,e),n),f=Math.min(Math.max(t.seat.y,i),r),p=t.seat.x-b,g=t.seat.y-f;return p*p+g*g<=t.shape.r*t.shape.r}let o=t.shape.rotation??0;if(!o)return t.seat.x-t.hx<=n&&t.seat.x+t.hx>=e&&t.seat.y-t.hy<=r&&t.seat.y+t.hy>=i;let s=o*Math.PI/180,a=Math.cos(s),l=Math.sin(s),c=t.shape.width/2,d=t.shape.height/2,h=[[-c,-d],[c,-d],[c,d],[-c,d]].map(([b,f])=>[t.seat.x+b*a-f*l,t.seat.y+b*l+f*a]),u=[[e,i],[n,i],[n,r],[e,r]],m=[[1,0],[0,1],[a,l],[-l,a]];for(let[b,f]of m){let p=1/0,g=-1/0;for(let[x,I]of h){let k=x*b+I*f;k<p&&(p=k),k>g&&(g=k)}let v=1/0,y=-1/0;for(let[x,I]of u){let k=x*b+I*f;k<v&&(v=k),k>y&&(y=k)}if(g<v||y<p)return!1}return!0}function gr(t,e={}){let i=e.seatRadius??ba,n=t.length,r=new Array(n),o=1/0,s=1/0,a=-1/0,l=-1/0,c=0;for(let k=0;k<n;k++){let w=t[k],M=e.shapeOf?.(w)??{kind:"circle",r:i},{hx:C,hy:T}=ga(M);r[k]={seat:w,shape:M,hx:C,hy:T},w.x-C<o&&(o=w.x-C),w.y-T<s&&(s=w.y-T),w.x+C>a&&(a=w.x+C),w.y+T>l&&(l=w.y+T),C>c&&(c=C),T>c&&(c=T)}n===0&&(o=0,s=0,a=0,l=0);let d=c>0?c*4:1,h=Math.max(a-o,0),u=Math.max(l-s,0),m=Math.max(64,e.maxCells??n*4),b=d,f=Math.max(1,Math.ceil(h/b)||1),p=Math.max(1,Math.ceil(u/b)||1);for(;f*p>m&&(f>1||p>1);)b*=2,f=Math.max(1,Math.ceil(h/b)||1),p=Math.max(1,Math.ceil(u/b)||1);let g=f*p,v=new Int32Array(g+1),y=0;for(let k=0;k<n;k++){let w=r[k],M=me(Math.floor((w.seat.x-w.hx-o)/b),0,f-1),C=me(Math.floor((w.seat.x+w.hx-o)/b),0,f-1),T=me(Math.floor((w.seat.y-w.hy-s)/b),0,p-1),R=me(Math.floor((w.seat.y+w.hy-s)/b),0,p-1);for(let S=T;S<=R;S++)for(let L=M;L<=C;L++)v[S*f+L+1]++,y++}for(let k=0;k<g;k++)v[k+1]+=v[k];let x=new Int32Array(y),I=v.slice(0,g);for(let k=0;k<n;k++){let w=r[k],M=me(Math.floor((w.seat.x-w.hx-o)/b),0,f-1),C=me(Math.floor((w.seat.x+w.hx-o)/b),0,f-1),T=me(Math.floor((w.seat.y-w.hy-s)/b),0,p-1),R=me(Math.floor((w.seat.y+w.hy-s)/b),0,p-1);for(let S=T;S<=R;S++)for(let L=M;L<=C;L++){let E=S*f+L;x[I[E]++]=k}}return{seats:t,entries:r,minX:o,minY:s,cell:b,cols:f,rows:p,cellStart:v,items:x,stamp:new Int32Array(n),epoch:0}}function Kt(t,e,i={}){let n=Math.min(e.x,e.x+e.width),r=Math.max(e.x,e.x+e.width),o=Math.min(e.y,e.y+e.height),s=Math.max(e.y,e.y+e.height),a=i.mode??"center",{cols:l,rows:c,cell:d,minX:h,minY:u,cellStart:m,items:b,entries:f}=t,p=Math.max(0,Math.floor((n-h)/d)),g=Math.min(l-1,Math.floor((r-h)/d)),v=Math.max(0,Math.floor((o-u)/d)),y=Math.min(c-1,Math.floor((s-u)/d));if(p>g||v>y)return[];let x=[],I=t.stamp,k=++t.epoch;for(let w=v;w<=y;w++){let M=w*l;for(let C=p;C<=g;C++){let T=M+C,R=m[T+1];for(let S=m[T];S<R;S++){let L=b[S];if(I[L]===k)continue;I[L]=k;let E=f[L];if(i.filter&&!i.filter(E.seat.id,E.seat))continue;(a==="center"?E.seat.x>=n&&E.seat.x<=r&&E.seat.y>=o&&E.seat.y<=s:ya(E,n,o,r,s))&&x.push(L)}}}return x.sort((w,M)=>w-M),x.map(w=>f[w].seat.id)}function yr(t,e=0){let i=Math.max(1,t.width,t.height),n={x:t.x+t.width/2,y:t.y+t.height/2},r=i*1.55,o=Math.max(i*.82,Math.max(0,e)+i*.45);return{target:n,distance:r,height:o,focalLength:Math.hypot(r,o),yawRad:-8*Math.PI/180}}function ie(t,e,i=0){let n=e.x-t.target.x,r=e.y-t.target.y,o=Math.cos(t.yawRad),s=Math.sin(t.yawRad),a=n*o-r*s,c=n*s+r*o-t.distance,d=i-t.height,h=Math.hypot(t.distance,t.height),u=(-t.distance*c-t.height*d)/h,m=(-t.height*c+t.distance*d)/h,b=Math.max(h*.08,u),f=t.focalLength/b;return{x:t.target.x+a*f,y:t.target.y-m*f,depth:b,scale:f}}function re(t,e){return{x:t.a*e.x+t.c*e.y+t.e,y:t.b*e.x+t.d*e.y+t.f}}function Sr(t){let e=t.a*t.d-t.b*t.c;if(!Number.isFinite(e)||Math.abs(e)<1e-9)throw new Error("perspective projection produced a singular affine");let i=t.d/e,n=-t.b/e,r=-t.c/e,o=t.a/e;return{a:i,b:n,c:r,d:o,e:-(i*t.e+r*t.f),f:-(n*t.e+o*t.f)}}function vr(t,e){return{a:t.a*e.a+t.c*e.b,b:t.b*e.a+t.d*e.b,c:t.a*e.c+t.c*e.d,d:t.b*e.c+t.d*e.d,e:t.a*e.e+t.c*e.f+t.e,f:t.b*e.e+t.d*e.f+t.f}}function Ut(t,e,i=()=>0){let n=ie(t,e,i(e)),r={x:e.x+1,y:e.y},o={x:e.x,y:e.y+1},s=ie(t,r,i(r)),a=ie(t,o,i(o)),l=s.x-n.x,c=s.y-n.y,d=a.x-n.x,h=a.y-n.y;return{a:l,b:c,c:d,d:h,e:n.x-l*e.x-d*e.y,f:n.y-c*e.x-h*e.y}}function kr(t){let e=Math.hypot(t.a,t.b),i=t.a*t.d-t.b*t.c;return{rotationDeg:Math.atan2(t.b,t.a)*180/Math.PI,scaleX:e,scaleY:i/Math.max(e,1e-9),skewX:(t.a*t.c+t.b*t.d)/Math.max(i,1e-9)}}var wr;function Ir(t){wr=t}function Sa(t){return typeof t=="number"?t:t instanceof Date?t.getTime():Date.parse(t)}var xr=new Map;function va(t,e){let i=t??wr,n=`${i??""}|${JSON.stringify(e)}`,r=xr.get(n);return r||(r=new Intl.DateTimeFormat(i,e),xr.set(n,r)),r}var ka={dateStyle:"medium",timeStyle:"short"};function Lr(t,e={}){let{locale:i,...n}=e,r=Sa(t);if(!Number.isFinite(r))return"";let o=Object.keys(n).length?n:ka;return va(i,o).format(r)}var wc="USD",xa=["USD","EUR","GBP","CAD","AUD","INR","AED","SGD","JPY","CHF","SEK","NZD","ZAR","MXN","BRL"],Cr;function qi(t){Cr=t}var Tr=new Map;function Xt(t,e,i,n){let r=n??Cr,o=`${r??""}|${t}|${e??"auto"}|${i??"auto"}`,s=Tr.get(o);return s||(s=new Intl.NumberFormat(r,{style:"currency",currency:t,minimumFractionDigits:e,maximumFractionDigits:i}),Tr.set(o,s)),s}function Yt(t,e="USD",i,n){if(typeof i=="object"){let o=i;try{return Xt(e,o.minimumFractionDigits,o.maximumFractionDigits,o.locale).format(t)}catch(s){if(o.fallback)return o.fallback(t,e);throw s}}let r=i??(Number.isInteger(t)?0:void 0);return Xt(e,r,r,n).format(t)}function Mr(t="USD"){try{return Xt(t,void 0,void 0).resolvedOptions().maximumFractionDigits??2}catch{return 2}}function Pr(t,e="USD"){return t/10**Mr(e)}function wa(t,e="USD",i){return Yt(Pr(t,e),e,void 0,i)}function Ia(t="USD"){return Xt(t,0,0).formatToParts(0).find(i=>i.type==="currency")?.value??t}var pt={"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.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.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.overview":"Overview","picker.entrance":"Entrance","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":"Sign in again, or reload the page, to keep browsing these seats. Anything you are already holding stays yours.","picker.accessExpiredTitle":"Your access session has ended","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":"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.addTime":"Add time","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.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.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.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.minToMaxGuests":"{min} to {max} guests","picker.more":"More","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.viewFromHere":"View from here","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"};var Rr=["en","es","de","fr"],Ye={en:pt},qt={},de="en";function $i(t,e){for(let i of[t,e,typeof navigator<"u"?navigator.language:null]){if(!i)continue;let n=i.toLowerCase().split("-")[0];if(Rr.includes(n))return n}return"en"}function La(){return de}function ft(t,e){e&&(Ye[t]={...Ye[t],...e}),de=Ye[t]?t:"en",qi(de),Ir(de),typeof document<"u"&&(document.documentElement.lang=de)}function Ta(t){qt=t}var Er=/\{(\w+)\}/g;function oe(t,e){let i=qt[t]??Ye[de]?.[t]??pt[t]??t;return e?i.replace(Er,(n,r)=>String(e[r]??`{${r}}`)):i}function Ca(t,e,i){let n=new Intl.PluralRules(de).select(e);return(qt[`${t}.${n}`]??Ye[de]?.[`${t}.${n}`]??pt[`${t}.${n}`]??qt[`${t}.other`]??Ye[de]?.[`${t}.other`]??pt[`${t}.other`]??t).replace(Er,(s,a)=>String({count:e,...i}[a]??`{${a}}`))}function Ma(t,e){return Lr(t,{...e??{dateStyle:"medium",timeStyle:"short"},locale:de})}var mt=9,Pe=.9,se=.55*Pe,ue=Q/ye,bt=4,$t=14,Ar=10,Br=14,Le=.45*Pe,qe=.9*Pe,Or=Math.max(Pe*1.1,qe),Re=8,Fr=700,ee=2,Dr=Q,gt=64,$e=.55*Le,Zi=700,_r=2500,Zt=-11.5,yt=.58,zr=320,Qt=650,Gr=1,Jt=1,Nr=20,Qi=12,Hr=[.85,.72,.62],ei=18,Vr=12,Wr=.1;var Pa="#e5e7eb",Ra="#c7cbd1",Ea="#595f69",Aa="#d1d5db",Ba="#b8bdc4",Oa="#273142",Fa="#526078",Da="#f1f5f9",_a="#374151",za="#64748b",Ji="#111827",jr="#6b7280",ti="#374151",Kr="#4b5563",Ur="#4b5563",Xr=.4,St=.16,Yr="rgba(244,246,248,0.06)",ii=["#E69F00","#56B4E9","#009E73","#F0E442","#0072B2","#D55E00","#CC79A7"];function he(t){return ut(t)?{sectionFill:Pa,sectionStroke:Ra,sectionInk:Ea,focalFill:Aa,focalStroke:Ba}:{sectionFill:Oa,sectionStroke:Fa,sectionInk:Da,focalFill:_a,focalStroke:za}}function Ze(t,e){let i=t.sectionFill,n=cr(ge(i,.2),.85);switch(e){case"closed":return ge(i,.12);case"sold-out":return n;case"nearly-gone":return zt(i,n,.4);default:return i}}function Ga(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 Qe=class{constructor(){this.cells=new Map}insert(e){for(let i of this.keys(e)){let n=this.cells.get(i);n?n.push(e):this.cells.set(i,[e])}}collisionCount(e){let i=new Set,n=0;for(let r of this.keys(e))for(let o of this.cells.get(r)??[])i.has(o)||(i.add(o),Ga(e,o)&&n++);return n}keys(e){let i=Math.floor(e.x/gt),n=Math.floor((e.x+Math.max(0,e.width))/gt),r=Math.floor(e.y/gt),o=Math.floor((e.y+Math.max(0,e.height))/gt),s=[];for(let a=r;a<=o;a++)for(let l=i;l<=n;l++)s.push(`${l}:${a}`);return s}};function Na(t){let e=1/0,i=1/0,n=-1/0,r=-1/0,o=!1;for(let s of t)!Number.isFinite(s.x)||!Number.isFinite(s.y)||(o=!0,s.x<e&&(e=s.x),s.y<i&&(i=s.y),s.x>n&&(n=s.x),s.y>r&&(r=s.y));return o?{minX:e,minY:i,maxX:n,maxY:r}:null}function qr(t){let e=Na(t);return e?Ha(e):null}function Ha(t){return{x:t.minX,y:t.minY,width:t.maxX-t.minX,height:t.maxY-t.minY}}function U(t){let e=qr(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 ni(t,e,i,n){let r=n*Math.PI/180,o=Math.cos(r),s=Math.sin(r);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(a=>({x:t.x+a.x*o-a.y*s,y:t.y+a.x*s+a.y*o}))}function ri(t,e,i,n,r,o){let s=n*Math.PI/180,a=Math.cos(s),l=Math.sin(s);for(let c=0;c<=4;c++)for(let d=0;d<=6;d++){let h=e*(d/6-.5),u=i*(c/4-.5),m={x:t.x+h*a-u*l,y:t.y+h*l+u*a};if(!Y(m,r,o))return!1}return!0}function $r(t,e,i){let n=U(t),r=[i];for(let s=1;s<12;s+=1)for(let a=1;a<12;a+=1){let l={x:n.x+n.width*a/12,y:n.y+n.height*s/12};Y(l,t,e)&&r.push(l)}let o=[t,...e];return r.map(s=>({point:s,room:wi(s,o)})).sort((s,a)=>a.room-s.room).map(s=>s.point).filter((s,a,l)=>a===l.findIndex(c=>Math.abs(c.x-s.x)<1e-6&&Math.abs(c.y-s.y)<1e-6))}var Zr=require("konva/lib/Group"),Qr=require("konva/lib/Shape");function Va(t,e,i){let n=e.length,r={x:(e[n-1].x+e[0].x)/2,y:(e[n-1].y+e[0].y)/2};t.moveTo(r.x,r.y);for(let o=0;o<n;o+=1){let s=e[o],a=e[(o+1)%n],l=e[(o-1+n)%n],c=Math.min(Math.hypot(s.x-l.x,s.y-l.y)/2,Math.hypot(a.x-s.x,a.y-s.y)/2);t.arcTo(s.x,s.y,a.x,a.y,Math.max(0,Math.min(i,c)))}t.closePath()}function Je(t,e,i,n){let r=ht(t)>0,o=i.cornerRadius&&i.cornerRadius>0?i.cornerRadius:0;return new Qr.Shape({...i,sceneFunc(s,a){s.beginPath();let l=d=>{if(d.length){if(o>0&&d.length>=3)return Va(s,d,o);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()}};n?(d=>{s.moveTo(d.start.x,d.start.y);let h=d.start;for(let u of d.segments)u.kind==="line"?s.lineTo(u.end.x,u.end.y):u.kind==="arc"?s.arc(u.center.x,u.center.y,u.radius,Math.atan2(h.y-u.center.y,h.x-u.center.x),Math.atan2(u.end.y-u.center.y,u.end.x-u.center.x),!u.clockwise):s.bezierCurveTo(u.control1.x,u.control1.y,u.control2.x,u.control2.y,u.end.x,u.end.y),h=u.end;s.closePath()})(n):l(t);for(let d of e??[]){let h=ht(d)>0;l(h===r?[...d].reverse():d)}s.fillStrokeShape(a)},perfectDrawEnabled:!1})}var vt=class extends Zr.Group{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)}};var oi=class{constructor(e){this.pointers=new Map;this.pinch=null;this.panLast=null;this.panStart=null;this.panStarted=!1;this.movedPx=0;this.lastTapAt=0;this.onPointerDown=e=>{this.host.cancelGlide();let i=this.toLocal(e);if(this.pointers.set(e.pointerId,i),this.pointers.size===1)this.movedPx=0,this.pinch=null,this.panStart=i,this.panStarted=!1,this.host.marqueeShouldStart(e)?(this.host.beginMarquee(i),this.panLast=null):this.panLast=i;else if(this.pointers.size===2){this.host.marqueeActive()&&this.host.cancelMarquee();let[n,r]=[...this.pointers.values()],o={x:(n.x+r.x)/2,y:(n.y+r.y)/2},s=this.host.stage.scaleX();this.pinch={startDist:Math.hypot(r.x-n.x,r.y-n.y),startScale:s,worldMid:{x:(o.x-this.host.stage.x())/s,y:(o.y-this.host.stage.y())/s}},this.panLast=null,this.panStart=null,this.panStarted=!0,this.movedPx=Re+1}};this.onPointerMove=e=>{if(!this.pointers.has(e.pointerId))return;e.preventDefault();let i=this.toLocal(e);if(this.pointers.set(e.pointerId,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=Re+1),this.host.marqueeActive()){this.host.updateMarquee(i);return}if(this.pinch&&this.pointers.size>=2){this.host.releaseSectionFocusDim();let[n,r]=[...this.pointers.values()],o=Math.hypot(r.x-n.x,r.y-n.y);if(this.pinch.startDist<1)return;let s={x:(n.x+r.x)/2,y:(n.y+r.y)/2},{min:a,max:l}=this.host.zoomBounds(),c=V(this.pinch.startScale*(o/this.pinch.startDist),a,l);this.host.stage.scale({x:c,y:c}),this.host.stage.position({x:s.x-this.pinch.worldMid.x*c,y:s.y-this.pinch.worldMid.y*c}),this.host.updateSeatGroupVisibility(),this.host.stage.batchDraw(),this.host.scheduleViewChange()}else if(this.panLast&&this.pointers.size===1){if(!this.panStarted){if(this.movedPx<=Re)return;this.panStarted=!0,this.host.releaseSectionFocusDim()}this.host.stage.position({x:this.host.stage.x()+(i.x-this.panLast.x),y:this.host.stage.y()+(i.y-this.panLast.y)}),this.panLast=i,this.host.updateSeatGroupVisibility(),this.host.stage.batchDraw(),this.host.scheduleViewChange()}};this.onPointerEnd=e=>{if(this.host.marqueeActive()){this.host.finishMarquee(),this.pointers.delete(e.pointerId),this.pointers.size===0&&(this.panLast=null);return}this.pointers.delete(e.pointerId),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.host.afterViewChange())};this.host=e}get moved(){return this.movedPx}attach(){let{container:e}=this.host;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})}detach(){let{container:e}=this.host;e.removeEventListener("pointerdown",this.onPointerDown),e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerup",this.onPointerEnd),e.removeEventListener("pointercancel",this.onPointerEnd)}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<Fr}toLocal(e){let i=this.host.container.getBoundingClientRect();return{x:e.clientX-i.left,y:e.clientY-i.top}}};var en=require("konva/lib/shapes/Rect"),Jr=require("konva/lib/shapes/Text");function eo(t){let e=t.effScale(),i=t.stage.scaleX(),n={width:t.stage.width(),height:t.stage.height()},r=f=>Math.round(f*100)/100,o=t.seats.map(f=>{let p=t.circleById.get(f.id),g=t.boothLabelById.get(f.id)??t.seatLabelById.get(f.id),v=t.viewMode==="perspective"?t.perspectiveSeatScale.get(f.id)??1:1,y=(t.viewMode==="perspective"?i:e)*v,x=f.kind==="booth"?Ve:ye*t.seatLabelScale(f),I=t.viewMode==="perspective"&&f.kind!=="booth"?e*v:y,k=r((g?.fontSize()??x)*I),w=t.worldToScreen(f),M=w.x<0||w.x>n.width||w.y<0||w.y>n.height,C=t.focusedSeatOpacity(f.id,p?.getAbsoluteOpacity()??0),T=t.seatSection.get(f.id),R=!!g?.isVisible()&&C>=.5&&!M,S;R||(C<.5?S="dimmed-or-unavailable":k<Q?S="below-minimum-size":M?S="outside-viewport":g?S="renderer-hidden":S="clutter-or-fit");let L=g?g.width()*i*v:0,E=g?g.height()*(t.viewMode==="perspective"&&f.kind==="booth"?i:e)*v:0,O=p instanceof en.Rect?p.width()*i*v:t.seatR*2*y,F=p instanceof en.Rect?p.height()*(t.viewMode==="perspective"?i:e)*v:t.seatR*2*y,W=2*(t.seatR*y+$t),_=p?.fill(),N=g?.fill(),X=t.accessGlyphById.get(f.id),D=X?.getAbsoluteScale();return{seatId:f.id,label:f.label,kind:f.kind==="booth"?"booth":"seat",markerShape:f.kind==="booth"?"booth":f.wheelchairSpaceType==="no-seat"?"square":"circle",...f.wheelchairSpaceType?{wheelchairSpaceType:f.wheelchairSpaceType}:{},categoryKey:f.categoryKey,...T?{sectionId:T.id}:{},...T?.zone?{zoneId:T.zone}:{},status:t.statusById.get(f.id)??"free",selected:t.selection.has(f.id),visible:R,renderedFontPx:k,fill:typeof _=="string"?_:"",ink:typeof N=="string"?N:p?t.seatLabelInk(f,p):t.seatPreferredLabelInk(f),opacity:r(C),...X?{accessibilityMarker:{glyphVisible:X.isVisible(),glyphWidthPx:r(ce*Math.abs(D?.x??0)),emphasizedByFilter:t.accessGlyphFilterEmphasized(f.id)}}:{},pointerTarget:{active:!t.cached&&!t.seatViewportCulled(f.id)&&!!p?.isVisible()&&!!p?.isListening()&&t.isSelectable(f.id),directWidthPx:r(O),directHeightPx:r(F),effectiveMinimumPx:r(Math.max(Math.min(O,F),W))},screenCenter:{x:r(w.x),y:r(w.y)},...R?{screenBox:{x:r(w.x-L/2),y:r(w.y-E/2),width:r(L),height:r(E)}}:{},...S?{hiddenReason:S}:{}}}),s=o.filter(f=>f.visible).length,a=(f,p,g,v,y,x)=>{let I=ni({x:v.x(),y:v.y()},v.width(),v.height(),v.rotation()),k=x&&x.liftWorld>0?t.isoLiftLocal(x.liftWorld):{x:0,y:0},w=U(I.map(L=>t.worldToScreen({x:L.x+k.x,y:L.y+k.y}))),M=r(v.opacity()),C=v.fill(),T=w.x+w.width<0||w.x>n.width||w.y+w.height<0||w.y>n.height,R=v.isVisible()&&M>.05&&!T,S=x?ri({x:v.x(),y:v.y()},v.width(),v.height(),v.rotation(),x.outline,x.holes):void 0;return{id:f,kind:p,role:g,label:v.text(),visible:R,renderedFontPx:r(v.fontSize()*i),opacity:M,fill:y,ink:typeof C=="string"?C:"",...S==null?{}:{fitsContainer:S},...R?{screenBox:{x:r(w.x),y:r(w.y),width:r(w.width),height:r(w.height)}}:{}}},l=[...t.sections.map(f=>{let p=f.blockPoly.fill();return a(f.id,"section","name",f.nameLabel,typeof p=="string"?p:f.baseFill,f)}),...t.sections.map(f=>{let p=f.blockPoly.fill();return a(`${f.id}:availability`,"section","availability",f.subLabel,typeof p=="string"?p:f.baseFill,f)}),...t.zones.flatMap(f=>[a(f.id,"zone","name",f.label,f.background),...f.sub?[a(`${f.id}:price`,"zone","price",f.sub,f.background)]:[]])],c=[...t.gaById].map(([f,p])=>{let g=p.points.map(T=>t.worldToScreen(T)),v=Math.min(...g.map(T=>T.x)),y=Math.min(...g.map(T=>T.y)),x=Math.max(...g.map(T=>T.x)),I=Math.max(...g.map(T=>T.y)),k=x<0||v>n.width||I<0||y>n.height,w=r(p.polygon.opacity()),M=w>=.1&&!k,C=p.polygon.fill();return{areaId:f,label:p.label,capacity:p.capacity,categoryKey:p.categoryKey,...p.sectionId?{sectionId:p.sectionId}:{},visible:M,interactive:p.polygon.listening(),opacity:w,fill:typeof C=="string"?C:"",effectiveBackground:p.effectiveBackground,...M?{screenBox:{x:r(v),y:r(y),width:r(x-v),height:r(I-y)}}:{}}}),d=[...t.freeTextById].map(([f,p])=>{let{node:g,background:v,kind:y}=p,x=t.worldToScreen({x:g.x(),y:g.y()}),I=g.width()*i,k=g.height()*e,w=x.x-g.offsetX()*i,M=x.y-g.offsetY()*e,C=r(g.fontSize()*e),T=w+I<0||w>n.width||M+k<0||M>n.height,R=g.isVisible()&&!T,S=g.fill(),L=r(g.getAbsoluteOpacity()),E;return R||(C<Q?E="below-minimum-size":T?E="outside-viewport":E="renderer-hidden"),{objectId:p.objectId??f,kind:y,text:g.text(),visible:R,renderedFontPx:C,ink:typeof S=="string"?S:"",background:v,opacity:L,...R?{screenBox:{x:r(w),y:r(M),width:r(I),height:r(k)}}:{},...E?{hiddenReason:E}:{}}}),h=t.labelGroup.find(f=>f.getAttr("rowLabel")===!0).filter(f=>f instanceof Jr.Text).map(f=>{let p=f.getClientRect({skipShadow:!0,skipStroke:!0}),g=p.x+p.width<0||p.x>n.width||p.y+p.height<0||p.y>n.height,v=f.fill();return{text:f.text(),visible:f.isVisible()&&!g,renderedFontPx:r(f.fontSize()*e),ink:typeof v=="string"?v:"",...g?{}:{screenBox:{x:r(p.x),y:r(p.y),width:r(p.width),height:r(p.height)}}}}),u=he(t.canvasBackground),m=new Set(["normal","nearly-gone","sold-out","closed"].map(f=>Ze(u,f).toLowerCase())),b=t.sections.filter(f=>f.blockPoly.opacity()>.05);return{viewport:n,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:r(e),rung:t.getRung(),minimumVisibleLabelPx:Q,totalLabelledBookableUnits:o.length,visibleLabels:s,hiddenLabels:o.length-s,totalBookableUnits:o.length+c.reduce((f,p)=>f+p.capacity,0),selectionRingSeatIds:t.overlayLayer.find(".selection-ring").map(f=>String(f.getAttr("seatId")??"")).filter(Boolean),selectionRingColor:t.effSelection,focusedSectionId:t.focusedSectionId,focusBackdropVisible:!!t.focusBackdrop?.isVisible(),categoryFilterKeys:t.categoryFilter?[...t.categoryFilter].sort():null,overviewStyle:{visibleSectionShells:b.length,categoryPaintedSectionShells:b.filter(f=>{let p=f.blockPoly.fill();return typeof p!="string"||!m.has(p.toLowerCase())}).length,visibleCategoryDetailOutlines:t.sections.filter(f=>f.outlinePoly.opacity()>.05).length,visibleSectionRowHints:0,visibleSectionAvailabilityLabels:t.sections.filter(f=>f.subLabel.opacity()>.05).length,visibleSectionGADetails:[...t.gaById.values()].filter(f=>f.sectionId!=null&&f.polygon.opacity()>.05).length},labels:o,gaAreas:c,hierarchyLabels:l,freeTextLabels:d,rowLabels:h}}var ho=require("konva/lib/shapes/Circle"),po=require("konva/lib/shapes/Ellipse"),fo=require("konva/lib/shapes/Line"),mo=require("konva/lib/shapes/Arrow"),bo=require("konva/lib/shapes/Path"),ai=require("konva/lib/shapes/Rect"),li=require("konva/lib/shapes/Text"),go=require("konva/lib/shapes/Image");var to="M13 4.6a1.6 1.6 0 1 0-3.2 0 1.6 1.6 0 0 0 3.2 0 M11 6.5V13h5l2.4 6 M15 16.4A5 5 0 1 1 9 11.3",io=[{key:"restroom-men",label:"Men's restroom",group:"facilities",path:"M16 7a4 4 0 1 0-8 0 4 4 0 0 0 8 0 M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"},{key:"restroom-women",label:"Women's restroom",group:"facilities",path:"M15 5a3 3 0 1 0-6 0 3 3 0 0 0 6 0 M12 8l-4 10h8l-4-10 M10 18v4 M14 18v4"},{key:"restroom-accessible",label:"Accessible restroom",group:"facilities",path:to},{key:"first-aid",label:"First aid",group:"facilities",path:"M5 4h14a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Z M12 8v8 M8 12h8"},{key:"coat-check",label:"Coat check",group:"facilities",path:"M12 6a2 2 0 0 1 0-4 2 2 0 0 1 1.6 3.2L21 13H3l8.4-7.8 M3 13h18"},{key:"atm",label:"ATM / cash",group:"facilities",path:"M2 6h20v12H2V6Z M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0 M6 9h.01 M18 15h.01"},{key:"info",label:"Info point",group:"facilities",path:"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18 M12 11v5 M12 8h.01"},{key:"lost-found",label:"Lost & found",group:"facilities",path:"M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14 M16 16l5 5 M9 8.5a2 2 0 1 1 3 1.7c-.8.5-1 .8-1 1.8 M11 15h.01"},{key:"restrooms",label:"Restrooms",group:"facilities",path:"M6 3h12a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M12 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4 M9 18v-3.5a3 3 0 0 1 6 0V18"},{key:"charging",label:"Charging point",group:"facilities",path:"M3 8h13v8H3V8Z M16 10h3v4h-3 M9.6 9l-2 3.5h2.5l-1.5 3"},{key:"smoking",label:"Smoking area",group:"facilities",path:"M2 15h13v3H2v-3Z M18 16h2 M19 8c0 1 1 1.5 1 2.5S19 12 19 13"},{key:"no-smoking",label:"No smoking",group:"facilities",path:"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18 M5.6 5.6l12.8 12.8 M7 13h6v2H7v-2Z"},{key:"food",label:"Food",group:"food-drink",path:"M7 3v6a2 2 0 0 0 4 0V3 M9 11v10 M17 3c-1.6 1-2.2 3-2.2 6 0 2 .9 3.2 2.2 3.6V21"},{key:"bar",label:"Bar",group:"food-drink",path:"M4 5h16l-8 8-8-8Z M12 13v6 M8 20h8"},{key:"coffee",label:"Caf\xE9 / coffee",group:"food-drink",path:"M4 8h13v4a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5V8Z M17 9h2a2 2 0 0 1 0 4h-2 M8 2v2 M11 2v2 M4 21h14"},{key:"water",label:"Water / drinks",group:"food-drink",path:"M12 22a7 7 0 0 1-7-7c0-5 7-12 7-12s7 7 7 12a7 7 0 0 1-7 7Z"},{key:"merch",label:"Merch / shop",group:"food-drink",path:"M6 8h12l-1 12H7L6 8Z M9 8V6a3 3 0 0 1 6 0v2"},{key:"screen",label:"Screen",group:"facilities",path:"M3 4h18v12H3V4Z M9 20h6 M12 16v4 M10 8l4 2-4 2V8Z"},{key:"sound-booth",label:"Sound booth",group:"facilities",path:"M6 4v16 M6 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4 M12 4v16 M12 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4 M18 4v16 M18 12a2 2 0 1 0 0 4 2 2 0 0 0 0-4"},{key:"entrance",label:"Entrance",group:"navigation",path:"M14 3h5a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-5 M3 12h11 M10 8l4 4-4 4"},{key:"exit",label:"Exit",group:"navigation",path:"M10 3H5a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h5 M14 12h7 M17 8l4 4-4 4"},{key:"emergency-exit",label:"Emergency exit",group:"navigation",path:"M14 4.6a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0 M12.5 8l-3.5 2 1.6 3.6-2 4.4 M12.5 10l3.5 1.5 M9 10.5l-3.5 1 M15 12h6 M18 9l3 3-3 3"},{key:"stairs",label:"Stairs",group:"navigation",path:"M3 20v-4h4v-4h4v-4h4V4h5"},{key:"elevator",label:"Elevator",group:"navigation",path:"M5 3h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M8 11l1.5-2 1.5 2 M8 14l1.5 2 1.5-2 M15 8v8"},{key:"parking",label:"Parking",group:"navigation",path:"M5 3h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M9 17V7h4a3 3 0 0 1 0 6H9"},{key:"wheelchair",label:"Wheelchair access",group:"accessibility",path:to},{key:"hearing",label:"Hearing assistance",group:"accessibility",path:"M8 20a4 4 0 0 1-2-3c0-1 .5-2 .5-3a4.5 4.5 0 1 1 9 0c0 1.4-1 2-2 2.4-1.2.5-1.5 1-1.5 2.2 M17 6a5 5 0 0 1 1 6 M19.5 4a8 8 0 0 1 1.2 9"}];var Wa=new Map(io.map(t=>[t.key,t]));function ja(t){return t?Wa.get(t):void 0}function no(t){return ja(t)?.path}var Zc=io.map(t=>t.key);var Ka="round",Ua="round",ro="none";function oo(t){return{lineCap:t.lineCap??Ka,lineJoin:t.lineJoin??Ua,startEnding:t.startEnding??ro,endEnding:t.endEnding??ro}}function so(t){return{pointerLength:Math.min(48,Math.max(8,t*3)),pointerWidth:Math.min(40,Math.max(8,t*2.25))}}function tn(t,e){return e.length===0?!!t.accessible:!!t.accessibility?.some(i=>e.includes(i))}var si="#0b1220",kt="#ffffff",ao="#0b1220",lo="#232c40",co="#8b93a7";function uo(t,e,i="normal"){let n=t?"bold":i;return e?`italic ${n}`.trim():n}var nn="#0e1117";function yo(t,e){let i=new window.Image,n=new go.Image({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:V(e.opacity??1,0,1),listening:!1,perfectDrawEnabled:!1});e.layer==="foreground"?t.fgDecorGroup.add(n):t.bgLayer.add(n),t.trackAssetImage(i,e.href,`Decor image \u201C${e.label||e.id}\u201D`,()=>{let r=n.getLayer();r&&r.batchDraw()})}function So(t,e){if(e.shape==="round")t.bgLayer.add(new ho.Circle({x:e.center.x,y:e.center.y,radius:e.radius??40,fill:"#232c40",stroke:"#2a3348",strokeWidth:1.5,listening:!1}));else{let n=e.width??80,r=e.height??50;t.bgLayer.add(new ai.Rect({x:e.center.x,y:e.center.y,width:n,height:r,offsetX:n/2,offsetY:r/2,rotation:e.rotation,fill:"#232c40",stroke:"#2a3348",strokeWidth:1.5,cornerRadius:4,listening:!1}))}let i=xt(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"})}function vo(t,e){let i=e.background?.color??t.canvasBackground,n=e.color??t.theme.textColor??co,r=e.semanticKind==="icon"?no(e.iconKey):void 0;if(r){let c=e.fontSize/24,d=new bo.Path({x:e.position.x,y:e.position.y,data:r,rotation:e.rotation,scaleX:c,scaleY:c,stroke:J(i,n),strokeWidth:2,lineCap:"round",lineJoin:"round",fillEnabled:!1,listening:!1,perfectDrawEnabled:!1});t.iconNodeById.set(e.id,{node:d,fontSize:e.fontSize}),t.bgLayer.add(d);return}let o=e.background?.padding??0,s=e.opacity??1,a=new li.Text({x:e.position.x,y:e.position.y,text:e.text,fontSize:e.fontSize,rotation:e.rotation,fontStyle:uo(e.bold,e.italic,"600"),fill:J(i,n),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:o,opacity:s,wrap:"word",listening:!1,perfectDrawEnabled:!1,name:"buyer-free-text"}),l;e.background&&(l=new ai.Rect({x:e.position.x,y:e.position.y,width:a.width(),height:a.height(),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(l)),t.freeTextById.set(e.id,{node:a,backdrop:l,background:i,kind:"free-text"}),t.bgLayer.add(a)}function ko(t,e){let i=e.fill??t.theme.decorFill??lo,n=e.role==="stage",r=e.role==="reference-focal",o=!!e.role&&!n,s=he(t.canvasBackground),a=r?s.focalFill:i,l=e.kind==="line"||e.kind==="polyline",c=e.stroke?.color??(n?we(a,.28):r?s.focalStroke:l?"#9aa3b5":void 0),d=e.stroke?.width??(n?1:r||l?2:0),h=e.opacity!=null?V(e.opacity,.1,1):1,u=0,m=0;if(l&&e.points&&e.points.length>=2){u=e.points.reduce((g,v)=>g+v.x,0)/e.points.length,m=e.points.reduce((g,v)=>g+v.y,0)/e.points.length;let b=oo(e),f=so(d),p=new mo.Arrow({points:e.points.flatMap(g=>[g.x,g.y]),closed:!1,x:u,y:m,offsetX:u,offsetY:m,rotation:e.rotation??0,stroke:c,fill:c,strokeWidth:d,opacity:h,lineCap:b.lineCap,lineJoin:b.lineJoin,pointerAtBeginning:b.startEnding==="arrow",pointerAtEnding:b.endEnding==="arrow",...f,listening:!1,name:"buyer-shape-open-path"});p.setAttr("shapeObjectId",e.id),t.bgLayer.add(p)}else if(e.kind==="rect"&&e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null){let b=n?{fillLinearGradientStartPoint:{x:0,y:0},fillLinearGradientEndPoint:{x:0,y:e.height},fillLinearGradientColorStops:[0,ge(a,.3),1,we(a,.12)]}:{fill:a};u=e.x+e.width/2,m=e.y+e.height/2,t.bgLayer.add(new ai.Rect({x:u,y:m,offsetX:e.width/2,offsetY:e.height/2,rotation:e.rotation??0,width:e.width,height:e.height,...b,stroke:c,strokeWidth:d,cornerRadius:V(e.cornerRadius??4,0,Math.min(e.width,e.height)/2),opacity:h,listening:!1}))}else if(e.kind==="ellipse"&&e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null){u=e.x+e.width/2,m=e.y+e.height/2;let b=n?{fillLinearGradientStartPoint:{x:0,y:-e.height/2},fillLinearGradientEndPoint:{x:0,y:e.height/2},fillLinearGradientColorStops:[0,ge(a,.3),1,we(a,.12)]}:{fill:a};t.bgLayer.add(new po.Ellipse({x:u,y:m,rotation:e.rotation??0,radiusX:e.width/2,radiusY:e.height/2,...b,stroke:c,strokeWidth:d,opacity:h,listening:!1}))}else if(e.kind==="polygon"&&e.points&&e.points.length){let b=e.points.flatMap(g=>[g.x,g.y]),f=U(e.points);u=e.points.reduce((g,v)=>g+v.x,0)/e.points.length,m=e.points.reduce((g,v)=>g+v.y,0)/e.points.length;let p=n?{fillLinearGradientStartPoint:{x:0,y:f.y},fillLinearGradientEndPoint:{x:0,y:f.y+f.height},fillLinearGradientColorStops:[0,ge(a,.3),1,we(a,.12)]}:{fill:a};t.bgLayer.add(new fo.Line({points:b,closed:!0,x:u,y:m,offsetX:u,offsetY:m,rotation:e.rotation??0,...p,stroke:c,strokeWidth:d,opacity:h,listening:!1}))}if(e.label)if(n){let b=qa(t,u,m,e.label,a);t.primaryFocalLabels.set(b,22),t.freeTextById.set(e.id,{node:b,background:a,kind:"stage"})}else if(o){let b=xt(t,t.bgLayer,e.label,u,m,r?J(a,"#e6e9f0"):"#9aa3b5",r?18:12,!1);r&&t.primaryFocalLabels.set(b,18),t.freeTextById.set(e.id,{node:b,background:a,kind:"decor"})}else{let b=xt(t,t.bgLayer,e.label,u,m,"#cbd5e1",16,!0);t.freeTextById.set(e.id,{node:b,background:a,kind:"decor"})}}function qa(t,e,i,n,r){let o=J(r,"#e6e9f0"),s=new li.Text({x:e,y:i,text:n.toUpperCase(),fontSize:22,fontStyle:"700",letterSpacing:4,fontFamily:t.labelFont(),fill:o,listening:!1,perfectDrawEnabled:!1});return s.offsetX(s.width()/2),s.offsetY(s.height()/2),t.bgLayer.add(s),s}function xo(t,e){let i=t.catColor.get(e.categoryKey)??"#6e7bff",n=t.canvasBackground,r=pr(i,n,We),o=t.theme.textColor??"#e6e9f0",s=J(r,o),a=Je(e.points,e.holes,{fill:i,opacity:We,stroke:i,strokeWidth:1.5,cornerRadius:e.cornerRadius});a.setAttr("gaId",e.id),a.on("click tap",u=>{t.isGhostClick(u)||t.opts.onGAClick?.(e.id)}),a.on("mouseenter",()=>{t.container.style.cursor="pointer"}),a.on("mouseleave",()=>{t.container.style.cursor="default"}),t.bgLayer.add(a);let l=at(e.points,e.holes),c=t.sections.find(u=>Y(l,u.outline,u.holes)),d=xt(t,t.bgLayer,e.displayLabel??e.label,l.x,l.y-8,s,dr,!1),h=xt(t,t.bgLayer,`cap ${e.capacity}`,l.x,l.y+10,s,ur,!1);t.freeTextById.set(`${e.id}:label`,{objectId:e.id,node:d,background:r,kind:"ga-label",categoryKey:e.categoryKey}),t.freeTextById.set(`${e.id}:capacity`,{objectId:e.id,node:h,background:r,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:a,effectiveBackground:r,...c?{sectionId:c.logicalId}:{}})}function xt(t,e,i,n,r,o,s,a){let l=new li.Text({x:n,y:r,text:i,fontSize:s,fontStyle:a?"700":"500",fontFamily:t.labelFont(),fill:o,listening:!1,perfectDrawEnabled:!1});return l.offsetX(l.width()/2),l.offsetY(l.height()/2),e.add(l),l}function wo(t,e){let i=[],n=e.theme.background??"#0e1117",r=new Map,o=(c,d)=>{let h=r.get(c)??[];h.push(d),r.set(c,h)};for(let c of e.seats){if(c.kind==="booth")continue;let d=c.logicalRowId??c.rowId;o(d,c),d!==c.rowId&&o(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 u=c.segmentedRow&&!d?c.segmentedRow.groupId:c.id,m=(r.get(u)??[]).slice().sort((R,S)=>s(R)-s(S));if(!m.length)continue;let b=m[0],f=m[m.length-1],p=h?.labelStyle,g=J(n,p?.color??e.theme.rowLabelColor??e.theme.textColor??"#e6e9f0",Vt),v=p?.size??12,y=h?.rotation??0,x=c.segmentedRow?.displayLabel??c.displayLabel??c.label,I=e.objectFilteredOut(c)?.15:1,k=e.seatSection.get(b.id),w=k?[...new Set([k.id,k.logicalId,k.zone].filter(R=>!!R))]:void 0,M=(R,S,L)=>i.push({text:x,x:R,y:S,rotation:y,fontSize:v,ink:g,opacity:I,...w?.length?{focusKeys:w}:{},...L?{automaticAway:L}:{}});if(h?.position){M(h.position.x,h.position.y);continue}let C=e.seatR+12,T=h?.positionPreset??"start";if(T==="start"||T==="both"){let R=c.rotation*Math.PI/180,S={x:-Math.cos(R),y:-Math.sin(R)};M(b.x+S.x*C,b.y+S.y*C,S)}if(T==="end"||T==="both"){let R=(c.rotation+c.curve)*Math.PI/180,S={x:Math.cos(R),y:Math.sin(R)};M(f.x+S.x*C,f.y+S.y*C,S)}}let a=(e.seatR+12)*2.2,l=[];for(let c of i){let d=l.find(h=>h.text===c.text&&Math.hypot(h.x-c.x,h.y-c.y)<=a);if(d){d.x=(d.x+c.x)/2,d.y=(d.y+c.y)/2;continue}l.push(c)}return l}function rn(t,e,i=ee){let n=t.rotation()*Math.PI/180,r=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),s=(t.width()*r+t.height()*o)/2+i,a=(t.width()*o+t.height()*r)/2+i;return{x:e.x-s,y:e.y-a,width:s*2,height:a*2}}function Io(t,e,i,n){let r={x:e.x,y:e.y},o=e.automaticAway;if(!o)return r;let s={x:-o.y,y:o.x},a=Math.max(7,Math.min(16,e.fontSize*.75)),l=[{x:0,y:0}];for(let u=1;u<=4;u++){let m=a*u;l.push({x:s.x*m,y:s.y*m},{x:-s.x*m,y:-s.y*m},{x:o.x*m,y:o.y*m},{x:(o.x+s.x)*m,y:(o.y+s.y)*m},{x:(o.x-s.x)*m,y:(o.y-s.y)*m})}let c=r,d=1/0,h=1/0;for(let u of l){let m={x:r.x+u.x,y:r.y+u.y},b=rn(t,m),p=(n?Kt(n,b,{mode:"overlap"}).length:0)+i.collisionCount(b),g=Math.hypot(u.x,u.y);if((p<d||p===d&&g<h)&&(c=m,d=p,h=g),p===0)break}return c}function Lo(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(le(e.outlineTint,.5)),e.outlinePoly.fill(le(e.outlineTint,.08)),e.outlinePoly.strokeWidth(1.75),e.outlinePoly.shadowOpacity(0);return}let n=zt("#f4b740","#ef4444",i);e.outlinePoly.stroke(le(n,.72+i*.25)),e.outlinePoly.fill(le(n,.08+i*.13)),e.outlinePoly.strokeWidth(2+i*3.5),e.outlinePoly.shadowColor(n),e.outlinePoly.shadowBlur(4+i*12),e.outlinePoly.shadowOpacity(.25+i*.45)}function on(t,e){return t.closedSections.has(e.id)||t.closedSections.has(e.logicalId)||e.zone!=null&&t.closedSections.has(e.zone)}function sn(t,e){return on(t,e)?"closed":e.total<=0?"normal":e.free<=0?"sold-out":e.free<=e.total*Wr?"nearly-gone":"normal"}function To(t,e){let i=sn(t,e);e.blockPoly.fill(Ze(he(t.canvasBackground),i)),e.subLabel.text(i==="sold-out"?oe("map.soldOut"):oe("map.seatsLeft",{count:e.free})),e.subLabel.offsetX(e.subLabel.width()/2)}function Co(t,e){let i,n;t.reducedMotion?(i=e<=Le?1:0,n=e<=$e?1:0):(i=V((qe-e)/(qe-Le),0,1),n=V((Le-e)/(Le-$e),0,1)),(t.floorOverview||t.focusedSectionId)&&(i=0,n=0);let r=!t.floorOverview&&!t.focusedSectionId&&e<se;r&&(i=1),t.zones.length||(n=0);let o=t.viewMode==="perspective"&&t.glideInProgress&&t.seatCount>2500;t.seatLayer.opacity(r||o?0:1-i);let s=t.stageScaleX,a=!t.glideInProgress&&(t.lodScale===0||Math.abs(e-t.lodScale)/(t.lodScale||1)>.08);a&&t.setLodScale(e);let l=t.focusedSectionId,c=he(t.canvasBackground),d=V((i-.2)/.8,0,1);for(let u of t.sections){let m=t.hasFocusDimOverlay?1:l&&u.id!==l&&u.logicalId!==l&&u.zone!==l?St:1;u.outlinePoly.opacity(r?0:(1-i)*m),u.blockPoly.opacity(Gr*i*m),u.blockPoly.stroke(c.sectionStroke),u.blockPoly.strokeWidth(Jt/Math.max(s,1e-4));let b=u.blockPoly.fill(),f=J(typeof b=="string"?b:u.baseFill,u.preferredInk);u.nameLabel.fill(f),u.subLabel.fill(f),a&&d>.01&&Qa(t,u,s),u.nameLabel.opacity(u.nameLabelFits?d*(1-n)*m:0),u.subLabel.opacity(0)}let h=n*(1-t.isoT);for(let u of t.zones)u.back.opacity(h),u.label.opacity(h),u.sub&&u.sub.opacity(h),a&&Ja(t,u,s);if(!t.glideInProgress&&(d>.01||h>.01)){Za(t,s),$a(t.sections);for(let u of t.zones){let m=u.label.opacity();u.back.opacity(m),u.sub&&u.sub.opacity(m)}}t.bgLayer.batchDraw()}function $a(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 n=i.filter(r=>r.nameLabel.opacity()>.05).sort((r,o)=>{let s=U(r.outline),a=U(o.outline);return a.width*a.height-s.width*s.height});for(let r of n.slice(1))r.nameLabel.opacity(0)}}function Za(t,e){let n=[],r=a=>{let l=t.worldToScreen({x:a.x(),y:a.y()}),c=U(ni({x:0,y:0},a.width()*e,a.height()*e,a.rotation()));return{x:l.x-c.width/2,y:l.y-c.height/2,w:c.width,h:c.height}};for(let a of t.zones){if(a.label.opacity()<=.05)continue;let l=t.worldToScreen(a.anchor),c=a.back.width()*e,d=a.back.height()*e;n.push({node:a.label,tier:0,section:!1,box:{x:l.x-c/2,y:l.y-d/2,w:c,h:d}})}for(let a of t.sections)a.nameLabel.opacity()>.05&&n.push({node:a.nameLabel,tier:1,section:!0,area:a.labelArea,box:r(a.nameLabel)});if(n.length<2)return;n.sort((a,l)=>a.tier-l.tier||(l.area??0)-(a.area??0)||a.box.y-l.box.y||a.box.x-l.box.x);let o=[],s=a=>o.some(l=>a.x<l.x+l.w+4&&l.x<a.x+a.w+4&&a.y<l.y+l.h+4&&l.y<a.y+a.h+4);for(let a of n){if(!s(a.box)){o.push(a.box);continue}let l=!1;if(a.section){let c=a.node.fontSize(),d=a.node.y();for(let h of Hr){let u=c*h;if(u*e<Qi)break;wt(a.node,u,d);let m=r(a.node);if(!s(m)){o.push(m),l=!0;break}}l||wt(a.node,c,d)}l||a.node.opacity(0)}}function wt(t,e,i){t.fontSize(Math.max(1,e)),t.offsetX(t.width()/2),t.offsetY(t.height()/2),t.y(i)}function Qa(t,e,i){e.subLabelFits=!1;let n=Math.min(1,Math.max(.66,t.stageWidth/900)),r=Nr*e.labelScale*n,o=Math.min(Qi*e.labelScale,r);for(let s=r;s>=o;s-=1)for(let a of[0,-90]){e.nameLabel.rotation(a),wt(e.nameLabel,s/i,e.nameLabel.y());for(let l of e.labelAnchors){e.nameLabel.position(l);let c=8/i;if(ri(l,e.nameLabel.width()+c,e.nameLabel.height()+c,a,e.outline,e.holes)){e.nameLabelFits=!0;return}}}e.nameLabel.position(e.centroid),e.nameLabel.rotation(0),e.nameLabelFits=!1}function Ja(t,e,i){let n=Math.min(1,Math.max(.66,t.stageWidth/900)),r=10*n/i,o=6*n/i,s=e.sub?3*n/i:0;wt(e.label,ei*n/i,e.anchor.y),e.sub&&wt(e.sub,Vr*n/i,e.anchor.y);let a=Math.max(e.label.width(),e.sub?.width()??0)+r*2,l=e.label.height()+(e.sub?s+e.sub.height():0)+o*2;e.label.y(e.anchor.y-(e.sub?(s+e.sub.height())/2:0)),e.sub&&e.sub.y(e.anchor.y+(e.label.height()+s)/2),e.back.position(e.anchor),e.back.size({width:a,height:l}),e.back.offset({x:a/2,y:l/2}),e.back.cornerRadius(7*n/i),e.back.strokeWidth(1/i);let c=e.back.getAbsolutePosition(),d=62+l*i/2;if(c.y<d){let h=(d-c.y)/i;e.label.y(e.label.y()+h),e.sub&&e.sub.y(e.sub.y()+h),e.back.y(e.back.y()+h)}}var Mo=require("konva/lib/Group"),an=require("konva/lib/shapes/Line"),Po=require("konva/lib/shapes/Rect"),ln=require("konva/lib/shapes/Text");function Ro(t){let e=t.exportMode?Math.max(t.effScale(),ue):t.effScale(),i=e>=ue;for(let[o,s]of t.boothLabelById){let a=t.circleById.get(o);s.visible(Ie(s.fontSize(),e)&&!!a?.isVisible()&&t.focusedSeatOpacity(o,a?.getAbsoluteOpacity()??1)>=.5)}t.labelGroup.destroyChildren(),t.labelLiftGroups.clear(),t.seatLabelById.clear();let n=0;if(i)for(let o of t.visibleSeatCandidates()){if(o.kind==="booth")continue;let s=t.worldToScreen(o);if(s.x<-20||s.x>t.stage.width()+20||s.y<-20||s.y>t.stage.height()+20||t.accessGlyphById.has(o.id)&&t.accessGlyphShouldShow(o.id))continue;let a=t.circleById.get(o.id);if(!a?.isVisible()||t.focusedSeatOpacity(o.id,a.getAbsoluteOpacity())<.5)continue;let l=t.statusById.get(o.id)??"free",c=t.renderedSeatPoint(o),d=t.viewMode==="perspective"?t.perspectiveSeatScale.get(o.id)??1:1;if(l==="booked"||l==="held"&&!t.ownedHold.has(o.id)&&!t.opts.manageMode){let f=new Mo.Group({x:c.x,y:c.y,listening:!1});if(f.scale({x:d,y:d}),l==="held"?(f.add(new Po.Rect({x:-4.2,y:-.7,width:8.4,height:6.5,cornerRadius:1.3,stroke:"#ffffff",strokeWidth:1.25,listening:!1})),f.add(new an.Line({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:"#ffffff",strokeWidth:1.2,lineCap:"round",lineJoin:"round",listening:!1}))):f.add(new an.Line({points:[-4.2,4.2,4.2,-4.2],stroke:"#ffffff",strokeWidth:1.8,lineCap:"round",listening:!1})),t.seatLabelContainer(o.id).add(f),++n>=Zi)break;continue}let u=ye*t.seatLabelScale(o),m=new ln.Text({x:c.x,y:c.y,text:Ht(o.displayLabel??o.label),fontSize:u,fontStyle:"600",fontFamily:t.labelFont(),fill:a?t.seatLabelInk(o,a):t.seatPreferredLabelInk(o),listening:!1,perfectDrawEnabled:!1}),b=t.seatR*2-3;if(m.width()>b&&m.fontSize(Math.max(bt,u*b/m.width())),m.width()>b+.01){m.destroy();continue}if(!Ie(m.fontSize(),e)){m.destroy();continue}if(m.offsetX(m.width()/2),m.offsetY(m.height()/2),m.scale({x:d,y:d}),t.seatLabelContainer(o.id).add(m),t.seatLabelById.set(o.id,m),++n>=Zi)break}let r=new Qe;for(let{node:o}of t.freeTextById.values()){if(!o.isVisible())continue;let s=o.getClientRect({relativeTo:t.bgLayer,skipShadow:!0,skipStroke:!0});r.insert({x:s.x-ee,y:s.y-ee,width:s.width+ee*2,height:s.height+ee*2})}for(let o of t.rowLabelPlan){let s=t.focusedSectionId!=null&&o.focusKeys?.includes(t.focusedSectionId),a=s?Math.max(o.fontSize,Dr/Math.max(e,1e-4)):o.fontSize;if(!s&&!Ie(a,e))continue;let l=t.worldToScreen({x:o.x,y:o.y});if(l.x<-40||l.x>t.stage.width()+40||l.y<-40||l.y>t.stage.height()+40)continue;let c=new ln.Text({x:o.x,y:o.y,text:o.text,fontSize:a,fontStyle:"700",fontFamily:t.labelFont(),fill:o.ink,rotation:o.rotation,opacity:o.opacity,shadowColor:"#05070c",shadowBlur:o.ink.toLowerCase()==="#ffffff"?5:0,shadowOpacity:o.ink.toLowerCase()==="#ffffff"?.8:0,shadowForStrokeEnabled:!1,listening:!1,perfectDrawEnabled:!1});c.offsetX(c.width()/2),c.offsetY(c.height()/2);let d=t.resolveAutomaticRowLabelPosition(c,o,r);c.position(d),c.setAttr("rowLabel",!0),r.insert(t.rowLabelBox(c,d)),t.labelGroup.add(c)}t.isoT>0&&t.viewMode!=="perspective"&&t.applyUprightLabels(),t.overlayLayer.batchDraw()}function It(t){return{th:Zt*Math.PI/180*t.isoT,sg:1-(1-yt)*t.isoT}}function Eo(t,e){let{th:i,sg:n}=It(e),r=e.centre,o=t.x-r.x,s=t.y-r.y,a=o*Math.cos(i)-s*Math.sin(i),l=(o*Math.sin(i)+s*Math.cos(i))*n;return{x:r.x+a,y:r.y+l}}function Ao(t,e){let{th:i,sg:n}=It(e),r=e.centre,o=t.x-r.x,a=(t.y-r.y)/n,l=o*Math.cos(i)+a*Math.sin(i),c=-o*Math.sin(i)+a*Math.cos(i);return{x:r.x+l,y:r.y+c}}function Bo(t,e){let{th:i,sg:n}=It(e),r=t*e.isoT;return{x:-(r/n)*Math.sin(i),y:-(r/n)*Math.cos(i)}}function Oo(t,e,i){let n=kr(e);t.offset(i),t.position(re(e,i)),t.rotation(n.rotationDeg),t.scale({x:n.scaleX,y:n.scaleY}),t.skewX(n.skewX),t.skewY(0)}function Fo(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 Do(t,e){let i=Math.hypot(e.x-t.surfaceFocal.x,e.y-t.surfaceFocal.y),n=Math.max(0,i-t.frontDistanceWorld);return t.liftWorld+n*Math.tan(t.rakeDeg*Math.PI/180)}function _o(t,e,i){return t.perspectiveAffine?re(t.perspectiveAffine,e):re(i,e)}function zo(t,e){return e?re(e,t):t}function Go(t,e){let i=0;for(let h of t.seats){let u=Math.max(0,(h.eyeHeightM??j)-j);i=Math.max(i,u*De)}for(let h of t.objects)h.type==="section"&&(i=Math.max(i,xe(h,{floorBaseHeightM:t.floorBaseHeightMFor(h.id)}).height*De));let n=yr(t.bounds,i),r=Ut(n,n.target),o=Sr(r);e.seatLocal.clear(),e.seatProjected.clear(),e.seatDepth.clear(),e.seatScale.clear();let s=1/0,a=1/0,l=-1/0,c=-1/0;for(let h of t.seats){let u=Math.max(0,(h.eyeHeightM??j)-j),m=ie(n,h,u*De),b={x:m.x,y:m.y};e.seatProjected.set(h.id,b),e.seatLocal.set(h.id,re(o,b)),e.seatDepth.set(h.id,m.depth),e.seatScale.set(h.id,m.scale),s=Math.min(s,m.x),a=Math.min(a,m.y),l=Math.max(l,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 u=ie(n,h,0);s=Math.min(s,u.x),a=Math.min(a,u.y),l=Math.max(l,u.x),c=Math.max(c,u.y)}let d=Math.max(24,t.seatR*3);return{camera:n,baseAffine:r,baseInverse:o,bounds:Number.isFinite(s)?{x:s-d,y:a-d,width:Math.max(1,l-s+d*2),height:Math.max(1,c-a+d*2)}:null}}function No(t,e,i){let n=i?[...i].map(r=>t.seatById.get(r)).filter(r=>!!r):e?t.seats:[...t.perspectiveAppliedSeats].map(r=>t.seatById.get(r)).filter(r=>!!r);for(let r of n){if(e&&t.perspectiveAppliedSeats.has(r.id))continue;let o=e?t.perspectiveSeatProjected.get(r.id)??r:r,s=e?t.perspectiveSeatScale.get(r.id)??1:1,a=t.circleById.get(r.id);a?.position(o),a?.scale({x:s,y:s});let l=t.accessRingById.get(r.id);l?.position(o),l?.scale({x:s,y:s});let c=t.accessGlyphById.get(r.id);if(c){let h=t.seatR*1.5/ce;c.position(o),c.scale({x:h*s,y:h*s})}let d=t.boothLabelById.get(r.id);d?.position(o),d?.scale({x:s,y:s}),e&&t.perspectiveAppliedSeats.add(r.id)}e||t.perspectiveAppliedSeats.clear()}function cn(t){return t?.getAttr?.("seatId")??void 0}var Tt=class Tt{constructor(e,i={}){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.circleById=new Map;this.boothDims=new Map;this.boothLabelById=new Map;this.seatLabelById=new Map;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.theme={};this.canvasBackground=nn;this.effSelection=kt;this.colorblind=!1;this.cbHueByKey=new Map;this.rowLabelPlan=[];this.catOrder=[];this.selection=new Set;this.selectionMarkers=new Map;this.ownedHold=new Set;this.selectionFocusId=null;this.hoveredId=null;this.focusedId=null;this.accessFilter=null;this.categoryHighlight=null;this.categoryFilter=null;this.commercialLimitedFilter=!1;this.sections=[];this.zones=[];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.focusBackdrop=null;this.focusDimOverlay=null;this.objectFloor=new Map;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.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.fitScale=1;this.seatR=mt;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.rafId=0;this.frames=0;this.lastFpsAt=0;this.recacheTimer=null;this.resizeObs=null;this.viewChangeRaf=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 n=this.focusedId?this.nearestSeat(this.focusedId,i):this.seats[0]?.id??null;n&&this.focusSeat(n);return}if((e.key==="Enter"||e.key===" ")&&this.focusedId){e.preventDefault(),this.toggleSeat(this.focusedId);let n=this.seatById.get(this.focusedId);n&&this.opts.onFocusSeat?.(n)}};this.container=e,this.opts={maxSelection:10,selectableStatuses:["free"],...i},this.exportMode=i.exportMode===!0,this.currency=i.currency;let n=Lt.Konva.pixelRatio;this.exportMode&&(this.dpr=1),Lt.Konva.pixelRatio=this.dpr,this.stage=new Ho.Stage({container:e,width:e.clientWidth||1,height:e.clientHeight||1,draggable:!1}),this.gestures=new oi(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",oe("map.aria")),e.addEventListener("keydown",this.onKeyDown)),this.bgLayer=new ci.Layer({listening:!this.exportMode}),this.seatLayer=new ci.Layer({listening:!this.exportMode}),this.overlayLayer=new ci.Layer({listening:!1}),this.labelGroup=new Te.Group({listening:!1}),this.overlayLayer.add(this.labelGroup),this.fgDecorGroup=new Te.Group({listening:!1}),this.overlayLayer.add(this.fgDecorGroup),this.hoverRing=new ve.Circle({radius:mt+2,stroke:"#ffffff",strokeWidth:2,opacity:.85,listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),this.overlayLayer.add(this.hoverRing),this.focusRing=new ve.Circle({radius:mt+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&&(Lt.Konva.pixelRatio=n),this.exportMode||(this.wireInteraction(),this.startFpsLoop()),!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 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()}}setChart(e,i){if(e!==this.chartDoc&&(this.stacked=!1,this.floorOverview=!1),this.cancelAssetLoads(),this.chartDoc=e,this.activeFloorId=i?.floorId??Ge(e)[0].id,this.objectFloor.clear(),e.floors&&e.floors.length>1)for(let r of e.floors)for(let o of r.objects)this.objectFloor.set(o.id,r.id),o.type==="section"&&o.logicalSectionId&&this.objectFloor.set(o.logicalSectionId,r.id);let n=this.floorView(e);this.focusedId=null,this.focusRing.visible(!1),this.bgLayer.destroyChildren(),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.fgDecorGroup.destroyChildren(),this.circleById.clear(),this.boothDims.clear(),this.boothLabelById.clear(),this.seatLabelById.clear(),this.accessRingById.clear(),this.accessGlyphById.clear(),this.freeTextById.clear(),this.iconNodeById.clear(),this.primaryFocalLabels.clear(),this.gaById.clear();for(let r of this.selectionMarkers.values())r.destroy();this.selectionMarkers.clear(),this.ownedHold.clear(),this.selectionFocusId=null,this.statusById.clear(),this.selection.clear(),this.seatById.clear(),this.seatIndex=null,this.cached=!1,this.accessFilter=null,this.sections=[],this.zones=[],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=n.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=V(this.theme.seatScale??1,.7,1.6)*mt,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.catPrice.clear(),this.catOrder=e.categories.map(r=>r.key),this.cbHueByKey.clear(),[...this.catOrder].sort().forEach((r,o)=>{this.cbHueByKey.set(r,ii[o%ii.length])});for(let r of e.categories)this.catColor.set(r.key,r.color),typeof r.price=="number"&&this.catPrice.set(r.key,r.price);for(let r of n.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(o=>({x:o.x,y:o.y}))}:{}});this.seats=be(n,{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=gr(this.seats,{seatRadius:this.seatR}),this.bounds=Dt(n),this.isoCentre={x:this.bounds.x+this.bounds.width/2,y:this.bounds.y+this.bounds.height/2},this.buildPerspectiveProjection(n),this.renderBackground(n),this.unsectionedSeatGroup=new Te.Group({listening:!this.exportMode}),this.seatLayer.add(this.unsectionedSeatGroup),this.renderSeats(),this.buildRowLabelPlan(n),this.overlayLayer.add(this.labelGroup),this.overlayLayer.add(this.fgDecorGroup),this.overlayLayer.add(this.hoverRing),this.overlayLayer.add(this.focusRing),this.zoomToFit()}floorView(e){if(!e.floors||!e.floors.length)return{...e,referenceImage:void 0,backgroundImage:Xe(e)};if(this.floorOverview&&e.floors.length>=2)return{...zi(e),referenceImage:void 0,backgroundImage:Xe(e)};if(this.stacked&&e.floors.length>=2)return{..._i(e),referenceImage:void 0,backgroundImage:Xe(e)};let i=e.floors.find(n=>n.id===this.activeFloorId)??e.floors[0];return{...e,objects:i.objects,focalPoint:i.focalPoint,referenceImage:void 0,backgroundImage:Xe(i),floors:void 0}}floorBaseHeightMFor(e){let i=this.chartDoc?.floors;if(!i?.length)return 0;let n=this.stacked&&e?this.objectFloor.get(e)??this.activeFloorId:this.activeFloorId;return i.find(r=>r.id===n)?.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}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?Ge(this.chartDoc).map(e=>({id:e.id,name:e.name})):[]}getActiveFloorId(){return this.activeFloorId}setStatus(e,i){let n=!1,r=this.hasSections?new Set:null;for(let o of e){if(!this.statusById.has(o))continue;let s=this.statusById.get(o);this.statusById.set(o,i);let a=this.circleById.get(o);if(a&&(this.paintSeat(a,o),n=!0),r){let l=this.seatSection.get(o);l&&(s==="free"!=(i==="free")&&(l.free+=i==="free"?1:-1),r.add(l))}}if(r&&r.size){for(let o of r)this.refreshSectionFill(o);this.bgLayer.batchDraw()}n&&(this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>ue&&this.updateLabels())}setSeatCategories(e){let i=!1,n=new Set;for(let[o,s]of Object.entries(e)){let a=this.seatById.get(o);if(!a||!this.catColor.has(s)||a.categoryKey===s)continue;a.categoryKey=s;let l=this.circleById.get(o);l&&(this.paintSeat(l,o),i=!0);let c=this.seatSection.get(o);c&&n.add(c)}if(!i)return;let r=new Map((this.chartDoc?Ge(this.chartDoc):[]).flatMap(o=>o.objects).filter(o=>o.type==="section").map(o=>[o.id,o]));for(let o of n){if(!r.get(o.id)?.color){let a=new Map;for(let l of o.memberIds){let c=this.seatById.get(l)?.categoryKey;c&&a.set(c,(a.get(c)??0)+1)}o.baseFill=ji([...a].map(([l,c])=>({hex:this.catColor.get(l)??"#6e7bff",w:c})),"#3a4358")}this.refreshSectionFill(o)}n.size&&this.bgLayer.batchDraw(),this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>ue&&this.updateLabels()}setOwnedHold(e){let i=new Set((e??[]).filter(r=>this.statusById.has(r))),n=new Set([...this.ownedHold,...i]);this.ownedHold=i;for(let r of n){let o=this.circleById.get(r);o&&this.paintSeat(o,r),this.syncSelectionMarker(r)}n.size&&(this.cached?(this.recacheTimer&&clearTimeout(this.recacheTimer),this.recacheTimer=setTimeout(()=>this.cacheSeatLayer(),150)):this.seatLayer.batchDraw(),this.effScale()>ue&&this.updateLabels(),this.overlayLayer.batchDraw())}setSelectionFocus(e){let i=e&&this.selection.has(e)?e:null;if(i===this.selectionFocusId)return;let n=this.selectionFocusId;this.selectionFocusId=i;for(let r of this.seats){let o=this.circleById.get(r.id);o&&this.paintSeat(o,r.id)}n&&this.syncSelectionMarker(n),i&&this.syncSelectionMarker(i);for(let[r,o]of this.selectionMarkers)o.opacity(!i||r===i?1:.2);this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.overlayLayer.batchDraw()}getStatus(e){return this.statusById.get(e)??"free"}getSelection(){let e=[];for(let i of this.selection){let n=this.seatById.get(i);n&&e.push(n)}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 n of e){if(this.selection.has(n)||!this.isSelectable(n))continue;if(this.selection.size>=this.opts.maxSelection){this.opts.onSelectionLimit?.(this.opts.maxSelection);break}this.setSelected(n,!0,!0);let r=this.seatById.get(n);r&&i.push(r)}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(n=>!this.isSelectable(n));i.length&&this.deselect(i),!e.manageMode&&this.selection.size&&this.clearSelection(),this.container.style.cursor="default",this.overlayLayer.batchDraw()}setSectionHeat(e){this.sectionHeat.clear();for(let[i,n]of Object.entries(e??{}))Number.isFinite(n)&&this.sectionHeat.set(i,Math.max(0,Math.min(1,n)));for(let i of this.sections)this.refreshSectionHeat(i);this.bgLayer.batchDraw()}deselect(e){let i=!1;for(let n of e)this.selection.has(n)&&(this.setSelected(n,!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),n=[];for(let r of this.seats)i.has(r.label)&&this.isSelectable(r.id)&&n.push(r.id);return this.selectMany(n)}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=[],n=new Set;for(let r of this.sections)if(!(r.id!==e&&r.logicalId!==e&&r.zone!==e))for(let o of r.memberIds){if(n.has(o)||(n.add(o),!this.isSelectable(o)))continue;let s=this.seatById.get(o);s&&i.push(s)}return i}selectMany(e){let i=e.filter(r=>!this.selection.has(r));if(!i.length)return this.getSelection();let n=this.selection.size+i.length<=_r;for(let r of i)if(n)this.setSelected(r,!0,!0);else{this.selection.add(r);let o=this.circleById.get(r);o&&this.paintSeat(o,r)}return this.cached||this.seatLayer.batchDraw(),this.overlayLayer.batchDraw(),this.getSelection()}beginMarquee(e){let i=this.screenToWorld(e),n=this.stage.scaleX()||1,r=new Ee.Rect({x:i.x,y:i.y,width:0,height:0,stroke:this.effSelection,strokeWidth:1.5/n,dash:[5/n,4/n],fill:"rgba(110,123,255,0.10)",listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});this.overlayLayer.add(r),this.marquee={start:i,rect:r},this.marqueeCur=i,this.overlayLayer.batchDraw()}updateMarquee(e){if(!this.marquee)return;let i=this.screenToWorld(e),{start:n,rect:r}=this.marquee;r.setAttrs({x:Math.min(n.x,i.x),y:Math.min(n.y,i.y),width:Math.abs(i.x-n.x),height:Math.abs(i.y-n.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 n=Math.min(e.start.x,i.x),r=Math.max(e.start.x,i.x),o=Math.min(e.start.y,i.y),s=Math.max(e.start.y,i.y),a=this.stage.scaleX()||1;if((r-n)*a<4&&(s-o)*a<4){this.selection.size&&(this.clearSelection(),this.opts.onMarquee?.([]));return}let l=[];for(let c of this.seats){let d=this.renderedSeatPoint(c);d.x<n||d.x>r||d.y<o||d.y>s||this.isSelectable(c.id)&&l.push(c.id)}this.selectMany(l),this.opts.onMarquee?.(this.getSelection())}flashSeat(e,i="#f43f5e"){let n=this.seatById.get(e);if(!n)return;let r=this.renderedSeatPoint(n),o=new ve.Circle({x:r.x,y:r.y,radius:this.seatR,stroke:i,strokeWidth:3,opacity:.9,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1}),s=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e)??1:1;o.scale({x:s,y:s}),this.overlayLayer.add(o);let a=performance.now(),l=620,c=d=>{if(!o.getLayer())return;let h=Math.min(1,(d-a)/l);o.radius(this.seatR*(1+h*1.8)),o.opacity(.9*(1-h)),this.overlayLayer.batchDraw(),h<1?requestAnimationFrame(c):(o.destroy(),this.overlayLayer.batchDraw())};requestAnimationFrame(c)}flashSection(e,i="#22a06b"){let n=this.sections.filter(r=>r.id===e||r.zone===e);if(n.length)for(let r of n){let o=this.viewMode==="perspective"&&r.perspectiveAffine?r.outline.map(u=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,u))):r.outline.map(u=>{let m=r.liftWorld>0?this.isoLiftLocal(r.liftWorld):{x:0,y:0};return{x:u.x+m.x,y:u.y+m.y}}),s=o.reduce((u,m)=>({x:u.x+m.x,y:u.y+m.y}),{x:0,y:0});s.x/=o.length,s.y/=o.length;let a=new et.Line({x:s.x,y:s.y,points:o.flatMap(u=>[u.x-s.x,u.y-s.y]),closed:!0,stroke:i,strokeWidth:3,strokeScaleEnabled:!1,opacity:.92,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!0,shadowColor:i,shadowBlur:14,shadowOpacity:.7});this.overlayLayer.add(a),this.overlayLayer.batchDraw();let l=()=>{a.getLayer()&&(a.destroy(),this.overlayLayer.batchDraw())};if(this.reducedMotion||typeof document<"u"&&document.hidden){setTimeout(l,520);continue}let c=performance.now(),d=820,h=u=>{if(this.destroyed||!a.getLayer())return;let m=Math.min(1,(u-c)/d),f=1+(1-Math.pow(1-m,3))*.04;a.scale({x:f,y:f}),a.opacity(.92*(1-m)),this.overlayLayer.batchDraw(),m<1?requestAnimationFrame(h):l()};requestAnimationFrame(h)}}nearestSeat(e,i){let n=this.seatById.get(e);if(!n)return null;let r=this.viewMode==="perspective"?this.perspectiveSeatProjected.get(n.id)??n:n,o=null,s=1/0;for(let a of this.seats){if(a.id===e)continue;let l=this.viewMode==="perspective"?this.perspectiveSeatProjected.get(a.id)??a:a,c=l.x-r.x,d=l.y-r.y,h=c*i.x+d*i.y;if(h<=.5)continue;let u=Math.abs(c*i.y-d*i.x),m=h+u*2.5;m<s&&(s=m,o=a.id)}return o}focusSeat(e){let i=this.seatById.get(e);if(!i)return;this.focusedId=e,this.focusRing.radius(this.seatR+3),this.focusRing.position(this.renderedSeatPoint(i));let n=this.viewMode==="perspective"?this.perspectiveSeatScale.get(e)??1:1;this.focusRing.scale({x:n,y:n}),this.focusRing.visible(!0),this.ensureVisible(i),this.overlayLayer.batchDraw(),this.opts.onFocusSeat?.(i)}ensureVisible(e){let i=this.stage.width(),n=this.stage.height(),r=Math.max(this.stage.scaleX(),Pe*1.2),o=this.worldToScreen(e),s=70,a=o.x<s||o.x>i-s||o.y<s||o.y>n-s;if(this.stage.scaleX()<r||a){let l=this.renderedSeatPoint(e),c=this.viewMode==="perspective"&&this.perspectiveBaseAffine?re(this.perspectiveBaseAffine,l):this.isoT===0?l:this.isoForward(l);this.stage.scale({x:r,y:r}),this.stage.position({x:i/2-c.x*r,y:n/2-c.y*r}),this.afterViewChange(),this.stage.batchDraw()}}zoomToFit(){let e=this.stage.width(),i=this.stage.height(),n=this.viewMode==="perspective"&&this.perspectiveBounds?this.perspectiveBounds:this.bounds;if(this.fitScale=Math.min(e/n.width,i/n.height)||1,this.opts.portraitFitCrop&&!this.exportMode){let o=e/n.width<=i/n.height,s=n.height*this.fitScale;o&&s<.55*i&&(this.fitScale=Math.min(this.fitScale*1.3,.62*i/n.height))}let r=this.fitScale;this.stage.scale({x:r,y:r}),this.stage.position({x:(e-n.width*r)/2-n.x*r,y:(i-n.height*r)/2-n.y*r}),this.afterViewChange(),this.stage.batchDraw()}refitCurrentView(){if(this.focusedSectionId&&this.sectionBounds(this.focusedSectionId)){this.focusRegion(this.focusedSectionId,{animate:!1});return}this.zoomToFit()}zoomIn(){let e={x:this.stage.width()/2,y:this.stage.height()/2};this.zoomAbout(this.stage.scaleX()*Tt.ZOOM_STEP,e)}zoomOut(){let e={x:this.stage.width()/2,y:this.stage.height()/2};this.zoomAbout(this.stage.scaleX()/Tt.ZOOM_STEP,e)}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(),n=e.id,r=typeof n=="string"?this.seatById.get(n):void 0;if(this.viewMode==="perspective"&&this.perspectiveBaseAffine){let a=r?this.perspectiveSeatProjected.get(r.id)??re(this.perspectiveBaseAffine,e):re(this.perspectiveBaseAffine,e);return{x:a.x*i+this.stage.x(),y:a.y*i+this.stage.y()}}let o=r?this.renderedSeatPoint(r):e,s=this.isoT===0?o:this.isoForward(o);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.updateAccessGlyphs(this.effScale());for(let n of this.seats){let r=this.circleById.get(n.id);r&&this.paintSeat(r,n.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((n,r)=>n===e[r])}setCommercialLimitedFilter(e){if(this.commercialLimitedFilter!==e){this.commercialLimitedFilter=e;for(let i of this.seats){let n=this.circleById.get(i.id);n&&this.paintSeat(n,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(!(i===null&&this.categoryFilter===null||i!==null&&this.categoryFilter!==null&&i.size===this.categoryFilter.size&&[...i].every(r=>this.categoryFilter.has(r)))){this.categoryFilter=i;for(let r of this.seats){let o=this.circleById.get(r.id);o&&this.paintSeat(o,r.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.applyGAFilterState()}}gaCategoryDimmed(e){return!!(this.categoryHighlight&&e!==this.categoryHighlight||this.categoryFilter&&!this.categoryFilter.has(e))}applyGAFilterState(){this.paintGAStateForView(),this.updateFreeTextVisibility(),this.bgLayer.batchDraw()}paintGAStateForView(){for(let e of this.gaById.values()){let i=!!(this.categoryFilter&&!this.categoryFilter.has(e.categoryKey)),n=!this.exportMode&&e.sectionId!=null&&this.effScale()<se;e.polygon.opacity(n?0:this.gaCategoryDimmed(e.categoryKey)?We*.08:We),e.polygon.listening(!this.exportMode&&!n&&!i)}}focusCategories(e){if(!e?.length){this.focusRegion(this.bounds,{durationMs:Qt});return}let i=new Set(e),n=this.seats.filter(c=>!i.has(c.categoryKey)||this.seatInClosedSection(c.id)?!1:(this.statusById.get(c.id)??"free")==="free"||this.ownedHold.has(c.id));if(!n.length)return;let r=1/0,o=-1/0,s=1/0,a=-1/0;for(let c of n){let d=this.renderedSeatPoint(c);r=Math.min(r,d.x),o=Math.max(o,d.x),s=Math.min(s,d.y),a=Math.max(a,d.y)}let l=Math.max(24,this.seatR*3);r-=l,o+=l,s-=l,a+=l,this.focusRegion({x:r,y:s,width:Math.max(40,o-r),height:Math.max(40,a-s)},{durationMs:Qt})}setViewMode(e){if(e==="perspective"){if(this.viewMode===e){this.afterViewChange();return}let a=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(a),this.zoomToFit();return}let i=e==="isometric"?1:0,n=this.viewMode==="perspective";if(this.viewMode=e,this.isoTarget=i,this.isoRaf&&(cancelAnimationFrame(this.isoRaf),this.isoRaf=0),n){this.isoT=i,this.applyIso(),this.afterViewChange();return}if(this.reducedMotion){this.isoT=i,this.applyIso(),this.afterViewChange();return}let r=this.isoT;if(r===i){this.applyIso(),this.afterViewChange();return}let o=performance.now(),s=a=>{if(this.destroyed)return;let l=Math.min(1,(a-o)/zr),c=l<.5?4*l*l*l:1-Math.pow(-2*l+2,3)/2;this.isoT=r+(this.isoTarget-r)*c,this.applyIso(),this.scheduleViewChange(),l<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}}isoParams(){return It(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-yt)*this.isoT)}isoForward(e){return Eo(e,this.isoState)}isoInverse(e){return Ao(e,this.isoState)}buildPerspectiveProjection(e){let i=Go({seats:this.seats,objects:e.objects,bounds:this.bounds,seatR:this.seatR,floorBaseHeightMFor:n=>this.floorBaseHeightMFor(n)},{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,n){Oo(e,i,n)}resetContainerTransform(e){Fo(e)}sectionSurfaceHeight(e,i){return Do(e,i)}projectedSectionPoint(e,i){return _o(e,i,this.perspectiveBaseAffine)}perspectiveLocalPoint(e){return zo(e,this.perspectiveBaseInverse)}isoLiftLocal(e){return Bo(e,this.isoState)}resetLayerTransforms(e=!0){let i=e?[this.bgLayer,this.seatLayer,this.overlayLayer]:[this.bgLayer,this.overlayLayer];for(let n of i)n.position({x:0,y:0}),n.offset({x:0,y:0}),n.scale({x:1,y:1}),n.rotation(0),n.skewX(0),n.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 n=this.labelLiftGroups.get(i.id);n&&e&&this.resetContainerTransform(n),i.perspectiveAffine=void 0,i.perspectiveCorrection=void 0,i.perspectiveDepth=void 0}}get seatAnchorContext(){return{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){No(this.seatAnchorContext,e,i)}applyPerspective(e=!0){let i=this.perspectiveCamera,n=this.perspectiveBaseAffine,r=this.perspectiveBaseInverse;if(!i||!n||!r)return;let o=this.seats.length>2500&&this.sections.length>0;this.cached&&!o&&(this.seatLayer.clearCache(),this.seatLayer.listening(!0),this.cached=!1),this.resetLayerTransforms(e),this.resetSectionProjection(e);for(let a of[this.bgLayer,this.overlayLayer])this.setContainerAffine(a,n,i.target);this.perspectiveAppliedSeats.clear(),o||this.applyExactSeatAnchors(!0);for(let a of this.sections){let l=h=>this.sectionSurfaceHeight(a,h),c=Ut(i,a.centroid,l),d=vr(r,c);a.perspectiveAffine=c,a.perspectiveCorrection=d,a.perspectiveDepth=ie(i,a.centroid,l(a.centroid)).depth,this.setContainerAffine(a.liftGroupBg,d,a.centroid);for(let h=0;h<a.sideFaces.length;h++){let u=a.outline[h],m=a.outline[(h+1)%a.outline.length],b=this.perspectiveLocalPoint(ie(i,u,0)),f=this.perspectiveLocalPoint(ie(i,m,0)),p=this.perspectiveLocalPoint(ie(i,m,l(m))),g=this.perspectiveLocalPoint(ie(i,u,l(u)));a.sideFaces[h].points([b.x,b.y,f.x,f.y,p.x,p.y,g.x,g.y]),a.sideFaces[h].opacity(.9)}}let s=[...this.sections].sort((a,l)=>(l.perspectiveDepth??0)-(a.perspectiveDepth??0));for(let a of s)a.rootGroupBg.moveToTop(),a.liftGroupSeat.moveToTop();this.unsectionedSeatGroup?.moveToTop(),this.syncSeatOverlayPositions(),o||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:n}=this.isoParams(),r=Math.cos(i),o=n*Math.sin(i),s=-Math.sin(i),a=n*Math.cos(i),l=Math.sqrt(r*r+o*o),c=r*a-o*s,d=Math.atan2(o,r)*180/Math.PI,h=l,u=c/l,m=(r*s+o*a)/c,b=this.isoCentre;for(let f of[this.bgLayer,this.seatLayer,this.overlayLayer])f.position({x:b.x,y:b.y}),f.offset({x:b.x,y:b.y}),f.rotation(d),f.scaleX(h),f.scaleY(u),f.skewX(m),f.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-yt)*this.isoT),n=this.hasBoothText?[this.bgLayer,this.seatLayer,this.overlayLayer]:[this.bgLayer,this.overlayLayer];for(let r of n){let o=r.find("Text");for(let s of o){let a=s.getAttr("uprightBase");a==null&&(a=s.rotation(),s.setAttr("uprightBase",a)),s.rotation(a-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 n=this.isoLiftLocal(i.liftWorld);i.liftGroupBg?.position(n),i.liftGroupSeat.position(n),this.labelLiftGroups.get(i.id)?.position(n);let r=.9*e;for(let o=0;o<i.sideFaces.length;o++){let s=i.sideFaces[o],a=i.outline[o],l=i.outline[(o+1)%i.outline.length];s.points([a.x,a.y,l.x,l.y,l.x+n.x,l.y+n.y,a.x+n.x,a.y+n.y]),s.opacity(r)}}this.syncSeatOverlayPositions()}destroy(){this.destroyed=!0,this.cancelAssetLoads(),this.rafId&&cancelAnimationFrame(this.rafId),this.isoRaf&&cancelAnimationFrame(this.isoRaf),this.glideRaf&&cancelAnimationFrame(this.glideRaf),this.viewChangeRaf&&cancelAnimationFrame(this.viewChangeRaf),this.recacheTimer&&clearTimeout(this.recacheTimer),this.resizeObs?.disconnect(),this.gestures.detach(),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}focusedSeatOpacity(e,i){if(!this.focusedSectionId)return i;let n=this.seatSection.get(e);return i*(n&&this.sectionMatchesFocus(n)?1:St)}sectionScreenBounds(e){if(this.viewMode==="perspective"&&e.perspectiveAffine){let s=this.stage.scaleX(),a=this.stage.x(),l=this.stage.y();return U(e.outline.map(c=>{let d=this.projectedSectionPoint(e,c);return{x:d.x*s+a,y:d.y*s+l}}))}let i=e.liftWorld>0?this.isoLiftLocal(e.liftWorld):{x:0,y:0},n=this.stage.scaleX(),r=this.stage.x(),o=this.stage.y();return U(e.outline.map(s=>{let a={x:s.x+i.x,y:s.y+i.y},l=this.isoT===0?a:this.isoForward(a);return{x:l.x*n+r,y:l.y*n+o}}))}updateSeatGroupVisibility(){let e=this.exportMode||this.effScale()>=se,i=this.viewMode==="perspective"&&this.glideInProgress&&this.seats.length>2500,n=96,r=this.stage.width(),o=this.stage.height();for(let s of this.sections){let a=!0;if(e){let c=this.sectionScreenBounds(s);a=c.x+c.width>=-n&&c.y+c.height>=-n&&c.x<=r+n&&c.y<=o+n,a&&this.viewMode==="perspective"&&!i&&this.applyExactSeatAnchors(!0,s.memberIds)}s.liftGroupSeat.setViewportCulled(!a),this.labelLiftGroups.get(s.id)?.setViewportCulled(!a)}this.unsectionedSeatGroup&&!this.unsectionedSeatGroup.visible()&&this.unsectionedSeatGroup.visible(!0),e&&this.viewMode==="perspective"&&!i&&this.applyExactSeatAnchors(!0,this.seats.filter(s=>!this.seatSection.has(s.id)).map(s=>s.id))}visibleSeatCandidates(){if(!this.sections.length)return this.seats;let e=[];for(let i of this.sections)if(!i.liftGroupSeat.isViewportCulled())for(let n of i.memberIds){let r=this.seatById.get(n);r&&e.push(r)}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 n=this.isoLiftLocal(i.liftWorld);return{x:e.x+n.x,y:e.y+n.y}}seatLabelContainer(e){let i=this.seatSection.get(e);if(!i)return this.labelGroup;let n=this.labelLiftGroups.get(i.id);return n||(n=new vt({listening:!1}),n.setViewportCulled(i.liftGroupSeat.isViewportCulled()),n.position(this.viewMode==="perspective"?{x:0,y:0}:this.isoLiftLocal(i.liftWorld)),this.labelGroup.add(n),this.labelLiftGroups.set(i.id,n)),n}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 n=this.seatById.get(e);if(n){i.position(this.renderedSeatPoint(n));let r=this.viewMode==="perspective"?this.perspectiveSeatScale.get(n.id)??1:1;i.scale({x:r,y:r})}}}renderSeats(){let e=[...this.seats].sort((i,n)=>(this.perspectiveSeatDepth.get(n.id)??0)-(this.perspectiveSeatDepth.get(i.id)??0));for(let i of e){if(i.kind==="booth"){this.renderBoothUnit(i);continue}let n=this.seatContainer(i.id),r=i.wheelchairSpaceType==="no-seat"?new Ee.Rect({x:i.x,y:i.y,width:this.seatR*2,height:this.seatR*2,offsetX:this.seatR,offsetY:this.seatR,cornerRadius:2,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}):new ve.Circle({x:i.x,y:i.y,radius:this.seatR,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0});if(r.setAttr("seatId",i.id),this.circleById.set(i.id,r),this.paintSeat(r,i.id),n.add(r),i.accessible){if(i.wheelchairSpaceType!=="no-seat"){let o=new ve.Circle({x:i.x,y:i.y,radius:this.seatR+1.5,stroke:Et(i.accessibility),strokeWidth:2.5,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1});this.accessRingById.set(i.id,o),n.add(o)}if(i.accessibility?.includes("wheelchair")&&Ki(i.accessibility)){let o=this.buildAccessGlyph(i,typeof r.fill()=="string"?r.fill():"");this.accessGlyphById.set(i.id,o),n.add(o)}}}}renderBoothUnit(e){let i=this.seatContainer(e.id),n=this.boothDims.get(e.rowId)??{width:40,height:30,rotation:0},r=e.x,o=e.y,s;n.points&&n.points.length>=3?(s=new et.Line({x:e.x,y:e.y,points:n.points.flatMap(l=>[l.x,l.y]),closed:!0,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}),r=e.x+n.points.reduce((l,c)=>l+c.x,0)/n.points.length,o=e.y+n.points.reduce((l,c)=>l+c.y,0)/n.points.length):s=new Ee.Rect({x:e.x,y:e.y,width:n.width,height:n.height,offsetX:n.width/2,offsetY:n.height/2,rotation:n.rotation,cornerRadius:4,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1,hitStrokeWidth:0}),s.setAttr("seatId",e.id),this.circleById.set(e.id,s),i.add(s);let a=new Ce.Text({x:r,y:o,text:e.displayLabel??e.label,fontSize:Ve,fontStyle:"600",fontFamily:this.labelFont(),fill:this.theme.seatLabelColor??si,listening:!1,perfectDrawEnabled:!1});a.offsetX(a.width()/2),a.offsetY(a.height()/2),a.visible(!1),this.hasBoothText=!0,this.boothLabelById.set(e.id,a),i.add(a),this.paintSeat(s,e.id)}buildAccessGlyph(e,i){let n=this.seatR*1.5/ce;return new Vo.Path({x:e.x,y:e.y,data:Ki(e.accessibility??[])??"",offsetX:ce/2,offsetY:ce/2,scaleX:n,scaleY:n,fill:Ui(i),listening:!1,visible:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1})}updateAccessGlyphs(e){if(this.accessGlyphById.size)for(let[i,n]of this.accessGlyphById){let r=this.viewMode==="perspective"?this.perspectiveSeatScale.get(i)??1:1,o=this.seatR*1.5/ce*r,a=this.accessGlyphFilterEmphasized(i)?Br:Ar,l=Math.max(o,a/(ce*Math.max(e,.001)));n.scale({x:l,y:l}),n.visible(this.accessGlyphShouldShow(i))}}accessGlyphFilterEmphasized(e){let i=this.seatById.get(e),n=this.accessFilter;return!!i&&n!==null&&!!i.accessibility?.includes("wheelchair")&&(n.length===0||n.includes("wheelchair"))&&tn(i,n)}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)}seatBaseColor(e){return this.colorblind?this.cbHueByKey.get(e)??ii[0]:this.catColor.get(e)??"#6e7bff"}seatLabelScale(e){return(e.labelStyle?.size??18)/18}seatPreferredLabelInk(e){return e.labelStyle?.color??this.theme.seatLabelColor??si}seatLabelInk(e,i){let n=i.fill();return J(typeof n=="string"?n:"",this.seatPreferredLabelInk(e),Vt)}paintSeat(e,i){let n=this.seatById.get(i),r=this.statusById.get(i)??"free",o=this.selection.has(i),s=this.seatBaseColor(n.categoryKey),a=this.boothLabelById.get(i);switch(e.dash([]),e.strokeWidth(0),e.stroke(""),e.opacity(1),r){case"free":e.fill(o&&this.effSelection===kt?we(s,.28):s);break;case"held":this.ownedHold.has(i)?(e.fill(we(s,this.effSelection===kt?.24:.1)),e.stroke(this.effSelection),e.strokeWidth(3)):e.fill(jr);break;case"booked":this.colorblind?(e.fill("rgba(0,0,0,0)"),e.stroke(ti),e.strokeWidth(1.5),e.opacity(.9)):(e.fill(ti),e.opacity(.45));break;case"not_for_sale":e.fill(ti),e.stroke(Kr),e.strokeWidth(1),e.dash([2,2]);break}if(n.wheelchairSpaceType==="no-seat"&&r==="free"&&(e.stroke(Et(n.accessibility)),e.strokeWidth(o?3:2),e.dash([3,2])),a&&(a.text(r==="booked"?"SOLD":r==="held"?"HELD":n.label),a.fontSize(r==="free"?10:Math.min(10,Math.max(6,this.boothDims.get(n.rowId)?.width??40)/6)),a.fontStyle(r==="free"?"600":"800"),a.fill(r==="free"?this.theme.seatLabelColor??si:"#ffffff"),a.offsetX(a.width()/2),a.offsetY(a.height()/2)),this.accessFilter&&r==="free"&&!o&&!tn(n,this.accessFilter)&&e.opacity(.25),this.categoryHighlight&&r==="free"&&!o&&n.categoryKey!==this.categoryHighlight&&e.opacity(.25),this.categoryFilter&&r==="free"&&!o&&!this.categoryFilter.has(n.categoryKey)&&e.opacity(.22),this.commercialLimitedFilter&&r==="free"&&!o&&(n.commercial?.restrictedView||n.commercial?.obstructedView)&&e.opacity(.22),this.dimmedSections.size){let d=this.seatSection.get(i);(!d&&this.dimmedSections.has(He)||d&&(this.dimmedSections.has(d.id)||this.dimmedSections.has(d.logicalId)||d.zone!=null&&this.dimmedSections.has(d.zone)))&&e.opacity(.18)}this.closedSections.size&&this.seatInClosedSection(i)&&(e.fill(Ur),e.stroke(""),e.strokeWidth(0),e.dash([]),e.opacity(Xr)),this.selectionFocusId&&i!==this.selectionFocusId&&e.opacity(Math.min(e.opacity(),.16));let l=this.boothLabelById.get(i)??this.seatLabelById.get(i);l&&(l.fill(this.seatLabelInk(n,e)),l.visible(Ie(l.fontSize(),this.effScale())&&e.opacity()>=.5));let c=this.accessGlyphById.get(i);if(c){let d=e.fill();c.fill(Ui(typeof d=="string"?d:"")),c.opacity(e.opacity()),c.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 n=this.circleById.get(i.id);n&&this.paintSeat(n,i.id)}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(n=>this.dimmedSections.has(n)))){this.dimmedSections=i;for(let n of this.seats){let r=this.circleById.get(n.id);r&&this.paintSeat(r,n.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(n=>this.closedSections.has(n))||(this.closedSections=i,this.repaintSectionsAndSeats())}focusSection(e){this.sections.some(i=>i.id===e||i.logicalId===e)&&(this.focusedSectionId=e,this.drawFocusBackdrop(e),this.bgLayer.batchDraw(),this.overlayLayer.batchDraw(),this.updateLOD(),this.focusRegion(e))}releaseSectionFocusDim(){!this.focusBackdrop&&!this.focusDimOverlay||(this.focusBackdrop?.destroy(),this.focusBackdrop=null,this.focusDimOverlay?.destroy(),this.focusDimOverlay=null,this.bgLayer.batchDraw(),this.overlayLayer.batchDraw())}clearSectionFocus(){this.focusedSectionId&&(this.focusedSectionId=null,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}drawFocusBackdrop(e){this.focusBackdrop&&(this.focusBackdrop.destroy(),this.focusBackdrop=null);let i=this.sections.filter(r=>r.id===e||r.logicalId===e);if(!i.length)return;let n=new Te.Group({listening:!1});for(let r of i){let o=this.viewMode==="perspective"&&r.perspectiveAffine,s=o?r.outline.map(l=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,l))):r.outline,a=o?r.holes.map(l=>l.map(c=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,c)))):r.holes;n.add(Je(s,a,{fill:Yr,stroke:le("#ffffff",.1),strokeWidth:1,listening:!1},o?void 0:r.outlinePath))}this.bgLayer.add(n),n.moveToTop(),this.focusBackdrop=n,this.drawFocusDimOverlay(i)}drawFocusDimOverlay(e){this.focusDimOverlay?.destroy();let n=Math.max(this.bounds.width,this.bounds.height,1)*4+1e3,r=[{x:this.bounds.x-n,y:this.bounds.y-n},{x:this.bounds.x+this.bounds.width+n,y:this.bounds.y-n},{x:this.bounds.x+this.bounds.width+n,y:this.bounds.y+this.bounds.height+n},{x:this.bounds.x-n,y:this.bounds.y+this.bounds.height+n}],o=new jo.Shape({fill:this.canvasBackground,opacity:1-St,listening:!1,perfectDrawEnabled:!1,sceneFunc:(s,a)=>{let l=c=>{if(c.length){s.moveTo(c[0].x,c[0].y);for(let d=1;d<c.length;d++)s.lineTo(c[d].x,c[d].y);s.closePath()}};s.beginPath(),l(r);for(let c of e){let d=this.viewMode==="perspective"&&c.perspectiveAffine?c.outline.map(h=>this.perspectiveLocalPoint(this.projectedSectionPoint(c,h))):c.outline.map(h=>{let u=c.liftWorld>0?this.isoLiftLocal(c.liftWorld):{x:0,y:0};return{x:h.x+u.x,y:h.y+u.y}});l(ht(d)>0?[...d].reverse():d)}s.fillStrokeShape(a)}});this.overlayLayer.add(o),o.moveToTop();for(let s of this.selectionMarkers.values())s.moveToTop();this.hoverRing.moveToTop(),this.focusRing.moveToTop(),this.focusDimOverlay=o}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)e.blockPoly.fill(this.sectionBlockFill(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,n=-1/0,r=-1/0,o=(s,a)=>{s<e&&(e=s),a<i&&(i=a),s>n&&(n=s),a>r&&(r=a)};for(let s of this.seats)o(s.x,s.y);for(let s of this.sections)for(let a of s.outline)o(a.x,a.y);for(let s of this.gaById.values())for(let a of s.points)o(a.x,a.y);return Number.isFinite(e)?{x:e,y:i,width:Math.max(1,n-e),height:Math.max(1,r-i)}:{x:0,y:0,width:1,height:1}}getMinimapSnapshot(){let e=this.sections.map(i=>{let n=this.isSectionClosed(i)||i.free<=0,r=i.memberIds.some(s=>this.selection.has(s)),o=this.focusedSectionId===i.id||this.focusedSectionId===i.logicalId;return{id:i.logicalId,label:i.label,outline:i.outline.map(s=>({...s})),...this.objectFloor.get(i.id)?{floorId:this.objectFloor.get(i.id)}:{},state:r?"selected":n?"inactive":"available",active:o}});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()}setCategoryHighlight(e){if(this.categoryHighlight!==e){this.categoryHighlight=e;for(let i of this.seats){let n=this.circleById.get(i.id);n&&this.paintSeat(n,i.id)}this.updateLabels(),this.cached?(this.seatLayer.clearCache(),this.cacheSeatLayer()):this.seatLayer.batchDraw(),this.applyGAFilterState()}}renderBackground(e){let i=Xe(e);i&&this.renderBackgroundImage(i);for(let n of e.objects)n.type==="decorImage"&&this.renderDecorImage(n);for(let n of e.objects)n.type==="section"&&this.renderSection(n);this.renderZones(e);for(let n of e.objects)n.type==="shape"?this.renderShape(n):n.type==="gaArea"?this.renderGA(n):n.type==="table"?this.renderTable(n):n.type==="text"&&this.renderText(n)}trackAssetImage(e,i,n,r){let o=this.assetGeneration;/^https?:\/\//i.test(i)&&(e.crossOrigin="anonymous");let s=new Promise(a=>{let l=!1,c=()=>{l||(l=!0,this.assetCancels.delete(d),a())},d=()=>{e.onload=null,e.onerror=null;try{e.removeAttribute("src"),e.src=""}catch{}c()};this.assetCancels.add(d),e.onload=()=>{if(!this.exportMode){o===this.assetGeneration&&r(),c();return}(typeof e.decode=="function"?e.decode():Promise.resolve()).then(()=>{o===this.assetGeneration&&r()}).catch(()=>{o===this.assetGeneration&&this.assetErrors.push(`${n} could not be decoded.`)}).finally(c)},e.onerror=()=>{o===this.assetGeneration&&this.assetErrors.push(`${n} could not be loaded.`),c()},e.src=i});this.assetPromises.push(s)}cancelAssetLoads(){this.assetGeneration++;for(let e of[...this.assetCancels])e();this.assetCancels.clear(),this.assetPromises=[],this.assetErrors=[]}renderBackgroundImage(e){if(!e.url||e.visible===!1)return;let i=new window.Image;this.trackAssetImage(i,e.url,"Buyer background image",()=>{let n=i.naturalWidth||4,r=i.naturalHeight||3,o=e.crop??{x:0,y:0,width:1,height:1},s=Math.max(0,Math.min(.99,o.x)),a=Math.max(0,Math.min(.99,o.y)),l={x:s,y:a,width:Math.max(.01,Math.min(1-s,o.width)),height:Math.max(.01,Math.min(1-a,o.height))},c=e.width,d=c*(r*l.height/(n*l.width)),h=new Wo.Image({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:l.x*n,y:l.y*r,width:l.width*n,height:l.height*r},opacity:e.opacity,listening:!1});this.bgLayer.add(h),h.moveToBottom(),this.bgLayer.batchDraw()})}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,labelFont:()=>this.labelFont(),trackAssetImage:(e,i,n,r)=>this.trackAssetImage(e,i,n,r),isGhostClick:e=>this.isGhostClick(e)}}renderDecorImage(e){yo(this.objectDrawContext,e)}renderTable(e){So(this.objectDrawContext,e)}renderText(e){vo(this.objectDrawContext,e)}renderShape(e){ko(this.objectDrawContext,e)}renderGA(e){xo(this.objectDrawContext,e)}renderSection(e){let i=at(e.outline,e.holes),n=he(this.canvasBackground),r=[],o=new Map,s=0,a=U(e.outline),l=this.seatIndex?Kt(this.seatIndex,a).map(L=>this.seatById.get(L)).filter(L=>!!L):this.seats;for(let L of l)this.seatSection.has(L.id)||Y(L,e.outline,e.holes)&&(r.push(L.id),o.set(L.categoryKey,(o.get(L.categoryKey)??0)+1),(this.statusById.get(L.id)??"free")==="free"&&s++);let c=e.color??ji([...o].map(([L,E])=>({hex:this.catColor.get(L)??"#6e7bff",w:E})),"#3a4358"),d=Wn(e.elevation),h=xe(e,{floorBaseHeightM:this.floorBaseHeightMFor(e.id)}),u=h.height*De,m=new Te.Group({listening:!1});this.bgLayer.add(m);let b=new Te.Group({listening:!1});m.add(b);let f=new vt({listening:!0});this.seatLayer.add(f);let p=[];if(u>0){let L=ge(this.zoneColor.get(e.zone??"")??c,.42);for(let E=0;E<e.outline.length;E++){let O=new et.Line({points:[],closed:!0,fill:L,stroke:le("#000000",.25),strokeWidth:1,opacity:0,listening:!1,perfectDrawEnabled:!1});p.push(O),m.add(O)}}b.moveToTop();let g=b,v=e.color??this.zoneColor.get(e.zone??"")??"#3a4358",y=Je(e.outline,e.holes,{stroke:le(v,.5),strokeWidth:1,fill:le(v,.08),listening:!1},e.outlinePath);g.add(y);let x=Je(e.outline,e.holes,{fill:n.sectionFill,stroke:n.sectionStroke,strokeWidth:Jt,opacity:0,listening:!1},e.outlinePath);g.add(x);let I=e.labelPresentation?.labelStyle,k=I?.color??n.sectionInk,w=(I?.size??18)/18,M=new Ce.Text({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:22*w,fontStyle:"700",fontFamily:this.labelFont(),fill:J(n.sectionFill,k),listening:!1,perfectDrawEnabled:!1});M.offsetX(M.width()/2),M.offsetY(M.height()/2),g.add(M);let C=new Ce.Text({x:i.x,y:i.y,text:oe("map.seatsLeft",{count:s}),fontSize:12,fontStyle:"700",fontFamily:"JetBrains Mono, ui-monospace, monospace",fill:n.sectionInk,opacity:0,listening:!1,perfectDrawEnabled:!1});C.offsetX(C.width()/2),g.add(C);let T={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:$r(e.outline,e.holes??[],i),labelArea:On(e.outline,e.holes),zone:e.zone,memberIds:r,total:r.length,free:s,baseFill:c,outlineTint:v,outlinePoly:y,blockPoly:x,nameLabel:M,subLabel:C,preferredInk:k,labelScale:w,nameLabelFits:!0,subLabelFits:!0,elevation:d,liftWorld:u,rakeDeg:h.rake,surfaceFocal:r.length?{...this.seatById.get(r[0])?.focalPoint??this.isoCentre}:{...this.chartDoc?.focalPoint??this.isoCentre},frontDistanceWorld:0,rootGroupBg:m,bgZIndex:m.zIndex(),seatZIndex:f.zIndex(),liftGroupBg:b,liftGroupSeat:f,sideFaces:p},R=r.map(L=>this.seatById.get(L)).filter(L=>!!L),S=R.length?R:e.outline;T.frontDistanceWorld=Math.min(...S.map(L=>Math.hypot(L.x-T.surfaceFocal.x,L.y-T.surfaceFocal.y)));for(let L of r)this.seatSection.set(L,T);this.refreshSectionFill(T),this.refreshSectionHeat(T),this.sections.push(T)}refreshSectionHeat(e){Lo(this.sectionLodPaintContext,e)}refreshSectionFill(e){To(this.sectionLodPaintContext,e)}isSectionClosed(e){return on(this.sectionLodPaintContext,e)}sectionAvailabilityState(e){return sn(this.sectionLodPaintContext,e)}sectionBlockFill(e){return Ze(he(this.canvasBackground),this.sectionAvailabilityState(e))}get sectionLodPaintContext(){return{sections:this.sections,zones:this.zones,sectionHeat:this.sectionHeat,closedSections:this.closedSections,canvasBackground:this.canvasBackground,bgLayer:this.bgLayer,seatLayer:this.seatLayer,stageScaleX:this.stage.scaleX(),stageWidth:this.stage.width(),floorOverview:this.floorOverview,focusedSectionId:this.focusedSectionId,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){if(!e.zones?.length||!this.sections.length)return;let i=new Map;for(let n of this.sections)n.zone&&(i.get(n.zone)??i.set(n.zone,[]).get(n.zone)).push(n);for(let n of e.zones){let r=i.get(n.id);if(!r||!r.length)continue;let o=r[0];for(let u of r)u.centroid.y<o.centroid.y&&(o=u);let s=o.centroid.x,a=o.centroid.y,l=1/0;for(let u of r)for(let m of u.memberIds){let b=this.seatById.get(m),f=b&&this.catPrice.get(b.categoryKey);typeof f=="number"&&f<l&&(l=f)}let c=new Ee.Rect({x:s,y:a,width:1,height:1,offsetX:.5,offsetY:.5,cornerRadius:1,fill:Ji,stroke:n.color??o.outlineTint,strokeWidth:1,opacity:0,listening:!1,perfectDrawEnabled:!1});this.bgLayer.add(c);let d=new Ce.Text({x:s,y:a,text:n.label.toUpperCase(),fontSize:ei,fontStyle:"800",letterSpacing:.5,fontFamily:this.labelFont(),fill:"#f4f6fb",opacity:0,listening:!1,perfectDrawEnabled:!1});d.offsetX(d.width()/2),d.offsetY(d.height()/2),this.bgLayer.add(d);let h=null;isFinite(l)&&(h=new Ce.Text({x:s,y:a,text:oe("map.fromPrice",{price:Yt(l,this.currency)}),fontSize:14,fontStyle:"600",fontFamily:"JetBrains Mono, ui-monospace, monospace",fill:"#cbd5e1",opacity:0,listening:!1,perfectDrawEnabled:!1}),h.offsetX(h.width()/2),this.bgLayer.add(h)),this.zones.push({id:n.id,anchor:{x:s,y:a},back:c,background:Ji,label:d,sub:h})}}screenToWorld(e){let i=this.stage.scaleX(),n={x:(e.x-this.stage.x())/i,y:(e.y-this.stage.y())/i};return this.viewMode==="perspective"&&this.perspectiveBaseInverse?re(this.perspectiveBaseInverse,n):this.isoT===0?n:this.isoInverse(n)}sectionAt(e){if(!this.sections.length)return null;let i=this.screenToWorld(e),n=this.sections.find(r=>{if(this.viewMode==="perspective"&&r.perspectiveAffine)return Y(i,r.outline.map(s=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,s))),r.holes.map(s=>s.map(a=>this.perspectiveLocalPoint(this.projectedSectionPoint(r,a)))));let o=r.liftWorld>0?this.isoLiftLocal(r.liftWorld):{x:0,y:0};return Y({x:i.x-o.x,y:i.y-o.y},r.outline,r.holes)});return n?n.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)?!1:(this.opts.selectableStatuses??["free"]).includes(this.statusById.get(e)??"free")}toggleSeat(e){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);let i=this.seatById.get(e);i&&this.opts.onSelect?.(i)}this.overlayLayer.batchDraw()}resolveCanvasBackground(){let e=this.theme.background?Wi(this.theme.background):null;if(e)return e;if(typeof getComputedStyle=="function"){let i=this.container;for(;i;){let n=Wi(getComputedStyle(i).backgroundColor);if(n)return n;i=i.parentElement}}return nn}resolveSelectionColor(){return this.theme.selectionColor?this.theme.selectionColor:ut(this.canvasBackground)?ao:kt}setSelected(e,i,n=!1){let r=this.circleById.get(e);i?this.selection.add(e):(this.selectionFocusId===e&&this.setSelectionFocus(null),this.selection.delete(e)),this.syncSelectionMarker(e),r&&(this.paintSeat(r,e),!n&&!this.cached&&this.seatLayer.batchDraw())}syncSelectionMarker(e){if(this.selectionMarkers.get(e)?.destroy(),this.selectionMarkers.delete(e),!this.selection.has(e)&&!this.ownedHold.has(e))return;let i=this.seatById.get(e);if(!i)return;let n=this.selectionFocusId===e,r=this.boothDims.get(i.rowId),o=this.renderedSeatPoint(i),s=new Te.Group({name:"selection-ring",x:o.x,y:o.y,rotation:r?.rotation??0,listening:!1,perfectDrawEnabled:!1,opacity:this.selectionFocusId&&!n?.2:1});if(this.viewMode==="perspective"){let l=this.perspectiveSeatScale.get(e)??1;s.scale({x:l,y:l})}s.setAttr("seatId",e);let a={stroke:this.effSelection,listening:!1,perfectDrawEnabled:!1,shadowForStrokeEnabled:!1};if(r)if(s.add(new Ee.Rect({...a,width:r.width,height:r.height,offsetX:r.width/2,offsetY:r.height/2,cornerRadius:4,strokeWidth:n?4:3})),n)s.add(new Ee.Rect({...a,width:r.width+10,height:r.height+10,offsetX:(r.width+10)/2,offsetY:(r.height+10)/2,cornerRadius:7,strokeWidth:2,opacity:.55}));else{let l=Math.max(0,r.width/2-14),c=-Math.max(0,r.height/2-14);s.add(new ve.Circle({x:l,y:c,radius:10,fill:this.effSelection,listening:!1})),s.add(new et.Line({x:l,y:c,points:[-4.5,0,-1,3.5,5.5,-4.5],stroke:ut(this.effSelection)?"#0b1220":"#ffffff",strokeWidth:2.4,lineCap:"round",lineJoin:"round",listening:!1}))}else s.add(new ve.Circle({...a,radius:Math.max(1,this.seatR-1.25),strokeWidth:Math.min(2.5,Math.max(1.8,this.seatR*.22))})),n?s.add(new ve.Circle({...a,radius:this.seatR+2,strokeWidth:2,opacity:.55})):s.add(new et.Line({points:[-this.seatR*.52,0,-this.seatR*.12,this.seatR*.4,this.seatR*.6,-this.seatR*.46],stroke:"#ffffff",strokeWidth:Math.max(2.6,this.seatR*.34),lineCap:"round",lineJoin:"round",shadowColor:"#0b1220",shadowBlur:1.5,shadowOpacity:.55,listening:!1}));this.selectionMarkers.set(e,s),this.overlayLayer.add(s)}sectionBounds(e){let i=this.sections.filter(b=>b.id===e||b.logicalId===e),n=i.map(b=>{if(this.viewMode==="perspective"&&b.perspectiveAffine)return U(b.outline.map(g=>this.projectedSectionPoint(b,g)));let f=b.liftWorld>0?this.isoLiftLocal(b.liftWorld):{x:0,y:0},p=b.outline.map(g=>{let v={x:g.x+f.x,y:g.y+f.y};return this.isoT===0?v:this.isoForward(v)});return U(p)});if(!n.length)return null;let r=Math.min(...n.map(b=>b.x)),o=Math.min(...n.map(b=>b.y)),s=Math.max(...n.map(b=>b.x+b.width)),a=Math.max(...n.map(b=>b.y+b.height)),l=new Set(i.flatMap(b=>b.memberIds));for(let b of l){let f=this.seatById.get(b);if(!f)continue;let p=this.renderedSeatPoint(f);r=Math.min(r,p.x-this.seatR),o=Math.min(o,p.y-this.seatR),s=Math.max(s,p.x+this.seatR),a=Math.max(a,p.y+this.seatR)}let c=b=>{[b.x,b.y,b.width,b.height].every(Number.isFinite)&&(r=Math.min(r,b.x),o=Math.min(o,b.y),s=Math.max(s,b.x+b.width),a=Math.max(a,b.y+b.height))},d=b=>{let f={x:b.x+b.width/2,y:b.y+b.height/2};return i.some(p=>Y(f,p.outline,p.holes))};for(let{node:b,backdrop:f}of this.freeTextById.values()){let p=b.getClientRect({relativeTo:this.bgLayer,skipShadow:!0});d(p)&&(c(p),f&&c(f.getClientRect({relativeTo:this.bgLayer,skipShadow:!0})))}for(let{node:b}of this.iconNodeById.values()){let f=b.getClientRect({relativeTo:this.bgLayer,skipShadow:!0});d(f)&&c(f)}let h=new Qe;for(let{node:b}of this.freeTextById.values()){let f=b.getClientRect({relativeTo:this.bgLayer,skipShadow:!0,skipStroke:!0});h.insert({x:f.x-ee,y:f.y-ee,width:f.width+ee*2,height:f.height+ee*2})}for(let b of this.rowLabelPlan){let f=b.focusKeys?.some(y=>y===e||i.some(x=>y===x.id||y===x.logicalId||y===x.zone))??!1,p=new Ce.Text({text:b.text,fontSize:b.fontSize,fontStyle:"700",fontFamily:this.labelFont(),rotation:b.rotation,listening:!1});p.offsetX(p.width()/2),p.offsetY(p.height()/2);let g=this.resolveAutomaticRowLabelPosition(p,b,h),v=this.rowLabelBox(p,g);f&&c(v),h.insert(v),p.destroy()}let u=Math.max(s-r,a-o),m=Math.max(this.seatR*2,Math.min(24,u*.025));return{x:r-m,y:o-m,width:Math.max(1,s-r+m*2),height:Math.max(1,a-o+m*2)}}sectionFrameScale(e){let i=this.sectionBounds(e);if(!i)return this.stage.scaleX();let n=this.stage.width(),r=this.stage.height(),{min:o,max:s}=this.zoomBounds(),a=1.12;if(i.width<=0||i.height<=0)return this.stage.scaleX();let l=Math.min(n/(i.width*a),r/(i.height*a));return V(l,o,s)}handleSeatTap(e){if((this.stacked||this.floorOverview)&&this.opts.onDeckTap){let i=this.objectFloor.get(this.seatById.get(e)?.rowId??"");if(i){this.opts.onDeckTap(i);return}}if(this.effScale()<ue&&this.sections.length){let i=this.seatSection.get(e);if(i){let n=this.focusedSectionId===i.logicalId,r=this.sectionFrameScale(i.logicalId)>this.stage.scaleX()*1.02;if(!n&&r){this.opts.onSectionTap?this.opts.onSectionTap(i.logicalId):this.focusSection(i.logicalId);return}}}this.toggleSeat(e)}nearestSeatToScreen(e,i){let n=null,r=1/0,o=this.stage.scaleX()||1;for(let s of this.seats){if(!this.selection.has(s.id)&&!this.isSelectable(s.id))continue;let a=this.worldToScreen(s),l=this.viewMode==="perspective"?this.perspectiveSeatScale.get(s.id)??1:1,c=this.seatR*o*l+i,d=Math.hypot(a.x-e.x,a.y-e.y);d<=c&&d<r&&(r=d,n=s.id)}return n}wireInteraction(){this.seatLayer.on("click tap",e=>{if(this.moved>Re||this.isGhostClick(e))return;let i=cn(e.target);i&&this.handleSeatTap(i)}),this.seatLayer.on("mouseover",e=>{let i=cn(e.target);if(!i)return;let n=this.seatById.get(i);if(!n)return;this.hoveredId=i,this.hoverRing.position(this.renderedSeatPoint(n));let r=this.viewMode==="perspective"?this.perspectiveSeatScale.get(i)??1:1;this.hoverRing.scale({x:r,y:r}),this.hoverRing.visible(!0),this.overlayLayer.batchDraw(),this.container.style.cursor="pointer",this.opts.onHover?.(n)}),this.seatLayer.on("mouseout",()=>{this.hoveredId=null,this.hoverRing.visible(!1),this.overlayLayer.batchDraw(),this.container.style.cursor="default",this.opts.onHover?.(null)}),this.stage.on("wheel",e=>{e.evt.preventDefault(),this.releaseSectionFocusDim();let i=this.container.getBoundingClientRect(),n={x:e.evt.clientX-i.left,y:e.evt.clientY-i.top},r=Math.exp(-e.evt.deltaY*.002);this.zoomAbout(this.stage.scaleX()*V(r,.5,2),n)}),this.stage.on("click tap",e=>{if(this.moved>Re||this.isGhostClick(e))return;let i=this.stage.getPointerPosition();if(!i)return;if(!this.cached){if(cn(e.target))return;let r=this.nearestSeatToScreen(i,$t);r&&this.handleSeatTap(r);return}if((this.stacked||this.floorOverview)&&this.opts.onDeckTap){let r=this.floorOverview?this.sectionAt(i):null,o=(r?this.objectFloor.get(r):null)??this.deckFloorAt();if(o){this.opts.onDeckTap(o);return}}if(this.sections.length){let r=this.sectionAt(i);if(r){this.opts.onSectionTap?this.opts.onSectionTap(r):this.focusRegion(r);return}}let n=Math.max(Pe*1.2,this.stage.scaleX()*2.5);this.zoomAbout(n,i)})}deckFloorAt(){if(!this.objectFloor.size)return null;let e=this.stage.getPointerPosition();if(!e)return null;let i=this.screenToWorld(e),n=null,r=1/0;for(let o of this.seats){let s=this.renderedSeatPoint(o),a=s.x-i.x,l=s.y-i.y,c=a*a+l*l;c<r&&(r=c,n=o.rowId)}return n?this.objectFloor.get(n)??null:null}zoomBounds(){let e=.5*this.fitScale;return this.zones.length&&(e=Math.min(e,$e*.9)),{min:e,max:Math.max(10*this.fitScale,4)}}zoomAbout(e,i){let{min:n,max:r}=this.zoomBounds(),o=V(e,n,r),s=this.stage.scaleX();if(o===s)return;let a=(i.x-this.stage.x())/s,l=(i.y-this.stage.y())/s;this.stage.scale({x:o,y:o}),this.stage.position({x:i.x-a*o,y:i.y-l*o}),this.afterViewChange(),this.stage.batchDraw()}zoomToBounds(e,i){let n=this.stage.width(),r=this.stage.height(),{min:o,max:s}=this.zoomBounds(),a=1.12,l=Math.min(n/(e.width*a),r/(e.height*a)),c=V(Math.max(l,i??o),o,s);this.stage.scale({x:c,y:c}),this.stage.position({x:n/2-(e.x+e.width/2)*c,y:r/2-(e.y+e.height/2)*c}),this.afterViewChange(),this.stage.batchDraw()}focusRegion(e,i){let n=typeof e=="string"?this.sectionBounds(e):e;if(!n)return;if(this.cancelGlide(),i?.animate===!1||this.reducedMotion){this.zoomToBounds(n,i?.minScale);return}let r=this.stage.width(),o=this.stage.height(),{min:s,max:a}=this.zoomBounds(),l=1.12,c=Math.min(r/(n.width*l),o/(n.height*l)),d=V(Math.max(c,i?.minScale??s),s,a),h=r/2-(n.x+n.width/2)*d,u=o/2-(n.y+n.height/2)*d,m=this.stage.scaleX(),b=this.stage.x(),f=this.stage.y();if(Math.abs(d-m)<1e-4&&Math.abs(h-b)<.5&&Math.abs(u-f)<.5){this.afterViewChange();return}let p=performance.now(),g=Math.max(180,Math.min(1200,i?.durationMs??Qt));this.glideInProgress=!0;let v=y=>{if(this.destroyed){this.glideRaf=0,this.glideInProgress=!1;return}let x=Math.min(1,(y-p)/g),I=x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2,k=m+(d-m)*I;this.stage.scale({x:k,y:k}),this.stage.position({x:b+(h-b)*I,y:f+(u-f)*I}),this.updateSeatGroupVisibility(),this.updateLOD(),this.scheduleViewChange(),this.stage.batchDraw(),x<1?this.glideRaf=requestAnimationFrame(v):(this.glideRaf=0,this.glideInProgress=!1,this.afterViewChange())};this.glideRaf=requestAnimationFrame(v)}cancelGlide(){this.glideRaf&&(cancelAnimationFrame(this.glideRaf),this.glideRaf=0),this.glideInProgress=!1}getRung(){let e=this.effScale();return e>=se?"seats":this.zones.length&&e<$e?"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,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 eo(this.renderedQualityContext)}setRung(e){if(e==="zones"){this.cancelGlide(),this.zoomToFit();return}let i=e==="sections"?(Le+se)/2:Math.max(this.seatLabelTargetScale()*1.05,Or,se*1.3),n=this.stage.width(),r=this.stage.height(),o=this.getVisibleWorldRect(),s={x:o.x+o.width/2,y:o.y+o.height/2},a=s.x,l=s.y;if(e==="sections"&&this.sections.length>0){let u=this.sections.map(p=>{let g=U(p.outline);return{x:g.x+g.width/2,y:g.y+g.height/2}}),m=n/(i*2),b=r/(i*2);if(!u.some(p=>Math.abs(p.x-s.x)<=m&&Math.abs(p.y-s.y)<=b)){let p=u.reduce((g,v)=>{let y=(v.x-s.x)**2+(v.y-s.y)**2;return y<g.distance?{point:v,distance:y}:g},{point:u[0],distance:1/0});a=p.point.x,l=p.point.y}}let c=e==="seats"?this.seats.filter(u=>u.kind!=="booth"):[];if(c.length>0){let u=c[0],m=1/0;for(let b of c){let f=b.x-s.x,p=b.y-s.y,g=f*f+p*p;g<m&&(u=b,m=g)}a=u.x,l=u.y}let d=n/(i*1.12),h=r/(i*1.12);this.focusRegion({x:a-d/2,y:l-h/2,width:d,height:h})}seatLabelTargetScale(){let e=Ve,i=new Ce.Text({fontSize:ye,fontStyle:"600",fontFamily:this.labelFont(),listening:!1}),n=this.seatR*2-3;for(let r of this.seats){if(r.kind==="booth"){e=Math.min(e,Ve);continue}let o=ye*this.seatLabelScale(r);i.fontSize(o),i.text(Ht(r.displayLabel??r.label));let s=i.width()>n?Math.max(bt,o*n/i.width()):o;e=Math.min(e,s)}return i.destroy(),Q/Math.max(bt,e)}afterViewChange(){this.updateSeatGroupVisibility(),this.updateLOD(),this.updateFreeTextVisibility(),this.updateLabels(),this.scheduleViewChange()}scheduleViewChange(){this.exportMode||this.viewChangeRaf||(this.viewChangeRaf=requestAnimationFrame(()=>{this.viewChangeRaf=0,this.opts.onViewChange?.()}))}sizeLabel(e,i,n){e.fontSize(Math.max(1,i)),e.offsetX(e.width()/2),e.offsetY(e.height()/2),e.y(n)}updateLOD(){let e=this.exportMode?Math.max(this.effScale(),qe+.01,ue):this.effScale(),i=Math.max(e,1e-4);for(let[o,s]of this.primaryFocalLabels)this.sizeLabel(o,s/i,o.y());this.hasSections?Co(this.sectionLodPaintContext,e):this.primaryFocalLabels.size&&this.bgLayer.batchDraw(),this.paintGAStateForView(),this.updateAccessGlyphs(e);let n=!this.exportMode&&e<se;if(this.viewMode==="perspective"&&this.hasSections&&this.seats.length>2500&&n){this.seatLayer.listening(!1);return}n&&!this.cached?this.cacheSeatLayer():!n&&(this.cached||!this.seatLayer.listening())&&(this.cached&&this.releaseSeatLayerBitmap(),this.seatLayer.listening(!this.exportMode),this.cached=!1,this.seatLayer.batchDraw())}rebuildSeatCache(){this.updateSeatGroupVisibility();let e=V(this.stage.scaleX()*this.dpr,.15,2);this.seatLayer.clearCache(),this.seatLayer.cache({pixelRatio:e}),this.seatLayer.listening(!1),this.cached=!0}cacheSeatLayer(){this.rebuildSeatCache(),this.seatLayer.batchDraw()}releaseSeatLayerBitmap(){let e=this.seatLayer,i=e._cache.get("canvas");i&&(Lt.Konva.Util.releaseCanvas(i.scene._canvas,i.filter._canvas,i.hit._canvas),e._cache.delete("canvas"))}forceDraw(){this.recacheTimer&&(clearTimeout(this.recacheTimer),this.recacheTimer=null,this.effScale()<se?this.rebuildSeatCache():this.cached&&(this.releaseSeatLayerBitmap(),this.seatLayer.listening(!0),this.cached=!1)),this.bgLayer.draw(),this.seatLayer.draw(),this.overlayLayer.draw()}async ready(){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(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)),n=Math.min(...e.map(s=>s.y)),r=Math.max(...e.map(s=>s.x+s.width)),o=Math.max(...e.map(s=>s.y+s.height));return{x:i,y:n,width:Math.max(1,r-i),height:Math.max(1,o-n)}}fitExportContent(){if(!this.exportMode)return;let e=this.stage.width(),i=this.stage.height(),n=Math.max(12,Math.min(36,Math.min(e,i)*.025)),r=()=>{let o=this.exportSceneBounds(),s=Math.max(1,e-n*2),a=Math.max(1,i-n*2),l=Math.min(s/o.width,a/o.height)||1;this.fitScale=l,this.stage.scale({x:l,y:l}),this.stage.position({x:(e-o.width*l)/2-o.x*l,y:(i-o.height*l)/2-o.y*l}),this.afterViewChange()};r(),r()}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(r){let o=r instanceof Error?r.message:String(r);throw new Error(`The chart canvas could not be captured. A buyer-visible image may block export. ${o}`)}let i=document.createElement("canvas");i.width=this.stage.width(),i.height=this.stage.height();let n=i.getContext("2d");if(!n)throw new Error("Canvas 2D is unavailable; this browser cannot create an export.");n.fillStyle=this.canvasBackground,n.fillRect(0,0,i.width,i.height);try{n.drawImage(e,0,0)}finally{e.width=1,e.height=1}return i}updateFreeTextVisibility(){let e=this.exportMode?Math.max(this.effScale(),ue):this.effScale();for(let{objectId:i,node:n,backdrop:r,categoryKey:o,kind:s}of this.freeTextById.values()){let a=o!=null&&(s==="ga-label"||s==="ga-capacity")&&this.gaCategoryDimmed(o),l=i!=null&&(s==="ga-label"||s==="ga-capacity")&&this.gaById.get(i)?.sectionId!=null&&e<se,c=s==="free-text"&&this.nodeBelongsToFocusedSection(n),d=!a&&!l&&(c||Ie(n.fontSize(),e));n.visible(d),r?.visible(d)}for(let{node:i,fontSize:n}of this.iconNodeById.values())i.visible(this.nodeBelongsToFocusedSection(i)||Ie(n,e))}nodeBelongsToFocusedSection(e){let i=this.focusedSectionId;if(!i)return!1;let n=this.sections.filter(s=>s.id===i||s.logicalId===i||s.zone===i);if(!n.length)return!1;let r=e.getClientRect({relativeTo:this.bgLayer,skipShadow:!0}),o={x:r.x+r.width/2,y:r.y+r.height/2};return n.some(s=>Y(o,s.outline,s.holes))}buildRowLabelPlan(e){this.rowLabelPlan=wo(e,{theme:this.theme,seats:this.seats,seatSection:this.seatSection,seatR:this.seatR,objectFilteredOut:i=>this.objectFilteredOut(i)})}rowLabelBox(e,i,n=ee){return rn(e,i,n)}resolveAutomaticRowLabelPosition(e,i,n){return Io(e,i,n,this.seatIndex)}objectFilteredOut(e){let i=e.categoryKey;return i?!!(this.categoryHighlight&&i!==this.categoryHighlight||this.categoryFilter&&!this.categoryFilter.has(i)):!1}updateLabels(){Ro(this.viewportLabelContext)}get viewportLabelContext(){return{exportMode:this.exportMode,effScale:()=>this.effScale(),boothLabelById:this.boothLabelById,circleById:this.circleById,focusedSeatOpacity:(e,i)=>this.focusedSeatOpacity(e,i),labelGroup:this.labelGroup,labelLiftGroups:this.labelLiftGroups,seatLabelById:this.seatLabelById,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,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,n)=>this.resolveAutomaticRowLabelPosition(e,i,n),rowLabelBox:(e,i)=>this.rowLabelBox(e,i),isoT:this.isoT,applyUprightLabels:()=>this.applyUprightLabels(),overlayLayer:this.overlayLayer}}handleResize(){let e=this.container.clientWidth||1,i=this.container.clientHeight||1;e===this.stage.width()&&i===this.stage.height()||(this.stage.size({width:e,height:i}),this.refitCurrentView())}startFpsLoop(){let e=i=>{this.lastFpsAt||(this.lastFpsAt=i),this.frames++;let n=i-this.lastFpsAt;n>=1e3&&(this.opts.onFps?.(Math.round(this.frames*1e3/n)),this.frames=0,this.lastFpsAt=i),this.rafId=requestAnimationFrame(e)};this.rafId=requestAnimationFrame(e)}};Tt.ZOOM_STEP=1.4;var di=Tt;function dn(t,e){return new di(t,e)}function tt(t){let e=Number(t.slice(t.lastIndexOf(":")+1));return Number.isFinite(e)?e:-1}function Ko(t,e,i){let n=new Map;for(let s of t){if(s.kind==="booth")continue;let a=n.get(s.rowId);a?a.push(s):n.set(s.rowId,[s])}let r=s=>i.has(s.id)||e(s.id)!=="free",o=[];for(let s of n.values())if(!(s.length<3)){s.sort((a,l)=>tt(a.id)-tt(l.id));for(let a=1;a<s.length-1;a++){let l=s[a];if(r(l))continue;let c=s[a-1],d=s[a+1];tt(l.id)-tt(c.id)!==1||tt(d.id)-tt(l.id)!==1||!r(c)||!r(d)||!i.has(c.id)&&!i.has(d.id)||o.push(l)}}return o}function Uo(t,e={}){let{baseMs:i=1e3,factor:n=2,maxMs:r=1/0,jitter:o=0,random:s=Math.random}=e,a=Math.min(i*n**Math.max(0,t),r);if(o<=0)return a;let l=Math.min(1,o);return a*(1-l+l*s())}function un(t,e){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let i=t.id.lastIndexOf(":");if(i<0)return e;let n=Number(t.id.slice(i+1));return Number.isFinite(n)?n:e}function Xo(t,e){let i=t.x-e.x,n=t.y-e.y;return i*i+n*n}function el(t){let e=0,i=0;for(let n of t)e+=n.x,i+=n.y;return{x:e/t.length,y:i/t.length}}function tl(t,e){return t.find(i=>i.focalPoint)?.focalPoint??e}function hn(t){return t.commercial?.premium===!0}function Yo(t,e,i){let n=Math.floor(i.qty);if(!Number.isFinite(n)||n<=0)return{labels:[],reason:"sold_out"};let{categoryKey:r,zoneId:o,focal:s,preferPremium:a}=i,l=new Map,c=[];if(t.forEach((m,b)=>{let f=e.has(m.label)&&(!r||m.categoryKey===r)&&(!o||m.zoneId===o),p=m.logicalRowId??m.rowId,g=l.get(p);g||(g=[],l.set(p,g)),g.push({seat:m,index:un(m,b),elig:f}),f&&c.push(m)}),c.length===0)return{labels:[],reason:"sold_out"};let d=null,h=m=>{if(!d)return!0;if(a&&m.nonPremium!==d.nonPremium)return m.nonPremium<d.nonPremium;if(m.orphan!==d.orphan)return m.orphan<d.orphan;if(m.d2!==d.d2)return m.d2<d.d2;let b=m.rowId.localeCompare(d.rowId);return b!==0?b<0:m.startIndex<d.startIndex};for(let[m,b]of l){let f=[...b].sort((g,v)=>g.index-v.index),p=0;for(;p<f.length;){if(!f[p].elig){p++;continue}let g=p;for(;g<f.length&&f[g].elig&&(g===p||f[g].index===f[g-1].index+1);)g++;let v=g-p;for(let y=0;y+n<=v;y++){let x=y,I=v-(y+n),k=x===1||I===1?1:0,w=f.slice(p+y,p+y+n).map(C=>C.seat),M={labels:w.map(C=>C.label),seats:w,rowId:m,startIndex:f[p+y].index,orphan:k,nonPremium:a?w.reduce((C,T)=>C+(hn(T)?0:1),0):0,d2:Xo(el(w),tl(w,s))};h(M)&&(d=M)}p=g}}return d?{labels:d.labels}:c.length<n?{labels:[],reason:"not_enough_together"}:{labels:c.map((m,b)=>({seat:m,i:b,d2:Xo(m,m.focalPoint??s)})).sort((m,b)=>{if(a){let p=hn(m.seat)?0:1,g=hn(b.seat)?0:1;if(p!==g)return p-g}if(m.d2!==b.d2)return m.d2-b.d2;let f=(m.seat.logicalRowId??m.seat.rowId).localeCompare(b.seat.logicalRowId??b.seat.rowId);return f!==0?f:un(m.seat,m.i)-un(b.seat,b.i)}).slice(0,n).map(m=>m.seat.label)}}function ui(t){return{code:"ticket_option_not_applicable",labels:t,message:"That ticket choice is not available for the selected seat."}}function pn(t,e){let i=t.applicability;return i?!(i.seatLabels?.length&&!i.seatLabels.includes(e.label)||i.accessibility?.length&&!i.accessibility.some(n=>e.accessibility?.includes(n))):!0}function $o(t,e){return(t.categories.find(i=>i.key===e.categoryKey)?.tiers??[]).filter(i=>pn(i,e))}function it(t,e,i){let n=t.categories.find(o=>o.key===e.categoryKey)?.tiers;if(!n?.length)return{kind:"none"};let r=i==null?n.find(o=>pn(o,e)):n.find(o=>o.id===i&&pn(o,e));return r?{kind:"resolved",tier:r}:{kind:"invalid"}}function il(t,e){return(t.logicalRowId??t.rowId)===(e.logicalRowId??e.rowId)}function qo(t){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let e=t.id.slice(t.id.lastIndexOf(":")+1),i=Number(e);return Number.isInteger(i)?i:void 0}function nl(t,e){if(!il(t,e))return!1;let i=qo(t),n=qo(e);return i!=null&&n!=null&&Math.abs(i-n)===1}function rl(t,e){if(!e.length)return null;let i=new Map(be(t,{resolveEyeHeights:!1}).map(s=>[s.label,s])),n=e.flatMap(s=>{let a=i.get(s.label);return a?[{selection:s,seat:a}]:[]}),r=n.map(({seat:s})=>s).filter(s=>s.accessibility?.includes("wheelchair")),o=[];for(let{selection:s,seat:a}of n){let l=it(t,a,s.tierId),c=l.kind==="resolved"?l.tier:void 0;(a.accessibility?.includes("companion")||c?.restriction==="companion")&&!r.some(h=>h.id!==a.id&&nl(a,h))&&o.push(a.label)}return o.length?{code:"companion_pair_required",labels:o,message:"Select the adjacent wheelchair place with each companion ticket."}:null}function Zo(t,e){if(!e.length)return null;let i=new Map(be(t,{resolveEyeHeights:!1}).map(s=>[s.label,s])),n=new Set(t.categories.filter(s=>s.notForSale).map(s=>s.key)),r=[],o=[];for(let s of e){let a=i.get(s.label);if(!a)continue;if(n.has(a.categoryKey)){r.push(a.label);continue}it(t,a,s.tierId).kind==="invalid"&&o.push(a.label)}return r.length?{code:"not_for_sale",labels:r,message:"These seats are not for sale."}:o.length?ui(o):rl(t,e)}var Ct=class extends Error{constructor(i,n){super(n);this.objectId=i;this.name="GroupedTableProjectionError"}};function ol(t){let e=t.minOccupancy,i=t.maxOccupancy;if(!Number.isInteger(e)||!Number.isInteger(i)||e<1||i<e||i>t.seatCount)throw new Ct(t.id,`Table "${t.label}" has invalid variable-occupancy bounds`);return{min:e,max:i}}function Qo(t,e){if(e!==2)return[];let i=[];for(let n of ae(t)){if(n.type!=="table"||!n.bookAsWhole&&!n.variableOccupancy)continue;if(n.bookAsWhole&&n.variableOccupancy)throw new Ct(n.id,`Table "${n.label}" cannot be whole-table and variable-occupancy inventory`);if(!Number.isInteger(n.seatCount)||n.seatCount<1||!n.label.trim())throw new Ct(n.id,"Grouped tables require a label and at least one chair");let r=n.variableOccupancy?"variable":"whole",o=r==="variable"?ol(n):{min:n.seatCount,max:n.seatCount};i.push({objectId:n.id,label:n.label,...n.displayLabel?{displayLabel:n.displayLabel}:{},...n.displayType?{displayType:n.displayType}:{},categoryKey:n.categoryKey,mode:r,capacity:n.seatCount,minOccupancy:o.min,maxOccupancy:o.max,chairs:ze(n)})}return i}var ke=class extends Error{constructor(i){super(i.message);this.status=422;this.name="PickerSelectionError",this.reason=i.code,this.labels=i.labels}};var sl=10,al=15e3,Jo=["background","rowLabelColor","textColor","selectionColor"];function ll(t,e){return!t||!e?!t&&!e:Jo.every(i=>t[i]===e[i])}function hi(t){let e=t??{};return{status:e.status,conflicts:e.conflicts,reason:e.reason}}function fn(t){return t==="blocked"?"not_for_sale":t==="held"||t==="booked"||t==="free"||t==="not_for_sale"?t:"free"}var mn=class{constructor(e){this.selectableSeatIds=null;this.lastSelectionValidity=null;this.renderer=null;this._doc=null;this.hidden=new Set;this.mapTheme=null;this.closedSections=new Set;this.labelToId=new Map;this.labelToSeat=new Map;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.realtime=null;this.reconnectTimer=null;this.attempt=0;this.closed=!1;this.onVisibilityChange=null;this.hold_=null;this.liveStatuses=new Map;this.liveDefault="free";this.currency="USD";this.expiryTimer=null;this.hintShown=!1;this.opts=e,this.api=e.transport,this.key=e.eventKey;let i=e.numberOfPlacesToSelect;if(i!=null&&(!Number.isInteger(i)||i<1))throw new Error("picker: `numberOfPlacesToSelect` must be a positive integer");this.numberOfPlacesToSelect=i??null;let n=Math.max(0,Math.floor(e.maxSelection??this.numberOfPlacesToSelect??sl));if(this.numberOfPlacesToSelect!=null&&n<this.numberOfPlacesToSelect)throw new Error("picker: `maxSelection` cannot be lower than `numberOfPlacesToSelect`");this.maxSelection=this.numberOfPlacesToSelect??n,this.selectableObjectRefs=e.selectableObjects==null?null:[...new Set(e.selectableObjects.filter(r=>typeof r=="string"&&!!r))],this.mapTheme=e.mapTheme??null}get doc(){return this._doc}visibleDoc(){if(!this._doc)return{objects:[]};let e=Ni(this._doc,this.hidden);if(!this.mapTheme)return e;let i={...e.theme??{}};for(let n of Jo){let r=this.mapTheme[n];r&&(i[n]=r)}return{...e,theme:i}}setMapTheme(e){if(ll(this.mapTheme,e??null))return!1;this.mapTheme=e??null;let i=this.renderer;if(!i)return!0;let n=i.getSelection().map(s=>s.id),r=this.getActiveFloorId(),o=i.isFloorOverview?.()??!1;return i.setChart(this.visibleDoc(),r?{floorId:r}:void 0),o&&i.setFloorOverview?.(!0),this.opts.colorblindSafe&&i.setColorblindSafe?.(!0),this.closedSections.size&&i.setClosedSections?.([...this.closedSections]),this.applySeatsMap(Object.fromEntries(this.liveStatuses),this.liveDefault),n.length&&i.select?.(n),!0}syncHidden(e){let i=e.filter(r=>typeof r=="string");if(i.length===this.hidden.size&&i.every(r=>this.hidden.has(r)))return!1;this.hidden=new Set(i);let n=this.renderer?.isFloorOverview?.()??!1;return this.renderer?.setChart(this.visibleDoc()),n&&this.renderer?.setFloorOverview?.(!0),!0}syncClosed(e){let i=(e??[]).filter(n=>typeof n=="string");return i.length===this.closedSections.size&&i.every(n=>this.closedSections.has(n))?!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)}idForLabel(e){return this.labelToId.get(e)}idsForLabel(e){let i=this.groupedTablesByLabel.get(e);if(i)return i.chairs.map(r=>r.id);let n=this.labelToId.get(e);return n?[n]:[]}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 r=this.visibleDoc(),o=lt(r).find(s=>s.id===e.objectId);return{...o?.displayLabel?{displayLabel:o.displayLabel}:{},...o?.displayType?{displayType:o.displayType}:{}}}if(e.objectType==="table"){let r=this.groupedTablesByLabel.get(e.label);return{...r?.displayLabel&&r.displayLabel!==r.label?{displayLabel:r.displayLabel}:{},...r?.displayType?{displayType:r.displayType}:{}}}let i=this.labelToSeat.get(e.label),n=i?this.seatContext.get(i.id):void 0;return{...i?.displayLabel?{displayLabel:i.displayLabel}:{},...n?.displayType?{displayType:n.displayType}:{}}}async render(e){if(this.renderer)return null;let i=performance.now(),n={},r=k=>Math.round((performance.now()-k)*100)/100;this.closed=!1;let o,s=performance.now();try{o=await this.api.chart(this.key)}catch(k){return this.emitError(k),null}if(n.loadChart=r(s),this.closed)return null;this._doc=o.doc;let a=performance.now();try{let k=Qo(o.doc,o.event.inventoryModelVersion===2?2:1);this.groupedTablesByObject=new Map(k.map(w=>[w.objectId,w])),this.groupedTablesByLabel=new Map(k.map(w=>[w.label,w])),this.groupedTableBySeatId=new Map(k.flatMap(w=>w.chairs.map(M=>[M.id,w]))),this.tableQuantities=new Map(k.map(w=>[w.label,w.mode==="whole"?w.capacity:w.minOccupancy])),this.confirmedVariableTables=new Set,this.groupedSelectionOverhead=k.reduce((w,M)=>w+Math.max(0,M.chairs.length-1),0)}catch(k){return this.emitError(k),null}this.labelToId=new Map,this.labelToSeat=new Map,this.seatById=new Map,this.seatContext=new Map,this.allIds=[];let l=new Map(ae(o.doc).map(k=>[k.id,k])),c=ct(o.doc),d=new Map([...c.sections,...c.ungrouped?[c.ungrouped]:[]].map(k=>[k.id,k.label]));for(let k of be(o.doc)){this.labelToId.set(k.label,k.id),this.labelToSeat.set(k.label,k),this.seatById.set(k.id,k),this.allIds.push(k.id);let w=l.get(k.rowId),M=w&&"label"in w&&typeof w.label=="string"?w.label:void 0,C=w?.type==="row"?w.segmentedRow:void 0,T=C?.displayLabel??(w&&"displayLabel"in w&&typeof w.displayLabel=="string"&&w.displayLabel?w.displayLabel:M),R=this.groupedTablesByObject.get(k.rowId),S=w?.type==="table"?"table":w?.type==="booth"?"booth":"seat",L=T,E=C?.displayType?.trim()||(w&&"displayType"in w&&typeof w.displayType=="string"&&w.displayType.trim()?w.displayType.trim():void 0),O=k.displayLabel??k.label,F=O.split("-"),W=R||k.kind==="booth"?void 0:T&&O.startsWith(`${T}-`)?O.slice(T.length+1):F[F.length-1]??O;this.seatContext.set(k.id,{objectId:k.rowId,objectType:S,sectionLabel:d.get(c.objectToSection.get(k.rowId)??""),rowLabel:L,seatNumber:W,...E?{displayType:E,rowType:E}:{}})}for(let k of this.groupedTablesByLabel.values()){let w=k.chairs[0];w&&(this.labelToId.set(k.label,w.id),this.labelToSeat.set(k.label,w))}n.normalizeBuyerModel=r(a);let h=o.event.currency??this.opts.currency;this.currency=h??"USD";let u=performance.now(),m=dn(e,{maxSelection:this.rendererSelectionCap(),confirmSelection:this.opts.confirmSelection,portraitFitCrop:!0,currency:h,onSelect:k=>{this.handleRendererSelect(k)},onDeselect:k=>{this.handleRendererDeselect(k)},onSelectionLimit:this.opts.onSelectionLimit,onHover:k=>{this.opts.onHover?.(k),this.opts.onSeatHover&&this.opts.onSeatHover(k?this.describeSeat(k):null)},onFocusSeat:this.opts.onFocusSeat,onViewChange:this.opts.onViewChange,onGAClick:this.opts.onGAClick,onSectionTap:k=>this.handleSectionTap(k),onDeckTap:k=>this.handleDeckTap(k),onFps:this.opts.onFps});if(n.createRenderer=r(u),this.closed)return m.destroy(),null;this.renderer=m;let b=null,f="free",p=[],g=performance.now();try{let k=await this.api.objects(this.key);this.hidden=new Set(k.hidden??[]),p=(k.closed??[]).filter(w=>typeof w=="string"),b=k.seats,f=k.default??"free"}catch{}if(n.loadStatuses=r(g),this.closed)return m.destroy(),this.renderer=null,null;let v=performance.now();m.setChart(this.visibleDoc()),(o.doc.floors?.length??0)>1&&m.setFloorOverview?.(!0),this.opts.colorblindSafe&&m.setColorblindSafe?.(!0),n.buildScene=r(v),this.closedSections=new Set(p);let y=performance.now();p.length&&m.setClosedSections?.(p),b&&this.applySeatsMap(b,f),this.rebuildSelectableSeatIds(),this.opts.selectedObjects?.length?this.select(this.opts.selectedObjects):this.emitSelectionValidity(),n.applyInitialState=r(y);let x=performance.now();m.forceDraw(),n.firstPaint=r(x);let I=performance.now();return this.attachVisibilityListener(),this.connect(),n.startRealtime=r(I),n.controllerTotal=r(i),{doc:o.doc,salesClosed:!!o.event.salesClosed,eventName:o.event.name,venue:o.event.venue,startsAt:o.event.startsAt,timezone:o.event.timezone??null,currency:h,mode:o.event.mode??"live",posterUrl:o.event.posterUrl??null,performanceProfile:n}}getSelection(){if(!this.renderer)return[];let e=[],i=new Set;for(let n of this.renderer.getSelection()){let r=this.groupedTableBySeatId.get(n.id);r?i.has(r.label)||(i.add(r.label),e.push(this.toTableSeat(r))):e.push(this.toSeat(n))}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 n of e){let r=this.groupedTableBySeatId.get(n)??this.groupedTablesByLabel.get(n);if(r)r.chairs.forEach(o=>i.add(o.id)),this.hold_?.labels.includes(r.label)||(this.tableQuantities.set(r.label,r.mode==="whole"?r.capacity:r.minOccupancy),r.mode==="variable"&&this.confirmedVariableTables.delete(r.label));else{let o=this.seatById.has(n)?n:this.labelToId.get(n);o&&i.add(o)}}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)),n=new Set,r=[];for(let s of e){let a=this.groupedTableBySeatId.get(s)??this.groupedTablesByLabel.get(s);if(a)this.tableTierResolution(a).kind==="invalid"?r.push(a.label):a.chairs.forEach(c=>{this.isSelectableByPolicy(c.id)&&n.add(c.id)});else{let l=this.seatById.has(s)?s:this.labelToId.get(s);if(!l||!this.isSelectableByPolicy(l))continue;let c=this.seatById.get(l);c&&this.seatTierResolution(c).kind==="invalid"?r.push(c.label):n.add(l)}}if(r.length&&this.emitError(new ke(ui(r))),!n.size)return[];if(this.renderer?.select?.([...n]),this.selectionGuestCount()>this.maxSelection)return this.renderer?.deselect([...n]),this.opts.onSelectionLimit?.(this.maxSelection),[];let o=this.getSelection().filter(s=>!i.has(s.label));return o.length&&this.emitSelectionChange(),o}selectCategories(e){let i=new Set(e);return this.select([...this.seatById.values()].filter(n=>i.has(n.categoryKey)).map(n=>n.id))}deselectCategories(e){let i=new Set(e);this.deselect(this.getSelection().filter(n=>i.has(n.categoryKey)).map(n=>n.id))}setSelectableObjects(e){this.selectableObjectRefs=e==null?null:[...new Set(e.filter(n=>typeof n=="string"&&!!n))],this.rebuildSelectableSeatIds();let i=this.renderer?.getSelection().filter(n=>!this.isSelectableByPolicy(n.id)).map(n=>n.id)??[];i.length&&this.deselect(i)}getSelectionValidity(){let e=this.numberOfPlacesToSelect;if(e==null)return null;let i=this.getSelection(),n=i.reduce((r,o)=>r+(o.quantity??1),0);return{isValid:n===e,count:n,required:e,remaining:Math.max(0,e-n),seats:i}}rebuildSelectableSeatIds(){if(this.selectableObjectRefs==null){this.selectableSeatIds=null;return}let e=new Set;for(let i of this.selectableObjectRefs){let n=this.groupedTableBySeatId.get(i)??this.groupedTablesByLabel.get(i);if(n){n.chairs.forEach(o=>e.add(o.id));continue}let r=this.seatById.has(i)?i:this.labelToId.get(i);r&&e.add(r)}this.selectableSeatIds=e}isSelectableByPolicy(e){return this.selectableSeatIds==null||this.selectableSeatIds.has(e)}setTableQuantity(e,i){let n=this.groupedTablesByLabel.get(e);if(!n)return!1;let r=n.mode==="whole"?n.capacity:Math.floor(i);if(!Number.isInteger(r)||r<n.minOccupancy||r>n.maxOccupancy)return!1;let o=this.tableQuantities.get(e)??n.minOccupancy;return this.tableQuantities.set(e,r),this.selectionGuestCount()>this.maxSelection?(this.tableQuantities.set(e,o),this.opts.onSelectionLimit?.(this.maxSelection),!1):(n.mode==="variable"&&this.confirmedVariableTables.add(e),this.emitSelectionChange(),!0)}async replaceTableQuantity(e,i,n){let r=this.groupedTablesByLabel.get(e),o=this.hold_;if(!r||r.mode!=="variable"||!o?.labels.includes(e))return null;let s=Math.floor(i);if(!Number.isInteger(s)||s<r.minOccupancy||s>r.maxOccupancy)return null;if((o.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 l=(o.items??[]).map(d=>({label:d.label,tierId:d.tierId,quantity:d.label===e?s:d.quantity}));if(!l.some(d=>d.label===e))return null;let c=await this.api.hold(this.key,l,n,o.holdId);return this.tableQuantities.set(e,s),this.setHold({holdId:c.holdId,labels:l.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(r=>r.id):[e.id]),this.emitSelectionChange();return}if((i?this.tableTierResolution(i):this.seatTierResolution(e)).kind==="invalid"){this.renderer?.deselect(i?i.chairs.map(r=>r.id):[e.id]),this.emitError(new ke(ui([i?.label??e.label]))),this.emitSelectionChange();return}if(i){if(this.selectionGuestCount()>this.maxSelection){this.renderer?.deselect(i.chairs.map(r=>r.id)),this.opts.onSelectionLimit?.(this.maxSelection),this.emitSelectionChange();return}this.renderer?.select?.(i.chairs.map(r=>r.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);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 n=this.groupedTablesByLabel.get(i);n&&(this.tableQuantities.set(i,n.mode==="whole"?n.capacity:n.minOccupancy),n.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 r=e??this.getSelection().map(l=>l.label),o=(this.hold_?.items??[]).filter(l=>l.objectType==="ga"),s=[...new Set([...o.map(l=>l.label),...r])];if(!s.length)return null;let a=this.ticketIssue(s);if(a)throw new ke(a);if(this.hold_&&this.holdCovers(s))return this.hold_;try{let l=s.map(d=>{let h=o.find(b=>b.label===d);if(h)return{label:d,tierId:h.tierId,quantity:h.quantity};let u=this.labelToSeat.get(d),m=u?this.toSeat(u):null;return{label:d,...m?.tierId?{tierId:m.tierId}:{},...this.tableQuantityRequest(m)}}),c=await this.api.hold(this.key,l,i,this.hold_?.holdId);return this.setHold({holdId:c.holdId,labels:s,expiresAt:c.expiresAt,items:c.items}),this.hold_}catch(l){throw this.handle409Conflicts(l),l}}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 n=[...new Set(i.items.map(r=>r.label))];return n.length?(this.setHold({holdId:i.holdId,labels:n,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 n=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:n.expiresAt,items:i.items}),this.hold_)}catch{return null}}categoryAvailability(){let e={},i=this.closedMemberIds();for(let[n,r]of this.seatById)this.groupedTableBySeatId.has(n)||i.has(n)||(this.getStatus(n)??"free")==="free"&&(e[r.categoryKey]=(e[r.categoryKey]??0)+1);for(let n of this.groupedTablesByLabel.values()){if(n.chairs.some(o=>i.has(o.id)))continue;let r=n.chairs[0];r&&(this.getStatus(r.id)??"free")==="free"&&(e[n.categoryKey]=(e[n.categoryKey]??0)+n.maxOccupancy)}return e}closedMemberIds(){let e=new Set,i=this.renderer;if(!i||!this.closedSections.size)return e;for(let n of this.closedSections)for(let r of i.sectionMembers?.(n)??[])e.add(r);return e}getGAAreas(){let e=this.visibleDoc();return e?lt(e).map(i=>{let n=e.categories.find(r=>r.key===i.categoryKey);return{id:i.id,label:i.label,...i.displayLabel?{displayLabel:i.displayLabel}:{},...i.displayType?{displayType:i.displayType}:{},capacity:Math.max(0,Math.floor(i.capacity)),available:Ne(i).filter(r=>this.statusOf(r)==="free").length,categoryKey:i.categoryKey,tiers:n?.tiers,price:n?.tiers?.[0]?.price??n?.price??0,currency:this.currency}}):[]}async holdGA(e,i,n={}){let r=this.visibleDoc();if(!r||!Number.isFinite(i)||i<1)return null;let o=lt(r).find(d=>d.id===e);if(!o)return null;let s=Ne(o).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 a=new Map;for(let d of this.hold_?.items??[])a.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)a.set(d.label,{label:d.label,...d.tierId?{tierId:d.tierId}:{}});for(let d of this.getSelection())a.set(d.label,{label:d.label,...d.tierId?{tierId:d.tierId}:{},...this.tableQuantityRequest(d)});for(let d of s)a.set(d,{label:d,...n.tierId?{tierId:n.tierId}:{}});let l=[...a.values()],c=await this.api.hold(this.key,l,n.ttlMs,this.hold_?.holdId);return this.setHold({holdId:c.holdId,labels:l.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(){let e=this.visibleDoc();if(!e?.zones?.length)return[];let i=new Set(ct(e).sections.filter(n=>n.seatCount>0&&!!n.zone).map(n=>n.zone));return e.zones.filter(n=>i.has(n.id)).map(n=>({id:n.id,label:n.label}))}pickPremiumBlock(e,i,n){let r=this.visibleDoc();if(!r?.objects?.length)return null;let o=r.focalPoint??{x:0,y:0},s=new Set(this.groupedTablesByObject.keys()),a=be(r).filter(u=>!s.has(u.rowId)),l=new Set(this.hold_?.labels??[]),c=new Set;for(let u of a){if(l.has(u.label)||this.seatTierResolution(u).kind==="invalid")continue;let m=this.labelToId.get(u.label);((m?this.getStatus(m):void 0)??"free")==="free"&&c.add(u.label)}let d=Yo(a,c,{qty:e,categoryKey:i,zoneId:n,focal:o,preferPremium:!0});return d.labels.length!==e?null:d.labels.every(u=>this.labelToSeat.get(u)?.commercial?.premium)?[...d.labels]:null}async bestAvailable(e,i,n={}){let r=this.renderer;if(!r)return null;if(n.preferPremium){let o=this.pickPremiumBlock(e,i,n.zoneId);if(o){if(this.hold_&&!await this.release())return null;try{let s=o.map(d=>{let h=this.labelToSeat.get(d),u=h?this.toSeat(h):null;return{label:d,...u?.tierId?{tierId:u.tierId}:{}}}),a=await this.api.hold(this.key,s,n.ttlMs);r.clearSelection();let l=this.idsForLabels(o);l.length&&r.setStatus(l,"held"),this.setHold({holdId:a.holdId,labels:[...o],expiresAt:a.expiresAt,items:a.items});let c=o.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:a,reason:l}=hi(s);if(a===409&&l==="event_closed")throw this.opts.onSalesClosed?.(),s}}}if(this.hold_&&!await this.release())return null;try{let o=await this.api.bestAvailable(this.key,e,i,n.zoneId,n.ttlMs);r.clearSelection();let s=this.idsForLabels(o.labels);s.length&&r.setStatus(s,"held"),this.setHold({holdId:o.holdId,labels:[...o.labels],expiresAt:o.expiresAt,items:o.items});let a=o.labels.map(l=>this.labelToSeat.get(l)).filter(l=>!!l).map(l=>this.toSeat(l));return this.opts.onSelectionChange?.(a),this.hold_}catch(o){let{status:s,reason:a}=hi(o);throw s===409&&a==="event_closed"&&this.opts.onSalesClosed?.(),o}}async book(e,i,n){let r=this.renderer;if(!r)return null;if(!this.api.book)throw new Error("picker: transport has no book() \u2014 hold-only mode");let o=i??this.getSelection().map(c=>c.label);if(!o.length)return null;let s=this.ticketIssue(o);if(s)throw new ke(s);let a;try{if(this.hold_&&this.holdCovers(o))a=this.hold_.holdId;else{let c=this.hold_?.holdId,d=await this.api.hold(this.key,o.map(h=>{let u=this.labelToSeat.get(h),m=u?this.toSeat(u):null;return{label:h,...m?.tierId?{tierId:m.tierId}:{},...this.tableQuantityRequest(m)}}),n,c);a=d.holdId,this.setHold({holdId:a,labels:[...o],expiresAt:d.expiresAt,items:d.items})}await this.api.book(this.key,o,a,e)}catch(c){let{status:d,conflicts:h,reason:u}=hi(c);if(this.clearHold(),d===409&&u==="event_closed")this.opts.onSalesClosed?.();else if(d===409&&h?.length){let m=new Set(h.map(p=>p.label)),b=this.idsForLabels(m);b.length&&(r.setStatus(b,"booked"),r.deselect(b),this.resetTableQuantitiesForLabels(m));let f=o.filter(p=>!m.has(p));f.length&&a&&this.api.release(this.key,f,a).catch(()=>{}),this.emitSelectionChange()}else a&&this.api.release(this.key,o,a).catch(()=>{});throw c}let l=this.idsForLabels(o);return l.length&&(r.setStatus(l,"booked"),r.deselect(l)),this.clearHold(),this.resetTableQuantitiesForLabels(o),this.emitSelectionChange(),this.opts.onBook?.(e),o}async release(){let e=this.hold_;if(!e)return!0;try{let n=await this.api.release(this.key,e.labels,e.holdId);if(!this.releaseConfirmed(n,e.labels))return await this.resnapshot(),!1}catch(n){return this.emitError(n),!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 n=e.filter(a=>i.labels.includes(a));if(!n.length)return!0;try{let a=await this.api.release(this.key,n,i.holdId);if(!this.releaseConfirmed(a,n))return await this.resnapshot(),!1}catch(a){return this.emitError(a),!1}if(this.hold_?.holdId!==i.holdId)return!0;let r=i.labels.filter(a=>!n.includes(a)),o=i.items?.filter(a=>!n.includes(a.label));r.length?this.setHold({...i,labels:r,items:o}):this.clearHold(),this.resetTableQuantitiesForLabels(n);let s=this.idsForLabels(n);return s.length&&(this.renderer?.deselect(s),this.renderer?.setStatus(s,"free")),!0}releaseConfirmed(e,i){let n=e?.released;return!Array.isArray(n)||i.every(r=>n.includes(r))}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(r=>r.notForSale).map(r=>r.key));if(!i.size)return[];let n=[];for(let[r,o]of this.seatById)i.has(o.categoryKey)&&n.push(r);return n}flashSeat(e,i){this.renderer?.flashSeat(e,i)}zoomIn(){this.renderer?.zoomIn()}zoomOut(){this.renderer?.zoomOut()}zoomToFit(){this.renderer?.zoomToFit()}refitCurrentView(){this.renderer?.refitCurrentView?this.renderer.refitCurrentView():this.renderer?.zoomToFit()}worldToScreen(e){return this.renderer?.worldToScreen(e)??{x:0,y:0}}setSelectionFocus(e){this.renderer?.setSelectionFocus?.(e)}setAccessibilityFilter(e){this.renderer?.setAccessibilityFilter?.(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"}setRung(e){if(e==="zones"){this.overview();return}this.renderer?.setRung?.(e)}setCategoryFilter(e){this.renderer?.setCategoryFilter?.(e)}focusCategoryFilter(e){let i=this.renderer;if(i){if(i.clearSectionFocus?.(),this.opts.onSectionFocus?.(null),e?.length){let n=this.floorForCategories(e);n&&this.setFloor(n)}i.focusCategories?i.focusCategories(e):i.zoomToFit()}}floorForCategories(e){let i=this._doc;if(!i?.floors||i.floors.length<2)return null;let n=new Set(e),r=a=>a.some(l=>l.type==="row"&&(n.has(l.categoryKey)||(l.overrides??[]).some(c=>c.categoryKey!=null&&n.has(c.categoryKey)))||l.type==="gaArea"&&n.has(l.categoryKey)),o=this.getActiveFloorId(),s=i.floors.find(a=>a.id===o);return s&&r(s.objects)?null:i.floors.find(a=>r(a.objects))?.id??null}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){this.handleSectionTap(e)}getSectionSeatCount(e){return this.renderer?.sectionMembers?.(e)?.length??0}overview(){this.renderer?.clearSectionFocus?.(),this.renderer?.zoomToFit(),this.opts.onSectionFocus?.(null)}handleSectionTap(e){let i=this.renderer;if(i){if(i.focusSection?i.focusSection(e):i.focusRegion?.(e),this.isSectionClosed(e)){this.opts.onSectionFocus?.(null);return}this.opts.onSectionFocus?.(this.sectionSummary(e))}}sectionSummary(e){let i=this.renderer,n=this._doc;if(!i||!n)return null;let r=n.objects.find(b=>b.type==="section"&&b.id===e);if(!r)return null;let o=i.sectionMembers?.(e)??[],s=new Map,a=new Set,l=0;for(let b of o){let f=this.seatById.get(b);if(!f)continue;let p=this.groupedTableBySeatId.get(b);if(p){if(a.has(p.label))continue;a.add(p.label),s.set(p.categoryKey,(s.get(p.categoryKey)??0)+p.maxOccupancy),i.getStatus(p.chairs[0]?.id??b)==="free"&&(l+=p.maxOccupancy)}else s.set(f.categoryKey,(s.get(f.categoryKey)??0)+1),i.getStatus(b)==="free"&&l++}let c=[...s.entries()].map(([b,f])=>{let p=n.categories.find(x=>x.key===b),g=p?.tiers?.length?p.tiers.map(x=>x.price):[p?.price??0],v=Math.min(...g),y=Math.max(...g);return{key:b,count:f,label:p?.label??b,color:p?.color??"#6e7bff",price:v,priceMin:v,priceMax:y}}).sort((b,f)=>b.price-f.price),d=c.map(b=>b.priceMin),h=c.map(b=>b.priceMax),u=r.zone?n.zones?.find(b=>b.id===r.zone):void 0,m=r.color??u?.color??c[0]?.color??"#6e7bff";return{id:e,label:r.displayLabel??r.label,zoneLabel:u?.label??"",...r.entrance&&r.entrance.trim()?{entrance:r.entrance.trim()}:{},color:m,seatsLeft:l,priceMin:d.length?Math.min(...d):0,priceMax:h.length?Math.max(...h):0,categories:c}}destroy(){if(this.closed=!0,this.detachVisibilityListener(),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 n=e.commercial?{commercial:e.commercial}:void 0,r=e.displayLabel?{displayLabel:e.displayLabel}:void 0,o=e.accessibility?.length?{accessibility:e.accessibility}:void 0,s=e.wheelchairSpaceType?{wheelchairSpaceType:e.wheelchairSpaceType}:void 0,a=this.seatContext.get(e.id),l=this.tiersForSeat(e),c=this.seatTierResolution(e);if(c.kind!=="resolved"||!l)return{id:e.id,label:e.label,...r,...a,categoryKey:e.categoryKey,price:this.priceFor(e.categoryKey),currency:this.currency,...n,...o,...s};let d=c.tier;return{id:e.id,label:e.label,...r,...a,categoryKey:e.categoryKey,price:d.price,currency:this.currency,tiers:l,tierId:d.id,...n,...o,...s}}toTableSeat(e){let i=e.chairs[0],n=this.tiersFor(e.categoryKey)?.filter(s=>it(this._doc,this.tableTierSeat(e),s.id).kind==="resolved"),r=this.tableTierResolution(e),o=r.kind==="resolved"?r.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:o?.price??this.priceFor(e.categoryKey),currency:this.currency,...n?{tiers:n,tierId:o?.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){let i=this._doc?.categories.find(n=>n.key===e.categoryKey);return{...this.toSeat(e),categoryLabel:i?.label??e.categoryKey,categoryColor:i?.color??"#6e7bff",status:this.renderer?.getStatus(e.id)??"free",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(n=>n.key===e)?.tiers;return i&&i.length?i:void 0}tiersForSeat(e){if(!this._doc)return;let i=$o(this._doc,e);return i.length?i:void 0}seatTierResolution(e){return this._doc?it(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 it(this._doc,this.tableTierSeat(e),this.seatTiers.get(i))}setSeatTier(e,i){let n=this.seatById.get(e);if(!n)return;let r=this.tiersForSeat(n);if(r){if(i==null)this.seatTiers.delete(e);else if(r.some(o=>o.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 n of e){let r=this.labelToSeat.get(n);r&&i.push(this.toSeat(r))}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 Zo(this._doc,i.map(n=>({label:n.label,...n.tierId?{tierId:n.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"?oe("picker.companionPairRequired"):"That ticket choice is not available for the selected seat.");return}let n=new Set(e.getSelection().map(o=>o.id));(n.size?Ko(this.seatById.values(),o=>e.getStatus(o),n):[]).length>0?(this.hintShown=!0,this.opts.onHint(oe("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(o=>i.labels.includes(o)))return!1;let n=new Map((i.items??[]).map(o=>[o.label,o.tierId])),r=new Map((i.items??[]).map(o=>[o.label,o.quantity??1]));return e.every(o=>{let s=this.labelToSeat.get(o),a=s?this.toSeat(s):null,l=a?.tierId??null;return(a?.objectType!=="table"||(a.bookingMode!=="variable"||this.confirmedVariableTables.has(o))&&(!r.has(o)||r.get(o)===a.quantity))&&(!n.has(o)||n.get(o)===l)})}handle409Conflicts(e){let{status:i,conflicts:n}=hi(e);if(i!==409||!n?.length)return;let r=this.renderer;if(!r)return;let o=this.idsForLabels(n.map(s=>s.label));o.length&&(r.deselect(o),r.setStatus(o,"held"),this.resetTableQuantitiesForLabels(n.map(s=>s.label))),this.emitSelectionChange()}setHold(e,i="created"){for(let o of e.items??[])this.groupedTablesByLabel.has(o.label)&&o.quantity!=null&&(this.tableQuantities.set(o.label,o.quantity),this.groupedTablesByLabel.get(o.label)?.mode==="variable"&&this.confirmedVariableTables.add(o.label));let n={...e,seats:this.seatsForLabels(e.labels)};this.hold_=n,this.renderer?.setOwnedHold?.(this.idsForLabels(n.labels)),this.expiryTimer&&clearTimeout(this.expiryTimer);let r=Math.max(0,n.expiresAt-Date.now());this.expiryTimer=setTimeout(()=>{this.expireActiveHold()},r),i==="restored"?this.opts.onHoldRestored?.(n):this.opts.onHold?.(n)}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(e.labels.some(i=>this.statusOf(i)==="held")){this.expiryTimer=setTimeout(()=>{this.expireActiveHold()},1e3);return}this.clearHold(),this.opts.onHoldExpired?.()}}}applySeatsMap(e,i="free"){let n=this.renderer;if(!n)return;this.liveStatuses=new Map(Object.entries(e)),this.liveDefault=i;let r=fn(i);this.allIds.length&&n.setStatus(this.allIds,r),n.setOwnedHold?.(this.idsForLabels(this.hold_?.labels??[]));let o={free:[],held:[],booked:[],not_for_sale:[]};for(let[a,l]of Object.entries(e))o[fn(l)].push(...this.idsForLabel(a));["free","held","booked","not_for_sale"].forEach(a=>{a!==r&&o[a].length&&n.setStatus(o[a],a)});let s=this.notForSaleCategorySeatIds();s.length&&n.setStatus(s,"not_for_sale"),this.clearBookedHoldIfSettled(),this.opts.onStatusChange?.()}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))}async resnapshot(){try{let e=await this.api.objects(this.key);this.applySeatsMap(e.seats,e.default??"free")}catch{}}async refresh(){await this.resnapshot()}attachVisibilityListener(){if(this.onVisibilityChange||typeof document>"u"||typeof document.addEventListener!="function")return;let e=()=>{this.closed||document.visibilityState==="visible"&&this.resnapshot().then(()=>{this.closed||this.renderer?.forceDraw()})};this.onVisibilityChange=e,document.addEventListener("visibilitychange",e)}detachVisibilityListener(){this.onVisibilityChange&&(typeof document<"u"&&typeof document.removeEventListener=="function"&&document.removeEventListener("visibilitychange",this.onVisibilityChange),this.onVisibilityChange=null)}realtimeSink(){return{applyStatuses:e=>this.applyStatusChanges(e),applyProjection:e=>this.applySeatsMap(e.exceptions,e.default),resync:()=>this.resnapshot(),onSections:(e,i)=>{let n=this.syncHidden(e),r=this.syncClosed(i);n&&this.resnapshot(),(n||r)&&this.opts.onStatusChange?.()}}}applyStatusChanges(e){let i=this.renderer;if(i){for(let n of e){this.liveStatuses.set(n.label,n.status);let r=this.idsForLabel(n.label);if(!r.length)continue;let o=fn(n.status);this.opts.flashOnLiveChange&&o!=="free"&&r.some(s=>i.getStatus(s)==="free")&&!this.hold_?.labels.includes(n.label)&&r.forEach(s=>i.flashSeat(s,o==="held"?"#f4b740":"#f43f5e")),i.setStatus(r,o)}this.opts.keepLiveWhileHidden&&typeof document<"u"&&document.visibilityState==="hidden"&&i.forceDraw(),this.clearBookedHoldIfSettled(),this.opts.onStatusChange?.()}}connect(){if(this.closed)return;let e=this.api.socketUrl(this.key);if(!e)return;if(!this.realtime&&this.api.createRealtime){let n=null;try{n=this.api.createRealtime(this.key,this.realtimeSink())}catch{n=null}if(n){this.realtime=n,n.start();return}}if(this.realtime)return;let i;try{let n=this.api.socketProtocols?.(this.key);i=n&&n.length?new WebSocket(e,n):new WebSocket(e)}catch{this.scheduleReconnect();return}this.ws=i,i.onopen=()=>{this.attempt=0,this.resnapshot()},i.onmessage=n=>{let r;try{r=JSON.parse(typeof n.data=="string"?n.data:"")}catch{return}if(!this.renderer||!r||typeof r!="object")return;let s=r;Array.isArray(s.hidden)&&this.syncHidden(s.hidden)&&(this.resnapshot(),this.opts.onStatusChange?.()),Array.isArray(s.closed)&&this.syncClosed(s.closed)&&this.opts.onStatusChange?.(),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=Uo(e,{baseMs:1e3,maxMs:al,jitter:1});this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},i)}};var cl=5,dl=-1.1,bn=35;function gn(t,e){let i=t-j,n=Math.atan2(cl-i,e)*180/Math.PI,r=Math.atan2(dl-i,e)*180/Math.PI;return r<-bn&&(n+=-bn-r,r=-bn),{topPitch:n,basePitch:r}}var q=2048,pe=1024,Pt=Fe,B=Math.PI*2,ul=pe/180,rt=t=>(t+180)/360*q,H=t=>(90-t)/180*pe;function rs(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 os(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 pi=96,vn=360/pi,hl=.6,yn=[17,23,42];function Sn(t,e,i=1){let n=Math.max(0,Math.min(.58,e)),r=Math.round(t[0]+(yn[0]-t[0])*n),o=Math.round(t[1]+(yn[1]-t[1])*n),s=Math.round(t[2]+(yn[2]-t[2])*n);return`rgba(${r},${o},${s},${i})`}function es(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 te(t,e,i){let n=(1-Math.abs(2*i-1))*e,r=(t%360+360)%360/60,o=n*(1-Math.abs(r%2-1)),s=0,a=0,l=0;r<1?[s,a,l]=[n,o,0]:r<2?[s,a,l]=[o,n,0]:r<3?[s,a,l]=[0,n,o]:r<4?[s,a,l]=[0,o,n]:r<5?[s,a,l]=[o,0,n]:[s,a,l]=[n,0,o];let c=i-n/2;return[Math.round((s+c)*255),Math.round((a+c)*255),Math.round((l+c)*255)]}var ts=new Map;function is(t){if(!t)return null;let e=ts.get(t);if(e)return e;let i=2166136261;for(let o=0;o<t.length;o++)i^=t.charCodeAt(o),i=Math.imul(i,16777619);let n=(i>>>0)%360,r=te(n,.3,.42);return ts.set(t,r),r}function pl(t,e,i,n){let r=new Array(pi).fill(null),o=0,s=t.sectionId;for(let a of e){if(a.id===t.id)continue;let l=a.sectionId;if(!l||s&&l===s)continue;let c=a.x-t.x,d=a.y-t.y,h=Math.hypot(c,d)*Pt;if(h<1.5||h>95)continue;let u=a.eyeHeightM??j,m=u-n;Math.abs(m)>o&&(o=Math.abs(m));let b=Math.atan2(m,h)*180/Math.PI,f=Math.atan2(u-j-n,h)*180/Math.PI,g=((Math.atan2(c,-d)-i)*180/Math.PI+540)%360-180,v=Math.min(pi-1,Math.max(0,Math.floor((g+180)/vn))),y=b>34&&h<16,x=r[v];x?(b>x.top&&(x.top=b),f<x.base&&(x.base=f),h<x.nearM&&(x.nearM=h,x.tint=is(a.categoryKey)),x.overhead=x.overhead||y):r[v]={top:b,base:f,nearM:h,overhead:y,tint:is(a.categoryKey)}}return{bins:r,maxDelta:o}}function fl(t,e,i,n){for(let r=0;r<pi;r++){let o=e[r];if(!o)continue;let s=-180+r*vn,a=i(s),l=i(s+vn);if(!(l>a))continue;let c=Math.min(72,o.top),d=Math.min(o.base,-4),h=n(c),u=n(d);if(u<=h)continue;let m=o.nearM/95,b=o.tint,f=b?es([44,54,80],b,.34):[44,54,80],p=b?es([24,30,48],b,.28):[24,30,48],g=t.createLinearGradient(0,h,0,u);g.addColorStop(0,Sn(f,m)),g.addColorStop(.24,Sn(p,m)),g.addColorStop(1,Sn([10,13,22],m)),t.fillStyle=g,t.fillRect(a,h,l-a+1,u-h),t.fillStyle=`rgba(150,165,205,${.35*(1-m*.55)})`,t.fillRect(a,h,l-a+1,1.5);let y=Math.min(u,n(0))-h;if(y>8){let I=1-m*.4;for(let k=1;k<6;k++){let w=h+y*k/6;t.fillStyle=`rgba(0,0,0,${.16*I})`,t.fillRect(a,w,l-a+1,1.5),t.fillStyle=`rgba(120,134,170,${.1*I})`,t.fillRect(a,w+1.5,l-a+1,1.2)}}if(o.overhead){let x=n(Math.min(86,c+12)),I=t.createLinearGradient(0,x,0,h);I.addColorStop(0,"rgba(3,4,8,0.9)"),I.addColorStop(1,"rgba(3,4,8,0)"),t.fillStyle=I,t.fillRect(a,x,l-a+1,h-x),t.fillStyle="rgba(120,130,160,0.14)",t.fillRect(a,h-1.5,l-a+1,1.5)}}}function ml(t,e,i){let r=new Array(72).fill(!1),o=new Array(72).fill(1/0),s=new Set,a=0;for(let g of i){a++,g.sectionId&&s.add(g.sectionId);let v=g.x-e.x,y=g.y-e.y,x=Math.hypot(v,y)*Pt;if(x<.5)continue;let I=Math.atan2(v,-y),k=Math.floor((I+Math.PI)/B*72);k<0?k=0:k>=72&&(k=71),r[k]=!0,x<o[k]&&(o[k]=x)}let l=0,c=[];for(let g=0;g<72;g++)r[g]&&(l++,c.push(o[g]));let d=l/72*360;c.sort((g,v)=>g-v);let h=c.length?c[c.length>>1]:0,u=c.length?c[Math.floor(c.length*.15)]??h:0,m=c.length?c[Math.floor(c.length*.85)]??h:0,b=u>.5?m/u:1,f=rs(`${a}|${[...s].sort().join(",")}|${Math.round(e.x)},${Math.round(e.y)}`),p;return d>=300&&h>11&&b>1.35?p="sport":d>=285?p="arena":p="proscenium",{mode:p,seed:f,voidRadiusM:h,aspect:b}}var bl=5;function gl(t,e,i){switch(i){case 1:t.beginPath(),t.ellipse(0,-e*.14,e*1.16,e*1.16,0,0,B),t.fill();break;case 2:t.beginPath(),t.ellipse(0,-e*1.02,e*.42,e*.42,0,0,B),t.fill(),t.beginPath(),t.ellipse(0,-e*.2,e*.98,e*1.02,0,0,B),t.fill();break;case 3:t.beginPath(),t.ellipse(0,-e*.36,e*1.04,e*.6,0,Math.PI,B),t.fill(),t.beginPath(),t.ellipse(0,-e*.52,e*1.22,e*.24,0,0,B),t.fill();break;case 4:t.beginPath(),t.ellipse(-e*.66,e*.5,e*.5,e*1.35,0,0,B),t.fill(),t.beginPath(),t.ellipse(e*.66,e*.5,e*.5,e*1.35,0,0,B),t.fill(),t.beginPath(),t.ellipse(0,-e*.08,e*1.06,e*1.08,0,0,B),t.fill();break;default:break}}function yl(t,e,i,n,r){let o=n*.44,s=n*r.shoulderK,a=n*.66,l=n*1.68,c=n*5.4,d=`rgba(${r.clothing[0]},${r.clothing[1]},${r.clothing[2]},${r.alpha})`,h=`rgba(${r.tone[0]},${r.tone[1]},${r.tone[2]},${r.alpha})`;t.save(),t.translate(e,i);let u=r.lean*n;t.fillStyle=d,t.beginPath(),t.moveTo(-o,a),t.quadraticCurveTo(-o*1.18,l-u-n*.6,-s,l-u),t.quadraticCurveTo(-s*1.05,l+n*1.2,-s*.94,c),t.lineTo(s*.94,c),t.quadraticCurveTo(s*1.05,l+n*1.2,s,l+u),t.quadraticCurveTo(o*1.18,l+u-n*.6,o,a),t.closePath(),t.fill(),t.fillStyle=h,t.fillRect(-o*.82,n*.5,o*1.64,n*.9),t.save(),t.rotate(r.tilt),t.translate(r.turn*n,0),t.fillStyle=h,n>=18?(t.beginPath(),t.moveTo(-n*.9,-n*.15),t.quadraticCurveTo(-n*.96,-n*1.12,0,-n*1.06),t.quadraticCurveTo(n*.96,-n*1.12,n*.9,-n*.15),t.quadraticCurveTo(n*.86,n*.55,n*.36,n*.98),t.quadraticCurveTo(0,n*1.14,-n*.36,n*.98),t.quadraticCurveTo(-n*.86,n*.55,-n*.9,-n*.15),t.closePath(),t.fill(),n>=22&&(t.beginPath(),t.ellipse(-n*.9,n*.18,n*.13,n*.22,0,0,B),t.ellipse(n*.9,n*.18,n*.13,n*.22,0,0,B),t.fill())):(t.beginPath(),t.ellipse(0,0,n*.9,n*1.06,0,0,B),t.fill()),gl(t,n,r.hair),r.rim>.01&&(t.strokeStyle=`rgba(245,205,150,${(.5*r.rim).toFixed(3)})`,t.lineWidth=Math.max(1,n*.14),t.beginPath(),t.ellipse(0,-n*.06,n*.86,n*1,0,Math.PI*1.12,Math.PI*1.9),t.stroke()),t.restore(),r.rim>.01&&(t.strokeStyle=`rgba(240,200,150,${(.28*r.rim).toFixed(3)})`,t.lineWidth=Math.max(1,n*.12),t.beginPath(),t.moveTo(-s*.8,l-n*.05),t.quadraticCurveTo(-o,l-n*.75,0,l-n*.82),t.quadraticCurveTo(o,l-n*.75,s*.8,l-n*.05),t.stroke()),t.restore()}function Sl(t,e,i,n,r,o,s){t.fillStyle=`rgba(${r[0]},${r[1]},${r[2]},${s})`,t.beginPath(),t.moveTo(e-n*1.72,i+n*4),t.quadraticCurveTo(e-n*1.78,i+n*1.55,e-n*.46,i+n*1.02),t.lineTo(e-n*.4,i+n*.62),t.lineTo(e+n*.4,i+n*.62),t.lineTo(e+n*.46,i+n*1.02),t.quadraticCurveTo(e+n*1.78,i+n*1.55,e+n*1.72,i+n*4),t.closePath(),t.fill(),t.fillStyle=`rgba(${o[0]},${o[1]},${o[2]},${s})`,t.beginPath(),t.ellipse(e,i,n*.9,n*1.05,0,0,B),t.fill()}function xn(t,e,i,n,r){let o=n*.1,s=i-n*.9,a=i-n*.74,l=i-n*.46,c=n*.13,d=n*.09,h=`rgba(${r.tone[0]},${r.tone[1]},${r.tone[2]},${r.alpha})`,u=t.createRadialGradient(e,i,1,e,i,n*.24);u.addColorStop(0,"rgba(0,0,0,0.4)"),u.addColorStop(1,"rgba(0,0,0,0)"),t.save(),t.scale(1,.28),t.fillStyle=u,t.beginPath(),t.ellipse(e,i/.28,n*.24,n*.24,0,0,B),t.fill(),t.restore(),t.fillStyle=h,t.beginPath(),t.moveTo(e-d,l),t.lineTo(e-d*.7,i),t.lineTo(e-d*.1,i),t.lineTo(e-d*.1,l+n*.02),t.lineTo(e+d*.1,l+n*.02),t.lineTo(e+d*.1,i),t.lineTo(e+d*.7,i),t.lineTo(e+d,l),t.closePath(),t.fill(),t.beginPath(),t.moveTo(e-c,a),t.quadraticCurveTo(e-c*.9,l-n*.12,e-d,l),t.lineTo(e+d,l),t.quadraticCurveTo(e+c*.9,l-n*.12,e+c,a),t.quadraticCurveTo(e,a-n*.05,e-c,a),t.closePath(),t.fill(),t.lineCap="round",t.lineJoin="round",t.strokeStyle=h,t.lineWidth=n*.055;let m=a+n*.02;r.pose===1?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e-c*1.5,i-n*1.02),t.moveTo(e+c*.8,m),t.lineTo(e+c*1.5,i-n*1.02),t.stroke()):r.pose===2?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e+d*1.4,l-n*.02),t.moveTo(e+c*.8,m),t.lineTo(e-d*.4,l-n*.06),t.stroke(),t.fillStyle=h,t.beginPath(),t.ellipse(e+d*1.5,l-n*.04,n*.07,n*.09,-.5,0,B),t.fill()):r.pose===3?(t.beginPath(),t.moveTo(e-c*.8,m),t.lineTo(e-c*.2,s+o*.6),t.moveTo(e+c*.8,m),t.lineTo(e+c*1.1,l),t.stroke(),t.lineWidth=n*.02,t.beginPath(),t.moveTo(e-c*.2,s+o*.9),t.lineTo(e-c*.2,i-n*.02),t.stroke()):(t.beginPath(),t.moveTo(e-c*.85,m),t.lineTo(e-c*.95,l+n*.02),t.moveTo(e+c*.85,m),t.lineTo(e+c*.95,l+n*.02),t.stroke()),t.fillStyle=h,t.fillRect(e-o*.34,s+o*.6,o*.68,o*.9),t.beginPath(),t.ellipse(e,s,o*.86,o*1.05,0,0,B),t.fill(),r.rimStrength>.01&&(t.strokeStyle=`rgba(${r.rim[0]},${r.rim[1]},${r.rim[2]},${(.6*r.rimStrength).toFixed(3)})`,t.lineWidth=Math.max(1,n*.02),t.beginPath(),t.moveTo(e-c,a),t.lineTo(e-o*.6,s+o*.4),t.moveTo(e-o*.7,s),t.ellipse(e,s,o*.84,o*1.02,0,Math.PI*1.05,Math.PI*1.55),t.stroke())}function fi(t,e,i,n,r,o,s,a,l){t.save(),t.globalCompositeOperation="lighter";let c=t.createLinearGradient(0,i,0,r);c.addColorStop(0,`rgba(${a},${l})`),c.addColorStop(.5,`rgba(${a},${(l*.4).toFixed(3)})`),c.addColorStop(1,`rgba(${a},0)`),t.fillStyle=c,t.beginPath(),t.moveTo(e-o,i),t.lineTo(n-s,r),t.lineTo(n+s,r),t.lineTo(e+o,i),t.closePath(),t.fill(),t.restore()}function wn(t,e,i,n,r){let o=t.createRadialGradient(e,i,0,e,i,n*3);o.addColorStop(0,`rgba(${r},0.9)`),o.addColorStop(.4,`rgba(${r},0.35)`),o.addColorStop(1,`rgba(${r},0)`),t.fillStyle=o,t.beginPath(),t.arc(e,i,n*3,0,B),t.fill(),t.fillStyle=`rgba(${r},1)`,t.beginPath(),t.arc(e,i,n,0,B),t.fill()}function vl(t,e,i){let n=document.createElement("canvas");n.width=q,n.height=pe;let r=n.getContext("2d"),o=e.x-t.x,s=e.y-t.y,a=Math.hypot(o,s),l=Math.max(2,a*Pt),c=t.eyeHeightM??j,d=ml(t,e,i),h=os(d.seed),u=210+h()*150,m=te(220+(h()-.5)*60,.55,.82),b=`${m[0]},${m[1]},${m[2]}`,f=r.createLinearGradient(0,0,0,pe);f.addColorStop(0,"#080b12"),f.addColorStop(.42,"#12182c"),f.addColorStop(.5,"#1c2440"),f.addColorStop(.56,"#151b2c"),f.addColorStop(.78,"#171e30"),f.addColorStop(1,"#131829"),r.fillStyle=f,r.fillRect(0,0,q,pe);let p=r.createLinearGradient(0,H(-6),0,pe);p.addColorStop(0,"rgba(30, 37, 56, 0)"),p.addColorStop(.55,"rgba(30, 37, 56, 0.22)"),p.addColorStop(1,"rgba(22, 28, 44, 0.12)"),r.fillStyle=p,r.fillRect(0,H(-6),q,pe-H(-6));let g=Math.atan2(o,-s),v=pl(t,i,g,c),y=v.maxDelta>=hl;y&&fl(r,v.bins,rt,H);let x=Math.max(.3,Math.min(1,1-(l-6)/60)),I=gn(c,l),k=Math.min(80,Math.atan2(4,l)*180/Math.PI),w=Math.min(45,I.topPitch),M=I.basePitch;d.mode==="sport"?wl(r,l,c,d,x,u,b,h):d.mode==="arena"?xl(r,l,c,d,x,b,h):kl(r,k,w,M,x,u,b,h);let C=d.mode==="sport"?34:24+Math.floor(h()*8);r.fillStyle=`rgba(${b},0.8)`;for(let R=0;R<C;R++){let S=(R+.5)/C*q,L=H(d.mode==="sport"?58:54+R*7%3*6);r.beginPath(),r.arc(S,L,d.mode==="sport"?2.6:3.2,0,B),r.fill()}Il(r,t,i,e,g,c,o,s,y,d);let T=r.createLinearGradient(0,0,0,pe);return T.addColorStop(0,"rgba(0,0,0,0.85)"),T.addColorStop(.12,"rgba(0,0,0,0)"),T.addColorStop(.9,"rgba(0,0,0,0)"),T.addColorStop(1,"rgba(0,0,0,0.55)"),r.fillStyle=T,r.fillRect(0,0,q,pe),{url:n.toDataURL("image/jpeg",.82),distanceM:Math.round(l)}}function kl(t,e,i,n,r,o,s,a){let l=rt(-e),c=rt(e),d=H(i),h=H(n),u=c-l,m=h-d,b=H(Math.min(50,i+10)),f=u*(1.1+(1-r)*.5),p=t.createRadialGradient(q/2,(d+h)/2,8,q/2,(d+h)/2,f);p.addColorStop(0,"rgba(255, 214, 150, 0.34)"),p.addColorStop(.28,"rgba(150, 150, 230, 0.3)"),p.addColorStop(.6,"rgba(99, 102, 241, 0.12)"),p.addColorStop(1,"rgba(99, 102, 241, 0)"),t.fillStyle=p,t.fillRect(l-u*.6,d-m*1.2,u*2.2,m*3.4);let g=te(o,.62,.55),v=te(o+40,.7,.5),y=te(o+70,.78,.52);t.save(),t.beginPath(),t.rect(l,d,u,m),t.clip();let x=t.createLinearGradient(0,d,0,h);x.addColorStop(0,`rgb(${g[0]},${g[1]},${g[2]})`),x.addColorStop(.5,`rgb(${v[0]},${v[1]},${v[2]})`),x.addColorStop(1,`rgb(${y[0]},${y[1]},${y[2]})`),t.globalAlpha=.8,t.fillStyle=x,t.fillRect(l,d,u,m),t.globalAlpha=1;let I=t.createRadialGradient(q/2,(d+h)/2,u*.12,q/2,(d+h)/2,u*.62);I.addColorStop(0,"rgba(6,8,14,0)"),I.addColorStop(.7,"rgba(6,8,14,0.15)"),I.addColorStop(1,"rgba(5,6,11,0.92)"),t.fillStyle=I,t.fillRect(l,d,u,m),t.restore();let k=3+Math.floor(a()*3),w=m*.46,M=h-m*.08;for(let F=0;F<k;F++){let W=(F+1)/(k+1),_=l+u*(.22+W*.56+(a()-.5)*.06);xn(t,_,M,w*(.9+a()*.24),{tone:[8,10,16],alpha:.9,pose:Math.floor(a()*4),rim:te(o+20,.5,.7),rimStrength:.7})}t.fillStyle="#05070d",t.fillRect(l-u*.5,b,u*.5,h-b),t.fillRect(c,b,u*.5,h-b);let C=u*.055+3,T=C*1.35;t.fillStyle="#03050a",t.beginPath(),t.moveTo(l,h),t.lineTo(l-C,h),t.lineTo(l-T,b),t.lineTo(l+u*.012,b),t.closePath(),t.fill(),t.beginPath(),t.moveTo(c,h),t.lineTo(c+C,h),t.lineTo(c+T,b),t.lineTo(c-u*.012,b),t.closePath(),t.fill(),t.fillRect(l-T,b,u+T*2,(h-b)*.12);let R=m*.14,S=b+(h-b)*.12;t.fillStyle="rgba(4,6,12,0.96)";let L=7;t.beginPath(),t.moveTo(l-T,S);for(let F=0;F<=L;F++){let W=l-T+(u+T*2)*F/L;t.quadraticCurveTo(W-(u+T*2)/L/2,S+R,W,S)}t.lineTo(c+T,S),t.lineTo(c+T,b),t.lineTo(l-T,b),t.closePath(),t.fill(),t.fillStyle=`rgba(${s},0.12)`,t.fillRect(l-1.5,S,1.5,h-S),t.fillRect(c,S,1.5,h-S),t.fillStyle="#0b0f18",t.fillRect(l-C,h-m*.05,u+C*2,m*.05+3);let E=t.createLinearGradient(0,h-m*.05,0,h+m*.12);E.addColorStop(0,`rgba(255,206,140,${(.5*r).toFixed(3)})`),E.addColorStop(1,"rgba(255,206,140,0)"),t.fillStyle=E,t.fillRect(l-C,h-m*.05,u+C*2,m*.2);let O=3+Math.floor(a()*2);for(let F=0;F<O;F++){let W=(F+1)/(O+1),_=l+u*(W+(a()-.5)*.08),N=H(Math.min(62,i+26)),X=(a()-.5)*u*.16;fi(t,_,N,_+X,h,4,u*.09,s,.16*(.7+r*.5)),wn(t,_,N,2.4,s)}}function xl(t,e,i,n,r,o,s){let a=Math.min(e*.6,Math.max(3,n.voidRadiusM)),l=Math.min(55,Math.atan2(a,e)*180/Math.PI),c=q/2,d=1.2,h=Math.max(e*.45,e-a),u=e+a,m=Math.atan2(d-i,h)*180/Math.PI,b=Math.atan2(d-i,u)*180/Math.PI,f=Math.atan2(-i,h)*180/Math.PI,p=H(m),g=H(b),v=H(f),y=rt(l)-c,x=Math.max(6,(p-g)/2),I=(p+g)/2,k=t.createRadialGradient(c,v,4,c,v,y*2.6);k.addColorStop(0,`rgba(255,206,150,${(.2*r).toFixed(3)})`),k.addColorStop(.5,"rgba(150,140,190,0.08)"),k.addColorStop(1,"rgba(40,44,60,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=k,t.fillRect(c-y*2.6,g-x,y*5.2,v-g+x+40),t.restore(),t.fillStyle="#0c1019",t.beginPath(),t.moveTo(c-y,I),t.ellipse(c,I,y,x,0,Math.PI,0,!1),t.lineTo(c+y,v),t.ellipse(c,v,y,x,0,0,Math.PI,!1),t.closePath(),t.fill();let w=t.createLinearGradient(0,I,0,v);w.addColorStop(0,`rgba(${o},0.14)`),w.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=w,t.fillRect(c-y,I,y*2,v-I);let M=[[{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}]],C=M[Math.floor(s()*M.length)],T=s()<.5?-1:1,R=G=>c+G.u*T*y*.84,S=G=>I+G.v*x*.8,L=C.find(G=>G.lead)??C[0],E=R(L),O=t.createLinearGradient(0,I-x,0,I+x);O.addColorStop(0,"#3d4a72"),O.addColorStop(1,"#232b47"),t.fillStyle=O,t.beginPath(),t.ellipse(c,I,y,x,0,0,B),t.fill();let F=t.createRadialGradient(E,I,2,E,I,y);F.addColorStop(0,`rgba(255,214,160,${(.5*r).toFixed(3)})`),F.addColorStop(1,"rgba(255,214,160,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=F,t.beginPath(),t.ellipse(c,I,y,x,0,0,B),t.fill(),t.restore(),t.strokeStyle=`rgba(${o},0.7)`,t.lineWidth=2,t.beginPath(),t.ellipse(c,I,y,x,0,0,B),t.stroke();let W=Math.max(24,(v-g)*1.3),_=C.length>=3?3:2;for(let G=0;G<_;G++){let fe=(-.62+G*.52+(s()-.5)*.12)*-T,Me=c+fe*y*.7,ot=I-x*(.45+s()*.18),Be=y*(.07+s()*.04),Si=W*(.26+s()*.12);t.fillStyle="#0a0e18",t.fillRect(Me-Be/2,ot-Si,Be,Si),t.fillStyle=`rgba(${o},0.3)`,t.fillRect(Me-Be/2,ot-Si,Be,1.5)}if(C.length>=3){let G=c-L.u*T*y*.4;t.fillStyle="#0b0f1a",t.beginPath(),t.ellipse(G,I-x*.34,y*.08,x*.1,0,0,B),t.fill(),t.strokeStyle=`rgba(${o},0.35)`,t.lineWidth=1,t.stroke()}for(let G of[...C].sort((fe,Me)=>fe.v-Me.v)){let fe=.82+(G.v+1)*.14;xn(t,R(G),S(G),W*fe*(G.lead?1.06:.92),{tone:[18,21,34],alpha:.95,pose:G.pose,rim:te(40,.72,.8),rimStrength:G.lead?1.4:.9})}let N=H(Math.min(60,b+34)),X=x*1.1+6;t.strokeStyle="rgba(60,68,92,0.85)",t.lineWidth=3,t.beginPath(),t.ellipse(c,N,y*1.15,X,0,0,B),t.stroke();let D=4+Math.floor(s()*3);for(let G=0;G<D;G++){let fe=G/D*B,Me=c+Math.cos(fe)*y*1.15,ot=N+Math.sin(fe)*X;if(Math.sin(fe)>-.2){let Be=c+(s()-.5)*y*.8;fi(t,Me,ot,Be,I,3,y*.32,o,.2*(.7+r*.4))}wn(t,Me,ot,3,o)}let z=H(Math.min(52,b+24)),P=Math.max(60,y*.4),$=Math.max(24,P*.34);t.strokeStyle="rgba(70,78,102,0.6)",t.lineWidth=1.5,t.beginPath(),t.moveTo(c-P*.3,z-$/2),t.lineTo(c-P*.16,z-$*2.2),t.moveTo(c+P*.3,z-$/2),t.lineTo(c+P*.16,z-$*2.2),t.stroke(),t.fillStyle="#0d1220",t.fillRect(c-P/2,z-$/2,P,$);let mi=t.createLinearGradient(0,z-$*.3,0,z+$*.42);mi.addColorStop(0,`rgba(${o},0.5)`),mi.addColorStop(1,"rgba(255,214,160,0.32)"),t.fillStyle=mi,t.fillRect(c-P*.42,z-$*.3,P*.84,$*.72),t.fillStyle="rgba(255,214,160,0.55)",t.fillRect(c-P/2,z+$/2-2,P,2);let bi=t.createRadialGradient(c,z,4,c,z,P*1.1);bi.addColorStop(0,`rgba(${o},0.2)`),bi.addColorStop(1,"rgba(0,0,0,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=bi,t.fillRect(c-P*1.1,z-P*.8,P*2.2,P*1.6);let gi=t.createRadialGradient(c,(N+I)/2,6,c,(N+I)/2,y*1.5);gi.addColorStop(0,`rgba(${o},${(.1*(.6+r*.5)).toFixed(3)})`),gi.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=gi,t.fillRect(c-y*1.5,N-40,y*3,I-N+80),t.restore();let ps=c+Math.sign(E-c||1)*y*.5;fi(t,ps,N-X*.4,E,S(L),2.5,y*.16,"255,224,178",.42*(.7+r*.4));let yi=t.createRadialGradient(E,S(L),1,E,S(L),y*.2);yi.addColorStop(0,`rgba(255,228,185,${(.4*r).toFixed(3)})`),yi.addColorStop(1,"rgba(255,228,185,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=yi,t.beginPath(),t.ellipse(E,S(L),y*.2,x*.24,0,0,B),t.fill(),t.restore()}function wl(t,e,i,n,r,o,s,a){let l=q/2,c=Math.max(10,n.voidRadiusM),d=Math.max(2,e-c),h=e+c,u=Math.min(78,Math.atan2(c*1.15,e)*180/Math.PI),m=Math.atan2(-i,d)*180/Math.PI,b=Math.atan2(-i,h)*180/Math.PI,f=H(m),p=H(b),g=rt(u)-l,v=(f+p)/2,y=Math.max(10,(f-p)/2),x=t.createRadialGradient(l,v,4,l,v,g);x.addColorStop(0,"#e8f0fb"),x.addColorStop(.7,"#b9c9e2"),x.addColorStop(1,"#8fa3c4"),t.save(),t.beginPath(),t.ellipse(l,v,g,y,0,0,B),t.clip(),t.fillStyle=x,t.fillRect(l-g,v-y,g*2,y*2),t.strokeStyle="rgba(90,120,170,0.5)",t.lineWidth=3,t.beginPath(),t.moveTo(l,v-y),t.lineTo(l,v+y),t.moveTo(l-g*.5,v-y),t.lineTo(l-g*.5,v+y),t.moveTo(l+g*.5,v-y),t.lineTo(l+g*.5,v+y),t.stroke(),t.strokeStyle="rgba(180,90,110,0.45)",t.beginPath(),t.ellipse(l,v,y*.9,y*.5,0,0,B),t.stroke(),t.restore(),t.strokeStyle="rgba(210,225,245,0.6)",t.lineWidth=2.5,t.beginPath(),t.ellipse(l,v,g,y,0,0,B),t.stroke(),t.fillStyle="rgba(20,26,40,0.8)";for(let R=0;R<5;R++){let S=l+(a()-.5)*g*1.4,L=v+(a()-.5)*y*1.1,E=Math.max(2,y*.06);t.beginPath(),t.ellipse(S,L,E*.6,E,0,0,B),t.fill()}let I=t.createRadialGradient(l,v,4,l,v,g*1.4);I.addColorStop(0,"rgba(200,220,255,0.12)"),I.addColorStop(1,"rgba(200,220,255,0)"),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=I,t.fillRect(l-g*1.4,p-y,g*2.8,f-p+y*2),t.restore();let k=H(Math.min(66,b+60)),w=Math.max(80,g*.7),M=w*.5,C=t.createRadialGradient(l,k,4,l,k,w*1.6);C.addColorStop(0,`rgba(${s},0.3)`),C.addColorStop(1,`rgba(${s},0)`),t.save(),t.globalCompositeOperation="lighter",t.fillStyle=C,t.fillRect(l-w*1.6,k-w*1.2,w*3.2,w*2.4),t.restore(),t.fillStyle="#080b12",t.beginPath(),t.moveTo(l-w/2,k-M/2),t.lineTo(l+w/2,k-M/2),t.lineTo(l+w*.6,k),t.lineTo(l+w/2,k+M/2),t.lineTo(l-w/2,k+M/2),t.lineTo(l-w*.6,k),t.closePath(),t.fill();let T=o;for(let R=0;R<3;R++){let S=te(T+R*30,.5,.5);t.fillStyle=`rgba(${S[0]},${S[1]},${S[2]},0.75)`;let L=w*.26;t.fillRect(l-w*.42+R*(L+w*.06),k-M*.32,L,M*.64)}t.fillStyle=`rgba(${s},0.9)`;for(let R=0;R<8;R++){let S=l-w*.6+w*1.2*R/7;t.beginPath(),t.arc(S,k+M*.62,2.4,0,B),t.fill()}}function Il(t,e,i,n,r,o,s,a,l,c){let d=e.sectionId,h=!1,u=[];for(let f of i){if(f.id===e.id)continue;let p=f.x-e.x,g=f.y-e.y,v=Math.hypot(p,g)*Pt;if(d&&f.sectionId===d&&v<3&&p*s+g*a>0&&(h=!0),v<.3||v>32)continue;let x=((Math.atan2(p,-g)-r)*180/Math.PI+540)%360-180,I=l?(f.eyeHeightM??j)-o:0,k=Math.atan2(I-.28,v)*180/Math.PI;if(k>10&&v>5)continue;let w=0;for(let T=0;T<f.id.length;T++)w=w*31+f.id.charCodeAt(T)&65535;let M=.9+(w&15)/40,C=Math.min(78,Math.atan2(.16,v)*180/Math.PI*ul*M);C<1.2||u.push({hx:rt(x),hy:H(k),r:C,d:v,hash:w})}u.sort((f,p)=>p.d-f.d);let m=[];{let f=[...u].sort((v,y)=>v.hy-y.hy),p=[],g=()=>{if(!p.length)return;let v=p.reduce((I,k)=>I+k.d,0)/p.length,y=p.reduce((I,k)=>I+k.hy,0)/p.length,x=p.reduce((I,k)=>I+k.r,0)/p.length;m.push({figs:p.sort((I,k)=>k.d-I.d),d:v,hy:y,r:x}),p=[]};for(let v of f){let y=p[p.length-1];y&&Math.abs(v.hy-y.hy)>Math.max(5,(y.r+v.r)/2*1.7)&&g(),p.push(v)}g()}m.sort((f,p)=>p.d-f.d);let b=[[22,26,40],[28,27,42],[24,31,46],[31,30,47],[20,24,36]];for(let f of m){if(f.figs.length>=3&&f.r>=1.6&&f.r<26){let p=[],g=[...f.figs].sort((x,I)=>x.hx-I.hx),v=[];for(let x of g){let I=v[v.length-1];I&&x.hx-I.hx>Math.max(14,x.r*7)&&(v.length>=3&&p.push(v),v=[]),v.push(x)}v.length>=3&&p.push(v);let y=Math.min(.42,.5*(1-f.d/42));if(y>.05){t.fillStyle=`rgba(15, 19, 31, ${y.toFixed(3)})`;for(let x of p){let I=x[0].hx-f.r*1.6,k=x[x.length-1].hx+f.r*1.6;t.beginPath(),t.roundRect(I,f.hy+f.r*.8,k-I,f.r*2.4,f.r*.8),t.fill()}}}for(let p of f.figs){let g=p.d<12?.95:p.d<17?Math.max(.66,.95-(p.d-12)/18):Math.max(.3,.68-(p.d-17)/34),v=Math.round((1-Math.min(1,p.d/16))*10),y=[14+(p.hash>>4&6)+v,17+(p.hash>>4&6)+v,25+(p.hash>>4&6)+v],x=b[p.hash%b.length],I=[x[0]+v,x[1]+v,x[2]+v];if(p.r>=13){let k=p.d<9?.16*(1-p.d/9)+(c.mode==="proscenium"?.06:0):0;yl(t,p.hx,p.hy,p.r,{tone:y,clothing:I,alpha:g,tilt:((p.hash>>2&7)-3.5)*.018,shoulderK:1.72+(p.hash>>5&7)/22,hair:p.hash%bl,rim:k,turn:((p.hash>>8&7)-3.5)*.034,lean:((p.hash>>10&3)-1.5)*.09})}else p.r>=5.5?Sl(t,p.hx,p.hy,p.r,I,y,g):(t.fillStyle=`rgba(${y[0]},${y[1]},${y[2]},${g.toFixed(3)})`,t.beginPath(),t.arc(p.hx,p.hy,p.r,0,B),t.fill(),t.beginPath(),t.ellipse(p.hx,p.hy+p.r*1.4,p.r*1.85,p.r*.95,0,Math.PI,0,!0),t.fill())}}if(h){let f=H(-34);t.fillStyle="rgba(6, 8, 14, 0.92)",t.fillRect(0,f,q,pe-f),t.fillStyle="rgba(24, 30, 46, 0.9)";let p=16;for(let g=0;g<p;g++){let v=(g+.5)/p*q;t.beginPath(),t.ellipse(v,f+6,q/p*.42,22,0,Math.PI,0,!0),t.fill()}}}var ne=480,nt=270,kn=50,Ae=30,ns=t=>(t+kn)/(2*kn)*ne,Mt=t=>(Ae-t)/(2*Ae)*nt;function Ll(t,e,i){let n=document.createElement("canvas");n.width=ne,n.height=nt;let r=n.getContext("2d"),o=e.x-t.x,s=e.y-t.y,a=Math.max(2,Math.hypot(o,s)*Pt),l=os(rs(`${t.id}|${Math.round(e.x)},${Math.round(e.y)}`)),c=210+l()*150,d=te(220+(l()-.5)*60,.55,.82),h=`${d[0]},${d[1]},${d[2]}`,u=r.createLinearGradient(0,0,0,nt);u.addColorStop(0,"#080b12"),u.addColorStop(.44,"#151c32"),u.addColorStop(.5,"#1d2644"),u.addColorStop(.58,"#161c2e"),u.addColorStop(1,"#131829"),r.fillStyle=u,r.fillRect(0,0,ne,nt);let m=t.eyeHeightM??j,b=gn(m,a),f=Math.min(kn-2,Math.atan2(4,a)*180/Math.PI),p=Math.min(Ae-2,b.topPitch),g=Math.max(-Ae+2,b.basePitch),v=ns(-f),y=ns(f),x=Mt(p),I=Mt(g),k=y-v,w=I-x,M=Math.max(.35,Math.min(1,1-(a-6)/60)),C=Mt(Math.min(Ae-1,p+8)),T=r.createRadialGradient(ne/2,(x+I)/2,4,ne/2,(x+I)/2,k*1.15);T.addColorStop(0,"rgba(255,214,150,0.34)"),T.addColorStop(.28,"rgba(150,150,230,0.3)"),T.addColorStop(.6,"rgba(99,102,241,0.12)"),T.addColorStop(1,"rgba(99,102,241,0)"),r.fillStyle=T,r.fillRect(v-k*.6,x-w*1.2,k*2.2,w*3.4);let R=te(c,.62,.55),S=te(c+40,.7,.5),L=te(c+70,.78,.52);r.save(),r.beginPath(),r.rect(v,x,k,w),r.clip();let E=r.createLinearGradient(0,x,0,I);E.addColorStop(0,`rgb(${R[0]},${R[1]},${R[2]})`),E.addColorStop(.5,`rgb(${S[0]},${S[1]},${S[2]})`),E.addColorStop(1,`rgb(${L[0]},${L[1]},${L[2]})`),r.globalAlpha=.8,r.fillStyle=E,r.fillRect(v,x,k,w),r.globalAlpha=1;let O=r.createRadialGradient(ne/2,(x+I)/2,k*.12,ne/2,(x+I)/2,k*.6);O.addColorStop(0,"rgba(6,8,14,0)"),O.addColorStop(.7,"rgba(6,8,14,0.15)"),O.addColorStop(1,"rgba(5,6,11,0.9)"),r.fillStyle=O,r.fillRect(v,x,k,w),r.restore();let F=3,W=I-w*.08;for(let D=0;D<F;D++){let z=(D+1)/(F+1);xn(r,v+k*(.24+z*.52),W,w*.46*(.9+l()*.24),{tone:[8,10,16],alpha:.9,pose:Math.floor(l()*4),rim:te(c+20,.5,.7),rimStrength:.7})}r.fillStyle="#05070d",r.fillRect(v-k*.5,C,k*.5,I-C),r.fillRect(y,C,k*.5,I-C);let _=k*.05+2,N=_*1.35;r.fillStyle="#03050a",r.beginPath(),r.moveTo(v,I),r.lineTo(v-_,I),r.lineTo(v-N,C),r.lineTo(v+k*.012,C),r.closePath(),r.fill(),r.beginPath(),r.moveTo(y,I),r.lineTo(y+_,I),r.lineTo(y+N,C),r.lineTo(y-k*.012,C),r.closePath(),r.fill(),r.fillRect(v-N,C,k+N*2,(I-C)*.13),r.fillStyle=`rgba(${h},0.12)`,r.fillRect(v-1.2,C,1.2,I-C),r.fillRect(y,C,1.2,I-C),r.fillStyle="#0b0f18",r.fillRect(v-_,I-w*.05,k+_*2,w*.05+2);let X=r.createLinearGradient(0,I-w*.05,0,I+w*.14);X.addColorStop(0,`rgba(255,206,140,${(.5*M).toFixed(3)})`),X.addColorStop(1,"rgba(255,206,140,0)"),r.fillStyle=X,r.fillRect(v-_,I-w*.05,k+_*2,w*.22);for(let D=0;D<3;D++){let z=(D+1)/4,P=v+k*z,$=Mt(Math.min(Ae-1,p+20));fi(r,P,$,P+(l()-.5)*k*.14,I,3,k*.09,h,.17*M),wn(r,P,$,1.8,h)}r.fillStyle=`rgba(${h},0.75)`;for(let D=0;D<8;D++)r.beginPath(),r.arc((D+.5)/8*ne,Mt(Ae-4-D%2*3),2.2,0,B),r.fill();r.fillStyle="rgba(10,13,20,0.9)",r.fillRect(0,nt-26,ne,26),r.fillStyle="rgba(30,37,54,0.9)";for(let D=0;D<9;D++){let z=D*(ne/9)+ne/18;r.beginPath(),r.ellipse(z,nt-22,ne/9*.4,15,0,Math.PI,0,!0),r.fill()}return{url:n.toDataURL("image/jpeg",.8),distanceM:Math.round(a)}}var Pl={es:()=>Promise.resolve().then(()=>(as(),ss)).then(t=>({default:t.es})),de:()=>Promise.resolve().then(()=>(cs(),ls)).then(t=>({default:t.de})),fr:()=>Promise.resolve().then(()=>(us(),ds)).then(t=>({default:t.fr}))},hs=new Set(["en"]);async function Rl(t){let e=$i(t);if(e==="en"||hs.has(e))return ft(e),e;try{let i=await Pl[e]();return ft(e,i.default),hs.add(e),e}catch{return ft("en"),"en"}}0&&(module.exports={ACCESSIBILITY_RING_COLOR,ACCESSIBILITY_TYPES,CHART_STORAGE_KEY,CURRENCY_CHOICES,DEFAULT_CURRENCY,LABEL_STYLE_MAX_SIZE,LABEL_STYLE_MIN_SIZE,MAX_EVENT_INVENTORY,MAX_GA_CAPACITY,PickerController,PickerSelectionError,RENDERED_QUALITY_REPORT_VERSION,SEAT_COMMERCIAL_MARKS,SUPPORTED_LOCALES,SURROUNDINGS_SHAPE_ROLES,SeatmapRenderer,TIER_HEIGHT_M,UNGROUPED_ID,accessibilityMeta,accessibilityRingColor,allObjects,applyHidden,chartBounds,computeSections,createRenderer,currencyExponent,currencySymbol,expandBooth,expandChart,expandRow,expandRowSlots,expandTable,expandTableSlots,floorObjects,floorOverviewTranslations,floorsOf,formatDate,formatMinor,formatMoney,fromMinorUnits,gaAreasOf,gaInventorySegments,gaUnitLabel,gaUnitLabels,generateSeatPanorama,generateSeatThumb,getLocale,growJoinedGAInventory,hiddenObjectIds,inspectRenderedQualityEvidence,isGaUnitLabel,isSectionHidden,layerOf,layoutFloorOverview,loadLocale,objectCenter,owningSectionForObject,pointInPolygon,pointInPolygonWithHoles,polygonLabelPoint,resolveLocale,rowInventoryCount,rowSeatPositions,seatCommercialMeta,sectionGeometry,setLocale,setMoneyLocale,setStringOverrides,stackFloors,t,tCount,tableInventoryCount,tableSeatCountsBySide,translateObject,validGAInventorySegments});