@seatlayer/core 0.71.2 → 0.71.3
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.
- package/dist/ar-WXDW7P4F.js +1 -0
- package/dist/be-OZ73MTYV.js +1 -0
- package/dist/bg-NXBQVQ7X.js +1 -0
- package/dist/ca-4J7PKGEP.js +1 -0
- package/dist/chunk-AB4ALUEW.js +1 -0
- package/dist/{chunk-UHPX2P7O.js → chunk-FBRBY6NE.js} +1 -1
- package/dist/{chunk-AWPHGLTU.js → chunk-GK4ILJFB.js} +1 -1
- package/dist/{chunk-5AHUGRHH.js → chunk-TQWKQGXF.js} +1 -1
- package/dist/core/chart-ops/index.js +1 -1
- package/dist/core/inventory/index.d.cts +2 -2
- package/dist/core/inventory/index.d.ts +2 -2
- package/dist/core/inventory/index.js +1 -1
- package/dist/core/layout/index.d.cts +2 -2
- package/dist/core/layout/index.d.ts +2 -2
- package/dist/core/quality/index.d.cts +2 -2
- package/dist/core/quality/index.d.ts +2 -2
- package/dist/core/sections/index.d.cts +1 -1
- package/dist/core/sections/index.d.ts +1 -1
- package/dist/cs-HOVL5PRG.js +1 -0
- package/dist/{cy-XWYNMRNE.js → cy-KJLPIGNL.js} +1 -1
- package/dist/da-4YKKGJN6.js +1 -0
- package/dist/de-QYK4NJIH.js +1 -0
- package/dist/el-XLXQE4YH.js +1 -0
- package/dist/es-IXMCGRNZ.js +1 -0
- package/dist/et-HK6GEAPP.js +1 -0
- package/dist/fa-RZT7N54K.js +1 -0
- package/dist/fi-NQN2STMX.js +1 -0
- package/dist/fr-AK5TYGQK.js +1 -0
- package/dist/he-CMVTS5LG.js +1 -0
- package/dist/{hr-AIG6RMUY.js → hr-LVOAM3F2.js} +1 -1
- package/dist/hu-KT2PFOAI.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +119 -28
- package/dist/index.d.ts +119 -28
- package/dist/index.js +1 -1
- package/dist/it-IWWDBW67.js +1 -0
- package/dist/ja-QUYO5TKQ.js +1 -0
- package/dist/ku-FVXFA2DX.js +1 -0
- package/dist/{layout-C6YaCOnZ.d.ts → layout-BjTtYIy8.d.ts} +1 -1
- package/dist/{layout-BxJIZjPm.d.cts → layout-CUiLkR8o.d.cts} +1 -1
- package/dist/localeLoaders-SZP47JPK.js +1 -0
- package/dist/lt-O5OARGHR.js +1 -0
- package/dist/{lv-NTO2456Y.js → lv-D5PW436N.js} +1 -1
- package/dist/nl-VDXV6VTH.js +1 -0
- package/dist/no-YS6QVD44.js +1 -0
- package/dist/pl-NP6YVWU6.js +1 -0
- package/dist/pt-YZLA6LO4.js +1 -0
- package/dist/{renderedQuality-CWwy14lb.d.ts → renderedQuality-DrOWtrO-.d.ts} +1 -1
- package/dist/{renderedQuality-CgBQYezj.d.cts → renderedQuality-ZDPLvzcZ.d.cts} +1 -1
- package/dist/{renderer-DmG3C8vD.d.cts → renderer-DIebhcYo.d.cts} +39 -0
- package/dist/{renderer-DIcDImOu.d.ts → renderer-DtR3EaF4.d.ts} +39 -0
- package/dist/ro-AOVPSQKL.js +1 -0
- package/dist/ru-4LGHGVZG.js +1 -0
- package/dist/sk-4FRMG7ZG.js +1 -0
- package/dist/sl-FYABQLPI.js +1 -0
- package/dist/sr-W4SGB5AT.js +1 -0
- package/dist/sv-4LK4WE4H.js +1 -0
- package/dist/{ticketRestrictions-B_qXQobd.d.ts → ticketRestrictions-Ch3ZKeMR.d.ts} +1 -1
- package/dist/{ticketRestrictions-Bj8PBX_x.d.cts → ticketRestrictions-NKWgOV-D.d.cts} +1 -1
- package/dist/tr-M5NWILAZ.js +1 -0
- package/dist/uk-REKJ4DVG.js +1 -0
- package/dist/view3d/index.cjs +31 -31
- package/dist/view3d/index.d.cts +34 -2
- package/dist/view3d/index.d.ts +34 -2
- package/dist/view3d/index.js +23 -23
- package/dist/view3d/scene/scene.worker.cjs +1 -1
- package/dist/view3d/scene/scene.worker.js +1 -1
- package/dist/{zh-Hans-ONBXTDHV.js → zh-Hans-F32F3VGF.js} +1 -1
- package/dist/{zh-Hant-LVTMHA6P.js → zh-Hant-NA3TGNDP.js} +1 -1
- package/package.json +1 -1
- package/dist/ar-R52D47QC.js +0 -1
- package/dist/be-P34NRZPF.js +0 -1
- package/dist/bg-4TEE6DSQ.js +0 -1
- package/dist/ca-V4A6DRPR.js +0 -1
- package/dist/chunk-WYXHD6J2.js +0 -1
- package/dist/cs-GR5H3ZRU.js +0 -1
- package/dist/da-NOYMEVP6.js +0 -1
- package/dist/de-LFHFC2XO.js +0 -1
- package/dist/el-AS3436E6.js +0 -1
- package/dist/es-IWBWYUHH.js +0 -1
- package/dist/et-VV7YGFEV.js +0 -1
- package/dist/fa-JYLN4BIM.js +0 -1
- package/dist/fi-TXRN726I.js +0 -1
- package/dist/fr-PKEU6NKI.js +0 -1
- package/dist/he-H53ZPEAF.js +0 -1
- package/dist/hu-KE64252D.js +0 -1
- package/dist/it-GVT7VIKV.js +0 -1
- package/dist/ja-WMRRUDVD.js +0 -1
- package/dist/ku-77V6NTW7.js +0 -1
- package/dist/localeLoaders-EMBA3SWS.js +0 -1
- package/dist/lt-7ICKT4ED.js +0 -1
- package/dist/nl-IYEEWC4A.js +0 -1
- package/dist/no-CKH6R5N2.js +0 -1
- package/dist/pl-ALK57HKB.js +0 -1
- package/dist/pt-EYFSXBVZ.js +0 -1
- package/dist/ro-EUFVCBVY.js +0 -1
- package/dist/ru-XAIYWENX.js +0 -1
- package/dist/sk-QIOFO4TV.js +0 -1
- package/dist/sl-37I57K2X.js +0 -1
- package/dist/sr-HE5DILFD.js +0 -1
- package/dist/sv-7SVBFLY3.js +0 -1
- package/dist/tr-JNA4YJEJ.js +0 -1
- package/dist/uk-2723G7DI.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={"common.cancel":"Cancel\xB7la","common.close":"Tanca","common.done":"Fet","common.copied":"\u2713 Copiat","picker.holdExpired":"La teva reserva ha caducat: els seients s'han alliberat. Torna a triar.","picker.poweredBy":"Amb la tecnologia de SeatLayer","picker.testMode":"MODE DE PROVA","picker.orphanHint":"Aix\xED queda un seient sol: valora despla\xE7ar-te un seient.","picker.companionRequiresWheelchair":"Requereix la pla\xE7a de cadira de rodes contigua","picker.companionPairRequired":"Selecciona la pla\xE7a de cadira de rodes contigua amb cada entrada d'acompanyant.","map.aria":"Mapa de seients. Fes servir les fletxes per moure't entre seients i Retorn per seleccionar.","map.seatsLeft":"EN QUEDEN {count}","map.soldOut":"ESGOTAT","map.fromPrice":"DES DE {price}","map.statusHeld":"Reservat","map.statusTaken":"Ocupat","picker.floor":"Planta","picker.zoomLevel":"Nivell de zoom","picker.rungTip.zones":"Vista general del recinte: grups de sectors com Grada Nord o VIP","picker.rungTip.sections":"Blocs de sectors: els sectors esgotats i gaireb\xE9 plens s'enfosqueixen perqu\xE8 vegis la disponibilitat d'un cop d'ull","picker.rungTip.seats":"Seients individuals: els blocs es desfan en punts","picker.rungLabel.zones":"ZONES","picker.rungLabel.sections":"SECTORS","picker.rungLabel.seats":"SEIENTS","picker.sectionSummaryAria":"Resum del sector {label}","picker.closeSectionSummary":"Tanca el resum del sector","picker.seatsLeftInSection.one":"Queda {count} seient","picker.seatsLeftInSection.many":"Queden {count} seients","picker.seatsLeftInSection.other":"Queden {count} seients","picker.seatsLeftShort":"En queden {count}","picker.overview":"Recinte","picker.entrance":"Entrada","picker.turnOffAccessibilityFilter":"Desactiva el filtre de cadira de rodes per triar aquest seient","picker.tapSeatHint":"Toca qualsevol seient per veure'n la vista","picker.ticketTierFor":"Tipus d'entrada per a {label}","picker.viewFromSeat":"Vista des del seient {label}","picker.real360":"360\xB0 REAL","picker.preview":"PREVISUALITZACI\xD3","picker.sightline":"\u2248 {m} m fins a l'escenari","picker.panorama360":"Foto del recinte en 360\xB0","picker.illustrationCaption":"il\xB7lustraci\xF3 \xB7 \u2248 {m} m de l'escenari","picker.restrictedView":"Visibilitat limitada","picker.obstructedView":"Visibilitat obstru\xEFda","picker.premiumSeat":"Seient pr\xE8mium","picker.hideLimitedView":"Amaga els seients amb visibilitat limitada","picker.bestSeatsPremium":"Millors seients","picker.premiumFallbackNote":"No hi ha cap bloc pr\xE8mium de {count}: et mostrem la millor opci\xF3 global","picker.loading3d":"Construint el recinte en 3D\u2026","picker.unavailable3d":"El 3D no s'ha pogut iniciar. El mapa de seients continua disponible.","picker.jumpToSection":"Ves al sector","picker.salesClosedPill":"Venda tancada","picker.salesClosedCopy":"La venda d'entrades per a aquest esdeveniment ha finalitzat.","picker.salesClosedCta":"Venda tancada","picker.salesClosedToast":"La venda per a aquest esdeveniment est\xE0 tancada.","picker.holdReassurance":"Teus durant {time}: encara no et cobrarem.","picker.securingSeats":"Assegurant els teus seients\u2026","picker.openingCheckout":"Obrint el pagament segur\u2026","picker.peekSecured":"\u2713 {count} assegurats \xB7 {total} \u2014 encara no et cobrarem","picker.priceHint":"Els colors del mapa s\xF3n tipus d'entrada: toca'n un a sota per mostrar nom\xE9s aquests seients.","picker.findTogetherInstead":"Millor busca seients junts","picker.keepMyPicks":"Conserva la meva tria","picker.accessExpiredBody":"Torna a iniciar la sessi\xF3, o recarrega la p\xE0gina, per continuar veient aquests seients. El que ja tens reservat continua sent teu.","picker.accessExpiredTitle":"La teva sessi\xF3 d'acc\xE9s ha finalitzat","picker.accessInvalidBody":"Encara pots comprar tot el que aparegui com a disponible. Contacta amb qui t'ha enviat aqu\xED per accedir a la resta.","picker.accessInvalidTitle":"No hem pogut verificar el teu acc\xE9s","picker.accessPausedBody":"L'organitzador ha pausat aquesta selecci\xF3. Torna-ho a provar d'aqu\xED a uns minuts.","picker.accessPausedTitle":"Aquests seients estan bloquejats ara mateix","picker.accessRetry":"Torna-ho a provar","picker.accessRevokedBody":"Demana un enlla\xE7 nou a qui te'l va enviar per continuar reservant aquests seients.","picker.accessRevokedTitle":"Aquest enlla\xE7 d'acc\xE9s ja no \xE9s actiu","picker.accessiblePhysicalSeat":"Seient f\xEDsic accessible","picker.addTime":"Afegeix temps","picker.accessibilityOptions":"Opcions d\u2019accessibilitat i color","picker.addingEllipsis":"Afegint\u2026","picker.allLevels":"Tots els nivells","picker.allPlacesBookedTogether":"Les {count} places es reserven juntes com una taula exclusiva.","picker.allPrices":"Tots els preus","picker.allSeats":"Tots els seients","picker.allSetTitle":"Ja ho tens tot a punt","picker.anyTicketType":"Qualsevol tipus d'entrada","picker.anyVenueZone":"Qualsevol zona del recinte","picker.areas":"\xC0rees","picker.available":"Disponible","picker.backToMap":"Torna al mapa","picker.backToVenue":"Torna al recinte","picker.bestSeatsStar":"\u2726 Millors seients","picker.booth":"Estand","picker.capacityGuests":"{count} convidats","picker.change":"Canvia","picker.chartDerivedModel":"Model derivat del mapa","picker.chartDerivedSeatEye":"3D en directe \xB7 al\xE7ada de la vista derivada del mapa \xB7 sense mesures in situ","picker.checkConnection":"Comprova la connexi\xF3 i torna-ho a provar.","picker.checkoutCouldNotBeOpened":"No s'ha pogut obrir el pagament. Els teus seients continuen reservats: torna-ho a provar.","picker.chooseAnotherToCompare":"Tria un altre seient per comparar.","picker.chooseGuestsCopy":"Tria quants convidats seuran junts. Aquesta taula es reserva en exclusiva per al teu grup.","picker.chooseMinMaxGuests":"Tria {min}\u2013{max} convidats","picker.clearSavedSeatComparison":"Esborra la comparaci\xF3 de seients desada","picker.close":"Tanca","picker.closeSeatStatus":"Tanca l'estat del seient","picker.closestGroupChosenInstantly":"El grup disponible m\xE9s proper, triat a l'instant.","picker.collapseTicketPanel":"Redueix el tauler d'entrades","picker.colorblindColors":"Colors adaptats al daltonisme","picker.companionSeatsNote":"Les places d\u2019acompanyant del costat continuen sent seleccionables","picker.compareCount":"Compara {count}","picker.compareWithSaved":"Compara amb el desat","picker.confirmOrCancelSeat":"Confirma o cancel\xB7la aquest seient","picker.confirmSeatLabel":"Confirma el seient {label}","picker.confirmYourTable":"Confirma la teva taula","picker.confirmedAndOnWay":"confirmat. La confirmaci\xF3 ja est\xE0 en cam\xED.","picker.continue":"Continua","picker.continueToCheckout":"Continua cap al pagament","picker.couldNotAddMoreTime":"No s'ha pogut afegir m\xE9s temps: ves al pagament ara.","picker.couldNotFindSeatsTogether":"No hem trobat {count} seients junts. Prova amb menys seients o un altre tipus d'entrada.","picker.couldNotReleaseTickets":"No hem pogut alliberar les teves entrades. La reserva no ha canviat.","picker.couldNotRemoveLabel":"No hem pogut treure {label}. La reserva no ha canviat.","picker.currentOffer":"Oferta actual","picker.currentTicketOffer":"Oferta d'entrades actual","picker.dragToLookAround":"Arrossega per mirar al voltant \xB7 despla\xE7a't per fer zoom","picker.emptyWheelchairSpace":"Espai lliure per a cadira de rodes","picker.exitFullScreen":"Surt de pantalla completa","picker.fewer":"Menys","picker.fewerGuests":"Menys convidats","picker.fewerSeats":"Menys seients","picker.filterAndFocusByPrice":"Filtra i destaca els seients per preu","picker.filters":"Filtres","picker.findBestSeatsCount.one":"Busca {count} millor seient","picker.findBestSeatsCount.many":"Busca els {count} millors seients","picker.findBestSeatsCount.other":"Busca els {count} millors seients","picker.findBestSeatsTogether":"Busca els millors seients junts","picker.findNewSeats":"Busca seients nous","picker.findingBestSeats":"Buscant els millors seients\u2026","picker.findingEllipsis":"Buscant\u2026","picker.fitToScreen":"Ajusta a la pantalla","picker.flat2dMap":"Mapa 2D pla","picker.flexiblePartyTypeWord":"Grup flexible \xB7 {typeWord}","picker.fullScreen":"Pantalla completa","picker.generalAdmission":"Entrada general","picker.guestCountCouldNotBeSecured":"No hem pogut assegurar aquest nombre de convidats. La teva reserva de taula no ha canviat.","picker.guestCountNoLongerAvailable":"Aquest nombre de convidats ja no est\xE0 disponible. La teva reserva no ha canviat.","picker.guests":"Convidats","picker.guestsCount":"{count} convidats","picker.guestsCountEdit":"{count} convidats \xB7 Edita","picker.held":"Reservat","picker.heldByOther":"Reservat per un altre comprador \u2014 pot alliberar-se","picker.heldForYou":"Reservat per a tu","picker.heldSeatExplanation":"Un altre comprador t\xE9 aquest seient reservat. Pot tornar a quedar lliure.","picker.heldTicketsReleased":"Entrades reservades alliberades. Tria els seients nous.","picker.heldTicketsRestored":"S'han restaurat les teves entrades reservades.","picker.hidePanel":"Amaga el tauler","picker.hideTicketPanel":"Amaga el tauler d'entrades","picker.holdSeatsAndCheckout":"Reserva els seients i paga","picker.howOfferWorks":"Com funciona l'oferta {name}","picker.interactive3dVenueView":"Vista 3D interactiva del recinte","picker.keepMine":"Conserva els meus","picker.labelNoLongerAvailable":"{label} ja no est\xE0 disponible.","picker.labelRemoved":"{label} s'ha tret.","picker.labelRemovedFromHold":"{label} s'ha tret de la teva reserva.","picker.labelRestored":"{label} s'ha restaurat.","picker.labelsNoLongerAvailable.one":"{labels} ja no est\xE0 disponible. Tria un altre seient.","picker.labelsNoLongerAvailable.many":"{labels} ja no estan disponibles. Tria un altre grup.","picker.labelsNoLongerAvailable.other":"{labels} ja no estan disponibles. Tria un altre grup.","picker.leftCount.one":"en queda {count}","picker.leftCount.many":"en queden {count}","picker.leftCount.other":"en queden {count}","picker.levelNumber":"Nivell {number}","picker.levels":"Nivells","picker.liveAvailability":"Disponibilitat en directe: els seients s'actualitzen en temps real","picker.loadingSeatMap":"Carregant el mapa de seients\u2026","picker.lookAroundLive3d":"Mira al voltant en 3D en directe","picker.manualTicketsRemovedNote":"Les entrades que has triat manualment nom\xE9s es trauran quan s'hagi assegurat un grup nou.","picker.map":"Mapa","picker.mapDidNotLoad":"El mapa de seients no s'ha carregat","picker.maxTicketsForOrder":"Pots seleccionar fins a {count} entrades per a aquesta comanda.","picker.selectExactMore":"Selecciona'n {count} m\xE9s","picker.selectExactCount":"Selecciona exactament {count} entrades","picker.selectMinimumMore":"Selecciona'n {count} m\xE9s","picker.adjustSeatSelection":"Ajusta la selecci\xF3 de seients","picker.selectSeatsTogether":"Tria seients junts a la mateixa fila i categoria d'entrada.","picker.minToMaxGuests":"De {min} a {max} convidats","picker.more":"M\xE9s","picker.moreCount":"+{count} m\xE9s","picker.showLess":"Mostra menys","picker.moreGuests":"M\xE9s convidats","picker.moreSeats":"M\xE9s seients","picker.moreSelectedCount":"{count} m\xE9s seleccionats","picker.moreTimeAdded":"S'ha afegit m\xE9s temps: els teus seients continuen reservats.","picker.noAccessibilityMetadata":"No s'han facilitat dades d'accessibilitat","picker.noAuthoredRestriction":"L'organitzador no ha indicat cap restricci\xF3","picker.noSeatsSelected":"Cap seient seleccionat","picker.notChargedYet":"Encara no et cobrarem.","picker.notForSale":"No est\xE0 a la venda","picker.notForSaleExplanation":"Aquest seient no s'inclou en la venda actual.","picker.numberOfGuests":"Nombre de convidats","picker.offerDetailActive":"Aquest preu s'aplica autom\xE0ticament als seients elegibles. Les entrades en cistelles actives redueixen temporalment la quantitat disponible; les reserves alliberades o caducades la retornen. Quan acabi l'oferta, hi entrar\xE0 la seg\xFCent oferta aplicable o el preu normal de l'entrada.","picker.offerDetailUpcoming":"Ara les entrades estan disponibles al preu normal. Aquesta oferta programada s'aplicar\xE0 autom\xE0ticament als seients elegibles quan comenci.","picker.offerRemainingAvailable":"{count} disponibles","picker.offerStarts":"comen\xE7a {time}","picker.offerUntil":"fins a {time}","picker.oneSeatSaved":"1 seient desat","picker.oneSeatSavedChooseAnother":"Un seient desat; tria'n un altre per comparar","picker.openAuthored360":"Obre el recinte en 360\xB0","picker.openComparison":"Obre la comparaci\xF3","picker.openComparisonOfSeats":"Obre la comparaci\xF3 de {count} seients","picker.openTicketPanel":"Obre el tauler d'entrades","picker.peekFromPrice":"Des de {price}","picker.peekTicketsTotal.one":"{count} entrada \xB7 {total}","picker.peekTicketsTotal.many":"{count} entrades \xB7 {total}","picker.peekTicketsTotal.other":"{count} entrades \xB7 {total}","picker.perGuestPrice":"{price} per convidat","picker.pickYourSeats":"Tria els teus seients","picker.preferredTicketType":"Tipus d'entrada preferit","picker.preferredVenueZone":"Zona del recinte preferida","picker.priceNotSupplied":"Preu no indicat","picker.releaseHeldTickets":"Allibera les entrades reservades i tria altres seients","picker.releasingEllipsis":"Alliberant\u2026","picker.removeHeldTicketLabel":"Treu l'entrada reservada {label}","picker.removeSeatLabel":"Treu {label}","picker.removeTicketsUntilOrFewer":"Treu entrades fins que la comanda en tingui {count} o menys.","picker.replaceCurrentChoices":"Vols substituir les teves tries actuals?","picker.review":"Revisa","picker.row":"Fila","picker.rowLabel":"Fila {label}","picker.saveToCompare":"Desa per comparar","picker.savedForComparison":"Desat per comparar","picker.savedSeatComparison":"Comparaci\xF3 de seients desada","picker.scheduledOffer":"Oferta programada","picker.seat":"Seient","picker.seatCount.one":"{count} seient","picker.seatCount.many":"{count} seients","picker.seatCount.other":"{count} seients","picker.seatJustTakenByAnother":"Un altre comprador acaba d'agafar el seient {label}.","picker.seatLabel":"Seient {label}","picker.seatNoLongerAvailable":"Aquest seient ja no est\xE0 disponible.","picker.seatNoLongerYours":"Alguns seients ja no estan disponibles per a tu. S'han tret de la teva comanda.","picker.seatNumberLower":"seient {label}","picker.seatSalesClosedForEvent":"La venda de seients per a aquest esdeveniment s'ha tancat.","picker.seatSelection":"Selecci\xF3 de seients","picker.seatStatusLegend":"Llegenda d'estats dels seients","picker.seatTaken":"Una altra persona ha agafat un seient que havies triat. S'ha tret de la teva comanda.","picker.seatsHeldForNeedMoreTime":"Els teus seients estan reservats durant <b>{time}</b>. Necessites m\xE9s temps?","picker.seatsJustTaken":"Un o m\xE9s seients s'acaben d'ocupar. Torna a triar.","picker.seatsJustTakenInCategory.one":"{count} seient acabat d'ocupar a {label} \xB7 en queden {left}","picker.seatsJustTakenInCategory.many":"{count} seients acabats d'ocupar a {label} \xB7 en queden {left}","picker.seatsJustTakenInCategory.other":"{count} seients acabats d'ocupar a {label} \xB7 en queden {left}","picker.seatsNoLongerAvailableTryAnother":"Aquests seients ja no estan disponibles. Prova amb una altra quantitat o tipus d'entrada.","picker.seatsSecured":"Seients assegurats","picker.seatsSelectedCount.one":"{count} seleccionat","picker.seatsSelectedCount.many":"{count} seleccionats","picker.seatsSelectedCount.other":"{count} seleccionats","picker.section":"Sector","picker.secureMore":"Assegura'n m\xE9s","picker.secureMoreAndCheckout":"Assegura'n {count} m\xE9s i paga","picker.securedCount":"{count} assegurats","picker.seeItIn3d":"Mira-ho en 3D","picker.select":"Selecciona","picker.selectSeats":"Selecciona seients","picker.selectTable":"Selecciona la taula","picker.selectWholeTable":"Selecciona tota la taula","picker.selected":"Seleccionat","picker.selectingEllipsis":"Seleccionant\u2026","picker.showAllSeats":"Mostra tots els seients","picker.showAllTicketTypes":"Mostra els {count} tipus d'entrada","picker.showFewer":"Mostra'n menys","picker.showLabelSeatsOnMap":"Mostra els seients {label} al mapa","picker.showTicketPanel":"Mostra el tauler d'entrades","picker.sold":"Venut","picker.soldOutCopy":"Ara mateix no hi ha seients numerats disponibles per a aquest esdeveniment.","picker.soldOutEyebrow":"Aquest esdeveniment","picker.soldOutTitle":"Esgotat","picker.soldSeatExplanation":"Aquest seient ja s'ha reservat.","picker.statusAvailable":"disponible","picker.statusOnHold":"reservat","picker.statusTaken2":"ocupat","picker.table":"Taula","picker.tableCapacity":"Capacitat de la taula","picker.tableUpdatedForGuests":"{label} actualitzada per a {count} convidats.","picker.temporarilyHeld":"Reservat temporalment","picker.ticketPrices":"Preus de les entrades","picker.ticketTypeSoldOut":"Aquest tipus d'entrada est\xE0 esgotat. Prova un altre tipus.","picker.tickets":"Entrades","picker.ticketsCount.one":"{count} entrada","picker.ticketsCount.many":"{count} entrades","picker.ticketsCount.other":"{count} entrades","picker.toggleColorblindColors":"Activa o desactiva els colors adaptats al daltonisme","picker.total":"Total","picker.trayHintTapOrBest":"Toca un seient al mapa, o deixa que triem els millors disponibles per a tu.","picker.trayHintTapOrStanding":"Toca un seient al mapa \u2014 o agafa entrades de peu a sota.","picker.undo":"Desf\xE9s","picker.upcomingTicketOffer":"Propera oferta d'entrades","picker.updateTable":"Actualitza la taula","picker.updatingEllipsis":"Actualitzant\u2026","picker.venueView":"Vista del recinte","picker.recentreOnStage":"Torna a centrar a l\u2019escenari","picker.stopYourSeat":"El teu seient","picker.stopYourRow":"La teva fila","picker.stopYourSection":"El teu sector","picker.stopWholeVenue":"Tot el recinte","picker.viewFromHere":"Vista des d'aqu\xED","picker.viewFromYourSeat":"vista des del teu seient","picker.fromYourSeat":"des del teu seient","picker.viewFromThisSeat":"Vista des d'aquest seient","picker.wholeTypeWord":"{typeWord} sencera","picker.willChooseClosestGroup":"Triarem per a tu el grup disponible m\xE9s proper.","picker.willFindSeatsTogether":"Trobarem {count} seients junts.","picker.yourSeats":"Els teus seients","picker.zoomIn":"Amplia","picker.zoomOut":"Redueix","picker.closeVenueNav":"Tanca","picker.levelsAndAreas":"Nivells i \xE0rees","picker.gaChooseTickets":"Quantes entrades?","picker.gaAdd.one":"Afegeix {count} entrada \xB7 {price}","picker.gaAdd.many":"Afegeix {count} entrades \xB7 {price}","picker.gaAdd.other":"Afegeix {count} entrades \xB7 {price}","picker.gaUpdate.one":"Actualitza \xB7 {count} entrada","picker.gaUpdate.many":"Actualitza \xB7 {count} entrades","picker.gaUpdate.other":"Actualitza \xB7 {count} entrades","picker.gaRemove":"Treu","picker.gaAreasHeading":"\xC0rees","picker.gaTrayHintTapArea":"Toca una \xE0rea del mapa per triar entrades.","picker.gaAdded.one":"{count} entrada de {area} afegida, {price}","picker.gaAdded.many":"{count} entrades de {area} afegides, {price}","picker.gaAdded.other":"{count} entrades de {area} afegides, {price}","picker.gaRemoved":"Entrades de {area} tretes","picker.gaChooseForArea":"Tria entrades per a {area}","picker.holdSeatsForAllPerformances":"Reserva els seients per a les {count} funcions","picker.completeAllPerformances":"Completa totes les funcions ({complete}/{total})","picker.groupTrayHint":"Tria els seients una vegada \u2014 es reservaran els mateixos seients per a cada funci\xF3.","picker.groupPerPerformanceTrayHint":"Tria seients per a aquesta funci\xF3 i despr\xE9s completa cada data de dalt.","picker.group.sameSeatSummary":"Tria una sola vegada. Es reservaran els mateixos seients per a les {count} funcions.","picker.group.perPerformanceSummary":"Tria seients per a cada funci\xF3. Les {count} seleccions es reserven juntes.","picker.group.allDates":"Hi ha incloses les {count} dates","picker.group.flexibleDatesInView":"Es veuen les {count} dates","picker.group.flexibleDatesSelected":"{selected} de {total} dates seleccionades","picker.group.performances":"Funcions","picker.group.heldForEveryPerformance":"Reservats per a cada funci\xF3","picker.group.notStarted":"Sense comen\xE7ar","picker.group.inProgress":"En curs","picker.group.complete":"Completa","picker.group.needsAttention":"Cal revisar-ho","picker.group.previousPerformance":"Funci\xF3 anterior","picker.group.nextPerformance":"Funci\xF3 seg\xFCent","picker.group.performanceOpened":"Ara tries seients per a {performance}.","picker.group.checkingAvailability":"Comprovant els seients disponibles per a cada funci\xF3\u2026","picker.group.securing":"Estem reservant aquests seients per a cada funci\xF3. Espera un moment.","picker.group.commitPending":"Encara estem reservant aquests seients per a cada funci\xF3. SeatLayer continua treballant i aquesta p\xE0gina est\xE0 comprovant el resultat.","picker.group.outcomeUnknown":"Estem comprovant si els teus seients han quedat reservats. No tri\xEFs altres seients encara.","picker.group.longRunning":"Aix\xF2 triga m\xE9s del normal. Continuem comprovant la mateixa sol\xB7licitud. No la tornis a enviar. Refer\xE8ncia: {reference}.","picker.group.abortPending":"No hem pogut reservar totes les funcions. Estem comprovant que tots els seients quedin alliberats abans que ho tornis a provar.","picker.group.secured":"Seients reservats per a cada funci\xF3. Continua quan vulguis.","picker.group.notSecured":"No hem pogut reservar aquests seients per a cada funci\xF3. No hi ha res reservat. Torna-ho a provar.","picker.group.retry":"Torna-ho a provar","picker.group.salesClosed":"Els seients d'aquest conjunt de funcions no estan disponibles ara. Torna a la p\xE0gina de l'esdeveniment per veure altres opcions.","picker.group.revisionChanged":"Aquest conjunt de funcions ha canviat. Revisa les funcions incloses abans de tornar a triar seients.","picker.group.legendTitle":"Disponibilitat de seients","picker.group.legendUnavailable":"No disponible","picker.group.partlyAvailableTitle":"Lliure nom\xE9s algunes nits","picker.group.notAvailableOn":"No disponible el {dates}","picker.group.nightFree":"Lliure","picker.group.nightBlocked":"No disponible","picker.group.pickSeatFreeEveryNight":"Tria un seient que estigui lliure totes les nits.","picker.group.chooseNightByNight":"Tria els seients nit a nit","picker.group.nightByNightStarted":"Ara tries seients per a cada funci\xF3 per separat. S'ha esborrat la teva selecci\xF3.","picker.group.yourSeatsByNight":"Els teus seients per nit","picker.group.noSeatsChosenYet":"Encara cap seient","picker.group.chosenOfTotal":"{chosen} de {total}","picker.group.needsMoreSeats":"En falten {count}","picker.group.closeSeatDetails":"Tanca els detalls del seient","picker.group.seatPartlyAvailable":"{label}: lliure en {free} de {total} funcions. No disponible el {dates}.","picker.group.selectAvailableDates":"Selecciona per a {count} dates disponibles","picker.group.selectedAvailableDates":"Seleccionat per a {count} dates disponibles.","picker.group.clearBeforePartial":"Buida els seients actuals abans de triar un altre conjunt de dates.","picker.group.legendAvailable":"Disponible","picker.group.legendSelected":"Seleccionat","picker.group.legendNotEveryDate":"No disponible totes les dates","picker.group.progressLabel":"Passos de la reserva","picker.group.stepPerformances":"Funcions","picker.group.stepSeats":"Seients","picker.group.stepReview":"Revisi\xF3","picker.group.stepDone":"Fet","picker.group.stepCurrent":"Pas actual","picker.group.includedNote":"Hi ha incloses les {count} funcions \xB7 les dates no es poden treure aqu\xED","picker.group.flexibleDatesNote":"Tria un seient parcial per incloure nom\xE9s les dates en qu\xE8 est\xE0 disponible.","picker.group.flexibleSelectedNote":"Nom\xE9s es reservaran aquestes {count} dates per a aquest seient.","picker.group.yourSelection":"La teva selecci\xF3","picker.group.pricesPerPerformance":"Preus per funci\xF3","picker.group.total":"Total","picker.group.heldTogether":"Les {count} seleccions de funcions es reserven juntes \xB7 queden {time}","picker.group.completeWithSeats":"Completa \xB7 {seats}","picker.group.stillNeedsSeat":"Encara falta un seient","picker.group.sameSeatMapHelp":"Un sol pl\xE0nol mostra nom\xE9s els seients disponibles per a totes les funcions triades.","picker.group.perPerformanceMapHelp":"Canvia de data a dalt; la posici\xF3 del pl\xE0nol i cada tria es mantenen desades.","picker.group.bookedAll":"Tot a punt \u2014 seients reservats per a les {count} funcions.","picker.group.seatsEveryPerformance.one":"{count} seient \xB7 cada funci\xF3","picker.group.seatsEveryPerformance.many":"{count} seients \xB7 cada funci\xF3","picker.group.seatsEveryPerformance.other":"{count} seients \xB7 cada funci\xF3","picker.group.seatsPerPerformance.one":"{count} seient \xB7 {per} per funci\xF3","picker.group.seatsPerPerformance.many":"{count} seients \xB7 {per} per funci\xF3","picker.group.seatsPerPerformance.other":"{count} seients \xB7 {per} per funci\xF3","picker.group.performancesChosenOf.one":"{chosen} de {total} funcions triades \xB7 {count} seient","picker.group.performancesChosenOf.many":"{chosen} de {total} funcions triades \xB7 {count} seients","picker.group.performancesChosenOf.other":"{chosen} de {total} funcions triades \xB7 {count} seients","picker.group.ticketsConfirmedAcross.one":"{count} entrada confirmada per a {performances} funcions","picker.group.ticketsConfirmedAcross.many":"{count} entrades confirmades per a {performances} funcions","picker.group.ticketsConfirmedAcross.other":"{count} entrades confirmades per a {performances} funcions"};export{e as ca};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Rn,c as An,d as Pn}from"./chunk-7OJ6SB6V.js";import{c as bn}from"./chunk-FBRBY6NE.js";import{d as Sn}from"./chunk-T2LWVOQ3.js";import{e as hn,o as xn,q as Xt,r as ft,t as It}from"./chunk-GK4ILJFB.js";import{e as gn,k as Mn}from"./chunk-UL5OIGIF.js";import{W as ut,X as lt,ea as Gt,ga as dn,ha as Dt,ja as yn,l as pn,m as At,va as qt}from"./chunk-X3K36XZM.js";import{d as H,x as nt,z as Pt}from"./chunk-CXF32VPG.js";import Se from"earcut";import Re from"polygon-clipping";var g=ut,Ae=.002;function Pe(t,n,e){let i=Math.hypot(n[0]-t[0],n[1]-t[1],n[2]-t[2]),o=Math.hypot(e[0]-n[0],e[1]-n[1],e[2]-n[2]),a=Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2]),r=Math.max(i,o,a);if(r<1e-9)return!0;let s=(i+o+a)/2;return 2*Math.sqrt(Math.max(0,s*(s-i)*(s-o)*(s-a)))/r<Ae}var ht=class{constructor(n=16384){this.len=0;this.buf=new Float32Array(n)}push3(n,e,i){this.len+3>this.buf.length&&this.grow(this.len+3),this.buf[this.len++]=n,this.buf[this.len++]=e,this.buf[this.len++]=i}push1(n){this.len+1>this.buf.length&&this.grow(this.len+1),this.buf[this.len++]=n}grow(n){let e=this.buf.length*2;for(;e<n;)e*=2;let i=new Float32Array(e);i.set(this.buf.subarray(0,this.len)),this.buf=i}get length(){return this.len}toArray(){return this.buf.slice(0,this.len)}},Yt=class{constructor(){this.pos=new ht;this.nor=new ht;this.col=new ht;this.flr=new ht;this.mat=new ht;this.currentFloor=0;this.currentMaterial=0}setFloor(n){this.currentFloor=n}setMaterial(n){this.currentMaterial=n}tri(n,e,i,o,a,r=a,s=a){Pe(n,e,i)||(this.pos.push3(n[0],n[1],n[2]),this.pos.push3(e[0],e[1],e[2]),this.pos.push3(i[0],i[1],i[2]),this.nor.push3(o[0],o[1],o[2]),this.nor.push3(o[0],o[1],o[2]),this.nor.push3(o[0],o[1],o[2]),this.col.push3(a[0],a[1],a[2]),this.col.push3(r[0],r[1],r[2]),this.col.push3(s[0],s[1],s[2]),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial))}triN(n,e,i,o,a,r,s,l=s,c=s){[...n,...e,...i].every(Number.isFinite)&&(this.pos.push3(n[0],n[1],n[2]),this.pos.push3(e[0],e[1],e[2]),this.pos.push3(i[0],i[1],i[2]),this.nor.push3(o[0],o[1],o[2]),this.nor.push3(a[0],a[1],a[2]),this.nor.push3(r[0],r[1],r[2]),this.col.push3(s[0],s[1],s[2]),this.col.push3(l[0],l[1],l[2]),this.col.push3(c[0],c[1],c[2]),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial))}get vertexCount(){return this.pos.length/3}build(){return{position:this.pos.toArray(),normal:this.nor.toArray(),color:this.col.toArray(),floor:this.flr.toArray(),material:this.mat.toArray(),count:this.pos.length/3}}};function Ie(t,n,e){let i=n[0]-t[0],o=n[1]-t[1],a=n[2]-t[2],r=e[0]-t[0],s=e[1]-t[1],l=e[2]-t[2],c=o*l-a*s,f=a*r-i*l,m=i*s-o*r,u=Math.hypot(c,f,m)||1;return c/=u,f/=u,m/=u,[c,f,m]}function we(t,n){let e=[...t],i=[];for(let r of t)i.push(r.x,r.y);let o=[];if(n){for(let r of n)if(!(r.length<3)){o.push(e.length);for(let s of r)e.push(s),i.push(s.x,s.y)}}let a=Se(i,o.length?o:void 0,2);return{pts:e,tris:a}}function Jt(t){return ft(t)<0?[...t].reverse():t}var Te=3;function _e(t,n,e,i){let o=i(t),a=i(n),r=i(e),s=(h,b,p,y)=>Math.abs(i({x:(h.x+b.x)/2,y:(h.y+b.y)/2})-(p+y)/2),l=(t.x+n.x+e.x)/3,c=(t.y+n.y+e.y)/3,f=(o+a+r)/3,m=Math.max(s(t,n,o,a),s(n,e,a,r),s(e,t,r,o),Math.abs(i({x:l,y:c})-f)),u=(h,b,p)=>{let y=Math.abs(i({x:(h+l)/2,y:(b+c)/2})-(p+f)/2);y>m&&(m=y)};return u((t.x+n.x)/2,(t.y+n.y)/2,(o+a)/2),u((n.x+e.x)/2,(n.y+e.y)/2,(a+r)/2),u((e.x+t.x)/2,(e.y+t.y)/2,(r+o)/2),m}function wt(t,n,e,i,o){if(o<=0)return _e(t,n,e,i);let a={x:(t.x+n.x)/2,y:(t.y+n.y)/2},r={x:(n.x+e.x)/2,y:(n.y+e.y)/2},s={x:(e.x+t.x)/2,y:(e.y+t.y)/2};return Math.max(wt(t,a,s,i,o-1),wt(a,n,r,i,o-1),wt(s,r,e,i,o-1),wt(a,r,s,i,o-1))}function Tt(t,n,e,i,o,a,r,s){if(r>0){let u={x:(n.x+e.x)/2,y:(n.y+e.y)/2},h={x:(e.x+i.x)/2,y:(e.y+i.y)/2},b={x:(i.x+n.x)/2,y:(i.y+n.y)/2};Tt(t,n,u,b,o,a,r-1,s),Tt(t,u,e,h,o,a,r-1,s),Tt(t,b,h,i,o,a,r-1,s),Tt(t,u,h,b,o,a,r-1,s);return}let l=[n.x*g,o(n),n.y*g],c=[e.x*g,o(e),e.y*g],f=[i.x*g,o(i),i.y*g];if(s){t.triN(l,c,f,s(n),s(e),s(i),a);return}let m=Ie(l,c,f);m[1]<0&&(m=[-m[0],-m[1],-m[2]]),t.tri(l,c,f,m,a)}var Be=8;function In(t,n,e){if(!Number.isFinite(e))return t;let i=[],o=(a,r,s,l,c)=>{if(c>0){let f={x:(a.x+r.x)/2,y:(a.y+r.y)/2},m=n(f);if(Math.abs(m-(s+l)/2)>e){o(a,f,s,m,c-1),o(f,r,m,l,c-1);return}}i.push(a)};for(let a=0;a<t.length;a++){let r=t[a],s=t[(a+1)%t.length];o(r,s,n(r),n(s),Be)}return i}function Nt(t,n){if(t.length<3)return t;let e=[];for(let o of t){let a=e[e.length-1];a&&Math.hypot(o.x-a.x,o.y-a.y)<n||e.push(o)}for(;e.length>2&&Math.hypot(e[0].x-e[e.length-1].x,e[0].y-e[e.length-1].y)<n;)e.pop();if(e.length<3)return t;let i=[];for(let o=0;o<e.length;o++){let a=i.length?i[i.length-1]:e[(o-1+e.length)%e.length],r=e[o],s=e[(o+1)%e.length],l=s.x-a.x,c=s.y-a.y,f=Math.hypot(l,c);f>n&&Math.abs((r.x-a.x)*c-(r.y-a.y)*l)/f<n||i.push(r)}return i.length>=3?i:e}var Ut=.001*lt*.1;function K(t,n,e,i,o,a,r,s,l=1/0,c){if(!n||n.length<3||(l===void 0&&(l=1/0),Math.abs(ft(n))<1e-4))return;let f=Nt(In(Nt(Jt(n),Ut),i,l),Ut),m=e?.map(A=>Nt(In(Nt(Jt(A),Ut),i,l),Ut)).filter(A=>A.length>=3&&Math.abs(ft(A))>=1e-4),{pts:u,tris:h}=we(f,m),b=[a[0]*s.top,a[1]*s.top,a[2]*s.top],p=[a[0]*s.bottomCap,a[1]*s.bottomCap,a[2]*s.bottomCap],y=[r[0]*s.top,r[1]*s.top,r[2]*s.top],d=[r[0]*s.wallBottom,r[1]*s.wallBottom,r[2]*s.wallBottom],x=0;if(Number.isFinite(l))for(;x<Te;x++){let A=0;for(let P=0;P<h.length;P+=3){let F=wt(u[h[P]],u[h[P+1]],u[h[P+2]],i,x);F>A&&(A=F)}if(A<=l)break}for(let A=0;A<h.length;A+=3){let P=u[h[A]],F=u[h[A+1]],v=u[h[A+2]];Tt(t,P,F,v,i,b,x,c);let G=[P.x*g,o,P.y*g],X=[F.x*g,o,F.y*g],M=[v.x*g,o,v.y*g];t.tri(G,M,X,[0,-1,0],p)}let T=A=>{if(x<=0)return A;let P=1<<x,F=[];for(let v=0;v<A.length;v++){let G=A[v],X=A[(v+1)%A.length];for(let M=0;M<P;M++){let B=M/P;F.push({x:G.x+(X.x-G.x)*B,y:G.y+(X.y-G.y)*B})}}return F},S=pn(f),C=[{ring:T(f),flip:!1}];if(m)for(let A of m)A.length>=3&&C.push({ring:T(A),flip:!0});for(let{ring:A,flip:P}of C)for(let F=0;F<A.length;F++){let v=A[F],G=A[(F+1)%A.length],X=(G.x-v.x)*g,B=(G.y-v.y)*g,L=-X,E=Math.hypot(B,L)||1;B/=E,L/=E;let I=(v.x+G.x)/2-S.x,k=(v.y+G.y)/2-S.y,R=B*I+L*k;P&&(R=-R),R<0&&(B=-B,L=-L);let _=[B,0,L],w=[v.x*g,i(v),v.y*g],D=[G.x*g,i(G),G.y*g],N=[v.x*g,o,v.y*g],U=[G.x*g,o,G.y*g];t.tri(w,D,U,_,y,y,d),t.tri(w,U,N,_,y,d,d)}}function wn(t){let n=0;for(let l of t)n+=l.count;let e=new Float32Array(n*3),i=new Float32Array(n*3),o=new Float32Array(n*3),a=new Float32Array(n),r=new Float32Array(n),s=0;for(let l of t)e.set(l.position,s*3),i.set(l.normal,s*3),o.set(l.color,s*3),a.set(l.floor,s),r.set(l.material,s),s+=l.count;return{position:e,normal:i,color:o,floor:a,material:r,count:n}}function jt(t,n,e=2.5){if(n<=0||t.length<3)return t;let i=Jt(t),o=i.length,a=[];for(let s=0;s<o;s++){let l=i[s],c=i[(s+1)%o],f=c.x-l.x,m=c.y-l.y,u=Math.hypot(f,m)||1;a.push({x:m/u,y:-f/u})}let r=[];for(let s=0;s<o;s++){let l=i[s],c=a[(s-1+o)%o],f=a[s],m=c.x+f.x,u=c.y+f.y,h=Math.hypot(m,u),b=()=>{r.push([l.x+c.x*n,l.y+c.y*n]),r.push([l.x+f.x*n,l.y+f.y*n])};if(h<1e-9){b();continue}m/=h,u/=h;let p=m*c.x+u*c.y,y=1/Math.max(p,1e-6);if(!Number.isFinite(y)||y>e){b();continue}r.push([l.x+m*n*y,l.y+u*n*y])}if(r.length<3)return t;try{let s=Re.union([[...r,r[0]]]),l=null,c=-1/0;for(let m of s){let u=Math.abs(ft(m[0].map(([h,b])=>({x:h,y:b}))));u>c&&(c=u,l=m[0])}if(!l)return t;let f=l.map(([m,u])=>({x:m,y:u}));if(f.length>1){let m=f[0],u=f[f.length-1];Math.abs(m.x-u.x)<1e-9&&Math.abs(m.y-u.y)<1e-9&&f.pop()}return f.length>=3?f:t}catch{return t}}function Ht(t,n,e,i,o=28){let a=[];for(let r=0;r<o;r++){let s=r/o*Math.PI*2;a.push({x:t+e*Math.cos(s),y:n+i*Math.sin(s)})}return a}function _t(t,n,e,i){return[{x:t,y:n},{x:t+e,y:n},{x:t+e,y:n+i},{x:t,y:n+i}]}var Bt=["available","held","sold","selected","dimmed"];function Qt(t){let n=Bt.indexOf(t);return n<0?0:n}var Tn={available:[.24,.82,.52],held:[.95,.66,.22],sold:[.34,.39,.45],selected:[.24,.74,1],dimmed:[.28,.32,.37]};function ir(t){let n=.2126*t[0]+.7152*t[1]+.0722*t[2],e=.42,i=.62;return[(n+(t[0]-n)*e)*i,(n+(t[1]-n)*e)*i,(n+(t[2]-n)*e)*i]}var tn={ground:[.07,.085,.11],tierTop:[.24,.28,.34],tierWall:[.17,.2,.25],stageTop:[.94,.7,.38],stageWall:[.48,.33,.18],decorTop:[.22,.25,.29],decorWall:[.15,.17,.2],gaTop:[.24,.28,.33],gaWall:[.16,.19,.23],boothTop:[.3,.33,.38],boothWall:[.2,.23,.27],tableTop:[.38,.34,.29],tableWall:[.24,.21,.18]},nn={top:[.05,.06,.08],bottom:[.1,.12,.15]};function et(t,n){return[Math.min(1,t[0]*n),Math.min(1,t[1]*n),Math.min(1,t[2]*n)]}var V={pedestal:0,pad:1,back:2,arm:3,footrest:4,leg:5,body:10,head:11},Ee=.44,Fe=.15,Ce=.3,ve=.24;function _n(t){return t===void 0||!Number.isFinite(t)||t<=0?ve:Math.min(Ce,Math.max(Fe,t*Ee))}var ar=.21,ke=.05,en=.45,Le=en+ke,Oe=[{part:V.pedestal,min:[-.3,0,-.3],max:[.3,.36,.3]},{part:V.pad,min:[-1,.36,-.95],max:[1,en,1]},{part:V.back,min:[-1,Le,-1],max:[1,.92,-.72]},{part:V.arm,min:[-1,.44,-.82],max:[-.78,.65,.78]},{part:V.arm,min:[.78,.44,-.82],max:[1,.65,.78]},{part:V.footrest,min:[-.9,.18,.78],max:[.9,.31,1.34]},{part:V.leg,min:[-.82,0,-.7],max:[-.62,.37,-.48]},{part:V.leg,min:[.62,0,-.7],max:[.82,.37,-.48]},{part:V.leg,min:[-.82,0,.48],max:[-.62,.37,.7]},{part:V.leg,min:[.62,0,.48],max:[.82,.37,.7]}],Ge=[{part:V.body,min:[-.52,.39,-.08],max:[-.08,.55,.82]},{part:V.body,min:[.08,.39,-.08],max:[.52,.55,.82]},{part:V.body,min:[-.47,.05,.58],max:[-.13,.43,.82]},{part:V.body,min:[.13,.05,.58],max:[.47,.43,.82]},{part:V.head,min:[-.16,1.04,-.33],max:[.16,1.1,-.13]}],De=[{n:[1,0,0],c:[[1,0,0],[1,1,0],[1,1,1],[1,0,1]]},{n:[-1,0,0],c:[[0,0,1],[0,1,1],[0,1,0],[0,0,0]]},{n:[0,1,0],c:[[0,1,0],[0,1,1],[1,1,1],[1,1,0]]},{n:[0,-1,0],c:[[0,0,1],[0,0,0],[1,0,0],[1,0,1]]},{n:[0,0,1],c:[[0,0,1],[1,0,1],[1,1,1],[0,1,1]]},{n:[0,0,-1],c:[[1,0,0],[0,0,0],[0,1,0],[1,1,0]]}];function cr(){let t=[],n=[],e=[],i=[],o=(E,I,k)=>{let R=e.length,[_,w,D]=E,N=[w[0]-_[0],w[1]-_[1],w[2]-_[2]],U=[D[0]-_[0],D[1]-_[1],D[2]-_[2]],O=N[1]*U[2]-N[2]*U[1],Y=N[2]*U[0]-N[0]*U[2],j=N[0]*U[1]-N[1]*U[0],$=Math.hypot(O,Y,j);$>1e-9?(O/=$,Y/=$,j/=$):[O,Y,j]=I,O*I[0]+Y*I[1]+j*I[2]<0&&(O=-O,Y=-Y,j=-j);for(let z of E)t.push(...z),n.push(O,Y,j),e.push(k);i.push(R,R+1,R+2,R,R+2,R+3)},a=E=>{for(let I of De){let k=I.c.map(R=>R.map((_,w)=>_?E.max[w]:E.min[w]));o(k,I.n,E.part)}};for(let E of Oe)a(E);for(let E of Ge)a(E);let r=en,s=1.08,l=.47,c=.69,f=-.55,m=.08,u=-.48,h=.01,b=[-l,r,f],p=[l,r,f],y=[-l,r,m],d=[l,r,m],x=[-c,s,u],T=[c,s,u],S=[-c,s,h],C=[c,s,h];o([p,T,C,d],[1,0,0],V.body),o([y,S,x,b],[-1,0,0],V.body),o([S,C,T,x],[0,1,0],V.body),o([b,p,d,y],[0,-1,0],V.body),o([d,C,S,y],[0,0,1],V.body),o([b,x,T,p],[0,0,-1],V.body);let A=10,P=8,F=[0,1.205,-.23],v=[.42,.115,.38],G=e.length;for(let E=0;E<=P;E++){let I=Math.PI*E/P,k=Math.cos(I),R=Math.sin(I);for(let _=0;_<=A;_++){let w=Math.PI*2*_/A,D=R*Math.cos(w),N=R*Math.sin(w);t.push(F[0]+v[0]*D,F[1]+v[1]*k,F[2]+v[2]*N);let U=D/v[0],O=k/v[1],Y=N/v[2],j=Math.hypot(U,O,Y)||1;U/=j,O/=j,Y/=j,n.push(U,O,Y),e.push(V.head)}}for(let E=0;E<P;E++)for(let I=0;I<A;I++){let k=G+E*(A+1)+I,R=k+A+1;i.push(k,R,k+1,k+1,R,R+1)}let X=new Float32Array(t),M=new Float32Array(n),B=new Float32Array(e),L=new Uint16Array(i);return{position:X,normal:M,part:B,index:L,vertexCount:e.length,indexCount:i.length}}function Bn(t,n,e,i){let o=new Float32Array(n),a=c=>t[c*3],r=c=>t[c*3+2],s=0,l=(c,f)=>{let m=f-c;for(let u=c;u<f;u++){let[h,b]=i(u),p=h-a(u),y=b-r(u);if(m>=2){let d=Math.max(c,u-1),x=Math.min(f-1,u+1),T=a(x)-a(d),S=r(x)-r(d),C=Math.hypot(T,S);if(C>1e-6){let A=-S/C,P=T/C;A*p+P*y<0&&(A=-A,P=-P),p=A,y=P}}o[u]=p===0&&y===0?0:Math.atan2(p,y)}};for(let c=1;c<=n;c++)(c===n||e(c)!==e(s))&&(l(s,c),s=c);return o}var Vt=.22;function yr(t,n){let e=Bt[t];if(e!=="sold"&&e!=="held")return-1;let i=(n+1)*2654435761;return i^=i>>>15,i=Math.imul(i,2246822519),i^=i>>>13,(i>>>0)%1e5/1e5}var Xe=.42;function Ne(t){let n=t.length,e=new Float64Array(n);if(n<2)return e.fill(1/0),e;let i=1/0,o=1/0,a=-1/0,r=-1/0;for(let b of t)b.x<i&&(i=b.x),b.y<o&&(o=b.y),b.x>a&&(a=b.x),b.y>r&&(r=b.y);let s=Math.max(a-i,1e-6),l=Math.max(r-o,1e-6),c=Math.max(Math.sqrt(s*l/n),1e-6),f=Math.max(1,Math.ceil(s/c)+1),m=Math.max(1,Math.ceil(l/c)+1),u=new Map,h=(b,p)=>{let y=Math.min(f-1,Math.max(0,Math.floor((b-i)/c)));return Math.min(m-1,Math.max(0,Math.floor((p-o)/c)))*f+y};for(let b=0;b<n;b++){let p=h(t[b].x,t[b].y),y=u.get(p);y?y.push(b):u.set(p,[b])}for(let b=0;b<n;b++){let p=t[b],y=Math.min(f-1,Math.max(0,Math.floor((p.x-i)/c))),d=Math.min(m-1,Math.max(0,Math.floor((p.y-o)/c))),x=1/0;for(let T=1;T<=4;T++){for(let S=d-T;S<=d+T;S++)if(!(S<0||S>=m))for(let C=y-T;C<=y+T;C++){if(C<0||C>=f||T>1&&Math.abs(S-d)<T&&Math.abs(C-y)<T)continue;let A=u.get(S*f+C);if(A)for(let P of A){if(P===b)continue;let F=Math.hypot(t[P].x-p.x,t[P].y-p.y);F<x&&(x=F)}}if(Number.isFinite(x)&&x<=T*c)break}e[b]=x}return e}function Ue(t){let n=t.eyeHeightM;return Number.isFinite(n)?Math.max(0,n-Gt):0}function En(t,n,e,i,o,a){let r=t.length,s=new Float32Array(r*3),l=new Float32Array(r),c=new Float32Array(r*3),f=new Float32Array(r),m=new Float32Array(r),u=new Float32Array(r),h=new Float32Array(r),b=new Float32Array(r*3),p=new Map,y=Ne(t);for(let d=0;d<r;d++){let x=t[d],S=(e?.seatPitchU(d)??y[d])*g;f[d]=Number.isFinite(S)?Math.max(.06,Math.min(Vt,S*Xe)):Vt,m[d]=_n(Number.isFinite(S)?S:void 0);let C=Mn(x.glyph,{seatGlyph:a?.get(x.categoryKey)});u[d]=gn.indexOf(C),h[d]=x.wheelchairSpaceType==="no-seat"?0:1,s[d*3]=x.x*g,s[d*3+1]=e?e.seatDeckY(d):Ue(x),s[d*3+2]=x.y*g,l[d]=Qt(n?n(x):"available");let A=H(o?.get(x.categoryKey)??"#6e7bff")??[.43,.48,1];if(c[d*3]=A[0],c[d*3+1]=A[1],c[d*3+2]=A[2],x.accessibility?.length){let P=H(hn(x.accessibility));P&&(b[d*3]=P[0],b[d*3+1]=P[1],b[d*3+2]=P[2])}p.set(x.id,d)}return{count:r,iPosition:s,iState:l,iCategory:c,iMaxRadius:f,iRing:b,idToIndex:p,iChairWidth:m,iGlyph:u,iPhysicalSeat:h,iFloor:i??new Float32Array(r),iYaw:new Float32Array(r)}}var Ye=64;function xr(t,n){let e=[];for(let r of n){let s=t.idToIndex.get(r.seatId);if(s===void 0)continue;let l=Qt(r.state);t.iState[s]!==l&&(t.iState[s]=l,e.push(s))}if(!e.length)return[];e.sort((r,s)=>r-s);let i=[],o=e[0],a=e[0];for(let r=1;r<e.length;r++){let s=e[r];if(s!==a){if(s<=a+Ye){a=s;continue}i.push({start:o,length:a-o+1}),o=s,a=s}}return i.push({start:o,length:a-o+1}),i}function Sr(t,n,e){return e<0?n>1?t.filter(i=>i.kind==="floor"):[...t]:t.filter(i=>i.floorIndex===void 0||i.floorIndex===e)}function Rr(t,n){let e=[...t].sort((o,a)=>o.screen.y-a.screen.y),i=[];for(let o of e){let a=i.find(r=>r.some(s=>Math.abs(s.screen.x-o.screen.x)<104&&Math.abs(s.screen.y-o.screen.y)<34));a?a.push(o):i.push([o])}return i.flatMap(o=>o.length<2?o:o.map((a,r)=>({...a,screen:{...a.screen,x:Math.max(54,Math.min(n-54,a.screen.x+(r-(o.length-1)/2)*104))}})))}var je=1.15,He=2.75,Ve=4.5,We=.85,ze=.5,Ze=.26;function Ar(t,n,e){let i=Math.max(1e-6,n),o=t/i,a=e?.hasZoneLabels??!0,r=new Set;return o>=.75&&r.add("floor"),o>=je&&r.add("zone"),o<=(a?He:Ve)&&(r.add("section"),r.add("ga")),o<=We&&(r.add("annotation"),r.add("booth")),o<=ze&&r.add("row"),o<=Ze&&r.add("seat"),r}function Pr(t,n,e,i,o,a=6){let r=a+n,s=i-a-n,l=a+e,c=o-a-e;return{...t,x:r>s?i/2:Math.max(r,Math.min(s,t.x)),y:l>c?o/2:Math.max(l,Math.min(c,t.y))}}function Ir(t,n,e,i){let o=t,a=n[0],r=n[1],s=n[2],l=o[0]*a+o[4]*r+o[8]*s+o[12],c=o[1]*a+o[5]*r+o[9]*s+o[13],f=o[2]*a+o[6]*r+o[10]*s+o[14],m=o[3]*a+o[7]*r+o[11]*s+o[15];if(!(m>1e-6))return{x:0,y:0,depth:1/0,visible:!1};let u=l/m,h=c/m,b=f/m,p=u>=-1.05&&u<=1.05&&h>=-1.05&&h<=1.05&&b<=1;return{x:(u*.5+.5)*e,y:(1-(h*.5+.5))*i,depth:b,visible:p}}function wr(t,n,e=n){let i=[],o=[...t].sort((a,r)=>a.screen.depth-r.screen.depth);for(let a of o){let r=!1;for(let s of i)if(on(a,s,n,e)){r=!0;break}r||i.push(a)}return i}var Ke=6;function on(t,n,e,i){let o=Math.abs(t.screen.x-n.screen.x),a=Math.abs(t.screen.y-n.screen.y),r=t.halfWidth!=null&&n.halfWidth!=null?Math.max(e,t.halfWidth+n.halfWidth+Ke):e;return o<r&&a<i}function Tr(t,n,e){return t.length*n*.58+(e?14:0)}var $e={row:8,seat:14};function _r(t){return t<480?{row:5,seat:8}:t<768?{row:6,seat:10}:$e}function Br(t,n,e,i){let o=Math.max(1,Math.min(e,i)*.5),a=Math.min(2,Math.hypot(t.x-e/2,t.y-i/2)/o);return n*(1+1.5*a)}function Er(t,n,e,i,o=[]){let a=[...t].sort((s,l)=>(l.priority??0)-(s.priority??0)||s.focus-l.focus),r=[];for(let s of a){if(r.length>=i)break;let l=!1;for(let c of o)if(on(s,c,n,e)){l=!0;break}if(!l){for(let c of r)if(on(s,c,n,e)){l=!0;break}}l||r.push(s)}return r}var qe=.15,Je=.9,Qe=1.76,to=.7,no=1.6;function eo(){return{background:{top:[...nn.top],bottom:[...nn.bottom]},structure:tn,seatStates:{...Tn},seatScale:1,materials:{seat:null,shell:null,roughness:.78}}}function Fn(t){let n=eo();if(!t)return n;let e=H(t.background);if(e){n.background={top:et(e,Je),bottom:et(e,Qe)};let r={};for(let[s,l]of Object.entries(tn))r[s]=nt(l,e,qe);n.structure=r}let i=H(t.selectionColor)??H(t.accent);i&&(n.seatStates={...n.seatStates,selected:i});let o=t.seatScale;typeof o=="number"&&Number.isFinite(o)&&(n.seatScale=Math.min(no,Math.max(to,o)));let a=t.venue3d;if(a){let r=H(a.deck),s=H(a.fascia);r&&(n.structure={...n.structure,tierTop:r,gaTop:r}),s&&(n.structure={...n.structure,tierWall:s,gaWall:s}),n.materials.seat=H(a.seat),n.materials.shell=H(a.shell),typeof a.roughness=="number"&&Number.isFinite(a.roughness)&&(n.materials.roughness=Math.min(1,Math.max(0,a.roughness)))}return n}function Cn(t,n){let e=[];for(let i of n)e.push(...t.seatStates[i]);return e}import On from"polygon-clipping";import oo from"earcut";var ro=.58,vn=.01,ot=Vt*1.5*lt,io=.5,so=.6;function ao(t,n){let e=t.length,i=[];for(let r=0;r<e;r++){let s=t[Math.max(0,r-1)],l=t[Math.min(e-1,r+1)],c=l.x-s.x,f=l.y-s.y,m=Math.hypot(c,f);if(m<1e-9){i.push([0,0]);continue}c/=m,f/=m,i.push([-f,c])}let o=0;for(let r=0;r<e;r++)o+=(t[r].x-n.x)*i[r][0]+(t[r].y-n.y)*i[r][1];return o<0?i.map(([r,s])=>[-r,-s]):i}function co(t,n){if(t.length<2||n<=0)return[...t];let e=[...t],i=(r,s)=>{let l=s.x-r.x,c=s.y-r.y,f=Math.hypot(l,c)||1;return{x:l/f,y:c/f}},o=i(e[1],e[0]),a=i(e[e.length-2],e[e.length-1]);return e.unshift({x:e[0].x+o.x*n,y:e[0].y+o.y*n}),e.push({x:e[e.length-1].x+a.x*n,y:e[e.length-1].y+a.y*n}),e}var kn=Math.PI/12;function uo(t){if(t.length<3)return[...t];let n=[...t].sort((a,r)=>a.x-r.x||a.y-r.y),e=(a,r,s)=>(r.x-a.x)*(s.y-a.y)-(r.y-a.y)*(s.x-a.x),i=a=>{let r=[];for(let s of a){for(;r.length>=2&&e(r[r.length-2],r[r.length-1],s)<=0;)r.pop();r.push(s)}return r.pop(),r},o=[...i(n),...i([...n].reverse())];return o.length>=3?o:[...t]}function Gn(t,n){if(!t.length||!(n>0))return[];let e=uo(t),i=(s,l,c,f)=>{let m=c-l;for(;m<0;)m+=Math.PI*2;for(;m>Math.PI*2;)m-=Math.PI*2;let u=Math.max(1,Math.ceil(m/kn)),h=n/Math.cos(m/u/2);for(let b=0;b<=u;b++){let p=l+m*b/u;f.push({x:s.x+Math.cos(p)*h,y:s.y+Math.sin(p)*h})}};if(e.length<3){let s=0,l=0;for(let h of e)s+=h.x,l+=h.y;s/=e.length||1,l/=e.length||1;let c=0;for(let h of e)c=Math.max(c,Math.hypot(h.x-s,h.y-l));let f=[],m=Math.max(3,Math.ceil(Math.PI*2/kn)),u=(c+n)/Math.cos(Math.PI/m);for(let h=0;h<m;h++){let b=h/m*Math.PI*2;f.push({x:s+Math.cos(b)*u,y:l+Math.sin(b)*u})}return f}let o=e.length,a=[];for(let s=0;s<o;s++){let l=e[s],c=e[(s+1)%o];a.push(Math.atan2(-(c.x-l.x),c.y-l.y))}let r=[];for(let s=0;s<o;s++)i(e[s],a[(s+o-1)%o],a[s],r);return Yn(r)}function lo(t,n,e){if(t.length===1)return Math.hypot(n-t[0].x,e-t[0].y);let i=1/0;for(let o=0;o+1<t.length;o++){let a=t[o],r=t[o+1],s=r.x-a.x,l=r.y-a.y,c=s*s+l*l,f=c>1e-12?((n-a.x)*s+(e-a.y)*l)/c:0;f<0?f=0:f>1&&(f=1);let m=Math.hypot(n-(a.x+f*s),e-(a.y+f*l));m<i&&(i=m)}return i}function Wt(t){let n=t.map(o=>{let a=0,r=0;for(let c of o.pts)a+=c.x,r+=c.y;let s=o.pts.length||1;a/=s,r/=s;let l=0;for(let c of o.pts){let f=Math.hypot(c.x-a,c.y-r);f>l&&(l=f)}return{cx:a,cy:r,rad:l}}),e=o=>{let a=o.length;return a<=2?[...o]:[o[Math.floor(a*.25)],o[Math.floor(a*.5)],o[Math.floor(a*.75)]]},i=[];for(let o=0;o<t.length;o++){let a=e(t[o].pts),r=[],s=1/0,l=null;for(let f of a){let m=1/0;for(let u=0;u<t.length;u++){if(u===o||Math.abs(t[u].y-t[o].y)<.001)continue;let h=n[u],b=Math.hypot(f.x-h.cx,f.y-h.cy)-h.rad;if(b>=m&&b>=s)continue;let p=lo(t[u].pts,f.x,f.y);p<m&&(m=p),t[u].depth<t[o].depth&&p<s&&(s=p,l=t[u].y)}Number.isFinite(m)&&m>0&&r.push(m)}r.sort((f,m)=>f-m);let c=r.length?r[Math.floor(r.length/2)]:1;i.push({pitch:c,belowY:l})}return i}function Dn(t,n,e,i){let o=t[n],a=o.pts.length>=2?[...o.pts]:o.pts.length===1?(()=>{let f=o.pts[0],m=f.x-i.x,u=f.y-i.y,h=Math.hypot(m,u)||1;m/=h,u/=h;let b=Math.max(e[n].pitch,.001)*.5;return[{x:f.x+u*b,y:f.y-m*b},{x:f.x-u*b,y:f.y+m*b}]})():[];if(a.length<2)return null;let r=0,s=0;for(let f=1;f<a.length;f++){let m=Math.hypot(a[f].x-a[f-1].x,a[f].y-a[f-1].y);m>1e-6&&(r+=m,s++)}let l=s>0?r/s:0,c=co(a,Math.max(l*so,ot));return{pts:c,nrm:ao(c,i),front:Math.max(e[n].pitch*ro,ot),back:Math.max(e[n].pitch*io,ot)}}var gt=1.5,Xn=.3;function rn(t,n){if(t.length<3)return t;let e=t[0],i=t[t.length-1],o=i.x-e.x,a=i.y-e.y,r=Math.hypot(o,a),s=-1,l=-1;for(let m=1;m<t.length-1;m++){let u=t[m],h=r>1e-12?Math.abs((u.x-e.x)*a-(u.y-e.y)*o)/r:Math.hypot(u.x-e.x,u.y-e.y);h>s&&(s=h,l=m)}if(s<=n||l<0)return[e,i];let c=rn(t.slice(0,l+1),n),f=rn(t.slice(l),n);return[...c.slice(0,-1),...f]}function Nn(t,n){if(t.length<4)return t;let e=rn([...t,t[0]],n);return e.pop(),e.length>=3?e:t}function Un(t,n,e){if(t.length<2)return[];let i=e??Wt(t),o=new Map;for(let r=0;r<t.length;r++){let s=o.get(t[r].blockId);s?s.push(r):o.set(t[r].blockId,[r])}let a=[];for(let[,r]of o){let s=[];for(let x of r){let T=t[x].patch;T&&T.length>=3?a.push({outline:[...T],holes:[],topY:t[x].y}):s.push(x)}if(!s.length)continue;s.sort((x,T)=>t[x].depth-t[T].depth);let c=s.map(x=>Dn(t,x,i,n)).filter(x=>x!==null);if(!c.length)continue;let f=(x,T)=>({x:x.pts[T].x-x.nrm[T][0]*(x.front+gt),y:x.pts[T].y-x.nrm[T][1]*(x.front+gt)}),m=(x,T)=>({x:x.pts[T].x+x.nrm[T][0]*(x.back+gt),y:x.pts[T].y+x.nrm[T][1]*(x.back+gt)}),u=c[0],h=c[c.length-1],b=[];for(let x=0;x<u.pts.length;x++)b.push(f(u,x));for(let x of c)b.push(m(x,x.pts.length-1));for(let x=h.pts.length-1;x>=0;x--)b.push(m(h,x));for(let x=c.length-1;x>=0;x--)b.push(f(c[x],0));let p=Yn(b),y=1/0;for(let x of s)t[x].y<y&&(y=t[x].y);if(!Number.isFinite(y))continue;if(p.length>=3&&Math.abs(ft(p))>1e-6&&c.every(x=>{let T=x.pts[Math.floor(x.pts.length/2)];return It(p,T.x,T.y)})){a.push({outline:Nn(p,Xn),holes:[],topY:y});continue}for(let x of mo(c))a.push({outline:x,holes:[],topY:y})}return a}function mo(t){let n=[];for(let e of t){let i=[],o=[],a=e.front+gt,r=e.back+gt;for(let l=0;l<e.pts.length;l++){let c=e.pts[l],f=e.nrm[l];i.push([c.x-f[0]*a,c.y-f[1]*a]),o.push([c.x+f[0]*r,c.y+f[1]*r])}let s=[...i,...o.reverse()];s.length<3||(s.push(s[0]),n.push([s]))}if(!n.length)return[];try{let e=On.union(n[0],...n.slice(1)),i=[];for(let o of e){if(!o.length||o[0].length<4)continue;let a=o[0].map(([l,c])=>({x:l,y:c})),r=a[0],s=a[a.length-1];a.length>1&&Math.abs(r.x-s.x)<1e-9&&Math.abs(r.y-s.y)<1e-9&&a.pop(),a.length>=3&&i.push(Nn(a,Xn))}return i}catch{return[]}}function Yn(t){let n=[];for(let e of t){let i=n[n.length-1];i&&Math.hypot(e.x-i.x,e.y-i.y)<1e-9||n.push(e)}for(;n.length>2&&Math.hypot(n[0].x-n[n.length-1].x,n[0].y-n[n.length-1].y)<1e-9;)n.pop();return n}var sn=class{constructor(n){this.minX=1/0;this.minY=1/0;this.maxX=-1/0;this.maxY=-1/0;this.rings=n;for(let e of n)for(let i of e)i.x<this.minX&&(this.minX=i.x),i.y<this.minY&&(this.minY=i.y),i.x>this.maxX&&(this.maxX=i.x),i.y>this.maxY&&(this.maxY=i.y)}containsAll(n){for(let e of n)if(e.x<this.minX||e.x>this.maxX||e.y<this.minY||e.y>this.maxY)return!1;for(let e of this.rings){let i=!0;for(let o of n)if(!It(e,o.x,o.y)){i=!1;break}if(i)return!0}return!1}};function Ln(t,n,e,i,o,a){if(i.length<3)return;if(e.containsAll(i)){let c=[0,1,0],f=i[0];for(let m=1;m+1<i.length;m++){let u=i[m],h=i[m+1];t.tri([f.x*g,o,f.y*g],[u.x*g,o,u.y*g],[h.x*g,o,h.y*g],c,a)}return}let r=i.map(c=>[c.x,c.y]);r.push(r[0]);let s;try{s=On.intersection([r],n)}catch{return}let l=[0,1,0];for(let c of s){if(!c.length||c[0].length<4)continue;let f=c[0],m=[],u=[];for(let b=0;b<f.length-1;b++)m.push(f[b][0],f[b][1]),u.push([f[b][0],f[b][1]]);if(u.length<3)continue;let h=oo(m,void 0,2);for(let b=0;b<h.length;b+=3){let p=u[h[b]],y=u[h[b+1]],d=u[h[b+2]];t.tri([p[0]*g,o,p[1]*g],[y[0]*g,o,y[1]*g],[d[0]*g,o,d[1]*g],l,a)}}}function jn(t,n,e,i,o,a,r){if(n.length<2)return;let s=r??Wt(n),l=[0,1,0],c=a&&a.length>=3?[[...a.map(h=>[h.x,h.y]),[a[0].x,a[0].y]]]:null,f=a&&a.length>=3?new sn([[...a]]):null,m=h=>{t.setMaterial(2),h(),t.setMaterial(0)},u=h=>{t.setMaterial(3),h(),t.setMaterial(0)};for(let h=0;h<n.length;h++){let b=n[h];if(b.patch&&b.patch.length>=3){let C=[...b.patch],A=s[h].belowY??i;if(u(()=>{if(c&&f)Ln(t,c,f,C,b.y,o.tread);else{let P=C[0];for(let F=1;F+1<C.length;F++){let v=C[F],G=C[F+1];t.tri([P.x*g,b.y,P.y*g],[v.x*g,b.y,v.y*g],[G.x*g,b.y,G.y*g],l,o.tread)}}}),b.y>A+vn){let P=0,F=0;for(let v of C)P+=v.x,F+=v.y;P/=C.length,F/=C.length,m(()=>{for(let v=0;v<C.length;v++){let G=C[v],X=C[(v+1)%C.length],M=X.x-G.x,B=X.y-G.y,L=Math.hypot(M,B);if(L<1e-6)continue;let E=B/L,I=-M/L;(G.x-P)*E+(G.y-F)*I<0&&(E=-E,I=-I);let k=[E,0,I],R=[G.x*g,b.y,G.y*g],_=[X.x*g,b.y,X.y*g],w=[G.x*g,A,G.y*g],D=[X.x*g,A,X.y*g];t.tri(R,_,D,k,o.riser),t.tri(R,D,w,k,o.riser)}})}continue}let p=Dn(n,h,s,e);if(!p)continue;let{pts:y,nrm:d,front:x,back:T}=p,S=s[h].belowY??i;for(let C=0;C+1<y.length;C++){let A=y[C],P=y[C+1],F=d[C],v=d[C+1];if(Math.hypot(P.x-A.x,P.y-A.y)<1e-6||F[0]===0&&F[1]===0||v[0]===0&&v[1]===0)continue;let G=[(A.x-F[0]*x)*g,b.y,(A.y-F[1]*x)*g],X=[(P.x-v[0]*x)*g,b.y,(P.y-v[1]*x)*g],M=[(A.x+F[0]*T)*g,b.y,(A.y+F[1]*T)*g],B=[(P.x+v[0]*T)*g,b.y,(P.y+v[1]*T)*g];if(u(()=>{c&&f?Ln(t,c,f,[{x:A.x-F[0]*x,y:A.y-F[1]*x},{x:P.x-v[0]*x,y:P.y-v[1]*x},{x:P.x+v[0]*T,y:P.y+v[1]*T},{x:A.x+F[0]*T,y:A.y+F[1]*T}],b.y,o.tread):(t.tri(G,X,B,l,o.tread),t.tri(G,B,M,l,o.tread))}),b.y>S+vn){let L=[G[0],S,G[2]],E=[X[0],S,X[2]],I=[-F[0],0,-F[1]];m(()=>{t.tri(G,X,E,I,o.riser),t.tri(G,E,L,I,o.riser)})}}}}import Vn from"polygon-clipping";function fo(t,n){let e=t.eventConfigurationIds;return!e?.length||!!n&&e.includes(n)}function Hn(t,n){return t.filter(e=>e.type!=="shape"||fo(e,n))}function Wn(t,n){let e=t.focalPoint??{x:0,y:0};return t.floors?.length?t.floors.map((i,o)=>({objects:Hn(i.objects,n),focal:{x:(i.focalPoint??e).x,y:(i.focalPoint??e).y},baseHeightM:i.baseHeightM??0,index:o})):[{objects:Hn(t.objects,n),focal:e,baseHeightM:0,index:0}]}var ho={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};function Mt(t){return xn(t)??ho}function zn(t,n){let e=jt(t.outline,ot),i=Mt(e),o=n.filter(r=>r!==t&&r.outline&&r.outline.length>=3&&Xt(i,Mt(r.outline)));if(!o.length)return[e];let a=r=>{let s=r.map(l=>[l.x,l.y]);return s.push(s[0]),s};try{let r=Vn.difference([a(e)],...o.map(l=>[a(l.outline)])),s=[];for(let l of r){if(!l.length)continue;let c=l[0].map(([f,m])=>({x:f,y:m}));if(c.length>1){let f=c[0],m=c[c.length-1];Math.abs(f.x-m.x)<1e-9&&Math.abs(f.y-m.y)<1e-9&&c.pop()}c.length>=3&&s.push(c)}return s.length?s:[e]}catch{return[e]}}function Zn(t,n){if(!n.length)return t;let e=a=>{let r=a.map(s=>[s.x,s.y]);return r.push(r[0]),r},i=n.map(a=>[e(a)]),o=[];for(let a of t){let r;try{r=Vn.intersection([e(a.outline)],i.flat())}catch{o.push(a);continue}for(let s of r){if(!s.length)continue;let l=s[0].map(([c,f])=>({x:c,y:f}));if(l.length>1){let c=l[0],f=l[l.length-1];Math.abs(c.x-f.x)<1e-9&&Math.abs(c.y-f.y)<1e-9&&l.pop()}l.length>=3&&o.push({outline:l,holes:[],topY:a.topY})}}return o.length?o:t}var bo=.05,Kn=.05,po=.15,an=25;function $n(t,n,e){let i=new Map,o=new Array(n.length).fill(null),a=new Float64Array(n.length),r=new Array(n.length).fill(void 0),s=new Array(n.length).fill(void 0),l=new Map,c=[],f=new Set;for(let u=0;u<t.length;u+=1){let h=t[u];for(let b of h.objects){if(b.type==="table"&&f.add(b.id),b.type!=="section"||!b.outline||b.outline.length<3)continue;let p=jt(b.outline,ot);l.set(b.id,{section:b,unit:h,frontU:1/0,hasSeats:!1,rows:new Map,seatIndices:[]}),c.push({id:b.id,floorIndex:u,box:Mt(p),section:b,unit:h,outline:p})}}let m=new Map;for(let u of c){let h=m.get(u.floorIndex);h?h.push(u):m.set(u.floorIndex,[u])}for(let u=0;u<n.length;u++){let h=n[u],b=e?m.get(e[u])??[]:c,p=h.sectionId?b.find(d=>d.id===h.sectionId)??b.find(d=>d.section.logicalSectionId===h.sectionId&&qt({x:h.x,y:h.y},d.outline,d.section.holes)):void 0,y=p?[p]:b;for(let d of y){if(e&&d.floorIndex!==e[u]||!p&&(h.x<d.box.minX||h.x>d.box.maxX||h.y<d.box.minY||h.y>d.box.maxY||!qt({x:h.x,y:h.y},d.outline,d.section.holes)))continue;o[u]=d.id;let x=l.get(d.id);x.hasSeats=!0;let T=h.focalPoint??d.unit.focal,S=Math.hypot(h.x-T.x,h.y-T.y);S<x.frontU&&(x.frontU=S),x.seatIndices.push(u);let C=h.rowId||`__seat-${u}`,A=x.rows.get(C);A?A.push({x:h.x,y:h.y}):x.rows.set(C,[{x:h.x,y:h.y}]);break}}for(let[u,h]of l){let b=dn(h.section,{floorBaseHeightM:h.unit.baseHeightM}),p=h.unit.baseHeightM,y=b.rake>0?Math.tan(b.rake*Math.PI/180):0,d=b.rake<=.01&&b.height<=p+.001,x=h.section.surfaceKind,T=x==="flat"?!0:x==="rakedRows"&&b.rake>.01?!1:d,S=h.hasSeats?yn(u,n,h.seatIndices,h.unit.focal):{sectionId:u,rows:[],blockCount:0},A=S.rows.length<2?Rn([...h.rows.values()].map(R=>({points:R})),h.unit.focal):null,P=1/0;if(A){if(h.hasSeats)for(let R of h.rows.values())for(let _ of R){let w=A.depthAt(_.x,_.y);w<P&&(P=w)}if(!h.hasSeats||!Number.isFinite(P)){P=1/0;for(let R of h.section.outline){let _=A.depthAt(R.x,R.y);_<P&&(P=_)}}}let F=p+bo,v=Math.max(F,b.height),G=R=>{let _=Math.max(0,R-P)*ut,w=Math.min(_*y,an);return Math.max(F,b.height+w)},X=R=>{let _=Math.max(0,R)*ut,w=Math.min(_*y,an);return Math.max(F,b.height+w)},M=T?[]:S.rows.map(R=>({pts:R.pts,y:X(R.blockDepth),depth:R.blockDepth,blockId:R.blockId,...f.has(R.id)?{patch:Gn(R.pts,ot)}:{}})),B=M.length?M[0].y:v,L=M.map(R=>{let _=R.patch&&R.patch.length>=3?R.patch:R.pts,w=0,D=0;for(let O of _)w+=O.x,D+=O.y;let N=_.length||1;w/=N,D/=N;let U=0;for(let O of _){let Y=Math.hypot(O.x-w,O.y-D);Y>U&&(U=Y)}return{cx:w,cy:D,rad:U}}),E=T?()=>v:M.length>=2?(R,_)=>{let w=1/0,D=B;for(let N=0;N<M.length;N++){let U=L[N];if(Math.hypot(R-U.cx,_-U.cy)-U.rad>=w)continue;let O=M[N].patch,Y=O&&O.length>=3?It(O,R,_)?0:Dt(O,R,_):Dt(M[N].pts,R,_);Y<w&&(w=Y,D=M[N].y)}return D}:(R,_)=>A?G(A.depthAt(R,_)):v,I=[0,1,0],k=M.length>=2||T?()=>I:(R,_)=>{if(!A)return I;let w=A.depthAt(R,_);if(w<=P)return I;let D=(w-P)*ut;if(D*y>=an||b.height+D*y<=F)return I;let[N,U]=A.gradientAt(R,_);if(N===0&&U===0)return I;let O=1/Math.hypot(y,1);return[-N*y*O,O,-U*y*O]};if(!T)for(let R of S.rows){let _=X(R.blockDepth);for(let w of R.seatIndices)r[w]=_}for(let R of S.rows){let _=[];for(let O=1;O<R.pts.length;O++){let Y=Math.hypot(R.pts[O].x-R.pts[O-1].x,R.pts[O].y-R.pts[O-1].y);Y>1e-6&&_.push(Y)}_.sort((O,Y)=>O-Y);let w=_.length?_[Math.floor(_.length/2)]:1/0,D=1/0,N=R.pts[Math.floor(R.pts.length/2)];if(N)for(let O of S.rows){if(O===R||O.blockId!==R.blockId)continue;let Y=Dt(O.pts,N.x,N.y);Y>1e-6&&Y<D&&(D=Y)}let U=Math.min(w,Math.max(D,w*.5));if(Number.isFinite(U)&&U>0)for(let O of R.seatIndices)s[O]=U}i.set(u,{sectionId:u,deckAt:E,normalAt:k,flat:T,bottomY:p,rowLevels:M,landingY:B})}for(let u=0;u<n.length;u++){let h=o[u],b=n[u];if(h){let y=r[u];a[u]=(y??i.get(h).deckAt(b.x,b.y))+po;continue}let p=b.eyeHeightM;a[u]=Number.isFinite(p)?Math.max(0,p-Gt):0}return{bySection:i,seatOwner:o,seatDeckY:u=>a[u],seatPitchU:u=>s[u]}}var W={top:1,wallBottom:.5,bottomCap:.4};function st(t,n){if(!t)return n;let e=et(Pt(t,.4),.62);return nt(n,e,.72)}function qn(t,n){let e=new Map;for(let a of t.categories??[])e.set(a.key,a.color);let i=new Map;for(let a of n){if(!a.sectionId)continue;let r=i.get(a.sectionId);r||(r=new Map,i.set(a.sectionId,r)),r.set(a.categoryKey,(r.get(a.categoryKey)??0)+1)}let o=new Map;for(let[a,r]of i){let s=0,l=0,c=0,f=0;for(let[m,u]of r){let h=H(e.get(m));h&&(s+=h[0]*u,l+=h[1]*u,c+=h[2]*u,f+=u)}f>0&&o.set(a,[s/f,l/f,c/f])}return o}function Jn(t,n){return H(t.color)??n.get(t.logicalSectionId??t.id)??null}import yo from"polygon-clipping";function xo(t,n){return t===void 0||n===void 0?!0:Math.abs(t-n)<.001}var zt=class{constructor(){this.rings=[];this.boxes=[];this.levels=[]}subtract(n,e){let i=n.map(l=>[l.x,l.y]);if(i.length<3)return[];i.push(i[0]);let o=Mt(n),a=this.rings.filter((l,c)=>Xt(o,this.boxes[c])&&xo(e,this.levels[c])),r=[[i]];if(a.length)try{r=yo.difference([i],...a).map(c=>c.map(f=>f.map(([m,u])=>[m,u])))}catch{r=[[i]]}this.rings.push([i]),this.boxes.push(o),this.levels.push(e);let s=[];for(let l of r){if(!l.length)continue;let c=l[0].map(([f,m])=>({x:f,y:m}));if(c.length>1){let f=c[0],m=c[c.length-1];Math.abs(f.x-m.x)<1e-9&&Math.abs(f.y-m.y)<1e-9&&c.pop()}c.length>=3&&s.push(c)}return s}};function go(t,n){if(!n)return t;let e=1/0,i=-1/0,o=1/0,a=-1/0;for(let m of t)e=Math.min(e,m.x),i=Math.max(i,m.x),o=Math.min(o,m.y),a=Math.max(a,m.y);let r=(e+i)/2,s=(o+a)/2,l=n*Math.PI/180,c=Math.cos(l),f=Math.sin(l);return t.map(m=>{let u=m.x-r,h=m.y-s;return{x:r+u*c-h*f,y:s+u*f+h*c}})}function bt(t){let n=null;if(t.kind==="polygon"&&t.points&&t.points.length>=3&&(n=t.points),t.kind==="rect"&&t.width&&t.height&&(n=_t(t.x??0,t.y??0,t.width,t.height)),t.kind==="ellipse"&&t.width&&t.height){let e=(t.x??0)+t.width/2,i=(t.y??0)+t.height/2;n=Ht(e,i,t.width/2,t.height/2)}return n?go(n,t.rotation):null}function Et(t){let n=t.role??"",e={stage:{kind:"stage",heightM:1},entrance:{kind:"portal",heightM:2.7},exit:{kind:"portal",heightM:2.7},screen:{kind:"solid",heightM:6},wall:{kind:"solid",heightM:2.8},rail:{kind:"solid",heightM:1.1},suite:{kind:"suite",heightM:3},obstruction:{kind:"solid",heightM:4.5},sound:{kind:"solid",heightM:1.45},restroom:{kind:"solid",heightM:2.4},bar:{kind:"solid",heightM:1.1},concession:{kind:"solid",heightM:1.1},coat:{kind:"solid",heightM:1.1},goal:{kind:"portal",heightM:1.8}},i=n==="stage"&&Sn(t.stageKind)?{kind:"stage",heightM:.06}:e[n]??{kind:"plate",heightM:.25};return{...i,heightM:t.heightM??i.heightM}}var Mo=.08;function Qn(t,n){let e=bt(t),i=Et(t),o=i.heightM;if(!e||i.kind!=="plate"&&i.kind!=="stage")return o;let a=1/0,r=1/0,s=-1/0,l=-1/0;for(let f of e)a=Math.min(a,f.x),r=Math.min(r,f.y),s=Math.max(s,f.x),l=Math.max(l,f.y);let c=o;for(let f of n)s>f.minX&&a<f.maxX&&l>f.minY&&r<f.maxY&&c<=f.topOffsetM+1e-6&&(c=f.topOffsetM+Mo);return n.push({minX:a,minY:r,maxX:s,maxY:l,topOffsetM:c}),c}function mt(t,n,e){return{x:t.x+(n.x-t.x)*e,y:t.y+(n.y-t.y)*e}}function te(t){if(t.length!==4)return t;let n=Math.hypot(t[1].x-t[0].x,t[1].y-t[0].y),e=Math.hypot(t[2].x-t[1].x,t[2].y-t[1].y);return n>=e?t:[t[1],t[2],t[3],t[0]]}function Ft(t,n,e){return[mt(t[0],t[1],n),mt(t[0],t[1],e),mt(t[3],t[2],e),mt(t[3],t[2],n)]}function ne(t,n,e){return[mt(t[0],t[3],n),mt(t[1],t[2],n),mt(t[1],t[2],e),mt(t[0],t[3],e)]}function at(t,n,e,i,o,a){K(t,n,void 0,()=>e,i,o,a,W)}var cn=2.4,So=.75,Ro=.15;function Ct(t){if(t.points&&t.points.length>=3)return t.points;let{center:n,width:e,height:i,rotation:o}=t;if(!e||!i)return null;let a=(o??0)*Math.PI/180,r=Math.cos(a),s=Math.sin(a),l=e/2,c=i/2;return[[-l,-c],[l,-c],[l,c],[-l,c]].map(([f,m])=>({x:n.x+f*r-m*s,y:n.y+f*s+m*r}))}function ee(t,n,e,i,o){let a=Ct(n);a&&K(t,a,void 0,()=>e+cn,e,st(i,o.boothTop),o.boothWall,W)}function un(t){if(t.shape==="round"){let f=t.radius;return f?Ht(t.center.x,t.center.y,f,f,24):null}let{width:n,height:e,rotation:i,center:o}=t;if(!n||!e)return null;let a=(i??0)*Math.PI/180,r=Math.cos(a),s=Math.sin(a),l=n/2,c=e/2;return[[-l,-c],[l,-c],[l,c],[-l,c]].map(([f,m])=>({x:o.x+f*r-m*s,y:o.y+f*s+m*r}))}function oe(t,n,e,i,o){let a=un(n);a&&K(t,a,void 0,()=>e+So,e,st(i,o.tableTop),o.tableWall,W)}function re(t,n,e,i,o,a,r,s){let l=bt(n);if(!l)return;let c=s?s.kind==="stage":n.role==="stage",f=s?s.kind==="screen":n.role==="screen",m=s?{kind:c?"stage":"solid",heightM:s.topY-s.baseY}:Et(n),u=s?.baseY??e,h=s?.topY??e+i;if(c&&r){let x=1/0,T=-1/0,S=1/0,C=-1/0;for(let A of l)A.x<x&&(x=A.x),A.x>T&&(T=A.x),A.y<S&&(S=A.y),A.y>C&&(C=A.y);r.push({cx:(x+T)/2*g,cz:(S+C)/2*g,y:h,halfX:Math.max((T-x)/2*g,.5),halfZ:Math.max((C-S)/2*g,.5)})}let b=H(n.fill),p=c&&b?nt(o.stageTop,et(Pt(b,.18),.9),.9):st(b,c?o.stageTop:o.decorTop),y=f?b:null,d=c?b?nt(o.stageWall,et(b,.58),.82):o.stageWall:f?y?nt(et(y,1.42),[.24,.46,.82],.08):[.24,.46,.82]:st(H(n.fill),o.decorWall);if(m.kind==="portal"&&l.length===4){let x=te(l);at(t,Ft(x,0,.16),h,u,p,d),at(t,Ft(x,.84,1),h,u,p,d),at(t,x,h,Math.max(u,h-.35),p,d);return}if(m.kind==="suite"&&l.length===4){let x=l.map((C,A)=>{let P=l[(A+1)%4],F=(C.x+P.x)/2,v=(C.y+P.y)/2;return Math.hypot(F-a.x,v-a.y)}),T=x.indexOf(Math.min(...x)),S=[0,1,2,3].map(C=>l[(T+C)%4]);at(t,Ft(S,0,.08),h,u,p,d),at(t,Ft(S,.92,1),h,u,p,d),at(t,ne(S,.88,1),h,u,p,d),at(t,S,h,Math.max(u,h-.18),p,d);return}at(t,l,h,u,p,d)}function ln(t){let{x:n,y:e,width:i,height:o}=t;if(!i||!o)return null;let a=n+i/2,r=e+o/2,s=(t.rotation??0)*Math.PI/180,l=Math.cos(s),c=Math.sin(s),f=i/2,m=o/2;return[[-f,-m],[f,-m],[f,m],[-f,m]].map(([u,h])=>({x:a+u*l-h*c,y:r+u*c+h*l}))}function Ao(t){if(!t||!t.startsWith("data:image/svg+xml"))return null;let n=t.slice(t.indexOf(",")+1);if(/;base64/i.test(t.slice(0,t.indexOf(","))))try{n=atob(n)}catch{return null}else try{n=decodeURIComponent(n)}catch{}let e=n.match(/<(?:rect|path)\b[^>]*\bfill="([^"]+)"/i);if(!e)return null;let i=e[1].trim();if(i==="none"||i==="transparent")return null;let o=i.match(/^url\(#([^)]+)\)$/);if(!o)return H(i);let a=n.match(new RegExp(`<(?:linear|radial)Gradient\\b[^>]*\\bid="${o[1]}"[^>]*>([\\s\\S]*?)</(?:linear|radial)Gradient>`,"i"));if(!a)return null;let r=[];for(let s of a[1].matchAll(/stop-color="([^"]+)"/gi)){let l=H(s[1].trim());l&&r.push(l)}return r.length?r.reduce((s,l,c)=>nt(s,l,1/(c+1)),r[0]):null}function ie(t,n,e,i){if(n.layer==="foreground")return;let o=ln(n);if(!o)return;let a=e+Ro,r=st(Ao(n.href),i.decorTop),s=Math.max(0,Math.min(1,n.opacity??1));s<1&&(r=nt(i.ground,r,s)),K(t,o,void 0,()=>a,e,r,nt(r,i.decorWall,.5),W)}function se(t,n,e,i,o){if(!n.points||n.points.length<3)return;let a=st(i,o.gaTop);K(t,n.points,n.holes,()=>e+.15,e,a,o.gaWall,W)}var Po=.25,Io=1.2,wo=.6,To=.45,_o=2.3,Bo=Math.PI/180;function pt(t,n,e){let i=e*Bo;return{x:t.x+n*Math.sin(i),y:t.y+n*Math.cos(i)}}function Eo(t,n){let e=n.rings[n.rings.length-1];if(!e)return!1;let i=e.outerRMedian*.85;for(let o of t){if(o.role!=="wall")continue;let a=o.points&&o.points.length>=2?o.points:o.x!==void 0&&o.y!==void 0&&o.width!==void 0&&o.height!==void 0?[{x:o.x,y:o.y},{x:o.x+o.width,y:o.y},{x:o.x+o.width,y:o.y+o.height},{x:o.x,y:o.y+o.height}]:[];if(a.length<2)continue;let r=0;for(let s of a)Math.hypot(s.x-n.centre.x,s.y-n.centre.y)>=i&&r++;if(r>=a.length/2)return!0}return!1}var Fo=24;function Co(t,n,e,i,o,a,r,s){let l=e.binCount,c=Fo,f=ut,m=a+.02,u=[];for(let M=0;M<l;M++){let B=(e.startBin+M+.5)*n.binStepDeg,L=new Float64Array(c+1);for(let E=0;E<=c;E++){let I=i[M]+(o[M]-i[M])*E/c;L[E]=Math.max(m,Pn(n,e,B,I)-Po)}u.push(L)}let h=[r.bandTop[0]*s.top,r.bandTop[1]*s.top,r.bandTop[2]*s.top],b=[r.bandTop[0]*s.bottomCap,r.bandTop[1]*s.bottomCap,r.bandTop[2]*s.bottomCap],p=[r.bandWall[0]*s.top,r.bandWall[1]*s.top,r.bandWall[2]*s.top],y=[r.bandWall[0]*s.wallBottom,r.bandWall[1]*s.wallBottom,r.bandWall[2]*s.wallBottom],d=(M,B)=>{let L=(e.startBin+M+.5)*n.binStepDeg,E=i[M]+(o[M]-i[M])*B/c,I=pt(n.centre,E,L);return[I.x*f,u[M][B],I.y*f]};{let M=Math.tan(12*Math.PI/180);for(let B=0;B<6;B++){let L=!1;for(let I=0;I<l;I++)for(let k=c-1;k>=0;k--)u[I][k]>u[I][k+1]&&(u[I][k]=u[I][k+1],L=!0);let E=e.closed?l:l-1;for(let I=0;I<E;I++){let k=(I+1)%l;for(let R=0;R<=c;R++){let _=u[k][R]-u[I][R];if(Math.abs(_)>1)continue;let w=i[I]+(o[I]-i[I])*R/c,D=i[k]+(o[k]-i[k])*R/c,N=pt(n.centre,w,(e.startBin+I+.5)*n.binStepDeg),U=pt(n.centre,D,(e.startBin+k+.5)*n.binStepDeg),O=M*Math.hypot(U.x-N.x,U.y-N.y)*f;_>O?(u[k][R]=u[I][R]+O,L=!0):-_>O&&(u[I][R]=u[k][R]+O,L=!0)}}if(!L)break}}let x=1,T=(M,B)=>{for(let L=0;L<=c;L+=4)if(Math.abs(u[M][L]-u[B][L])>x)return!0;return Math.abs(u[M][c]-u[B][c])>x},S=Math.tan(38*Math.PI/180),C=M=>(o[M]-i[M])/c*f,A=(M,B)=>u[M][B+1]-u[M][B]>S*Math.max(1e-6,C(M)),P=(M,B)=>{let L=e.closed?(M-1+l)%l:Math.max(0,M-1),E=e.closed?(M+1)%l:Math.min(l-1,M+1);Math.abs(u[L][B]-u[M][B])>x&&(L=M),Math.abs(u[E][B]-u[M][B])>x&&(E=M);let I=Math.max(0,B-1),k=Math.min(c,B+1);I<B&&A(M,I)&&(I=B),k>B&&A(M,B)&&(k=B);let R=d(L,B),_=d(E,B),w=d(M,I),D=d(M,k),N=_[0]-R[0],U=_[1]-R[1],O=_[2]-R[2],Y=D[0]-w[0],j=D[1]-w[1],$=D[2]-w[2],z=U*$-O*j,q=O*Y-N*$,tt=N*j-U*Y,Z=Math.hypot(z,q,tt);return Z>1e-12?(z/=Z,q/=Z,tt/=Z,q<0&&(z=-z,q=-q,tt=-tt),[z,q,tt]):[0,1,0]},F=(M,B)=>{let L=[M[0],a,M[2]],E=[B[0],a,B[2]],I=B[0]-M[0],k=B[2]-M[2],R=Math.hypot(I,k);if(!(R>1e-12))return;let _=[k/R,0,-I/R];t.tri(M,B,E,_,p,p,y),t.tri(M,E,L,_,p,y,y)},v=.05*lt,G=M=>o[M]-i[M]<v,X=e.closed?l:l-1;for(let M=0;M<X;M++){let B=(M+1)%l;if(G(M)||G(B))continue;if(T(M,B)){let _=(e.startBin+M+1)*n.binStepDeg,w=(j,$)=>{let z=(i[M]+i[B])/2,q=(o[M]+o[B])/2,tt=z+(q-z)*$/c,Z=pt(n.centre,tt,_);return[Z.x*f,u[j][$],Z.y*f]};for(let j=0;j<c;j++){let $=d(M,j),z=d(M,j+1),q=w(M,j),tt=w(M,j+1),Z=P(M,j),it=P(M,j+1);t.triN($,q,tt,Z,Z,it,h),t.triN($,tt,z,Z,it,it,h);let vt=d(B,j),kt=d(B,j+1),dt=w(B,j),St=w(B,j+1),yt=P(B,j),xt=P(B,j+1);t.triN(dt,vt,kt,yt,yt,xt,h),t.triN(dt,kt,St,yt,xt,xt,h);let ct=w(M,j),rt=w(M,j+1),Lt=w(B,j+1),Kt=w(B,j),Ot=rt[0]-ct[0],Rt=rt[2]-ct[2],$t=Math.hypot(Ot,Rt);if($t>1e-12){let fn=[Rt/$t,0,-Ot/$t];t.tri(ct,rt,Lt,fn,p),t.tri(ct,Lt,Kt,fn,p)}}let D=d(M,0),N=d(B,0),U=d(B,c),O=d(M,c),Y=j=>[j[0],a,j[2]];t.tri(Y(D),Y(U),Y(N),[0,-1,0],b),t.tri(Y(D),Y(O),Y(U),[0,-1,0],b),F(D,N),F(O,U);continue}for(let _=0;_<c;_++){let w=P(M,_),D=P(B,_),N=P(B,_+1),U=P(M,_+1);if(A(M,_)||A(B,_)){let z=(rt,Lt)=>{let Kt=(e.startBin+rt+.5)*n.binStepDeg,Ot=i[rt]+(o[rt]-i[rt])*(_+.5)/c,Rt=pt(n.centre,Ot,Kt);return[Rt.x*f,Lt,Rt.y*f]},q=d(M,_),tt=d(B,_),Z=z(M,u[M][_]),it=z(B,u[B][_]);t.triN(q,tt,it,w,D,D,h),t.triN(q,it,Z,w,D,w,h);let vt=d(B,_+1),kt=d(M,_+1),dt=z(M,u[M][_+1]),St=z(B,u[B][_+1]);t.triN(dt,St,vt,U,N,N,h),t.triN(dt,vt,kt,U,N,U,h);let yt=it[0]-Z[0],xt=it[2]-Z[2],ct=Math.hypot(yt,xt);if(ct>1e-12){let rt=[-xt/ct,0,yt/ct];t.tri(Z,it,St,rt,p),t.tri(Z,St,dt,rt,p)}continue}let O=d(M,_),Y=d(B,_),j=d(B,_+1),$=d(M,_+1);t.triN(O,Y,j,w,D,N,h),t.triN(O,j,$,w,N,U,h)}let L=d(M,0),E=d(B,0),I=d(B,c),k=d(M,c),R=_=>[_[0],a,_[2]];t.tri(R(L),R(I),R(E),[0,-1,0],b),t.tri(R(L),R(k),R(I),[0,-1,0],b),F(L,E),F(k,I)}if(!e.closed)for(let M of[0,l-1])for(let B=0;B<c;B++)F(d(M,B),d(M,B+1))}function ae(t,n,e){let{bottomY:i,colors:o,ao:a}=e,r=new Float64Array(n.binCount).fill(-1/0);for(let f of n.rings)for(let m of f.arcs){let u=new Float64Array(m.binCount),h=new Float64Array(m.binCount);for(let p=0;p<m.binCount;p++){let y=(m.startBin+p)%n.binCount,d=Math.max(0,m.innerR[p]-ot);u[p]=Math.max(d,r[y]+.001),h[p]=Math.max(u[p]+.001,m.outerR[p]+ot)}let b=0;for(let p=0;p<m.binCount;p++){let y=m.topLevelM[p]-i;y>b&&(b=y)}b>=Io&&Co(t,n,m,u,h,i,o,a);for(let p=0;p<m.binCount;p++){let y=(m.startBin+p)%n.binCount;h[p]>r[y]&&(r[y]=h[p])}}if(e.deriveShell===!1||Eo(e.shapes,n))return;let s=n.rings[n.rings.length-1],l=wo*lt,c=To*lt;for(let f of s.arcs){let m=[],u=[];for(let p=0;p<f.binCount;p++){let y=(f.startBin+p+.5)*n.binStepDeg,d=f.outerR[p]+ot+l;m.push(pt(n.centre,d,y)),u.push(pt(n.centre,d+c,y))}let h=-1/0;for(let p=0;p<f.binCount;p++)f.topLevelM[p]>h&&(h=f.topLevelM[p]);let b=()=>h+_o;f.closed?K(t,u,[m.slice().reverse()],b,i,o.shellTop,o.shellWall,a):K(t,[...u,...m.slice().reverse()],void 0,b,i,o.shellTop,o.shellWall,a)}}function ce(t,n,e,i,o,a,r,s){if(!n.outline||n.outline.length<3)return;let l=e.baseHeightM,c=st(i,s.tierTop);if(!o)return;let f=y=>o.deckAt(y.x,y.y),m=zn(n,r),u=m[0]??n.outline;if(o.rowLevels.length>=2){let y=Wt(o.rowLevels),d=Zn(Un(o.rowLevels,e.focal,y),m),x=()=>[0,1,0];for(let S of d){let C=Math.max(l,S.topY-.02);for(let A of a.subtract(S.outline,C))K(t,A,S.holes,()=>C,l,c,s.tierWall,W,void 0,x)}d.length||K(t,u,n.holes,()=>o.landingY,l,c,s.tierWall,W);let T={tread:[c[0]*W.top,c[1]*W.top,c[2]*W.top],riser:[c[0]*.72,c[1]*.72,c[2]*.72]};for(let S of m.length?m:[u])jn(t,o.rowLevels,e.focal,o.landingY,T,S,y);return}let h=o.flat?1/0:Kn,b=y=>o.normalAt(y.x,y.y),p=o.flat?o.landingY:void 0;for(let y of a.subtract(u,p))K(t,y,n.holes,f,l,c,s.tierWall,W,h,b)}function vo(t,n,e){let i=new Set;for(let r of t.objects)r.type==="section"&&i.add(r.id);let o=new Map;for(let r=0;r<n.length;r++){let s=e.seatOwner[r];if(!s||!i.has(s))continue;let l=e.bySection.get(s);if(l&&l.rowLevels.length>=2)continue;let c=n[r],f=o.get(s);f||(f=new Map,o.set(s,f));let m=c.rowId||`__seat-${r}`,u=f.get(m);u||(u={pts:[],levelM:0,n:0},f.set(m,u)),u.pts.push({x:c.x,y:c.y}),u.levelM+=e.seatDeckY(r),u.n++}let a=[];for(let r of t.objects){if(r.type!=="section")continue;let s=e.bySection.get(r.id);if(s&&s.rowLevels.length>=2){let c=s.rowLevels.filter(f=>!f.patch).map(f=>({pts:f.pts,levelM:f.y}));c.length>=2&&a.push({sectionId:r.id,rows:c});continue}let l=o.get(r.id);l&&a.push({sectionId:r.id,rows:[...l.values()].map(c=>({pts:c.pts,levelM:c.levelM/c.n}))})}return a}function ue(t,n,e,i,o,a,r=!0){let s=vo(n,e,i);if(!s.length)return;let l=An(s,n.focal);l&&(t.setMaterial(0),ae(t,l,{bottomY:n.baseHeightM,colors:{bandTop:et(o.tierTop,.8),bandWall:o.tierWall,shellTop:a??et(o.tierWall,1.15),shellWall:a??o.tierWall},ao:W,shapes:n.objects.filter(c=>c.type==="shape"),deriveShell:r}))}var ko=6,Lo=2.2,le=.1,Oo=.3,Go=1.8,Do=.9,Xo=.55,No=6e3;function me(t){let{doc:n,units:e,seats:i,surfaces:o,focal:a}=t,r=n.zones??[],s=[];if(r.length){let l=new Map;for(let f of e)for(let m of f.objects)m.type==="section"&&m.zone&&l.set(m.id,m.zone);let c=new Map;for(let f=0;f<i.length;f++){let m=i[f],u=o.seatOwner[f],h=m.zoneId??(u?l.get(u):void 0);if(!h)continue;let b=c.get(h);b||(b={n:0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0,sumY:0},c.set(h,b)),b.n++,m.x<b.minX&&(b.minX=m.x),m.y<b.minY&&(b.minY=m.y),m.x>b.maxX&&(b.maxX=m.x),m.y>b.maxY&&(b.maxY=m.y),b.sumY+=o.seatDeckY(f)}for(let f of r){let m=c.get(f.id),u=[];for(let[h,b]of l)b===f.id&&u.push(h);if(!m||m.n===0){s.push({id:f.id,label:f.label,color:H(f.color),sectionIds:u,seatCount:0,center:[0,0,0],radius:0,focalWorld:[(f.focalPoint??a).x*g,1.5,(f.focalPoint??a).y*g]});continue}s.push({id:f.id,label:f.label,color:H(f.color),sectionIds:u,seatCount:m.n,center:[(m.minX+m.maxX)/2*g,m.sumY/m.n,(m.minY+m.maxY)/2*g],radius:.5*Math.hypot((m.maxX-m.minX)*g,(m.maxY-m.minY)*g)||1,focalWorld:[(f.focalPoint??a).x*g,1.5,(f.focalPoint??a).y*g]})}}return s}function fe(t){let{doc:n,units:e,seats:i,surfaces:o,seatData:a,hintedSeatFloor:r,zones:s,focal:l}=t,c=[],f=[],m=[];for(let u of s)u.seatCount!==0&&c.push({id:`zone:${u.id}`,kind:"zone",text:u.label,anchor:[u.center[0],u.center[1]+ko,u.center[2]],color:n.zones?.find(h=>h.id===u.id)?.color});{let u=new Map,h=new Map;for(let b=0;b<i.length;b++){let p=o.seatOwner[b];if(!p)continue;let y=u.get(p);y||(y={n:0,x:0,y:0,deck:0},u.set(p,y)),y.n++,y.x+=i[b].x,y.y+=i[b].y,y.deck+=o.seatDeckY(b);let d=h.get(p);d||(d={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},h.set(p,d)),i[b].x<d.minX&&(d.minX=i[b].x),i[b].x>d.maxX&&(d.maxX=i[b].x),i[b].y<d.minY&&(d.minY=i[b].y),i[b].y>d.maxY&&(d.maxY=i[b].y)}for(let b of e)for(let p of b.objects){if(p.type!=="section")continue;let y=u.get(p.id);if(!y||y.n===0)continue;let d=h.get(p.id),x=[y.x/y.n*g,y.deck/y.n,y.y/y.n*g],T=p.displayLabel||p.label||p.id;f.push({id:p.id,floorIndex:b.index,label:T,seatCount:y.n,center:x,radius:Math.max(1,Math.hypot(d.maxX-d.minX,d.maxY-d.minY)*.5*g),focalWorld:[b.focal.x*g,b.baseHeightM+1.5,b.focal.y*g]});let S=n.floors?.[b.index]?.name?.trim().toLocaleLowerCase();e.length>1&&S===T.trim().toLocaleLowerCase()||c.push({id:`section:${p.id}`,kind:"section",text:T,anchor:[x[0],x[1]+Lo,x[2]],floorIndex:b.index})}}{for(let b of e)for(let p of b.objects){if(p.type!=="gaArea")continue;let y=At(p.points);if(!y)continue;let d=p.displayLabel||p.label||p.id;c.push({id:`ga:${p.id}`,kind:"ga",text:p.capacity>0?`${d} \xB7 ${p.capacity.toLocaleString()}`:d,anchor:[y.x*g,b.baseHeightM+Go,y.y*g],floorIndex:b.index})}let u=new Map;for(let b=0;b<i.length;b++){let p=i[b],y=Math.hypot(p.x-l.x,p.y-l.y),d=u.get(p.rowId);(!d||y>d.far)&&u.set(p.rowId,{seat:p,index:b,far:y})}for(let[b,p]of u){let y=p.seat.label?p.seat.label.lastIndexOf("-"):-1,d=y>0?p.seat.label.slice(0,y):b;d&&c.push({id:`row:${b}`,kind:"row",text:d,anchor:[p.seat.x*g,o.seatDeckY(p.index)+Do,p.seat.y*g],floorIndex:r[p.index]})}let h=new Map;for(let b=0;b<i.length;b++){let p=i[b],y=p.label?p.label.lastIndexOf("-"):-1,d=h.get(p.rowId);d||(d={n:0,x:0,y:0,z:0,minX:1/0,maxX:-1/0,minZ:1/0,maxZ:-1/0,label:y>0?p.label.slice(0,y):p.rowId,sectionId:p.sectionId},h.set(p.rowId,d));let x=b*3,T=a.iPosition[x],S=a.iPosition[x+1],C=a.iPosition[x+2];d.n++,d.x+=T,d.y+=S,d.z+=C,d.minX=Math.min(d.minX,T),d.maxX=Math.max(d.maxX,T),d.minZ=Math.min(d.minZ,C),d.maxZ=Math.max(d.maxZ,C)}for(let[b,p]of h)m.push({id:b,label:p.label,sectionId:p.sectionId,seatCount:p.n,center:[p.x/p.n,p.y/p.n,p.z/p.n],radius:Math.max(.8,Math.hypot(p.maxX-p.minX,p.maxZ-p.minZ)*.5)});if(i.length<=No)for(let b=0;b<i.length;b++){let p=i[b],y=p.displayLabel||p.label;y&&c.push({id:`seat:${p.id}`,kind:"seat",text:y,anchor:[p.x*g,o.seatDeckY(b)+Xo,p.y*g],floorIndex:r[b]})}}for(let u of e)for(let h of u.objects)if(h.type==="shape"&&h.role&&["entrance","exit","screen","suite","obstruction"].includes(h.role)){let b=bt(h),p=b?At(b):null;if(!p||!h.label)continue;c.push({id:`architecture:${h.id}`,kind:"annotation",text:h.label,anchor:[p.x*g,u.baseHeightM+Et(h).heightM+le,p.y*g],color:h.fill,floorIndex:u.index})}else if(h.type==="text"){if(!h.text)continue;c.push({id:`text:${h.id}`,kind:"annotation",text:h.text,anchor:[h.position.x*g,u.baseHeightM+le,h.position.y*g],color:h.color,rotation:h.rotation,floorIndex:u.index})}else if(h.type==="booth"){let b=Ct(h);if(!b)continue;let p=At(b);if(!p)continue;c.push({id:`booth:${h.id}`,kind:"booth",text:h.displayLabel||h.label||h.id,anchor:[p.x*g,u.baseHeightM+cn+Oo,p.y*g],floorIndex:u.index})}return{labels:c,sections:f,rows:m}}function he(t,n){if(n.length>1)for(let e of n)t.push({id:`floor:${e.id}`,kind:"floor",text:e.label,anchor:[e.center[0],e.box.max[1]+1.2,e.center[2]],floorIndex:e.index})}function be(t){let{doc:n,units:e,seats:i,surfaces:o,solids:a,hintedSeatFloor:r,seatFloor:s}=t,l=[];{let c=e.map(()=>({minX:1/0,minY:1/0,minZ:1/0,maxX:-1/0,maxY:-1/0,maxZ:-1/0}));for(let u=0;u<a.floor.length;u+=1){let h=Math.max(0,Math.min(e.length-1,Math.round(a.floor[u]))),b=u*3,p=c[h];p.minX=Math.min(p.minX,a.position[b]),p.minY=Math.min(p.minY,a.position[b+1]),p.minZ=Math.min(p.minZ,a.position[b+2]),p.maxX=Math.max(p.maxX,a.position[b]),p.maxY=Math.max(p.maxY,a.position[b+1]),p.maxZ=Math.max(p.maxZ,a.position[b+2])}let f=new Map;for(let u=0;u<e.length;u++)for(let h of e[u].objects)h.type==="section"&&f.set(h.id,u);let m=e.map(()=>({n:0,minX:1/0,minY:1/0,minDeck:1/0,maxX:-1/0,maxY:-1/0,maxDeck:-1/0,sumX:0,sumDeck:0,sumZ:0}));for(let u=0;u<i.length;u++){let h=o.seatOwner[u],b=(h!==null?f.get(h):void 0)??r[u];if(b===void 0)continue;let p=m[b],y=i[u];p.n++,y.x<p.minX&&(p.minX=y.x),y.y<p.minY&&(p.minY=y.y),y.x>p.maxX&&(p.maxX=y.x),y.y>p.maxY&&(p.maxY=y.y);let d=o.seatDeckY(u);p.sumX+=y.x*g,p.sumDeck+=d,p.sumZ+=y.y*g,p.minDeck=Math.min(p.minDeck,d),p.maxDeck=Math.max(p.maxDeck,d+1.6),s[u]=b}for(let u=0;u<e.length;u++){let h=m[u],b=n.floors?.[u],p=c[u],y=Math.min(h.n?h.minX*g:e[u].focal.x*g-1,Number.isFinite(p.minX)?p.minX:1/0),d=Math.max(h.n?h.maxX*g:e[u].focal.x*g+1,Number.isFinite(p.maxX)?p.maxX:-1/0),x=Math.min(h.n?h.minY*g:e[u].focal.y*g-1,Number.isFinite(p.minZ)?p.minZ:1/0),T=Math.max(h.n?h.maxY*g:e[u].focal.y*g+1,Number.isFinite(p.maxZ)?p.maxZ:-1/0),S=Math.min(h.n?Math.min(e[u].baseHeightM,h.minDeck):e[u].baseHeightM,Number.isFinite(p.minY)?p.minY:1/0),C=Math.max(h.n?Math.max(h.maxDeck,S+.5):S+.5,Number.isFinite(p.maxY)?p.maxY:-1/0),A=[h.n?h.sumX/h.n:(y+d)/2,h.n?h.sumDeck/h.n:(S+C)/2,h.n?h.sumZ/h.n:(x+T)/2],P=Math.max(1,.5*Math.hypot(d-y,C-S,T-x));l.push({index:u,id:b?.id??`floor-${u}`,label:b?.name??(e.length>1?`Floor ${u+1}`:"Venue"),seatCount:h.n,center:A,radius:P,box:{min:[y,S,x],max:[d,C,T]},focalWorld:[e[u].focal.x*g,e[u].baseHeightM+1.5,e[u].focal.y*g]})}}return l}function mn(t,n){let e=1/0,i=1/0,o=-1/0,a=-1/0,r=(s,l)=>{s<e&&(e=s),l<i&&(i=l),s>o&&(o=s),l>a&&(a=l)};for(let s of n)r(s.x,s.y);for(let s of t)for(let l of s.objects)if(l.type==="section")for(let c of l.outline)r(c.x,c.y);else if(l.type==="shape"&&l.points)for(let c of l.points)r(c.x,c.y);else if(l.type==="gaArea")for(let c of l.points)r(c.x,c.y);else if(l.type==="booth"){let c=Ct(l);if(c)for(let f of c)r(f.x,f.y)}else if(l.type==="table"){let c=un(l);if(c)for(let f of c)r(f.x,f.y)}else if(l.type==="decorImage"){let c=ln(l);if(c)for(let f of c)r(f.x,f.y)}return Number.isFinite(e)||(e=-100,i=-100,o=100,a=100),{minX:e,minY:i,maxX:o,maxY:a}}function pe(t,n,e,i,o,a){if(n.length===1){let r=Math.max(60,(o.maxX-o.minX+o.maxY-o.minY)*.06),s=_t(o.minX-r,o.minY-r,o.maxX-o.minX+r*2,o.maxY-o.minY+r*2);K(t,s,void 0,()=>0,-.4,a.ground,a.ground,W)}else{let r=n.reduce((h,b)=>b.baseHeightM<h.baseHeightM?b:h);t.setFloor(r.index);let s=e.filter((h,b)=>i[b]===r.index),l=mn([r],s),c=Math.hypot(l.maxX-l.minX,l.maxY-l.minY),f=Math.max(28,Math.min(80,c*.04)),m=_t(l.minX-f,l.minY-f,l.maxX-l.minX+f*2,l.maxY-l.minY+f*2),u=r.baseHeightM-.03;K(t,m,void 0,()=>u,u-.22,a.ground,a.ground,W)}}function de(t,n,e){let{cx:i,cz:o,radius:a}=e,r=1/0,s=1/0,l=1/0,c=-1/0,f=-1/0,m=-1/0,u=(p,y,d)=>{r=Math.min(r,p),c=Math.max(c,p),s=Math.min(s,y),f=Math.max(f,y),l=Math.min(l,d),m=Math.max(m,d)};for(let p=0;p<t.position.length;p+=3)u(t.position[p],t.position[p+1],t.position[p+2]);for(let p=0;p<n.count;p++){let y=p*3,d=n.iPosition[y],x=n.iPosition[y+1],T=n.iPosition[y+2],S=Math.max(.35,n.iMaxRadius[p]??.35);u(d-S,x,T-S),u(d+S,x+1.6,T+S)}Number.isFinite(r)||(r=i-a,c=i+a,s=0,f=a*.16,l=o-a,m=o+a);let h=[(r+c)/2,(s+f)/2,(l+m)/2],b=Math.max(1,.5*Math.hypot(c-r,f-s,m-l));return{center:h,radius:b,minY:s,maxY:f}}function ye(t,n,e,i,o,a){let r=1/0,s=1/0,l=-1/0,c=-1/0;for(let S=0;S<t.count;S++){let C=S*3,A=t.iPosition[C],P=t.iPosition[C+2];A<r&&(r=A),A>l&&(l=A),P<s&&(s=P),P>c&&(c=P)}for(let S of n)r=Math.min(r,S.cx-S.halfX),l=Math.max(l,S.cx+S.halfX),s=Math.min(s,S.cz-S.halfZ),c=Math.max(c,S.cz+S.halfZ);let f=e.minX*g,m=e.maxX*g,u=e.minY*g,h=e.maxY*g,b=f,p=m,y=u,d=h;if(Number.isFinite(r)){let S=Math.max(2,.06*Math.hypot(l-r,c-s));b=Math.max(f,r-S),p=Math.min(m,l+S),y=Math.max(u,s-S),d=Math.min(h,c+S)}let x=Math.min(0,i),T=Math.max(o,a*.05);return{min:[b,x,y],max:[p,T,d]}}function xe(t,n,e){let i=()=>({byObjectId:new Map,elements:[]});if(!n||!t)return i();let o=bn(n);if(!o.ok||o.value.id!==t)return i();let a=new Map;for(let m of e)for(let u of m.objects)u.type==="shape"&&a.set(u.id,{shape:u,unit:m});let r=new Set,s=new Set,l=new Map((n.overlay.productionElements??[]).map(m=>{let u=m.runtimeContentImageUrl;return[m.id,typeof u=="string"&&/^(?:blob:|data:image\/|https:\/\/)/.test(u)?u:void 0]})),c=[];for(let m of o.value.overlay.productionElements??[]){let u=a.get(m.objectId),h=u?bt(u.shape):null,b=m.baseElevationM??0;if(!u||!h||h.length<3||!m.id||r.has(m.id)||s.has(m.objectId)||!Number.isFinite(m.heightM)||m.heightM<.05||m.heightM>50||!Number.isFinite(b)||b<-10||b>100)return i();r.add(m.id),s.add(m.objectId);let p=h.map(F=>F.x*g),y=h.map(F=>F.y*g),d=u.unit.baseHeightM+b,x=Math.min(...p),T=Math.max(...p),S=Math.min(...y),C=Math.max(...y),A,P=l.get(m.id)??m.contentImageUrl;if(m.kind==="screen"&&P)if(T-x>=C-S){let F=Math.abs(S-u.unit.focal.y*g)<=Math.abs(C-u.unit.focal.y*g)?S-.006:C+.006;A=[[x,d,F],[T,d,F],[x,d+m.heightM,F],[T,d+m.heightM,F]]}else{let F=Math.abs(x-u.unit.focal.x*g)<=Math.abs(T-u.unit.focal.x*g)?x-.006:T+.006;A=[[F,d,S],[F,d,C],[F,d+m.heightM,S],[F,d+m.heightM,C]]}c.push({id:m.id,objectId:m.objectId,kind:m.kind,floorIndex:u.unit.index,baseY:d,topY:d+m.heightM,bounds:{min:[x,d,S],max:[T,d+m.heightM,C]},occlusion:m.occlusion,...P?{contentImageUrl:P}:{},...A?{contentPlane:A}:{}})}let f=c.sort((m,u)=>m.id.localeCompare(u.id));return{byObjectId:new Map(f.map(m=>[m.objectId,m])),elements:f}}function Q(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function J(t){return Array.isArray(t)?t:[]}function Uo(t){let n=[t];for(;n.length;){let e=n.pop();if(Array.isArray(e)){n.push(...e);continue}if(!Q(e))continue;let i=Q(e.extensions)?e.extensions:null;if(i&&Object.prototype.hasOwnProperty.call(i,"KHR_draco_mesh_compression"))return!0;n.push(...Object.values(e))}return!1}function Zt(t,n){return!Array.isArray(t)||t.length!==n||!t.every(e=>typeof e=="number"&&Number.isFinite(e))?null:t}function Yo(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function jo(t,n){let e=new Array(16).fill(0);for(let i=0;i<4;i++)for(let o=0;o<4;o++)for(let a=0;a<4;a++)e[i*4+o]+=t[a*4+o]*n[i*4+a];return e}function Ho(t){let n=Zt(t.matrix,16);if(n)return n;if(t.matrix!==void 0)return null;let e=t.translation===void 0?[0,0,0]:Zt(t.translation,3),i=t.rotation===void 0?[0,0,0,1]:Zt(t.rotation,4),o=t.scale===void 0?[1,1,1]:Zt(t.scale,3);if(!e||!i||!o)return null;let[a,r,s,l]=i,c=Math.hypot(a,r,s,l);if(!(c>1e-8))return null;let f=a/c,m=r/c,u=s/c,h=l/c,b=f+f,p=m+m,y=u+u,d=f*b,x=f*p,T=f*y,S=m*p,C=m*y,A=u*y,P=h*b,F=h*p,v=h*y;return[(1-(S+A))*o[0],(x+v)*o[0],(T-F)*o[0],0,(x-v)*o[1],(1-(d+A))*o[1],(C+P)*o[1],0,(T+F)*o[2],(C-P)*o[2],(1-(d+S))*o[2],0,e[0],e[1],e[2],1]}function Vo(t,n,e,i){return[t[0]*n+t[4]*e+t[8]*i+t[12],t[1]*n+t[5]*e+t[9]*i+t[13],t[2]*n+t[6]*e+t[10]*i+t[14]]}function Wo(t){let n=t[0],e=t[4],i=t[8],o=t[1],a=t[5],r=t[9],s=t[2],l=t[6],c=t[10],f=a*c-r*l,m=r*s-o*c,u=o*l-a*s,h=n*f+e*m+i*u;if(Math.abs(h)<1e-12)return null;let b=1/h;return[f*b,m*b,u*b,(i*l-e*c)*b,(n*c-i*s)*b,(e*s-n*l)*b,(e*r-i*a)*b,(i*o-n*r)*b,(n*a-e*o)*b]}function ge(t,n,e,i){let o=t[0]*n+t[1]*e+t[2]*i,a=t[3]*n+t[4]*e+t[5]*i,r=t[6]*n+t[7]*e+t[8]*i,s=Math.hypot(o,a,r)||1;return o/=s,a/=s,r/=s,[o,a,r]}function zo(t){if(t.byteLength<20||t.byteLength>8388608)return null;let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0,!0)!==1179937895||n.getUint32(4,!0)!==2||n.getUint32(8,!0)!==t.byteLength)return null;let e=12,i=null,o=null;for(;e+8<=t.byteLength;){let a=n.getUint32(e,!0),r=n.getUint32(e+4,!0);if(e+=8,a%4!==0||e+a>t.byteLength)return null;let s=t.subarray(e,e+a);if(r===1313821514&&!i)try{let l=JSON.parse(new TextDecoder().decode(s).replace(/[\u0000 ]+$/g,""));if(!Q(l))return null;i=l}catch{return null}else if(r===5130562&&!o)o=s;else return null;e+=a}return e===t.byteLength&&i&&o?{json:i,bin:o}:null}function Zo(t){return t===5120||t===5121?1:t===5122||t===5123?2:t===5125||t===5126?4:0}function Ko(t){return t==="SCALAR"?1:t==="VEC2"?2:t==="VEC3"?3:t==="VEC4"?4:0}function $o(t,n,e){return e===5120?t.getInt8(n):e===5121?t.getUint8(n):e===5122?t.getInt16(n,!0):e===5123?t.getUint16(n,!0):e===5125?t.getUint32(n,!0):t.getFloat32(n,!0)}function qo(t){let n=t instanceof Uint8Array?t:new Uint8Array(t),e=zo(n);if(!e)return{ok:!1,issue:"invalid_glb"};let{json:i,bin:o}=e;if(!Q(i.asset)||i.asset.version!=="2.0")return{ok:!1,issue:"unsupported_glb"};let a=J(i.extensionsUsed).filter(S=>typeof S=="string");if(a.includes("KHR_draco_mesh_compression")||Uo(i))return{ok:!1,issue:"draco_not_allowed"};if(a.length||J(i.extensionsRequired).length)return{ok:!1,issue:"unsupported_glb"};if(J(i.images).length||J(i.textures).length)return{ok:!1,issue:"external_resource"};let r=J(i.buffers);if(r.length!==1||!Q(r[0])||r[0].uri!==void 0||typeof r[0].byteLength!="number"||!Number.isInteger(r[0].byteLength)||r[0].byteLength<0||r[0].byteLength>o.byteLength)return{ok:!1,issue:"external_resource"};let s=J(i.accessors),l=J(i.bufferViews),c=J(i.meshes),f=J(i.nodes),m=J(i.scenes),u=typeof i.scene=="number"?i.scene:0;if(!Q(m[u]))return{ok:!1,issue:"unsupported_glb"};let h=new DataView(o.buffer,o.byteOffset,o.byteLength),b=(S,C,A)=>{if(typeof S!="number"||!Number.isInteger(S)||!Q(s[S]))return null;let P=s[S];if(P.type!==C||P.sparse!==void 0||P.normalized===!0||typeof P.count!="number"||!Number.isInteger(P.count)||P.count<1||typeof P.componentType!="number"||!A.includes(P.componentType)||typeof P.bufferView!="number")return null;let F=l[P.bufferView];if(!Q(F)||F.buffer!==0||typeof F.byteLength!="number"||!Number.isInteger(F.byteLength)||F.byteLength<0)return null;let v=Ko(P.type),G=Zo(P.componentType),X=typeof F.byteStride=="number"?F.byteStride:v*G,M=typeof F.byteOffset=="number"?F.byteOffset:0,B=typeof P.byteOffset=="number"?P.byteOffset:0,L=M+B,E=B+(P.count-1)*X+v*G;if(!Number.isInteger(X)||!Number.isInteger(M)||!Number.isInteger(B)||X<v*G||M<0||B<0||M+F.byteLength>o.byteLength||E>F.byteLength)return null;let I=[];for(let k=0;k<P.count;k++){let R=[];for(let _=0;_<v;_++){let w=$o(h,L+k*X+_*G,P.componentType);if(!Number.isFinite(w))return null;R.push(w)}I.push(R)}return I},p=[],y=[],d=0,x=new Set,T=(S,C)=>{if(typeof S!="number"||!Number.isInteger(S)||!Q(f[S])||x.has(S))return!1;x.add(S);let A=f[S],P=Ho(A);if(!P)return!1;let F=jo(C,P),v=Wo(F);if(!v)return!1;if(A.mesh!==void 0){if(typeof A.mesh!="number")return!1;let G=c[A.mesh];if(!Q(G))return!1;for(let X of J(G.primitives)){if(!Q(X)||X.mode!==void 0&&X.mode!==4||!Q(X.attributes))return!1;let M=b(X.attributes.POSITION,"VEC3",[5126]),B=X.attributes.NORMAL===void 0?null:b(X.attributes.NORMAL,"VEC3",[5126]);if(!M||X.attributes.NORMAL!==void 0&&!B)return!1;let L=M.length;if(X.indices!==void 0){let I=typeof X.indices=="number"?s[X.indices]:null;L=Q(I)?I.count:void 0}if(typeof L!="number"||!Number.isInteger(L)||L%3!==0||(d+=L/3,d>1e5))return!1;let E=X.indices===void 0?M.map((I,k)=>[k]):b(X.indices,"SCALAR",[5121,5123,5125]);if(!E||E.length%3!==0||E.length!==L)return!1;for(let I=0;I<E.length;I+=3){let k=[E[I][0],E[I+1][0],E[I+2][0]];if(k.some(w=>!Number.isInteger(w)||w<0||w>=M.length))return!1;let R=k.map(w=>Vo(F,...M[w])),_=null;if(!B){let w=R[1][0]-R[0][0],D=R[1][1]-R[0][1],N=R[1][2]-R[0][2],U=R[2][0]-R[0][0],O=R[2][1]-R[0][1],Y=R[2][2]-R[0][2];_=ge([1,0,0,0,1,0,0,0,1],D*Y-N*O,N*U-w*Y,w*O-D*U)}for(let w=0;w<3;w++)p.push(...R[w]),y.push(...B?ge(v,...B[k[w]]):_)}}}for(let G of J(A.children))if(!T(G,F))return!1;return x.delete(S),!0};for(let S of J(m[u].nodes))if(!T(S,Yo()))return{ok:!1,issue:d>1e5?"triangle_limit":"unsupported_glb"};return!d||p.length!==d*9||y.length!==p.length?{ok:!1,issue:"unsupported_glb"}:{ok:!0,triangleCount:d,position:new Float32Array(p),normal:new Float32Array(y)}}function Me(t){try{return qo(t)}catch{return{ok:!1,issue:"invalid_glb"}}}function ps(t){let{doc:n}=t,e=Fn(n.theme),i=e.structure,o=Wn(n,t.eventConfigurationId??n.eventConfigurationId),a=xe(t.eventConfigurationId,t.eventConfiguration,o),r=t.seats,s=new Yt,l=null;if(t.registeredShellGlb){let E=Me(t.registeredShellGlb);if(E.ok){let I=E.position.length/3,k=new Float32Array(E.position.length),R=e.materials.shell??i.tierWall;for(let _=0;_<I;_++){let w=E.normal[_*3+1],D=w<-.25?.4:.62+.38*Math.max(0,w);k[_*3]=R[0]*D,k[_*3+1]=R[1]*D,k[_*3+2]=R[2]*D}l={position:E.position,normal:E.normal,color:k,floor:new Float32Array(I).fill(-2),material:new Float32Array(I),count:I}}}let c=new Map;for(let E of o)for(let I of E.objects)c.set(I.id,E.index),I.type==="section"&&c.set(I.logicalSectionId??I.id,E.index);let f=r.map(E=>c.get(E.sectionId??"")??c.get(E.rowId??"")??0),m=mn(o,r);pe(s,o,r,f,m,i);let u=qn(n,r),h=new Map,b=new Map;for(let E of n.categories??[])h.set(E.key,E.color),E.seatGlyph&&b.set(E.key,E.seatGlyph);let p=[],y=$n(o,r,f),d=new Float32Array(r.length);for(let E=0;E<o.length;E++){let I=o[E];s.setFloor(E);let k=new zt,R=[],_=I.objects.filter(w=>w.type==="section"&&!!w.outline&&w.outline.length>=3);for(let w of I.objects)if(w.type==="section")ce(s,w,I,Jn(w,u),y.bySection.get(w.id),k,_,i);else if(w.type==="shape"){let D=a.byObjectId.get(w.id);s.setMaterial((D?.kind??w.role)==="screen"?1:0),re(s,w,I.baseHeightM,Qn(w,R),i,I.focal,p,D),s.setMaterial(0)}else w.type==="gaArea"?se(s,w,I.baseHeightM,H(h.get(w.categoryKey)),i):w.type==="booth"?ee(s,w,I.baseHeightM,H(h.get(w.categoryKey)),i):w.type==="table"?oe(s,w,I.baseHeightM,H(h.get(w.categoryKey)),i):w.type==="decorImage"&&ie(s,w,I.baseHeightM,i);ue(s,I,r,y,i,e.materials.shell,!l)}let x=o.length>1?{x:o.reduce((E,I)=>E+I.focal.x,0)/o.length,y:o.reduce((E,I)=>E+I.focal.y,0)/o.length}:n.focalPoint??{x:(m.minX+m.maxX)/2,y:(m.minY+m.maxY)/2},T=wn(l?[s.build(),l]:[s.build()]),S=En(r,t.initialState,y,d,h,b),C=me({doc:n,units:o,seats:r,surfaces:y,focal:x}),{labels:A,sections:P,rows:F}=fe({doc:n,units:o,seats:r,surfaces:y,seatData:S,hintedSeatFloor:f,zones:C,focal:x}),v=be({doc:n,units:o,seats:r,surfaces:y,solids:T,hintedSeatFloor:f,seatFloor:d});he(A,v),S.iYaw=Bn(S.iPosition,r.length,E=>r[E].rowId,E=>{let I=o[d[E]]?.focal??x;return[I.x*g,I.y*g]});let G=(m.minX+m.maxX)/2*g,X=(m.minY+m.maxY)/2*g,M=.5*Math.hypot((m.maxX-m.minX)*g,(m.maxY-m.minY)*g)||10,B=de(T,S,{cx:G,cz:X,radius:M}),L=ye(S,p,m,B.minY,B.maxY,M);return{solids:T,seats:S,bounds:{center:[(L.min[0]+L.max[0])/2,(L.min[1]+L.max[1])/2,(L.min[2]+L.max[2])/2],radius:M,groundY:0,box:L},renderBounds:{center:B.center,radius:B.radius},stateColorLUT:Cn(e,Bt),theme:e,seatCount:r.length,focalWorld:[x.x*g,1.5,x.y*g],zones:C,stages:p,productionElements:a.elements,sections:P,rows:F,labels:A,floors:v}}export{Bt as a,Qt as b,ir as c,nn as d,g as e,ar as f,Le as g,cr as h,Vt as i,yr as j,xr as k,Sr as l,Rr as m,Ar as n,Pr as o,Ir as p,wr as q,Tr as r,_r as s,Br as t,Er as u,ps as v};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as b}from"./chunk-
|
|
1
|
+
import{n as b}from"./chunk-GK4ILJFB.js";var l="seatlayer.event-configuration/1",p="seatlayer.event-configuration-export/1",c=100,_=120,S=1e5,k=1e4,y=/^[a-f0-9]{64}$/,x=new Set(["stage","screen","barrier","camera_platform","sound_desk","rigging_truss"]);function d(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function u(e,n){return typeof e=="string"&&e.length>=1&&e.length<=n&&e.normalize("NFKC").trim()===e}function E(e){return typeof e=="number"&&Number.isInteger(e)&&e>0}function v(e){return!Array.isArray(e)||e.length>S||!e.every(n=>u(n,c))?null:[...new Set(e)].sort()}function C(e){return!d(e)||!u(e.chartId,c)||!u(e.version,c)||e.sha256!==void 0&&(typeof e.sha256!="string"||!y.test(e.sha256))?null:{chartId:e.chartId,version:e.version,...typeof e.sha256=="string"?{sha256:e.sha256}:{}}}function m(e,n,t){return typeof e=="number"&&Number.isFinite(e)&&e>=n&&e<=t}function V(e){return d(e)?e.mode==="none"||e.mode==="opaque"?e.opacity===void 0?{mode:e.mode}:null:e.mode==="partial"&&m(e.opacity,.01,.99)?{mode:"partial",opacity:e.opacity}:null:null}function j(e,n){if(e===void 0)return;if(!Array.isArray(e)||e.length>k)return null;let t=new Set(n),s=new Set,i=new Set,r=0,a=[];for(let o of e){if(!d(o)||!u(o.id,c)||!u(o.objectId,c)||!t.has(o.objectId)||!x.has(String(o.kind))||!m(o.heightM,.05,50)||o.baseElevationM!==void 0&&!m(o.baseElevationM,-10,100))return null;let f=V(o.occlusion);if(!f||s.has(o.id)||i.has(o.objectId))return null;let g=o.contentImageUrl===void 0?void 0:typeof o.contentImageUrl=="string"?b(o.contentImageUrl):null;if(o.contentImageUrl!==void 0&&(!g||o.kind!=="screen"||++r>1))return null;s.add(o.id),i.add(o.objectId),a.push({id:o.id,objectId:o.objectId,kind:o.kind,heightM:o.heightM,...o.baseElevationM!==void 0?{baseElevationM:o.baseElevationM}:{},occlusion:f,...g?{contentImageUrl:g}:{}})}return a.sort((o,f)=>o.id.localeCompare(f.id))}function I(e){let n=[];if(!d(e))return{issues:[{code:"invalid_export",path:"configuration",message:"Configuration must be an object"}]};e.schema!==l&&n.push({code:"unsupported_schema",path:"configuration.schema",message:`Configuration schema must be ${l}`}),u(e.id,c)||n.push({code:"invalid_id",path:"configuration.id",message:"Configuration id must contain 1 to 100 normalized characters"}),u(e.label,_)||n.push({code:"invalid_label",path:"configuration.label",message:"Configuration label must contain 1 to 120 normalized characters"}),E(e.version)||n.push({code:"invalid_version",path:"configuration.version",message:"Configuration version must be a positive integer"});let t=C(e.baseVenue);t||n.push({code:"invalid_base_venue",path:"configuration.baseVenue",message:"Base venue must identify one normalized chart id and exact version"});let s=d(e.overlay)?e.overlay:null,i=v(s?.objectIds),r=v(s?.productionKillSeatIds),a=i?j(s?.productionElements,i):null;return(!s||!i||!r)&&n.push({code:"invalid_overlay",path:"configuration.overlay",message:"Overlay ids must be bounded arrays of normalized stable ids"}),a===null&&n.push({code:"invalid_production_element",path:"configuration.overlay.productionElements",message:"Production elements must be unique, bounded semantics over referenced base-venue objects"}),n.length||!t||!i||!r||a===null?{issues:n}:{issues:n,value:{schema:l,id:e.id,label:e.label,version:e.version,baseVenue:t,overlay:{objectIds:i,productionKillSeatIds:r,...a!==void 0?{productionElements:a}:{}}}}}function R(e){let n=I(e);return n.value?{ok:!0,value:n.value}:{ok:!1,issues:n.issues}}function P(e){if(!d(e))return{ok:!1,issues:[{code:"invalid_export",path:"",message:"Export must be an object"}]};let n=[];e.schema!==p&&n.push({code:"unsupported_schema",path:"schema",message:`Export schema must be ${p}`}),(typeof e.contentSha256!="string"||!y.test(e.contentSha256))&&n.push({code:"invalid_checksum",path:"contentSha256",message:"Export checksum must be a lowercase SHA-256 digest"});let t=I(e.configuration);return n.push(...t.issues),n.length||!t.value||typeof e.contentSha256!="string"?{ok:!1,issues:n}:{ok:!0,value:{schema:p,configuration:t.value,contentSha256:e.contentSha256}}}function A(e){return JSON.stringify({schema:l,id:e.id,label:e.label,version:e.version,baseVenue:{chartId:e.baseVenue.chartId,version:e.baseVenue.version,...e.baseVenue.sha256?{sha256:e.baseVenue.sha256}:{}},overlay:{objectIds:[...new Set(e.overlay.objectIds)].sort(),productionKillSeatIds:[...new Set(e.overlay.productionKillSeatIds)].sort(),...e.overlay.productionElements!==void 0?{productionElements:[...e.overlay.productionElements].sort((n,t)=>n.id.localeCompare(t.id)).map(n=>({id:n.id,objectId:n.objectId,kind:n.kind,heightM:n.heightM,...n.baseElevationM!==void 0?{baseElevationM:n.baseElevationM}:{},occlusion:n.occlusion,...n.contentImageUrl?{contentImageUrl:n.contentImageUrl}:{}}))}:{}}})}function N(e,n){let t=[];e.baseVenue.chartId!==n.chartId&&t.push({code:"base_venue_mismatch",message:"Configuration belongs to a different base venue"}),e.baseVenue.version!==n.version&&t.push({code:"base_venue_version_mismatch",message:"Configuration was authored against a different venue version"}),e.baseVenue.sha256&&!n.sha256?t.push({code:"base_venue_checksum_missing",message:"Venue checksum is required for this configuration"}):e.baseVenue.sha256&&e.baseVenue.sha256!==n.sha256&&t.push({code:"base_venue_checksum_mismatch",message:"Venue bytes do not match the configuration base"});let s=new Set(n.objectIds);for(let r of e.overlay.objectIds)s.has(r)||t.push({code:"overlay_object_missing",message:`Production object ${r} is missing from the base venue`,targetId:r});if(n.objectTypes)for(let r of e.overlay.productionElements??[])n.objectTypes.get(r.objectId)!=="shape"&&t.push({code:"production_element_not_shape",message:`Production element ${r.id} must reference base-venue shape geometry`,targetId:r.objectId});let i=new Set(n.seatIds);for(let r of e.overlay.productionKillSeatIds)i.has(r)||t.push({code:"production_kill_seat_missing",message:`Production-kill seat ${r} is missing from the base venue`,targetId:r});return{compatible:t.length===0,issues:t}}var w={draft:new Set(["review","archived"]),review:new Set(["draft","approved","archived"]),approved:new Set(["published","archived"]),published:new Set(["archived"]),archived:new Set};function T(e,n){return e===n||w[e].has(n)}function L(e,n,t){return!E(t)||t>=n.version?null:e.find(s=>s.id===n.id&&s.version===t&&s.status==="published")??null}function O(e){return e.floors?.length?e.floors.flatMap(n=>n.objects):e.objects}function h(e,n,t){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let s of e)h(s,n,t);return}for(let[s,i]of Object.entries(e)){if(s==="eventConfigurationId"){u(i,c)?n.add(i):i!==void 0&&t.add(String(i));continue}if(s==="eventConfigurationIds"){if(!Array.isArray(i))t.add(String(i));else for(let r of i)u(r,c)?n.add(r):t.add(String(r));continue}h(i,n,t)}}}function U(e,n){let t=C(n);if(!t)return{ok:!1,invalidIds:["baseVenue"]};let s=new Set,i=new Set;if(h(e,s,i),i.size)return{ok:!1,invalidIds:[...i].sort()};let r=O(e);return{ok:!0,configurations:[...s].sort().map(a=>({schema:l,id:a,label:a,version:1,baseVenue:t,overlay:{objectIds:r.filter(o=>o.type==="shape"&&o.eventConfigurationIds?.includes(a)).map(o=>o.id).sort(),productionKillSeatIds:[]}}))}}export{l as a,p as b,R as c,P as d,A as e,N as f,T as g,L as h,U as i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var x="seatmap.chart";var c=[{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"}],l=new Map(c.map(e=>[e.key,e]));function w(e){return l.get(e)}var d={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 R(e){let t=e?.[0];return t&&d[t]||"#3b82f6"}var u=[{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"}],
|
|
1
|
+
var x="seatmap.chart";var c=[{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"}],l=new Map(c.map(e=>[e.key,e]));function w(e){return l.get(e)}var d={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 R(e){let t=e?.[0];return t&&d[t]||"#3b82f6"}var u=[{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"}],b=new Map(u.map(e=>[e.key,e]));function I(e){return b.get(e)}var A=8,k=24,g=["reference-focal","bar","entrance","exit","restroom","screen","sound","concession","coat","wall","rail","suite","obstruction"],m=new Set(g);function E(e){switch(e.type){case"row":case"table":case"gaArea":case"booth":case"section":return"interactive";case"decorImage":return e.layer==="foreground"?"foreground":"background";case"shape":return e.role&&m.has(e.role)?"surroundings":"background";case"text":return"background";default:return"interactive"}}var T=2e6,p=/^data:image\/(?:png|jpe?g|webp|gif|avif);base64,[a-z0-9+/]+={0,2}$/i,y=/[\s"'<>`\\]/;function f(e){if(typeof e!="string"||!e||e.length>2e6||e!==e.trim())return!1;if(e.startsWith("data:"))return p.test(e);if(y.test(e))return!1;try{let t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password}catch{return!1}}function O(e){let t=e.trim();return f(t)?t:null}function S(e){let t=0;for(let r=0,i=e.length;r<i;r+=1){let o=e[r],a=e[(r+1)%i];t+=o.x*a.y-a.x*o.y}return t/2}function D(e){return S(e)*2}function _(e,t,r){let i=!1;for(let o=0,a=e.length-1;o<e.length;a=o++){let n=e[o],s=e[a];n.y>r!=s.y>r&&t<(s.x-n.x)*(r-n.y)/(s.y-n.y)+n.x&&(i=!i)}return i}function v(e){let t=1/0,r=1/0,i=-1/0,o=-1/0,a=!1;for(let n of e)!Number.isFinite(n.x)||!Number.isFinite(n.y)||(a=!0,n.x<t&&(t=n.x),n.y<r&&(r=n.y),n.x>i&&(i=n.x),n.y>o&&(o=n.y));return a?{minX:t,minY:r,maxX:i,maxY:o}:null}function G(e){let t=v(e);return t?h(t):null}function h(e){return{x:e.minX,y:e.minY,width:e.maxX-e.minX,height:e.maxY-e.minY}}function X(e,t){return e.minX<=t.maxX&&t.minX<=e.maxX&&e.minY<=t.maxY&&t.minY<=e.maxY}export{x as a,c as b,w as c,d,R as e,u as f,I as g,A as h,k as i,g as j,E as k,T as l,f as m,O as n,v as o,G as p,X as q,S as r,D as s,_ as t};
|